课程介绍
本课程使用Python语言讲解和实现图像处理和机器视觉等应用方向的理论知识、常用算法和工程应用。主要包括图像编程基本知识和常用库、图像处理和项目应用、机器视觉和深度学习知识和应用等知识。
本课程将围绕计算机视觉的主要问题,以工作实践为基本需求,重点讲解图像处理和识别的传统和前沿方法。在图像处理方面,重点讲授python基本编程知识和图像操作、图像算子理论、图像边缘提取、图像去噪和增强、图像形态学和图像分割、图像特征提取、图像拼接、图像聚类、ORC识别和形状识别等知识和应用技能,包括全景图像拼接、图像分类、图像验证码识别、车道线检测和定位等项目实践。
在图像识别方面,课程将从神经元和多层感知机讲起,分析了简单网络设计、激活函数、损失函数和优化方法,以手写数字识别介绍BP神经网络的设计、训练和实现。类比简单神经网络和图像算子理论,深度卷积神经网络以局部连接、参数共享和多滤波器提取为改进,使得训练参数大量简化,并且深层网络具有更好的非线性拟合和分类性能,相较于以知识经验进行图像特征提取的传统方法,深层卷积神经网络自学习提取特征的能力对于图像检测识别领域具有划时代的意义。
在深度学习方面,本课程首先介绍卷积神经网络的基本知识和数学优化方法,分析ImageNet比赛中表现较好卷积神经网络的衍进,介绍卷积神经网络的设计和实现等知识。TensorFlow是深度学习工程应用的常用框架,课程将介绍TensorFlow的编程和调参工具使用。最后,课程将介绍目标检测方法和网络设计。
视觉课程主要分为三个层次,图像处理、图像分析和图像理解。
图像处理是用任何信号处理等数学操作处理图像的过程,输入时图像(摄影图像或者视频帧),输出是图像或者与输入图像有关的特征、参数;图像分析对图像中感兴趣的目标进行检测和测量,以获得他们的客观信息,从而建立对图像的描述;图像理解是产生决策形式的数字或者符号信息。课程将按照上述三个层次和主题举例介绍图像处理的一般方法。全课程8个学时,分四次讲授,主要分为图像开发环境搭建和常用算法库介绍、图像处理和分析的一般方法(分两次讲授)、深度学习初探。
培训目标
区分不同类型的相机,标定技术,以及基本的图像处理技术;
完成主要的图像处理任务,包括特征检测,识别以及目标识别和跟踪;
熟悉和使用openCV来完成特定的任务;
学习和使用各种传感器融合、目标识别和跟踪算法;
评估文献中的各种计算机视觉技术;
完成多个计算机视觉项目。
讲师介绍
牛喀学城特约讲师 计算机视觉专家
中国科学技术大学与中科院联合培养硕士,数学和计算机专业。曾在多个大型军工企业和汽车企业从事指控系统软件、传感器开发、数据融合算法开发工作。2017年起在通用汽车从事智能驾驶的感知算法设计和开发。累计完成多个军用和民用智能驾驶项目的算法开发工作,熟练驾驭各种国际顶级算法的应用。尤其精通雷达组网融合、智能驾驶雷达感知和定位、视觉检测和定位技术。
一、图像开发环境搭建
1.1 Python Anaconda环境搭建
1.1.1 conda 下载和安装
1.1.2 常用指令(创建、删除、添加库)
1.1.3 按照配置文件下载环境(conda和pip)
1.1.4 anaconda 中的开发环境(IDE)
1.1.5 环境配置的导出
1.2 OpenCV VS 配置
1.2.1 Visual Studio 安装
1.2.2 OpenCV安装
1.2.3 OpenCV 像素操作的三种方式
1.2.4 工程的库配置
1.3 Docker 镜像管理
1.3.1 Docker介绍和安装
1.3.2 Docker 常用命令
1.3.3 Docker 容器和镜像使用和管理
1.4 ROS应用介绍(Ros Qt plugin、ros python 开发)
1.4.1 Ros介绍和安装
1.4.2 Ros 消息收发
1.4.3 案例:MoveIt!
1.4.4 Ros Qt Plugin环境安装
二、常见算法库介绍(Anaconda的Pillow、OpenCV、Matplotlib、Scipy、NumPy)
2.1 PIL(pillow):图像处理类库
2.1.1 图像读取和格式转换
2.1.2 创建缩略图
2.1.3 赋值和粘贴图像区域
2.1.4 调整尺寸和旋转
2.1.5 案例:抠图程序开发
2.2 Scipy
2.2.1 时频变换(FFT\IFFT)
2.2.2 图像模糊
2.2.3 图像模版算子
2.2.4 图像形态学
2.2.5 案例:图像去噪
2.3 Numpy
2.3.1 灰度变换
2.3.2 图像缩放
2.3.3 直方图均衡化 实践:图像增强、锐化
2.3.4 案例:图像平均
2.3.5 案例:图像主成分分析(PCA)
2.4 python-opencv
2.4.1 图像裁剪、缩放、像素操作
2.4.2 图像合成
2.5 Matplotlib
2.5.1 绘制图像点和线
2.5.2 图像轮廓和直方图
三、图像处理算子
3.1 点算子
3.1.1色彩变换
3.1.2合成与抠图
3.1.3直方图均衡化
3.2 邻域算子
3.2.1 卷积
3.2.2 傅里叶变换
3.2.3 带通滤波器
3.2.4 Sobel算子和高阶模板
3.2.5 Canny算子
3.2.6 非线性滤波
(1)中值滤波
(2)双边滤波
1.2.7 形态学:腐蚀、膨胀、开运算和闭运算
3.3 全局算子
3.3.1 多尺度分析*
(1)图像金字塔
案例:图像融合
(2)小波算子
案例:小波图像分解和压缩
3.3.2 几何变换
1.3.2.1 相机运动与图像变换关系
1.3.2.2 图像变形
1.3.2.3 案例:人脸合成
3.4 全局优化
3.4.1 马尔科夫随机场*
3.4.2 正则化
四、特征检测和匹配
4.1 特征检测
4.1.1 Harris角点检测器
4.1.2 FAST
4.1.3 SIFT尺度不变特征
4.1.4 SURF算子(SIFT加速算法)
4.2 特征匹配
4.2.1 相关模板匹配
4.2.2 特征描述子匹配
4.2.3 Ransac方法
4.3 案例
4.3.1 无人机图像拼接
4.3.2 全景图像拼接
五、机器学习方法
5.1 图像聚类
5.1.1 K-means
5.1.2 像素聚类
5.1.3 层次聚类
5.2 图像识别
5.2.1 ORC 验证码识别算法*
5.2.2 案例:爬虫爬取图片和Tesseract-OCR文字识别
5.2.3 案例:形状识别
5.2.4 案例:车道线检测和定位 查询相关的论文
六、深度学习—CNN理论
6.1 简单神经网络
6.1.1 神经元
6.1.2 数学知识
6.1.3 损失函数
6.1.3.1 回归问题损失函数
6.1.3.2 分类问题损失函数
6.1.4 优化方法
6.1.5 机器学习工作流
6.1.6 单层神经网络
6.1.7 多层感知机
6.1.6.1 隐藏层
6.1.6.2 激活函数
6.1.6.3 多层感知机
6.1.6.4 正向传播神经网络
6.1.6.5 反向传播神经网络
6.1.6.6 训练
6.1.6.7 案例:数字手写体的识别
6.2 简单神经网络与CNN的关系
6.2.1 隐藏节点=>滤波器
6.2.2 全连接=>局部连接
6.2.3 参数共享
6.2.4 多滤波器提取
6.3 CNN基本知识
6.3.1 卷积运算
6.3.2 激活函数
6.3.3 池化
6.3.4 卷积网络输出结构
6.3.5 全连接
6.3.6 Softmax
6.3.7 层级结构
6.3.8 卷积方向反向传播
6.3.9 Dropout
6.3.10 CNN结构计算
6.4卷积神经网络设计
6.4.1 LeNet
6.4.2 AlexNet
6.4.3 ZFNet
6.4.4 VGGNet
6.4.5 GoogleNet
6.4.6 ResNet
6.4.7 MobileNet*
6.4.8 ShuffleNet*
七、深度学习框架—TensorFlow
7.1 TensorFlow介绍
7.2 TensorFlow 核心概念
7.3 运行和可视化
7.4 指定CPU和GPU
7.5 为什么要Graph
7.6 TensorBoard
7.7 TensorFlow数据类型
7.8 TFRecord
7.9 多项式回归
7.10 多层感知机
7.11 CNN简单网络实现 LeNet、 AlexNet、 ZFNet、VGGNet、GoogleNet、ResNet、MobileNet、ShuffleNet
八、深度学习框架—Pytorch
8.1 介绍和安装
8.2 案例:简单网络实现 BP
8.3 常用函数
8.4 常用网络实现
九、训练和网络推理加速*
9.1 多GPU训练
9.2 开放文件格式 ONNX
9.3 tensorRT网络加速
9.4 Cuda编程
十、CNN目标检测—理论和方法
10.1 目标检测和边界框*
10.2 锚框*
10.3 多尺度目标检测*
10.4 非极大化抑制(NMS)*
10.5 encoder-decoder架构 *
10.6 一阶段检测网络
10.6.1 SSD
10.6.2 Yolo(v1~v5)
10.6.3 EfficientNet / EfficientDet*
10.7 两阶段检测网络—区域卷积神经网络(R-CNN)系列
10.7.1 R-CNN
10.7.2 FastR-CNN
10.7.3 FasterR-CNN
10.7.4 Mask R-CNN
10.7.5 区域卷积网络总结
10.8 语义分割网络-Mask-RCNN
十一、视觉项目实践(应用深度学习方法)
11.1 目标分类和检测
11.2 图像增强*
11.3 图像风格迁移
11.4 图像语义理解*
11.5 3D目标检测*
11.6 图像语义理解*