TensorFlow练习23: “恶作剧”

前面有一个帖《OpenCV检测场景内是否有移动物体》我用树莓派做了一个简单的Motion Detection,放在卫生间的,它会在我上大号时自动播放音乐。

我一个人租房,几个盆友周末时常会找我玩,他们觉得我做的Motion Detection很垃圾。于是我就想恶搞一下,用TensorFlow做一个“人脸识别”,在我上大号时播放音乐,如果是别人就播放《张震讲鬼故事》(@xingCI说放屁声更搞)。 继续阅读TensorFlow练习23: “恶作剧”

TensorFlow练习22: 手写汉字识别

MNIST手写数字数据集通常做为深度学习的练习数据集,这个数据集恐怕早已经被大家玩坏了。本帖就介绍一个和MNIST类似,同时又适合国人练习的数据集-手写汉字数据集,然后训练一个简单的Deep Convolutional Network识别手写汉字。

识别手写汉字要把识别手写洋文难上很多。首先,英文字符的分类少,总共10+26*2;而中文总共50,000多汉字,常用的就有3000多。其次,汉字有书法,每个人书写风格多样。

手写汉字数据集: CASIA-HWDB

继续阅读TensorFlow练习22: 手写汉字识别

TensorFlow练习21: 把Deep Dream应用到视频上

前帖<实现谷歌Deep Dream>可以生成扭曲的图像,本帖就基于前一贴的代码在视频上应用Deep Dream,应该能生成比较抽的视频。

代码逻辑:

  1. 使用ffmpeg从视频中提取帧
  2. 为每一帧图像应用Deep Dream
  3. 使用ffmpeg把帧图像重新组合成视频,最后和音频合并

继续阅读TensorFlow练习21: 把Deep Dream应用到视频上

适合深度学习的机器配置

深度学习=大数据+超强计算力,这两个缺一不可。神经网络从上世纪80-90年代开始急速发展,但是由于数据量和计算力不够,导致在实际中应用不多,以至于神经网络从2000到2010年沉寂了近10年。从09年开始神经网络开始应用于语音识别、计算机视觉等领域,神经网络又开始流行了。神经网络还是那个神经网络,复苏的主要驱动力就是数据量和计算力。

The analogy to deep learning is that the rocket engine is the deep learning models and the fuel is the huge amounts of data we can feed to these algorithms. — Andrew Ng

为什么用GPU进行深度学习?

高端游戏玩家为获得更高的图形效果(3D、光照、防锯齿等等)需要选择高端显卡。如果你写过3D游戏,你应该知道图形操作需要大量的向量和矩阵运算,而这正是GPU最擅长的。

GPU是并行架构,擅长执行大矩阵乘法,而深度学习正好需要大量的矩阵运算。

CPU是设计用来进行更通用的运算,执行矩阵运算远远不及GPU。

适合深度学习的机器配置

继续阅读适合深度学习的机器配置

TensorFlow练习20: 使用深度学习破解字符验证码

验证码是根据随机字符生成一幅图片,然后在图片中加入干扰象素,用户必须手动填入,防止有人利用机器人自动批量注册、灌水、发垃圾广告等等 。

验证码的作用是验证用户是真人还是机器人;设计理念是对人友好,对机器难。

TensorFlow练习20: 使用深度学习破解验证码

上图是常见的字符验证码,还有一些验证码使用提问的方式。

我们先来看看破解验证码的几种方式:

  1. 人力打码(基本上,打码任务都是大型网站的验证码,用于自动化注册等等)
  2. 找到能过验证码的漏洞
  3. 最后一种是字符识别,这是本帖的关注点

我上网查了查,用Tesseract OCR、OpenCV等等其它方法都需把验证码分割为单个字符,然后识别单个字符。分割验证码可是人的强项,如果字符之间相互重叠,那机器就不容易分割了。

本帖实现的方法不需要分割验证码,而是把验证码做为一个整体进行识别。

相关论文

使用深度学习+训练数据+大量计算力,我们可以在几天内训练一个可以破解验证码的模型,当然前提是获得大量训练数据。

继续阅读TensorFlow练习20: 使用深度学习破解字符验证码

TensorFlow练习19: 预测天朝铁路客运量

以前做的练习还没有涉及过时间序列数据(洋文Time Series Data),一个最明显的例子是股票价格。

时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。

一年一度的春节又要来了,火车票已经开售。本帖就简单预测一下未来几个月天朝铁路客运量。 继续阅读TensorFlow练习19: 预测天朝铁路客运量

TensorFlow练习18: 根据姓名判断性别

本帖训练一个可以根据姓名判断性别的CNN模型;我使用自己爬取的35万中文姓名进行训练。

使用同样的数据集还可以训练起名字模型,参看:

继续阅读TensorFlow练习18: 根据姓名判断性别

TensorFlow练习17: “声音大挪移”

看见本帖标题,你可能会问:“声音大挪移”是什么鬼玩意,和张无忌有什么关系。

如果你没看过鬼畜,先温习两个:【元首】粉红的回忆【圣地亚哥金曲】客官不可以。(本帖内容和鬼畜关系不大)

前文《实现谷歌Deep Dream》可生成带有艺术感的图片。其实,还有另一种合成图片的方式,洋文叫Style Transfer,这种方法需要用到两张图片,如下图:

皮特  + picasso_selfport1907 = pitt_picasso_content_5_style_10
皮特 + Style = 皮特 Style

Style Transfer的原始论文:https://arxiv.org/abs/1508.06576;基于Torch的代码实现:neural-style 继续阅读TensorFlow练习17: “声音大挪移”

TensorFlow练习16: 根据大脸判断性别和年龄

本帖使用TensorFlow做一个根据脸部推断照片人物年龄和性别的练习,网上有很多类似app。

训练数据 – Adience数据集

Adience数据集来源为Flickr相册,由用户使用iPhone或者其它智能手机设备拍摄,该数据集主要用于进行年龄和性别的未经过滤的面孔估计。同时,里面还进行了相应的landmark的标注,其中包含2284个类别和26580张图片。 继续阅读TensorFlow练习16: 根据大脸判断性别和年龄

TensorFlow练习15: 中文语音识别

语音识别的应用领域非常广泛,洋文名Speech Recognition。它所要解决的问题是让计算机能够“听懂”人类的语音,将语音中包含的文字信息“提取”出来。

语音识别是前文《聊天机器人》必不可少的一个组件,本帖就使用TensorFlow做一个中文语音识别。 继续阅读TensorFlow练习15: 中文语音识别