前言
这两天跨年,就想将自己的 Python 组织和表达能力再提高一下,当然最好的方式自然是读大师的源码,我也就看到实验楼上面的那篇关于色情图片识别的文章,因此依葫芦画瓢才建了这个库。
0x01 色情识别算法介绍
检测色情或者说判定是否是色情的关键是通过皮肤的裸露程度判别,也就是说色情识别算法的核心就是识别皮肤。
那么现今主要识别皮肤的是通过三个步骤:首先选择合适的颜色空间来表征图像像素;然后使用适当的皮肤模型来建模皮肤和非皮肤部分像素;最后依据此建模来分割出正确的皮肤部分。而识别皮肤的关键在于寻找到合适的像素区间,因为肤色 种族 光照 等等因素都会影响到皮肤的识别。
从 2015 年的厦大陈丽一篇《一种融合方法的皮肤检测技术》上我们了解到 在图片预处理 降噪 resize 后 将二维直方图 高斯模型 动态阈值 三个处理模型进行混合的综合皮肤检测技术,能达到识别率 90+的程度,比其他三种模型高出一到五个百分点。
那么实验楼这位作者是如何去识别一张图片的皮肤部分呢?
皮肤确认的像素公式采用 stack 上的采用的是网上的 YCbcr 的公式 当然他也写了其他的公式,效果不如这个好
确认为皮肤像素后进行归类。新发现的皮肤像素定位新的一块,如果皮肤像素周边有其他的像素就 merge 当然 我在测试的过程中,这个 merge 算法仍然可以优化,如果有小伙伴的话~
归类后,判定是否为色情图片的 rules 他写了四条 当然这个判别不能和机器训练相比 但是已经比较准确了
0x02 我在此基础上做了什么?
完善 showskinorigin 方法,使其能够将被判定为皮肤的像素进行涂白 方便进行对比
修改某些不是很 python 的方法,剔除单通道图片。
新加入 LoadWay 文件,可以方便的扫描目录 图片 url 列表并检查是否为色情图片
增加容错模块,单元测试后,打包然后共享给大家~
0x03 未来将会准备做什么?
根据论文的算法 在 python 上进行部分实现,方便优化算法
修复多线程效率过低 占用内存过多的问题
希望能够建立 server 返回 API
试验效果图属不可描述范围~附上 Gayhub 地址~
当然我不会说那个 HeiHeiHei 函数是干嘛的==
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态