一.项目背景

目前在研究激光雷达和相机做障碍物检测算法开发,主要应用场景为远距离下的目标障碍物检测。

二.主要实现算法

本次主要实现了三种算法,具体实现后期补充,先进行算法的梳理和记录:

1.纯点云数据处理,当测量距离比较近的时候,点云稠密度高,且点云的z轴代表了目标的距离,可以利用PCL库对点云数据进行处理,通过聚类实现目标提取和测距。
原始点云:

处理后,使用addcube加入立体检测框:

2.激光雷达和相机的联合标定,当测量距离远,点云密度开始降低,之间分析点云相对困难,可以通过目标检测算法识别目标,再通过点云投影到图像中,在目标检测框内的点云为当前目标的距离。

3.双目立体视觉,距离远,点云几乎没有时,可以通过双目视觉算法获得距离+目标检测获取障碍物的目标大小,需要进行双目视觉的标定。可通过立体匹配或者特征匹配算法进行处理
(1)特征匹配算法



特征匹配后,直接左右x相减,获得视差值。带入公式计算距离。

(2)双目视觉处理后的视差图转点云图:
视差图:

点云图:

对点云图进行点云算法处理,降采样,聚类等操作,获得目标。

三.技术路线

1.纯点云数据处理
算法步骤包括:
(1)点云限界处理
(2)点云降采样
(3)点云分割
(4)点云聚类
(5)绘制立体边界框

2.激光雷达和相机的联合标定
算法步骤包括:
(1)使用棋盘格进行标定;
(2)使用cloudcompare对点云进行处理,将棋盘格点云数据分离出来,提高联合标定的准确率和精度;
(3)使用matlab对相机进行单目标定,获得相机的内参和畸变系数;
(4)使用matlab进行激光雷达和相机联合标定,获得tform下的旋转、平移矩阵。
(5)使用(3)(4)获得的参数对点云进行投影,当在图像中获得目标位置时,查看当前目标框内是否存在点云数据,使用该区域内的点云数据z值作为距离。

3.双目立体视觉算法
算法步骤包括:
(1)采用平行式双目立体视觉方法,两个相机相互平行,相机参数相同;
(2)制作大的标定板,最好覆盖整个相机视野的一半以上,两个相机各自采集大于20张图的数据。
(2)使用matlab对两个相机的图像进行联合标定,获得相机各自的内参、畸变系数和共有的旋转、平移矩阵;
(3)使用opencv对(2)中获得的参数进行应用,对两图像进行立体校正,保证y在同一个位置
(4)立体校正完成后,使用立体匹配算法获取视差图,视差图获得到可以进行两个方向的研究:
第一个是将视差图转换为点云图,采用1中纯点云算法提取目标;
第二种是通过特征匹配ORB、SURF算法匹配YOLO目标检测后两个相机的图像目标,由于已经做过立体校正,直接计算x方向的差(即视差值)就可以直接得到距离。

四.注意事项

1.激光雷达的测量范围有限,在测量距离>100米时,采用双目处理效果更好;
2.测量距离近时,可以根据点云稠密度选择纯点云数据处理和激光雷达+相机;
3.标定板的制作和选取根据测量距离进行调整,经过前期大量的标定和实验,建议标定板制作大一些,特别是远距离测量时,我使用的标定板每一格是400 * 400mm的,大小在2米 * 5米
4.标定过程中,尽量覆盖整个相机视野位置,不同角度、倾斜、翻转标定板采集图像;
5.matlab中删除投影误差较大的图像,如果采集数量太少,会导致最后能用的图过少,标定结果不准确。

