春季为全家出游赏花旺季,能够在小伙伴面前叫出所见植物的名称在游园期间就成为一项神技能。为了满足大众对植物认知的需求,此前,百度已陆续与国内多家植物园展开合作,并联合中科院植物研究所等专业机构对植物识别结果进行鉴定,引入350万专业植物数据进行模型训练,提升植物识别率。


01.jpg


   游客使用百度 APP 拍照便能识别植物信息,通过百度图像视觉搜索与植物园实地场景结合,打造出基于 AI 的智慧植物园,为游客提供植物识别、植物园游览资讯、植物地图精准推荐等应用场景,让游客轻松领略到一拍即识身边花草树木的高科技游园体验。


02.jpg

花卉大观园科普牌


03.jpg

中科院花草科普牌


   百度已经与中科院北京植物园、北京世界花卉大观园(4A)、西双版纳热带植物园(5A)、武汉植物园(4A)、上海植物园(4A)、兴隆热带植物园(4A)等12家植物园达成合作,并在今年春天展开了一系列线上线下互动活动,还没去赏花的小伙伴们快去自己亲身体验下吧。


04.jpg


05.gif


   那么百度是如何做到通过拍摄花卉照片便能准确识别花卉信息的呢?下面有请来自百度视觉搜索团队,百度视觉技术部、中科院植物研究所、中国植物园联盟的大牛们为大家揭露植物识别背后的奥秘,独家放送,不要错过哦!


   百度视觉搜索总经理彭博表示,百度视觉搜索已涉及生活中多个领域,对于复杂的花卉识别,让机器进行细粒度模型训练,结合专业数据库,大大提高花卉识别精准度,未来也希望能够有更多领域加入,为用户带来更好的服务和便捷的搜索体验。

 1.为什么要做花卉识别 


   在日常生活中,花卉不仅可以提高品味,装饰室内、花园与阳台,也可以净化空气,为我们带来愉悦的心情和美妙的视觉感受。


06.jpg

图片来自网络:室内装饰/花展/婚礼鲜花

 

   辣么,全世界有多少种花呢?截止到2010年,据不完全统计,世界上可以开花的植物有将近40万种。但是,在日常生活中或花卉展览时我们真正可以见到的仅有上千种花。这么多种花,总有你一见钟情的那一款,可是你却叫不上它的名字,这就好比偶然见到了眼熟的女神或者是男神,却不知道对方的名字一样,甚是尴尬。


   为了解决大众这个看似简单的生活痛点,百度借助 AI 技术,让你只需掏出手机从百度搜索框中打开摄像头,就可以轻松知道自己喜欢的花的名称。可是,面对上千种不同的花,该怎么做呢?

 

 2.上千种不同花卉识别:

 通用分类与细粒度分类 

 

   这项技术来自于百度视觉技术部下的细粒度图像团队。花卉识别是非常具有针对性与专业性的分类,识别出一朵花不仅需要严谨、正确的专家级鉴定,还需要能区分上千种花之间细微差别的能力。因此,花卉识别超越了通用识别的范畴,隶属于细粒度识别范畴。


   通用分类技术,只需让计算机知道日常生活中常见的事物即可,比如花、狗、猫、房子和汽车等。但是细粒度分类要教会计算机拥有专家级别的能力,不仅需要知道是不是花,而且要准确地告诉我们是什么品种。


07.jpg

图1:通用分类


08.jpg

图2:细粒度分类

 

 3.怎么做花卉识别 

 

   首先,上千种花卉数据信息是如何收集的呢?我们借助百度的知识图谱,对世界上的花卉名字进行科学的科、属、种划分,建立了一个非常专业的花卉类别库,支持花卉种类过万,大大超出了日常生活中常见的花卉种类。

 

   接下来,按照这份列表,借助百度强大的图库,进行文字搜索。累计到目前的最新版本,我们已经从两千多万的图片中筛选出了大量的优质花卉图片。对于这些图片,标注人员通过权威样本库中的文字描述,并在中科院老师的帮助下,根据花卉的叶子、形状、颜色等微观特征进行挑选与标注。除此之外,还进行了标注质量的检查,标注准确率在 95% 以上。这个数字意味着,高质量的数据为模型的学习奠定了很好的基础。

 

   最后聊聊方法。每个用户在拍摄花卉的时候,虽然都会尽可能地对准目标,但是对同一朵花而言,拍出来的姿势也会千差万别。比如,拍摄环境的光线明暗程度、手机抖动带来的模糊画面等差别都需要解决。


   我们让计算机在“看”一张花卉图片的同时,通过算法模拟各种拍摄环境情况,尽可能让它“看”到同一朵花在更多的情况下的图片,比如,下图中我们演示了几种情况,模型在学习一朵花的同时,还要学习它的各种情况下的模样,光线、旋转、以及放大缩小等。这样,就可以模拟一朵花的各种情况来应对用户不同拍摄情况的问题。


10.jpg


   对于模型上的选择,我们尝试了很多方法以及创新。近几年,在细粒度的分类领域,注意力机制(Attention Mechanism)引起了很大的关注。通过大量的样本学习,模型会自己注意到一些比较有意义的特征与纹理。


   百度提出了 Fully Convolutional Attention Localization Networks[https://arxiv.org/pdf/1603.06765.pdf],这个方法利用 attention 机制解决了细粒度识别领域中,区分类别之间细微差异的问题。


   在过去的工作中,大部分方法都是需要利用人为精确的 part 标注信息,才能教会模型应该“认真地”去关注哪些细节。这种方法缺点在于标注 part 太依赖人的经验,并且标注成本昂贵。另一个原因是有些细粒度识别任务,凭借人的经验不容易知道哪些 part 细节是有用的,比如花卉、菜品或者是动物。因此,让机器自己去学习一些有用的 part 信息是非常有必要的。如下图,利用深度学习模型,能够很好地让模型通过看海量数据去学习到关键的细节。


11.jpg


   在训练时候发现, 模型会“偷懒”, 模型总会过分关注于自己已经识别的花卉,如何让模型自己能着重学习那些识别不了的花卉呢? 为了更好地解决此类问题,我们将那些做不好的花卉样本,通过数据挖掘技术,检索出更多类似的难样本集。让模型能够更加关注于这些难样本。和人一样,每次都得学习有难度的知识,才会变得更强。

 

   另外,任何机器算法都不是完美的,有时候也会出现识别的错误。为了解决这个问题,我们在后期做了一些尝试,使用数据回流来不断提高模型的准确率。越来越多的用户使用百度 APP 来拍摄花卉,从而留下了大量、真实的花卉图片,利用这些宝贵的数据,对这些数据进行清洗与标注,反哺给我们的模型,形成一个良性循坏。这样机器便会对用户拍摄的花卉越来越自信地给出正确名称。


12.gif


   春天正是参加踏春、户外旅游、参观花展的最好时期,拿上手机,打开百度 APP 去拍照搜索那些娇媚花儿的名字吧。如果花旁边正好有个好看的妹子,也可以用百度 APP 搜索框打开相机,拍妹子旁边的花,知道花名的同时还能顺便悄悄拍下那漂亮妹子也是极好的。


13.gif

百度APP花卉识别拍摄界面


   点击进入AI 植物园-春季赏花页面拍照,我们带你遇见身边的花草树木!


14.jpg

846764a4d69e3d3f2115c0368.jpg