一种智能识别车商装修程度的方法

Jason.Qi  |  2018. 02. 11   |  阅读 257 次

大搜车公司拥有几十万家的车商的数据信息,包括车商的门头照,店内照,销售人数,月均销量,库存数量等,希望通过这些信息对车商的装修程度进行分类,分为豪华和非豪华装修。地推运营人员可以根据车商装修程度进行车商筛选,用于不同的运营活动。

车商的门头照与店内照是混合在一起,一个车商有四张照片,门头照与店内照的比例为1:3。传统模式是将车商照片整合在一起,通过一个模型进行分类,即先对车商分类,如果这个车商标识为豪华车商,则该车商的四张照片都是豪华装修照片。通过人工对车商进行打标分类,并使用卷积神经网络模型训练,再对照片进行预测打分,每个车商有四张照片分数,对其进行平均,得到车商装修豪华程度的分数。我们进行试验后,发现门头照对车商豪华程度区分度高,店内照区分度偏低,如果两类照片混合在一起,采用单一模型打分,模型最终的准确率不高。因此我们首先构建了车商照片分类模型,对车商照片做了分类,分为门头照和店内照。然后分别对门头照和店内照构建了豪华程度打分模型,得到门头照和店内照的豪华分数。最后,我们为了进一步提升模型的准确率,我们又引入了车商的其它信息,包括销售人数,月均销量,库存数量,车商等级等信息,结合门头照和店内照的豪华分数,构建了车商装修程度分类模型。

本方案包括三大块内容分别为车商照片分类模型,门头照和店内照的豪华程度打分模型,车商装修程度分类模型。下面是具体的模型融合流程图

车商照片分类模型

车商照片分为门头照和店内照。由于车商的门头照与店内照是混合在一起的,且对车商的装修程度的区分度不一样,门头照的区分度高些,店内照低些。因此需要将它们区分开来,然后分别打分,设置不同的权重。门头照和店内照的分类模型我们使用的是Google的图像分类卷积神经网络模型Inception-ResNet-v2。具体的卷积网络模型训练后面介绍。

门头照

店内照

门头照和店内照的豪华程度打分模型

在门头照和店内照被区分开后,我们会分别对门头照和店内照的豪华程度进行打分。门头照分为豪华门头照和非豪华门头照。分类模型我们使用的是Google的图像分类卷积神经网络模型Inception-ResNet-v2。分类的分数 为0-1,作为豪华可能性分。店内照同样处理流程。

豪华车商门头照

非豪华车商门头照

卷积神经网络模型原理及处理步骤

google的Inception-ResNet-v2卷积神经网络,是由早期的Inception V3演化而来的,结合resnet合成新的网络结构。具体可查看论文Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning。 网络结构极其复杂,如下图所示。

模型处理包括三个模块,分别为样本生成,模型训练,模型部署。

样本生成,主要是收集模型训练的图片,提供给模型进行训练。有三块内容,图片收集,分类标注,数据增强。

  1. 图片收集:主要是将车商的门头照和店内照整理收集过来,比例为1:3。
  2. 分类标注: 对车商的门头照和店内照先进行人工分类,200家车商,800张图片,200张为门头照,600张为店内照。然后再对门头照和店内照进行人工分类,分为豪华和非豪华。
  3. 数据增强:为提高模型的泛化能力,在原有的样本基础上,进行偏移、放缩、水平翻转等变换方式生成更多的样本。在生成新的训练图像时,对缩放产生的空白处,采用添加固定的黑边效果略好于按临近像素填充。

模型训练模块主要是对模型进行调整,提高模型的准确率,包括三块内容的优化,模型预训练,模型参数调整,扩大训练集数据。下面以门头照的分类模型优化过程为例。车商照片分类模型和店内照分类模型的优化过程类似。

  1. 模型预训练:Inception-ResNet-v2是一个784层的复杂网络,如果从头开始训练,需要大规模的数据和计算资源,以及耗时的调参试验。考虑当前门头训练数据正负样本各只有1百多个,采用迁移学习的方法,把在ImageNet训练好的 Inception-ResNet-v2 网络迁移到车商门面装修程度分类的应用上。对于用于ImageNet的Inception-Resnet网络,我们将除最后的连接层和输出层以外的其他所有层的参数都固定住,不参与训练,修改最后的全连接层的节点数,添加Dropout层,设置dropout比例,丢弃40%节点的计算结果,通过Flatten层将结果展为一维矩阵,再连接到2类输出,分别表示豪华,非豪华的概率。在几十张的测试集中,准确率达到 76%。新网络结构图如下

  2. 模型参数调整:a. 调整迁移学习网络的冻结层数: 扩大网络的重新训练的层数,从网络最后的Inception block开始到结束的100多层网络重新训练,使得网络能更好提取装修图片特征的提取,训练准确率提升了2%。b.调整模型的网络参数:模型的训练集准确度最高只达到了78%,说明模型拟合还不够好,还没找到最优解,对网络参数进行了多次调整,重点调整学习步长,通过设置不同的学习步长,比较5折交叉验证的测试结果,取得最优结果的学习步长为0.0003,模型的准确度有了明显的提升,提高到了88%。

  3. 扩大训练集数据:后期训练集的准确度达到了很高的准确度94%,但测试集的准确度偏低为86%,开始考虑增加训练样本集,先通过训练好的模型对未分类图片进行自动分类,然后再进行人工校验,减少人工工作量,增加了3000多张训练图片。使得模型的最终准确率达到92%。

模型部署:是将训练好的模型部署到线上服务器,提供在线预测服务,对其它图片进行预测分类。

车商装修程度分类模型

通过卷积神经网络模型对门头照和店内照进行了豪华程度打分,但单一通过门头照和店内照的分数评判车商的装修程度,准确率还不够高,只有92%。因此我们融入车商其它数据,如月均销量,车商等级,销售人数等,通过逻辑回归模型对车商的装修程度进行分类,进一步提升准确率。

特征处理:模型输入的特征有门头照的豪华分数,店内照的豪华分数,月均销量,车商等级,销售人数,展厅面积,库存数量等。店内照有三张,会取最低分的那张作为店内照的豪华分数。车商等级是离散值,会进行one-hot编码。展厅面积数值区间跨度大,会通过取log值进行平滑处理。

分享到

   
Android开源框架源码鉴赏:VirtualAPK