A weird question, but since there's another article on HN right now about programming language energy efficiency https://news.ycombinator.com/item?id=24816733 any idea whether going from 9fps to 1840fps consumes the same power, 200x the power, or somewhere in between?
Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
11–20 of 58 posts
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#12Out of curiosity, what are the possible use cases for object detection at >100 fps? I assume it would have to be objects that move very fast, i.e. nothing ordinary that I can think of. [edit] actually stupid question. I assume it's more about throughput than fps, i.e. be able to process lots of streams on the same machine, for instance for doing mass analysis of CCTV streams.
Smart missiles and weapons i guess
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#13Earlier quoted context omitted.
Self-driving. Ideally you want something around 1000fps and low latency, so it has time to react. I'm sure military and sports applications are obvious too.
Doubt Humans reaction times are much slower than that. In fact for some things it can take a whole second https://www.visualexpert.com/Resources/reactiontime.html Maybe racing sports have shorter reaction times, but I'd be frankly surprised if it was something 10fps for your average drive should be more than enough
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#14Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#15Out of curiosity, what are the possible use cases for object detection at >100 fps? I assume it would have to be objects that move very fast, i.e. nothing ordinary that I can think of. [edit] actually stupid question. I assume it's more about throughput than fps, i.e. be able to process lots of streams on the same machine, for instance for doing mass analysis of CCTV streams.
As such the point isn't that you can detect objects >N fps, but rather that the object detection shouldn't take more than X% of the time per cycle so that the overall cycle time can run at a given rate.
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#16Earlier quoted context omitted.
Self-driving. Ideally you want something around 1000fps and low latency, so it has time to react. I'm sure military and sports applications are obvious too.
Doubt Humans reaction times are much slower than that. In fact for some things it can take a whole second https://www.visualexpert.com/Resources/reactiontime.html Maybe racing sports have shorter reaction times, but I'd be frankly surprised if it was something 10fps for your average drive should be more than enough
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#17How portable are these techniques to other architectures? Could >100 FPS be realistically achieved today using only CPUs or mobile phones?
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#18Out of curiosity, what are the possible use cases for object detection at >100 fps? I assume it would have to be objects that move very fast, i.e. nothing ordinary that I can think of. [edit] actually stupid question. I assume it's more about throughput than fps, i.e. be able to process lots of streams on the same machine, for instance for doing mass analysis of CCTV streams.
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#19> There is evidence (measured using gil_load) that we were throttled by a fundamental Python limitation with multiple threads fighting over the Global Interpreter Lock (GIL). Can anyone comment on how often this is a problem and if this problem is truly fundamental to Python? Could it be solved in a Python 3.x release?
But there's a few more things that can be said about this. Python "threads" are really just a mental construct for designing programs. The selling point is that you can share variables and data between "threads" without having to worry about locks or data corruption or anything like that. It just works. But, even with that advantage, you're relying on Python to switch between "threads" on its own, and that could easily slow things down. If you're willing to drop the mental construct and go for better performance but still use a single process and be able to share variables, the asyncio module will let you control when the main Python process will move between points of code flow.
However, if you really want to use traditional multiple processes/threads just use the Multiprocessing module. It actually launches multiple Python processes and links them together. It's called in a similar fashion to Threading, so there isn't much code change for that part. But because it's no longer a single process - and no longer bound by the GIL - you can't share data between the processes as easily. With Multiprocessing, you'll need to create slightly more complex data structures (like a multiprocessing manager namespace) to share that data. It's not that hard, but it requires a bit of planning ahead of time.
Re: Object Detection at 1840 FPS with TorchScript, TensorRT and DeepStream
#20A weird question, but since there's another article on HN right now about programming language energy efficiency https://news.ycombinator.com/item?id=24816733 any idea whether going from 9fps to 1840fps consumes the same power, 200x the power, or somewhere in between?