这里写自定义目录标题

  • python版本的选择
  • 错误类型
  • 解决方法
  • 总结

在尝试复现大神Adamshan的无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现时出现了很多的问题,在阅读评论时,发现很多朋友都出现了复现失败的情况,在此将个人在复现时遇到的问题以及部分细节进行汇总,希望能够帮助有需要的人。
原文链接:https://blog.csdn.net/AdamShan/article/details/83544089

python版本的选择

一般而言,我们都选择python2.7作为使用的版本,因为ros目前还无法支持python3,所以在使用python3时总是会出现各种各样的错误。

错误类型

按照原文的方法下载和配置好了以后,相信有很多朋友都遇到了直接启动roslaunch时

roslaunch squeezeseg_ros squeeze_seg_ros.launch

会出现两个常见的问题,
第一个问题是:
import tensorflow as tf
ImportError: No module named tensorflow
明明已经安装了tensorflow,却总是提醒不能导入tensorflow模块,导致节点不能正常启动。

第二个问题是
[ERROR] [1556797434.210039200]: PluginlibFactory: The plugin for class ‘rviz_plugin_selected_points_publisher/SelectedPointsPublisher’ failed to load. Error: According to the loaded plugin descriptions the class rviz_plugin_selected_points_publisher/SelectedPointsPublisher with base class type rviz::Tool does not exist. Declared types are jsk_rviz_plugin/CloseAll jsk_rviz_plugin/OpenAll jsk_rviz_plugin/OverlayPicker jsk_rviz_plugin/ScreenshotListener rviz/FocusCamera rviz/Interact rviz/Measure rviz/MoveCamera rviz/PublishPoint rviz/Select rviz/SetGoal rviz/SetInitialPose rviz_plugin_tutorials/PlantFlag
大概意思是Rviz的某个插件出现了问题,不能正常启动。

解决方法

因为以上两个问题的出现不能复现的朋友,可以尝试以下步骤:
1,打开roslaunch文件,将squeezeseg_ros节点以及Rviz的启动部分注释掉,然后执行

roslaunch squeezeseg_ros squeeze_seg_ros.launch

会报错终止,但是没有关系,数据的路径等配置此时会被写入。
2,打开ros的主机,进入srcipt文件夹,直接使用python2启动squeezeseg_ros_node.py文件。

roscore
cd ~/catkin_ws/src/squeezeseg_ros/script
python squeezeseg_ros_node.py

3,接下来命令框会提示你有模块无法导入,如

from tensorflow.python.keras._impl.keras.backend import abs
ImportError: cannot import name abs
 from easydict import EasyDict as edict
ImportError: No module named easydict

这样的两到三个依赖包未安装。

4,使用pip依次安装(abs的问题我是更换了tensorflow版本到1.8)依赖包之后,最终运行你会得到如下图的情况,说明节点已经启动。

[INFO] [1556799937.961599]: Point cloud processed. Took 72.716000 ms.
[INFO] [1556799938.034542]: Point cloud processed. Took 72.502000 ms.
[INFO] [1556799938.109518]: Point cloud processed. Took 74.331000 ms.
[INFO] [1556799938.183191]: Point cloud processed. Took 72.869000 ms.
[INFO] [1556799938.256318]: Point cloud processed. Took 72.519000 ms.
[INFO] [1556799938.328574]: Point cloud processed. Took 71.642000 ms.
[INFO] [1556799938.402744]: Point cloud processed. Took 73.600000 ms.
[INFO] [1556799938.476694]: Point cloud processed. Took 73.255000 ms.
[INFO] [1556799938.549138]: Point cloud processed. Took 71.745000 ms.
[INFO] [1556799938.623082]: Point cloud processed. Took 73.337000 ms.
[INFO] [1556799938.696279]: Point cloud processed. Took 72.545000 ms.
[INFO] [1556799938.768805]: Point cloud processed. Took 71.887000 ms.
[INFO] [1556799938.841140]: Point cloud processed. Took 71.723000 ms.
[INFO] [1556799938.914126]: Point cloud processed. Took 72.439000 ms.
[INFO] [1556799938.987570]: Point cloud processed. Took 72.852000 ms.
[INFO] [1556799939.060179]: Point cloud processed. Took 71.918000 ms.
[INFO] [1556799939.133514]: Point cloud processed. Took 72.750000 ms.
[INFO] [1556799939.206661]: Point cloud processed. Took 72.440000 ms.
[INFO] [1556799939.279770]: Point cloud processed. Took 72.425000 ms.
[INFO] [1556799939.352755]: Point cloud processed. Took 72.259000 ms.

5,使用rostopic list工具可以发现确实有一个主题处于活跃状态(下图名字最长那个)

rostopic list
/clicked_point
/home/daijinkun/catkin_ws/src/squeezeseg_ros/script/data/squeeze_seg/points
/initialpose
/move_base_simple/goal
/rosout
/rosout_agg
/tf
/tf_static

