本文将共享保存及时指标检测遵循的程序,包括将指标信息逐帧保存到.txt文献中、逐帧输出检测遵循图片、以及奈何保存通盘检测图片(包括视线中无指方向帧)。
目次
0.准备
1.指标信息保存
2.检测图片保存
3.保存通盘帧
0.准备本文以单录像头及时指标检测进行演示,可是对多录像头及时检测一样适用。奈何进行及时检测这里就不再类似,详备的终了法子不错看我之前写的博客:
使用YOLOv5终了单录像头及时指标检测_Albert_yeager的博客-CSDN博客
使用YOLOv5终了多录像头及时指标检测_Albert_yeager的博客-CSDN博客
1.指标信息保存这个施行上是YOLOv5工程自带的功能,可是需要通过号令行的方法运转能力使用。在末端中运转下方教导,即可运转检测代码,并完成指标信息保存
python detect.py --weights yolov5s.pt --source 0 --save-txt
图片
图中 1 是调用腹地录像头进行及时指标检测(不错改成USB录像头或IP录像头,具体看我之前的博客);2 是在pycharm中灵通末端;3 是之前提到需要运转的教导。
有几个细节需要强调:末端运转后重点击一下及时检测窗口,按键盘上的 'q’ 界限检测,注目是在英文小写情景下按q,我在运转圭臬时输入法会自动切换到汉文,这个技艺按q是无效的,同期英文大写情景的Q亦然无效的(因为q和Q的ASCII码值不同),固然这是代码设定的,不错改成别的字母界限。紧迫的是,独一通过这种方法,能力浮浅保存检测视频,如若平直关掉软件界限会使保存的视频文献无法灵通。
南通雅文纺织品有限公司运转完成后,会在.../runs/detect 文献目次下生奏凯率:
图片
0.mp4 是及时检测的遵循视频, 大连和拓自动化技术有限公司labels中等于每帧的指标信息, 汕头市中源贸易有限公司以.txt局势保存(如若以60帧的速率运转,浙江神鹰集团有限公司每秒就会生成60个.txt文献)。
图片
粗率灵通一个文献, 海博工具(商丘)有限公司不错看到是个2行5列的矩阵, 贵阳宸邦商贸有限公司这标明检测到了2个指标,每一瞥暗示对应指方向属性,第一列是标签名(等于磨真金不怕火的技艺的类别标签序号,这里遴荐官方的yolov5s.pt进行检测,0对应'person’),后头四列循序为xcenter ycenter w h(框中心的x、y坐标,绝缘材料以及框的宽、高),均为归一化数值。
2.检测图片保存工程自己并不具有保存及时检测逐帧图片的功能,因此需要自行添加一些代码。
最初界说图片保存旅途:
####################################保存及时检测图片################################pic_dir = str(save_dir) + '/pic'if not os.path.exists(pic_dir): os.makedirs(pic_dir)pic_path = pic_dir + '\\' + str(p.stem) + ('' if dataset.mode == 'image' else f'_{frame}')##################################################################################
注目添加位置为detect()函数中位置界说部分:
图片
浙江振迪洁具有限公司然后添加帧保存代码
##############################只保存含指方向及时检测图片#################################pic = (int(xyxy[0].item()) + int(xyxy[2].item())) / 2if pic != 0: cv2.imwrite(pic_path + f'{p.stem}.jpg', im0)else: im1 = cv2.imread('no.jpg', 1) cv2.imwrite(pic_path + f'{p.stem}.jpg', im1)#####################################################################################
注目添加位置为detect()函数中写遵循部分:
图片
仍然通过号令走时转代码(平直运转也能保存图片)这么既能保存标签又能保存图片,况且两者是相对应的,轻视调用。
python detect.py --weights yolov5s.pt --source 0 --save-txt
运转后不错看到检测遵循中有三个文献,标签、帧图片、及时检测视频。
图片
pic文献夹中是通盘包含指方向帧,不错发现,pic中图片数目和labels中标签数目交流,况且是逐一双应的关联。
3.保存通盘帧上述程序只可保存包含指方向帧,这是因为保存有关的代码添加在for轮回下,这就导致独一检测到指标,才会扩充标签和帧图片的保存。因此如若要保存通盘帧(不仅仅检测到指方向帧),必须将保存图片帧的代码提到for除外。
图片
注目掉只保存含指标图片的代码(其实留着也行,如若需要指标出当前输出图片中带检测框的话提倡留着)
图片
添加代码:
# ##################################保存通盘检测图片######################################cv2.imwrite(pic_path + f'{p.stem}.jpg', im0)# #####################################################################################
注目添加位置要在for除外(原因之前讲了)
图片
仍然通过号令走时转代码(平直运转也能保存图片)这么既能保存标签又能保存图片。
python detect.py --weights yolov5s.pt --source 0 --save-txt
运转后不错看到检测遵循中有三个文献,标签、帧图片、及时检测视频。
图片
此时,pic文献夹中就包含了通盘帧的图片(指标出当前不带检测框)。
再次诠释,如若需要指标出当前输出图片中带检测框的话保留2中帧保存的代码即可(因为含指方向帧保存代码在3中保存代码之后扩充,但保存图片的称号交流,因此会把不带检测框的图片遮盖掉)。
肄业路上绝缘材料,你我共勉(๑·̀ㅂ·́)و✧
本站仅提供存储管事,通盘内容均由用户发布,如发现存害或侵权内容,请点击举报。