当前位置: 首页 > wzjs >正文

兼职做任务的网站手机版文章网站源码

兼职做任务的网站,手机版文章网站源码,263企业邮箱登录入口手机版下载,重庆建设工程信息网安全管理先前在跑DETR类目标检测算法时,由于其默认使用的是COCO数据集,所以输出结果中包含不同尺度的检测精度,即大、中、小目标。 而现在博主在使用ultralytics时,发现其并没有这个指标效果,但在先前的实验中,博主…

先前在跑DETR类目标检测算法时,由于其默认使用的是COCO数据集,所以输出结果中包含不同尺度的检测精度,即大、中、小目标。
而现在博主在使用ultralytics时,发现其并没有这个指标效果,但在先前的实验中,博主发现DETR中计算这些指标使用的是pycocotools这个工具包,那么我们就可以将检测结果和标注数据采用这个工具进行计算。话不多说,我们开整。

YOLO数据集转COCO

首先,我们要做的是将YOLO格式的数据集转换为COCO格式的数据集,代码如下:
这里需要注意的是,COCO的类别是从1开始的,而YOLO的类别则从0开始,那么我们就需要category_id = int(parts[0])+1

import os
import json
from PIL import Imagedef yolo_to_coco(yolo_dir, img_dir, output_file, categories):"""将YOLO格式的标注转换为COCO格式。:param yolo_dir: 包含YOLO标注txt文件的目录路径。:param img_dir: 包含对应图像的目录路径。:param output_file: 输出的COCO格式JSON文件路径。:param categories: 类别列表,如[{"id": 0, "name": "cat"}, {"id": 1, "name": "dog"}]"""images = []annotations = []image_id = 0annotation_id = 0for txt_file in os.listdir(yolo_dir):if not txt_file.endswith('.txt'):continue# 获取对应的图像文件名img_file = os.path.splitext(txt_file)[0] + '.jpg'image_id = os.path.splitext(txt_file)[0]img_path = os.path.join(img_dir, img_file)if not os.path.exists(img_path):print(f"找不到对应的图像文件: {img_file}")continue# 获取图像尺寸with Image.open(img_path) as img:width, height = img.size# 图像信息image_info = {"id": image_id,"file_name": img_file,"width": width,"height": height}images.append(image_info)# 解析YOLO标注with open(os.path.join(yolo_dir, txt_file), 'r') as f:lines = f.readlines()for line in lines:parts = line.strip().split()category_id = int(parts[0])+1x_center = float(parts[1])y_center = float(parts[2])bbox_width = float(parts[3])bbox_height = float(parts[4])# 计算边界框的绝对坐标abs_x = x_center * widthabs_y = y_center * heightabs_w = bbox_width * widthabs_h = bbox_height * heightannotation = {"id": annotation_id,"image_id": image_id,"category_id": category_id,"bbox": [abs_x - abs_w / 2, abs_y - abs_h / 2, abs_w, abs_h],"area": abs_w * abs_h,"iscrowd": 0}annotations.append(annotation)annotation_id += 1coco_format_json = {"images": images,"annotations": annotations,"categories": categories}with open(output_file, 'w') as f:json.dump(coco_format_json, f)
# 示例调用
categories = [{"id": 0, "name": "balloon"}, {"id": 1, "name": "kite"},{"id": 2, "name": "nest"},{"id": 3, "name": "trash"}]  # 根据实际情况修改
yolo_to_coco("D:/project_mine/detection/datasets/others/labels/val", "D:/project_mine/detection/datasets/others/images/val", "coco_annotations.json", categories)

转换出的数据如下:

在这里插入图片描述

推理结果保存为json

第二步,我们需要在推理时,将结果保存为json格式,这个ultralytics框架中已经帮我们实现好了:只需要在参数中加上save_json=True即可

from ultralytics import RTDETR
# 加载模型
model = RTDETR("weights/best.pt")# 开始验证
validation_results = model.val(data="others.yaml",imgsz=640,batch=16,save_json=True,conf=0.25,iou=0.6,device="0"
)
print(validation_results.results_dict)

计算多尺度检测结果

如今,我们将数据均转换为COCO格式了,那么就可以采用pycocotools工具包计算了,代码如下:

from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
# 加载标注和预测
annFile = 'coco_annotations.json'
resFile = 'predictions.json'
cocoGt = COCO(annFile)
cocoDt = cocoGt.loadRes(resFile)# 先评估整体性能 (area='all')
cocoEval = COCOeval(cocoGt, cocoDt, 'bbox')
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()

结果如下:

在这里插入图片描述

码字不易,给个赞呗!

http://www.dtcms.com/wzjs/549024.html

相关文章:

  • 佛山网站建站建设如何在手机上搭建网站
  • 莱芜人论坛搜索引擎优化的各种方法
  • 普陀专业做网站网络营销推广的类型有哪些
  • 使用rem布局的网站公司网站开发主要技术
  • 网站数据修改苏州app定制
  • 网站开发技术可行性分析怎么写注册公司每年需要缴纳什么费用
  • 南京马鞍山网站建设网站建设开发岗位职责
  • 免费下载网站软件宿州网站建设设计公司
  • o2o苗木网站建设登录自己网站的后台 wordpress
  • 郑州网站建设哪家好怎么样钢材网站建设
  • 怎么制作一个网站5个网页东莞常平做网站公司
  • 建筑设计人才招聘网站html旅游网站制作代码
  • 做响应式网站没有域名怎么搭建网站
  • 现在lol谁做教学视频网站那家网站做的效果好
  • 网站对齐原则安徽省造价信息网官网
  • 哪里的网站建设好框架网站模板
  • 开发网站如何选需要在成都如何找到做网站的公司
  • 潜江做网站的地方网站做相亲赢利点在哪里
  • 山东网站建设优化技术江苏两学一做网站
  • 金属加工网站怎么做商务网站开发实训体会
  • 不用开源程序怎么做网站品牌推广网站策划设计
  • 西乡做网站哪家便宜云建设网站
  • 怎样用模板做网站金华市住房建设局网站
  • 烟台做网站的简书 wordpress
  • 站长工具2023最新国产wordpress 网站备案号
  • 怎么通过域名做网站提升网站权重的策略
  • 福州电子网站建设中国第一营销网
  • 东莞网站建设培训学校公司网络组建方案设计
  • 如何做好网站设计工贸企业logo设计
  • 刷网站流量有用吗3gqq网页版