PyTorch深度学习项目教程课件:食品加工人员异常行为检测_第1页
PyTorch深度学习项目教程课件:食品加工人员异常行为检测_第2页
PyTorch深度学习项目教程课件:食品加工人员异常行为检测_第3页
PyTorch深度学习项目教程课件:食品加工人员异常行为检测_第4页
PyTorch深度学习项目教程课件:食品加工人员异常行为检测_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PyTorch深度学习项目教程

食品加工人员异常行为检测TEXTTRANSLATION要点:Transformer、自注意力机制、自然语言处理、中文分词、词向量化、位置编码

项目背景ProjectBackground问题:目前我们已经学会了多个骨干网络,例如ResNet、VGG、Transformer等,实际问题一般为基于骨干网络+任务头的形式进行,如何实现不同的任务头解决具体问题,例如目标检测?解决:相比自己编写算法,有很多成熟的方案,在能够自己编写神经网络之前,学习成熟的框架,无疑可以加快解决实际问题,事实上,自行创建神经网络模型,在实际工作中非常少见。因为神经网络模型需要大量的数据和实验来验证,而大多数的初学者并不具备相应的实验环境。站在巨人的肩膀上,先传承后创新,是个人技术进步行之有效的方法。知识目标KnowledgeObjectives理解目标检测的基本概念,包括其技术背景和应用场景。学习数据标注的方法和技巧,包括如何准确地识别和标记目标。掌握目标检测算法的开发流程,从数据准备到模型训练再到部署的整个过程。熟悉YOLO(YouOnlyLookOnce)目标检测算法的基本原理和关键特性。能力目标AbilityGoals能够熟练使用数据标注软件,进行有效的数据预处理工作具备独立下载、安装和使用不同版本的YOLO目标检测算法框架的能力学会使用YOLO算法进行目标检测,并能够针对具体场景调整参数以优化性能素养目标ProfessionalAttainments实战能力:能够将理论知识应用于实际项目,具备解决实际问题的能力。自主学习能力:具备独立下载、安装和使用相关软件和框架的能力,能够自主学习新技术。团队合作:在项目开发过程中,能够与他人有效沟通和协作,完成团队任务。创新思维:在项目开发中能够运用创新思维,探索新的解决方案。社会责任感:在开发与食品安全相关的系统时,学生需要充分认识到其对社会和公众的影响,培养良好的社会责任感。目录任务1理解目标检测需求任务2数据采集及标注任务3训练YOLO模型任务4采用YOLO进行异常行为推理任务5掌握目标检测流程01任务1理解目标检测需求1.1目标检测的概念目标检测是指获取图形中某个兴趣物体的位置和类别。目标检测包含两层含义:1)判定图像上有哪些目标物体,解决目标物体存在性的问题;2)判定图像中目标物体的具体位置,解决目标物体在哪里的问题。1.2目标检测需要解决的问题目标检测是分类+回归问题的综合框内是何物:分类问题框在哪里:回归问题,预测4个变量:中心点x,y,框大小w,h1.3目标检测的框架本项目采用的目标检测开源算法为YOLO,由约瑟夫·雷德蒙与2015在《YouOnlyLookOnce:Unified,Real-TimeObjectDetection》论文(简称YOLO)中提出,YOLO经过多年的发展,版本更迭异常活跃。我们以YOLOV8为例,来完成食品加工异常行为检测的项目。YOLOV8模型较大,其文档位于:

02任务2数据采集及标注2.1数据采集提供的数据集位于:

扩充的数据集:2.1数据采集自行采集数据集的方法:defvideo2img(video_path,img_path,img_format='jpg'):

'''

视频提取图片

'''

ifnotos.path.exists(video_path):

print("文件不存在:",video_path)

return

video_file_name=os.path.basename(video_path)

folder_name=os.path.join(img_path,video_file_name.split('.')[0])

#创建输出文件夹

try:

os.makedirs(folder_name,exist_ok=True)

exceptExceptionase:

print("文件夹创建失败:",folder_name,e)

vc=cv2.VideoCapture(videoPath)

count=0

rval=vc.isOpened()

whilerval:

rval,frame=vc.read()

ifnotrval:

break

pic_path=folder_name+"/"+str(count)+"."+img_format

#这里将所有的帧都导出了,如果文件比较大的情况下会比较多,这里可以根据自己的需求做一些限制。

cv2.imwrite(pic_path,frame)

count+=1

vc.release()

print(videoPath,"读取完成")

本项目完成后,可尝试如何过滤无效的视频帧2.2数据标注完成数据采集后,将得到的原始图像数据保存在同一个文件夹中,即可进行数据的标注工作。常见的数据标注工具有LabelMe、LabelImg、LabelAnything、PixelAnnotationTool、VATIC、CVAT等LabelMe的安装与使用:condaactivatelearn-pytorchpipinstalllabelmelableme2.2数据标注打开文件目录创建标注矩形框标注目标LabelMe的使用设置标签2.2数据标注标注结果保存:单击【File】菜单,在弹出的下拉菜单中,默认【SaveWithImageData】选项是勾选状态,这里取消,否则保存的标注文件中会包含图片,然后单击【Save】菜单项,保存标注数据为Json文件格式,标注文件名和图像文件名保持一致取消“SaveWithImageData”选项通过“D”移动到下一张图像、“A”移动到前一张图像2.3数据集构建

