图像领域深度学习的七个境界
用深度学习玩图像的七重关卡
许铁-巡洋舰科技2 天前
第一个重境界: 图像识别
如果你开始了解深度学习的图像处理, 你接触的第一个任务一定是图像识别 :
比如把你的爱猫输入到一个普通的CNN网络里, 看看它是喵咪还是狗狗。
一个最普通的CNN, 比如像这样几层的CNN鼻祖Lenet, 如果你有不错的数据集(比如kaggle猫狗大战)都可以给出一个还差强人意的分类结果(80%多准确率), 虽然不是太高。
当然,如果你再加上对特定问题的一些知识, 也可以顺便识别个人脸啥的,开个startup叫face 减减什么:
会玩的, 也可以顺别识别个猪脸什么哒(我觉得长得都一样哦), 这样搞出来每个猪的身份, 对于高质量猪肉的销售, 真是大有裨益的。
或者看看植物都有个什么病害什么的,像这样不同的病斑, 人都懒得看的, 它可以给你看出来。 植物保护的人可以拿着手机下田了。
Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. "U-net: Convolutional networks for biomedical image segmentation." International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Cham, 2015.
虽然植物保护真的很好用,分类问做就了还真是挺无聊的。
我们进化的方向,也就是用更高级的网络结构取得更好的准确率,比如像下图这样的残差网络(已经可以在猫狗数据集上达到99.5%以上准确率)。分类做好了你会有一种成为深度学习大师,拿着一把斧子眼镜里都是钉子的幻觉。 分类问题之所以简单, 一要归功于大量标记的图像, 二是分类是一个边界非常分明的问题, 即使机器不知道什么是猫什么是狗, 看出点区别还是挺容易的, 如果你给机器几千几万类区分, 机器的能力通过就下降了(再复杂的网络,在imagenet那样分1000个类的问题里,都很难搞到超过80%的准确率)。
He, Kaiming, et al. "Identity mappings in deep residual networks." European Conference on Computer Vision. Springer International Publishing, 2016.
第二重境界 : 物体检测
很快你发现,分类的技能在大部分的现实生活里并没有鸟用。因为现实中的任务啊, 往往是这样的:
或者这样的:
那么多东西在一起,你拿猫狗大头照训练的分类网络一下子就乱了阵脚。 即使是你一个图片里有一个猫还有一个狗,甚至给猫加点噪声,都可以使你的分类网络分寸大乱。
现实中, 哪有那么多图片, 一个图里就是一个猫或者美女的大图,更多的时候, 一张图片里的东西, 那是多多的, 乱乱的,没有什么章法可言的, 你需要自己做一个框, 把你所需要看的目标给框出来, 然后, 看看这些东西是什么 。
于是你来到机器视觉的下一层挑战 - 目标检测(从大图中框出目标物体并识别), 随之而来的是一个新的网络架构, 又被称为R - CNN, 图片检测网络 , 这个网络不仅可以告诉你分类,还可以告诉你目标物体的坐标, 即使图片里有很多目标物体, 也一一给你找出来。
Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." Advances in neural information processing systems. 2015.
万军斩你首级那是杠杠的,在众多路人甲中识别嫌疑犯,也是轻而易举, 安防的人听着要按捺不住了。
今年出现的YOLO算法更是实现了快速实时的物体检测,你一路走过就告诉你视线里都有什么在哪里,要知道这在无人驾驶里是何等的利器。
YOLO快速检测法Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.
当然, 到这里你依然最终会觉得无聊, 即使网络可以已经很复杂, 不过是一个CNN网络(推荐区域),在加上一层CNN网络做分类和回归。 能不能干点别的?
第三重境界 : 图像切割
啊哈, 这就来到了第三个关卡, 你不仅需要把图片中边边角角的物体给检测出来, 你还要做这么一个猛料的工作, 就是把它从图片中扣出来。 要知道, 刚出生的婴儿分不清物体的边界, 比如桌上有苹果这种事, 什么是桌子,什么是苹果,为什么苹果不是占在桌子上的? 所以, 网络能不能把物体从一个图里抠出来, 事关它是否真的像人一样把握了视觉的本质。 这也算是对它的某种“图灵测试” 。 而把这个问题简化,我们无非是在原先图片上生成出一个原图的“mask”, 面具,有点像phtoshop里的蒙版的东西。
所谓抠图
Drozdzal, Michal, et al. "The importance of skip connections in biomedical image segmentation." International Workshop on Large-Scale Annotation of Biomedical Data and Expert Label Synthesis. Springer International Publishing, 2016.
注意,这个任务里,我们是要从一个图片里得到另一个图片哦! 生成的面具是另一个图片, 这时候,所谓的U型网络粉墨登场,注意这是我们的第一个生成式的模型。 它的组成单元依然是卷积,但是却加入了maxpooling的反过程升维采样。
这个Segmentation任务, 作用不可小瞧哦, 尤其对于科研口的你, 比如现在私人卫星和无人机普及了,要不要去看看自己小区周围的地貌, 看是不是隐藏了个金库? 清清输入, 卫星图片一栏无余。 哪里有树, 哪里有水,哪里有军事基地,不需要人,全都给你抠出来。
如果你要数个细胞啥的 ,都是挺容易的,给它变成这样的轮廓不就你得了。
第四重境界:
我们开始fashion起来, 如果你是淘宝服装小店的老板 ,想让客户输入一张服装的图片,然后得到一组推荐的服装, 来个以图搜图的功能怎么搞呢? 注意啊,我可以从网络上爬一大堆图出来,但是这些数据是没有标注的。怎么办? 铁哥告你还是有的搞,这个搞法,就是聚类。
铁哥教你最简单的一招聚类哦,那就是, 把图片统统放进卷积网络,但是我们不提取分类,而只是提取一些网络中间层的特征, 这些特征有点像每个图片的视觉二维码,然后我们对这些二维码做一个k-means聚类, 也会得到意想不到的效果。 为什么要深度? 因为深度提取的特征,那是与众不同的。
然后以图搜图呢? 不过是找到同一聚类里的其它图片啊。
在聚类的基础上, 就可以做个搜索!
第五层境界 :
我们开始晋升为仰望星空的人, 之前那些分类赚钱的应用太无聊了。 机器视觉搞科学怎么港? 作为一群仰望星空后观察细胞的人,我们最常发现的是我们得到的天文或者细胞图片的噪声实在太大了, 这简直没法忍啊, 然后, 深度学习给了你一套降噪和恢复图像的方法。 一个叫auto-encoder的工具, 起到了很大的作用 , 刷的一下,图像就清楚了。
这还不是最酷炫的,那个应用了博弈理论的对抗学习, 也可以帮你谋杀噪点! 如果你会对抗所谓GAN, 也是一种图像生成的工具, 让网络去掉噪声的图片,与没有噪声的自然图片, 连卷积网络都判别不出来,对, 就是这样!
Schawinski, Kevin, et al. "Generative adversarial networks recover features in astrophysical images of galaxies beyond the deconvolution limit." Monthly Notices of the Royal Astronomical Society: Letters 467.1 (2017): L110-L114.
第六重境界 :
在工业界赚够了钱,科学也太nerd了, 我们来玩艺术思考哲学 ,第一招, 图像风格迁移,请见铁哥之前的文章:
然而真正能玩好这一事项的,还是那个刚刚提过的对抗学习GAN, 比如大名鼎鼎的CycleGAN, 几乎可以实现一种你自定义的“图像翻译” 功能,而且你不用做标注哦, 拿出冬天和夏天的两组图片, 它会自动的在两组图片中找出对应来。
Zhu, Jun-Yan, et al. "Unpaired image-to-image translation using cycle-consistent adversarial networks." arXiv preprint arXiv:1703.10593 (2017).
第七重境界:
图像翻译也懒的玩了, 你神经网络不是号称能够理解图像,看你来个无中生有,在噪声里生成图片来?
对,依然是GAN,而且是最基础的卷积GAN (DCGAN)就可以给你干出来。
看看GAN所幻想的宾馆情景, 你能想到是计算机做的图吗? 哈哈哈!
Goodfellow, Ian, et al. "Generative adversarial nets." Advances in neural information processing systems. 2014.
写到这里, 我自己都觉得GAN是非常有前途的,有前途的,有前途的,以前我还以为只是好玩呢。
这里展示的七级浮屠,也不过深度学习被人类discover的冰山一角, 醉卧沙场君莫笑, 古来征战几人回。
图像领域深度学习的七个境界相关推荐
- 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
目录 0. 前言 1. 指数加权平均(exponentially weighted averages) 2. Momentum 动量 3. Nesterov 动量 4. AdaGrad 5. RMSP ...
- 深度学习 实验七 循环神经网络
文章目录 深度学习 实验七 循环神经网络 一.问题描述 二.设计简要描述 三.程序清单 深度学习 实验七 循环神经网络 一.问题描述 之前见过的所以神经网络(比如全连接网络和卷积神经网络)都有一个主要 ...
- 在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍
作者:Tobias Schaffrath Rosario 编译:ronghuaiyang 原文:在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍_ronghuaiyang的博客-CSD ...
- 深度学习(七)——图像验证码破解(数字加减验证码)
这段时间实习工作和找工作,导致时间很忙.现在有时间,还是希望把自己最近的工作感触和所完成的项目经验分享给大家.也算是对自己的一个总结.学习漫长的生涯里,作为我这个算法工程师这个职位非常重要,也希望大家 ...
- 计算机视觉与深度学习第七章:经典网络分析
本文按照北京邮电大学计算机学院鲁鹏老师的计算机视觉与深度学习课程按章节进行整理,需要的同学可借此系统学习该课程详尽知识~ 第七章 经典网络分析 ImageNet大规模视觉识别挑战赛(ILSVRC) 一 ...
- 【杂谈】白身,初识,不惑,有识,不可知,你处于深度学习工程师哪一重境界了...
周末到了,今天我们来谈谈深度学习工程师那些境界的事儿.有三斗胆将学习深度学习的同志分为5大境界,分别是白身,初识,不惑,有识,不可知,下面一个一个道来,以计算机视觉方向为例. 作者&编辑 | ...
- 盘点:文本内容安全领域 深度学习的六个主流应用方法
本文来自:易盾实验室 在深度学习技术兴起之前相当长的一段时间内,基于机器学习技术的文本分类方法占据着文本分类领域的统治地位. 如下图所示,特征工程+机器学习分类器一直是解决文本分类问题的标准范式.针对 ...
- [学习笔记] python深度学习---第七章 深度学习最佳实践
一.联合学习 如果只有元数据,那么可以使用one-hot编码,然后用密集连接网络来预测价格.如果只有文本描述,那么可以使用循环神经网络或一维卷积神经网络.如果只有图像,那么可以使用二维卷积神经网络.但 ...
- 面向弹载图像的深度学习网络压缩方法研究
这里写自定义目录标题 源自:航空兵器 作者:高一博 杨传栋 陈栋 凌冲 摘 要 针对基于深度学习目标识别算法具有网络结构复杂.参数量大.计算延迟高等特点,难以直接应用于弹载任务的问题,对网络轻量化方法 ...
最新文章
- 文本分类的基本思想和朴素贝叶斯算法原理
- 36氪研究 | 智慧零售行业研究报告
- 本科遥感考研跨计算机专业好吗,遥感专业考研选择哪些学?哪个学校比较好
- 按15分钟取数据_【数量技术宅|金融数据分析系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单...
- 面向对象(匿名内部类在开发中的应用)
- 链表删除功能实现演示
- pyqt5 判断lineedit是否为空_是否注意过 isEmpty 和 isBlank 区别?
- 定时重启软件_办公电脑怎样设置定时重启?依靠这款工具即可轻松实现
- spring boot + swagger2
- 织梦支持html5吗,自动更新HTML FOR DedeCMS V5.3(支持首页,列表页,文章页)
- Python+Django数据库配置及使用——执行原始SQL并返回模型实例
- 51nod 1605:棋盘问题
- vue 第十天 (组件的基本使用)
- mysql show processlist
- mysql插入数据不成功_mysql插入数据失败原因分析
- 20200720《Flask进阶》——蓝本
- uniapp上传(拍照、本地),预览,删除图片
- 查手机服务器ip和端口网站,手机怎么看ip和端口
- python + openpyxl 输出Excel单元格大小自适应和填充
- 1-编程基础及Python环境部署
热门文章
- 8086/8088内部结构
- 数据结构之二叉树的物理结构(存储结构)
- (软件工程复习核心重点)第十章面向对象设计-第二节:启发规则和软件重用
- thrift客户端调用不支持多线程,非线程安全
- stdint.h 文件
- PyTorch之torch.nn.CrossEntropyLoss()
- Springboot之actuator配置不当漏洞RCE(jolokia)
- linux系统最大打开文件数(/etc/security/limits.conf:待更新其他设置)
- Linux 修改密码root(账号)
- 数据结构与算法:动态数组(利用万能指针实现任意类型数组操作)