Close

Body_25 as a pure animal detector

A project log for Jetson tracking cam

Failed attempt at camera tracking on the jetson nano

lion-mclionheadlion mclionhead 09/07/2023 at 05:030 Comments

Shuffling source code back & forth for no reason, it became clear that when using body_25, the

https://hackaday.io/project/162944-auto-tracking-camera

2 axis tracker should just have a switch.  It should flip between 1 & 2 axes.  This would have to be set at startup & change a bunch of bits: 1 or 2 animals, 2 180 servos or 1 360 servo, webcam or HDMI converter.  It seems best done through the phone configuration file & a reboot.

Body_25 gave slightly inferior test results than efficientdet, as a pure animal detector.  The mane limitation is gives slightly more false negatives.

There might be some marginal improvement in using a jetson nano without face recognition rather than a raspberry pi without facial recognition, since it does a full frame at 7fps instead of 1/3 frame.  Differentiation of animals remaned unsolved.  A head detector rather than a face detector is what's needed.  There is no head equivalent of facenet.  If lions had the brain power to make a ground up model like that, a better jetson could be justified.

A head detector would be the ultimate animal tracker.

---------------------------------------------------------------------------------------------------------------

Unfortunately, the fiddly ADC values from the paw controller are used throughout the vision system. 

Refactored the truckcam radio system to try to make the ADC values more sensible.  It needs ADC values for deadband, auto centering & timelapse mode.

Verified the transmitter burns 50-100mA.  Helas, not enough space was modeled in the enclosure to fit a newer, longer battery.

The mane problem is the keychain cam being a lot more fiddly on the jetson than it was on the raspberry pi.

 Took out the battery to get it to always start in the same state.  The battery was still fully charged after 10 years.  After much expansion of the status reporting, it got to where a user with a lot of practice could start it up with repeated pressing of the power button.  Key needs are a status code instead of error bits.  The status code should be updated once after running through each initialization attempt.

The good news is the power button can be used to turn off body_25 & save 5W without shutting down the jetson.  It still burns 5W when idle though.  The fully body_25 tracking system burns 11W.

It also sometimes starts at 1fps, then goes to 7fps after a few minutes.

Wifi doesn't always start on the jetson.  Configuration definitely requires ssh from a phone.  The phone can't connect to anything on wifi if mobile data is enabled.  It gives itself a 192.0.0.0 address while the jetson is a 10.0.10.0 address.

Initialization is so fiddly, the 2 axis & 1 axis trackers should all use the 2 axis codebase instead of separate codebases.

All the subsystems required for tracking still don't cover the mechanical changes.

The latest thinking was to bolt the jetson on the truck.  If it gets run over, it's a $150 paperweight & lions won't be inclined to burn $500 on a higher end model.  There's still a chance of letting it flop around in a padded enclosure.  It's a lot bigger than the raspberry pi.  Nothing is stopping a string from reinforcing the handle & it might be necessary for the 'pro.

The 1st test was for tracking robustness without the 'pro.  The limitations of USB wifi & phone app restrictions make screencaps no longer a viable way of debugging the tracker.  There are definitely problems with task switching the app & frames getting split.

Still prone to detecting trees like efficientdet.  Generally less false positives & more robust than efficientdet.  Had no cases of it actually chasing the wrong subject like efficientdet had.  It suffers from false negatives the same way face detection did.  Being able to scan a full frame at a time is definitely helping.

Nothing is as good as a custom trained efficientdet at 21fps, but not being able to run a custom trained model on the jetson & not having a head recognizer make body_25 a viable alternative.

Since the webcam got lighter & we're not tracking heads, there is a desire to move it higher up again & angle it lower.  Past experience showed body_25 does better when the head is visible though.  There might be a more flexible USB cable.  The camera should always be in front of the handle now, since the confuser is always in back.  All that iron & computing brought the power up to 400mAh/mile.

The castle creations 6 was flaming hot.

Discussions