我不是脸盲晚期 ——图像识别(第1 / 2页)
在这个过程中,主要技术难点在于部位特征的关注。为解决这个问题,研究员们提取出了深度神经网络中的一些中间信息,这实际上就是从图像中识别出来的模式。这些模式进行归类后,得到的每个聚类都被机器理解为花的某一个部位的集合,这样就构建出了部位检测模型。将由原始图像生成的每个候选框都经过每个部位检测器,而每个部位检测器则会自动检测出这个候选框内最接近这个部位的区域,这样就实现了部位级别的关注。
深度学习中的另外一个问题就是训练数据量的选择。要提高识别的精确度,提升用于训练的数据量是必经之路。出于效率的考虑,识花使用弱监督学习的方式进行数据的训练,通过对训练图像进行标注提升效率。弱监督学习中的“弱”一方面体现在用于机器学习的数据集只有图像级别的标注,即只标注了这张图片上有什么花,但是并没有标注花朵的整体位置,也并没有标注出关键识别区域的位置。另一方面,训练中的标注数据是收到噪声干扰的不精确数据。因此,弱监督学习的方式既可以兼顾到数据质量的不足,又可以保证用于训练的数据量的庞大,最终保证了识花应用的准确性。
但微软的野心显然不只是辨认花朵这么简单。2015年,微软就上线了一个颜龄识别的机器人网站how-old.net,这个网站可以根据用户上传的照片从面相上分析人物的年龄。此网站一经推出便火爆全球,判断的正确率也很不赖。这也要归功于微软深厚的人脸识别技术底蕴。
邂逅一枝美丽的花儿,却不知道它的名字,它的特征,它的动人花语,这难道不是一件万分遗憾的事?
微软亚洲研究院携手中科院植物所推出“微软识花”app,其智能花卉识别和知识系统将成为你的“花儿百宝箱”。只需拍摄花儿照片或选取手机图库中的花儿图片,由中科院植物所专家标定的庞大花卉数据库将快速、精确地识别花儿,并通过花语、药用价值等信息,讲述关于花儿的小秘密,让你一秒变身识花达人!
<img alt="" src="/book/uploads/2022/02/20220208-80.jpg">
图8-2 “微软识花”软件介绍
这是手机软件“微软识花”的官方介绍。这款软件不仅是微软亚洲研究院和中国科学院植物研究所多年学术合作的结晶,也是人工智能在图像识别领域的高水准表现。即便是专业的植物学家也不可能准确地识别出每一种花朵,这要求广博的专业知识和细致的观察能力,可能还需要长期的训练。对于计算机也是如此:首先要建立由所有花朵实例组成的训练数据集,再使用深度学习技术对机器识别模型进行训练,以达到精确的识别结果。
花朵识别的难度远高于动物品种的识别:小猫小狗的种类数以百计,而目前已被发生的野生植物已达数十万种,大量闻所未闻的新品种还在不断涌现。因此,微软亚洲研究院的研究员们借助中科院植物所提供的260万张花的鉴定照片作为训练集。但计算机不同于人类:虽然它具备人类无法企及的存储能力和计算能力,但却达不到人类的联想想象水平和抽象概括水平。直接应用这数百万图片的训练集能够得到理想的结果,但一定会是个效率相当低下的过程。人类的经验就是这样一味催化剂,具有增强人工智能学习效率的神奇魔力。
传统的深度学习技术遵循自底向上的规律,通过学习底层的高维数据来获取语法信息背后的高层语义表达。人类学习的过程则是自顶向下的过程:从实践中提取理论,反过来再用理论指导实践。如果利用人类智能的认知规律辅助人工智能的学习过程,将自底向上和自顶向下的学习过程加以结合,就可以大大提升深度学习的效率和精度,这也正是“微软识花”开发者们的设计思路。
根据植物分类学的方法,所有绿色植物的分类、鉴别与命名的依据是“界门纲目科属种”的分类系统,系统中每个层次都有其结构特征,子层次之间也存在关联。识花中的精确识别也采用了这种逻辑上层层递进的方式。在深度学习中,机器首先建立起对“科-属-种”基本层级概念的认知,通过引入关于花卉层级结构的外部先验知识,并通过捕捉科属种之间的联系与区别来指导机器学习。
机器识花参考的也是人类观察物体、判断物体种类的过程:我们首先会将注意力放在图片的整体轮廓上,以确定图片中是否有花朵存在,并排除掉花朵本身以外的其他干扰元素。接下来要确定的就是花朵关键的局部特征,通过形状、颜色、结果等局部特征的组合形成对整体的认识。花瓣层层叠叠,色泽鲜艳亮丽,颇具富丽堂皇之气的花朵十有八九是国花牡丹,而叶长如盾、素净淡雅、亭亭玉立的通常是出淤泥而不染的荷花。
对于机器而言,识别花朵时首先根据花朵的整体特征确定花的“科”,再通过花瓣的分布与形态等细节来确定它归于哪个“属”,最后通过花瓣的颜色和纹理等更加细微的特征来具体判断它属于哪个“种”。开发者根据这样的过程,独创性地设计了视觉多级注意力模型,并结合深层神经网络技术,用于图像的识别与处理。多级注意力模型首先关注物体本身,即自动关注到图片中花所在的区域,再由粗到精对细节部位进行关注,最后对花朵的部位特征进行学习和识别。