-
Notifications
You must be signed in to change notification settings - Fork 5
Its Not Perfect
My goal is to have "drop what you are doing and look" or "wake you up in the middle of the night and grab the shotgun to see what is going on" push notification reliability. Its not there yet, but its really close. Running on 15 outdoor facing cameras with the AI processing ~39 fps means the AI is looking at ~3.3 million images per day.
In the past three weeks of 24/7 testing I've had two "false positive" person detects yielding a false positive rate of about 1 in 35 million frames. One of the false detects is rejected since its not inside my "notify polygon" but I'm saving and reviewing every detection for the time being as part of testing/verification, and to fine tune my notification polygons.

Here are two false detect images from the previous version of the code using MobilenetSSD-v1. There are two detection boxes drawn as I'd saved false detects specifically to test alternate AI. The white box is Mobilenet-SSD-v2_coco, which also false detects. These kinds of transient "when the light is just at the right angle" false positives look to be really hard to eliminate.

To reduce false detection the code uses a detect, zoom, and detect again with higher threshold strategy which is largely how I've reduced the false detect rate.
I'm starting to look at using a second AI that only runs on current detections in an attempt to reject false positives. I've tried "Human Pose Estimation" which rejected 100% of my collection of false positive images, but the problem is it also rejects ~30-90% of true positives with the higher percentage of false rejections being in proportion to camera angle -- a serious issue for security cameras as they generally are mounted high and look down on the viewing area. My main requirement for this secondary "verification AI" is to keep the added latency below one second. Running it on a second dedicated IOT class computer (Pi4, Jetson Nano) would be acceptable.