机器人视觉处理四阶段策略



  • 第一代机器人,如第一批消费级机器人吸尘器,相对来说比较简单,自我导航和执行任务的能力有限。这些机器人通过红外发射器等探测障碍物,使用震动传感器检测碰撞。但是,这些都已成为历史。

    机器人视觉技术的演变

    第一代机器人,如第一批消费级机器人吸尘器,相对来说比较简单,自我导航和执行任务的能力有限。这些机器人通过红外发射器等探测障碍物,使用震动传感器检测碰撞。但是,这些都已成为历史。

    随着人工智能(AI)、机器学习(ML)和计算机视觉(CV)等融合技术的进步,现在,机器人可以看到周围的环境,分析动态场景或变化的条件,并做出决定。而硬件创新进一步推动了这些功能的完善,比如越来越强大的移动平台、更复杂的传感器和高分辨率图像捕获。

    有了这些资源,开发者可以专注于开发更少依赖外部硬件(如GPS)的更自主的智能机器人,机器人的工作环境也得到大大的拓展(如,在室内、在弱光下等),并且可以处理不断变化的环境和移动物体。为零售、汽车、农业、工业物联网(IoT)、健康和企业等领域的新型机器人应用铺平了道路。

    为实现上述目标,机器人开发者应努力克服机器人视觉三大挑战:

    • 确定对象的方向:不仅要识别周围环境中的对象,还必须确定它们在3D空间中的方向,以便机器人与这些对象交互和/或回避这些对象。

    • 处理移动对象:给定环境中的对象可能不是静态的。机器人需要在空间和时间上检测、识别和跟踪对象。

    • 导航:要使机器人具有自主性,还需要相应的算法,允许其在变化的环境中进行移动。

    四阶段战略

    开发者可以根据要求,通过采用四阶段策略来克服这些挑战:

    1. 预处理:从现实世界(如,传感器和相机)收集数据并转换,使数据更加方便使用。

    2. 特征检测:从预处理数据中提取诸如角落、边缘等特征。

    3. 对象检测和分类:从特征检测对象,并且可以根据已知的特征图对对象进行分类。

    4. 对象跟踪和导航:跟踪已识别对象,包括对象和在机器人导航时改变环境的视点。

    然后,这些阶段生成的数据可用于控制伺服、制定决策以及执行其他高级机器人任务。

    听起来好像工作量很大,事实上也可能如此,但幸运的是,现在有相应的框架和硬件,帮助您解决这个问题。Qualcomm Technologies, Inc.最近发布了 Qualcomm®机器人RB3平台(RB3)(基于Qualcomm®SDA845 SoC(SDA845))及相关的Qualcomm® RoboticsRB3开发套件。该套件为开发者提供了移动硬件功能和丰富的工具支持,助力您解决上述挑战。

    本系列文章共两篇,在第一篇中,我们将介绍该策略的前两个阶段:预处理和特征检测,以及如何使用功能丰富的开发工具包(如Qualcomm Robotics RB3开发套件。

    预处理

    机器人使用一个或多个摄像头和/或其他传感器从现实世界收集数据。但是,这些原始数据可能不适合于满足既定目标所需的准确计算和预测。此时,可以使用数字信号处理(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:感兴趣的区域

    • 脊:具有脊点的曲线

    这篇维基百科文章提供了有关这些特性的更多信息,并列出了许多特性检测器算法以及以检测的特性类型。下图显示了从可视数据中检测到的特性:

    特征检测算法需要大量处理能力,但通常逐个像素运行,因此,很适合在Qualcomm SDA845不同处理器上并行执行。开发者可以使用计算机视觉库中的特性检测API,其中包括Harris角检测器FASTHough Transform和其他检测器,以及基于最大稳定极值区(MSER)的对象检测API。

    结论

    前两个阶段为机器人视觉处理打下了坚实的基础。预处理将数据转换为可用形式,而特征检测则是了解数据的过程。下一篇文章中,我们将继续探讨最后两个阶段:对象检测和分类、对象跟踪和导航,为机器人提供导航和与周围环境交互所需的数据。

    有兴趣研究下一代机器人技术的开发者可以购买Thundercomm推出的Qualcomm Robotics RB3开发套件,开始利用QDN上提供的各种SDK。


    更多Qualcomm开发内容请详见:Qualcomm开发社区 。