基于Slicing Aided Hyper Inference (SAHI)做小目标检测

2023-05-16

        遥感等领域数据大图像检测时,直接对大图检测会严重影响精度,而通用工具多不能友好支持大图分块检测。Slicing Aided Hyper Inference (SAHI)是一个用于辅助大图切片检测预测的包。目前可以良好的支持YOLOX、YOLOv5、MMDetection、Detection2等。代码:obss/sahi: Framework agnostic sliced/tiled inference + interactive ui + error analysis plots (github.com)

        在训练时,为了避免在模型的训练预处理管道中由于调整图像大小而丢失小对象,我们在管道的开头添加了随机裁剪。实际上,我们正在原始图像的小块上进行训练,并保留这些图像中的所有信息。例如:

train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', with_bbox=True),
    dict(type='RandomCrop', crop_size=(height, width)),
    dict(
        type='Resize',
        img_scale=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),
                   (1333, 768), (1333, 800)],
        multiscale_mode='value',
        keep_ratio=True),
    dict(type='RandomFlip', flip_ratio=0.5),
    dict(
        type='Normalize',
        mean=[103.53, 116.28, 123.675],
        std=[1.0, 1.0, 1.0],
        to_rgb=False),
    dict(type='Pad', size_divisor=32),
    dict(type='DefaultFormatBundle'),
    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
]

        在推理时,SAHI的图像预测将输入图像分解为略微重叠的切片,对每个切片进行预测,最后合并每个切片的检测结果,恢复到原始图像上的坐标。

from sahi.model import MmdetDetectionModel
from sahi.predict import get_prediction, get_sliced_prediction, predict
from sahi.utils.cv import visualize_object_predictions


detection_model = MmdetDetectionModel(
    model_path=trained_model_path,
    config_path=config_path,
    device='cuda' # or 'cpu'
)


sliced_pred_result = get_sliced_prediction(
    test_img_path,
    detection_model, 
    slice_width=width, 
    slice_height=height
)

visualize_object_predictions(
    image=np.ascontiguousarray(sliced_pred_result.image),
    object_prediction_list=sliced_pred_result.object_prediction_list,
    rect_th=1,
    text_size=0.3,
    text_th=1,
    color=(0, 0, 0),
    output_dir=viz_path,
    file_name=test_img_name + "_sliced_pred_result",
    export_format=format,
)

         效果示例:

参考:

obss/sahi: Framework agnostic sliced/tiled inference + interactive ui + error analysis plots (github.com)

How to detect small objects in (very) large images | by Maximilian Gartz | ML6team

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Slicing Aided Hyper Inference (SAHI)做小目标检测 的相关文章

