计算机视觉OpenCv学习系列:第一部分、绪论
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
第一部分、绪论
第一节、计算机视觉发展历程
1.计算机视觉发展历史
计算机视觉的发展从古代小孔成像到近现代的相机再到后来成为一个正式学科计算机视觉其实就是两方面内容重建
和识别
。
Pascal VOC是一个做计算机视觉的基础数据集包括图像分类图像识别语义分割等等。
2012年之后人们逐渐讲计算机视觉迁移到了深度学习领域。
未来的世界肯定都是在像素
中的而这些都离不开计算机视觉。
2.计算机视觉的主要任务
早期计算机视觉主要研究领域是重建。
2012年之后计算机视觉在感知和重建两个领域受到了深度学习影响快速发展。
目标是通过图灵测试
。即达到和人类视觉一模一样的感知和重建
3.计算机视觉的应用场景
- 自动驾驶/辅助驾驶
- 机器视觉-AI+机构(主要是视觉的算法) / 工业质检智能
- 安防监控-人脸识别 / 火灾监控 / 异常监控 (主要是一些人不好去实现的监控比如24h监控火灾现场的监控)
- 其他更多行业(尤其在生物医药的细胞检测病理切片等等应用非常广泛)
所以说计算机视觉已经从一个简单的学科变到落地在千行百业。
第二节、计算机视觉框架
我们如何把现在的计算机视觉的框架应用到我们的实际使用中来。
1.早期计算机视觉框架概述
Matrox mil
在机器视觉领域至今依然很好用。
Halcon
的框架也是做机器视觉非常好用的一个框架到现在做一些机器视觉也很好用。
Opencv
到现在已经集成了很多的传统框架而且是开源的。
VisionPro
也是现在很常用的一个机器视觉的框架。
注意只有OpenCV是开源免费的其他三个都是商业收费的。
右面这些是把OpenCV包在各种东西中使用。
有了深度学习之后将OpenCV应用到深度学习就是下面这些。左图是深度学习模型的训练框架右图是专门针对视觉的部署框架。
2.当前主流的框架与路线
注意就是只有OpenCV是开源免费的。
深度学习只有把训练框架和部署框架结合起来才能更好的使用。
在计算机视觉领域主流的语言就是python和c++。这两个语言都要会
3.计算机视觉框架的未来趋势
现在的一些趋势
- 低代码平台流行趋势明显原来很多行的代码现在几行就可以实现
- 传统视觉跟深度学习整合趋势明显
- 算法设计流程化/可视化
- 算法模块易用性跟通用性
- 计算资源异构化支持趋势
- 深度学习模型训练简捷化对于代码能力比较弱的可以在模型调参调优方面搞得好一点不用自己写深度学习的模型
未来的一些趋势
- 无代码化不是不写代码而是对于算法的代码可以复用只需要写一些简单的调用流程
- 算法设计流程可视化
- 导出部署支持多种语言
- 计算资源支持异构化算法model zoo丰富化本地与云端模型市场就是说提供一个hub这种开源平台可以在上面上传自己写的包丰富model
- 开发者都可以贡献算法
第三节、OpenCV框架
1.OpenCV的发展历史
OpenCV1.0是C语言的接口到了OpenCV2.0变成C++的接口去避免一些内存泄漏的问题。
2012年就变成由开源社区来管理。
OpenCV4.x与之前的OpenCV3.x差别是很大的如果在不同版本下写代码迁移的时候需要做修改建议用4.x来学习。
官方的话OpenCV4.x is more than OpenCV.
自豪
2.OpenCV模块架构
因为OpenCV是开源的所以了解模块架构之后我们在自己编译的时候可以勾掉一些自己不需要的模块。
非官方版本的OpenCV也可以支持C#。
-
github开源的源码(c和c++) https://github.com/opencv
-
Tutorial教程https://docs.opencv.org/4.5.5/index.html
-
官方教程支持C++、Python
-
Opencv-python安装包对于课程学习安装这个就够了
-
Opencv-contrib-python安装包这个是包括一些扩展包的
3.OpenCV安装与支持
建议使用Python3.6.5是因为比较稳定和各种模块一起使用都没有不兼容的情况。
我使用的是Python3.9.12的版本使用Anaconda之后他是自己已经集成好的OpenCV具体如下
同时发现在Pycharm中引入Anconda包的pytorch之后他也自带了OpenCV。
Decould codelab平台英特尔® Developer Cloud for the Edge 概述 (intel.cn)
注意在验证邮箱的时候需要等一会它会自动去完成重定向。
如果登陆成功就是这个页面注意这个平台账号有效期一次只有30天我们需要提前去延期不然会账号数据丢失。
登录完成之后点击下方的jupyter教程
的链接然后点击OpenCV Tutorial
。
然后就会进入一个类似jupyterlab的地方注意教程中的这些地址是非常关键的。
注意这个实验室平台里已经集成了各种包我们就不需要自己去配包了
示例代码中这一句非常关键意思是我们读入的cv图片是BGR的我们需要先把他转换成RGB再使用。
在Launcher中我们可以选择使用的版本类型我是用的是下面红框中的版本。
写一个简单的代码输出data中自带的一张图片如果不转换BGR为RGB效果如下面第二个图所示
import cv2 as cv
import matplotlib.pyplot as plt
src = cv.imread("./data/cat.jpg") # BGR格式读入
rgb = cv.cvtColor(src,cv.COLOR_BGR2RGB)
plt.title("OpenCV Hello a cat")
plt.imshow(rgb)
学习参考
本系列所有OpenCv相关的代码示例和内容均来自博主学习的网站opencv_course