• 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)_基础介绍

    转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...

  2. 计算机视觉知识基础_我见你:计算机视觉基础知识

    计算机视觉知识基础 My introduction to Computer Vision happened in 2017 when I was doing Self-driving Car Nano ...

  3. OpenMV(一)--基础介绍与硬件架构

    基础介绍与硬件架构 1. OpenMV介绍 1.1 什么是OpenMV 1.2 OpenMV与OpenCV 2. 硬件架构 2.1 OpenMV-H7 2.2 STM32H743 2.3 原理图 1. ...

  4. 图像处理与计算机视觉:基础,经典以及最近发展(总结)

    图像处理与计算机视觉:基础,经典以及最近发展(总结) 现在已经把所有的文章打包,分成了16个子文件,欢迎整体下载. 图像处理和计算机视觉中的经典论文下载地址:http://pan.baidu.com/ ...

  5. 第1节--深度学习基础介绍-机器学习--课程介绍(上)

    本课程为麦子学院彭亮老师讲授的(深度学习基础介绍-机器学习),共28小节. 彭亮在麦子学院还有两门课,一门是Python语言编程基础,另一门是深度学习进阶:算法与应用. 建议三门课的学习顺序为:Pyt ...

  6. 【总结】图像处理与计算机视觉:基础,经典及发展

    一.转自: http://blog.csdn.net/dcraw/article/details/7617891 二.转自:http://blog.csdn.net/qq_26499769/artic ...

  7. day23:shell基础介绍 alias及重定向

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都 ...

  8. Android NDK开发之 NEON基础介绍

    原文:http://blog.csdn.net/app_12062011/article/details/50434259 Android NDK开发之 NEON基础介绍 这是官方介绍: http:/ ...

  9. python介绍和用途-Python基础介绍(一)

    Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 ​编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...

最新文章

  1. vim打开多窗口、多文件之间的切换
  2. linux c编译错误storage class specified for parameter XXX
  3. Docker file 搭建 Nginx镜像
  4. H3C 2126 限速后的问题
  5. 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)
  6. 生成随机长度字符串,比如密码等
  7. PostgreSQL 9.2迁移到9.3
  8. hbase regions_使用Regions ADF 11g进行Master Detail CRUD操作
  9. java及python调用RabbitMQ
  10. 计算机操作员理论知识试题,计算机操作员理论考试试题.doc
  11. 启动/关闭Spring boot服务脚本
  12. Python并发编程Futures
  13. 使用 paddle来进行文本生成
  14. 关于ASP.Net的导入导出(6)
  15. Mac快捷键大全-网络整理
  16. 文本特征提取算法-TF-IDF
  17. SpringBoot日志
  18. 如何在Apple Watch上关闭“嘿Siri”
  19. FlashFXP,flashfxp使用方法
  20. 大厂面经丨Nginx 面试 40 问

热门文章

  1. 基于Hexo+Node.js+github+coding搭建个人博客——进阶篇(从入门到入土)
  2. CSS3 之 less、sass、stylus区别
  3. Proteus8.9 VSM Studio SDCC编译器仿真STC15W4K32S4系列013_iic_04_AT24C16
  4. 如何将视频中的语音转成文字?3招教会你实现转换
  5. ZYNQ跑系统 系列(一) 传统方式移植linux
  6. Flex Chart 技巧 - 移除浮水印
  7. Unity插件TouchScript初识
  8. 【zZ】RxJava使用心得(一)
  9. 西北大学应用计算机自考,西北大学自考的官方网站是???
  10. signaling hbbtv info in TS