随机推荐

  • 【PyTorch】nn.TransformerEncoder 使用 src_key_padding_mask 时出现nan

    问题描述 xff1a 在使用nn TransformerEncoder时 xff0c 不使用src key padding mask xff0c 编码的输出正常 xff0c 使用src key padding mask后编码结果变成nan了
  • 【scikit-learn】scaler.fit_transform()和transform()的区别与使用

    scikit learn提供了Scaler来进行数据的标准化处理 xff0c 例如StandardScaler类是一个用来讲数据进行均值方差归一化的类 所谓归一化和标准化 xff0c 即应用下列公式 xff1a 使得新的X数据集方差为1 x
  • 【Pandas】相关性分析corrwith与corr

    pandas有两类相关性分析的函数 xff0c 分别是DataFrame的corrwith和Series的corr xff0c 注意这俩不能混用 corrwith用于计算DataFrame中行与行或者列与列之间的相关性 xff0c 而cor
  • 【比赛方案】2019年CCF大数据与计算智能大赛乘用车细分市场销量预测冠军解决方案

    共使用一个lgb模型与一个规则模型进行融合 xff0c 总运行时长约3min 代码全部整合到一个文件里了 xff0c 共约500行 本次比赛初赛有60个车型 xff0c 复赛有82个车型 xff0c 由于初赛时长较长 xff0c 复赛时长较
  • 教你用python高效刷leetcode

    由于Python语法的简洁性 xff0c 用python来刷leetcode往往能用比别的语言更少的代码量AC 但是如果不是对python很熟悉就会比较尴尬了 xff0c 如果有些功能明明有高效的内置方法因为不知道要自己实现 或者不了解其复
  • 解决MMCV CUDA Compiler : not available

    问题描述 xff1a 安装完mmcv full使用mmdetection时 xff0c 提示MMCV CUDA Compiler not available xff0c 发现并未使用GPU 分析解决 xff1a 导致无法使用GPU的原因可能
  • 【LightGBM】feature_importance获取特征重要性

    使用LightGBM feature importance 函数给训练完毕的LightGBM模型的各特征进行重要性排序 feature importance 61 pd DataFrame feature importance 39 fea
  • 遥感影像智能处理比赛收集

    文章目录 概述 x1f4da 竞赛 xff1a 按年度整理202220212020 x1f4e3 x1f525 x1f525 x1f525 持续更新中 x1f525 x1f525 x1f525 概述 近年来遥感影像智能处理比赛逐渐增多 xf
  • 【Markdown】github上如何为markdown文件生成目录

    熟悉markdown都知道可以使用 TOC 自动生成markdown文件的标题目录 xff0c 比如在typora xff0c vscode 需要插件 等本地编辑器中 xff0c 或者在CSDN等网页编辑器中 xff0c 但是github却
  • 【调参】batch_size的选择

    直接上结论 xff1a 当有足够算力时 xff0c 选取batch size为32或更小一些 算力不够时 xff0c 在效率和泛化性之间做trade off xff0c 尽量选择更小的batch size 前期用小batch引入噪声 xff
  • 【Paper】Learning to Resize Images for Computer Vision Tasks

    From 别魔改网络了 xff0c Google研究员 xff1a 模型精度不高 xff0c 是因为你的Resize方法不够好 xff01 知乎 zhihu com paper 2103 09950v2 pdf arxiv org code
  • 【OpenCV】 外接矩形、最小外接矩形、多边形拟合、外接圆

    任务 xff1a 给定这样一张图片求图片中白色区域的外接矩形 最小外接矩形 拟合多边形以及外接圆 1 外接矩形 x y w h 61 cv2 boundingRect points 输入 xff1a 点集 返回值 xff1a 左上角点坐标以
  • Windows柯尼卡打印机驱动安装

    打印机型号 xff1a 柯尼卡 bizhub C300i xff08 打印机机身可见 xff09 1 下载驱动 在柯尼卡驱动官网查找下载打印机驱动 在型号处直接下拉查找自己的型号 xff0c 例如bizhub C300i xff0c 点击搜
  • PyQt开发入门教程

    来源 xff1a PyQt完整入门教程 lovesoo 博客园 cnblogs com 1 GUI开发框架简介 1 1 通用开发框架 electorn xff1a 基于node js xff0c 跨平台 xff0c 开发成本低 xff0c
  • VOC数据集颜色表colormap与代码

    VOC颜色和分类的对于关系 code如下 xff0c 这里提供两个版本 xff0c 一个是list tuple 版本 xff0c 支持直接在opencv的color参数使用 xff1b 另一个是ndarray版返回 list 版 def v
  • 【译】Python3.8官方Logging文档(完整版)

    注 xff1a 文章很长 xff0c 约一万字左右 xff0c 可以先收藏慢慢看哟 01 基础部分 日志是用来的记录程序运行事件的工具 当程序员可以通过添加日志打印的代码来记录程序运行过程中发生的某些事件时 这些事件包含了诸如变量数据在内的
  • OpenCV Scalar value for argument ‘color‘ is not numeric错误处理

    import cv2 cur color 61 np array 128 0 128 astype np uint8 cv2 polylines cvImage ndata isClosed 61 True color 61 cur col
  • COCO格式数据集可视化为框

    使用pycocotools读取和opencv绘制 xff0c 实现COCO格式数据边框显示的可视化 xff0c 可视化前后的示例为 xff1a 代码 xff1a coding utf 8 import os import sys getop
  • 微波遥感(三、SAR图像特征)

    SAR 是主 动式侧视雷达系统 xff0c 且成像几何属于斜距投影类型 因此 SAR 图像与光学图像在成像机理 几何特征 辐射特征等方面都有较大的区别 在进行 SAR 图像处理和应用前 xff0c 需要了解 SAR 图像的基本特征 本文主要
  • 基于Slicing Aided Hyper Inference (SAHI)做小目标检测

    遥感等领域数据大图像检测时 xff0c 直接对大图检测会严重影响精度 xff0c 而通用工具多不能友好支持大图分块检测 Slicing Aided Hyper Inference SAHI 是一个用于辅助大图切片检测预测的包 目前可以良好的