认识计算机视觉
一、计算机视觉的发展历史
- 最早可以追溯到墨子所作的小孔成像实验。
- 而现代的计算机视觉发展历史则于相机密切相关。
1966年MIT的马文·明斯基的学生实现了PC链接摄像机
1982年马尔发布了一本叫做《视觉》的书,这标志着计算机视觉成为了一门正式的学科
1999年,David Lowe发表SIFT特征相关论文
2001年,V&J发表基于HAAR特征的实时人脸检测
2005年,HOG特征提取的行人检测算法提出
2006年,Pascal VOC数据集发布
目标检测
语义分割
…
2012年,AlexNet模型赢得ImageNet图像分类比赛冠军
深度学习在视觉领域开始流行
计算机视觉+5G,未来世界信息都在像素中,离不开计算机视觉
二、计算机视觉的主要任务
- 早期,计算机视觉主要研究领域是重建。
- 2012年以后,计算机视觉在感知与重建两个领域都受到了深度学习的影响,进入了快速发展期。
- 计算机视觉的最终目标是通过图灵测试。
三、应用场景
- 自动驾驶、辅助驾驶
- 机器视觉-AI+机构/工业质检智能
- 安防监控-人脸识别/火灾监控/异常监控
- 其他更多行业
计算机视觉框架
一、早期计算机视觉框架概述
-
Matlab的历史最早可以追溯到1970年,早期作为数据处理工具箱,后期支持图像处理。
-
Matrox mil 1993年发布了第一个版本
-
Halcon最早可以追溯到1996年,至今有25年历史
-
OpenCV在1999年启动,在2006年发布了1.0版本(唯一一个免费的)
-
VisionPro 在2009年发布
此外还有一些其他的框架
- SimpleCV
- BoofCV
- Dlib
- JavaCV
二、深度学习计算机视觉框架
- Caffe
- Tensorflow
- Paddlepaddle
- Keras
除了以上的训练框架以后,还有一些部署框架。
![](https://i-blog.csdnimg.cn/blog_migrate/fe3ce473118f0e938ff28d3f50a12924.png)
三、当前计算机框架
四、计算机视觉框架的未来趋势
- 低代码平台
- 传统视觉与深度学习整合
- 算法设计流程化/可视化
- 算法模块易用性与通用性
- 计算机资源异构化支持趋势
- 深度学习模型训练简捷化
OpenCV框架
一、发展历史
- 1999年开始
- 2006年发布了1.0版本
- 2009年发布了2.0版本
- 2012年转入社区托管模式
- 2015年发布了3.0版本
- 2018年发布了4.0版本
- 截至2022年4月份,发布了4.5.5版本
二、模块架构
- 加速技术
- TBB
- PPL
- SSE
- CUDA
- UI(统一指令集)
- 系统支持
- Windows
- MacOS
- Linux
- 架构支持
- x86
- x64
- ARM
- RISCV
- GPU/CUDA
安装与支持
在安装opencv-python中,我也遇到很多困难,如电脑安装有多个ptrhon环境,如何安装编译器等,在这里我附上几个我觉得比较好的安装说明,由于我用的编译器是vscode,相对安装比较麻烦,有需要的也可以安装其他编译器,当然我也会将vscode的安装说明链接附上。
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
(这个是清华的镜像,有很多库或者插件都可以用这个下载,会快很多哦)
ps:这里再附一下国内的镜像源,下载成功概率会高很多吧应该
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 华中理工大学:http://pypi.hustunique.com/
- 山东理工大学:http://pypi.sdutlinux.org/
- 豆瓣:http://pypi.douban.com/simple/
如果用清华源还没成功就试试换成以上几个源,尤其是报错内容为:Exception: Traceback (most recent call last)的,这个错一般就是网络的问题或者源的,下文中使用清华源的指令都可以将清华源换成别的。。
还是报错的话,再试试指令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
图像读取与显示
一、理解图像
如果是灰度图像,就是单通道的;如果是彩色图像,就是三通道的。
二、图像读取与显示
import cv2 as cv
import numpy as np
imread函数:读取图像
imshow函数:显示图像
cv.imread(filename[,flag])
cv.imshow(winname, mat)
cv.waitKey(0) # 一直等待,知道任意一个键盘操作
cv.waitKey(1000) # 表示等待1000毫秒
三、实际操作
import cv2
import numpy as np
def show_img():
image=cv2.imread("D://1.png")
cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()
show_img()