公众号/将门创投
From:Awesome_FGIA 编译:T.R
细粒度图像分析(fine-grained image analysis,FGIA)是计算视觉领域的基础问题,由于面临的问题与其他视觉任务相比具有显著的差异,细粒度图像分析任务在发展过程中面临着独特的挑战。
近年来随着深度学习发展和数据特征表示的进步,FGIA也取得了一系列进展。来自旷视南京研究院的研究人员们对近年来基于深度学习FGIA的发展进行了系统的梳理和分类,同时给出了一系列行业内具体的应用实例,最后从目前面临的挑战和开放问题中展望了这一领域的发展趋势和研究方向。
细粒度图像分析所面临的任务是分析和处理某个类别目标下的一系列子类别的问题,例如狗的类别下包含了各种不同外形、颜色、身材的狗。这一任务最大的挑战在于子类间的差异很小,而在同一类别中的对象却因为姿态、大小或者位置呈现出较大的差别。
如何通过准确的特征表述,从细微的不同中辨别出不同的子类别,是细粒度图像分析任务所面临的最大挑战。
目前细粒度图像分析主要分为识别、检索和生成三个部分,在学术界和产业界扮演了重要的作用:从生物领域的监测和识别到零售领域的商品处理,从天气和气候变化分析到交通运输,细粒度图像分析拥有广泛的应用前景。
研究人员们在各大顶会上也发表了大量研究成果,举办了诸多FGIA的比赛,例如鱼类识别和鲸鱼识别等,也为FGIA指明了一系列未来的发展方向。
细粒度图像识别任务是FGIA中最为活跃的研究领域,目前的研究思路重要分为三个方向:
一种是基于定位与分类的方法来实现;
另一种则直接利用端到端的方法实现特征编码从而进行识别;
最后一种则依赖于容易获取的外部信息进行辅助以实现细粒度图像识别。
定位-分类方法将细粒度图像识别转换成了两个细分的子任务。首先通过对图像中细粒度目标的可识别语义部分进行抽取作为中介,随后利用模型构建起对于这些部分的特征表达并分类来实现。
这需要一个用于定位这些类别关键部分的子网络,和一个可以对这些关键部分进行有效分类的子网络。通常研究人员们会使用bbox框或者语义分割掩膜等来为关键部分定位。
基于端到端的方法则直接从数据中学习可辨别的特征表达,构建出强大的细粒度识别算法。例如双线心CNN方法利用高阶统计特征来提高中级cnn的学习能力,但过高的维度限制了这种方法在大规模数据中的现实应用。
最近研究人员利用低维嵌入的聚合以及双线性特征的近似等方法来改进端到端模型,并设计了特殊的损失函数来驱动模型学习出细粒度的表达。
外部信息辅助下的细粒度图像识别充分利用了文本、网络数据、多模态数据和人类的帮助来更有效地进行细粒度任务。由于人类标记的数据成本很高,研究人员开始选用互联网上带有弱标签和噪声的数据。
其中一种方法是为需要测试的类别爬取含有标记噪声的数据作为训练数据,其主要的研究方向在于克服标记数据与易获取网络数据间的差距、减小噪声数据的负面影响。研究人员通常使用对抗学习和注意力机制来处理。
另一种方式是将良好标记类别上学习的能力迁移到测试类别上,通常采用元学习和无样本学习方法。
除了网络数据外,研究人员们还使用多模态数据进行辅助学习,包括自然语言描述和知识图谱等数据都是辅助细粒度图像识别的有力工具,实现视觉与语言的联合表示。
最后人工智能中一定需要人的参与,通过将难识别的样本、关键特征定位等任务加入人与机器的合作来实现更好的细粒度识别。
图像检索也是细粒度图像分析中重要的一部分,在给定某类图像的前提下可以从数据库中返回相同的子类,而无需其他的监督信号。但与通常检索不同的是,细粒度任务所要检索的对象都是极为相似的子类别内容,子类间仅仅只有细微的差异,而同一目标则因为位姿、尺度和旋转的不同而差异巨大。
这一任务在电子商务和在线平台上有着巨大的需求,近年来研究人员利用深度学习的方法探索了对于图像中关键对象或部分的深度表达,发现新的损失函数和子结构来对这一问题进行处理。
随着无监督学习和图像生成领域的发展,研究人员们开始探索细粒度的图像合成问题,包括人脸、人体和不同环境下的物体合成都展开了一系列研究。
例如结合变分自编码器和生成对抗方法的CVAE-GAN方法基于概率模型构建了标签和隐含属性,通过细粒度的类别来引导生成模型进行细粒度的图像生成。还有研究人员利用文本描述的方法结合生成模型得到具有细粒度特征的合成结果。
目前在细粒度图像领域有一系列基准数据,包括了动植物、飞机、零售商品等,这些数据不仅为这个领域的算法提供了有效的测评基准,同时也推动了这一领域的不断进步。作者在下表列出了常见的FGIA数据,包括了元类别、数量、标签类别等:
值得注意的是CUB200-2011数据是一个使用最为广泛的数据集,数据包含了详尽的标签,包括部分标注、属性标签甚至是一段对应的自然语言描述,近年来研究人员还在不断拓展这个数据。
此外还有很多数据集在不断地放出,人们更深入地研究新颖的特征、大规模、多层级的结构、域间的差异和数据长尾分布等,同时更多的研究如何在真实场景中进行有效落地。
细粒度的图像分析在产业界中有诸多的应用,包括推荐系统中的衣服鞋帽检索、时尚识别,电子商务网站中的产品检索等等。此外人脸识别也可以视为细粒度图像识别的一个子问题,针对的是人脸这个类别下的身份细粒度识别。同时行人和车辆的重识别问题也是细粒度识别问题的一种体现。
FGIA将为会这些具体的问题提供一系列解决方案,包括可识别特征的捕捉和层层递进的信息结构等,都为这些领域的发展做出了贡献。
尽管细粒度图像分析在近年来取得了一系列的进步,但在很多方面还存在一系列开放问题值得进一步深度地研究,在文章的最后研究人员提出了四个未来潜在的发展方向,为未来的研究给出了建议。
1. 自动化的细粒度建模。随着自动机器学习AutoML和自动架构搜索NAS的发展,未来细粒度机器学习将通过这些方法提高建模的效率和精度,并将寻找到表现更好的模型,同时也将反过来促进自动机器学习领域的发展。
2. 细粒度小样本学习。人类可以通过少量的样本抽象出对于某个类型的认识。目前最好的深度学习模型也需要众多样本进行学习,既耗时也需要大量的数据成本。而细粒度图像识别拥有比粗尺度更为精细的标签,未来研究人员也许会利用更小的样本数量来对分类器进行训练,强化FGIA的实用性和应用规模。
3. 细粒度哈希。随着这一领域的应用和数据规模的扩大,检索的难度也随之加大。哈希作为一种有效的领域搜索技术正在受到人们的关注,对于细粒度图像检索的哈希研究将有望成为处理大规模数据问题的有效手段。
4. 真实细粒度分析。为了适应真实应用场景需要进一步研究在各种真实条件下的FGIA问题,例如在超市货架上的商品和野外的动物细粒度分析问题中,无法控制环境和对象的条件,这会对视觉任务带来一系列挑战。随着这一领域的发展,算法和模型将会具有更强的域适应性,基于知识迁移、长尾数据以及在资源受限的端上运行的细粒度图像分析将会有更多深入的研究,实现更加先进和可用的FGIA系统。
如果想要了解更多的细节和丰富的综述参考文献,请参看:
https://arxiv.org/abs/1907.03069
一个awesome的网站:
http://www.weixiushen.com/project/Awesome_FGIA/Awesome_FGIA.html
最后来一个典型的FGIA小测试,你的AI分得清这些狗子嘛?
ref:
pic from:
https://dribbble.com/shots/4137329-But-first-coffee-and-medialunas
https://dribbble.com/shots/6346293-Still-life-composition
https://www.mo4paws.org/