Git Product home page Git Product logo

Comments (8)

Breakthrough avatar Breakthrough commented on September 9, 2024

Hi @myscho15;

Part of the problem is actually with how DVR-Scan is written and distributed. The biggest issue is that it's not possible (yet) to use GPU acceleration. You might also get better performance by compiling the opencv-python module manually, enabling all of the relevant options to ensure it's optimized (there are instructions here for doing so).

Other than that, the current bottleneck is likely CPU clock speed and memory bandwidth. Since there's no parallelization, number of cores doesn't matter either. I don't believe the underlying libraries I'm using support parallel implementations either, however, they do have GPU support. Again though, DVR-Scan doesn't support this, but when it does support CUDA acceleration, a GPU would definitely help.

Hope this helps!

from dvr-scan.

Breakthrough avatar Breakthrough commented on September 9, 2024

Closing as duplicate of #12. Feel free to continue the discussion there if you would like.

from dvr-scan.

Breakthrough avatar Breakthrough commented on September 9, 2024

Also @myscho15, thank you for being my first sponsor on Github! It really means a lot to me, and will help offset some of the running costs for the project. I will prioritize GPU integration for the next release of DVR-Scan (although unfortunately I cannot provide a date for when it can be done by).

The other thing that may help is to use scan-only mode, and afterwards, use ffmpeg to split the motion events out. I also plan to address that in the next release with tighter integration with PySceneDetect, which provides that natively.

Really appreciate your kind words, and hope this helps. Sorry that performance isn't the best currently, but I'll put some effort into improving that for the next release :)

Thank you!

from dvr-scan.

Breakthrough avatar Breakthrough commented on September 9, 2024

You might also want to see #48 - there are some newer background subtraction algorithms OpenCV provides which can use multiple CPU cores. As those are included in the binaries already, I might be able to enable that by adding a flag to the command line to switch between different background subtraction algorithms.

Work for multiple CPU cores will be tracked in #48, and GPU support will be tracked in #12.

Edit: It looks like finishing #48 might not be too difficult, so I might try to go for that and release another version or two of DVR-Scan before doing the major refactor. Stay tuned! :)

from dvr-scan.

Breakthrough avatar Breakthrough commented on September 9, 2024

Hey @myscho15;

I actually made some progress in #48! The next version of DVR-Scan will include a faster way of scanning by specifying -b CNT. Keep an eye out for DVR-Scan v1.3 when it will be included. On my system, it improves my scanning performance from 90 FPS to 125 FPS.

Thanks!

from dvr-scan.

myscho15 avatar myscho15 commented on September 9, 2024

from dvr-scan.

myscho15 avatar myscho15 commented on September 9, 2024

from dvr-scan.

Breakthrough avatar Breakthrough commented on September 9, 2024

Hey @myscho15;

With DVR-Scan v1.3, you can specify -b CNT and it will use the new parallelized background subtractor! It should give you some better performance when scanning.

Feel free to provide any feedback here or in #48. Thanks again! :)

from dvr-scan.

Related Issues (20)

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.