为了准确判断线框内是否有托盘,需要对线框进行识别定位,以判断车体与线框(一般是黄色四边形,如下图所示)的相对位置,以便进行后续操作。

仓储环境中,目标受光照影响不大,所以框体颜色特征可以采用,此外由于框体的形状特征、大小特征明显,根据特征融合的思想,可以增强识别框体算法的鲁棒性。
###一、基本概念
1. 轮廓 (contours)

轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了准确,要使用二值化图像。需要进行阀值化处理或者Canny边界检测。查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。在OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该是白色而背景应该是黑色。轮廓发现的函数与参数解释如下:

findContours(image, mode, method, contours=None, hierarchy=None, offset=None)

  • image输入/输出的二值图像
  • mode 迒回轮廓的结构、可以是List、Tree、External
  • method 轮廓点的编码方式,基本是基于链式编码
  • contours 迒回的轮廓集合
  • hieracrchy 迒回的轮廓层次关系
  • offset 点是否有位移

![](https://upload-images.jianshu.io/upload_images/9675856-13ab9ec1a52b01bc.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/312)

2. 多边形逼近
多边形逼近,是通过对轮廓外形无限逼近,删除非关键点、得到轮廓的关键点,不断逼近轮廓真实形状的方法,OpenCV中多边形逼近的函数与参数解释如下:

approxPolyDP(curve, epsilon, closed, approxCurve=None)

  • curve 表示输入的轮廓点集合
  • epsilon 表示逼近曲率,越小表示相似逼近越厉害
  • close 是否闭合

###二、opencv检测四边形/多边形

Google中通过:quadrangle, quad, rectangle, rectilinear 之类关键词的搜索,大致得出如下方法:

1.一般方法

  • approxPolyDP

找到轮廓后进行多边形拟合,但是结果不是很精确。

  • hough变换

要使用hough变换, 首先得明确四边形的定义, 也就是说对四条边进行一定的限制,这个定义是由你自己决定的。

霍夫变换之前也可以先角点检测——Harris corner detection ,焦点检测之后,也可以根据
最大四边形算法 来找到框体 。

  • RANSAC

ansac比较符合人的视觉系统: 随机抽取两个点, 然后相对这两个点所确定的直线, 在给定距离之内的每个点都算作一票, 票数最高的直线即为所求, 然后再将这些点删除. 如此循环四次, 便得到所求的四边形。

或者循环n次, 直至票数小于某阈值,即得到了所求的n边形. 或小于最大循环次数时, 得到随机取样最符合的直线.

2.OpenCV 自带例子 squares.cpp

  • RGB -> HSV,然后通过饱和度来确定白色(白色饱和度低)
  • 用一系列阈值进行阈值化,findContours 找联通区域,approxPolyDP来拟合多边形。(阈值化时用到了一个非常呵呵的判断策略:如果70%的图像全白了,那么没必要继续往上加阈值了,不这样的话,整幅图像全白时,就是最大的矩形,我们不希望如此)
  • 找到符合条件的最大矩形区域的四个顶点

![](https://camo.githubusercontent.com/4b496f509fe98f93d1ee47b33979dda48d0c82be/68747470733a2f2f7261772e6769746875622e636f6d2f616c79737361712f6f70656e63762f6d61737465722f696d67732f6f75742d6d616e79537469636b6965732e6a7067)

3.基于直线检测的形状识别方法

  • 直线检测
  • 直线聚类
  • 直线筛选
  • 交点计算
  • 交点排序

参考文献:

【1】OpenCV中几何形状识别与测量

【2】opencv检测四边形/多边形

【3】Fast and Accurate Document Detection for Scanning

【4】利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

【5】利用OpenCV提取图像中的矩形区域(PPT屏幕等)

【6】形状识别之直线检测(LSD)

【7】手机端运行卷积神经网络的一次实践 – 基于 TensorFlow 和 OpenCV 实现文档检测功能


Wednesday, 29. August 2018 01:42AM

Author : Z

IGV——Forklift Line Identification and Positioning相关推荐

  1. 3GPP接口定义及相关协议一, 手机通信专有名词中英文对照

    1 3GPP接口定义及相关协议一览 Controlling Radio Network Controller (CRNC) A role an RNC can take with respect to ...

  2. SAP错误问题汇总(转)

    1.A:在公司代码分配折旧表时报错? 在公司代码分配折旧表时报错,提示是"3000 的公司代码分录不完全-参见长文本" 希望各位大侠帮我看看. 3000 的公司代码分录不完全-参见 ...

  3. 发一个自己常用的通信词汇缩写表(实时更新)

    常用通信缩写表    3GPP 3rd Generation Partnership Project 第三代合作伙伴计划 3PTY Three Party Service 三方业务 A AA Admi ...

  4. SIMCOM AT指令大全

    SIMCOM AT指令大全 A/ 重新发送最后给的AT指令(Reissues the last command given) ATA 接听外来电话 (ANSWER INCOMING CALL) ATD ...

  5. SAP方丈 SAP常见问题与解决办法 转

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1.A: ...

  6. ITU标准介绍及下载索引

    ITU是International Telecommunication Union (国际电信联盟)的英文缩写.该组织是为了全球各成员国或地区之间进行电信事业发展和通信合理使用的合作而成立的.其工作主 ...

  7. 论文分享 | 智能放牧无人机多旋翼无人机发展趋势

    阿木推出的Prometheus项目校园赞助活动,再次迎来两位开发者参与发表论文,且分别获得了1000元.300元奖学金~ 现将相关论文内容分享给大家~鼓励更多的开发者加入到我们校园赞助活动中来,只要你 ...

  8. SAP License:SAP常见问题与解决办法(汇总帖)

    1.A:在公司代码分配折旧表时报错? 在公司代码分配折旧表时报错,提示是"3000 的公司代码分录不完全-参见长文本" 希望各位大侠帮我看看. 3000 的公司代码分录不完全-参见 ...

  9. SAP方丈-SAP常见问题与解决办法(转)

    1.A:在公司代码分配折旧表时报错? 在公司代码分配折旧表时报错,提示是"3000 的公司代码分录不完全-参见长文本" 希望各位大侠帮我看看. 3000 的公司代码分录不完全-参见 ...

最新文章

  1. RoI Pooling 与 RoI Align 有什么区别?
  2. ios多线程开发的常用三种方式
  3. ubuntu系统下创建软件桌面快捷方式
  4. 【★★★★★模板专区★★★★★】
  5. mysql dba证书挂靠_这7种情况都叫“证书挂靠”!看看你是否在挂证的边缘试探?...
  6. 基于Token的身份验证——JWT
  7. java unicode32_【JAVA SE基础篇】32.String类入门
  8. js两个等号和三个等号_这两个号段开头的手机号,已成“古董号”,手里有的保存好...
  9. mysql 高可用架构 proxysql 之一 yum安装
  10. c语言一把钥匙只能开一把锁阅读答案,一把钥匙开一把锁阅读附答案
  11. JavaScript系列:模块化与链式编程
  12. DLLPasswordFilterImplant:DLL密码过滤器
  13. matlab获取全局变量的值_全局变量在几个函数及Matlab函数中都能使用的变量.PPT...
  14. 计算机网络管理员路由与交换深圳积多少分,2020年深圳积分入户,哪些加分的证书总结?...
  15. 2022 Apache IoTDB 物联网生态大会 | 议题嘉宾公布,大会亮点抢先看!
  16. php判断花呗扫码支付,为啥支付宝“诱导”用户,首选花呗付款?答案已经确认了...
  17. 2023年上海大学美术学院创新设计专业院校分析、报录比、复试线、考研经验指南
  18. 网络安全工程师从0单排日记---(0)
  19. matlab实验word,结合MATLAB的控制工程实验word版
  20. java人民币数字转大写汉字(小写转为大写).java

热门文章

  1. 跟着鬼哥学so改动,一,准备篇
  2. 鬼哥解说美交所昆仲链KUN多元化矿池公链
  3. 图像处理开源软件代码网站汇总(提供下载链接)
  4. cn2 gia、cn2 gt和普通线路之间区别和联系
  5. SDI+HDMI转USB3.0 采集卡FPGA方案,支持SDI HDMI输入
  6. Qt-FFmpeg开发-实现录屏功能(10)
  7. python xpath入门_xpath 的使用
  8. “消费主义”浪潮过后,“性价比”风口正在吹响
  9. C语言数组元素的左移、右移
  10. Arduino 使用 BC26/BC35 连接至阿里云平台