Python | 拯救鉴黄师

2018 年 2 月 17 日 计算机与网络安全

信息安全公益宣传,信息安全知识启蒙。

加微信群回复公众号:微信群QQ群16004488

加微信群或QQ群可免费索取:学习教程

教程列表见微信公众号底部菜单



曾经被无数人向往的神秘职业“专业鉴黄师”,已经要被人工智能替代了!


人工智能是怎么鉴黄的?


对于一张图像,我们可以广义地定义为3类:“正常”、“性感”、“色情”。因此,可以利用机器学习的方法来对训练集图像进行训练,将训练后的模型用于预测。


鉴黄师们每天面对着海量的数据进行判断分类,根据肤色裸露程度、姿势、肢体轮廓判断是否涉及色情元素。海量数据标注之后便是对机器的训练。其通常逻辑是:鉴黄师输入海量数据,将各类数据进行标签化训练,告诉机器,ABC是色情,DEF非色情,机器通过监督学习,提取ABCDEF的特征来判断G是不是色情。

据科技公司介绍,人工智能鉴黄有效节省了超过90%的人工复审工作,节省了大量成本。


在提高鉴黄的准确度上,目前还有采用的路径是深度卷积神经网络CNNs的多GPU并行框架,通过小样本目标的学习,快速准确地理解图像内容,并从图像中自动识别指定目标。网络直播平台可以进行内容自定义,对视频中静态和动态的物体、人物信息进行实时分析识别,最终综合处理视频中采集到的敏感信息,对视频中的场景进行事件分析,鉴定其涉黄与否。


当然这些技术使用方法都离不开Python,这是最重要的。

一、ASCII艺术

ASCII 的全称是 American Standard Code for Information Interchange,即美国信息交换标准码。是由军用电报编码发展而来,并成为最通用的现代计算机编码系统。


在显卡还不能摧毁航母战斗群的年代,计算机还主要用来计算导弹弹道和卫星轨道,其图形处理能力是非常弱的,甚至还不如今天高级一点的示波器。但这并不能阻止人类对美的追求,正如四万年前的莽荒也没有耽误拉斯科洞窟壁画的诞生。

拉斯科洞窟壁画


在我刚上网那阵(暴露年龄?),有个流传很广的帖子,是教你观看命令行里的《星球大战》,而这部星战正是由ASCII编码中的字符构成的,这被称作ASCII art。

这不大番薯和老夫子吗?


在斗图代替打字、点播变成直播甚至VR/AR的今天,图形的处理已经不再是瓶颈,反而成为了新的增长点。道高一尺魔高一丈,技术的进步也带来了有害信息,比如广大家长朋友们特别关注的色情信息。刚开始色情的鉴定是由人工完成的,李迪同志就是在《暴走大事件》中扮演鉴黄师唐马儒而一炮走红。


但是,基于人工智能的图像识别也在飞速进步,自动鉴黄已经投入实用,鉴黄师的职业前景就面临着严重的威胁!你想想,你在家里吃着火锅鉴着黄,突然间,工作都要丢了,这谁受得了。救救鉴黄师!


二、字符画


把一张照片转换为字符画,大致需要三步:


  • 将图片尺寸压缩到字符画所能接受的量级;

  • 彩色图转换为灰度图,灰度是一个0-255的数值;

  • 建立灰度值与字符集之间的映射关系。


早年间以上步骤还需要专门做一个小软件来完成,而现在只需要简单的代码就可以直接在浏览器中实现。

熟悉这个窗口边框的同学应该也不年轻了


因为字符画的本质是“字符”,可以用文本编辑器打开,对于计算机来说,他们和其他的字符没有任何区别,“画”的性质只是由人类的想象力后天赋予的。所以,如果你用字符画的形式传播春宫图,还是需要唐马儒。

小马听了美滋滋

三、Python扩展库


针对字符画生成的基础功能,Python已经内置了很多优秀的扩展库,可以在此基础上直接调用,而无需重复制造轮子。


  • 图库PIL(Python Imaging Library)基本的图像处理功能。

  • 网库urllib 获取网络资源,如下载网上的图片。

没有必要把0-255的灰度值一一对应为不同的字符,一般十几个也就足够了。这里做如下定义:

这里将最低的灰度段映射为' '(空格),也就是原图中空白或接近空白的部分,在字符画中也会会变成空白;而原图的黑点则变成@。


四、图片预处理


4K屏已经逐渐普及,现在差不多的电脑显示器也能支持2K分辨率,如果把每个像素点都变成一个字符,那出来的图片实在是太大了。


所以首先要对源图片进行压缩,再转换为灰度模式,即抛出色彩信息。

五、图片到字符

然后是建立图片(压缩后)像素点到字符集的映射关系。

最后综合前面几个函数,以文本形式输出字符画。

六、图源采集

接下来我们可以为所欲为将任意图片转换为字符画看看效果,为了充分发扬互联网精神,目前仅支持具有网络地址的图片(其实是图片上传系统还没做好)。


下面来看一个实例,将一张QQ企鹅的图标转换为字符画。

七、开放空间

上节的例子仍然保留了默认的字符集和默认图像宽度60,接下来的部分留给读者自由发挥,可以通过修改如下参数获得自己的字符画:


  • new_width:字符画的尺寸(宽的字符数)

  • ASCII_CHARS:字符集

  • image_url:网络图片地址,就是你想要转换的图片


操作示例:

当你在网上看到一张图片,右键-复制图片地址。



将图片地址赋值予变量image_url,点击运行即可。

替换相应变量

摘掉眼镜看效果更佳。

Sublime编辑器里的成像效果

登录查看更多
5

相关内容

微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机聊天软件。 用户可以通过微信与好友进行形式上更加丰富的类似于短信、彩信等方式的联系。
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
329+阅读 · 2020年3月17日
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
136+阅读 · 2020年2月16日
谷歌机器学习速成课程中文版pdf
专知会员服务
142+阅读 · 2019年12月4日
【机器学习课程】Google机器学习速成课程
专知会员服务
161+阅读 · 2019年12月2日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
89+阅读 · 2019年10月16日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
6+阅读 · 2018年9月11日
开眼|鉴黄人工智能取代人工鉴黄师?这些图居然能搞错
已删除
AI科技评论
4+阅读 · 2018年8月12日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
五位专家跟你讲讲为啥Python更适合做AI/机器学习
全球人工智能
3+阅读 · 2018年3月18日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
宅男福音deepfakes开源了
AI前线
8+阅读 · 2018年1月31日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
6+阅读 · 2018年3月25日
Arxiv
6+阅读 · 2018年2月28日
Arxiv
11+阅读 · 2018年1月11日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关VIP内容
相关资讯
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
6+阅读 · 2018年9月11日
开眼|鉴黄人工智能取代人工鉴黄师?这些图居然能搞错
已删除
AI科技评论
4+阅读 · 2018年8月12日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
五位专家跟你讲讲为啥Python更适合做AI/机器学习
全球人工智能
3+阅读 · 2018年3月18日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
宅男福音deepfakes开源了
AI前线
8+阅读 · 2018年1月31日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
相关论文
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
6+阅读 · 2018年3月25日
Arxiv
6+阅读 · 2018年2月28日
Arxiv
11+阅读 · 2018年1月11日
Arxiv
3+阅读 · 2012年11月20日
Top
微信扫码咨询专知VIP会员