这是一个古老的问题

商品,在网络虚拟货架上陈列,一张好的封面图对于促成转化是不言而喻的。那么什么样的图片才是好封面呢?我们的侧重点是让图片传递使用价值,让用户直接感知到“如果购买它,我会得到什么”。如下所示,显然后者更胜任传递角色,触动人类的情绪波动。

    【五】搜索推荐技术在电商导购领域的应用——截图小王子_第1张图片     

那如何才能挑选出画质精美、构图有张力、有质感的摄影图片,不选背景单调、黑白、计算机生成的图片呢?

朴素的讲,画质好、构图好的图片是好图片。

画质就是画面质量,包括清晰度、锐度、畸变、色散度、解析度、色域范围、色彩纯度、色彩艳度、色彩平衡等几方面指标。而构图是摄影的基本技巧之一,同样的事物,不同的角度就有不同的构图,不同的构图就是不同的视角,视角不同就是画面语言的个性化,也因此也就有了区别。

大致是这个道理,通常是需要人工来贯彻执行这个原则的。但是在最近一次产品讨论中,大家都觉得这个问题机器算法是不可解的,导致我司一枚工程师的洪荒之力爆发,非要挑战这个不可能的任务。

对,用程序来实现封面图选取,“截图小王子”就此诞生。


截图小王子的数学模型

从图像纹理分析入手,选取一些全局特征来评估画质,一些局部特征来评估构图。

全局特征:

     HSL(s): 图片饱和度,0.3-0.8之间人比较舒适。

     HSL(l): 图片光照度,0.3-0.8之间人比较舒适。

     ASM: 角二阶矩(Angular Second Moment, ASM),图像灰度分布均匀程度和纹理粗细的一个度量,当图像纹理绞细致、灰度分布均匀时,能量值较大,反之,较小。

     CON: 对比度(Contrast),反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。

     COR: 自相关(Correlation),度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。

     IDM: 逆差距(Inverse Differential Moment),也叫反差分矩阵,反映图像纹理的同质性,度量图像纹理局部变化的多少。反映了纹理的清晰程度和规则程度,纹理清晰、规律性较强、易于描述的,值较大;杂乱无章的,难于描述的,值较小。

     ENT: 熵(Entropy),描述图像具有的信息量的度量,表明图像的复杂程序,当复杂程序高时,熵值较大,反之则较小。ASM,CON,COR,IDM,ENT都属于全局特征,本算法采用Haralick实现。

局部特征:

     IPD: 兴趣点描述子(Interesting Point Descriptor),是一种局部特征,本算法主要采用SURF实现。

     IPR: 肖像画率(Image Portrait Rate),反映图像是否有明显的前景/背景区分;区分度越明显,值越大。如下图SURF计算

    【五】搜索推荐技术在电商导购领域的应用——截图小王子_第2张图片    

将上述因子整合成一维向量用来描述每一张图片,使用加权和作为每个图片的权重。人工整理出一批训练集,使用LR模型进行训练,生成每个因子的权重系数。

     届时,我们的截图小王子诞生了!


最后结果……

     以下截图小王子的工作姿势,看起来还不赖~ ^_^

                 使用前                                             使用后

【五】搜索推荐技术在电商导购领域的应用——截图小王子_第3张图片

【五】搜索推荐技术在电商导购领域的应用——截图小王子_第4张图片




参考文献:

     画质  http://baike.baidu.com/view/4647819.htm

     色彩  http://www.docin.com/p-100266415.html

     HSL颜色模型  http://cdc.tencent.com/?p=3760

     Haralick全局纹理特征

【五】搜索推荐技术在电商导购领域的应用——截图小王子_第5张图片

     http://www.cis.rit.edu/~cnspci/references/dip/segmentation/haralick1973.pdf

     http://murphylab.web.cmu.edu/publications/boland/boland_node26.html

     纹理特征分析

     http://blog.csdn.net/lskyne/article/details/8659225

    香农信息熵计算python 实现

    http://blog.csdn.net/daoqinglin/article/details/6906413

    http://code.activestate.com/recipes/577476-shannon-entropy-calculation/    

    k-means聚类

    http://baike.baidu.com/view/3066906.htm

    http://luispedro.org/software/milk/

    https://pythonhosted.org/milk/clustering.html#k-means

     

    surf算法

    原著:http://wenku.baidu.com/view/a3f0640eba1aa8114431d92d.html

    中文翻译:http://wenku.baidu.com/link?url=nxG6Ko73O7KPghmkGuLO5JZ7L6EsO3FIApHsj72xPTfoMlM8pGUEBBQzieZCecf2Vkf-ZAfwqzYgTXoylnCxIObE4p9RW_6m5weoESooKXS

    形象解释:http://blog.csdn.net/yujiflying/article/details/8203511