Building trail cams that aim themselves: a heat grid from wildlife sightings
WildFeed (wildfeed.live) streams hunting and fishing live from the field. Most hours, no human is live, so we run PTZ trail cams in South Carolina to keep the woods on screen. A fixed camera keeps pointing at sky, though
WildFeed (wildfeed.live) streams hunting and fishing live from the field. Most hours, no human is live, so we run PTZ trail cams in South Carolina to keep the woods on screen. A fixed camera keeps pointing at sky, though, after wind, a bump, or someone driving it during a session.
So we built an "aim director":
Phase A: snap-back. Every ~2 minutes, if the cam is already live, idle (nobody in the control queue), PTZ-ready, and battery is ≥40% or on external power, it issues return-to-home and logs it to live_aim_corrections. The hard rule: it never wakes a sleeping cam. Battery is the scarce resource.
Phase B: learn where the animals are. Every time a viewer or the system marks an action on a photo (deer, turkey), we bump an 8×8 heat grid at the photo's center, with 7-day decay and a bonus for dusk and dawn. The director only corrects when "home" is more than 25% away from the heat centroid. On idle, it slowly refreshes home toward the centroid. Owner-set homes always win.
What's next: soft live-follow, so the cam gently tracks activity, then rolling this out to the other two cams once the pilot proves out.
Stack: Supabase (Postgres + edge functions partner-control / live-camera-control), and a Node relay host running the aim runner next to the camera bridge.
Curious if anyone has done camera auto-framing on a tight power budget. What would you use instead of a coarse grid?
(Watch the cams free, no account: https://www.wildfeed.live)
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.