Python识别色情图片这波神操作,背后原理竟是这样!

简介: Python

移动互联网时代

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

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

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

如何检测?思路在此!

(皮肤区域检测法)

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

遍历图片每一个像素,进行颜色分区、并记录是否为肤色;皮肤区域小于 3 个,不是色情;如果皮肤区域与整个图像的比值小于 15%,那么不是色情图片;如果最大皮肤区域小于总皮肤面积的 45%,不是色情图片;皮肤区域数量超过 60个,不是色情图片;其它情况为色情图片。这些规则可以尝试更改和调整,直到程序效果满意为止。

所需知识

Python 3 模块的安装

Python 3 基础知识

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

Pillow 模块的使用

argparse 模块的使用

image.png

关键代码

分析区域

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,想学从来不是说说而已。

相关文章
|
4月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
515 0
|
4月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
417 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
5月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
424 3
|
5月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1461 0
机器学习/深度学习 算法 自动驾驶
1044 0
|
5月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1403 2
|
5月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
397 0
|
6月前
|
数据采集 消息中间件 并行计算
Python多线程与多进程性能对比:从原理到实战的深度解析
在Python编程中,多线程与多进程是提升并发性能的关键手段。本文通过实验数据、代码示例和通俗比喻,深入解析两者在不同任务类型下的性能表现,帮助开发者科学选择并发策略,优化程序效率。
527 1
|
6月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
587 0

推荐镜像

更多