Problem | Inspiration
Vehicle theft is a serious threat to public safety and could cost up to billions of dollars on a yearly basis. In Canada, a car is stolen every 6 minutes according to the Insurance Bureau. Ontario, as it stands, was ranked first in Canada in 2020 with about 24000 car thefts (http://www.ibc.ca/qc/auto/theft/).
As a vehicle owner, to become aware of your property being stolen is a matter of when you check your driveway. This could take usually hours/days on average. When owners do realize, recorded footage could only prove that their car was stolen, and the realization of their car being unable to be retrieved starts to set in.
Solution | How I Built It
Our solution, using any surveillance camera (in this case, Raspberry Pi) builds upon the current circumstances. Using computer vision libraries, the camera can now detect theft occuring in real-time and send notifications to the owner of the vehicle.
To build upon this solution, notifications can be forwarded to police as soon as you receive them, significantly increasing the chances of your vehicle being retrieved. In the future, this could be integrated with CCTV cameras on the road to detect the location of the stolen car.
To make sure that the camera doesn't send notifications when you're accessing your car, using face_recognition the Raspberry Pi now knows that this situation is under safe conditions. If at all the owner believes an alert received is a false-alarm he is able to dismiss the alert.
Challenges I ran into
Our object detection models initially ran at a 10FPS. To optimize, several coco classes had to be filtered out, because this use case really needs to detect people and vehicles. Furthermore, I experimented with different pre-trained models such as MobileNet and YOLOv3 to choose one with a good balance of accuracy and speed.
Accomplishments that I'm proud of
Integrating Flask-SocketIO with the Detection model to send a socket message to the server, furthermore to the client with a Modal-popup.
Integrating end-to-end from the Raspberry Pi camera to Python micro services (camera aggregator, detection models, web server, and client).
What's next for NytFox
- Continue to IOS/Android App
- Optimize models to serve a faster FPS
- Expanding on whitelisting with posture-detection (such as the function to add new whitelisting users, this might include the friends/family of the owner)
- Improve architecture to handle real-world image monitoring traffic across millions of homes.