[TOC]
基本情况:风力发电机的塔筒部位和叶根部位有一圈螺栓,在安装时有划一条线(红色)。
环境条件:叶根处直径3m,螺栓平面上下平面皆有挡板,螺栓平面和相机近乎平视,。塔筒处直径4m,相机安装可以平视也可以俯视。
- 嵌入式边缘计算平台下的视觉算法开发
- 进程间通信
- 网络通信
- ...
- jetson nano 4GB
- Basler 500wc
- 伺服电机
- 驱动basler工业相机
- 开启进程间通信
- 开启外部网络通信
- 获取系统时间
- 检测算法获取每个螺栓和螺母的划线位置的差值,存入Init Hash Table
- 进入每日循环
- 检测算法检测差值减去初始位置求出delta,存入Date Hash Table
- socket write传出Date Hash Table
- 进程间通信伺服电机置零位
- 获取一帧图片,裁剪,预处理
- 匹配模板
- 裁剪出螺栓和螺母区域
- FindColor
- 分别计算螺栓螺母的points的x平均值
- 计算螺栓螺母points.x平均值的差并返回。
- 摄像头为水平检测螺栓,螺栓上的划线为短线短组成,不连续
- 使用直线拟合算法判断螺栓螺母的划线的角度和相对位置,性能很卡,而且帧间波动很大
- 使用外接矩形算法逼近螺栓和螺母的划线区域,由于螺纹处划线只有螺纹外部有标记,为很小的段落组成,需要对螺栓处的识别到的小区域进行填充连接,再用外接矩形逼近。同样帧间波动很大;如果划线为蛇形则不好进行填充。
- Jetson Nano gpio调用不支持c++,需要用python程序调用gpio资源控制伺服电机转动,同时需要进程间通信配合检测进程。
- c++ socket不能直接发送string,应该先转为char,再发送
像素分辨率x轴为0.1mm
周长206mm,0.1mm等价于:360度*0.1 / 206 = 0.175度