版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
边缘计算与智能视觉应用7.1OpenCV计算机视觉基础讲课人:XXX时间:20XX年12月30日延时符AboutUs目录OpenCV简介01OpenCV安装02OpenCV示例03OpenCV简介01OpenCV简介OpenCV是一个开源计算机视觉和机器学习软件库,全称OpenSourceComputerVisionLibrary开源计算机视觉库,由一系列C函数和少量C++类构成,是一个跨平台的开源计算机视觉库。OpenCV简介OpenCV官网资源OpenCV安装02OpenCV安装1.使用pip安装OpenCV-Python:pipinstallopencv-python~$pythonPython2.7.12(default,Nov122018,14:36:49)[GCC5.4.020160609]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importcv2>>>cv2.__version__'3.4.5'OpenCV安装3.源码编译安装方式:源码编译安装是从项目的官方仓库获取源代码,并在本地环境中编译和安装,这种方式提供了更高灵活性和控制力,但技术门槛高,需要自己解决所有依赖关系,其安装过程是首先确保系统中已安装必须的依赖库:gitclone/opencv/opencv.gitcdopencvmkdirbuildcdbuildsudocmake-DCMAKE_BUILD_TYPE=Release-DCMAKE_INSTALL_PREFIX=/usr/local/include/opencv2..OpenCV安装2.使用预编译的包安装:sudoaptinstalllibopencv-devpython3-opencv>>>cv2.__version__'3.4.5'>>>importnumpy>>>numpy.__version__'1.16.6'同样,通过cv2.__version__和numpy.__version__查看版本信息OpenCV示例03OpenCV示例1.绘制矩形cv2.rectangle()函数用于绘制矩形,语法格式如下:#test7-1.py绘制矩形importnumpyasnpimportcv2img=np.zeros((200,320,3),np.uint8)cv2.rectangle(img,(20,20),(300,180),(255,0,0),5)cv2.rectangle(img,(70,70),(250,130,(0,255,0),-1)cv2.imshow(‘draw’,img)cv2.waitKey(0)OpenCV示例2.绘制圆cv2.circle()函数用于绘制圆,其语法格式如下:cv2.circle(img,center,radius,color[,thickness[,lineType[,shift]]])importnumpyasnpimportcv2img=np.zeros((200,320,3),np.uint8)cv2.circle(img,(160,100),80,(255,0,0),5)cv2.circle(img,(160,100),40,(0,255,0),-1)cv2.imshow('draw',img)cv2.waitKey(0)OpenCV示例3.绘制文本cv2.putText()函数用于绘制文本,其语法格式如下cv2.putText(img,text,org,fontFace,fontScale,color[,thickness[,lineType[,bottomLeftOrigin]]])importnumpyasnpimportcv2img=np.zeros((200,320,3),np.uint8)+255font=cv2.FONT_HERSHEY_SCRIPT_SIMPLEXcv2.putText(img,'edge',(50,100),font,2,(255,0,0),2,cv2.LINE_AA)cv2.imshow('draw',img)cv2.waitKey(0)OpenCV示例4.角检测cv2.cornerHarris()函数根据哈里斯角检测器算法检测图像中的角,基本格式如下:dst=cv2.cornerHarris(src,blockSize,ksize,k)importcv2importnumpyasnpimg=cv2.imread('image01.jpg')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)grap=np.float32(gray)dst=cv2.cornerHarris(gray,8,7,0.01)img[dst>0.02*dst.max()]=[0,0,255]cv2.imshow('dst',img)cv2.waitKey(0)OpenCV示例4.Canny边缘检测基本格式如下:dst=cv2.Canny(src,threshold1,threshold2[,apertureSize[,L2gradient]])importcv2importnumpyasnpimg=cv2.imread('butterfly.jpg')cv2.imshow('img',img)img2=cv2.Canny(img,100,150)cv2.imshow('Canny',img2)cv2.waitKey(0)cv2.destoryAllWindows()谢谢观看Thankyouforwatching边缘计算与智能视觉应用7.2图像基础算法讲课人:XXX时间:20XX年12月30日延时符AboutUs目录图像采集与标记01图像边缘检测03图像转换与变换02图像采集与标记01图像采集与标记图像采集原理是将物理世界中的可见光或其他电磁波转化为数字信号的技术过程,基于AiCam智能视觉的图像采集是利用边缘网关的摄像头实现图像数据采集,然后再通过OpenCV视觉框架进行图像和视频的处理,最后将采集的图片使用FlaskWeb框架推流到前端展示基于AiCam智能视觉采集图像采集与标记基于Aicam框架的图像采集流程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在AiCam工程添加算法文件,在实验前端应用添加static\image_capture。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。基于Aicam框架的图像标注流程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在AiCam工程添加绘制直线和矩形image_lines_and_rectangles.py、绘制圆和椭圆image_circle_and_ellipse.py、绘制多边形image_polygon.py、显示文字image_display_text.py算法文件,在算法实验前端应用添加static\image_marking。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。图像采集与标记实验结果:图像转换与变换02图像转换与变换数字图像指的是用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值,像素是画面中最小的点,一般我们说的分辨率就是画面水平方向的像素值*画面垂直方向的像素值。(1)图像像素点:在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分量的取值范围均为0~255,下表是常用颜色的RGB分量值。(2)灰度化:灰度化就是让像素点矩阵中的每一个像素点都满足下面的关系:R=G=B此时的这个值叫做灰度值。(3)二值化二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。图像转换与变换实现过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在AiCam工程添加灰度化、简单二值化、自适应二值化、图像旋转、图像镜像、图像缩放和图像透视算法文件,在实验前端应用添加图像转换static\image_conversion和图像变换static\image_transformation算法文件。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0图像转换与变换实验结果验证:图像边缘检测03图像边缘检测边缘检测是图像处理和计算机视觉中的基本问题,也是数字图像处理中的一个重要步骤,目的是标识数字图像中亮度变化明显的点,绘制出边缘线条。边缘检测结果通常为黑白图像,图像中的白色线条表示边缘,常见的边缘检测算法有canny边缘检测、Sobel边缘检测和Laplacian边缘检测等图像边缘检测实现过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在工程添加image_edge_detection.py算法文和实验前端应用static\image_edge_detection算法文件。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0图像边缘检测实验结果:输入00:4001/static/image_edge_detection/index.html进入图像边缘检测验证,点击菜单选择“图像边缘检测”,将会返回图像边缘的实时视频图像。谢谢观看Thankyouforwatching边缘计算与智能视觉应用7.3图像基础应用讲课人:XXX时间:20XX年12月30日延时符AboutUs目录颜色与形状识别01数字与二维码识别02人脸检测与人脸关键点03人脸识别与目标追踪04颜色与形状识别01颜色与形状识别颜色识别主要涉及从图像中提取并区分不同的颜色特征,通常包括颜色空间转换、颜色筛选、颜色特征提取以及颜色的匹配四个步骤。颜色空间转换是将图像从RGB颜色空间转换到更适合颜色分析的颜色空间,本节主要用到的是HSV,即色相(Hue)、饱和度(Saturation)、亮度(Value)颜色与形状识别实现过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在工程添加image_color_recognition.py算法文件和algorithm\image_shape_recognition\image_shape_recognition.py算法文件,添加实验前端应用static\image_color_recognition和image_shape_recognition算法文件。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0颜色与形状识别实验结果:数字与二维码识别02数字与二维码识别数字识别流程一般包括图像预处理、特征提取、分类和后处理四个步骤,预处理主要包括图像获取、灰度化、二值化等,特征提取包括获取轮廓特征点、循环轮廓特征点、提取特征,分类可以基于传统机器学习分类器或者深度学习模型,本节实验主要采用传统机器学习分类器KNN,后处理主要是画分类标签和画识别框。二维码是一种矩阵式条码,二维码识别主要是从二维码中读取信息,主要包括图像获取、图像预处理、定位与分割、解码与纠错、信息展示五个步骤,本节实验图像预处理主要是对图像就行灰度化处理,以便更好地提取二维码信息,定位与分割主要是识别出二维码的位置,并将其从图像中分割出来,借助pyzbar.decode库定位二位码的位置,使用cv.rectangle将位置信息的识别框标注到图像中,实现二维码的检测,在根据pyzbar中提供的data.decode方法将二维码结果进行字符转换,然后显示识别内容。数字与二维码识别实现过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在AiCam工程添加image_mnist_recognition.py算法文件和algorithm\image_qrcode_recognition\image_qrcode_recognition.py。在AiCam工程添加算法实验前端数字识别应用static\image_mnist_recognition和二维码识别应用static\image_qrcode_recognition\image_qrcode_recognition.py。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0数字与二维码识别实验结果:数字识别二维码识别人脸检测与人脸关键点03人脸检测与人脸关键点人脸检测是从图像或视频流中自动识别和定位人脸,并用一个边界框将其圈出来,通常包括图像预处理、候选区域生成、特征提取、分类器应用和后处理五个步骤:灰度化cv.cvtColor原始图像image调整图像大小imutils.resize检测人脸detector循环处理一张图片中的人脸返回人脸位置信息face_utils.rect_to_bb标注人脸位置cv.rectangle人脸检测与人脸关键点人脸关键点检测对于面部情感和面部识别至关重要。我们的脸有几个可以识别的特征,比如眼睛、嘴巴、鼻子、脸部轮廓、眉毛等等。当我们使用DLib算法检测这些特征时,我们实际上得到了每个特征点的映射,利用dlib库可以实现人脸关键点的检测和标注.灰度化原始图像调整图像大小检测人脸循环处理一张图片中的人脸返回人脸位置信息标注人脸位置构建人脸68关键点矩阵标注人脸关键点标记人脸68个关键点人脸检测与人脸关键点实现过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在AiCam工程添加image_face_detection.py算法文件、Dlib特征点数据集shape_predictor_68_face_landmarks.dat、以及人脸关键点image_face_detection.py算法文件、hape_predictor_68_face_landmarks.dat的Dlib特征点数据集。然后,在AiCam工程添加人脸检测和人脸关键点检测的算法实验前端应用文件:static\image_face_detection和static\image_key_detection。最后,在前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0人脸检测与人脸关键点实验结果:人脸检测人脸关键点检测人脸识别与目标追踪04人脸识别与目标追踪人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。人脸识别中包含人脸注册和人脸比对,主要利用opencv中自带的face_recognition人脸识别库,主要的算法流程如图:(1)人脸注册获取面部编码图像数据从内存读取图片并转码判断是否有人脸保存图像中人脸特征人脸识别与目标追踪(2)人脸比对:检测人脸原始图像灰度化获取人脸特征编码人脸特征进行对比判定对比结果不存在该人脸标注人脸框显示unkowncv.putText存在该人脸标注人脸框显示人脸名称人脸识别与目标追踪目标追踪:阈值化原始图像用KNN进行分割腐蚀膨胀处理获取轮廓获取轮廓的外接矩形计算轮廓面积可以设置面积阈值大于阈值的运动物体会被追踪运动物体识别标注人脸识别与目标追踪实验过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,添加image_face_recognition.py算法文件、image_motion_tracking.py目标追踪算法文件、以及haarcascade_frontalface_alt.xml人脸检测级联分类器。然后,在AiCam工程添加算法image_face_recognition和image_motion_tracking实验前端应用。接着,视频流实时推理,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下:00:4001/stream/[algorithm_name]?camera_id=0最后,人脸注册请求,前端应用中截取拟注册的人脸图片和人脸名称,通过ajax调用将图片和数据传递给算法进行人脸注册。人脸识别与目标追踪验证结果:谢谢观看Thankyouforwatching边缘计算与智能视觉应用7.4深度学习应用讲课人:XXX时间:20XX年12月30日延时符AboutUs目录人脸检测01手势识别03人脸识别02人脸检测01人脸检测人脸检测为目标检测的特例,是商业化最早的目标检测算法,通过RetianFace模型的深度学习得出每个脸的位置、大小和各个主要面部器官的位置信息,并根据得到的信息,进一步提取每个人脸中所包含的身份特征,并将其与已知的人脸进行对比,从而输出人脸检测结果。人脸检测实验过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着在工程添加模型文件models\face_detection和retinaface.bin/retinaface.param人脸检测。然后,在AiCam工程添加algorithm\face_detection\face_detection.py算法文件和模型接口文件algorithm\face_detection\facedet.so。接着在AiCam工程添加算法实验static\face_detection前端应用。最后,前端应用中算法接口的调用采用RESTFul接口获取处理后的视频流,数据返回为base64编码的图片和结果数据。访问url地址格式如下(IP地址为边缘计算网关的地址):00:4001/stream/[algorithm_name]?camera_id=0人脸检测实验结果:人脸坐标及关键点坐标信息人脸识别02人脸识别人脸识别就是计算机通过视频采集设备获取识别对象的面部图像,再利用核心算法对其脸部的五官位置、脸型和角度等特征信息进行计算分析,进而和自身数据库里已有的范本进行对比,最后判断出用户的真实身份。人脸识别实验过程:首先,在AiCam工程的配置文件添加摄像头(config\app.json)。接着,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论