![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
仓库物资识别
秦乐乐
好好学习 天天向上
展开
-
【仓库物资识别】七、获取装载车高度
激光雷达的工作原理是向目标发射激光束,然后接受激光束反射回来的信号,来分析处理物体信息之前直接从文档中获取的z坐标,都只是雷达距离物资某点位置的距离长度,而不是该点在三维坐标系中的具体位置信息。所以要获取车高,也就是某一点的真实信息,还需要将距离信息转换成某点物体的真实高度。整个系统的大体环境如下图(画功不足):这是一个俯视图,当装载车停放后,行吊系统会用安装好的雷达扫描装载车...原创 2019-04-18 20:08:00 · 591 阅读 · 0 评论 -
【仓库物资识别】九、空车出库二(approxPolyDP函数的使用)
由于现场扫描区域范围的限制,不需要考虑到加高的车型,下左图为上一篇博客提到的车高车型。因为车型的限制,所以简化了工作量,随之而来的是新的小问题,如何分离出车头(因为我只需要考虑车身范围,进行分点等分操作)。上右图为扫描到的空车数据转换成的灰度图。1、如何进行分割去点车头部分?一开始是先想到的使用直方图统计的方法,找到车头和车身之间的分离处进行分割,但是由于本人水平有限,实现不了。...原创 2019-07-02 11:45:51 · 479 阅读 · 0 评论 -
【仓库物资识别】九、出库
要求:当无人叉车接收到前面给定物资的具体坐标后,将车上物资全部运走,剩下空车,这时候需要对空车再进行一遍扫描,确定空车可以摆放多少件物资,以及摆放物资的大概位置(我理解的这一个步骤获取只是为了在界面上展示好看一点),单单只是普通的空车,计算上面能够摆放多少件物资并不难,难得是有些空车的货箱前半部分会稍微高一点。为了表达清晰。将普通车型记为 C,将车身前微高一点的车型记为C_h思路:大致...原创 2019-06-21 20:17:33 · 273 阅读 · 0 评论 -
【仓库物资识别】八、将找到的物资划分为AB两类
之前的任务中,已经根据最基本的图像预处理的一些方法找到了每个物资所在的地方~~如下图:左边的物资记为A类,右边的物资记为B类,现在图中的物资都是整整齐齐摆放好的,可是在实际的过程中,有些物资摆放的并不是那么规整,甚至会出现在货车中间的位置的情况,并且货车在停放的过程中,不能保证停放的很正,可能会出现货车歪的角度过大的情况,因此普通的标记方法并不能满足各种各样的情况,需要找出一个算法能够适应所有...原创 2019-06-10 11:57:59 · 661 阅读 · 0 评论 -
【仓库物资识别】一、C++读txt文件数据(只有X和Z坐标)存储三维点最后显示
实习的第二天接到了一个小任务,其中一个环节是将一堆只有x和z坐标的数据从txt文件中读出保存成点(xyz)的格式,数据是激光扫描所得,数据的y坐标需要后续的计算处理,下面的程序也是写了好半天才写出来,毕竟是刚刚开始工作,以后的效率一定会提上去的。#include<iostream>#include<sstream>#include<string>#i...原创 2019-03-19 21:48:51 · 1625 阅读 · 2 评论 -
【仓库物资识别】二、将三维点云转换成二维图像
实习第一个任务其中的一个小步骤是将三维点云转换成二维图像,今天刚好复习PCL的点云滤波部分,发现了一个具有类似功能的平面模型投影滤波——ModelCoefficients平面参数模型的形式是:ax+by+cz+d=0其中的a、b、c、d可以设置,具体代码如下:#include <iostream>#include <pcl/io/pcd_io.h>#in...原创 2019-03-20 19:52:06 · 8945 阅读 · 6 评论 -
【仓库物资识别】三、根据激光雷达的光束计算Y坐标,与X和Z构成完整的点云数据
之前leader给了一个txt文档,里面只包含了x 和 z的坐标如表,第一列是x轴(x的个数为1492个),然后每一个x点都对应着217个z坐标,现在需要根据激光雷达散发出的光束角度和激光雷达距离地面的高度,得出y轴的坐标,不过可以接受的是,y轴上对应的也是坐标值固定的217个点。部分代码如下://创建坐标点 x y z typedef struct Point{ double...原创 2019-04-01 13:52:48 · 2549 阅读 · 0 评论 -
【仓库物资识别】四、将三维点云转换成二维图像(修正后)
上一篇的三维转换成二维图像应该说是三维点云投影到二维平面上,点云投影并不能达到项目要求,我们需要转换完成的二维图像可以看到每个点的深度,即用灰度图颜色的深浅来表是原点云数据的深度程度。利用pcl库读取pcd点云文件,并结合opencv,将在三维中表示深度的z经过一定的变换得到图像中每个像素点的灰度值。部分代码如下:for (int i = 0; i < row; i++){...原创 2019-04-01 17:17:23 · 10816 阅读 · 32 评论 -
【仓库物资识别】五、图像轮廓 图像矩
原始图:需求:查找深色矩形的中心点坐标部分代码如下: //查找轮廓 vector<vector<Point>> contours; //存放轮廓 vector<Vec4i> hierarchy; //存放每个轮廓的拓扑信息 findContours(srcImage, contours, hierarchy, RETR_CCOMP...原创 2019-04-11 22:02:43 · 576 阅读 · 0 评论 -
【仓库物资识别】六、找出装载车货物的中心点
需求:从雷达中获取z和x轴左边,利用雷达分辨率角度计算每点y,构成完成的三维坐标。利用z轴坐标进行灰度值转换,将三维坐标转换成二维坐标(灰度图),然后二值化、闭运算、查找轮廓、计算图像矩以及中心点找出一辆装载车中12个线缆的二维坐标中心点原始点云:转为灰度二维图像:二值图:形态学滤波:闭运算查找轮廓、图像矩:中心点像素坐标以及对应空间坐标:查...原创 2019-04-12 20:39:20 · 482 阅读 · 1 评论 -
【仓库物资识别】八、物资分类(对坐标使用SVM训练)
之前写过一篇物资AB分类的文章,是根据车身轮廓找到车身中心线,然后根据物资坐标在线段的左边还是右边进行划分。现在考虑现场数据的多样性,使用SVM支持向量机对采集到的点进行训练。为了使SVM预测更加准确,所以数据坐标点越多越好。SVM二分类原理:就是找到一组超平面将两组数据分开,这个超平面使两组数据足够远原理比较简单,直接上代码:#include <opencv2/openc...原创 2019-06-24 16:27:15 · 651 阅读 · 0 评论