算法|扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法( 二 )


图片

它的原理就两步:①确定视差 , 即将两个相机拍下来的照片进行对比 , 找出两张照片中相同的点间像素差 , ②基于视差 , 通过已知的双目空间几何关系 , 计算立体空间中各点的距离 。
但相比人脑的高精度计算 , 想要实现计算机的双目识别 , 并不只有解三角形这么简单 。
一个重要的原因 , 就是在步骤②这一块 , 计算机本身并不知道摄像机拍的两张照片哪里是一样的 。
算法|扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法
图片

△在计算机眼里 , 这些小黄鸭就是一堆数据
这就导致双目视觉算法的开发变得非常困难 , 但带来的收益也很高 。
不过 , 双目视觉算法仍然有缺点 , 它受光线影响依旧很大 。
所以在光线不足时 , 就用算法去主动“补上光线” 。
以石头T7 Pro扫地机器人的算法为例 , 双目视觉模块分为视觉控制和深度估计两部分 , 一个智能补光 , 一个估计深度 。 (甚至专门做个红外拍出的相片 , 搞成数据集 , 训练补光识别效果)
但自动驾驶算法 , 也绝不仅仅只靠“两只眼睛” 。
与人类不同 , 无论是自动驾驶汽车、无人机、还是扫地机器人 , 都可以说是“全身遍布”着眼睛 。
算法|扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法
图片

其中就包括LDS(激光雷达) 。
当双目视觉算法遇上激光雷达(能搞定所在高度的平面避障) , 在二者的结合之下 , 机器人不仅能完美避开3cm以上的障碍物 , 还能通过它们“找准自身定位” 。
此外 , 激光雷达也会用在SLAM的建图和定位上 。
3cm以下:目标检测算法的最强“辅助”
不过 , 在实际应用中 , 单靠双目视觉算法和激光雷达 , 还远远不够 。
小于3×5厘米的物体 , 会比较麻烦 , 既要区分出要清扫的部分(纸屑、地毯)、又要避开一些容易缠住的障碍(数据线) 。
【算法|扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法】这种情况下 , 双目视觉算法就成了最好的“辅助”:协助目标识别算法 , 将需要避开的物体检测出来 , 准确地区分垃圾与障碍物 。
目标检测模型上 , T7 Pro自研的神经网络借鉴了SSD , YOLO , 及CenterNet等多种新型模型 , 目前还在不断地迭代 。
算法上 , 石头采用了“一分为二”的待遇:高于3厘米的物体 , 绕障碍物边沿避障和清扫;
小于3厘米的物体 , 按种类进行清扫(纸屑、地毯)或避障(宠物便便、数据线) 。
数据集上 , 石头也“别有用心”:选出了一些特殊的物体 , 进行“有差别对待” 。
例如 , 大家都有所担心的动物便便 , 石头T7 Pro的算法中直接加入了便便的识别(同情做数据集的一秒钟) , 在接触之前 , 远远地就避开它 。
哪怕不在家 , 扫地机器人也不会把宠物便便拖得满地都是 。
算法|扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法
图片

虽然算法目前已经迭代到了能够识别9种物体的“体量”(还在增加ing) , 但不是所有的物体都像宠物便便这样 , 会受到“远远避开”的待遇 。
9类常见障碍物:底座类(吧台椅、风扇、手持底座、平底座、灯底座)、体重秤、线团、插线板、鞋子、粑粑、织物(如袜子)、易卡家具( 如U型椅)、簸箕
例如鞋子、风扇这种相对较为安全的物体 , 离得近一点再避障也没什么问题(推开一点不重要 , 扫干净就行) 。
以及 , 这部分算法还有个小彩蛋 。
在你上班的时候 , 这个扫地机器人就能化身小管家 , “监督”宠物:是不是又把食盆打翻了?
不过 , 视频只有直播 , 没有云存储 , 也就是说 , 其他人甚至没办法窃取你家的数据 , 所以 , 不用担心扫地机器人会“变身间谍” 。


推荐阅读