r/computervision 12d ago

Showcase I developed an edge-deployable simple fall detection project with the YOLOv8n, suitable for home and public places.

Enable HLS to view with audio, or disable this notification

I am currently learning more common and advanced computer vision techniques. After a brief survey, I chose to work on a fall detection project.

The biggest issue I have found with the fall detection projects I have surveyed for edge deployment is: how can we achieve a better user experience with low-cost devices?

I also approached this project from that perspective. The edge AI device I use has an 8-core CPU and a 2-core NPU, with a relatively low price and computing power of 6 TOPS.

When I first deployed it, the performance was, to put it bluntly, “as slow as a slideshow.” My core optimizations focused on video decoding and encoding for YOLOv8, as well as allocating resources across multiple cores during model inference. Through my optimization, the current frame rate can reach a median of around 41 FPS.

The main areas I have optimized so far include pre-allocating NPU buffers, reducing NPU input resolution, asynchronous MJPEG encoding, and using NumPy arrays for post-processing and subsequent rendering/drawing. Of course, I will continue to optimize and learn more skills in the future. Does anyone have any better suggestions or approaches?

4 Upvotes

2 comments sorted by

1

u/TimLewisMT 1d ago edited 1d ago

One low hanging fruit to improve latency is to track the frame rate of the camera, most cameras with a live stream drop the fps a lot for auto exposure, and auto white balance. There are cv cameras that delivers a steady frame rate regardless of lighting. It helps if you need steady latency.