一、认识计算机视觉

1.发展历史

•最早追溯到老子小孔成像

•现代1966年MIT的马文·明斯基的学生实现PC链接摄像机,标志计算机视觉作为一门学科开始发展

•1982.马尔文发布《视觉》标志着CV正式成为一门学科

•1999.David Lowe 发表SIFT特征相关论文,OpenCV收录使用

•2001.V&J发表基于HAAR特征的实时人脸检测算法

•2005.HOG提出特征提取的行人检测算法

•2006.Pascal VOC数据集发布

•2012.AlexNet模型赢得ImageNet图像分类比赛冠军,展现出深度学习在CV领域的应用前景

•未来世界离不开CV

2.主要任务

早期主要研究领域为重建

2012后,受深度学习影响重建感知快速发展

目标:通过图灵测试

3.应用场景

•自动驾驶/辅助驾驶

•计算机视觉-AI + 机构/工业质检检测

•形成全场景的行业应用

二、计算机视觉框架

1.计算机视觉框架

•Matlab . 追溯到1970年 . 支持图像处理

•Matrox mil . 1993年发布第一个版本

•Halcon . 追溯到1996 . CV领域应用最多,主流框架

•OpenCV . 1999启动,2006发布1.0版本 . 开源

•VisionPro . 2009年发布

传统计算机视觉框架

•SimpleCV

•BoofCV

•Dlib

•JavaCV

深度学习计算机视觉(训练)框架

•Caffe

•Tensorflow

•Pytorch

•Paddlepaddle

•Keras

深度学习计算机视觉(部署)框架

•OpenVINO

•TensorRT

•onnxruntime

•Deepface

•YOLO/DarkNet

•mmdetection

•Paddle-detection/seg/ocr

2.当前主流框架

•机器视觉方向-Halcon/VisionPro/Mil/OpenCV

•深度学习方向-tensorflow/pytorch/paddlepaddle + openvino/tensorRT/onnxruntime

•主流语言Python/C++

3.计算机视觉框架的未来趋势

•低代码平台流行趋势明显

•传统视觉跟深度学习整合趋势明显

•算法设计流程化/可视化

•算法模块易用性跟通用性

•计算资源异构化支持趋势

•深度学习模型训练简捷化

三、OpenCV

•github: https://github.com/opencv

•Tutorial: https://docs.opencv.org/4.5.5/index.html

1.发展历史

•OpenCV在1999年的开始开发….

•2006年 OpenCV1.0正式发布(C)

•2009年 OpenCV2.0正式发布(C++)

•2012年 社区托管模式(开源)

•2015年 OpenCV3.0正式发布(完善接口)

•2018年 OpenCV4.0正式发布

•2022年4月份,4.5.5版本

2.OpenCV模块架构

image-20221212200329994

3.OpenCV安装与支持

•Python SDK安装,推荐3.6.5

•OpenCV-Python安装 pip install opencv-python==4.5.4.60

​ (支持镜像安装-i https://pypi.tuna.tsinghua.edu.cn/simple)

•检查 pip list

python

Import cv2 as cv

cv.__version__

4.Intel Devcloud codelab使用

网址:devcloud.intel.com/edge(注册登录)

学习——教程——OpenCV Tutorial

四、图像读取与显示

计算机通过数值识别灰度或彩色图像

图像读取与显示

import cv2 as cv – 导入OpenCV支持

import numpy as np – 导入Numpy支持

•imread函数,读取图像

•imshow函数, 显示图像

•加载图像的通道顺序

cv.imread(filename[,flags])

​ -filename 表示文件路径

​ -[]内的参数表示可选,可以不填

cv.imshow( winname, mat) #BGR

​ -winname表示窗口标题

​ -mat 表示图像对象

cv.waitKey(0) #表示一直等待,直到任意一个键盘操作

cv.waitKey(1000) #表示等待1000毫秒即1秒

cv.destroyAllWindows() #关闭窗口并取消分配任何相关的内存使用。对于一个简单的程序,实际上不必调用这些函数,因为退出时操作系统会自动关闭应用程序的所有资源和窗口