微软识花:精细物体识别是怎么做到的
欢迎关注微信公众号:微软研究院
这个星期,估计很多人的心情是这样的……
更有甚者,估计出去玩的行李都已经收拾好了……
虽然硬件装备已经准备齐全,但是你的软件装备呢?
十一,各个公园,商场等城市的各个角落都摆上了给祖国母亲庆生的鲜花,妆点着节日的气氛。天安门广场上的巨型花坛,也吸引了来自全国各地游客的驻足和拍照。那么,这些花坛上都有哪些花呢?这时候,你可以默默掏出“微软识花”应用,深藏功与名。
https://v.qq.com/txp/iframe/player.html?vid=r03324o90wc&width=500&height=375&auto=0
400种花卉一键识别
“哇,这朵花好美!这是什么花?”
“额,我来上网搜一下……”(然而搜索起来却无从下手)
很多人都遇到过这种措手不及的小尴尬,尤其是带着小孩子或者小伙伴旅游和遛弯时,只能一脸茫(meng)然(bi)地面对Ta的好奇心。毕竟植物专家说,全世界已经发现的花至少有25万种。即使你知道是什么种类,也很难说出关于花的故事来。
而微软亚洲研究院推出最新款智能识别应用——一位可以随身携带的植物专家“微软识花”,可以帮你破解花的秘密。拿出手机,打开App,拍张照片,一键识别,随手解救好奇心。微软识花应用所能识别的花卉覆盖了中国的绝大多数花卉。微软识花的打开方式应该是这样的……
首先,打开微软识花应用,现场拍摄或从手机图库里打开一张花儿的照片,将花朵移动至指定位置。然后,应用会自动识别出花朵的名称和类型,并显示出匹配度,告诉你花的基本特征、药用价值等。以上动作完全可以在不联网的条件下实现!这就意味着,当你在流量捉襟见肘的情况下,照样可以用没有网的手机识别出新奇的花卉品种。
知道是什么花还不过瘾?别急,“微软识花”有一个独特的“花语”功能。赏花要懂花语,花语是人们赋予花的一种象征,可以用来表达人的某种感情与愿望。不同的花有不同的花语,在没有了解花语时就乱送别人鲜花,结果只会引来别人的误会。花语虽无声,但此时无声胜有声。对于每一种花,系统都会附上一段娓娓道来的花语。比如“六道木”的花语是“对你的念想沿六条直线自下而上,终于在顶端开出了最好看的花”,是不是恰似你现在的心情呢?一键分享到朋友圈,用最适合你心情的曼妙花语来表达你此刻的心意吧!
大家在使用时或许还能发现藏在应用里的两个彩蛋。
微软识花应用带有一个专门的花儿搜索包,将400种园艺花卉收录在系统中,按字母顺序排序。也许有的花你只听说过名字,没见过“真容”,那么这款应用就可以帮你提前见识一下。只有没听过,没有搜不到。400种花基本涵盖了我国城市绿化和公园常见的花卉品种,想看哪种花都可以搜索到。
另外,如果你玩腻了识花,微软识花还有另一个有趣的功能等待你开掘:那就是对其他常见的日常物体进行识别。拿件衣服、摆个文具来测测这款应用的“智商”,听起来也是挺有趣的事呢!对于常用物体的识别采用了微软亚洲研究院最先进的图像识别技术。在内部测试中,识别精度可以达到90%。
精确识别:不仅仅是人工智能
除了大火的博物君,在微博上还有许多类似的账号如@深山虫吟ChenZ、@果壳自然控、@开水族馆的生物男等等也吸引着大家的眼球,这些不同的账号背后代表的通常是某一类垂直的专业知识。这些账号的大受欢迎也从侧面说明了精细物体识别有着极高的门槛,对于人类而言需要的是长时间的训练和知识的积累,此外还要求极为细致的观察能力。例如对于人们来说,可能很轻而易举地看出图片上的植物到底是花还是草,但却很难判断出花儿的具体种类。而由于计算机识别图像的方式原理与人类有所不同,因此这一类精细物体识别对计算机而言则相对简单。
这款应用使用流程很简单,背后的技术却不见得那么简单。市场上已经有一些识猫狗等动物的应用,而相比于识猫识狗,花的识别更具有挑战性。狗的种类不超过300种,而对花来说,已经被发现的野生植物就有几十万种,还有大量奇形怪状的新品种在不断地涌现。而微软亚洲研究院多媒体搜索组的研究员们在精确识别技术方面有着长久的积累,他们正希望做这样一些有挑战性的事情。
这款App主要应用了深度学习技术。研究员们借助中科院植物所提供的260万张花的鉴定照片,对机器识别模型进行训练。但是在弱监督的条件下,对260万张图片进行机器学习是一个相对低效率的过程,因为人的抽象能力和想象能力是计算机很难做到的。研究员傅建龙介绍道:“传统的深度学习技术是一个自下而上的学习过程,让计算机在底层的高维数据里学习隐藏的高层语义表达。如果我们能在人工智能之外加入人类智能,对机器的深度学习进行指导,把自下而上和自上而下的学习过程相结合,会大大提升深度学习的精度和效率。”把人类的经验和人工智能相结合,才能迸发出增强智能的魔力。研究员们正是在这方面下了很大功夫。
总所周知,分类学家对种类繁多的生物界做了一个阶层划分,即制定了“界门纲目科属种”的分类系统,做精确识别也需要一层一层递进,才能提高识别的准确性。在识花方面,主要是需要机器对“科-属-种“三个基本层级有一个提前的认知。研究员先加入一个花卉本身的层级结构,将它作为一种先验的知识,来指导机器学习。研究员们考虑到层级的信息,例如,不同的科的植物之间会不会有相关性?于是他们通过捕捉这样一种相关性来训练模型。
按照“科-属-种”的层级划分,首先确定花的“科”,再通过一些细节的特征,例如花瓣的分布、形态等来确定它归于哪个“属”,最后通过花瓣的颜色、纹理等更为细微的特征来具体判断它属于哪个“种”。一朵花就是这样被计算机识别出来的,当然每一种花的识别过程也是“因花而异“的。
那么人类是如何识别出花的种类的呢?假设现在摆在我们面前的是一朵花的照片。我们首先会注意到这张图片中花出现的区域,确定这张图片上是否存在花,以及一共有几朵花,并排除旁边的草地等干扰项。接下来,你可能会将你的注意力放在花的一些关键特性上,如花的颜色、形状、大小等等。通过这些关键部位的特征,例如花是单朵顶生,颜色为黄色白色相见,形状呈杯型或碗型等特征,可以大致确定这是一朵郁金香。
研究员们基于以上人类观察物体、对物体的种类进行判断的过程,独具创新地开发了一个自动的视觉多级注意力模型,并结合深层神经网络技术,用于图像的处理与识别。第一级是物体级别的关注,即自动关注到图片中花所在的区域,而排除其他不相关的因素,如杂草等。第二级之后则是由粗到精的部位级别的关注,即关注到花的具体部位,然后对花朵的部位特征进行学习和识别。
众所周知,深层神经网络技术在处理图像问题上的效果显著。但一直以来,深层神经网络都被称之为黑盒子,大家对它了解都不算充分,深层神经网络的理论方面还有待突破。但当黑盒子打开之后,大家能从中学习到很多的东西。研究员们通过一些可视化的策略,了解这些网络究竟学到了什么样的内容,看到每个卷积模板(filter)都代表什么样的语义。其实,卷积神经网络的中间层一些部位的信息已经可以自动学出来了,我们就把这些自动学出来的的模式(pattern)自动进行归类。这些归类出来的每一个聚类都可以理解成是花的某一个部位的集合。虽然模型本身并不知道其中的某一个聚类究竟是花瓣还是叶子或是花蕊,但它已经知道这是属于某个部位的信息,这样就构建了部位检测模型。将由原始图像生成的每个候选框都经过每个部位检测器,而每个部位检测器则会自动检测出这个候选框内最接近这个部位的区域,这样就实现了第二级——部位级别的关注。
弱监督学习与大规模数据
提高图像识别系统的准确度,数据量始终是一个绕不开的关键问题。数据量越大越准确,那么最终训练出来的模型准确度也会相应地提升。对于花朵识别问题,研究员们起初是邀请一些植物学家们对花的图像进行种类标注。但研究员很快发现,这种标注数据的方式无论是从成本上还是时间效率上都算不上是一个最佳的选择。那么,有没有可能通过群体的智慧来解决这个问题呢?研究员们最终选择从由植物专家提供数据的专业网站爬取数据,并利用弱监督学习(Semi-supervised learning)的方式进行数据的训练。
监督学习(Supervised learning)和无监督的学习(Unsupervised learning)概念大家已经不算陌生。前者会对数据进行标注,而后者则是对输入的数据集直接进行建模。研究员们在这里采用弱监督学习的方式是希望模型能够生成比较准确、清晰的标注,但前期的数据并不能完全提供这一类的信息,需要模型自己去推断。在看图识花的这个例子里,弱监督学习中的“弱”包含了这几个方面。第一点弱的地方在于用于机器学习的数据集只有图像级别的标注,即植物学家在标注图片时只标注了这张图片上有什么花,但是并没有标注花在哪,也并没有标注出最需要注意的关键识别区域在哪里(但人类判断的最关键的识别区域未必是计算机认为的最关键的识别区域)。其次,研究员使用的网络上大规模标注的数据的时候,这些数据并不一定是准确的,而且这类数据有着很多的噪声。此外,这些数据大多比较零散,结构化并不是很好。因此,弱监督学习的方式既可以兼顾到数据质量的不足,又可以保证用于训练的数据量的庞大,最终保证了入驻每个人手机中的微软识花应用的准确性。
携手植物专家:跨界玩创新
正如前面所言,植物专家的帮助对提高花卉的识别能力起到了基础支持的作用。这次“微软识花 “app的开发是微软亚洲研究院和中国科学院植物研究所多年来学术合作的成果。中科院植物所不仅提供了260万张花卉的识别图片,还提供了经过专家鉴定的中国常见花列表。而微软亚洲研究院的研究员们利用先进的技术开发出识别花卉的算法,并把识别结果挑选出来,经植物所专家鉴定。经过了两三次迭代的过程,才得到了最终训练机器识别的样本集合。中科院植物所植物专家的帮助对提高花卉的识别能力起到了基础支持的作用。此外,科学出版社为我们提供了花卉的专业知识。
这次合作缘于一次机缘巧合。去年,在中科院植物所举办的一次研讨会上,微软亚洲研究院常务副院长芮勇博士展示了研究院在计算机视觉方面的最新技术,植物所的专家很感兴趣,希望可以把最新的识别技术应用到我国的植物调研和科研中去。植物所的专家有这样一个初衷,那就是了解全中国的植被分布。之前由基层调研人员通过翻阅手册来判断各地有哪些花,但是基层人员的专业素养不可控。如果能够借助计算机技术帮助他们识别,那么速度和广度要提高很多。而微软亚洲研究院在深度学习算法和计算机视觉方面有着领先的技术基础,可以帮助他们做一些目前做不到的事。同时微软亚洲研究院的研究员们也希望借此机会,将精确识别技术更好地得到应用,并且在应用中进行进一步锤炼和创新。
跨学科的学术合作也是微软亚洲研究院长期耕植的领域。“对于任何物种的分类都是艰难的,”芮勇表示。“关于这项技术的难点在于让计算机如何辨别细微的差异。而真正大的数据都在跨学科领域里产生的。我们与中科院植物所的这次合作为微软识花提供了大量的专业数据,让我们的计算机技术得以更好地应用。同时,微软的技术也在不断加速交叉学科的新突破。”
技术让生活更便捷
一款看似简单的应用背后却是微软长期以来在机器学习领域的技术积累和跨界合作的成果。微软亚洲研究院不仅重视基础研究的突破,还注重将基础研究的成果应用到更加广阔的生活和学术中去,让技术为人们真正带来改变。
在谈及微软识花之后的技术走向时,研究员傅建龙提到了多个发展方向。第一点是加入更多花卉的种类,将识别的范围拓展到多个国家,并且提供多语言的产品以及提供更多的平台。今后出国旅游也可以带上这位植物专家,帮你识别万千花卉。第二点是提高识别的精确度,在学术合作中推进数据库在质量和范围上的提升。第三点是拓展产品的科普功能,丰富关于花的知识,提供更多的互动功能,从而实现更好的科普。不仅让你知道是什么花,还为你拓展在博物知识方面的涉猎,让你离“博学之才“更近一步。第四点,研究员希望持续不断地精进识别算法模型,并实现离线版本与在线版本的无缝切换,让微软识花这一类精细物体识别技术也能以API的形式开放出来,登陆在像微软认知服务(Microsoft Cognitive Services)一样的人工智能服务平台,造福更多的开发者们。最后一点是希望该项目能对专业研究者的科学研究带来便利,比如帮助植物专家发现新的物种、帮助基层调研人员精确识别花卉品种等。不管你是普通大众,还是专家学者,让学术研究服务更多的人,一直是微软亚洲研究院的目标所在。
目前,微软识花应用已登录iOS应用商店,供大家免费下载啦!想随身携带一位植物专家吗?想听听Ta的花语和秘密吗?快去试一试吧!
扫描二维码或点击阅读原文链接即可下载微软识花应用
你也许还想看: