计算机视觉(一)—— 基础介绍
- 1. 计算机视觉概述
- 2. 研究挑战
- 3. 内容简介
- 3.1 计算机视觉的基础
- 3.2 深度学习的理论基础
- 3.3 深度学习在计算机视觉中的应用
- 4. 开源库与应用环境介绍
- 4.1 实践环境
- 4.2 开源库
- 5. 环境搭建
- 5.1 安装Tensorflow
- 5.2 安装opencv
1. 计算机视觉概述
研究理论和应用:
• 研究如何使机器“看”的科学
• 让计算机具有人类视觉的所有功能
• 让计算机从图像数据中,提取有用的信息并解释
• 重构人眼;重构视觉皮层;重构大脑剩余部分
模拟人类视觉的优越能力:
• 识别人、物体、场景
• 估计立体空间、距离
• 躲避障碍物进行导航
• 想象并描述故事
• 理解并讲解图片
弥补人类视觉的缺陷:
• 关注显著内容、容易忽略很多细节
• 不在乎、不擅长精细感知
• 容易受幻觉干扰
• 描述主观、模棱两可
• 不善于长时间稳定的执行同一个任务
• 当然,还有视觉障碍人士
计算机视觉一般使用感知设备(如摄像头)模拟人的眼睛,使用计算设备(如CPU/GPU/FPGA)模拟人的大脑,如下图所示。
高度复合学科:
• 工程
• 计算机科学
• 数学
• 心理学
• 生物学
• …
2个主要研究维度:
• 语义感知(semantic)
• 几何属性(Geometry)
感知上的本质差异:
人工智能目标: • 解决”像素值”与”语义”之间的鸿沟(Gap)
2. 研究挑战
挑战 | 举例 |
---|---|
视角变化 |
![]() |
光照变化 |
![]() |
尺度变化 |
![]() |
形态变化 |
![]() |
背景混淆干扰 |
![]() |
遮挡 |
![]() |
类内物体的外观差异 |
![]() |
3. 内容简介
部分I:计算机视觉的基础
⋄\diamond⋄ 图像预处理
⋄\diamond⋄ 图像特征及描述
⋄\diamond⋄ 未有深度学习之前
部分II:深度学习的理论基础
⋄\diamond⋄ BP神经网络详解
⋄\diamond⋄ 深度学习基础
部分III:深度学习在计算机视觉中的应用
⋄\diamond⋄ 图像分类 ←\leftarrow← 卷积神经网络CNN
⋄\diamond⋄ 图像检测 ←\leftarrow← 区域卷积神经网络R-CNN
⋄\diamond⋄ 图像分割 ←\leftarrow← 全卷积神经网络FCN
⋄\diamond⋄ 图像描述 ←\leftarrow← 迭代神经网络RNN
⋄\diamond⋄ 图像生成 ←\leftarrow← 生成对抗网络GAN
3.1 计算机视觉的基础
- 图像预处理: 1. 图像显示与存储原理
2. 图像增强的目标
3. 点运算:基于直方图的对比度增强
4. 形态学处理
5. 空间域处理:卷积
6. 卷积的应用(平滑、边缘检测、锐化等)
7. 频率域处理:傅里叶变换、小波变换 - 图像特征及描述: 1. 颜色特征
⋄\diamond⋄ 量化颜色直方图
⋄\diamond⋄ 聚类颜色直方图
2. 几何特征
⋄\diamond⋄ Edge,Corner,Blob
3. 基于关键点的特征描述子
⋄\diamond⋄ SIFT,SURF,ORB
4. 其他特征提取(LBP、Gabor) - 深度学习之前的方法: 1. 图像分割
⋄\diamond⋄ 基于阈值、基于边缘
⋄\diamond⋄ 基于区域、基于图论
2. 人脸检测
⋄\diamond⋄ Haar-like特征+级联分类器
3. 行人检测
⋄\diamond⋄ HOG+SVM
⋄\diamond⋄ DPM
3.2 深度学习的理论基础
- 神经网络与深度学习基础: 1. 神经网络
⋄\diamond⋄ 神经元
⋄\diamond⋄ 前馈网络
⋄\diamond⋄ 梯度下降
⋄\diamond⋄ 误差反向传播
2. 深度学习
⋄\diamond⋄ 与传统神经网络的区别
⋄\diamond⋄ 目标函数
⋄\diamond⋄ 改进的梯度下降
⋄\diamond⋄ 避免过适应
3.3 深度学习在计算机视觉中的应用
识别→\rightarrow→内容是什么? 1. 人脸识别
2. 字符识别
3. 车牌识别
4. 行为识别
5. 步态识别基于深度学习的方法:图片分类←\leftarrow←有没有?
卷积神经网络CNN: • 计算机视觉中的基础网络
• 有监督深度模型时代的起点
• AlexNet→\rightarrow→VGG→\rightarrow→GoogLeNet→\rightarrow→ResNet→\rightarrow→ResNeXt
• GoogLeNet
• Inception V1 →\rightarrow→ V2→\rightarrow→ V3→\rightarrow→ V4
• Inception ResNet V1 →\rightarrow→ V2
• 结构趋势
• 更深(Depth):8层→\rightarrow→ 1000+层
• 更宽(Width):1分支→\rightarrow→ 4+分支
• 更多基数(Cardinality ):1→\rightarrow→ 32基于深度学习的方法:检测→\rightarrow→目标在哪儿? 1. 物体检测
2. 人脸检测
3. 姿态检测
区域卷积神经网络R-CNN: • 让基础网络具备区域输出能力
• 第1阶段:R-CNN→\rightarrow→ SPP-Net→\rightarrow→ Fast/Faster R-CNN
• 第2阶段:YOLO→\rightarrow→ SSD→\rightarrow→ R-FCN
• 目的
• 检测更快、更准确
• 工业应用
• 智能监控
• 辅助驾驶基于深度学习的方法:图片分割→\rightarrow→区域轮廓? 1. 前景分割
2. 语义分割
全卷积神经网络FCN: • 让基础网络做像素输出
• FCN→\rightarrow→SegNet/DeconvNet→\rightarrow→DeepLab
• 目的
• 语义推断
• 分割更精确
• 工业应用
• 辅助驾驶
• ……
• 反卷积/转置卷积
应用: 对医学、生物影像中的器官、 组织或细胞进行分割,即判断出影像中的每一个像素点是否属于器官、组织或细胞。
生物医疗领域的图像分割。
U-net和V-net。视觉&语言: 1. 图片描述 (Captioning)
2. 图片问答(Question Answering)
递归神经网络RNN: • 具有记忆功能,构建不定长序列数据的模型
• Vanilla RNN→\rightarrow→LSTM→\rightarrow→GRU
• 应用范围
• 文本序列
• 区域序列
• 视频序列
• 研究问题
• 图片描述、问答
• 机器翻译图像生成: 1. 样本分布学习
2. 超分辨率
3. 以图生文
4. 语义分割
生成对抗网络GAN: • 网络结构
• 生成器网络( Generator )
• 判别器网络( Discriminator )
• 网络改进
• GAN→\rightarrow→CGAN →\rightarrow→ DCGAN→\rightarrow→ wGAN
• SRGAN
• 应用范围:
• 样本数据分布(生成)学习
• 有监督问题的优化图片检索→\rightarrow→相似图片
4. 开源库与应用环境介绍
4.1 实践环境
- Windows
- OpenCV 3.4
- Python 3.6+
- TensorFlow 1.9+
- Keras等
4.2 开源库
- OpenCV
• 函数库:计算机视觉,机器学习
• 优化算法:2500+
• 编程语言:C, C++, Java, Python, MATLAB
• 系统:Windows, Linus, Mac OS, iOS, Android
• 并行计算:CUDA, OpenCL
• URL:http://opencv.org/ - Caffe
• 函数库:深度学习
• 发布方:Berkeley Vision and Learning Center (BVLC)
• 编程语言:C++, Python
• 并行计算:CUDA
• URL:http://caffe.berkeleyvision.org
• 特色:
• 在配置中定义模型并优化,不需要硬编码
• 代码的可扩展性强
• 运行速度非常快 - Torch(PyTorch)
• 函数库:深度学习
• 发布方:Facebook
• 编程语言:Lua(Python)
• 并行计算:CUDA
• URL:https://torch.ch(http://pytorch.org/)
• 特色:
• 使用动态计算图,提供了更快速的方法
• 提供了运行在 GPU/CPU 之上、基础的张量操作库
• 支持共享内存的多进程并发(multiprocessing )库 - Tensorflow
• 函数库:深度学习
• 发布方:Google
• 编程语言:Python
• 并行计算:CUDA
• URL: https://www.tensorflow.org/
• 特色:
• 多机、多GPU分布式
• 适用于超大模型,超大数据集
• Tensorboard将训练过程可视化 - Keras
• 函数库:深度学习
• 发布方: Franois Chollet
• 编程语言:Python
• URL:https://keras.io
• 特色:
• 兼容 Theano 和 Tensorflow 的深度学习高级包
• 用户友好,高度模块化,易扩展性
5. 环境搭建
5.1 安装Tensorflow
CPU版本Tensorflow安装步骤→\rightarrow→TensorFlow的安装(Anaconda+TensorFlow+PyCharm)。
5.2 安装opencv
打开命令窗口,输入pip install opencv-python
后回车,进行安装。等待一会,出现Successfully installed opencv-python-4.5.2.52
后表示安装成功!
安装成功后,使用如下所示的代码进行验证。
#导入cv模块
import cv2 as cv
#读取图像,支持 bmp、jpg、png、tiff 等常用格式
img = cv.imread(r"C:\Users\Administrator\Desktop\test.jpg")
#创建窗口并显示图像
cv.namedWindow("Image")
cv.imshow("Image",img)
cv.waitKey(0)
#释放窗口
cv2.destroyAllWindows()
运行上述程序,会将C:\Users\Administrator\Desktop\test.jpg
路径下的图片在窗口显示出来,说明opencv安装成功。
计算机视觉(一)—— 基础介绍相关推荐
- 深度学习与计算机视觉系列(1)_基础介绍
转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...
- 计算机视觉知识基础_我见你:计算机视觉基础知识
计算机视觉知识基础 My introduction to Computer Vision happened in 2017 when I was doing Self-driving Car Nano ...
- OpenMV(一)--基础介绍与硬件架构
基础介绍与硬件架构 1. OpenMV介绍 1.1 什么是OpenMV 1.2 OpenMV与OpenCV 2. 硬件架构 2.1 OpenMV-H7 2.2 STM32H743 2.3 原理图 1. ...
- 图像处理与计算机视觉:基础,经典以及最近发展(总结)
图像处理与计算机视觉:基础,经典以及最近发展(总结) 现在已经把所有的文章打包,分成了16个子文件,欢迎整体下载. 图像处理和计算机视觉中的经典论文下载地址:http://pan.baidu.com/ ...
- 第1节--深度学习基础介绍-机器学习--课程介绍(上)
本课程为麦子学院彭亮老师讲授的(深度学习基础介绍-机器学习),共28小节. 彭亮在麦子学院还有两门课,一门是Python语言编程基础,另一门是深度学习进阶:算法与应用. 建议三门课的学习顺序为:Pyt ...
- 【总结】图像处理与计算机视觉:基础,经典及发展
一.转自: http://blog.csdn.net/dcraw/article/details/7617891 二.转自:http://blog.csdn.net/qq_26499769/artic ...
- day23:shell基础介绍 alias及重定向
2019独角兽企业重金招聘Python工程师标准>>> 1.shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都 ...
- Android NDK开发之 NEON基础介绍
原文:http://blog.csdn.net/app_12062011/article/details/50434259 Android NDK开发之 NEON基础介绍 这是官方介绍: http:/ ...
- python介绍和用途-Python基础介绍(一)
Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...
最新文章
- vim打开多窗口、多文件之间的切换
- linux c编译错误storage class specified for parameter XXX
- Docker file 搭建 Nginx镜像
- H3C 2126 限速后的问题
- 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)
- 生成随机长度字符串,比如密码等
- PostgreSQL 9.2迁移到9.3
- hbase regions_使用Regions ADF 11g进行Master Detail CRUD操作
- java及python调用RabbitMQ
- 计算机操作员理论知识试题,计算机操作员理论考试试题.doc
- 启动/关闭Spring boot服务脚本
- Python并发编程Futures
- 使用 paddle来进行文本生成
- 关于ASP.Net的导入导出(6)
- Mac快捷键大全-网络整理
- 文本特征提取算法-TF-IDF
- SpringBoot日志
- 如何在Apple Watch上关闭“嘿Siri”
- FlashFXP,flashfxp使用方法
- 大厂面经丨Nginx 面试 40 问
热门文章
- 基于Hexo+Node.js+github+coding搭建个人博客——进阶篇(从入门到入土)
- CSS3 之 less、sass、stylus区别
- Proteus8.9 VSM Studio SDCC编译器仿真STC15W4K32S4系列013_iic_04_AT24C16
- 如何将视频中的语音转成文字?3招教会你实现转换
- ZYNQ跑系统 系列(一) 传统方式移植linux
- Flex Chart 技巧 - 移除浮水印
- Unity插件TouchScript初识
- 【zZ】RxJava使用心得(一)
- 西北大学应用计算机自考,西北大学自考的官方网站是???
- signaling hbbtv info in TS