MMCV - browse_dataset.py 可视化config文件数据预处理部分

news2024/12/23 2:30:30

无论是mmdetection、mmtracking、mmdetection3D等框架,在\tools\analysis_tools中均有一个名为browse_dataset.py的文件。该文件能够帮助用户直接可视化 config 文件中的数据处理部分,查看标注文件是否正确,同时可以选择保存可视化图片到指定文件夹内。

调用的基本命令如下:

python tools/analysis_tools/browse_dataset.py \
    ${CONFIG_FILE} \
    [-o, --output-dir ${OUTPUT_DIR}] \
    [-p, --phase ${DATASET_PHASE}] \
    [-n, --show-number ${NUMBER_IMAGES_DISPLAY}] \
    [-i, --show-interval ${SHOW_INTERRVAL}] \
    [-m, --mode ${DISPLAY_MODE}] \
    [--cfg-options ${CFG_OPTIONS}]

参数说明:

  • config : 模型配置文件的路径。

  • -o, --output-dir: 保存图片文件夹,如果没有指定,默认为 './output'

  • -p, --phase: 可视化数据集的阶段,只能为 ['train', 'val', 'test'] 之一,默认为  'train 'val代表可视化验证集,

  • -n, --show-number: 可视化样本数量。如果没有指定,默认展示数据集的所有图片。

  • -m, --mode: 可视化的模式,只能为 ['original', 'transformed', 'pipeline'] 之一。 默认为 'transformed'。 'original' 代表获取原始图片,'transformed' 代表获取预处理后的图片,'pipeline' 代表获得数据流水线所有中间过程图片。

  • --cfg-options : 对配置文件的修改

比如下面的命令就代表:dataloader构建的数据将会直接弹出显示,每张图片持续 3 秒,并且不进行保存:

python tools/analysis_tools/browse_dataset.py configs/custom_dataset/yolov5_s-v61_syncbn_fast_1xb32-100e_cat.py  --show-interval 3

再比如下面的命令就代表:--phase val 代表可视化验证集, 可简化为 -p val ,--output-dir tmp 代表可视化结果保存在 “tmp” 文件夹, 可简化为 -o tmp,--mode original 代表可视化原图, 可简化为 -m original,--show-number 100 代表可视化100张图,可简化为 -n 100

python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_balloon.py --phase val --output-dir tmp --mode original

我们来一个更具体的栗子(可视化需要一个json文件): 再config文件中修改 train_pipeline 和 train_dataloader 即可实现MOT任务的数据集可视化(这部分代码其实是抄)mmtracking-1.0.0rc1\configs\_base_\datasets\youtube_vis.py的,当时是为了验证mot2coco的格式是否正确。

train_pipeline = [
    dict(
        type='TransformBroadcaster',
        share_random_params=True,
        transforms=[
            dict(type='LoadImageFromFile'),
            dict(
                type='LoadTrackAnnotations',
                with_instance_id=True,
                with_bbox=True),
            dict(type='mmdet.Resize', scale=(640, 360), keep_ratio=True),
            dict(type='mmdet.RandomFlip', prob=0.5),
        ]),
    dict(type='PackTrackInputs', ref_prefix='ref', num_key_frames=1)
]
train_dataloader = dict(
    batch_size=1,
    num_workers=2,
    persistent_workers=True,
    drop_last=False,
    sampler=dict(type='DefaultSampler', shuffle=True),
    batch_sampler=dict(type='mmdet.AspectRatioBatchSampler'),
    dataset=dict(
        type='MOTChallengeDataset',
        data_root='../data/xx/',
        ann_file='annotations/train_cocoformat.json',
        data_prefix=dict(img_path='train'),
        pipeline=train_pipeline,
        load_as_video=True,
        ref_img_sampler=dict(
            num_ref_imgs=1,
            frame_range=100,
            filter_key_img=True,
            method='uniform')))

效果如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百度学习经验

如何应对干扰1.将吸引你注意力的东西放在一旁,离开你的视野范围2.告诉大家你有空的时间,和你要专注的时间范围3.跟别人咨询的时候也是一样,不要在他专注的时候大扰别人关于如何做事,控制精力就是按照重要程度排序,不重…

《最佳停止时间》:什么时候可以停止寻找?

分享一个有趣的数学编程知识 《最佳停止时间》:什么时候可以停止寻找? 日常生活有很多"寻找-决策过程",如果考察所有选项,要花费很长时间,可能还会错失机会,后面遇到的未必有前面的好。能否确定一…

实力见证 | Authing 荣获 2022 中国数字化转型与创新评选之“年度安全创新产品”

近日,由数字产业创新研究中心、锦囊专家、首席数字官联合全国 20 多家 CIO 组织机构、行业协会共同发起的 《2022 中国数字化转型与创新评选》 获奖榜单新鲜出炉,Authing 成功入选该榜单,荣获“年度安全创新产品”。 该榜单自 2022 年 5 月启…

【设计模式】行为型模式·策略模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 一.概述 该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。 策略模式属于对象行为模式,它通过对算法进行封…

英语学习 作文 1

