三分钟了解图像识别的基本原理
在讨论机器是怎么识别图像上的目标物之前,我们先来探讨一下人的图像识别能力。人类只要睁开眼,就无时无刻地进行着图像的识别,但是很少有人会好奇为什么人类能进行如此高效的图像识别呢?比如:放学后的校门口,为什么小朋友能在人群中一眼认出自己的妈妈呢?这看似毫无意义的思考,却是技术革新的起始点,就像万有引力的发现一样。
人的图像识别能力是很强的,机器的视觉识别也是对人类识别过程的模仿,这也是机器视觉走向“更智能”的必经之路。对眼动的研究表明,人类在进行图像识别时,视线总是集中在图像的主要特征上,也就是集中在图像轮廓曲度最大或轮廓方向突然改变的地方,这些地方的信息量最大。而眼睛的扫描路线也总是依次从一个特征转移到另一个特征上。
这启发了图像识别中最基础的AI算法——卷积神经网络(Convolutional Neural Network, CNN)。CNN采用大量小窗口(卷积核),在数字图像上从左到右,从上往下,像筛子一样筛选图像上的每一个像素点。小窗口被赋予不同的参数值,数值的大小体现了这个“筛子“网格的疏密,大参数值保证了主要特征的像素点信息能被放大保存,而小的参数值可以”过滤“掉无关紧要的背景像素。多个卷积小窗口的组合使用,也能让机器的视野更多元,提取到的特征更加全面。
对于人来说,要想识别眼见何物,还必须依赖大脑中负责整合信息的机制,它能把分阶段获得的信息整理成一个完整的知觉映象,人脑将存储的信息与当前的信息进行比较,就能实现对图像的再认。在机器的图像识别中,产生知觉映像的过程被定义为一系列基于先验知识的算法模型的训练过程,这也是一个让机器去学习一种模式的过程。小朋友的记忆里存储了妈妈的长相、身形轮廓或其他区别于别人的特征,所以在看到熟悉的妈妈,大脑立刻给出了识别结果。假如校门口有一个摄像机也想识别到这位妈妈,那后台的程序需要先在拥有复杂背景的图像中检测出所有人脸(或整个人体),对每一张人脸提取特征,再与数据库中这位妈妈的人脸特征一一比对,根据特征的相似度,给出识别结果,即图像中有没有这位妈妈,并框出她在摄像机“眼里”的位置。
科技源于生活,机器进行图像识别的基本原理启迪于人类的图像识别,并进一步发挥机器所长,服务于人类。机器可以根据程序的设定,不知疲倦地执行大量重复且复杂的计算,而这正是人力难以达到的。比如,公共场合的摄像机可以不停地抓取几百张人脸,后台的识别程序高速运行,对这些人脸进行识别并追踪。
在后续的文章中,小马上海团队也会继续介绍图像识别(分类、目标检测、语义分割等)的小知识。
编辑 | 小马国炬