版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机视觉--OpenCV图像处理教程第九章深度学习DEEPLEARNING内容要点:OpenCVDNN模块概述、YoloV8介绍、OpenCV与YoloV8的结合建议课时:4课时讲课人:宋桂岭讲课时间:2026年5月18日目录9.1OpenCVDNN模块概述理论+实操9.2Yolov8安装实际操作9.3行人检测项目实战9.4小结及作业总结作业019.1OpenCVDNN模块概述理论+实操9.1OpenCVDNN模块概述随着人工智能及深度学习视觉技术的快速发展,OpenCV从3.3版本就开始引入DNN模块,通过ONNX等多种格式支持对深度学习模型的加载和推理,并且支持OpenCL加速,非常方便用户使用,后端的推理引擎也支持多种选择。下一个版本OpenCV5.0不仅仅支持常规的图像分类、目标检测、图像分割和风格迁移功能,还引入上百个的计算机视觉任务。OpenCV中的DNN(DeepNeuralNetwork)模块是专门用于实现深度学习预测推理功能的模块,包括目标检测、图像分割任务等。OpenCV可以载入其他深度学习框架(例如PaddlePaddle、PyTorch等等)训练好的模型,并使用该模型进行预测。OpenCV的DNN模块主要有以下三点优势:轻量,由于DNN模块只实现了推理功能,它的代码量、编译运行开销与其他深度学习框架比起来会少很多。方便,DNN模块提供了内建的CPU和GPU加速且无须依赖第三方库。通用,DNN模块支持多种网络模型格式,因此用户无须额外进行网络模型的转换就可以直接使用,同时它还支持多种运算设备和操作系统。9.1OpenCVDNN模块概述OpenCV的深度学习模块位于/opencv/opencv_zoo,支持人脸检测、人脸识别、车牌识别、手势识别、目标追踪、文字识别等本教程前面所述计算机视觉任务的深度学习检测方法。以人脸识别为例,其代码位于/opencv/opencv_zoo/tree/master/models/facial_expression_recognition029.2YoloV8理论+实操9.2YoloV8Yolo(YouLookOnlyOnce)是当前目标检测领域性能最优算法的之一,几乎所有的人工智能和计算机视觉领域的开发者都需要用它来开发各行各业的应用。其优势在于又快又准,可实现实时的目标检测。YoloV8是Ultralytics公司于2023年1月10号推出的基于对象检测模型的新版本,它能够提供截至2023年1月最先进的目标检测性能,支持图像分类、物体检测、实例分割和姿态识别等任务,其源码地址位于:/ultralytics/ultralytics安装:condaactivateopencv4.7pipinstallultralyticsyolopredictmodel=yolov8n.ptsource='/images/bus.jpg'测试:039.3行人检测项目实战9.3行人检测除了OpenCV自身提供的深度学习模型库外,一般的深度学习框架都提供了ONNX文件导出程序,可以先将自身模型转成ONNX格式,再由OpenCV的dnn模块读取。ONNX(OpenNeuralNetworkExchange,开放神经网络交换格式)是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框可以采用相同格式存储模型数据并交互。ONNX的规范及代码主要由微软、亚马逊、Facebook和IBM等公司共同开发,支持加载ONNX模型并进行推理的深度学习框架有:
PyTorch、PaddlePaddle、Caffe2、MXNet、ML.NET、TensorRT、MicrosoftCNTK和TensorFlow等。fromultralyticsimportYOLO
#Loadamodelmodel=YOLO("yolov8n.pt")#exportthemodeltoONNXformatmodel.export(format="onnx",opset=12)YoloV8onnx格式文件导出方法:9.3行人检测importargparse
importcv2.dnnimportnumpyasnp
fromultralytics.yolo.utilsimportROOT,yaml_loadfromultralytics.yolo.utils.checksimportcheck_yaml
CLASSES=yaml_load(check_yaml('coco128.yaml'))['names']
colors=np.random.uniform(0,255,size=(len(CLASSES),3))①导入待检测类型:其中“coco128.yaml”在yoloV8的安装包内,以作者文件夹为例,位于D:\DevTools\anaconda\envs\opencv4.7\Lib\site-packages\ultralytics\datasets内9.3行人检测defdraw_bounding_box(img,class_id,confidence,x,y,x_plus_w,y_plus_h):label=f'{CLASSES[class_id]}({confidence:.2f})'color=colors[class_id]cv2.rectangle(img,(x,y),(x_plus_w,y_plus_h),color,2)cv2.putText(img,label,(x-10,y-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,color,2)②定义目标检测矩形框绘制函数:9.3行人检测defmain(onnx_model,input_image):model:cv2.dnn.Net=cv2.dnn.readNetFromONNX(onnx_model)original_image:np.ndarray=cv2.imread(input_image)[height,width,_]=original_image.shapelength=max((height,width))image=np.zeros((length,length,3),np.uint8)image[0:height,0:width]=original_imagescale=length/640blob=cv2.dnn.blobFromImage(image,scalefactor=1/255,size=(640,640),swapRB=True)model.setInput(blob)outputs=model.forward()outputs=np.array([cv2.transpose(outputs[0])])rows=outputs.shape[1]boxes=[]scores=[]class_ids=[]③定义OpenCVDNN目标检测主函数:9.3行人检测foriinrange(rows):classes_scores=outputs[0][i][4:](minScore,maxScore,minClassLoc,(x,maxClassIndex))=cv2.minMaxLoc(classes_scores)ifmaxScore>=0.25:box=[outputs[0][i][0]-(0.5*outputs[0][i][2]),outputs[0][i][1]-(0.5*outputs[0][i][3]),outputs[0][i][2],outputs[0][i][3]]boxes.append(box)scores.append(maxScore)class_ids.append(maxClassIndex)
result_boxes=cv2.dnn.NMSBoxes(boxes,scores,0.25,0.45,0.5)③定义OpenCVDNN目标检测主函数:9.3行人检测detections=[]foriinrange(len(result_boxes)):index=result_boxes[i]box=boxes[index]detection={'class_id':class_ids[index],'class_name':CLASSES[class_ids[index]],'confidence':scores[index],'box':box,'scale':scale}detections.append(detection)draw_bounding_box(original_image,class_ids[index],scores[index],round(box[0]*scale),round(box[1]*scale),round((box[0]+box[2])*scale),round((box[1]+box[3])*scale))
cv2.imshow('image',original_image)cv2.waitKey(0)cv2.destroyAllWindows()③定义OpenCVDNN目标检测主函数:9.3行人检测
if__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('--model',default='yolov8n.onnx',help='Inputyouronnxmodel.')parser.add_argument('--img',defau
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支架材料力学刺激促进骨改建的机制研究
- 2026校党考试题及答案
- 智慧社区综合管理平台建设指南
- 2026年新能源汽车智能电池回收政策报告
- 高中地理区域规划与可持续发展(高中地理学科)教学研究课题报告
- 2026年农业科技行业创新分析报告
- 医学26年:内分泌科指南更新解读 查房课件
- 广东省广州市白云区2021-2022学年七年级上学期期末历史试题(含答案)
- 2026年儿童情绪管理行业创新报告
- 超声微泡介导的干细胞归巢治疗心梗
- 丁螺环酮药物研究与应用
- 陕西省安全员C3证考试题库及答案
- 2025江苏卫生系统招聘考试(医学检验技术)强化练习题及答案
- 储能电站设备采购与管理方案
- 关于精益管理办法
- 2025年中国石化齐鲁石化招聘笔试备考题库(带答案详解)
- 人工智能 可信赖 第1部分:通则 征求意见稿
- 年产200吨高纯金属铯铷项目报告书
- 2025具身智能行业发展研究报告
- 各国国旗介绍课件
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
评论
0/150
提交评论