信息安全公益宣传,信息安全知识启蒙。
加微信群回复公众号:微信群;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编辑器里的成像效果