当前位置: 首页 > 科技观察

AI正在改变世界,人脸识别如何应用在电商业务场景中?

时间:2023-03-14 12:35:09 科技观察

【.com原稿】一、概述当今,计算机视觉和深度学习的飞速发展给许多技术领域带来了颠覆性的变化。人脸图像处理就是一个典型的例子:在互联网时代,这项技术通过各种应用方式给人们的生活带来了便利和安全,增添了乐趣。另一方面,电子商务领域经历了PC互联网和移动互联网时代,进入了智能化时代;图像视频数据海量,应用场景丰富,性能挑战难度大。人脸科技提供了一个大放异彩的舞台。图1人脸技术在电商业务中的应用架构。如图1所示,在电子商务工作中需要综合运用人脸技术。从业务的角度来看,涉及四类场景:背景图片数据管理:如违禁图片、广告图片的管理;电商实时应用:如直播、短视频;电商导购:如美妆导购、试穿等,提升用户体验;刷脸支付:已经广泛应用于移动支付和金融应用。从算法技术来看,人脸技术包括3个主要模块,即:人脸检测(在输入图像中找到人脸位置)。特征点定位(找到人脸关键点,比如眼睛、鼻子、嘴巴和轮廓上的关键点)。人脸识别(在预存的人脸图像库中查询,获取身份识别结果)。图像算法在实际实施时,可以采用不同的运行模式,包括:云端部署和移动部署。云端模式下,算法和数据都在服务器上运行,图片需要集中存储,适合后台进行批量图片处理。移动端部署是为了实现实时响应。算法部署在移动端(一般为手机),适用于实时响应单个业务请求。电子商务业务将根据实际需要采取相应的解决方案;在某些情况下,还可以将云端和移动终端结合起来,形成一种混合部署方式:云端+终端。更进一步,一些公司现在正在探索在芯片上运行人脸算法的技术方案,可以形成边缘计算模型。本文结合电商业务场景,介绍人脸图像技术的原理,以及如何在业务中使用这些技术构建业务应用。2.人脸图像技术原理经过多年的不懈努力,研究人员在人脸图像技术方面取得了长足的进步。这些技术一般涉及两类,即:传统方法和基于深度学习的方法。2.1基于深度学习的人脸检测(MTCNN)人脸检测技术的里程碑是PaulViola和MichaelJ.Jones在2000年左右提出的级联式人脸检测器,该方法使用快速计算的Harr特征,通过Adaboost算法选择有效特征和一系列的弱分类器(弱学习器),最终线性组合得到强分类器,提高了检测的速度和准确率,可以实时运行。近年来,深度学习发挥了越来越大的威力,将人脸检测技术推向了一个新的高度,于是出现了很多基于深度学习的人脸检测算法。比较有代表性的是MTCNN方法(JointFaceDetectionandAlignmentusingMulti-taskCascadedConvolutionalNeuralNetworks),由中国学者张凯鹏和乔宇提出。这种方法被称为MTCNN(Multi-taskCascadedConvolutionalNeuralNetworks),它借鉴了级联检测器的思想,通过不同CNN分类器的联合训练,将人脸检测和特征点定位的任务结合起来。图2.MTCNN方法的系统架构。其框架如图2所示,包括三个CNN网络结构(P-Net、R-Net、O-Net)。(1)ProposalNetwork(P-Net):这是一个全连接的CNN网络,用于获取人脸区域的候选窗口和人脸边界框的回归向量。候选框根据边界回归信息进行校准,那些高度重叠的候选框通过非最大抑制(NMS)操作合并。(2)RefineNetwork(R-Net):所有经过P-Net阶段的候选窗口都输入到R-Net网络中,进一步排除了大部分的FalsePositive区域,然后进行boundingboxregression和NMS操作。(3)输出网络(O-Net):该结构与R-Net层类似,但该层对人脸区域进行更多的监督,同时输出5个特征点的位置。这一步输出最终的人脸框和特征点位置(左眼、右眼、鼻子、左嘴角、右嘴角)。具体网络结构如图3所示:图3.网络结构(P-Net、R-Net、O-Net)在训练过程中,MTCNN方法从三个任务联合训练CNN检测器:人脸分类、边界框回归,人脸特征点定位。综合考虑每个任务对应的损失函数,构成多任务的总损失函数。在训练过程中,采用随机梯度下降法(SGD)对三种CNN进行优化求解。此外,该方法采用HardSampleMining策略,每次只向后传播前70%样本的梯度,可以实现自动化训练,获得更好的训练效果。图4是检测和特征点定位示例图:图4.MTCNN方法结果示例图从实际应用来看,MTCNN方法在FDDB和WIDERFACE集上都取得了很好的检测效果,并且还可以实时运行(在GPU环境下)。该方法在GitHub上开源(开源地址为:https://github.com/kpzhang93/MTCNN_face_detection_alignment),以Caffe为基础框架。在此基础上,许多研究者提出了很多改进版本,包括在Mxnet、Windows等平台上的人脸检测运行包,得到了广泛的应用。2.2特征点定位MTCNN方法可以输出人脸5个特征点的位置,分别是:左眼、右眼、鼻子、左嘴角、右嘴角。事实上,根据不同的应用,特征点数量的定义是不同的,从几个到数百个不等,通常分布的区域包括眼睛、眉毛、鼻子、嘴巴和面部外轮廓,如图图5。图5人脸特征点定义示意图。这项技术的核心是如何准确地计算出特征点在人脸中的位置。一般所涉及的算法分为三种,即:ASM(ActiveShapeModel)和AAM(ActiveAppearanceModel)方法。基于级联形状回归的方法。基于深度学习的方法。前两种方法为传统方法,定位效果好,检测速度快。实际上,有开源包。例如,Stam开源包就是ASM的一个实现;此外,EnsembleofRegressionTress(ERT)是一种级联方法。在开源的dlib库(http://dlib.net/)中,有该方法的实现代码。基于深度学习的特征点定位算法在2013年开始取得突破,香港中文大学汤晓鸥教授课题组提出了DCNN(DeepConvolutionalNetworkCascadeforFacialPointDetection)的级联结构,使得在特征点定位方面取得了巨大成就。不错的效果。在此基础上,周尔金等人。提出了一种从粗到细的人脸特征点定位方法(ExtensiveFacialLandmarkLocalizationwithCoarse-to-fineConvolutionalNetworkCascade)。面部标志的高精度定位。该算法将人脸特征点分为内部特征点和轮廓特征点。内部特征点包括眉毛、眼睛、鼻子和嘴巴等51个位置,轮廓特征点包括17个特征点。具体的系统架构和使用的CNN网络结构如图6所示。图6.人脸特征点定位(a)系统架构图6.人脸特征点定位(b)CNN网络结构2.3人脸识别人脸识别的过程为:在预存的人脸图像库中查询,得到识别结果。最关键的一步是提取人脸表示特征。近几年的突破都是用深度学习的方法。经过人脸检测、特征点定位等模块后,输入人脸区域的图像样本。人脸识别的一般过程如下:样本预处理:包括裁剪、对齐、相似变换等,然后将人脸样本图像按照不同的尺度、不同的区域划分为若干个子区域(patch)。基于CNN的特征提取:要训练一个CNN,目标函数可以定义为人脸分类或其他目标函数;将训练好的网络的最后一层(通常是全连接层)提取为特征向量。如果有多个子区域patch,则训练多个CNN网络,将所有CNN得到的特征向量进行级联,得到一个超长的特征向量(一般是几万到几十万维)。特征对比:对超长特征向量进行降维操作,压缩成低维特征向量(如160维向量),使用低维向量训练对比模型,判断两个向量是否属于同一阶级,也就是同一个人。从具体方法来看,2013年提出的DeepFace方法是CNN在人脸识别方面的开山之作。人们随后又提出了DeepID和FaceNet等方法,它们都可以体现出DeepFace的身影。另一个对人脸识别技术的发展起到重要推动作用的因素是人脸图像数据库的建设,它为技术评价提供了舞台和标准。目前比较知名的几个人脸识别评测数据库包括:FERET人脸数据库、LFW数据库、MegaFace数据库。3、人脸图像技术基于电商业务的应用实践从上面列举的四种业务应用中,美妆导购和刷脸支付在日常生活中比较常见。本文主要介绍如何在图片管理和电商直播中使用Face技术。3.1背景图片管理在电子商务的基础业务中,需要对肖像权的使用进行监控。这个需求通常和两种场景有关:第一种是广告侵权检测,有的商家请明星代言店铺的产品,有的侵权商家会盗用明星代言产品的图片;因此,需要名人面部识别。二是商户实拍认证,判断拍摄的图片是否为商户合作机型拍摄的图片;模特有脸的照片可以通过人脸识别来解决。总结起来就是利用人脸识别技术来判断图片中人物的身份。本文以广告侵权处理场景为例,介绍两种不同的解决方案。被动广告侵权检测给定一张产品图片,如何判断是否侵犯明星肖像权?首先建立一个星图库,里面有需要保护的人的肖像图片。star数量通常与实际业务有关,一般有数百人,图片数量有限。在特征比较步骤中,可以采用快速排序的方法。具体流程如图7所示。图7.广告侵权检测流程图(被动)主动广告侵权检测任务是:给定一个明星形象,对全平台商品进行检测,找出侵权商品并进行处理。首先,按照人脸检测、特征点定位、特征向量提取等步骤,对产品图中的人脸对象进行处理,构建产品图中的人脸数据库。如图8所示,查询对象是海量产品图片中的人脸数据库,通常规模很大,有几百万,有的平台有几十亿级的规模。图8广告侵权检测流程图(主动)因此,在特征搜索的步骤中,不能使用简单的排序方法,而必须构建搜索引擎,通过近似最近邻搜索的方法来完成搜索任务。鉴于搜索数据库的规模庞大,计算每个查询的所有距离非常困难,并且存储大量图像的特征向量需要大量的存储空间。为了解决这些问题,采用了近似最近邻算法中的局部优化乘积量化算法(ProductQuantization,PQ),通过训练得到粗量化质心和细量化质心。粗量化结果用于建立倒排索引,细量化结果用于计算近似距离。通过该方法,不仅可以保证产品图人脸图像索引结果的存储要求合理,而且可以使检索质量和速度达到较好的水平。这两种方案的对比可以概括如下:3.2直播应用的后台图片管理部署在云端,而电商直播中的人脸技术应用需要运行在手机端。直播中人脸技术的整体架构如图9所示:图9.直播中人脸技术的整体架构直播中涉及的大部分底层技术(人脸检测、特征点定位和跟踪)都需要在手机实时操作,所以需要遵循新的要求:速度要足够快,模型要足够小,同时要保证足够高的精度,这是一个需要妥协的过程。目前采用的解决方案大多是通过算法优化和模型优化等工程化手段,将算法移植到手机端。在实际业务中,实现了人脸特征点追踪SDK,部署在移动端,应用于电商直播场景。基于深度学习的人脸技术虽然取得了显著成果,但深度学习需要大量的计算资源和复杂的模型(几十MB到几百MB),难以应用于移动终端。虽然传统算法的效果并不比深度学习好,但是资源消耗很小,模型简单,在应用过程中更适合目前的移动设备。随着处理器技术的发展和深度学习优化技术的逐渐成熟,基于深度学习的人脸技术将会更加普及。人脸检测算法在考察了多种人脸检测算法后,最终选择了基于像素差(PD)特征的PICO算法(Objectdetectionwithpixelintensitycomparisonsorganizedindecisiontrees)。该方法利用像素点之间的灰度差作为特征,可以提高检测速度;进一步,对PD特征进行归一化,并提出归一化像素差(NPD)特征以提高对光照的鲁棒性。这些方法消耗的计算资源少,模型简单,适用于移动设备。得到分类器后,需要做代码优化。根据移动CPU的特点,进行定点。采用查找表(LookUpTabel)方法,将NPD特征的预计算结果存储在二维表中;实时计算特征时,直接从内存中读取,从而提高检测速度。最终人脸检测SDK具有以下特点:人脸特征点跟踪算法采用基于集成回归树(ERT)算法的人脸特征点检测方法,利用PD特征学习每个特征点的局部特征,然后对特征进行组合,采用线性回归检测关键点;检测速度快,定位效果也好。同时,还需要做一系列的优化,包括以下几个方面:利用OpenMP并行技术优化训练阶段:将训练速度提高7到8倍。用NPD特征代替PD特征提高了算法对光照的鲁棒性。对于实时直播,利用视频前后两帧的关系来校正特征点的预测结果。该模型通过参数定点、哈夫曼编码等方法进行压缩,压缩后的模型容量约为原模型的35%。最终得到人脸特征点定位SDK,具有以下特点:图10(a)为人脸检测与特征点定位示例图。可以看出,该算法具有良好的鲁棒性,能够准确定位不同姿势、不同光照条件下的人脸图像,为后续直播打下基础。这些算法可以用于直播中的交互效果,包括面部皮肤美白/美白、特效等,如图10(b)所示。图10.(a)人脸检测和特征点定位示例平台运营和用户体验带来了新的价值。一方面,采用人脸识别的方式,自动识别产品图片中的人物,提高后台图片管理效率;另一方面,人脸技术在电商直播中的应用,实现了美肤特效等功能,提升了用户体验。深度学习方法带来了人脸识别技术领域的巨大飞跃,而传统方法可以保证足够的性能和足够的准确度,以达到实时操作的目的。因此,在开发过程中,需要根据具体需求权衡选择解决方案。图像算法技术的发展需要在日常工作过程中积累基础模块,逐步扩展其应用场景,并根据业务场景的变化进行持续迭代,为业务需求提供保障。【张红明蘑菇街高级技术专家】张红明(蘑菇街昵称:敏达)2015年加入蘑菇街,负责美联集团图像技术研发工作。他创建并领导了一个算法团队,并与工程和业务团队合作,为该组提供图像技术支持。主要工作包括:图片搜索、图片识别、商品图片内容分析等;业务涉及电商导购、直播等场景。加入蘑菇街之前,分别在NEC中国研究院和阿里巴巴集团从事图像技术和机器学习的研究和应用。更多AI内容,请关注公众号:AIPusher【原创稿件,合作网站转载请注明原作者和出处为.com】