WearHelmet
Automated Helmet-Detection & Traffic-Fine (Challan) System
Python
Darknet YOLOv3
TensorFlow / Keras CNN
OpenCV (cv2.dnn)
MongoDB
Computer Vision
About the project
WearHelmet is a computer-vision system for toll-plaza surveillance: it processes recorded toll-gate survey footage to automatically detect motorcyclists riding without a helmet, snap case evidence (bike, number plate, rider, rider-head crops), and log each violation as an "accusation" with a unique accusation number in a MongoDB evidence store — retrievable on demand for enforcement. Built as a team of two during a mandatory 15-day internship at Iva Technos Pvt. Ltd.
What I built / how it worked
- Two-stage detection — a custom Darknet YOLOv3 detector (
yolov3-custom.cfg, 2 classes: bike and number plate) localizes the bike and its plate in each frame; a TensorFlow/Keras CNN (helmet-nonhelmet_cnn.h5) then inspects the rider's head region and flags riders without a helmet. - Case evidence capture — for every no-helmet hit, the number-plate, rider, bike, and rider-head crops are written to a timestamped case folder under a unique accusation number.
- MongoDB evidence store —
Database_Feeder.pyuploads each case's images (base64) plus metadata (accusation number, location, date, time, fine status) into MongoDB, then clears the local case folders. - Case retrieval —
Database_Retriever.pylooks up an accusation number and reconstructs the case folder from MongoDB, including the stored fine status — the foundation of a per-case pay-or-dispute workflow. - Detection engineering — OpenCV DNN (blob → forward pass, confidence thresholding, non-max suppression), CUDA-optimized inference, and image handling with imutils/NumPy.
Feature highlights
- Custom Darknet YOLOv3 (2-class bike/number-plate) + CNN helmet classification on toll-survey footage.
- Automatic no-helmet violation cases with unique accusation-number timestamps and four evidence crops.
- MongoDB base64 evidence logging with fine-status metadata and CLI retrieval by accusation number.