MMYOLO、MMROTATE图片批量检测脚本

对官方给的img_demo.py做了一点改动,可以输入图片文件夹,将结果输出到output文件夹中:

# Copyright (c) OpenMMLab. All rights reserved.
from argparse import ArgumentParser

import mmcv
from mmdet.apis import inference_detector, init_detector

from mmrotate.registry import VISUALIZERS
from mmrotate.utils import register_all_modules
import os


def parse_args():
    parser = ArgumentParser()
    # parser.add_argument('img', help='Image file') # 图片
    parser.add_argument('--input_dir', help='Path to input directory') # 输入文件夹路径
    parser.add_argument('--output_dir', help='Path to output directory') # 输出文件夹路径
    parser.add_argument('config', help='Config file') # 配置文件
    parser.add_argument('checkpoint', help='Checkpoint file') 
### MMYOLO 中旋转目标检测功能及其实现方法 #### 背景介绍 MMYOLO 是基于 OpenMMLab 的 MMDET 开发的一个扩展库,专注于单阶段目标检测算法的研究与应用。尽管其主要设计用于矩形框的目标检测任务,但在特定场景下也可以通过适配支持旋转目标检测的任务。 由于 MMYOLO 和其他旋转目标检测框架(如 MMROTATE)存在一定的冲突[^1],因此建议在独立环境中安装并配置 MMYOLO 来完成相关实验。 --- #### 数据准备与转换 对于 DOTA_v1.0 这样的旋转目标检测数据集,在使用前需要将其转化为适合 MMYOLO 训练的格式。通常情况下,可以借助脚本工具来完成这一过程: ```python import sys sys.path.append('path/to/mmyolo') from mmyolo.data.converters import dota_to_mmyolo_rotated_bbox_format dota_to_mmyolo_rotated_bbox_format( input_dir="path/to/dota", output_dir="path/to/output" ) ``` 上述代码片段展示了如何将原始的 DOTA 数据集转换为适用于 MMYOLO 的旋转边界框标注文件格式[^3]。 --- #### 配置文件调整 为了使 MMYOLO 支持旋转目标检测,需修改默认的配置文件以适应新的需求。以下是几个关键点: 1. **模型架构的选择** 可选用 RTMDet 作为基础网络结构,并针对旋转目标检测的需求进行微调。具体来说,可以通过设置 `rotated=True` 参数启用旋转预测模式。 2. **损失函数定义** 对于旋转目标检测任务,常用的损失函数包括 IoU Loss 或 GIoU Loss 等变体形式。这些损失函数能够更好地衡量旋转边界的匹配程度。 3. **锚框设定** 如果采用锚框机制,则应重新计算一组更适合旋转对象的初始锚框尺寸。 以下是一个简单的配置模板示例: ```yaml model: type: 'rtmdet' rotated: True bbox_head: loss_cls: type: CrossEntropyLoss loss_bbox: type: RotatedGIoULoss data: train: dataset_type: 'RotatedCocoDataset' ann_file: 'train_annotations.json' img_prefix: 'images/train/' test: eval_metric: iou_thrs: [0.5, 0.75] ``` 此部分描述了如何自定义配置文件中的参数选项以满足实际项目的要求。 --- #### 模型训练流程 启动训练的过程相对简单,只需指定对应的配置路径即可执行完整的训练周期: ```bash tools/dist_train.sh configs/rtmdet/rtmdet_r50_fpn_1x_dota.py 8 --cfg-options data.samples_per_gpu=2 ``` 这里假设 GPU 数量为 8 并设置了每批次样本数为 2。同时注意调整超参组合以便获得更优性能表现[^2]。 --- #### 测试与评估 当训练完成后,可通过如下指令加载预训练权重并对测试图片实施推理操作: ```bash python tools/test.py \ configs/rtmdet/rtmdet_r50_fpn_1x_dota.py \ work_dirs/rtmdet/latest.pth \ --eval bbox ``` 最终会输出各类指标得分以及可视化结果供进一步分析验证。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goafan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值