# Car_Detect_and_Track **Repository Path**: JimLiuGC/Car_Detect_and_Track ## Basic Information - **Project Name**: Car_Detect_and_Track - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2018-10-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Car tracking and detecting ## What is it ? This project is a **Demo** .We use a YOLO network to detect cars, and a multiple-tracker manager to track each car detected by YOLO. As the official multiple-tracker the OpenCV provide cannot solve a problem, whitch when a target is out of frame, it dosen't provide a method to remove the tracker.So we use a elastic list to storage each tracker. ## How to run this project ? 1. Clone this repo 2. Make sure that your OpenCV version is >= 3.4.3, and you have the yolo model file and coco class-name 3. Run the commond: ```bash python3 main.py ``` ## How does it work? First, we know that the YOLO network can return some bounding boxes of the detected targets. We also know that the tracker model in OpenCV needs the bounding box as input. And we also know that the multi-tracker in OpenCV is a combination of losts of single tracker.But it has some problems. So this tracker model uses a tracker list which contains a lot of single trackers.It will be updated by yolo network when the frame is a keyframe and by tracker model when the frame is not a keyframe. * If a single tracker is failed to update,it will be removed from the list and be removed from the memory space,so it's efficient and fast. * If an object hasn't been tracked, then it will be registered to a new single trakcer and appended to the tracker list. * If an existed tracker is very closed to a bounding box, then it will be updated as a tracker, not as the yolo network.