第8章 利用基于CNN的物体识别来指导机器人
学习目标
阅读完本章之后,你将能够:
- 解释物体识别的工作原理;
- 构建一个能够进行物体识别的神经网络;
- 构建一个物体识别系统。
本章介绍物体识别的工作原理,构建一个能够基于视频进行物体识别的神经网络。
8.1 简介
物体识别(object recognition)是计算机视觉的一个领域,旨在让机器人能够检测环境中的物体。机器人利用摄像头或者传感器从周围环境中提取图像,然后使用软件检测图像中的物体并识别物体类型。通过从传感器捕捉到的图像或者从视频中识别的物体,机器人可以对周围的环境有所了解。
通过利用物体识别技术识别环境并获取信息,机器人可以执行更为复杂的任务,例如物体抓取或者在环境中移动。第9章会介绍机器人如何在虚拟环境中执行这些任务。
本章要执行的任务是从图像中检测并识别特定物体。这类计算机视觉问题和本书之前介绍的不太相同。为了识别特定物体,首先需要对这类物体进行标注,然后再训练卷积神经网络,这在第5章中进行了介绍,效果还算不错。那么,在进行物体识别之前,如何检测到这些物体呢?
如前所述,希望识别的物体需要被标注为它们所属的类别。因此,为了检测图像中的物体,需要在物体周围画一个长方形的边框,确定它们在图像中的位置,接着神经网络会预测边框内图像部分对应的物体标签。
对物体进行边框标注是一项枯燥而艰苦的工作,所以本书不会展示对数据集中的图像进行边框标注的过程,也不会展示训练神经网络识别并检测这些物体的过程。尽管如此,我们可以在GitHub上获取一个叫作labelImg的库,这个库可以帮助你对图像中的所有物体创建边框。创建边框之后,即获得了相应的边框坐标,然后就可以训练神经网络来预测边框中包含的图像部分,从而预测图像中每个物体的对应标签。 ...
Get Python计算机视觉和自然语言处理 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.