Project Icon

dynablox

基于体积映射的复杂环境动态对象实时检测方法

Dynablox是一种基于在线体积映射的实时动态对象检测方法,针对复杂环境中的多样化移动物体。该开源项目提供完整的安装指南、数据集和运行示例,便于研究人员复现和扩展。Dynablox在准确性和实时性方面表现优异,已被NVIDIA的nvblox项目采用,可利用GPU加速实现高分辨率检测。其应用领域包括自动驾驶和机器人导航等。

Ubuntu 20.04 + ROS Noetic: 构建

Dynablox

一种基于在线体积映射的方法,用于在复杂环境中实时检测各种动态物体。

目录

学术资料

安装设置

示例

论文

如果您发现此软件包对您的研究有用,请考虑引用我们的论文:

  • Lukas Schmid, Olov Andersson, Aurelio Sulser, Patrick Pfreundschuh, 和 Roland Siegwart. "Dynablox: 复杂环境中多样动态物体的实时检测"发表于《IEEE机器人与自动化快报(RA-L)》,第8卷,第10期,6259-6266页,2023年10月。[ IEEE | ArXiv | 视频 ]
    @article{schmid2023dynablox,
      title={Dynablox: Real-time Detection of Diverse Dynamic Objects in Complex Environments},
      author={Schmid, Lukas, and Andersson, Olov, and Sulser, Aurelio, and Pfreundschuh, Patrick, and Siegwart, Roland},
      booktitle={IEEE Robotics and Automation Letters (RA-L)},
      year={2023},
      volume={8},
      number={10},
      pages={6259 - 6266},
      doi={10.1109/LRA.2023.3305239}}
    }
    

视频

在YouTube上可以观看问题、方法和结果的简要概述: <img src=https://user-images.githubusercontent.com/36043993/233706937-1ccd0c03-d86b-4e4f-ad47-48c38e8a7f8d.png alt="Dynablox YouTube视频">

最新消息

我们很高兴得知Dynablox已被整合到NVIDIA的nvblox中,该算法的并行性可以充分利用GPU,实现快速、高分辨率的移动物体检测!

设置

这个软件包有一个可用的Docker镜像。请查看DockerHub页面上的使用说明。

安装

  • 版本说明: 本软件包是在Ubuntu 20.04和ROS Noetic环境下开发的。其他版本也应该可以使用,但不能保证完全支持。
  1. 如果尚未安装,请安装ROS。我们推荐使用Desktop-Full版本。

  2. 如果尚未设置,请设置catkin工作空间:

    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws
    catkin init
    catkin config --extend /opt/ros/$ROS_DISTRO
    catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
    catkin config --merge-devel
    
  3. 安装系统依赖:

    sudo apt-get install python3-vcstool python3-catkin-tools ros-$ROS_DISTRO-cmake-modules protobuf-compiler autoconf git rsync -y   
    
  4. 使用SSH密钥克隆仓库:

    cd ~/catkin_ws/src
    git clone git@github.com:ethz-asl/dynablox.git
    
  5. 安装ROS依赖:

    cd ~/catkin_ws/src
    vcs import . < ./dynablox/ssh.rosinstall --recursive 
    
  6. 构建:

    catkin build dynablox_ros
    

数据集

为了运行演示,我们使用城市动态物体激光雷达(DOALS)数据集。 要下载数据并为我们的演示预处理,请使用提供的脚本:

roscd dynablox_ros/scripts
./download_doals_data.sh /home/$USER/data/DOALS # 或您选择的数据目标位置。

我们还收集了一个新的数据集,包含复杂场景中的各种动态物体。 完整的数据集和描述可以在这里找到。 要下载处理好的、可直接运行的演示数据,请使用提供的脚本:

roscd dynablox_ros/scripts
./download_dynablox_data.sh /home/$USER/data/Dynablox # 或您选择的数据目标位置。

示例

运行DOALS序列

  1. 如果尚未完成,请按照这里的说明下载DOALS数据集。

  2. 调整dynablox_ros/launch/run_experiment.launch中的数据集路径:

    <arg name="bag_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/bag.bag" />  
    
  3. 运行

    roslaunch dynablox_ros run_experiment.launch 
    
  4. 现在您应该能看到动态物体在传感器移动过程中被检测到:

运行DOALS示例

运行Dynablox序列

  1. 如果尚未完成,请按照这里的说明下载Dynablox数据集。

  2. 调整dynablox_ros/launch/run_experiment.launch中的数据集路径,并将use_doals设置为false:

    <arg name="use_doals" default="false" /> 
    <arg name="bag_file" default="/home/$(env USER)/data/Dynablox/processed/ramp_1.bag" />  
    
  3. 运行

    roslaunch dynablox_ros run_experiment.launch 
    
  4. 现在您应该能看到动态物体在传感器移动过程中被检测到: 运行Dynablox示例

运行和评估实验

运行实验

  1. 如果尚未完成,请按照此处所述下载DOALS数据集。

  2. dynablox_ros/launch/run_experiment.launch 中调整数据集路径:

    <arg name="bag_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/bag.bag" />  
    
  3. dynablox_ros/launch/run_experiment.launch 中,设置 evaluate 标志,调整地面真值数据路径,并指定存储生成的输出数据的位置:

    <arg name="evaluate" default="true" />
    <arg name="eval_output_path" default="/home/$(env USER)/dynablox_output/" />
    <arg name="ground_truth_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/indices.csv" />
    
  4. 运行

    roslaunch dynablox_ros run_experiment.launch 
    
  5. 等待数据集处理完成。之后Dynablox应自动关闭。

分析数据

  • 打印检测性能指标:

    1. 运行:
    roscd dynablox_ros/src/evaluation
    python3 evaluate_data.py /home/$USER/dynablox_output
    
    1. 现在您应该可以看到该文件夹中所有实验的性能统计数据:
    1/1 数据条目已完成。
    数据                     物体_IoU               物体_精确度              物体_召回率
    hauptgebaeude_1          89.8 +- 5.6              99.3 +- 0.4                   90.3 +- 5.6
    全部                      89.8 +- 5.6              99.3 +- 0.4                   90.3 +- 5.6
    
  • 检查分割结果:

    1. 运行:
    roslaunch dynablox_ros cloud_visualizer.launch file_path:=/home/$USER/dynablox_output/clouds.csv
    
    1. 现在您应该可以看到标注的地面真值点云的分割结果,显示真阳性(绿色)、真阴性(黑色)、假阳性(蓝色)、假阴性(红色)和超出范围(灰色)的点: 评估
  • 检查运行时间和配置: 每个实验的附加信息会自动存储在 timings.txtconfig.txt 中。

高级选项

  • 为实验添加漂移: 要运行带有漂移的实验,请在 dynablox_ros/launch/run_experiment.launch 中指定预先计算的漂移方案之一:

    <arg name="drift_simulation_rollout" default="doals/hauptgebaeude/sequence_1/light_3.csv" />
    

    所有预先计算的方案都可以在 drift_simulation/config/rollouts 中找到。请注意,指定的序列需要与正在播放的数据匹配。对于每个序列,每种强度都有3个方案。

    或者,使用 drift_simulation/launch/generate_drift_rollout.launch 为其他数据集创建新的方案。

  • 更改Dynablox的配置: Dynablox中存在的所有参数都列在 dynablox_ros/config/motion_detector/default.yaml 中,请随意根据您的使用情况调整方法!

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号