YOLOv5实现目标计数
yolov5
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
项目地址:https://gitcode.com/gh_mirrors/yo/yolov5
免费下载资源
·
本文主要讲解如何使用YOLOv5实现目标计数。
在detect.py文件中这部分内容替换为下面代码:
# Write results+计数
count = 1
for *xyxy, conf, cls in reversed(det):
if save_txt: # Write to file
xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() # normalized xywh
line = (cls, *xywh, conf) if opt.save_conf else (cls, *xywh) # label format
with open(txt_path + '.txt', 'a') as f:
f.write(('%g ' * len(line)).rstrip() % line + '\n')
if save_img or view_img: # Add bbox to image
c = int(cls)# integer class分类数
label = '%s %.2f num: %d' % (names[int(cls)], conf, count)
plot_one_box(xyxy, im0, label=label, color=colors[int(cls)], line_thickness=3)
count += 1
原理比较简单,就是计算锚框数量,每打印一个框count计数+1(但是值得一提的是,这种方法是不区分类别的,后续我想办法按照类进行计数)。其中label变量记录需要展示的变量,原来是“标签名称+置信度”,修改之后展示的是“标签名称+置信度+计数”。如果还需要展示其它变量继续修改label即可。
yolov5-6.x版本和5.0略有差异,但原理相同,只要在detect.py文件进行以上修改即可在标签label中显示计数。加了“!!!”的地方就是要改的地方。
# Write results
count = 1 # !!!初始计数count=1
for *xyxy, conf, cls in reversed(det):
#...
#这里省略若干行代码
#...
if save_img or save_crop or view_img:
c = int(cls) # 分类数
label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f} {count}') # TODO 标签展示这里加了末尾的{count}
annotator.box_label(xyxy, label, color=colors(c, True))
count += 1 # !!! 这里加了循环累加
求学路上,你我共勉(๑•̀ㅂ•́)و✧
GitHub 加速计划 / yo / yolov5
49.3 K
16.02 K
下载
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
最近提交(Master分支:1 个月前 )
b163ff8d
* fix: requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-FONTTOOLS-6133203
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321964
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321966
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321970
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-5918878
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6043904
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6182918
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6219984
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6219986
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6514866
- https://snyk.io/vuln/SNYK-PYTHON-REQUESTS-6928867
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-3180412
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-7448482
- https://snyk.io/vuln/SNYK-PYTHON-TORCH-6619806
- https://snyk.io/vuln/SNYK-PYTHON-TORCH-6649934
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-7267250
- https://snyk.io/vuln/SNYK-PYTHON-WHEEL-3180413
* Update requirements.txt
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
---------
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io> 8 天前
c5bb4087
* fix: requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-TQDM-6807582
- https://snyk.io/vuln/SNYK-PYTHON-ZIPP-7430899
* Update requirements.txt
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
---------
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io> 8 天前
更多推荐
已为社区贡献12条内容
所有评论(0)