Yolo的数据格式(cx,cy,w,h)LabelMe数据格式:pt1(x,y),pt2(x,y)需要将LabelMeJson文件格式转为YoloTxt文件格式:10.83775252525252520.40530303030303040.033933080808080860.0589225589225589203任务3训练YOLO模型3.1YOLO工具包的安装

3.1YOLO工具包的安装解压后PyCharm中打开【File】→【Settings】→【ProjectInterpreter】→【AddInterpreter】【CondaEnvironment】→【Useexistingenvironment】切换到“AnacondaPrompt”控制台,切换目录到“ultralytics-main”安装文件夹,并输入如下指令:pipinstall-e.3.1YOLO工具包的安装pipinstall-e.是pip命令的一种使用方式,它表示在当前目录下安装一个可编辑包。具体含义如下:pip:Python的软件包管理器,用于安装、卸载和管理Python包;install:pip命令的一个子命令,用于安装Python包;-e:表示使用可编辑模式安装包,即把包安装到当前目录,并且可以通过编辑包代码实时调试;.:表示安装当前目录下的包。3.2修改配置文件#Train/val/testsetsas1)dir:path/to/imgs,2)file:path/to/imgs.txt,or3)list:[path/to/imgs1,path/to/imgs2,..]

path:D:/works/dev/fuxing-data/chu-all#datasetrootdir

train:images/train#trainimages(relativeto'path')128images

val:images/train#valimages(relativeto'path')128images

test:#testimages(optional)

#Classes

names:

0:nohat

1:hat

2:nomask

3:mask

4:nosuit

5:suit

6:smoke

7:mouse创建ultralytics/cfg/datasets/coco128-chu.yaml,从coco128.yaml拷贝并修改:我们只标记了2类,YOLO会根据标签来自行缩放为2类目标检测。3.3训练模型fromultralyticsimportYOLO

deftrain():

#加载模型

model=YOLO('../cfg/models/v8/yolov8n.yaml')#从YAML构建新模型

#model=YOLO('yolov8n.pt')#加载预训练模型(推荐用于训练)

#model=YOLO('yolov8n.yaml').load('yolov8n.pt')#从YAML构建并转移权重

#训练模型

results=model.train(data='../cfg/datasets/coco128-chu.yaml',epochs=2,imgsz=640)

if__name__=='__main__':

train()如此少的代码即可完成YOLO模型的训练,我们的任务只需要认真标记数据3.3训练模型YOLOV8n网络层次一共225层,300多万参数,采用了类似ResNet的设计思想,训练结束后,训练日志记录在当前目录对应的“runs”文件夹下:3.3训练模型“runs”文件夹下的检测结果3.3训练模型“runs”文件夹下的检测结果3.3训练模型模型输入图像尺寸参数个数算力要求yolov8n640像素320万8.7flopsyolov8s640像素1120万28.6flopsyolov8m640像素2590万78.9flopsyolov8l640像素4370万165.2flopsyolov8x640像素6820万257.8flopsyolov8n主要针对嵌入式设备,例如英伟达JsetonNano进行设计,训练时间短,硬件要求较低。实际项目上,可以改为yolov8s、yolov8m、yolov8l、yolov8x等参数。对应模型大小如下表所示,模型越大,检测准确率越高:04任务4采用YOLO进行异常行为推理4采用YOLO进行异常行为推理fromultralyticsimportYOLO

#加载模型

model=YOLO('best-1.pt')

if__name__=='__main__':

#训练模型

results=model('D:/2.png',save=True)

Boxes=results[0].boxes

print(Boxes.cls)

print(results)推理代码精简明了但推理效果不俗,广泛应用于实际项目05任务5掌握目标检测流程5目标检测流程5.1数据集建立及图像标注我们需要搜集待检测目标的样本,并对样本进行人工标注,得到图像位置及类别的真实值(GrouthTruth)监督学习5.2候选区域划分将图像划分为多个网格的方式,并以每个网格中心点,生成多个大小不一的矩形框,这些矩形框被称为锚框目标候选区域选取图5.3图像特征提取在图像特征提取部分,一般通过卷积神经网络,如ResNet、VGG等进行特征提取也可以自定义特征提取网络结构5.4目标位置及类别的预测主要通过神经网络进行分类和回归预测,输出矩阵维度一般为:[BatchSize×候选锚框数量×(4+类别数量)]:每个候选锚框的输出为:1)锚框原始位置:[cx,cy,w,h],其中(cx,cy)为中心坐标,w为矩形框宽度,h为矩形框高度;2)分类预测结果:锚框标记位置属于某个类别的概率,如[0.11,0.23,0.8,…],数组大小为所有类别总数;3)回归预测结果:锚框位置偏移值[∆x,∆y,∆w,∆h],为锚框原始位置与标注类别所在矩形框之间的偏移值5.5训练

5.6预测结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论