Code Monkey home page Code Monkey logo

2018aicity_teamuw's Introduction

Single-camera and Inter-camera Vehicle Tracking and 3D Speed Estimation Based on Fusion of Visual and Semantic Features for the NVIDIA AI City Challenge Workshop at CVPR 2018

This repository contains our source code of Track 1 and Track 3 in the NVIDIA AI City Challenge Workshop at CVPR 2018.

The source code of Track 1 is built in MATLAB and C++, with our trained YOLOv2 model provided.

The source code of Track 3 is developed in Python and C++.

Both Track 1 and Track 3 have been tested on Linux and Windows. Dependencies include CUDA, cuDNN and OpenCV.

Our UW team members include Zheng(Thomas) Tang, Gaoang Wang, Hao(Alex) Xiao, Aotian Zheng.

[Paper], [Slides], [Poster], [Project Page], [2018 NVIDIA AI City Challenge]

Introduction

NVIDIA AI City Challenge Workshop at CVPR 2018

The NVIDIA AI City Challenge Workshop at CVPR 2018 will specifically focus on ITS problems such as

  1. Estimating traffic flow characteristics, such as speed
  2. Leveraging unsupervised approaches to detect anomalies caused by crashes, stalled vehicles, etc. This is the only way to get the humans in the loop pay attention to meaningful visual information
  3. Multi-camera tracking, and object re-identification in urban environments

Our team participated in 2 out of 3 tracks:

  1. Track 1 - Traffic Flow Analysis - Participating teams submit results for individual vehicle speed for a test set containing 27 1-minute videos. Performance is evaluated based on ground truth generated by a fleet of control vehicles that were driven during the recording. Evaluation for Challenge Track 1 is based on detection rate of the control vehicles and the root mean square error of the predicted control vehicle speeds.
  2. Track 3 - Multi-camera Vehicle Detection and Reidentification - Participating teams identify all vehicles that are seen passing at least once at all of 4 different locations in a set of 15 videos. Evaluation for Challenge Track 3 is based on detection accuracy and localization sensitivity for a set of ground-truth vehicles that were driven through all camera locations at least once.

Detailed information of this challenge can be found here.

Our team achieves rank #1 in both Track 1 and Track 3. The demo videos can be viewed here.

Single-camera Tracking (SCT)

In SCT, our loss function consists of motion, temporal and appearance attributes. Especially, a histogram-based adaptive appearance model is designed to encode long-term appearance change for enhanced robustness. The change of loss is incorporated with a bottom-up clustering strategy for the association of tracklets. Robust 2D-to-3D backprojection is achieved with EDA optimization applied to camera calibration for speed estimation.

Inter-camera Tracking (ICT)

The proposed appearance model together with DCNN features, license plates, detected car types and traveling time information are combined for the computation of cost function in ICT.

Code structure

Track 1

Under the ./Track1/ folder, there are 6 software packages:

  1. VDO2IMG_IPL: Converting each video file to a folder of frame images
  2. CAM_CAL_IPL: Manual camera calibration based on minimization of reprojection error and EDA optimization
  3. YOLO_VEH_IPL: Extension of the YOLOv2 object detector with our trained model for vehicle detection/classification
  4. TC_tracker: Proposed tracklet-clustering-based tracking method
  5. APP_MDL_IPL: Extraction of histogram-based adaptive apperance models and their comparison
  6. SPD_EST_IPL: Speed estimation based on input of tracking results and camera parameters

Detailed description of each package is given in each subfolder.

Track 3

Under the ./Track3/ folder, there are 3 software packages:

  1. Multi-Camera Vehicle Tracking and Re-identification: Multi-camera vehicle tracking based on a fusion of histogram-based adaptive appearance models, DCNN features, detected car types and traveling time information
  2. YOLO_LP_IPL: Detection of license plate from each cropped vehicle image
  3. LP_COMP_IPL: Comparison of license plates under low resolution

Detailed description of each package is given in each subfolder.

The output of Multi-Camera Vehicle Tracking and Re-identification is the similarity score between each pair of vehicles for comparison. We can convert it into a distance score by inverse proportion. The output of LP_COMP_IPL is the distance score between each two license plates. The final distance score between two vehicles is the multiplication of the above two distance scores. Several vehicle pairs that enjoy low distance scores and appear in all 4 camera locations are submitted to Track 3 for evaluation.

Reference

Please cite these papers in your publications if it helps your research:

@inproceedings{tang2018vehicle,
  author = {Zheng Tang and Gaoang Wang and Hao Xiao and Aotian Zheng and Jenq-Neng Hwang},
  booktitle = {CVPR Workshop (CVPRW) on the AI City Challenge},
  title = {Single-camera and Inter-camera Vehicle Tracking and 3D Speed Estimation Based on Fusion of Visual and Semantic Features},
  year = {2018},
  pages = {108--115}
}

@inproceedings{tang2017vehicle,
  author = {Zheng Tang and Gaoang Wang and Tao Liu and Young-Gun Lee and Adwin Jahn and Xu Liu and Xiaodong He and Jenq-Neng Hwang},
  booktitle = {arXiv preprint arXiv:1708.06831},
  title = {Multiple-kernel Based Vehicle Tracking Using 3D Deformable Model and Camera Self-Calibration},
  year = {2017}
}

Disclaimer

For any question you can contact Zheng (Thomas) Tang.

2018aicity_teamuw's People

Contributors

alexxiao95 avatar zhengthomastang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.