Jetson nano face detection

A project log for Jetson tracking cam

Jetson nano tracking system

lion-mclionheadlion mclionhead 05/30/2023 at 02:460 Comments

A very simple hot snot enclosure emerged for the servo board, but it's better than what was possible 15 years ago. 

15 years ago, it was a big deal to break USB out into 2.4Ghz & 72Mhz.  Those were the days, but the USB speed was the same as a modern RP2040.

Jetson enclosure for the truck ended up pretty bad.  There's no airflow through the heat sink.  It needs a fan just when idling.  The heat sink actually self taps with M3's.  It doesn't sit flat.  The hinge should be on the side.  It's not the most efficient use of space.  The side tabs should be the side panels of the case.  The buck converter ideally wouldn't be right next to the heat sink.

These fans fit, but don't throttle.  It's back to the days of CPU fans which always ran at full speed.

There are fans specifically for the netson nano but more expensive.  Helas, with Bezos it ends up being 1 for the price of 2 anyway.

The lion kingdom now has 3 code bases for various camera trackers.   Truck cam, tracking cam & countreps are a sea of replicas.  Much effort was spent trying to rectify the issue, but the solution continues to be replication.


was bad at detecting faces.  You can get it to read .jpg files instead of requiring a supported webcam by replacing the videoStreamer calls with cv::imread(.  The input image has to be 640x480.

You can lower all the threshold variables in onet_rt.cpp, rnet_rt.cpp, mtcnn.cpp, pnet_rt.cpp to make it more sensitive to face hits, but it picks up a lot more junk.  You can set float m to 1 in mtcnn::mtcnn to get it to create higher resolution scaling levels.  This gets it to pick up more faces, but it does all that scaling in the CPU.  The biggest improvement comes from upscaling the source images even though it doesn't add any more information.

The higher scaling levels slow it down to 9fps on 640x480 or just about as bad as software on the raspberry pi.  Frame rate decreases as the number of hits increases.  Faces have to be 1/3 of the frame to be detected.  There might be other ways to decrease the required dimensions.  Scaling could be done in CUDA to speed it up.