yolov5目标检测样本框批量提取(将检测到的目标裁剪出来)

这篇具有很好参考价值的文章主要介绍了yolov5目标检测样本框批量提取(将检测到的目标裁剪出来)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Reference

第一篇
第二篇

code

本文实现了代码的批量提取文章来源地址https://www.toymoban.com/news/detail-510287.html

import os
import cv2


def main():
    img_path = './yolov5-master/runs/detect/exp2/'  # 图片路径
    label_path = './yolov5-master/runs/detect/exp2/labels/'  # txt文件路径
    save_path = '../data/pic_extracted/'    # 保存路径

    img_total = []
    label_total = []
    imgfile = os.listdir(img_path)
    labelfile = os.listdir(label_path)

    for filename in imgfile:
        name, type = os.path.splitext(filename)
        if type == ('.jpg' or '.png'):
            img_total.append(name)
    for filename in labelfile:
        name, type = os.path.splitext(filename)
        if type == '.txt':
            label_total.append(name)



    for _img in img_total:
        if _img in label_total:
            filename_img = _img + '.jpg'
            path = os.path.join(img_path, filename_img)
            img = cv2.imread(path)  # 读取图片,结果为三维数组
            filename_label = _img + '.txt'
            w = img.shape[1]  # 图片宽度(像素)
            h = img.shape[0]  # 图片高度(像素)
            n = 1
            # 打开文件,编码格式'utf-8','r+'读写
            with open(os.path.join(label_path, filename_label), "r+", encoding='utf-8', errors="ignor") as f:
                for line in f:
                    msg = line.split(" ")  # 根据空格切割字符串,最后得到的是一个list
                    x1 = int((float(msg[1]) - float(msg[3]) / 2) * w)  # x_center - width/2
                    y1 = int((float(msg[2]) - float(msg[4]) / 2) * h)  # y_center - height/2
                    x2 = int((float(msg[1]) + float(msg[3]) / 2) * w)  # x_center + width/2
                    y2 = int((float(msg[2]) + float(msg[4]) / 2) * h)  # y_center + height/2
                    filename_last = _img + "_" + str(n) + ".jpg"
                    print(filename_last)
                    img_roi = img[y1:y2, x1:x2] # 剪裁,roi:region of interest
                    cv2.imwrite(os.path.join(save_path, filename_last), img_roi)
                    n = n + 1
        else:
            continue

if __name__ == '__main__':
    main()

到了这里,关于yolov5目标检测样本框批量提取(将检测到的目标裁剪出来)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【目标检测】yolov5模型详解

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不断进行升级迭代。 Yolov5有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本。文件中,这几个模型的结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。 yolov5主要分为以下几部分: Input:输入 Backbone:

    2024年02月07日
    浏览(52)
  • 【目标检测】yolov5代码实战

    YOLO 是 “You only look once” 缩写 , 是将图像划分为网格系统的对象检测算法,网格中的每个单元负责检测自身内的对象。 由于其速度和准确性,YOLO是最著名的目标检测算法之一。yolov5作为YOLO系列第五个迭代版本,它的一个特点就是权重文件非常之小,可以搭载在配置更低的移

    2024年02月07日
    浏览(48)
  • OpenCV之YOLOv5目标检测

    💂 个人主页: 风间琉璃 🤟 版权:  本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、 点赞、 收藏(一键三连) 和 订阅专栏 哦 目录 前言 一、YOLOv5简介 二、预处理 1.获取分类名 2.获取输出层名称 3.图像尺度变换 三、模型加载

    2024年01月20日
    浏览(56)
  • yolov5检测小目标(附源码)

    6.30 更新切割后的小图片的label数据处理 前言 yolov5大家都熟悉,通用性很强,但针对一些小目标检测的效果很差。 YOLOv5算法在训练模型的过程中,默认设置的图片大小为640x640像素(img-size),为了检测小目标时,如果只是简单地将img-size改为4000*4000大小,那么所需要的内存会变

    2024年02月03日
    浏览(46)
  • YOLOv5增加小目标检测层

    采用增加小目标检测层的方式来使YOLOv5能够检测小目标,只需要修改models下的yaml文件中的内容即可。 主要改变如下: 原yaml: 改变后的yaml: 主要改变了两个地方:anchors和head (1)anchors (2)head 这样就改好了。 注释:在yolov5的6.0版本作者将CSP换为C3,YOLOv5 2020年5月出来后不

    2024年02月11日
    浏览(50)
  • 深度学习基础——YOLOv5目标检测

            YOLO系列算法属于基于回归的单阶段目标检测算法,它将定位与分类两个任务整合成一个任务,直接通过CNN网络提取全局信息并预测图片上的目标。给目标检测算法提供了新的解决方案,并且图片检测速度准确率与召回率达到实时检测的要求。其中YOLOv1、YOLO2、YO

    2024年02月22日
    浏览(46)
  • 目标检测YOLOV5 添加计数功能

    YOLOV5预测完图片想显示个数怎么办呢? 一行代码轻松解决!!!! 原来的Detect 没有计数功能 只需在源码 上加上下面这一段代码即可: 这样就可以加上计数功能了!!!!  

    2024年02月16日
    浏览(50)
  • 【目标检测】YOLOv5:模型构建解析

    最近在看一些目标检测的最新论文和代码,大多数都是在YOLOv5的基础上进行魔改。 改的最多的基本是原版本的网络结构,这篇博文就从源码角度来解析YOLOv5中,模型是如何构建出来的。 本文使用的是YOLOv5-5.0版本。 在YOLOv5中,模型结构基本是写在了 .yaml 中,5.0版本的YOLOv5共

    2024年02月06日
    浏览(90)
  • yolov5旋转目标检测遥感图像检测-无人机旋转目标检测(代码和原理)

    YOLOv5(You Only Look Once version 5)是一个流行且高效的实时目标检测深度学习模型,最初设计用于处理图像中的水平矩形边界框目标。然而,对于旋转目标检测,通常需要对原始YOLOv5架构进行扩展或修改,以便能够检测具有任意角度的对象,比如倾斜的车牌、风力发电机叶片或者

    2024年04月14日
    浏览(48)
  • 基于Yolov5的目标检测(以口罩检测为例)

    口罩数据集:GitHub - X-zhangyang/Real-World-Masked-Face-Dataset: Real-World Masked Face Dataset,口罩人脸数据集 yolov5 源码: GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch ONNX CoreML TFLite 1.  基于区域提取的两阶段目标检测 1.1 SPP-Net 1.2 R-CNN  1.3 FAST R-CNN  1.4 FASTER-CNN 2.  基于回归的单阶段为目标检测

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包