Giter Site home page Giter Site logo

royzon / 3d-lidar-multi-object-tracking Goto Github PK

View Code? Open in Web Editor NEW

This project forked from huangcongqing/3d-lidar-multi-object-tracking

0.0 0.0 0.0 14.4 MB

3D-MOT(多目标检测和追踪) (2020 · 秋)

License: MIT License

CMake 0.29% C++ 99.46% C 0.25% Objective-C 0.01%

3d-lidar-multi-object-tracking's Introduction

3D-LIDAR-Multi-Object-Tracking

3D-MOT(多目标检测和追踪) 代码有详细注解 (2020 · 秋)

参考:https://github.com/k0suke-murakami/object_tracking

@双愚 , 若fork或star请注明来源

版本(建议先看kitti分支)

  • main : 使用个人采集数据集
  • kitti : 使用kitti数据集,初学者建议切换看这个分支,无须自己配置🎉️🎉️🎉️🎉️🎉️

两文件夹介绍

此仓库的两文件夹

目录

├── src
│   ├── groundremove
│   │   └──extract_ground.cpp // 提取地面 没有使用?!!!
│   │   └── gaus_blur.cpp           //高斯模糊  #include "ground_removal.h"
│   │   └── ground_removal.cpp   //地面去除 #include "gaus_blur.h"  各种函数的集合,没有主函数
│   │   └── main.cpp  //  #include "ground_removal.h"
│   └──  cluster
│          ├── box_fitting.cpp        //  Bounding Box Fitting 边界框拟合
│          ├── component_clustering.cpp// 利用连通组件聚类来区分提升点中的每个可能的对象。
│          ├── main.cpp          //  #include "component_clustering.h"  "box_fitting.h"
└── tracking
    ├── Eigen
    │   ├── ...
    ├── ukf.cpp        //  Unscented Kalman Filter (UKF)无损滤波器
    ├── imm_ukf_jpda.cpp//   #include "ukf.h" IMM-UK-JPDAF的“耦合”滤波器
    └── main.cpp         //  #include "imm_ukf_jpda.h"

Intro

This package includes Ground Removal, Object Clustering, Bounding Box, IMM-UKF-JPDAF, Track Management and Object Classification for 3D-LIDAR multi object tracking. The idea is mainly come from this paper.

代码对应论文:3D-LIDAR Multi Object Tracking for Autonomous Driving(Master论文)

下面介绍用kitti数据集相关操作

Setup

Frameworks and Packages

Make sure you have the following is installed:

Dataset

数据集已处理好,放在百度网盘上,需要自己下载

编译

将本仓库下的2个文件夹移动到catkin_wp/src下,然后执行下面操作

// 创建环境变量 src中运行
mkdir -p catkin_wp/src
cd catkin_wp/src
catkin_init_workspace

// 编译(需要回到工作空间catkin_wp)
cd ..
catkin_make  // 产生build和devel文件夹


//设置环境变量,找到src里的功能包(每个新的shell窗口都要执行以下source devel/setup.bash)
source devel/setup.bash  // 不同shell,不同哦.sh  .zsh           通过设置gedit ~/.zshrc,不用每次都source

详情可参考:https://www.yuque.com/docs/share/e59d5c91-b46d-426a-9957-cd262f5fc241?# 《09.创建工作空间与功能包※※※》

修改配置文件

举例:修改输入topic对应的frame_id(有好几处,可以全局搜索进行修改)

cd object_tracking/src/groundremove/main.cpp

#第8行      "/kitti/velo/pointcloud" --话题名(可以根据不同数据集修改topic话题名) 
ros::Subscriber sub = nh.subscribe("/kitti/velo/pointcloud", 160, cloud_cb); 

# 修改frame_id = "velo_link"

Start

各模块代码路径:

PLEASE make sure you load the files, src/ego_velo.txt and src/ego_yaw.txt in src/imm_ukf_jpda.cpp l68, l69

Terminal 1
roscore
Terminal 2

--loop循环paly不推荐加,tracking和上一帧有关,误差越来越大

# kitti官方 注意修改路径path
rosbag play path/kitti_2011_09_26_drive_0005_synced.bag --loop


Terminal 3
rviz

arch

Terminal 4

#  推荐运行launch
roslaunch  object_tracking test.launch
#  复杂
rosrun object_tracking ground
rosrun object_tracking cluster
rosrun object_tracking tracking

Result

arch

Youtube Clip

IMAGE ALT TEXT HERE

License

Copyright (c) 双愚. All rights reserved.

Licensed under the MIT License.

3d-lidar-multi-object-tracking's People

Contributors

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