赞
踩
去GitHub下载YOLOV5的官方源码(https://github.com/ultralytics/yolov5),然后在pychram终端输入pip install -r requirements.txt命令安装所需的依赖库。
网上下载白敬亭和赵丽颖两人图片,
使用LabelImg软件对人物头部使用矩形框
选择并打上标签BaiJingTing或ZhaoLiYing。
标注完会生成相关标注文件,再将原
图像和标注文件按照8:2划分为训练
集和验证集。
修改data目录下的相应的voc.yaml文件。箭头1中需要将训练和测试的数据集的路径填上;箭头2中需要检测的类别数,我这里是识别白敬亭和赵丽颖,所以这里填写2;最后箭头3中填写需要识别的类别的名字(必须是英文,否则会乱码识别不出来)。
修改models目录下的yolov5s.yaml文件中的相应参数,只需要修改如图中的数字就好了,这里是识别两个类别。
首先是模型的训练轮次epochs,为了节省时间且能反应计算机性能和结果准确度,我们选择100轮,batch-size就是一次往GPU塞多少张图片了,决定了显存占用大小,workers指数据装载时cpu所使用的线程数。后两者需要根据自己电脑的CPU和GPU大小进行合理设置,以达到最佳性能。
如果workers设置不对,会出现GPU显存溢出的报错
通过设置device参数,可以选择训练所使用的是GPU还是CPU。
CPU训练完成,100轮次花费约6个小时
GPU训练完成,100轮次训练花费0.84小时(约50分钟)。
给定一张图片,能够识别出是白敬亭还是赵丽颖,并给出其头部位置和识别置信度
GPU(图像处理器)和CPU(中央处理器)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。
所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算。GPU加速是通过大量线程并行实现的。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。