All Projects → bostondiditeam → Mv3d

bostondiditeam / Mv3d

Multi-View 3D Object Detection Network for Autonomous Driving

Projects that are alternatives of or similar to Mv3d

Python for geosciences
Introduction to python use in geosciences.
Stars: ✭ 357 (-1.38%)
Mutual labels:  jupyter-notebook
Machinelearning Deeplearning Nlp Leetcode Statisticallearningmethod Tensorflow
最近在学习机器学习,深度学习,自然语言处理,统计学习方法等知识,理论学习主要根据readme的链接,在学习理论的同时,决定自己将学习的相关算法用Python实现一遍,并结合GitHub上相关大牛的代码进行改进,本项目会不断的更新相关算法,欢迎star,fork和关注。 主要包括: 1.吴恩达Andrew Ng老师的机器学习课程作业个人笔记 Python实现, 2.deeplearning.ai(吴恩达老师的深度学习课程笔记及资源) Python实现, 3.李航《统计学习方法》 Python代码实现, 4.自然语言处理NLP 牛津大学xDeepMind Python代码实现, 5.LeetCode刷题,题析,分析心得笔记 Java和Python代码实现, 6.TensorFlow人工智能实践代码笔记 北京大学曹健老师课程和TensorFlow:实战Google深度学习框架(第二版) Python代码实现, 附带一些个人心得和笔记。GitHub上有很多机器学习课程的代码资源,我也准备自己实现一下,后续会更新笔记,代码和百度云网盘链接。 这个项目主要是学习算法的,并且会不断更新相关资源和代码,欢迎关注,star,fork! Min's blog 欢迎访问我的博客主页! (Welcome to my blog website !)https://liweimin1996.github.io/
Stars: ✭ 359 (-0.83%)
Mutual labels:  jupyter-notebook
Machine Learning Projects
Machine Learning Experiments and Work
Stars: ✭ 356 (-1.66%)
Mutual labels:  jupyter-notebook
Keras Quora Question Pairs
A Keras model that addresses the Quora Question Pairs dyadic prediction task.
Stars: ✭ 359 (-0.83%)
Mutual labels:  jupyter-notebook
Predicting Car Price From Scraped Data
Picture and specifications scraper
Stars: ✭ 360 (-0.55%)
Mutual labels:  jupyter-notebook
Question generation
Neural question generation using transformers
Stars: ✭ 356 (-1.66%)
Mutual labels:  jupyter-notebook
Spotmicroai
SpotMicro AI - How to build a self-learning Robot
Stars: ✭ 357 (-1.38%)
Mutual labels:  jupyter-notebook
Deep Reinforcement Learning Hands On Second Edition
Deep-Reinforcement-Learning-Hands-On-Second-Edition, published by Packt
Stars: ✭ 362 (+0%)
Mutual labels:  jupyter-notebook
Text summurization abstractive methods
Multiple implementations for abstractive text summurization , using google colab
Stars: ✭ 359 (-0.83%)
Mutual labels:  jupyter-notebook
Tensorflow Learning
B站上炼数成金的公开课笔记
Stars: ✭ 360 (-0.55%)
Mutual labels:  jupyter-notebook
Graphgym
Platform for designing and evaluating Graph Neural Networks (GNN)
Stars: ✭ 344 (-4.97%)
Mutual labels:  jupyter-notebook
Portrait Segmentation
Real-time portrait segmentation for mobile devices
Stars: ✭ 358 (-1.1%)
Mutual labels:  jupyter-notebook
Deep learning coronavirus cure
Using deep learning to generate novel molecules as candidates for binding with coronavirus protease
Stars: ✭ 361 (-0.28%)
Mutual labels:  jupyter-notebook
Quantitative Notebooks
Educational notebooks on quantitative finance, algorithmic trading, financial modelling and investment strategy
Stars: ✭ 356 (-1.66%)
Mutual labels:  jupyter-notebook
Ivpid
Python PID Controller
Stars: ✭ 361 (-0.28%)
Mutual labels:  jupyter-notebook
Predicting Poverty
Combining satellite imagery and machine learning to predict poverty
Stars: ✭ 358 (-1.1%)
Mutual labels:  jupyter-notebook
Modern Nlp In Python
Stars: ✭ 360 (-0.55%)
Mutual labels:  jupyter-notebook
Skope Rules
machine learning with logical rules in Python
Stars: ✭ 362 (+0%)
Mutual labels:  jupyter-notebook
Octave kernel
An Octave kernel for IPython
Stars: ✭ 357 (-1.38%)
Mutual labels:  jupyter-notebook
Pytorch objectdetecttrack
Object detection in images, and tracking across video frames
Stars: ✭ 358 (-1.1%)
Mutual labels:  jupyter-notebook

To clone,

$git clone --recursive  https://github.com/bostondiditeam/MV3D.git

To pull, use

$git pull --recurse-submodules  

Contents

  • Key facts
  • Workflow
  • How to run
  • Todo
  • Issues

Key facts

Workflow

Please refer to here

Key Dependency

  • A Nvidia GPU card with computation capability > 3
  • CUDA
  • Python3.5 for MV3D related code
  • Tensorflow-GPU(version>1.0)
  • Python2.7 for ROS related script

File Structure

