GithubHelp home page GithubHelp logo

cj-mills / byte-track-eigen Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 2.0 63 KB

ByteTrack-Eigen is a C++ implementation of the ByteTrack object tracking method, leveraging the Eigen library for high-performance matrix and vector operations.

License: MIT License

CMake 2.75% C++ 96.95% C 0.30%
bytetrack eigen-library object-tracking

byte-track-eigen's Introduction

byte-track-eigen's People

Contributors

cj-mills avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

byte-track-eigen's Issues

Platform Compatibility

Thank you for your open-source contribution. I think we can modify include/Export.h like this to enable cross-platform compilation.

#ifdef BUILDING_BYTE_TRACK_EIGEN
    #ifdef _WIN32
        #define BYTE_TRACK_EIGEN_API __declspec(dllexport)
    #else
        #define BYTE_TRACK_EIGEN_API __attribute__((visibility("default")))
    #endif
#else
    #ifdef _WIN32
        #define BYTE_TRACK_EIGEN_API __declspec(dllimport)
    #else
        #define BYTE_TRACK_EIGEN_API
    #endif
#endif

A bug has been encountered in the Debug mode.

OS: ubuntu20.04
After setting the CMake option: -DCMAKE_BUILD_TYPE=Debug, and compiling the code, when running the executable program, the following error is reported:

bytetrack-test: /home/zfy/projects/bytetrack_zfy/eigen/Eigen/src/Core/PlainObjectBase.h:273: void Eigen::PlainObjectBase<Derived>::resize(Eigen::Index, Eigen::Index) [with Derived = Eigen::Matrix<double, 4, 1>; Eigen::Index = long int]: Assertion `(!(RowsAtCompileTime!=Dynamic) || (rows==RowsAtCompileTime)) && (!(ColsAtCompileTime!=Dynamic) || (cols==ColsAtCompileTime)) && (!(RowsAtCompileTime==Dynamic && MaxRowsAtCompileTime!=Dynamic) || (rows<=MaxRowsAtCompileTime)) && (!(ColsAtCompileTime==Dynamic && MaxColsAtCompileTime!=Dynamic) || (cols<=MaxColsAtCompileTime)) && rows>=0 && cols>=0 && "Invalid sizes when resizing a matrix or array."' failed.
./run.sh: line 1: 81013 Aborted                 (core dumped) ./build/bytetrack-test data/sample.mp4 data/txt_result

when setting the CMake option: -DCMAKE_BUILD_TYPE=Release, The above error will not occur.
I think we can optimize the following function to fix this bug.

Eigen::Vector4d KalmanBBoxTrack::tlwh() const {
    if (mean.isZero(0)) { // Checking if 'mean' is uninitialized or zero
        return _tlwh;
    }   

    // Eigen::Vector4d ret = mean;
    Eigen::Vector4d ret = mean.head(4); //modified
    ret[2] *= ret[3];
    ret[0] -= ret[2] / 2.0;
    ret[1] -= ret[3] / 2.0;

    return ret;
}

Memory Bug

The member variable removed_tracks defined in the class BYTETracker is not properly cleaned up, which can lead to memory growth and decreased code execution speed.

I suggest adding the following line at the end of the member function void BYTETracker::handle_lost_and_removed_tracks:

this->removed_tracks.clear();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.