计算机视觉的深度学习之路
更多精彩内容,请关注微信公众号:听潮庭 ,我们一起学习。
一、概述
-
计算机视觉概述
-
高度复合学科:工程、计算机科学、数学、心理学、生物学
-
图像处理、机器人、神经科学、认知科学、机器学习、计算机图形学、信息获取、算法、硬件系统;
-
两个主要研究维度:
-
语义感知(semantic):
-
分类 Classification :物体、属性、场景等
-
检测 Detection:物体、行人、人脸等
-
识别 Recognition:物体:车牌,文本;人:人脸、指纹、虹膜、步态、行为等;
-
分割 Segmentation
-
检索 Retrieval:以文搜图、以图搜图、图文联搜
-
语言 language:图片描述,图片问答等;
-
-
几何属性(Geometry):VR
-
3D建模
-
双目视觉
-
增强现实
-
-
-
-
研究挑战
-
光照变化
-
尺度变化
-
形态变化
-
背景混淆干扰
-
遮挡
-
类内物体的外观差异
-
-
简介
-
部分一:计算机视觉的基础
-
图像预处理
-
图像显示与存储原理
-
图像增强的目标
-
点运算:基于直方图的对比度增强
-
形态学处理
-
空间域处理:卷积
-
卷积的应用(平滑、边缘检测、锐化等)
-
频率域处理:傅里叶变换、小波变换
-
-
图像特征及描述
-
颜色特征:量化颜色直方图、聚类颜色直方图;
-
几何特征:Edge(边缘)、Corner(角点)、Blob(斑块)
-
基于关键点的特征描述子:SIFT、SURF、ORB;
-
其他特征提取:LBP、Gabor
-
-
深度学习之前的方法
-
图像分割
-
基于阈值、基于边缘
-
基于区域、基于图论
-
-
人脸检测
-
Haar-like特征+级联分类器
-
-
行人检测
-
HOG+SVM
-
DPM
-
-
-
-
部分二:深度学习的理论基础
-
BP神经网络详解
-
深度学习基础
-
神经网络
-
神经元
-
前馈网络
-
梯度下降
-
误差反向传播
-
-
深度学习
-
与传统神经网络的区别
-
目标函数
-
改进的梯度下降
-
避免过适应
-
-
-
-
部分三:深度学习在计算机视觉中的应用
-
图像分类:卷积神经网络CNN
-
CNN:
-
计算机视觉中的基础网络
-
有监督深度模型时代的起点
-
AlexNet->VGG->GeogleNet->ResNet->ResNeXt
-
GeogleLeNet
-
Inception V1->V2->V3->V4
-
Inception ResNet V1->V2
-
-
结构趋势
-
更深(Depth):8层->1000+层
-
更宽(Width):1分支->4+分支
-
更多基数(Cardinality):1->32
-
-
-
-
图像检测:区域卷积神经网络R-CNN
-
让基础网络具备区域输出能力
-
第一阶段:R-CNN->SPP-Net->Fast/Faster R-CNN
-
第二阶段:YOLO->SSD->R-FCN
-
目的:检测更快、更准确
-
工业应用:
-
智能监控
-
辅助驾驶
-
-
-
图像分割:全卷积神经网络FCN
-
FCN:
-
让基础网络做像素输出
-
FCN->SegNet/DeconvNet->DeepLab
-
反卷积/转置卷积
-
-
目的
-
语义推断
-
分割更精确
-
-
工业应用
-
辅助驾驶
-
对医学、生物影像中的器官、组织或细胞进行分割,及判断出影像中的每一个像素点是否属于器官、组织或细胞
-
生物医学领域的图像分割:U-Net和V-Net
-
-
-
-
图像描述:迭代神经网络RNN
-
递归神经网络RNN
-
具有记忆功能,构建不定长序列数据的模型
-
Vanilla RNN->LSTM->GRU
-
应用范围
-
文本序列
-
区域序列
-
视频序列
-
-
研究问题
-
图片描述、问答
-
机器翻译
-
-
-
-
图像生成:生成对抗网络GAN
-
图片生成
-
样本分布学习
-
超分辨率
-
以图生文
-
语义分割
-
-
生成对抗网络GAN
-
网络结构
-
生成器网络(Generator)
-
判别器网络(Discriminator)
-
-
网络改进
-
GAN->CGAN->DCGAN->wGAN
-
SRGAN
-
-
应用范围:
-
样本数据分布(生成)学习
-
有监督问题的优化
-
-
-
-
-
-
开源库与应用环境介绍
-
Anaconda Python 3.6
-
OpenCV 3.4+
-
TensorFlow 1.9+
-
DNN模型实践
-
VGG、ResNet、
-
Faster R-CNN、YOLO
-
DeepLab、U-NET
-
Show-and-Tell
-
GAN
-
-
-
参考书
-
Python基础教程 第二版
-
OpenCV3 计算机视觉:Python语言实现
-
TensorFlow实战
-
深度学习 goodfellow的花书
-
深度学习轻松学 核心算法与视觉实践
-
-
环境搭建
-
Windows
-
OpenCV 3.4
-
Python 3.6+
-
TensorFlow 1.9+
-
Keras等
-
开源库介绍:
-
OpenCV
-
函数库:计算机视觉、机器学习
-
优化算法2500+
-
编程语言:C、C++、Java、Python、Matlab
-
并行计算:CUDA、OpeenCL
-
-
Caffe:
-
函数库:深度学习
-
发布方:BVLC
-
编程语言:C++、Python
-
并行计算:CUDA
-
特色:
-
在配置中定义模型并优化,不需要硬编码
-
代码的可扩展性强
-
运行速度非常快
-
-
-
Torch(PyTorch)
-
函数库:深度学习
-
发布方:Facebook
-
编程语言:Lua(Python)
-
并行计算:CUDA
-
特色:
-
使用动态计算图,提供了更快速地方法
-
提供了运行在GPU/CPU之上、基础的张量计算操作库;
-
支持共享内存的多进程并发(multiprocessing)库
-
-
-
TensorFlow
-
函数库:深度学习
-
发布方:Geogle
-
编程语言:Python
-
并行计算:CUDA
-
特色:
-
多级、多GPU分布式
-
适用于超大模型,超大数据集
-
Tensorboard将训练过程可视化
-
-
-
使用图graph来表示计算任务
-
在被称之为会话session的上下文context中执行图
-
使用张量tensor表示数据
-
通过变量variable表示数据
-
使用feed和fetch可以为任意的操作赋值或者从其中获取数据
-
占位符
-
-
-
Keras
-
函数库:深度学习
-
编程语言:Python
特色:
-
兼容Theano和TensorFlow的深度学习高级包
-
用户友好,高度模块化,易扩展性
-
-
-
-
-