6,使用rostopic echo 命令查询该主题,发现正在发布大量点云信息
7,打开Rviz进行查看
使用add添加上述主题,类型为PointCloud2(下图对应为velodyne_point_npy),固定坐标(Fixed Frame)设置为velodyne_link,讲Channel Name设置为Intensity,即可得到识别分割图像。

总结

使用roslaunch总是会出现莫名其妙的问题,所以在此想办法跳过roslaunch启动的方法,手动依次启动需要的节点,最终完成了该项目的复现过程。

基于深度学习的实时激光雷达点云目标检测及ROS实现复现时出错解决方法汇总相关推荐

  1. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  2. 无人驾驶汽车系统入门:基于深度学习的实时激光雷达点云目标检测及ROS实现...

    参加 2018 AI开发者大会,请点击 ↑↑↑ 作者:申泽邦(Adam Shan),兰州大学在读硕士研究生,主要研究方向无人驾驶,深度学习:兰大未来计算研究院无人车团队负责人,自动驾驶全栈工程师. 近 ...

  3. 目标检测YOLO实战应用案例100讲-基于深度学习的自动驾驶车辆三维目标检测方法研究与应用

    目录 基于深度学习的车辆目标检测方法研究 基于卷积神经网络的目标检测技术

  4. 目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用

    目录 基于深度学习的交通目标检测算法研究 传统的目标检测算法 基于深度学习的目标检测算法 </

  5. 语义分割源代码_综述 | 基于深度学习的实时语义分割方法:全面调研

    34页综述,共计119篇参考文献.本文对图像分割中的最新深度学习体系结构进行了全面分析,更重要的是,它提供了广泛的技术列表以实现快速推理和计算效率. A Survey on Deep Learning ...

  6. 深度学习 + OpenCV,Python实现实时视频目标检测

    选自PyimageSearch 机器之心编译 参与:路雪.李泽南 使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加 ...

  7. 深度学习中的单阶段小目标检测方法综述

    随着深度学习的不断发展,目标检测技术逐步从基于传统的手工检测方法向基于深度神经网络的检测方法转变.在众多基于深度学习的目标检测方法中,基于深度学习的单阶段目标检测方法因其网络结构较简单.运行速度较快以 ...

  8. halcon 深度学习标注_Halcon deep learning之目标检测笔记(一)

    设置输入输出的路径 输入路径有两个,一个是图像路径HalconImageDir,一个是Json文件路径PillBagJsonFile.这两个参数用于后续在图像路径中读取coco文件. 输出路径首先定义 ...

  9. 90+深度学习开源数据集整理|包括目标检测、工业缺陷、图像分割等多个方向

    导读 本文整理汇总了90+深度学习各方向的开源数据集,包含了小目标检测.目标检测.工业缺陷检测.人脸识别.姿态估计.图像分割.图像识别等方向. 小目标检测 1.AI-TOD航空图像数据集 数据集下载地 ...

  10. 直线检测——对比M-LSD直线检测(基于深度学习)与霍夫曼直线检测

    前言 1.直线检测在好多实现应用中能用到到,比如文档扫描,辅助驾驶中的车道线检测,传统的算法用的最多应该属于霍夫曼直线检测,但传统算法都有一个痛苦的调参过程和只能对优化过的使用场景有较好的结果,换个场 ...

最新文章

  1. oracle sql profile
  2. PHP实现列表页综合筛选功能,dede织梦列表页联动筛选方法功能的实现
  3. request body 里丢东西了_26. Scrapy 框架-模拟登录-Request、Response
  4. 针对校园某服务器的一次渗透测试
  5. 《剑指offer》把数组排成最小的数
  6. 用Java和Java 8创建内部DSL,采用Martin Fowler的方法
  7. Loopback Address
  8. vue 中的 prop
  9. [python]变量作用域问题
  10. 华为机试真题 导师请吃火锅 C++实现
  11. A股股票列表数据API接口(JSON标准格式,Get请求方式)
  12. java百万级别的并发_抗住百万高并发的 6 个关键技术!
  13. git基本命令及核心
  14. smallworld 下的magik module 的logger和service provider
  15. 原来微信还有这三个实用小技巧!简直太方便了
  16. 嵌入式实时操作系统4——任务调度
  17. go库函数之-time-使用示例
  18. MarkDown基本语法使用教程
  19. 猿辅导服务端开发面试--秋招正式批
  20. ubuntu软件安装方法大全

热门文章

  1. 华为认证云计算考什么?
  2. 深圳租房你必须知道的问题有哪些?
  3. 上传git编译失败回退
  4. 圣人、仁人、君子、善人、士、小人之名简释
  5. 积分商城SQL表设计
  6. wince之浅谈无线漫游
  7. Vbox安装增强功能
  8. SQL:查询各科成绩前三名
  9. 八字 十二长生 详解
  10. oracle数据库快速查询关键字,数据库分页查询关键字