你看这Python短又美,学完不会自流泪。Python的应用场景数不胜数,今天要和大家分享的是如何用Python3进行色情图片审核,又涨知识啦。点击文末底部了解更多有惊喜哦!

 

移动互联网时代

每天在社交平台、长短视频、直播平台、新闻资讯等内容平台产生了数以亿计的图片和视频,这些数据的内容审核面临严峻的挑战。

如果靠人工进行清查、效率不高且成本昂贵;此外,人工审核在一定程度上对人们的心理、生理会造成有一定的不良影响。并且,网络监管也越来越严格,所以该如何解决这些问题呢?

随着技术的发展,融合文本、图片、视频内容的多模态软色情识别模型也应运而生。

如何检测?思路在此!

(皮肤区域检测法)

视频审核与图片审核是通用的。视频内容实则由音频内容、视频画面内容两个对象组成,视频画面内容的机器审核,业界目前常采用截取画面帧上传识别,最终复用的是图片识别通道对场景、人物、物品进行判断是否违规。

  1. 遍历图片每一个像素,进行颜色分区、并记录是否为肤色;
  2. 皮肤区域小于 3 个,不是色情;
  3. 如果皮肤区域与整个图像的比值小于 15%,那么不是色情图片;
  4. 如果最大皮肤区域小于总皮肤面积的 45%,不是色情图片;
  5. 皮肤区域数量超过 60个,不是色情图片;
  6. 其它情况为色情图片。

这些规则可以尝试更改和调整,直到程序效果满意为止。

 

所需知识

Python 3 模块的安装

Python 3 基础知识

肤色像素检测与皮肤区域划分算法

Pillow 模块的使用

argparse 模块的使用

关键代码

# 分析区域
    def _analyse_regions(self):
        # 如果皮肤区域小于 3 个,不是色情
        if len(self.skin_regions) < 3:
            self.message = "Less than 3 skin regions ({_skin_regions_size})".format(
                _skin_regions_size=len(self.skin_regions))
            self.result = False
            return self.result
        # 为皮肤区域排序        self.skin_regions = sorted(self.skin_regions, key=lambda s: len(s),
                                   reverse=True)        # 计算皮肤总像素数        total_skin = float(sum([len(skin_region) for skin_region in self.skin_regions]))
        # 如果皮肤区域与整个图像的比值小于 15%,那么不是色情图片
        if total_skin / self.total_pixels * 100 < 15:
            self.message = "Total skin percentage lower than 15 ({:.2f})".format(total_skin / self.total_pixels * 100)
            self.result = False
            return self.result
        # 如果最大皮肤区域小于总皮肤面积的 45%,不是色情图片
        if len(self.skin_regions[0]) / total_skin * 100 < 45:
            self.message = "The biggest region contains less than 45 ({:.2f})".format(len(self.skin_regions[0]) / total_skin * 100)
            self.result = False
            return self.result
        # 皮肤区域数量超过 60个,不是色情图片
        if len(self.skin_regions) > 60:
            self.message = "More than 60 skin regions ({})".format(len(self.skin_regions))
            self.result = False
            return self.result
        # 其它情况为色情图片        self.message = "色情图片"
        self.result = True
        return self.result

初识Python,想学从来不是说说而已。

百度搜索代码森林,可获得代码森林为大家精心准备的初学者入门学习课程哦~

在线编程,边学边练,极度方便!