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

yolo v11相关文件

1. data_enhancement.py 带标注xml信息的图像增强,images存放图片,annotations存放xml文件,随机增强效果(自己可更改),生成带xml的新图像。

2. split_train_val.py数据集划分,在dataSet里面生成对应集合,txt里面存放对应名称。

3. xml_to_txt.py将xml格式文件转换成txt文件,并按dataSet的划分,在labels下的train/val/test文件夹中生成txt标注格式,labels下的三个txt存放相关的图片路径。

4. split_images.py根据labels下的三个txt路径,将图片按照train/val/test的方式存放在split_image2文件下。

5. viewCategory.py查看标签和数量的小工具

最终,在resource同级目录中新建dataset用于训练,里面严格命名images、labels,以上两个目录下按照train/val/test的方式复制resource的labels、split_image2目录中的文件,显得更为清晰,也可以自行优化。
在这里插入图片描述
注意: yolov8之后的train/val/predict等文件需要自己根据需求后处理编写,例如获取目标识别指定区域并剪裁:

model = YOLO(model=r'E:\Code\Python\match\ultralytics\runs\train\exp2\weights\best.pt')

# 图像文件夹路径
image_folder = r"E:\hkc_files\Logo_jin\data\img\Logo\清华同方"
output_dir = r"E:\Code\Python\match\ultralytics\after_test_10_25\11_5"

# 确保裁剪后的图像输出文件夹存在
os.makedirs(output_dir, exist_ok=True)

# 使用YOLO模型对整个文件夹进行预测
results = model.predict(source=image_folder)

# 提取检测结果并裁剪
for result in results:
    image_path = result.path  # 原始图像路径
    image_name = os.path.basename(image_path)  # 获取图像文件名
    image = cv2.imread(image_path)  # 读取图像
    image_name = os.path.splitext(os.path.basename(image_path))[0]

    boxes = result.boxes.xyxy  # 获取边界框坐标
    scores = result.boxes.conf  # 获取置信度分数
    classes = result.boxes.cls  # 获取类别索引

    # 获取类别名称
    class_names = [model.names[int(cls)] for cls in classes]

    # 遍历每个检测的框
    for i, (box, score, class_name) in enumerate(zip(boxes, scores, class_names)):
        x1, y1, x2, y2 = map(int, box)  # 转换为整数
        cropped_img = image[y1:y2, x1:x2]  # 裁剪区域

        # 保存裁剪的小图,按类别名和图像名保存
        crop_path = os.path.join(output_dir, f"{class_name}_{image_name}_{i}.jpg")
        cv2.imwrite(crop_path, cropped_img)

        # 输出信息
        print(f"Class: {class_name}, Score: {score:.2f}, Box: {box}, Saved as: {crop_path}")

http://www.kler.cn/a/390371.html

相关文章:

  • 智能电视/盒子的应用管理——通过ADB工具优化体验
  • centos7上安装mysql
  • 笔记 | image may have poor performance,or fail,if run via emulation
  • 红帽认证和华为认证哪个好?看完这4点你就明白了
  • Apache ECharts
  • 微服务架构面试内容整理-SpringCloud Netflix‌与Spring Cloud Alibaba比较
  • 机器视觉中常用图像处理库都有哪些?重点关注.net
  • Qt 编写插件plugin,支持接口定义信号
  • 【日志】力扣167.两数之和2 - 输入有序数组 // Unity——Roll A Ball(一)
  • diboot低代码中使用junit测试controller,入参不生效问题解决
  • Java学习教程,从入门到精通,Java修饰符语法知识点及案例代码(23)
  • openlayers实现图层裁剪,只展示关心区域,抹掉无关区域,“抠”地图
  • ARM64环境使用docker-compose进行ElasticSearch8集群部署
  • Scala中的可变Map操作:简单易懂指南 #Scala Map #Scala
  • CTF 入门指南:从零开始学习网络安全竞赛
  • 数据结构 栈和队列
  • kafka面试题解答(四)
  • 软件测试学习记录 Day1
  • Mysql中数据添加,修改,删除
  • python实战(七)——基于LangChain的RAG实践
  • Simulink对仿真数据进行FFT频谱分析
  • Unity中IK动画与布偶死亡动画切换的实现
  • 【学习记录丨UVM】2.1uvm_component 与uvm_object
  • 人到一定年纪,要学会远离多巴胺
  • 群控系统服务端开发模式-应用开发-前端框架
  • 必应 Bing 国内广告开户及代运营服务的优势有哪些?