1 议论文和应用文 1、议论文:essay 1 观点选择:option、choice 2 现象解释:why、what 3 问题解决:how to、solution、measure **4 图片图表:image、cartoon、diagram、chart**2、应用文:信件、通知、报道…

设计模式——创建型模式

目录 4.创建型模式 4.1 单例设计模式 4.1.1 单例模式的结构 4.1.2 单例模式的实现 4.1.3 存在的问题 4.1.4 JDK源码解析-Runtime类 4.2 工厂模式 4.2.1 概述 4.2.2 简单工厂模式 4.2.3 工厂方法模式 4.2.4 抽象工厂模式 4.2.5 模式扩展 4.2.6 JDK源码解析-Collecti…

2023年山东最新建筑施工信号工(建筑特种作业)考试真题题库及答案

百分百题库提供特种工(信号工)考试试题、特种工(信号工)考试预测题、特种工(信号工)考试真题、特种工(信号工)证考试题库等,提供在线做题刷题,在线模拟考试,助…

C++98以及C++11产生随机数的方法

目录引言1、C98标准实现随机数2、C11新标准随机数引擎引言 在C11出现之前,C98使用随机数采用的是C标准库的写法。而在C11出现后,我们生成随机数可以采用更为现代化的方式。 1、C98标准实现随机数 以往生成随机数使用的是cstdlib.h库中的rand()函数&…

基于Node.js的3DTiles三维倾斜摄影模型爬虫

随着小型无人机的普及,乡村级的倾斜摄影模型构建已经越来越简单。一个无人机和一名飞手2个小时内就可以完成。在做WebGIS和Cesium开发时,3DTiles是一种常用的倾斜摄影三维模型的切片格式。3DTiles格式通常有散列和紧凑两种文件组织形式,其中不同工具生成的散列数据使用的索引…

【GNN报告】GNN-LOGS部分报告汇总

Bastain Rieck: Topology-Based Graph Representation Learning 基础 拓扑学习 基于拓扑学习的工作 参考 Bastain Rieck: Topology-Based Graph Representation Learning_哔哩哔哩_bilibili Chaitanya K. Joshi Graph Neural Networks for Geometric Graphs 背景 方法 Geom…

Kenney Assets - 提供数以万计免费商用的游戏制作素材下载,包括 2d、3d素材,游戏音效和游戏 UI

来自荷兰的游戏公司开放了自家游戏的素材包,制作很精美,下载后无需取得授权就能直接商用。 关于 Kenney Assets Kenney Assets 是游戏公司 Kenney 为游戏开发者提供的游戏素材资源网站,主要包括游戏 2D / 3D 人物和场景素材,游戏…

AXI 总线协议学习笔记(1)

引言 此文针对 XILINX的用户指南 UG761进行学习简单对AXI作说明。从下篇文章开始,通过阅读ARM官网的AXI协议标准进行系统学习。可以持续关注~ AXI是什么? AXI是ARM AMBA的一部分,ARM AMBA是1996年首次引入的一系列微控制器总线。 AXI的第…

ORA-29740:evicted by member %d, group incarnation %d

这个错误是在 rac 底下出现的,应该算是个比较严重的错误,就是 某个节点 被 踢(evict)出去了,导致这个节点重启系统。 这个错误的原因多种多样,而且需要找的日志文件也是很多的,基本上&#xff…

Serverless-云原生服务-概念

云原生服务是包含硬件、架构,硬件,因云而生,所以称为云原生技术。ServerlessFaasBaas同时具有按量付费和弹性伸缩的特点,该架构包括了函数维度和应用维度的两种形态关键字解析BaaS:Backend as a Service(后…

termux 部署springboot 及mysql

安装应用后,首先在手机上运行 pkg install openssh 再运行 passwd,改变ssh的密码。这时在pc上用数据线连好手机,打开adb调试,将手机的端口8022映射到PC上,因为termux中ssh默认是8022,再运行一下sshd 运行…

CV-Model【8】:ConvNeXt

文章目录前言1. Abstract & Introduction1.1. Abstract1.2. Introduction2. Modernizing a ConvNet: a Roadmap2.1. Training Techniques2.2. Macro Design2.2.1. Stage ratio2.2.2. "patchif" stem2.3. ResNeXt-ify2.4. Inverted Bottleneck2.5. Large Kernel S…

AWK简单总结

目录AWK简单总结常用命令选项变量内置变量自定义变量printf命令格式AWK简单总结 awk是linux/unix下的一个强大编程工具,他支持用户自定义函数和动态正则表达式,灵活性强,运行速度快。 常用命令选项 -F fs:fs指定输入分隔符,fs可…

利用SMB协议实现局域网内设备文件的共享

文章目录参考资料说明步骤1:[windows]开启SMB协议步骤2:[windows]创建新的用户账号步骤3:[windows]共享文件夹属性-共享-共享属性-共享-高级共享步骤4:[windows]查看共享文件的主机在局域网内的IP地址步骤5:[ipad]打开…

华为机试题:HJ35 蛇形矩阵(python)

文章目录知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input()与list(input())的区别、及其相互转换方法2、print() :打印输出。3、算术运算符4、整型int() :将字符串或数字转换为整型…