Giter Site home page Giter Site logo

sfnd_3d_object_tracking's Introduction

3D Object Tracking Project

alt text

Introduction

The idea of the project is to build the 3D object tracking system by using the camera image information and Lidar point clouds for computing the time to collision of each tracked objects. Evaluated detectors and descriptors pairs from mid term project are used for keypoint matching and YOLO object detection framework is used to detect the vehicles. The final project consists of five parts:

  1. The first part is focus on the matching of 3D Object bounding boxes using the matched key points.

  2. Second part compute the lidar based time to collision.

  3. In the third part, prepare the TTC computation based on camera measurements by associating keypoint correspondences to the bounding boxes which encloses them.

  4. The fourth part compute the camera based time to collision.

  5. The final part mainly focuses on the performance evaluations.

Project Rubric

Match 3D Objects

This task is to implement the method "matchBoundingBoxes", which takes as input both the previous and the current data frames and provides as output the ids of the matched regions of interest (i.e. the boxID property). Matches must be the ones with the highest number of keypoint correspondences. std::multimap is used to store the matched IDs of previous and current BBs.

Compute Lidar-based TTC

Compute the time-to-collision in second for all matched 3D objects using only Lidar measurements from the matched bounding boxes between current and previous frame. Median distance ratio is used to remove the outlier lidar points.

Associate Keypoint Correspondences with Bounding Boxes

Prepare the TTC computation based on camera measurements by associating keypoint correspondences to the bounding boxes which enclose them. All matches which satisfy the condition is added to a kptMatches in the respective bounding box. Median distance ratios are used in next TTC calculation to remove outliers.

Compute Camera-based TTC

Compute the time-to-collision in second for all matched 3D objects using only keypoint correspondences from the matched bounding boxes between current and previous frame. Median distance ratio is used to remove outliers influence.

Performance Evaluations

Performance Evaluation 1

Time to collision computations from Lidar points are better than the camera based TTC results and they are quite accurate. Some of the frames where outliers present can be neglected and solved by finding the median point instead of the closest point. Below are some frames with outliers.

alt text

Performance Evaluation 2

Best 3 detector/ descriptor combinations from mid term project shall be used to evaluate the accuracy of time to collision from both camera and lidar sensors. Below are the some TTC results. As we can see, since the detector/descriptor combinations are chosen based on the speed, TTC results from camera are not accurate enough compared to lidar results.

alt text

Dependencies for Running Locally

Basic Build Instructions

  1. Clone this repo.
  2. Make a build directory in the top level project directory: mkdir build && cd build
  3. Compile: cmake .. && make
  4. Run it: ./3D_object_tracking.

sfnd_3d_object_tracking's People

Contributors

mlsdpk avatar

Watchers

 avatar  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.