All Projects → tj27-vkr → Monocular-Vehicle-Localization

tj27-vkr / Monocular-Vehicle-Localization

Licence: other
Estimating the orientation and the relative dimensions of vehicles by producing a 3d bounding frame

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Monocular-Vehicle-Localization

Rtm3d
Unofficial PyTorch implementation of "RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving" (ECCV 2020)
Stars: ✭ 211 (+653.57%)
Mutual labels:  self-driving-car, autonomous-vehicles
SelfDrivingCarsControlDesign
Self Driving Cars Longitudinal and Lateral Control Design
Stars: ✭ 96 (+242.86%)
Mutual labels:  self-driving-car, autonomous-vehicles
Awesome Carla
👉 CARLA resources such as tutorial, blog, code and etc https://github.com/carla-simulator/carla
Stars: ✭ 246 (+778.57%)
Mutual labels:  self-driving-car, autonomous-vehicles
Apollo perception ros
Object detection / tracking / fusion based on Apollo r3.0.0 perception module in ROS
Stars: ✭ 179 (+539.29%)
Mutual labels:  self-driving-car, autonomous-vehicles
highway-path-planning
My path-planning pipeline to navigate a car safely around a virtual highway with other traffic.
Stars: ✭ 39 (+39.29%)
Mutual labels:  self-driving-car, autonomous-vehicles
Awesome Self Driving Car
An awesome list of self-driving cars
Stars: ✭ 185 (+560.71%)
Mutual labels:  self-driving-car, autonomous-vehicles
RCNN-Vehicle-Tracking-Lane-Detection
Vehicle Detection using Mask R-CNN and Computer Vision based Lane Detection
Stars: ✭ 116 (+314.29%)
Mutual labels:  self-driving-car, autonomous-vehicles
Multiagenttorcs
The multi-agent version of TORCS for developing control algorithms for fully autonomous driving in the cluttered, multi-agent settings of everyday life.
Stars: ✭ 122 (+335.71%)
Mutual labels:  self-driving-car, autonomous-vehicles
Visualizing-lidar-data
Visualizing lidar data using Uber Autonomous Visualization System (AVS) and Jupyter Notebook Application
Stars: ✭ 75 (+167.86%)
Mutual labels:  self-driving-car, autonomous-vehicles
dig-into-apollo
Apollo notes (Apollo学习笔记) - Apollo learning notes for beginners.
Stars: ✭ 1,786 (+6278.57%)
Mutual labels:  self-driving-car, autonomous-vehicles
Airsim
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Stars: ✭ 12,528 (+44642.86%)
Mutual labels:  self-driving-car, autonomous-vehicles
self-driving-car
Implementation of the paper "End to End Learning for Self-Driving Cars"
Stars: ✭ 54 (+92.86%)
Mutual labels:  self-driving-car, autonomous-vehicles
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: ✭ 1,939 (+6825%)
Mutual labels:  self-driving-car, autonomous-vehicles
Awesome Self Driving Cars
An awesome list of self-driving cars
Stars: ✭ 208 (+642.86%)
Mutual labels:  self-driving-car, autonomous-vehicles
Self Driving Golf Cart
Be Driven 🚘
Stars: ✭ 147 (+425%)
Mutual labels:  self-driving-car, autonomous-vehicles
Awesome-Self-Driving
an awesome list of self-driving algorithms, software, tools
Stars: ✭ 74 (+164.29%)
Mutual labels:  self-driving-car, autonomous-vehicles
Lidarobstacledetection
Lidar Obstacle Detection
Stars: ✭ 90 (+221.43%)
Mutual labels:  self-driving-car, autonomous-vehicles
Self Driving Vehicle
Simulation of self-driving vehicles in Unity. This is also an implementation of the Hybrid A* pathfinding algorithm which is useful if you are interested in pathfinding for vehicles.
Stars: ✭ 112 (+300%)
Mutual labels:  self-driving-car, autonomous-vehicles
Model-Predictive-Control
C++ implementation of Model Predictive Control(MPC)
Stars: ✭ 51 (+82.14%)
Mutual labels:  self-driving-car, autonomous-vehicles
SelfDrivingRCCar
Autonomous RC Car using Neural Networks, Python and Open CV
Stars: ✭ 102 (+264.29%)
Mutual labels:  self-driving-car, autonomous-vehicles

Monocular Vehicle Localization (In Progress)

Introduction

Estimating the orientation and the size of vehicle using a single 2d image. The output is a 3d bounding box around the detected vehicle.

The model is trained on KITTI dataset for 3d object detection. The prediction is made little efficient by detecting the 2d bounding frames with a separate NN model and running the Pose estimation on the particular frame.

The 2d detection is done with a simple SSD Tensorflow object detection pretrained model for now; can be optimized with a standalone vehicle detection model. The 3d prediction model is constructed of CNN layers and outputs the dimension and the orientation of the detected object. The traditional approach utilizes a model that regresses the 3d coordinates of the object detected. Here, monodepth model is used to determine the depth of the object detected and the corresponding x,y position in the camera coordinates is calculated by stereo vision triangulation. This helps in the precise perception of the environment.

Architecture

Prerequisites

Usage

Edit the necessary configurations and paths in config.py

#export tensorflow utils for 2d detection model
cd tensorflow/models/research
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

#export current working directory
cd working_directory
export PYTHONPATH=$PYTHONPATH:`pwd`

#train the model
python main.py --mode=train

#evaluate example images
python main.py --mode=predict

Dataset

For training, KITTI 3d detection dataset was used. Note that the location of the object is in camera coordinates, which is defined to be camera- x:right y:down z:forward Below mentioned table from KITTI object development kit describes the data in the labeles file.

#Values    Name      Description
----------------------------------------------------------------------------
   1    type         Describes the type of object: 'Car', 'Van', 'Truck',
                     'Pedestrian', 'Person_sitting', 'Cyclist', 'Tram',
                     'Misc' or 'DontCare'
   1    truncated    Float from 0 (non-truncated) to 1 (truncated), where
                     truncated refers to the object leaving image boundaries
   1    occluded     Integer (0,1,2,3) indicating occlusion state:
                     0 = fully visible, 1 = partly occluded
                     2 = largely occluded, 3 = unknown
   1    alpha        Observation angle of object, ranging [-pi..pi]
   4    bbox         2D bounding box of object in the image (0-based index):
                     contains left, top, right, bottom pixel coordinates
   3    dimensions   3D object dimensions: height, width, length (in meters)
   3    location     3D object location x,y,z in camera coordinates (in meters)
   1    rotation_y   Rotation ry around Y-axis in camera coordinates [-pi..pi]
   1    score        Only for results: Float, indicating confidence in
                     detection, needed for p/r curves, higher is better.

For the final prediction, the bbox data is provided by the 2d object detection model ssd_detection.py which uses pretrained Tensorflow COCOmobilenet to output a 2d bounding box.

Ouput

The below images are the ouput from the partially trained model on 8 vCPUs, 52 GB memory machine (no GPU). The output will be more precise after complete training (currently trained only for 1 out of 500 Epochs).

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].