Success! 100% accuracy for my camera detection.

While I knew it was possible I hadn't actually come anywhere near it with 3rd party software. And until now, not without requiring a dedicate GPU or taxing my system rather heavily have I achieved anything of note either.

It has only been 24 hours running my latest configuration where I bumped up the minimum confidence rate. But, in that time there have been zero false positives. And all of the cases I expected to capture were captured. Since I wasn't watching it 100% of the time I can't say for sure that there were no false negatives. But, I'm reasonably confident.

So, there are only a few more things left to do. Right now it has no UI. I can view things thanks to a mapped folder in NextCloud. But, it won't allow me to delete, and it isn't the most convenient interface. But I don't care. When I see 5 new videos I KNOW with a high probability that 5 legitimate events took place.

And that is epic.

Nest would probably have reported hundreds. MotionEye was averaging a much better, but still exhausting, 15-30 false positives per day and integrating TensorFlow with Home Assistant required manual fixes which eventually stopped working and didn't produce recordings.

Now I have a recording per detection. A snapshot to show me what the detector thinks it saw to trigger the event. And the last snapshot for each camera. And all of this, as I've said, seems to be working with close to 100% accuracy. I haven't detected any faults since I bumped the minimum confidence up to 85%, but that doesn't mean it won't eventually screw up.

Other things I'm not doing right now that I'd like to include are things like adding the option to mask multiple regions rather than just restricting the view within a single square. I could probably get better results if I could expand the FoV without adding in areas like the sidewalk or my neighbours driveways.

My video is also currently limited to the FPS of the motion detection and includes no audio. It might be nice eventually to just feed that all out raw during detection with a bit of pre-buffering. Though, I'm starting to find that the accuracy almost renders buffering moot. It catches events basically at the moment they start. And this is because I'm able to set the motion threshold so low because it falls back to the object detection. 

Basically, I've tested this by checking the screen caps it produces which shows me the very first image it detected for an event. And they are often images of me or my car almost the moment they enter the scene enough to be detectable as the correct object type.

And, there are other strategies I could employ such as allowing the motion and object detection to scan the whole image during detection events to capture more context which might further eliminate the need for buffering.

Anyway, quite happy.

Comments

Popular Posts