前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创新沙盒inky的一大关键技术分析:Logo识别技术

创新沙盒inky的一大关键技术分析:Logo识别技术

作者头像
绿盟科技研究通讯
发布2020-03-12 09:13:10
1.1K0
发布2020-03-12 09:13:10
举报
文章被收录于专栏:绿盟科技研究通讯

一、前言

Logo识别技术是现实生活中应用很广的一个领域,比如一张照片中是否出现了Adidas或者Nike的商标Logo,或者一个杯子上是否出现了星巴克或者可口可乐的商标Logo。学术上早在2013年开始就已经陆续使用深度学习做相关的研究,而业界Logo识别已经开始商业化,包括谷歌,百度,阿里等公司都在AI开放平台开放了API给大家提供Logo识别的使用接口。在安全领域Logo识别技术的应用也很广泛,例如敏感信息挖掘,垃圾邮件过滤等方面都有涉及Logo识别相关的应用。2020年RSA创新沙盒中inky公司在恶意邮件识别系统中也用到了这一关键技术。

实际上Logo识别技术和目标检测(Object Detection)技术是非常相关的,关于目标检测学术上研究的时间已经超过20年。随着深度学习技术的发展,现在主要的目标检测算法已经从早期的传统图像算法转到了深度神经网络方法。现在主流的目标检测方法包括RCNN,FRCNN,SSD,YOLO等,这些算法在神经网络结构上不断创新,从two stage到one stage,算法已经在业界的得到了应用验证。而Logo识别技术能够利用Detection技术进行实现,但是又和普通目标检测有所区别,因为Logo的种类可能比较多而且Logo相比普通目标检测中背景和物体的关系不大。因此Logo识别技术算是一种特殊的目标检测算法的应用。本文希望通过对目标检测技术的介绍出发,然后介绍Logo识别技术的方法,向读者介绍其原理及应用。

二、目标检测

目标检测的任务是希望在图像中找到目标对象,并且能包括目标的具体位置。由于图像在形成过程中收到光照、遮挡、目标物体位置、形状以及数量等不确定因素的干扰,传统基于图像的目标检测算法能有一定作用,但是效果不够好。在深度学习发展之后,主要流行两种目标检测算法,一种是以RCNN为代表的早期two stage算法,另一种是以SSD为代表的的one stage算法。

Two stage算法包括两个stage,第一个stage需要生成proposal信息,第二个stage需要利用proposal信息进行进一步目标检测。RCNN,FRCNN以及后续改进算法RFCN等都属于two stage算法。在FRCNN算法中首次提出使用CNN网络完成对proposal的提取,后续的方法大多借鉴了FRCNN的方式,首先通过一个神经网络的卷积层来提取共享特征,然后用一个RoI Pooling Layer在feature map上提取每个RoI的feature map,每个RoI的feature map都会由下一个阶段处理,第二个阶段一般由全连接网络完成每一个RoI的分类和回归预测。

One stage算法会直接在神经网络中提取特征并用来检测目标所属分类及位置,算法主要通过overFeat网络将分类、定位、检测等过程融合在一个网络中,SSD以及YOLO都是典型的one stage算法,后续的改进方法例如DSSD、YOLOv3等算法一方面在提升算法性能,另一方面在提升算法效果和加速训练。一个图像经过YOLO算法处理之后会得到检测目标的分类和位置,这个e2e网络在网络结构上和two stage算法的FRCNN等有一些区别。首先YOLO不需要求解region proposal信息,而FRCNN网络一般使用RPN作为proposal提取网络,其次YOLO将检测问题当做回归问题进行求解,而不是像two stage算法将检测问题拆解为分类和回归,其网络结构如下。

网络中的卷积层用于提取特征,全连接层用于预测图像所属分类概率以及图像位置。

在全连接输出层的处理上,YOLO是将图像分为S*S个方形格子,每个格子检测该格子中的物体。如果物体的中心位置落在某个格子,该格子检测这个物体。每个格子都会输出一些bounding box信息以及一些物体所属分类的概率。Bouding box是用来获取物体位置的信息,其主要包括x,y,w,h,confidence。其中x和y是格子预测物体的bounding box中心的坐标,w和h是图像的夸夸难度和高度,confidence是bounding box是否包含物体以及位置的准确度。

最后YOLO选择使用均方和误差作为loss函数的优化模型参数。

也就是说YOLO的loss函数有三部分构成,分别是坐标误差、IoU误差、以及分类误差。

One stage模型和two stage模型相比往往具备预测速度更快的特点,并且背景误检率比较低。而two stage方法在识别目标位置的精度上更好,召回率一般更高。

三、Logo识别

在Logo识别中,实际上主要工作在于能够检测出图像中是否包含Logo或者其位置信息。这和Detection的任务目标是一致的,不过在实际应用场景下面临更多的复杂问题。

例如,对于Logo训练数据的类别不平衡问题,某些小众的Logo在数据集中的数量很少。针对针对这一问题,可以通过合成数据的方式进行缓解,比如选择特定的Logo以及抽样的图片,在图片中合成特定的Logo作为训练数据加入数据集的方式可以增加少量Logo所属分类引发的数据不均衡问题。此外,Logo识别可能面对的Logo种类很多,因此选择使用softmax进行分类时可能效果会随着Logo数量的增加而降低。因此可以考虑使用多层网络进行Logo的识别,首先利用YOLO模型检测Logo可能的位置,然后使用image-similarity network模型对Logo进行检测找到Logo所属的精确分类,该2-layer网络结构如下图。

Layer1是YOLOv2网络,其主要作用在于识别Logo提取bounding box,由于Logo识别中更注重对图像全局信息的检测,因此选择使用YOLO算法更合适。Layer2是image-similarity network模型,通过CNN提取到图像特征之后经过归一化层和全连接层得到特征向量。网络随着同种Logo间loss降低,不同Logo间loss增加的方式逐渐收敛,最后使用cosin distance进行相似度检索。

经过Logo识别算法对图像进行检测识别之后,效果如下图所示。图像中出现的Logo的类别和位置都会识别出来。

四、总结

随着深度学习的发展,目标检测技术在学术届和业界都取得了很大的突破。越来越多商业化的AI平台都集成了目标检测相关的技术,Logo识别就是一个具备商业价值的落地应用场景。在安全领域目标检测算法并不常见,但是对于商标违规侵权以及资产核查等场景具备应用空间,可以作为威胁情报助力企业数据搜集挖掘和品牌维权。利用Logo识别技术可以快速精准的监测企业数据信息,避免投入大量人力成本和时间成本。

关于天枢实验室

天枢实验室聚焦安全数据、AI攻防等方面研究,以期在“数据智能”领域获得突破。

内容编辑:天枢实验室 张胜军 责任编辑:肖晴

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 绿盟科技研究通讯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档