障碍物检测算法开发-(1)三种测距算法技术路线和实际应用相关推荐

  1. AutoSAR开发的三种方法:自上而下式、自下而上式、混合式

    目录 一.简介 二.三种集成方法 1.自上而下法 2.自下而上法 3.混合式法 三.总结 一.简介 autosar的架构主要分为三层:应用层.RTE层.BSW层:应用层主要是行为建模实现,使用simu ...

  2. Xdelta3 bsdiff Courgette三种差分算法比较

    今天介绍常用的三种差分算法,分别是Xdelta3 bsdiff Courgette. Xdelta3 官网地址: http://xdelta.org 源码地址:https://github.com/j ...

  3. python 三种聚类算法(K-means,AGNES,DBScan)

    python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan) 更新时间:2019年06月27日 14:44:44   作者:weixin_42134141 这篇文章主要介绍了pyth ...

  4. 近似装箱问题(三种联机算法实现)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "近似装箱问题(三种联机算法实现)" 的idea 并用源代码加以实现: 0.2) 近似 ...

  5. 三种Hash算法对比以及秒传原理.

    三种Hash算法对比以及秒传原理 CRC (32/64)   MD5  Sha1 分5个点来说 1.校验值长度 2.校验值类别 3.安全级别 4.应用场景 1).校验值长度 CRC(32/64) 分别 ...

  6. 常用的三种线性模型算法--线性回归模型、岭回归模型、套索回归模型

    常用的三种线性模型算法–线性回归模型.岭回归模型.套索回归模型 线性模型基本概念 线性模型的一般预测模型是下面这个样子的,一般有多个变量,也可以称为多个特征x1.x2.x3 - 最简单的线性模型就是一 ...

  7. 20172328 蓝墨云实验——三种查找算法练习

    20172328 蓝墨云实验--三种查找算法练习 课程:<软件结构与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志强老师 实验日期:2018年10月1 ...

  8. 微信小程序开发的三种模式

    摘要:截止到2018年6月底,正式上线发布的微信小程序已超过100万个.而越来越多的公司也已经在做微信小程序开发,许多人会觉得"微信小程序开发是开发者们的专利".答案是否定的,今天 ...

  9. 直立车模控制中三种滤波算法简单分析(清华卓晴)

    摘自:https://mp.weixin.qq.com/s/WbCh0NFAnsf9y2blQenf7g 让我想起余义的一篇文章也是说到平衡车有三种滤波,我想和卓晴说的是一样的吧. https://b ...

最新文章

  1. LeetCode-笔记-394. 字符串解码
  2. 轻量级自动化运维工具Fabric的安装与实践
  3. Java 8 - Optional全解
  4. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
  5. Java线程死锁–案例研究
  6. 2019第三届中国通信业物联网大会邀请函
  7. 论文 计算机动态网页的制作,毕业论文 动态网页制作学习网站的设计与实现
  8. 【webpack】从零开始学webpack
  9. IE6layout元素自动包含浮动元素
  10. PHP中巧用curl 并发减少获取第三方网页内容时间
  11. 单循环赛 贝格尔编排法实现
  12. png批量转换成jpg
  13. 三级网络技术--宽带接入技术--XDSL
  14. windows11 这个男神到底值得用吗?——一个男神的传奇
  15. win7计算机不能设置双屏怎么回事,win7怎么设置双屏显示?Win7双屏显示设置的方法...
  16. 墒情监测站智慧农研高标准农田设施
  17. 全面、详细的SQL学习指南(MySQL方向)
  18. 王者荣耀扫码登录教程,扫码登录王者荣耀怎么弄?
  19. linux clamav定时扫描,linux-clamAV
  20. 做人智慧之低调做人、高调做事

热门文章

  1. PyQuery 简介
  2. n+=1和n=n+1的区别
  3. 杨元庆:联想的新目标是苹果
  4. 扫地机器人作文说明文提纲_扫地机器人作文600字说明文_作文
  5. 项目管理 : 故事06-救 人
  6. Python可运行文件(.exe)加密方法
  7. F28335矩阵键盘的3种工作方式代码及按键消抖讨论(包括利用GPIO输入量化实现按键消抖)
  8. Liquibase的基本使用说明
  9. 我收集了 12 款自动生成器,效果太逆天!
  10. 易地推拓客分享客户ABCD分层认知对引流拓客和留客转化的影响