Deep Learning for Industrial Application

来自集智百科
跳转到: 导航搜索

目录

图像

医疗图像分割识别

胰岛素囊泡识别

现代医学对糖尿病患者的诊疗依赖于观察胰岛细胞中胰岛素囊泡的分布情况。

但是电镜照片中的胰岛素囊泡分布及其不均匀,医生观察起来费时费力,还容易造成误诊。

胰岛素囊泡电镜照片

如果使用基于FCN的图像分割识别技术,就可以解决这样的问题。

FCN即全卷积神经网络,非常胜任图像分割任务。也就是说,只要将足够多的标注好的囊泡电镜照片传入FCN网络进行训练,那么训练好的网络就可以快速定位出电镜照片中囊泡的位置,其识别正确率可以达到97.73%~98.9%,几乎与人工处理效果无异。

Multi-FCN识别囊泡.png

眼底病变识别

同样的技术还被应用在“眼科智能诊断系统”中。据悉,只要在发病初期定期进行眼底检查,失明风险可下降 94.4%。但由于眼底病灶微小,部分医生经验不足等原因,使得诊断中可能出现漏诊、误诊的情况,而借助 AI 系统辅助诊断是非常可行的问题解决方案。

使用基于FCN的图像分割技术,只需要将训练FCN网络的数据改为“标注好的眼底病变数据”,训练好的网络就可以轻易识别出患者眼底照片中的病变位置。目前这样的系统对病患基数巨大的糖尿病视网膜病变(DR)和老年性黄斑变性(AMD)筛查的诊断准确率已达到九成以上。

眼底标记.png

FCN:全卷积神经网络

相比于传统CNN,FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,后面3层全是一维向量。而FCN将这3层表示为卷积层,所有的层都是卷积层,故称为全卷积网络。

全卷积.png

在卷积之后,FCN还要进行下采样以恢复到原图的分辨率,下图是32倍,16倍和8倍上采样得到的结果的对比,可以看到它们得到的结果越来越精确:

下采样.png

在训练时,只要标注好要需要识别的元素,如“胰岛素囊泡”,FCN就能学习到囊泡的特征。再给FCN一张新的电镜照片,FCN就能定位其中囊泡的位置。因为FCN是全卷积且可以上采样,FCN即能将识别到的囊泡以颜色块标记起来,以非常直观的形式给医学诊断人员观察。

开源FCN参考:V-Net

https://github.com/mattmacy/vnet.pytorch

Vnet is a PyTorch implementation of the paper V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation by Fausto Milletari, Nassir Navab, and Seyed-Ahmad Ahmadi. Although this implementation is still a work in progress, I'm seeing a respectable 0.355% test error rate and a Dice coefficient of .9825 segmenting lungs from the LUNA16 data set after 249 epochs. The official implementation is available in the faustomilletari/VNet repo on GitHub.


图像识别

花朵识别

古代有神农尝百草,现在我们走在田野里草原上,可能连路边美丽的小野花都不认认识。

在看到优雅美丽的花朵时,人们总是不住的想知道花朵的名字。但并不是每人都是植物学家,所以人们希望可以借助手机软件来完成这个工作。

如果使用传统的方法来解决问题,那么有成千上万的花朵,即便是一个品种的花朵也有各式各样的形态,这样的程序永远无法完成。

而深度学习技术特别善于解决这种问题。

花朵识别.gif

只要给予一个神经网络大量的训练数据,这个网络就可以被训练成花朵识别器,如果再在网络中加以设计,比如加入卷积神经网络,那么将增强神经网络对各种花朵细节的把控能力,让模型识别更加精确。

证件识别

支付宝有一个证件校验系统。证件校验系统是为了支付宝的证件审核开发的,它使证件校核时间从1天缩小到1秒,同时提升了30%的通过率。以前是靠人识别,可能会误判,比如人识别是50%的识别率,那么机器他现在比如说做80%的识别率,这是非常了不得的。

证件识别.jpg

这种将证件图片扫描,将证件图片中的文字及图片提取出来的技术叫做光学文字识别技术,即OCR。

OCR.png

目前最先进的OCR技术采用的是LSTM+CTC的实现方法。LSTM+CTC的框架技术最初是用在自然语言语音识别领域,应用在OCR上,可以实现“一句话”的文字识别效果。

Advaced OCR.png

扫一扫路边的餐厅,立马跳出该餐厅的评分信息

实时餐厅查询0.gif

Google Lens有一个很酷的功能,通过用手机扫街边的餐厅,可以直接获得餐厅的评分推荐等信息。

这其实就是将“光学文字识别技术”应用在现实增项中。通过将实时的景象分割成图片,然后识别图片中的文字,通过识别出的餐厅名字以及当前的定位信息搜搜餐厅信息,再通过AR显示技术,实时的显示在摄像图像中。

卷积循环神经网络是一种能在图片中快输识别出文字的深度学习模型。

