I am working on a Jetson Nano in Jetpack 4.5.1
I am working in python 3.6 and attempting to create a producer/consumer system to efficiently perform inference and other operations in images. I am hoping to use a producer process and consumer processes that use shared memory to make use of multiple cores to encode jpeg binary, perform object detection and more in parallel.
Basically the goal is a camera at 30fps and multiple processes pulling from that camera simultaneously. I’m not worried about each process fetching every frame but rather being able to have different processes pull the most recent frame whenever they are ready.
EX: Camera pulling frames at 30fps
→ Object detection at 20fps
→ filtering the image and encoding a jpeg binary to send elsewhere at 28fps
→ saving images locally at 5fps
I am using numpy, and the python multiprocessing model but am running into very strange issues that I suspect are from messing with cuda zero copy memory. Could anyone point me to better tools to distribute a video source to multiple processes for performance.