https://github.com/jacobpclouse/hackrpi24-adaptive-threat-security-system
Crime Catcher - An online surveillance system where a central server receives camera feeds from remote clients and uses AI to determine if weapons or dangerous objects are in frame.
https://github.com/jacobpclouse/hackrpi24-adaptive-threat-security-system
flask flask-api gpu-acceleration hackrpi2024 kaggle opencv quasar sqlite tkinter tkinter-gui vue yolo
Last synced: 5 months ago
JSON representation
Crime Catcher - An online surveillance system where a central server receives camera feeds from remote clients and uses AI to determine if weapons or dangerous objects are in frame.
- Host: GitHub
- URL: https://github.com/jacobpclouse/hackrpi24-adaptive-threat-security-system
- Owner: jacobpclouse
- License: mit
- Created: 2024-11-09T16:12:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-08T04:31:28.000Z (over 1 year ago)
- Last Synced: 2025-06-26T01:40:46.871Z (about 1 year ago)
- Topics: flask, flask-api, gpu-acceleration, hackrpi2024, kaggle, opencv, quasar, sqlite, tkinter, tkinter-gui, vue, yolo
- Language: Python
- Homepage:
- Size: 35.8 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Crime Catcher
> Safety Through Vigilance!
#### Video Demo here!
#### REPO: HackRPI24-Adaptive-Threat-Security-System - Submitted via Devpost to HackRPI 2024 Urban Upgrades
[]("https://github.com/jacobpclouse/HackRPI24-Adaptive-Threat-Security-System/graphs/contributors")
## What it does
Crime Catcher is a solution to keeping our urban spaces safe and secure.
It is an online surveillance system where a central server receives camera feeds from remote clients and uses AI to determine if weapons or dangerous objects are in frame. The model is GPU-accelerated for efficient processing.
If a dangerous object is detected, the backend automatically sends an email alert to a trusted contact, ensuring every second counts.
Additionally, we save and catalog videos and metadata using an SQLite database. This data can be browsed for review and analysis after the fact.
### Other Features:
- Clients will automatically try to reconnect if they get disconnected from the server (they will disconnect after 5 attempts).
- We integrate time stamps into the video streams such as frame rate, source IP, source building, etc.
- Users can specify an email address in the server to receive alerts about dangerous objects and weapons.
- We used ttk bootstrap to create beautiful interfaces on both the client and server in part 1.
- For Part 2 (the vue.js/quasar and flask dashboard) we have a login system that enforces users to login before they can access the video metadata, ensuring the system is attributable
- We have motion detection in our server stream so only eventful data is saved to disk, conserving bandwidth
## Technologies Used:








## Challenges we ran into
- Working with Tkinter's documentation and using the CUDA framework in our server for GPU acceleration
## Accomplishments that we're proud of
- Motion detection: Creating logic that pauses recording on the server if there is no motion going on in the camera frame.
- AI weapon detection: Utilizing machine learning to detect and locate weapons.
- Video feed centralization: Gathering multiple camera feeds to effectively track and stop bad actors.
## What we learned
Tkinter documentation is difficult to understand, and we learned how to integrate an AI model into our Tkinter server and how to best select a pre trained model to suite our needs. We also learned more about YOLO and model training.
## What's next for Crime Catcher
After our MVP, we want to iterate and add new features like remote client activation in the next sprint.
## Sources:
- Text on Video with OpenCV: https://www.geeksforgeeks.org/python-opencv-write-text-on-video/
- Ascii art generated using: http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
- Guns detection model from: https://www.kaggle.com/code/ahmedgaitani/guns-object-detection-code