电科2023夏令营视觉组学习内容2-OpenCV部分

LIMITI_SUMMER_CAMP_CV

github:GitHub - Zzzingzzz/LIMITI_SUMMER_CAMP_CV: 2023电子科技大学LIMITI机器人队夏令营视觉组线上学习内容

2023电子科技大学LIMITI机器人队夏令营视觉组线上学习内容,基于2022年视觉组经验编写

夏令营培训2——OpenCV基础学习

0. 安装OpenCV

本次夏令营重点进行OpenCV的一些简单学习

推荐安装版本OpenCV 4.5.1,同时安装OpenCV Contrib(注:OpenCV和OpenCV Contrib版本需要一致)

2024年更新:推荐安装版本为4.7.0,经测试若要使用opencv-dnn模块并使用cuda加速推理,则4.7.0版本是可正常工作版本。需要指出的是,4.7.0版本仅cuda推理可用,cpu推理不可用;而其他版本下则是cpu推理可用,cuda推理不可用。

opencv官网:https://opencv.org/

推荐使用Cmake-GUI安装

先下载一些依赖库

sudo apt-get install cmake cmake-gui
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libgtk2.0-dev libvtk7-dev
sudo apt-get install pkg-config

cmake-gui

  1. 选择opencv文件夹和新建build文件夹,然后点击configure

修改CMAKE+BUILD_TYPE为RELEASE

修改OPENCV_EXTRA_MODULES_PATH为/..自己的目录../opencv/opencv_contrib/modules,以安装opencv_contrib

勾选OPENCV_GENERATE_PKGCONFIG、OPENCV_ENABLE_NONFREE

若要使用cuda加速opencv-dnn推理,需再勾选WITH_CUDA、OPENCV_DNN_CUDA

再点击configure

此时可以再勾选CUDA_FAST_MATH和ENABLE_FAST_MATH

  1. 点击configure和generate,完成cmake配置
  2. 进入build文件夹,编译
sudo make -j4     #4线程编译
sudo make install #安装

1. 任务1——Mat

在电脑中随便选择一张图片,使用imread读取该图片,并使用imshow可视化该图片

  • 要求:掌握OpenCV基础Mat类型,使用cmake编译并运行

2. 任务2——摄像头和颜色

如果使用的是虚拟机,则需要从可移动设备中,将摄像头与主机断开连接,并连接至虚拟机上

使用VideoCapture打开一个摄像头

可以是电脑自带摄像头,也可以是usb外接摄像头(如果都没有,请参考IP摄像头调用手机摄像头

实时捕获摄像头图像数据,并将图片色彩空间转换到HSV色彩空间,实时提取出摄像头图像数据中的红色、蓝色、白色

  • 要求:学会调用摄像头捕获图像,并了解RGB、HSV等色彩空间,基于色彩空间学会颜色提取

3. 任务3——形态学操作

学习一些形态学操作,如膨胀、腐蚀、开运算、闭运算等

学习边缘提取(如Canny)和findContours函数,在任务二的基础上,实时提取出红色、蓝色、白色的轮廓,且利用形态学操作消除一些噪点(或一些面积过小的色块)

  • 要求:学会基础的形态学操作,辅助消除图像噪声等

4. 任务4——透视变换

学习掌握透视变换的原理

重点掌握getPerspectiveTransformwarpPerspective两个函数,拍摄一个物体(如A4纸),并利用透视变换校正视角为正视该物体

  • 要求:学会利用透视变换获取不同的视角

5. 任务5——DNN神经网络调用基础

此处使用的为yolov3网络,后续会开源yolov8网络的使用方法

阅读理解DNN神经网络调用的模板(dnn_template),会基于已经训练好的模型文件运行DNN神经网络

  • 要求:学会调用DNN神经网络模板,能切换不同的模型文件运行DNN神经网络进行识别

有关模型文件的训练可参考opencv_dnn模型训练

后续带*的任务是附加任务非必需任务,但对进一步理解图像处理有更深的帮助

*6. 任务6——查阅学习几个坐标系

自行查阅资料,了解图像坐标系、像素坐标系、相机坐标系、世界坐标系等几个坐标系之间的变换关系

*7. 任务7——查阅学习相机原理

深度相机(可以测量距离的相机)大致包含:双目深度相机、结构光相机、TOF相机等,请查阅学习这些相机的测距原理

1 个赞