- 01/28
- 2023
-
QQ扫一扫
-
Vision小助手
(CMVU)
第一代机器人,如第一批消费级机器人吸尘器,相对来说比较简单,自我导航和执行任务的能力有限。这些机器人通过红外发射器等探测障碍物,使用震动传感器检测碰撞。但是,这些都已成为历史。
随着人工智能(AI)、机器学习(ML)和计算机视觉(CV)等融合技术的进步,现在,机器人可以看到周围的环境,分析动态场景或变化的条件,并做出决定。而硬件创新进一步推动了这些功能的完善,比如越来越强大的移动平台、更复杂的传感器和高分辨率图像捕获。
有了这些资源,开发者可以专注于开发更少依赖外部硬件(如GPS)的更自主的智能机器人,机器人的工作环境也得到大大的拓展(如,在室内、在弱光下等),并且可以处理不断变化的环境和移动物体。为零售、汽车、农业、工业物联网(IoT)、健康和企业等领域的新型机器人应用铺平了道路。
为实现上述目标,机器人开发者应努力克服机器人视觉三大挑战:确定对象的方向:不仅要识别周围环境中的对象,还必须确定它们在3D空间中的方向,以便机器人与这些对象交互和/或回避这些对象。处理移动对象:给定环境中的对象可能不是静态的。机器人需要在空间和时间上检测、识别和跟踪对象。导航:要使机器人具有自主性,还需要相应的算法,允许其在变化的环境中进行移动。
四阶段战略
开发者可以根据要求,通过采用四阶段策略来克服这些挑战:1. 预处理:从现实世界(如,传感器和相机)收集数据并转换,使数据更加方便使用。2. 特征检测:从预处理数据中提取诸如角落、边缘等特征。3. 对象检测和分类:从特征检测对象,并且可以根据已知的特征图对对象进行分类。4. 对象跟踪和导航:跟踪已识别对象,包括对象和在机器人导航时改变环境的视点。然后,这些阶段生成的数据可用于控制伺服、制定决策以及执行其他高级机器人任务。本文将介绍该策略的前两个阶段:预处理和特征检测,以及如何使用功能丰富的开发工具包。
预处理
机器人使用一个或多个摄像头和/或其他传感器从现实世界收集数据。但是,这些原始数据可能不适合于满足既定目标所需的准确计算和预测。此时,可以使用数字信号处理(DSP)等方法,“清理”数据,使其方便使用。比如,可以采用多种方式清理图像数据,包括调整大小、伽马校正和对比度增强;而传感器数据,如来自Qualcomm Robotics RB3开发套件上的惯性测量单元(IMU)、加速度计、气压计和/或麦克风的传感器数据,可以进行融合、内推和/或过滤。
在处理图像数据时,必须规划好收集数量和速度。Qualcomm Robotics RB3开发套件支持两个(立体)图像,这意味着系统必须同时处理两个平面。此外,还可以支持16-32万像素的分辨率和30-60 fps的帧速率。同样,可以使用Qualcomm® SDA845上的高速和低速连接器以及您采用的传感器类型,以各种频率和比特率收集传感器数据。
为减少处理这些数据的开销,一般希望使用最低采样率和分辨率,满足应用程序所需的数据量即可。此外,还应尽可能将处理流程卸载到合适的处理器。Qualcomm SDA845与专用硬件兼容,包括Qualcomm® Hexagon™ 685 DSP和Qualcomm® Spectra™ 280 ISP,以及更通用的Qualcomm® Kryo385 CPU和面向图形的Qualcomm® Adreno™ 630 GPU。
在API方面,开发者可以使用Qualcomm®计算机视觉库,该库包含许多用于图像预处理的硬件加速API。也可以使用Qualcomm®神经处理引擎SDK,其中包含图像预处理API,用于处理神经网络中的图像。另外,还可以选择使用Qualcomm®骁龙™异构计算SDK,进一步控制计算操作的执行方式。
特征检测
通过提供干净的数据,可以提取功能。对于可视化数据,计算机视觉开发者希望的四种常用特性包括:角落:具有局部2D结构的点状特征。边缘:两个区域之间的一组点。Blob:感兴趣的区域。脊:具有脊点的曲线
有关这些特性的更多信息,并列出了许多特性检测器算法以及以检测的特性类型。下图显示了从可视数据中检测到的特性:特征检测算法需要大量处理能力,但通常逐个像素运行。开发者可以使用计算机视觉库中的特性检测API,其中包括Harris角检测器、FAST、Hough Transform和其他检测器,以及基于最大稳定极值区(MSER)的对象检测API。
结论
前两个阶段为机器人视觉处理打下了坚实的基础。预处理将数据转换为可用形式,而特征检测则是了解数据的过程。在以后的文章中,我们将继续探讨最后两个阶段:对象检测和分类、对象跟踪和导航,为机器人提供导航和与周围环境交互所需的数据。
(文章来源于网络,如有侵权,请联系删文)