Comments (8)
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.
Closing as duplicate of #12. Feel free to continue the discussion there if you would like.
from dvr-scan.
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.
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.
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.
from dvr-scan.
from dvr-scan.
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)
- Request: Support for OpenCL HOT 2
- Docker Documentation run command
- When using with wildcard, dvr-scan detects motion across two videos HOT 1
- ROI / region of interest not working HOT 1
- Request: Process video stream from stdin HOT 2
- wildcards produce different detection than file by file run HOT 4
- how do you install this program? HOT 6
- cv2 package got renamed to opencv-python and is now at 4.8.0.76 HOT 2
- Timecode format of hh:mm:ss not recognized HOT 3
- Process ends early and displays error: Element exceeds containing master element HOT 1
- Traceback TypeError for any dvr-scan command HOT 1
- cnt mode stuck HOT 4
- Invalid duration specification for ss: 00:04:60.000 when using -m copy or -m ffmpeg HOT 6
- Require version >= 0.6.2 of scenedetect
- Exception in encode thread when extracting motion events on v1.6 HOT 7
- Unsupported config option: region-file HOT 3
- region-editor config option gets ignored HOT 3
- Request: produce image file (thumb) of the frame with the highest amount of motion per output video HOT 3
- Improve handling of videos that are corrupt or have decoding failures HOT 8
- Closing the ROI editor should warn if you have unsaved changes HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dvr-scan.