淘宝店铺白底图过滤算法

这个标题有点标题党的意思,首先我不在阿里上班,在其他电商公司。淘宝过滤白底图具体用的什么算法我也不清楚,只不过我的算法用在店铺过滤效果不错,方法实现简单。
首先来说一下什么是白底图上图即是白底图,直观来看特点就是白色区域较多
过滤这种白底图首先想到深度学习做一个2分类行不行。但是对于目前情况并没有label,所以只能用无监督学习。无监督学习首先想到了近邻算法。将图片做一个灰度处理,再做阈值分割。但是对于实际应用,有些店铺商品并没有上传白底图,如果用近邻算法,那么会在没有白底图的商品中迭代出白底图,造成判别错误。所以改用图像处理方法。
针对这种白底图,首先灰度处理,阈值分割。将白色区域掩码设置为0,非白色背景区域掩码设置为1。我们根据这个掩码图判断掩码矩阵的第一行、第一列、最后一行、最后一列,通过每一行求和的方式判断该图是否白底图。如果4个边之和非常接近0即为白底图。但是仅仅依靠这一判别方法还不够,因为商家也够狡猾,如下图,我们的方法会失效
这种图是商家为了应付平台必须上传白底图而搞出来的,4个边均为白色,但它不属于白底图
于是我又做加入了2个判别方法,外接矩形面积和掩码求和
外接矩形,即是非背景部分的最小外接矩形,上图中外接矩形很明显,就是非白色背景区域的矩形,也就是商家截出的区域,那么在上图中,白色背景区域占比整张图为(1-外接矩形/整图)。
掩码求和即是掩码矩阵所有的0,1元素相加。0表示白色背景,1表示非背景,那么上图中白色背景区域掩码占比整张图像=(1-mask.sum/(w*h))。
重点部分来了,在回到第一张图,在真正的白底图中,如果我们画出外接矩形,会发现外接矩形内,有很大一部分为纯正的白色背景区域,即在真正的白底图内,外接矩形占比一定小于背景区域掩码占比,而且小很多。而在绝大多数非白底图,外接矩形内部纯白色区域并不多。所以非白底图外接矩形占比稍微小于背景区域掩码占比。
即,通过对比掩码图4个边,可以过滤出真正的白底图,但会有很一些非白底图也被当作白底图。再加上判别条件:掩码和之比大于外接矩形之比(至于大多少,可以自己设置阈值)可以筛选90%的非白底图。

在做这个算法时,没有任何支持。业务只是提了一个需求,我只是个入职2周的宝宝啊,还是在校实习生,所以理解他们业务花了好长时间,还要在数据库查表,结果数据库中的字段和业务说的名词并没有很好的对应,又花了一些时间,然后导出数据库文件,自己又写爬虫去店铺爬图片。这花了我好几天的时间。然后设计算法,设计算法大概花了30分钟吧,然后开始写代码,花了几个小时,又调bug花了几个小时。代码运行起来,业务看到运行结果,很满意,作出的效果非常好,然后业务又提新需求。我又改代码。。。。又加班到晚上10点多

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值