├── data   <-- all data is stored here. (Introduced in detail below)
│   ├── predicted  <-- after prediction, results will be saved here.
│   ├── preprocessed   <-- MV3D net will take inputs from here(after data.py) 
│   └── raw <-- raw data
├── environment_cpu.yml  <-- install cpu version.
├── README.md
├── saved_model                 <--- model and weights saved here. 
├── src        <-- MV3D net related source code 
│   ├── config.py
│   ├── data.py
│   ├── didi_data
│   ├── kitti_data
│   ├── lidar_data_preprocess
│   ├── make.sh
│   ├── model.py
│   ├── mv3d_net.py
│   ├── net
│   ├── play_demo.ipynb
│   ├── __pycache__
│   ├── tracking.py   <--- prediction after training. 
│   ├── tracklets
│   └── train.py    <--- training the whole network. 
│── utils    <-- all related tools put here, like ros bag data into kitti format
│    └── bag_to_kitti  <--- Take lidar value from ROS bag and save it as bin files.
└── external_models    <-- use as a submodule, basically code from other repos.
    └── didi-competition  <--- Code from Udacity's challenge repo with slightly modification, sync with Udacity's new
     updates regularly. 

Related data are organized in this way. (Under /data directory)

├── predicted <-- after prediction, results will be saved here.
│   ├── didi <-- when didi dataset is used, the results will be put here
│   └── kitti <-- When kitti dataset used for prediction, put the results here
│       ├── iou_per_obj.csv   <-- What will be evaluated for this competition, IoU score
│       ├── pr_per_iou.csv   <--precision and recall rate per iou, currently not be evaluated by didi's rule
│       └── tracklet_labels_pred.xml  <-- Tracklet generated from prediction pipeline. 
├── preprocessed  <-- Data will be fed into MV3D net (After processed by data.py)
│   ├── didi <-- When didi dataset is processed, save it here
│   └── kitti <-- When Kitti dataset is processed, save it here
│       ├── gt_boxes3d
│           └── 2011_09_26
│               └── 0005
|                   |___ 00000.npy
├       |── gt_labels
│           └── 2011_09_26
│               └── 0005 
|                   |___ 00000.npy
|       ├── rgb
│           └── 2011_09_26
│               └── 0005 
|                   |___ 00000.png
|       ├── top
│           └── 2011_09_26
│               └── 0005 
|                   |___ 00000.npy
|       └── top_image
|           └── 2011_09_26
|               └── 0005 
|                   |___ 00000.png
└── raw  <-- this strictly follow KITTI raw data file format, while seperated into didi and kitti dataset. 
    ├── didi <-- will be something similar to kitti raw data format below. 
    └── kitti
        └── 2011_09_26
            ├── 2011_09_26_drive_0005_sync
            │   ├── image_02
            │   │   ├── data
            │   │   │   └── 0000000000.png
            │   │   └── timestamps.txt
            │   ├── tracklet_labels.xml
            │   └── velodyne_points
            │       ├── data
            │       │   └── 0000000000.bin
            │       ├── timestamps_end.txt
            │       ├── timestamps_start.txt
            │       └── timestamps.txt
            ├── calib_cam_to_cam.txt
            ├── calib_imu_to_velo.txt
            └── calib_velo_to_cam.txt

Modification needed to run

After Tensorflow-GPU could work If you are not using Nvidia K520 GPU, you need to change "arch=sm_30" to other value in src/net/lib/setup.py and src/lib/make.sh in order to compiler *.so file right. Here is short list for arch values for different architecture.

# Which CUDA capabilities do we want to pre-build for?
# https://developer.nvidia.com/cuda-gpus
#   Compute/shader model   Cards
#   6.1		      P4, P40, Titan X so CUDA_MODEL = 61
#   6.0                    P100 so CUDA_MODEL = 60
#   5.2                    M40
#   3.7                    K80
#   3.5                    K40, K20
#   3.0                    K10, Grid K520 (AWS G2)
#   Other Nvidia shader models should work, but they will require extra startup
#   time as the code is pre-optimized for them.
CUDA_MODELS=30 35 37 52 60 61

Test your Tensorflow-GPU is running by"

import tensorflow as tf
sess = tf.Session()
print(tf.__version__) # version more than v1. 

It runs without error message and show "successfully opened CUDA library libcublas.so.8.0 locally", then it is in CUDA successfully.

source activate didi
sudo chmod 755 ./make.sh
./make.sh
# prerequisite for next step, i.e. running preprocessing using data.py, is to 
# follow steps in utils/bag_to_kitti if using didi data
python data.py # for process raw data to input network input format
python train.py # training the network. 

Some other readme.md files inside this repo:

Issue

  • Not related to this repo, but if you are using Amazon CarND AWS AMI (Ubuntu 16.04 and with tensorflow-gpu 0.12 installed), pip install --upgrade tensorflow won't work and will introduce driver/software conflict. Because CarND AMI has a nvidia 367 driver, but after running above line, it will install 375 driver. I think in this case, tensorflow-gpu (version >1.0) need to compiled from source code.
  • If you already have a Tensorflow-GPU > 1, then the above ./make.sh works.
  • If you see error message "tensorflow.python.framework.errors_impl.NotFoundError: YOUR_FOLDER/roi_pooling.so: undefined symbol: ZN10tensorflow7strings6StrCatB5cxx11ERKNS0_8AlphaNumES3", it is related to compilation of roi_pooling layer. A simple fix will be changing "GLIBCXX_USE_CXX11_ABI=1" to "GLIBCXX_USE_CXX11_ABI=0" in "src/net/lib/make.sh" (line 17)
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].