• 深度学习有趣应用

    2017-06-09 16:26:35
    20个令人惊叹的深度学习应用(Demo+Paper+Code) 2017-04-16 12:17 唐旭 发自 RUC 量子位 报道 | 公众号 QbitAI 从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际...

    转载自:http://www.sohu.com/a/134345723_610300


    20个令人惊叹的深度学习应用(Demo+Paper+Code)

    唐旭 发自 RUC

    量子位 报道 | 公众号 QbitAI

    从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际问题中。诸多案例也已经证明,深度学习能让工作比之前做得更好。

    今天,量子位为大家收集了20个深度学习方面的优秀应用——当然,这份榜单可能并不详尽,但相信看过之后,你对这项技术在某些领域的潜力会有更清晰的认识。

    针对每个应用,我们还尽量收集了相关的Demo、Paper和Code等信息。

    1、Face2Face:扮演特朗普

      

    斯坦福大学的一个小组做了一款名为Face2Face的应用,这套系统能够利用人脸捕捉,让你在视频里实时扮演另一个人,简单来讲,就是可以把你的面部表情实时移植到视频里正在发表演讲的美国总统身上。

    同样的原理也可以用于对视频里场景的3D重建、电影特效也可以这么干。

    这个应用的实际效果是这样的:

    Paper:

    http://www.graphics.stanford.edu/~niessner/papers/2016/1facetoface/thies2016face.pdf

    2、Let there be color!:给黑白照片/视频自动上色

      

    左图是拍摄于1937年的一幅矿工的照片,右图是用Let there be color!重新自动上色后的效果。

      

    上图是拍摄于1909年的一张保龄球馆的照片,下图是用Let there be color!重新上色后的效果。

      

    实际上,这是运用深度学习网络学习自然存在于照片中的某些模式——比如,天通常是蓝的,云是白的或者灰的,草是绿的。通过这类规则,Let there be color!不需要人类的介入就能对照片进行重新上色。虽然有时它也会犯错,但这种错误很难被发现。

    同样地,Let there be color!也可以把黑白视频变成彩色的。

    Demo:

    http://hi.cs.waseda.ac.jp:8082/

    Paper:

    http://hi.cs.waseda.ac.jp/~iizuka/projects/colorization/data/colorization_sig2016.pdf

    Code:

    https://github.com/satoshiiizuka/siggraph2016_colorization

    3、Pixel Recursive Super Resolution:告别马赛克

    我为什么不看美剧CSI?原因很简单:太假了。里面的主角动不动就把一段视频拉近、放大——然后他们就得到了一幅分辨率远超真实情况的影像。这根本不现实……

    直到深度学习出现。今年早些时候,谷歌大脑的研究者们训练了一个深度学习网络,他们让后者根据一些分辨率极低的人脸图像来预测这些面孔真实的样子。如下图:

    最左边是输入的8×8像素的原始影像,最右一列是被拍摄的人脸在照片中的真实效果,中间则是电脑的猜测。

    可以看到,虽然并不完美,但电脑预估出的结果已经与实际情况十分接近。Google的研究者将这种方法命名为 Pixel Recursive Super Resolution(像素递归超分辨率),用这种方法能显著提升图像的质量。

    Paper:

    https://arxiv.org/abs/1702.00783

    4、实时多人动作预估

    深度学习网络已经能在预估动作方面帮动画师很大的忙,如今,我们甚至能做到实时预估。康奈尔大学Zhe Cao等人教会了一个神经网络估算人类骨架位置的变化。

    在如下的视频中,你可以看到一群人在街头跳舞,而通过这种神经网络,我们能知道他们在哪、如何做动作。当然,他们并没有佩戴任何设备。

      

    Paper:

    https://arxiv.org/abs/1611.08050

    5、Neural Talk:描述照片

      

    用电脑来对照片进行自动分类已经很常见了。比如,Facebook能在分享的照片里标记出你的好友,Google可以为你的照片打上标签以便更有效率地进行搜索。

    而如今,深度学习已经可以对照片中的各种元素进行描述。在Andrej Karpathy和李飞飞所做的一项工作中,他们训练了一个能对照片中不同区域内元素进行识别,并用一句话来描述照片的深度学习系统。

    Demo:

    http://cs.stanford.edu/people/karpathy/deepimagesent/generationdemo/

    Paper:

    http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Karpathy_Deep_Visual-Semantic_Alignments_2015_CVPR_paper.pdf

    6、DeepWarp:你瞅啥?再瞅把你做成表情包!

      

    这个应用有点恶搞的意思。现在,不管你手里拿到了谁的照片,用Ganin等人开发的这个深度学习网络过一下,你就可以让他的眼睛动起来:你可以让他上下看、左右看,甚至绕着圈看……好吧,除了生产表情包,其实也不知道它还能干什么用……

    这是一些例子,里面有伊丽莎白女王、奥巴马、莎拉波娃……等等:

    http://sites.skoltech.ru/compvision/projects/deepwarp/

    Demo:

    http://163.172.78.19/

    Paper:

    http://sites.skoltech.ru/compvision/projects/deepwarp/files/deepwarp_eccv2016.pdf

    7、生成新照片

    来自怀俄明州立大学的Anh Nguyen以及其他几位研究者开发了一套能用迭代的方式从已有照片中合成全新照片的深度学习网络。以下是一些电脑合成的样片,结果令人惊艳:

    Paper:

    https://arxiv.org/pdf/1612.00005.pdf

    8、用卷积神经网络来拯救鲸鱼

    众所周知,卷积神经网络在图像识别分类领域有着非常好的前景。利用深度学习,我们可以将抓拍到的珍稀动物(比如鲸鱼)照片进行分类,从而更好地估算某种动物的存活数量。

      

    其他的例子包括浮游生物、植物等等。

    分类浮游生物的介绍:

    http://benanne.github.io/2015/03/17/plankton.html

    Code:

    https://github.com/benanne/kaggle-ndsb

    9、Pix2Pix:灵魂画师

      

    这个点子与之前提到的Let there be color!有点类似,不过要更有创造力一点。你可以往电脑中输入一幅简笔画,甚至一些色块,然后让电脑发挥自己的创造力输出新的图片。类似地,你也可以把衣服航拍照片变成一幅地图,将白天的场景变成夜晚。

    前段时间特别火的信手画猫(传送门),也是基于这个技术。

    Paper:

    https://arxiv.org/pdf/1611.07004v1.pdf

    Code:

    https://github.com/phillipi/pix2pix

    10、Reading text in the Wild:用图片找文字

    牛津视觉几何小组运用深度学习技术开发了一项应用,它可以读出视频中的文字,输入文字,就可以直接搜出图像中包含这些文字的BBC新闻视频。比如,这是对“London”的一部分搜索结果:

      

    Demo:

    http://www.robots.ox.ac.uk/~vgg/research/text/#sec-demo

    Paper:

    http://arxiv.org/abs/1412.1842

    11、Google Sunroof:看你家房顶能收到多少太阳能

      

    Google Sunroof首先会根据Google地球的航拍地图为你家的屋顶创建一个3D模型,然后再用深度学习将屋顶和周围的数目区分开,接着根据太阳运行轨迹以及天气状况,就可以估算出安装了太阳能电池板的房顶能收集到多少太阳能。

    项目首页:

    https://www.google.com/get/sunroof#p=0

    12、AI制霸打砖块

    Google的Deepmind团队用深度强化技术教会了AI玩《打砖块》(Breakout,基本大家都玩过,具体是什么请看下图)。

    测试过程中,电脑并没有依据任何游戏规则被进行特殊的编成,他们只是将键盘的控制权交给AI,然后对它进行不断地训练。起初,AI玩得十分糟糕;但经过两个小时的训练之后,画风就变成了这个样子的:

    Paper:

    https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf

    Code:

    https://sites.google.com/a/deepmind.com/dqn/

    13、制霸全场~

      

    打砖块还不够?深度学习技术还被用来在更多游戏领域训练AI,包括:《小蜜蜂》、《毁灭公爵》、《乒乓》等几十种游戏。在大多数的游戏里,深度学习网络已经玩的比有经验的玩家更好,同样所有的玩法都是AI自己摸索的。

    Paper:

    http://www.davidqiu.com:8888/research/nature14236.pdf

    14、LipNet:让AI读唇语

    来自牛津大学和Deepmind的科学家共同完成了这一项目。LipNet在读唇的准确率方面达到了惊人93%,远超人类读唇者52%的平均水平。

    这是AI读唇的实际效果:

      

    Paper:

    https://arxiv.org/pdf/1611.01599.pdf

    Code:

    https://github.com/bshillingford/LipNet

    15、真·灵魂画师

    如今,运用深度学习技术,可以让AI对某一幅画的风格、色彩、明暗等元素进行学习,然后将这幅画上的风格移植到另一幅上,而且效果非常不错。

    这么说可能不够直观,来看几个例子:

    下面从左到右,依次是毕加索、梵·高和莫奈风格的蒙娜丽莎。

      

    而这是某位老哥用AI创作的谷歌地图风格的蒙娜丽莎……

    Demo:

    https://deepart.io/

    Paper:

    http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_paper.pdf

    16、AI写字

      

    现在电脑不光能用来打字,还能用来写字了:多伦多大学的Alex Graves教会了电脑用多种不同的风格来书写。

    Demo:

    http://www.cs.toronto.edu/~graves/handwriting.html

    Paper:

    https://arxiv.org/abs/1308.0850

    17、深度学习预测城市热人口和选举结果

      

    Gebru等人收集了5000万张Google街景照片,然后用深度学习技术加以挖掘看看能发现什么。结果,深度学习不仅识别出了2200万辆汽车的材质、车型、年份等,还从中发现了一些关联,比如可以通过对车型的识别来分析某片区域的人口状况。

    更有趣的是,AI发现,如果在一段15分钟长的驾驶路程上遇到的轿车比皮卡更多,那么这个城市在下届的总统选举中有88%的几率将选票投给民主党;否则,则有82%的几率投给共和党。

    Paper:

    https://arxiv.org/pdf/1702.06683.pdf

    18、Deep Dreaming:AI也会白日做梦

    2015年,Google的研究者找到了一种用深度学习来增强图像特征的方法,随后,他们就开发了Deep Dreaming——它能够在图片中生成一些不可思议的幻象。因为有些和梦境十分相似,因此取名Deep Dreaming。具体生成什么样的幻想与这个深度学习系统最近被暴露在什么样的环境下有关,有时它甚至能生成吓人的噩梦。

    视频中展示了AI可能生成的一部分梦境效果,有些略惊悚,慎入:

      

    项目首页:

    https://research.googleblog.com/2015/06/inceptionism-going-deeper-into-neural.html

    影集:

    http://www.telegraph.co.uk/technology/google/11730050/deep-dream-best-images.html?frame=3370674

    Code:

    https://github.com/google/deepdream

    19、反复攻破和修补自己的防火墙

      

    Google大脑的研究团队创建了两个深度学习网络用于安全工具开发,他们让其中一个不断创造自己的加密算法,然后让另一个网络去尽力攻破它。在两套系统的反复缠斗后,第一个系统已经能生成非常优秀的安全加密算法。

    然而,第二套算法也总是表现得比它更好……

    Paper:

    https://arxiv.org/pdf/1610.06918v1.pdf

    20、预测地震

      

    哈佛的科学家们运用深度学习技术让电脑学会“粘弹性计算”——一种被用于预测地震的计算方法。结果,计算的效果在AI上大大被增强了。

    然而,计算机同时将计算时间提高了50000%。在地震中,时间就是生命。因此,目前用AI来预测地震还为时尚早。

    Paper:

    https://arxiv.org/pdf/1701.08884v1.pdf

    好啦,先介绍到这里。深度学习固然厉害,不过也有不同的声音。兼听则明,不妨继续移步今天推送的第二条~��

    公开课报名

    4月18号(周二),量子位携手创新工场打造AI学院首次公开课,邀请创新工场AI工程院副院长王咏刚、技术VP李天放,共同为你打造一堂人工智能从0到1基础入门课。

    招聘

    我们正在招募编辑记者、运营等岗位,工作地点在北京中关村,期待你的到来,一起体验人工智能的风起云涌。

    相关细节,请在公众号对话界面,回复:“招聘”两个字。

    One More Thing…

    今天AI界还有哪些事值得关注?在量子位公众号会话界面回复“今天”,看我们全网搜罗的AI行业和研究动态。笔芯~

    另外,欢迎加量子位小助手的微信:qbitbot,如果你研究或者从事AI领域,小助手会把你带入量子位的交流群里。

    追踪人工智能领域最劲内容

    声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。

    展开全文
  • 来源:大数据技术工程师1.顶级Python深度学习应用程序在这个使用Python的深度学习中,我们将看到使用Python进行深度学习应用程序。在本文中,我们将讨论Pyt...
        

    640?wx_fmt=gif

    来源:大数据技术工程师

    1.顶级Python深度学习应用程序

    在这个使用Python的深度学习中,我们将看到使用Python进行深度学习的应用程序。在本文中,我们将讨论Python深度学习的20个主要应用程序。到目前为止,我们已经看到了 深度学习是什么以及如何实现它。现在让我们通过使用Python在现实世界中的应用程序深入学习来了解我们所能做的一切。

    那么,让我们开始探索使用Python进行深度学习的应用程序。

    640?wx_fmt=jpeg


    20个有趣的Python深度学习应用程序

    2.使用Python进行深度学习的应用

    下面,我们将讨论使用Python进行深度学习的20个最佳应用程序,您必须知道。让我们一个一个讨论:

    1,恢复黑白照片和视频中的颜色

    通过深度学习,可以恢复黑白照片和视频中的颜色。这可以为这种媒体带来新生。在ACM数字图书馆就是这样的一个项目,该项目colorizes灰度图像组合全局先验和局部图像特征。这是基于卷积神经网络

    640?wx_fmt=jpeg


    恢复黑白照片和视频中的颜色

    深度学习网络学习照片中自然出现的模式。这包括蓝天,白色和灰色的云,以及草的绿色。它利用过去的经验来学习这一点。虽然有时会出错,但大多数时候都是高效准确的。

    你知道重要的深度学习术语吗?

    2。像素恢复

    640?wx_fmt=jpeg


    深度学习中的像素恢复

    通过深度学习,我们甚至可以放大超出分辨率的视频。2017年,Google Brain的研究人员培训了一个深度学习网络来预测低分辨率图像中的人脸。Pixel Recursive Super Resolution适用于照片,可在很大程度上提高分辨率。

    3。描述图片

    在Python深度学习中描述图片

    到目前为止,您已经注意到Facebook可以如何标记照片,而Google可以标记它们以便于搜索。深度学习可以描述图片中的所有元素。深度学习网络可以识别图像中的许多区域,并且可以用单词描述每个区域。这是使用准确的英语语法。

    4。改变照片中的凝视

    640?wx_fmt=gif


    改变照片中的凝视

    深度学习网络可以改变人在图片中的显示方向。

    5。行为的实时分析

    640?wx_fmt=jpeg


    我们知道,深度学习网络可以识别和描述图片。但他们也可以分析这些照片中的人物姿势。他们可以获得有关人员,汽车和其他物体行为的实时洞察。

    6。翻译

    640?wx_fmt=jpeg


    翻译

    现在可以实时翻译图像上的文本。Google翻译应用可以执行此操作 - 您将相机放在对象和深度学习网络上OCR图像进行翻译。

    7。生成星系和火山的图片

    640?wx_fmt=jpeg


    生成星系和火山的图片

    通过使用Python深度学习,天文学家可以创建火山和星系的图片。

    8。创建新图像

    创建新图像

    640?wx_fmt=jpeg


    Pix2Pix教授深度学习网络,以执行诸如从彩色斑点创建真实街道场景,从真实航拍图片创建地图,填充对象边缘之间的颜色,甚至将日间场景转换为夜景等活动。

    9。搜索图像和视频中的文本

    640?wx_fmt=jpeg


    搜索图像和视频中的文本

    Oxford Visual Geometry组可以使用深度学习搜索图片和视频中的文本。它在BBC新闻视频中搜索文本。查看http://zeus.robots.ox.ac.uk/textsearch/#/search/

    我们搜索了“Glitter”并且它的工作并不完美,但大部分时间都是准确的。

    10。在电脑游戏中表现优于人类

    640?wx_fmt=jpeg


    在电脑游戏中表现优于人类

    深度学习社区训练人类在Space Invaders,Pong和Doom等游戏中击败人类。计算机通过玩几个小时自己学习规则。

    11。机器人

    640?wx_fmt=jpeg


    应用程序深度学习Python - 机器人技术

    凭借深度学习的能力,机器人可以在跌倒时起床,执行需要温柔的任务,甚至对推动他们的人做出反应。

    12。自动驾驶汽车

    640?wx_fmt=jpeg


    自驾车

    我们听过的一个名字是Google自动驾驶汽车。这种车辆可以区分物体,人和道路标志。这些也使用了激光雷达技术

    13。生成语音

    640?wx_fmt=jpeg


    Python深度学习的应用 - 生成语音

    深度学习网络,如Google的WaveNet和百度的Deep Speech,可以自动生成语音。他们可以学会模仿人类的声音,以便随着时间的推移而改善。

    我们来修改Python应用程序

    14。谱写音乐

    与之前的应用程序一样,我们可以训练深度学习网络来制作音乐作品。计算机学习艺术家的模式和统计数据,并创造一个独特的作品。

    15。恢复视频中的声音

    恢复视频中的声音

    640?wx_fmt=jpeg


    深度学习可以恢复静音视频中的声音。计算机可以添加声音,如用鼓槌刮擦物体。这使用监督学习。除此之外,像LipNet这样的软件可以让人们获得93%的成功。

    16。手写

    640?wx_fmt=jpeg


    Python深度学习中的手写

    通过深度学习,计算机不仅可以生成数字文本和艺术,还可以手写。计算机可以有自己的笔迹。

    17。深深的梦想

    640?wx_fmt=jpeg


    深深的梦想

    此Python深度学习应用程序可以增强图像中的功能。Deep Dreaming使计算机在图像顶部产生幻觉。这导致梦幻般的图像。

    18。发明和黑客自己的加密

    Google Brain设计了两个神经网络 - 一个用于生成加密算法来保护其消息。其他人企图破解这一点。它在设计方面表现良好,但并非如此。

    19。深度学习网络创建深度学习网络

    640?wx_fmt=jpeg


    深度学习网络

    像Neural Complete这样的深度学习产品可以产生新的深度学习网络。它是用Python编写的,经过培训可以用Python生成代码。

    20。写维基百科文章,计算机代码,数学论文和莎士比亚

    长期短期记忆(LSTM)是一种可以生成类似维基百科的文章,假数学论文等的架构。并非所有时间都有意义,但会有进步。

    所以,这就是使用Python进行深度学习的应用程序。希望你喜欢

    640?wx_fmt=gif

    640?wx_fmt=jpeg


    点击下方“阅读原文”了解【人工智能实验平台】↓↓↓
    展开全文
  • 深度学习应用介绍

    2019-05-19 23:41:54
    本文将带着大家看看深度学习在机器视觉领域的应用现状及其他方面的应用。 目录 物体检测 图像分割 图像标题的生成 图像风格变换 图像的生成 自动驾驶 强化学习(Deep Q-Network) 物体检测 物体检测是从...

    深度学习已经在图像、语音、自然语言处理等各个不同的领域展现出了优异的性能。本文将带着大家看看深度学习在机器视觉领域的应用现状及其他方面的应用。

    目录

    物体检测

    图像分割

    图像标题的生成

    图像风格变换

    图像的生成

    自动驾驶

    强化学习(Deep Q-Network)


    物体检测

    物体检测是从图像中确定物体的位置,并进行分类的问题,如下图所示要从图像中确定物体的种类和物体的位置。

    物体检测的例子

    不难发现,物体检测比物体识别(以整个图像为对象进行识别)更难,因为物体检测需要对图像中的每种类别进行识别并判断其位置。

    人们提出了多个基于CNN的方法,其中一个较为有名的方法是R-CNN,下图显示了R-CNN的处理流。图中,“2.Extract region proposals”(候选区域的提取)和“3.Compute CNN features”(CNN特征的计算)的处理部分。这里,首先以某种方法找出形似物体的区域,然后对提取的区域应用CNN进行分类。R-CNN中会将图像变形为正方形,或者在分类时使用SVM(支持向量机)。

     R-CNN的处理流

    在R-CNN的前半部分的处理---候选区域的提取(发现形似物体的处理)中,可以使用机器视觉领域积累的各种各样的方法。R-CNN论文中使用了一种被称为Selective Search的方法,最近还提出了一种基于CNN来进行候选区域提取的Fster R-CNN的方法,它用一个CNN来完成所有处理,使得高速处理成为可能。

    图像分割

     图像分割是指在像素水平上对图像进行分类。如下图所示,使用像素为单位对各个对象分别着色的监督数据进行学习,然后,在推理时,对输入图像的所有像素进行分类。

    图像分割的例子:左边是输入图像,右边是监督用的带标签图像

    如果选择神经网络进行图像分割,最简单的方法是以所有像素为对象,对每个像素执行推理处理(比如准备一个对某个矩形区域中心的像素进行分类的网络,以所有像素为对象执行推理处理。大家想一想,图像是不是由像素数据构成的嘛)。

    有人提出了一个名为“FCN(fully convolutional network)”的方法,该方法通过一次forward处理,对所有像素进行分类(如下图所示),FCN将全连接层替换成发挥相同作用的卷积层。在物体识别中使用的网络的全连接层中,中间数据的空间容量被作为排成一列的节点进行处理,而只由卷积层构成的网络中,空间容量可以保持原样直到最后的输出。

    FCN的概略图

    FCN的特征在于最后导入了扩大空间大小的处理。基于这个处理,变小了的中间数据可以一下子扩大到和输入图像一样的大小。FCN最后进行的扩大处理是基于双线性插值法的扩大(通过逆卷积运算来实现的)。

    图像标题的生成

    有一项融合了计算机视觉和自然语言的研究,能对一副照片进行标题文字生成,如下图所示,第一张照片生成了“A person riding a motorcycle on a dirt road”,翻译过来指“在肮脏的道路上骑摩托车的一个人”,太神奇了,就连肮脏的道路也被正确理解了。

    基于深度学习的图像标题生成的例子

    一个基于深度学习生成图像标题的代表性方法是NIC(Neural Image Caption)的模型。如下图所示,NIC由深层的CNN和处理自然语言的RNN(Recurrent Neural Network)构成。RNN是具有循环连接的网络,经常被用于自然语言、时间序列数据等连续性的数据上。

    NIC的整体结构

    NIC基于CNN从图像中提取特征,并将这个特征传给RNN。RNN以CNN提取出的特征为初始值,循环地生成文本。基于NIC,可以生成惊人的高精度的图像标题。我们将组合图像和自然语言等多种信息进行的处理称为多模态处理

    RNN的R表示Recurrent(循环的)。这个循环指的是神经网络的循环的网络结构。根据这个循环结构,神经网络会受到之前生成的信息的影响(记忆能力),这是RNN的特征,比如,生成“我”这个词后,下一个生成的词受到“我”这个词的影响。如果生成了“是”,那么下一个要生成的词受“我是”这个词的影响。因此,对于自然语言、时间序列数据等连续性的数据,RNN以记忆过去的信息的方式运行。

    图像风格变换

    有一项研究是使用深度学习来“绘制”带有艺术气息的画。如下图所示,输入两个图像后,会生成一个新的图像。两个输入图像中,一个称为“内容图像”,另一个称为“风格图像”。

    图像风格变换的例子:左上角是风格图像,右边是内容图像,左下角度是新生成的图像

    如果指定将梵高的绘画风格应用于内容图像,深度学习就会按照指示绘制出新的画作。此项研究出自论文“A Neural Algorithm of Artistic Style”,一经发表就受到全世界的广泛关注。

    该方法是在学习过程中使网络的中间数据近似内容图像的中间数据。这样一来,就可以使输入图像近似内容图像的形状。。此外,为了从风格图像中吸收风格,导入了风格矩阵的概念。通过在学习过程中减小风格矩阵的偏差,就可以使输入图像接近梵高的风格。

    图像的生成

    图像风格变换需要输入两个图像,而图像的生成不需要任何图像(当然,事先需要用大量的图像进行学习,“画”新图时不需要任何图像)。比如,基于深度学习,可以实现从零生成“卧室”的图像。下图展示的图像是基于DCGAN(deep convolutional generative adversarial network)方法生成的卧室图像的例子。DCGAN属于无监督学习

    基于DCGAN生成的新的卧室图像

    图中的图像都是基于DCGAN生成的图像,这些图像是谁都没有见过的。DCGAN会将图像的生成过程模拟化。使用大量图像(比如,印有卧室的大量照片)训练这个模型,学习结束后,使用这个模型,就可以生成新的图像。

    DCGAN中使用了深度学习,其技术要点是使用了生成者(generator)和识别者(discriminator)这两个神经网络。生成者生成近似真品的图片,识别者判断它是不是真图像。像这样,通过让两者以竞争的方式学习,生成者会学习到更加精妙的图像作假技术,识别者则会成长为能以更高精度辨别真假的鉴定师。两者互相切磋、共同成长,这是GAN的有趣之处。在这样的切磋中成长起来的生成者最终会掌握画出足以以假乱真的图像的能力。

    自动驾驶

    自动驾驶技术中,正确识别周围环境的技术尤为重要。这是因为要正确识别时刻变化的环境、自由来往的车辆和行人是非常困难的。

    在识别周围环境的技术中心,深度学习的力量备受期待。比如,基于CNN的神经网络SegNet,可以像下图那样高精度地识别行驶环境。

    基于深度学习的图像分割的例子

    该图对输入图像进行了分割(像素水平的判别)。观察结果可知,在某种程度上正确地识别了道路、建筑物、人行道、树木、车辆等。可见,今后若能基于深度学习使这种技术进一步实现高精度化、高速化的话,自动驾驶的实用化可能也就没那么遥远。

    强化学习(Deep Q-Network)

    就像人类通过摸索试验来学习一样,让计算机也在摸索试验过程中自主学习,这称为强化学习。这和有“教师”在指导的“监督学习”有所不同。

    强化学习的基本框架是,代理根据环境选择行动,然后通过这个行动改变环境。根据环境的变化,代理获得某种报酬。强化学习的目的是决定代理的行动方针,以获得更好的报酬。如下图所示。

    强化学习的基本框架

    在使用了深度学习的强化学习方法汇总,有一个叫作Deep Q-Network(DQN)的方法。该方法基于被称为Q学习的强化学习算法。在Q学习中,为了确定最合适的行动,需要确定一个被称为最优行动价值函数的函数。DQN使用了深度学习(CNN)。

    在DQN的研究中,有让电子游戏自动学习,并实现了超过人类水平的操作的例子。如下图所示,DQN使用CNN把游戏图像的帧作为输入,最终输出游戏手柄的各个动作的“价值”。

    基于Deep Q-Network 学习电子游戏的操作

    在DQN中,输入数据只有电子游戏的图像,实际上,DQN可以用相同的结构学习《吃豆人》、Atari等游戏,甚至取得了超过人类的成绩。

    人工智能AlphaGo击败围棋冠军的新闻受到了广泛关注。这个AlphaGo技术的内部也用了深度学习和强化学习。AlphaGo学习了3000万个专业棋手的棋谱,并且不停地重复自己和自己的决战,积累了大量的学习经验。AlphaGo和DQN都是Google的Deep Mind公司进行的研究。

    展开全文
  • 近年来,深度学习应用到越来越多的领域,在艺术创作里,显得尤为有趣,艺术风格迁移可以轻松地创建梵高、莫奈以及任何艺术家风格的图像。这场 Chat 主要介绍深度学习在艺术风格迁移领域中的应用,并通过算法详解和...

    近年来,深度学习被应用到越来越多的领域,在艺术创作里,显得尤为有趣,艺术风格迁移可以轻松地创建梵高、莫奈以及任何艺术家风格的图像。这场 Chat 主要介绍深度学习在艺术风格迁移领域中的应用,并通过算法详解和实战让大家可以轻松地创造出属于自己风格的图像。

    本场 Chat 主要内容:

    1. 可以深入地学习艺术风格迁移所涉及的算法。
    2. 能够利用 Python 和深度学习框架搭建出自己的网络,并训练出属于自己风格的图像。
    3. 同时分享自己的源代码,供大家参考学习。

    深度学习之艺术风格迁移

    近年来,由深度学习所引领的人工智能技术浪潮,开始越来越广泛地应用到社会各个领域。这其中,人工智能与艺术的交叉碰撞,不仅在相关的技术领域和艺术领域引起了高度关注。以相关技术为基础而开发的各种图像处理软件和滤镜应用更是一推出就立刻吸引了海量用户,风头一时无两。在这各种神奇的背后,最核心的就是基于深度学习的图像风格迁移(style transfer)。本chat就是介绍一个这样酷炫的深度学习应用:风格迁移。

    基于神经网络的风格迁移算法 “A Neural Algorithm of Artistic Style” 最早由 Gatys 等人在 2015 年提出,随后发表在 CVPR 2016 上。斯坦福大学的 Justin Johnson(cs231n 课程的主讲人之一)给出了 Torch 实现 neural-style。除此之外,这篇文章的作者另外还建立了一个在线艺术风格迁移的网站,deepart.io。在介绍主要内容之前,先直观看下什么是艺术风格迁移,如图 1 所示,给定内容图像(第一行左边图像)以及风格图像(左下角图像)可以生成特定风格下的混合图像。网络多次运算后,人眼很难判断出该图像是否为梵高或者毕加索的真迹。

    图1 生成的几种不同风格图像

    图1 生成的几种不同风格图像

    图像内容和图像风格定义

    艺术风格迁移的核心思想就是,可以从一副图像中提取出“风格 style”(比如梵高的夜空风格)以及“内容 content”(比如你能在画中看出河边有匹马)。你可以告诉机器,把 A 用 B 的风格再画一遍。但是怎么用数学语言具体定义风格和内容呢?在这里通过引入一个 VGG19 深度网络来具体阐述相关的含义。

    VGG19深度网络

    VGG 是 ImageNet2014 年的图像识别大赛识别定位组的冠军,几种不同深度的 VGG 网络结构如图 2 所示(如果对该网络的具体细节比较感兴趣,可以阅读相关论文)。那么问题来了,这种网络既然是用来识别和定位的,和要定义的“风格”和“内容”好像没有什么直接的联系,那这个网络到底是怎么去定义的呢?

    图2 VGG网络结构

    图2 VGG网络结构

    图像内容

    当我们把一张图片输入到 VGG 网络中,会在开始处变成一系列向量(每个像素上包含红绿蓝三值,代表了图像长什么样)。而在网络的每层中,我们能得到中间向量,比如 conv3_ 1,conv4_ 2(分别代表第三个卷积层的第一个 feature map 和第四个卷积层的第二个 feature map),但是它们并没有内在的含义。不过,大家想一下,其实对于一个训练好的网络,比如 VGG19,其参数已经确定,通过该参数计算得出的中间向量就可以代表该图像本身,这样就可以定义某一个卷积层中的某个 feature map 作为该图像的内容(content),比如上面说的 conv4_ 2。当然了,这里也不一定非得是 conv4_ 2,也可以是 conv6_ 1,可以根据自己的网络结构进行调整,不过拿不同的feature map作为图像的内容对结果会有影响。最后,在这里总结一下,图像的内容可以简单的认为是通过某个训练好的网络(比如 VGG19)进行计算后,某个卷积层中的某个 feature map(比如 conv4_2)。

    内容重构

    给定一张图片 p 和训练好的卷积网络(比如 VGG19),那么在每个卷积层中可以得到多个 feature map,个数取决于每层滤波器的个数 $N_l$。我们把每个 feature map 向量化,得到大小为 $M_l$ 的向量。把每一层的 $N_l$ 个特征向量保存到矩阵 $F^l\in R^{M_l\times N_l}$ 中,其元素 $F^l_{ij}$ 表示第l层的第i个滤波器在位置j上的激活响应。现在指定某一层 *l* 的特征,希望生成一张新的图片 *x*,使 *x* 在该层的特征 $P_l$ 等于原特征表示 $F_l$(内容匹配)。定义损失函数如下:

    $$ L_{content}(p,x,l)=\frac{1}{2}\sum_{i,j}(F^l_{ij}-P^l_{ij})^2 $$

    注意:这里是拿某一个卷积层(比如 conv3)中所有的 feature map 作为“内容”,并和新的图像 在同一卷积层中的所有 feature map 进行比较,然后进行平方差求和。不过,这和上面说的某一个卷积层中的某一个 feature map 作为“内容”好像不一样,其实是这样,作为图像的内容,可以是某一层的全部 feature map,也可以是某一个 feature map,这取决于你想要得到的结果。拿特定层的所有 feature map 作为内容,这样更加准确,但同时也增加了计算量,会使训练速度变慢;拿其中一个 feature map 作为内容,可以加快训练速度,但是内容保真度不能得到保证。

    图像风格

    图像的内容在上面已经定义好了,相对比较简单,而定义“风格”就有点复杂了。在这里不是随便选取某一层中的某个 feature map 作为“风格”层,而是把一层中的所有特征图都拿来(每一层基本上都有大量的 feature map,这取决于上一层卷积操作的卷积核数量),然后对这些 feature map 两两作内积,求 Gram 矩阵,这个 Gram 矩阵就是图像的风格。那么什么是 Gram 矩阵呢?在这里我不会做太多数学上的描述,尽量以比较易懂的语言来介绍。Gram 矩阵包含了图片的纹理信息以及颜色信息,其定义如下:

    $$ G^l_{ij}=\sum_kF_{ik}F_{jk} $$

    其中:$G^l_{ij}$ 是l层中feature map i和j的内积,k是feature map中的对应元素,对于某一个层来说,feature map i 和j的内积其实就是Gram矩阵中第i行第j列的元素值。下面来定义每层风格的损失函数:

    $$E_l=\frac1{4N^2_lM^2_l}\sum_{i,j}(G^l_{ij}-A^l_{ij})^2$$

    其中:$N_l$ 为该层的feature map数量,$M_l$ 为每个 feature up 的尺寸(比如 3x3,则对应为 9)。遍历该层中的个 feature map(i和j可以相同),这样就可以得到一个 Gram 矩阵。注意,这里只是某一层中定义的“风格”,为了达到更好的效果,需要对多个卷积层定义“风格”,最终的风格损失函数为:

    $$L_{style}(a,x)=\sum^L_{l=0}w_lE_l$$

    其中:$w_l$ 为每个层“风格”所对应的权重,具体数值要根据实际情况来定,当然也可以设置每层的数值相等,最终和为 1。

    最终损失函数

    上面我们已经定义好了图像的内容和风格以及对应的损失函数,那么最终的损失函数该怎么定义呢?定义如下式所示:

    $$L_{total}(p,a,x)=\alpha L_{content}(p,x)+\beta L_{style}(a,x)$$

    其中 $\alpha$ 和 $\beta$ 分别代表内容和风格损失的权重,其和为1。如果需要在合成图像中突出内容图像,则给予 $\alpha$ 较大权值;如果需要突出风格图像,则给予 $\beta$ 较大权值。

    如何训练生成具有特定内容和风格的图像呢?

    其实很简单,这里以白噪声图像作为输入,除此之外,还需要一幅内容图像和一幅风格图像。内容和风格可以由训练好的某种网络来提取,比如 VGG19,当然也可以是 Reset。有了白噪声图像,还需要搭建一个用来生成合成图像的卷积神经网络,该网络可以根据需要自定义,既可以是较深的网络,也可以是较浅的网络,不过要保证输入是一定维度的白噪声数据(或图像),输出为合成的图像数据。注意,这里的网络在设计时,某些层的维度要和提取网络的相同(比如使用 VGG 的 conv3 层作为内容层,那么该网络在对应层生成的数据大小应与 conv3 的相同),这样才能满足损失函数的计算要求,训练结构如图 3 所示:图3  从右到左依次训练网络

    图3 从右到左依次训练网络
    图4 两种不同风格的图像
    图4 两种不同风格的图像
    图5 四种渐进转变风格的图像
    图5 四种渐进转变风格的图像

    基于 tensorflow 的源代码

    首先介绍下自己的实验环境,8G 内存+256G SSD+GeForce 920MX+cuda8.0+cudnn6.1+Anaconda3+tensorflow-gpu,关于 cuda 和 cudnn 的安装配置在这里就不多说了,网上很多教程,下面来看下代码吧!

    %导入几个需要用到的库import tensorflow as tfimport numpy as npimport scipy.ioimport scipy.miscimport os%设置图像的路径以及需要调整到的宽度值和高度值IMAGE_W = 800 IMAGE_H = 600 CONTENT_IMG =  './images/Taipei101.jpg'STYLE_IMG = './images/StarryNight.jpg'OUTOUT_DIR = './results'OUTPUT_IMG = 'results.png'VGG_MODEL = 'imagenet-vgg-verydeep-19.mat'%这里采用在imagenet中训练好的VGG19模型,需要下载INI_NOISE_RATIO = 0.7%对输入图像噪声干扰的比例STYLE_STRENGTH = 500%风格强度ITERATION = 5000%迭代次数

    图6 训练中采用的训练图像

    图6 训练中采用的训练图像
    %对VGG19网络定义内容层和风格层CONTENT_LAYERS =[('conv4_2',1.)]STYLE_LAYERS=[('conv1_1',1.),('conv2_1',1.),('conv3_1',1.),('conv4_1',1.),('conv5_1',1.)]MEAN_VALUES = np.array([123, 117, 104]).reshape((1,1,1,3))%定义建立池化层和卷积层网络的函数def build_net(ntype, nin, nwb=None):  if ntype == 'conv':    return tf.nn.relu(tf.nn.conv2d(nin, nwb[0], strides=[1, 1, 1, 1], padding='SAME')+ nwb[1])  elif ntype == 'pool':    return tf.nn.avg_pool(nin, ksize=[1, 2, 2, 1],                  strides=[1, 2, 2, 1], padding='SAME')%获取VGG19模型参数的函数def get_weight_bias(vgg_layers, i,):  weights = vgg_layers[i][0][0][0][0][0]  weights = tf.constant(weights)  bias = vgg_layers[i][0][0][0][0][1]  bias = tf.constant(np.reshape(bias, (bias.size)))  return weights, bias%建立训练网络模型def build_vgg19(path):  net = {}  vgg_rawnet = scipy.io.loadmat(path)  vgg_layers = vgg_rawnet['layers'][0]  net['input'] = tf.Variable(np.zeros((1, IMAGE_H, IMAGE_W, 3)).astype('float32'))  net['conv1_1'] = build_net('conv',net['input'],get_weight_bias(vgg_layers,0))  net['conv1_2'] = build_net('conv',net['conv1_1'],get_weight_bias(vgg_layers,2))  net['pool1']   = build_net('pool',net['conv1_2'])  net['conv2_1'] = build_net('conv',net['pool1'],get_weight_bias(vgg_layers,5))  net['conv2_2'] = build_net('conv',net['conv2_1'],get_weight_bias(vgg_layers,7))  net['pool2']   = build_net('pool',net['conv2_2'])  net['conv3_1'] = build_net('conv',net['pool2'],get_weight_bias(vgg_layers,10))  net['conv3_2'] = build_net('conv',net['conv3_1'],get_weight_bias(vgg_layers,12))  net['conv3_3'] = build_net('conv',net['conv3_2'],get_weight_bias(vgg_layers,14))  net['conv3_4'] = build_net('conv',net['conv3_3'],get_weight_bias(vgg_layers,16))  net['pool3']   = build_net('pool',net['conv3_4'])  net['conv4_1'] = build_net('conv',net['pool3'],get_weight_bias(vgg_layers,19))  net['conv4_2'] = build_net('conv',net['conv4_1'],get_weight_bias(vgg_layers,21))  net['conv4_3'] = build_net('conv',net['conv4_2'],get_weight_bias(vgg_layers,23))  net['conv4_4'] = build_net('conv',net['conv4_3'],get_weight_bias(vgg_layers,25))  net['pool4']   = build_net('pool',net['conv4_4'])  net['conv5_1'] = build_net('conv',net['pool4'],get_weight_bias(vgg_layers,28))  net['conv5_2'] = build_net('conv',net['conv5_1'],get_weight_bias(vgg_layers,30))  net['conv5_3'] = build_net('conv',net['conv5_2'],get_weight_bias(vgg_layers,32))  net['conv5_4'] = build_net('conv',net['conv5_3'],get_weight_bias(vgg_layers,34))  net['pool5']   = build_net('pool',net['conv5_4'])  return net%定义内容损失,算法上面已经讲过def build_content_loss(p, x):  M = p.shape[1]*p.shape[2]  N = p.shape[3]  loss = (1./(2* N**0.5 * M**0.5 )) * tf.reduce_sum(tf.pow((x - p),2))    return loss%定义Gram矩阵,针对网络中的图像def gram_matrix(x, area, depth):  x1 = tf.reshape(x,(area,depth))  g = tf.matmul(tf.transpose(x1), x1)  return g%定义Gram矩阵,针对风格图像def gram_matrix_val(x, area, depth):  x1 = x.reshape(area,depth)  g = np.dot(x1.T, x1)  return g%建立风格损失,算法上面已经介绍过def build_style_loss(a, x):  M = a.shape[1]*a.shape[2]  N = a.shape[3]  A = gram_matrix_val(a, M, N )  G = gram_matrix(x, M, N )  loss = (1./(4 * N**2 * M**2)) * tf.reduce_sum(tf.pow((G - A),2))  return loss%读取图像的函数def read_image(path):  image = scipy.misc.imread(path)  image = scipy.misc.imresize(image,(IMAGE_H,IMAGE_W))  image = image[np.newaxis,:,:,:]   image = image - MEAN_VALUES  return image%保存图像的函数def write_image(path, image):  image = image + MEAN_VALUES  image = image[0]  image = np.clip(image, 0, 255).astype('uint8')  scipy.misc.imsave(path, image)%主函数def main():  net = build_vgg19(VGG_MODEL)  sess = tf.Session()  sess.run(tf.initialize_all_variables())  noise_img = np.random.uniform(-20, 20, (1, IMAGE_H, IMAGE_W, 3)).astype('float32')  content_img = read_image(CONTENT_IMG)  style_img = read_image(STYLE_IMG)%这里通过迁移学习,提取VGG19中的参数来搭建新的网络,而且新的网络也是提取网络  sess.run([net['input'].assign(content_img)])  cost_content = sum(map(lambda l,: l[1]*build_content_loss(sess.run(net[l[0]]) ,  net[l[0]])    , CONTENT_LAYERS))  sess.run([net['input'].assign(style_img)])  cost_style = sum(map(lambda l: l[1]*build_style_loss(sess.run(net[l[0]]) ,  net[l[0]])    , STYLE_LAYERS))%这里是把风格作为首要优化的对象  cost_total = cost_content + STYLE_STRENGTH * cost_style  optimizer = tf.train.AdamOptimizer(2.0)  train = optimizer.minimize(cost_total)  sess.run(tf.initialize_all_variables())  sess.run(net['input'].assign( INI_NOISE_RATIO* noise_img + (1.-INI_NOISE_RATIO) * content_img))%构建输入图像,其中也有一部分内容图像  if not os.path.exists(OUTOUT_DIR):      os.mkdir(OUTOUT_DIR)%注意,如果笔记本性能不是太好,建议把迭代次数调小点  for i in range(ITERATION):    sess.run(train)    if i%100 ==0:      result_img = sess.run(net['input'])      print(sess.run(cost_total))      write_image(os.path.join(OUTOUT_DIR,'%s.png'%(str(i).zfill(4))),result_img)  write_image(os.path.join(OUTOUT_DIR,OUTPUT_IMG),result_img)if __name__ == '__main__':  main()

    图7 最终生成的合成图像

    图7 最终生成的合成图像

    本 Chat 使用的源代码链接:

    https://github.com/CuiWeiAI/Art-style-migration-using-deep-learning


    本文首发于GitChat,未经授权不得转载,转载需与GitChat联系。

    阅读全文: http://gitbook.cn/gitchat/activity/5ac0769083d40954d3e36643

    您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

    FtooAtPSkEJwnW-9xkCLqSTRpBKX

    展开全文
  • 计算机视觉领域正在从统计方法转向深度学习神经网络方法。 计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在针对某些特定问题取得最新成果。 在最基本的问题上,最有趣的不仅仅是深度学习...

    计算机视觉领域正在从统计方法转向深度学习神经网络方法。

    计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在针对某些特定问题取得最新成果。

    在最基本的问题上,最有趣的不仅仅是深度学习模型的表现;事实上,单个模型可以从图像中学习意义并执行视觉任务,从而无需使用专门的手工制作方法。

    在这篇文章中,您将发现九个有趣的计算机视觉任务,其中深度学习方法取得了一些进展。

    让我们开始吧。

    概观

    在这篇文章中,我们将研究以下使用深度学习的计算机视觉问题:

    1. 图像分类
    2. 具有本地化的图像分类
    3. 物体检测
    4. 对象分割
    5. 图像样式转移
    6. 图像着色
    7. 影像重建
    8. 图像超分辨率
    9. 图像合成
    10. 其他问题

    注意,当涉及图像分类(识别)任务时,已采用ILSVRC的命名约定。虽然任务集中在图像上,但它们可以推广到视频帧。

    我试图关注您可能感兴趣的最终用户问题的类型,而不是深度学习能够做得更好的学术问题。

    每个示例都提供了问题的描述,示例以及对演示方法和结果的论文的引用。

    您是否有最喜欢的深度学习计算机视觉应用程序未列出?
    请在下面的评论中告诉我。

    图像分类

    图像分类涉及为整个图像或照片分配标签。

    该问题也被称为“对象分类”,并且可能更一般地称为“图像识别”,尽管后一任务可以应用于与分类图像内容相关的更广泛的任务集。

    图像分类的一些示例包括:

    1、将X射线标记为癌症与否(二元分类)。
    2、对手写数字进行分类(多类分类)。
    3、为脸部照片指定名称(多类别分类)。

    用作基准问题的图像分类的流行示例是MNIST数据集。
    在这里插入图片描述
    分类数字照片的流行真实版本是街景房号(SVHN)数据集。

    有许多图像分类任务涉及对象的照片。 两个流行的例子包括CIFAR-10和CIFAR-100数据集,这些数据集的照片分别分为10类和100类。

    大规模视觉识别挑战赛(ILSVRC)是一项年度竞赛,其中团队在从ImageNet数据库中提取的数据上竞争一系列计算机视觉任务的最佳性能。图像分类方面的许多重要进步来自于发布在该挑战或来自该挑战的任务的论文,最值得注意的是关于图像分类任务的早期论文。例如:

    1. 使用深度卷积神经网络的ImageNet分类,2012。
    2. 用于大规模图像识别的非常深的卷积网络,2014。
    3. 围绕卷积更深入,2015年。
    4. 图像识别的深度残留学习,2015年。

    具有本地化的图像分类

    具有本地化的图像分类涉及为图像分配类标签并通过边界框(在对象周围绘制框)来显示图像中对象的位置。

    这是一个更具挑战性的图像分类版本。

    本地化图像分类的一些示例包括:

    1.将X射线标记为癌症或在癌症区域周围画一个盒子。
    2.在每个场景中对动物的照片进行分类并在动物周围画一个盒子。
    用于具有定位的图像分类的经典数据集是PASCAL视觉对象类数据集,或简称为PASCAL VOC(例如VOC 2012)。这些是多年来在计算机视觉挑战中使用的数据集。
    在这里插入图片描述
    该任务可以涉及在图像中的同一对象的多个示例周围添加边界框。 因此,该任务有时可称为“对象检测”。
    在这里插入图片描述
    用于本地化图像分类的ILSVRC2016数据集是一个流行的数据集,包含150,000张照片和1000种对象。

    关于本地化图像分类的论文的一些例子包括:

    1. 选择性搜索对象识别,2013年。
    2. 用于精确对象检测和语义分割的丰富特征层次结构,2014年。
    3. 快速R-CNN,2015年。

    物体检测

    物体检测是具有定位的图像分类的任务,尽管图像可能包含需要定位和分类的多个对象。

    与简单的图像分类或具有定位的图像分类相比,这是一项更具挑战性的任务,因为在不同类型的图像中通常存在多个对象。

    通常,使用并展示用于具有定位的图像分类的技术用于对象检测。

    对象检测的一些示例包括:

    绘制边界框并标记街道场景中的每个对象。
    绘制边界框并在室内照片中标记每个对象。
    绘制边界框并在横向中标记每个对象。
    PASCAL Visual Object Classes数据集或简称PASCAL VOC(例如VOC 2012)是用于对象检测的常见数据集。

    用于多个计算机视觉任务的另一个数据集是Microsoft的上下文数据集中的公共对象,通常称为MS COCO。
    在这里插入图片描述
    关于物体检测的论文的一些例子包括:

    1. OverFeat:使用卷积网络的集成识别,本地化和检测,2014年。
    2. 更快的R-CNN:利用区域提案网络实现实时目标检测,2015年。
    3. 您只看一次:统一,实时对象检测,2015年。

    对象分割

    对象分割或语义分割是对象检测的任务,其中在图像中检测到的每个对象周围绘制线。图像分割是将图像分成段的更普遍的问题。

    对象检测有时也称为对象分割。

    与涉及使用边界框来识别对象的对象检测不同,对象分割识别图像中属于对象的特定像素。这就像一个细粒度的本地化。

    更一般地,“图像分割”可以指将图像中的所有像素分割成不同类别的对象。

    同样,VOC 2012和MS COCO数据集可用于对象分割。
    在这里插入图片描述
    KITTI Vision Benchmark Suite是另一种流行的对象分割数据集,提供用于自动驾驶车辆训练模型的街道图像。

    关于对象分割的一些示例论文包括:

    1. 同步检测和分割,2014年。
    2. 用于语义分割的完全卷积网络,2015。
    3. 用于对象分割和细粒度本地化的超级列,2015。
    4. SegNet:用于图像分割的深度卷积编码器 - 解码器架构,2016。
    5. Mask R-CNN,2017年。

    风格转移

    风格转移或神经风格转移是从一个或多个图像学习风格并将该风格应用于新图像的任务。

    该任务可以被认为是一种可能没有客观评价的照片滤波器或变换。

    例子包括将特定着名艺术品(例如Pablo Picasso或Vincent van Gogh)的风格应用于新照片。

    数据集通常涉及使用公共领域的着名艺术作品和标准计算机视觉数据集中的照片。
    在这里插入图片描述
    一些论文包括:

    1. 艺术风格的神经算法,2015。
    2. 使用卷积神经网络的图像样式转移,2016。

    图像着色

    图像着色或神经着色涉及将灰度图像转换为全色图像。

    该任务可以被认为是一种可能没有客观评价的照片滤波器或变换。

    例子包括着色旧的黑白照片和电影。

    数据集通常涉及使用现有的照片数据集并创建模型必须学习着色的照片的灰度版本。
    在这里插入图片描述
    一些论文包括:

    1. 彩色图像着色,2016年。
    2. 让我们有颜色:全球和本地图像的联合端到端学习,用于同步分类的自动图像着色,2016。
    3. 深色着色,2016。

    影像重建

    图像重建和图像修复是填充图像的缺失或损坏部分的任务。

    该任务可以被认为是一种可能没有客观评价的照片滤波器或变换。

    示例包括重建旧的,损坏的黑白照片和电影(例如照片恢复)。

    数据集通常涉及使用现有的照片数据集并创建模型必须学会修复的损坏版本的照片。
    在这里插入图片描述
    一些论文包括:

    1. 像素回归神经网络,2016年。
    2. 使用部分卷积的图像修复不规则孔,2018年。
    3. 使用具有带通滤波的深度神经网络进行高度可扩展的图像重建,2018年。

    图像超分辨率

    图像超分辨率是生成具有比原始图像更高分辨率和细节的图像的新版本的任务。

    通常为图像超分辨率开发的模型可用于图像恢复和修复,因为它们解决了相关问题。

    数据集通常涉及使用现有的照片数据集并创建缩小版照片,模型必须学会创建超分辨率版本。
    在这里插入图片描述
    一些论文包括:

    1. 使用生成对抗网络的照片真实单图像超分辨率,2017。
    2. 深拉普拉斯金字塔网络,快速准确的超分辨率,2017。
    3. Deep Image Prior,2017。

    图像合成

    图像合成是生成现有图像或全新图像的目标修改的任务。

    这是一个非常广泛的领域,正在迅速发展。

    它可能包括图像和视频的小修改(例如图像到图像的翻译),例如:

    更改场景中对象的样式。
    将对象添加到场景中。
    将面添加到场景中。
    在这里插入图片描述
    它还可能包括生成全新的图像,例如:

    1、生成面孔。
    2、生成浴室。
    3、生成衣服。
    在这里插入图片描述
    一些论文包括:

    1. 用深度卷积生成对抗网络学习无监督表示,2015。 使用PixelCNN解码器生成条件图像,2016。
    2. 使用周期一致的对抗网络进行不成对的图像到图像转换,2017。

    其他问题
    还有其他重要且有趣的问题我没有涉及,因为它们不是纯粹的计算机视觉任务。

    值得注意的例子是图像到文本和文本到图像:

    1、图像字幕:生成图像的文本描述。
    Show and Tell:神经图像标题生成器,2014。
    2、图像描述:生成图像中每个对象的文本描述。
    用于生成图像描述的深层视觉语义对齐,2015。
    3、文本到图像:基于文本描述合成图像。
    AttnGAN:使用注意生成对抗网络生成细粒度文本到图像,2017。

    据推测,人们学会在其他模态和图像之间进行映射,例如音频。

    总结

    在这篇文章中,您发现了九种深度学习应用于计算机视觉任务。

    您最喜欢的计算机视觉深度学习的例子是否错过了?
    请在评论中告诉我。

    你有任何问题吗?
    在下面的评论中提出您的问题。

    展开全文
  • 从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际问题中。诸多案例也已经证明,深度学习能让工作比之前做得更好。 今天,量子位为大家收集了20个深度学习方面的优秀应用——当然...
  • 深度学习是近十年来人工智能领域取得的最重要的突破之一。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域都取得了巨大成功。本文将重点介绍深度学习在物体识别、物体检测、视频分析的...
  • 据预测,在不久的将来,更多的深度学习应用程序会影响人们的生活。实际上,我认为这种影响已经开始了。 如果你站在圈外的角度,深度学习可能看起来让人望而生畏。 像TensorFlow,Keras,基于GPU的计算等专业术语...
  • 综述:什么是光流及其在深度学习中的应用 xingbod@gmail.com 声明:本文为CSDN首发,谢绝转载,商业转载请联系笔者本人获取同意 在现实生活中,那个人不会接触到视频呢?就拿每天使用的微信来说,朋友发送给你的短...
  •  从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际问题中。诸多案例也已经证明,深度学习能让工作比之前做得更好。  今天,量子位为大家收集了20个深度学习方面的优秀应用——...
  • 图像识别中的深度学习 来源:《中国计算机学会通讯》第8期《专题》 作者:王晓刚 深度学习发展历史 深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、...
  • 原文:RUC智能情报站 | 深度学习在推荐算法上的应用进展 摘要:最近几年是深度学习发展的黄金时间,在多个领域取得了重要进展,包括图像领域、语音领域、文本领域等。深度学习为科研工作者提供了一种非常有效的技术...
  • 微信公众号关键字全网搜索最新排名【机器学习算法】:排名第一【机器学习】:排名第二【Python】:排名第三【算法】:排名第四前言深度学习擅长识别非结构化数据中的模式,而大多数人熟知的图像、声音、视频、文本等...
  • 课程描述:这是一门讲解深度学习方法入门课程,深度学习主要应用于机器翻译,图像识别,游戏,图像生成等等。课程同时设置了两个非常有趣的实战项目:(1)基于RNN生成音乐(2)基于X光的基本检测,GitHub地址:...
  • 欢迎访问Oldpan博客,分享人工智能有趣消息,持续酝酿深度学习质量文。 前言 深度学习不不仅仅是理论创新,更重要的是应用于工程实际。 关于深度学习人工智能落地,已经有有很多的解决方案,不论是电脑端、手机...
  • 近年来,深度学习已经在科技界、工业界日益广泛地应用。随着全球各领域多样化数据的极速积累和计算资源的成熟化商业服务,深度学习已经成为人工智能领域最有效的方法。 目前,深度学习技术在语音识别、图像分类、...
  • 当2012年Facebook在广告领域开始应用定制化受众(Facebook Custom Audiences)功能后,“受众发现”这个概念真正得到大规模应用,什么叫“受众发现”?如果你的企业已经积累了一定的客户,无论这些客户是否关注你...
  • 2017年围棋界发生了一件比较重要事,Master(Alphago)以60连胜横扫天下,击败各路世界冠军,人工智能以气势如虹的姿态出现在我们人类的面前。围棋曾经一度被称为“人类智慧的堡垒”,如今,这座堡垒也随之成为过去...
1 2 3 4 5 ... 20
收藏数 31,955
精华内容 12,782