它即保持了卷积神经网络的特性,可以快速定位出图片中文字的位置;又具有循环神经网络的特质,可以将图片中的文字识别的更加准确。

详情请参考开源项目中的Convolutional Recurrent Neural Network。

开源OCR参考

LSTM_CTC_OCR

https://github.com/ilovin/lstm_ctc_ocr

Convolutional Recurrent Neural Network

https://github.com/bgshih/crnn

图像转换

FaceAPP:人脸转换

在人工智能时代,人们对于娱乐方式的要求也越来越高。比如就“自拍”这件事情,仅仅美颜功能,已经不能满足人们的需求。

有技术团队利用深度学习技术做出了更强大的“美颜”APP,它可以将“死鱼脸”变成“笑脸”,将“年轻的脸”变为“年老的脸”,将“男人的脸”变为“女人的脸”,并且转化及其逼真,毫无违和感。

Faceapp.png

实现这些效果,是利用了一种叫做“生成式对抗网络(GAN)”的深度神经网络模型。

在“生成式对抗网络”模型中,有一种叫做CycleGAN的变种,它采用了一种叫做“对偶学习”的特殊机制,可以自动学习出原图片与目标图片之间的转化关系。

比如我们选定很多张“没有表情的脸”作为原图片,很多张“笑脸”作为目标图片,直接送到CycleGAN模型中,也不用告诉他目的是“转换笑脸表情”,CycleGAN就能自己总结出两套图片的不同点的“规律”,从而学习这种规律,最终可以实现在这种规律间转换的效果。

CycleGAN.jpg

开源CycleGAN实现

CycleGAN and pix2pix in PyTorch

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

声音

语音识别

解放医生双手:语音电子病历

口腔科医生需要记录每个患者的病历情况。然而在诊疗过程中,医生在牙椅旁戴着手套双手被占用,不便对病历信息进行记录。如果诊疗结束后,再通过手写的方式补填病历,经常出现内容遗忘的情况。此外,手写病历常有文字潦草的情况,因有导致后续诊疗错误的风险。

基于语音识别自然语言理解的语音电子病历可以解决这样的问题。在医生与患者的医疗过程中,使用麦克风,医生只要以口述的方式记录电子病历内容,完全不需要双手参与。

录音经过后台处理转化成文本,在医生工作站实时展现医患交流内容、自动生成结构化的电子病历。医生只需对电子病历内容进行简单修改确认,即可打印提供给患者,并完成电子档保存。

语音识别 脑.jpg

RNN+CTC 是常用的语音识别技术。CTC 全称 是Connectionist Temporal Classification,是一种改进的RNN模型。RNN模型可以用来对两个序列之间的关系进行建模。但是,传统的RNN,标注序列和输入的序列是一一对应的。语音识别中的序列建模问题不是这样:识别出的字符序列或者音素序列长度远小于输入的特征帧序列。所以不能直接用RNN来建模。CTC解决这一问题的方法是,在标注符号集中加一个空白符号blank,然后利用RNN进行标注,最后把blank符号和预测出的重复符号消除。比如有可能预测除了一个"--a-bb",就对应序列"ab"。这样就让RNN可以对长度小于输入序列的标注序列进行预测了。RNN的训练需要用到前向后向算法(Forward-backward algorithm),大概思路是,对于给定预测序列,比如“ab”,在各个字符间插入空白符号,建立起篱笆网络(Trellis),然后对将所有可能映射到给定预测的序列都穷举出来求和。

开源语音识别系统

rnn-speech

https://github.com/inikdom/rnn-speech

任务驱动型聊天机器人

个人语音助手

目前生活在大城市的人们生活节奏非常紧张,即使是一分一秒都显得颇为珍贵。因此,即使是像操作手机这样的操作,感觉也是非常浪费时间的。

因此市面上出现了“个人语音助手”这样的应用,包括苹果公司的Siri,微软的“小娜”,百度小秘等等。使用这些应用我们只需要对着手机说出我们的需求,比如“下午3点提醒我开会”,“附近有什么好吃的”,语音助手就可以自动为我们设置提醒,搜寻附近符合条件的餐厅等等。一句话就能达到完成自己的需求,不在需要繁琐的手动操作,语音助手着实节省了人们的时间。

魔法小问.png

目前市面上可用的个人语音助手多是通过基于深度学习的人工智能技术实现的。其中包括语音识别系统,这个我们在上面的案例中已经说过。在将用户的语音转换为文字后,为用户提供服务的其实是一套叫做“任务驱动型聊天机器人”的系统。

Chatbot.png

这套“任务驱动型聊天机器人”系统往往是由多个模块的深度神经网络组合而实现的。其中可以包括用来识别用户意图(如找餐厅)的“意图神经网络”;用来理解语义,从而可以查询数据库的“语义理解网络”;还有最终用来回复用户信息的“自然语言生成网络”。

语言交互助手开源实现

NNDial

https://github.com/shawnwun/NNDIAL

个人工具
名字空间
操作
导航
工具箱