使用自己的数据集测试Unbiased Mean Teacher for Cross-domain Object Detection

news/2024/4/27 18:48:28/文章来源:https://blog.csdn.net/weixin_43868032/article/details/128115386

要复现Unbiased Mean Teacher for Cross-domain Object Detection(UMT),首先要正确运行CycleGAN。

1. CycleGAN

CycleGAN的github链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

1.1 CycleGAN环境配置

git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
cd pytorch-CycleGAN-and-pix2pix
conda env create -f environment.yml

1.2 CycleGAN数据集准备

1.2.1 如果使用官方数据集

不要运行1.2.2的内容。

bash ./datasets/download_cyclegan_dataset.sh maps

1.2.2 如果使用自己的数据集

不要运行1.2.1的内容。
以下将自己准备的两个图片数据集分别称为A和B。自己划分好训练集、测试集和验证集。
将自己的数据集放到./datasets/maps下,目录结构如下图所示。

maps
├── trainA
├── trainB
├── testA
├── testB
├── valA
└── valB

1.3 CycleGAN训练

python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan

训练好的模型保存在./checkpoints/maps_cyclegan/文件夹内的latest_net_G_A.pth和latest_net_G_B.pth文件内。

1.4 CycleGAN测试

将latest_net_G_A.pth存放至./checkpoints/generateA/路径下,并改名为latest_net_G.pth。
generateA也可以随便改成其他名字,只要和下面的–name一致即可。
运行下面指令,即可得到B风格的A数据集,结果保存在./results/generateA/test_latest/images/内。

python test.py --dataroot [自己的数据集路径] --name generateA--model test --num_test [自己数据集的图片总数] --no_dropout

同理,可得到A风格的B数据集。

2. UMT

2.1 环境配置

UMT环境继承了SW_DA模型,使用的包版本极低,CUDA版本使用9.0或9.1可避免CUDA报错。

torch=0.4.0
torchvision=0.2.0

其他包遵循SW_DA模型。链接:https://github.com/VisionLearningGroup/DA_Detection

2.2 数据集配置

UMT需要使用4个数据集,A,B,B风格的A数据集,A风格的B数据集。

2.2.1 数据集内部结构

SCUT
├── SCUT_A
│   └── VOC2007
│       ├── Annotations
│       ├── ImageSets
│       └── JPEGImages  # A数据集图片    
├── AlikeB
│   └── VOC2007
│       ├── Annotations
│       ├── ImageSets
│       └── JPEGImages  # B风格的A数据集图片
├── SCUT_B
│   ├── Annotations 
│   ├── ImageSets
│   └── JPEGImages  # B数据集图片
└── BlikeA├── Annotations ├── ImageSets└── JPEGImages # A风格的B数据集图片

2.2.2 数据集路径配置

本文名义上使用的是VOC2007和clipart,实际上将VOC2007和clipart内部包含的图片内容换成了自己的A和B,这样就可以跑自己的数据集了。

需要修改lib/datasets/config_dataset.py的内容:
__D.PASCAL改为自己的A数据集的路径
__D.PASCAL_CYCLECLIPART改为自己的B风格的A数据集的路径
__D.CLIPART改为自己的B数据集的路径
__D.CLIPART_CYCLEVOC改为自己的A风格的B数据集的路径

# with regard to pascal, the directories under the path will be ./VOC2007, ./VOC2012"
__D.PASCAL = "/home/lch1999/SCUT/SCUT_A/"
__D.PASCAL_CYCLECLIPART = ("/home/lch1999/SCUT/AlikeB/"
)
__D.CLIPART = "/home/lch1999/SCUT/SCUT_B/"
__D.CLIPART_CYCLEVOC = ("/home/lch1999/SCUT/BlikeA/"
)

2.3 训练

python umt_train.py --dataset pascal_voc --net vgg16

2.4 测试

./test.sh 0 models/vgg16/pascal_voc/conf_True_conf_gamma_0.1_source_like_True_aug_True_target_like_True_pe_0_pl_True_thresh_0.8_lambda_0.01_lam2_0.1_student_target_clipart_session_1_epoch_8_step_10000.pth
./test.sh 0 models/vgg16/pascal_voc/conf_True_conf_gamma_0.1_source_like_True_aug_True_target_like_True_pe_0_pl_True_thresh_0.8_lambda_0.01_lam2_0.1_teacher_target_clipart_session_1_epoch_8_step_10000.pth

2.5 测试结果

自己的数据集只标注了person,所以UMT也只检测了person,所以其他物体的AP=0是正常的。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]SSM计算机毕业设计学生宿舍设备报修JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

板卡测评 | 基于TI AM5708开发板——ARM+DSP多核异构开发案例分享

本次测评板卡是创龙科技旗下的TL570x-EVM,它是一款基于TI Sitara系列AM5708ARM Cortex-A15+浮点DSPC66x处理器设计的异构多核SOC评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 评估板接口资源丰富,引出…

函数定义、this指向、闭包等

1、函数的定义和调用 1.1函数的定义方式 1、自定义函数(命名函数) 2、函数表达式(匿名函数) 3、利用 new Function (‘参数1’, ‘参数2’, ‘函数体’) 1、自定义函数(命名函数) function fn() {}2、函…

jsp196ssm毕业设计选题管理系统hsg4361B6

本系统选用Windows作为服务器端的操作系统,开发语言选用Java,数据库选用Mysql,使用mybatis数据库连接技术,使用Myeclipse作为系统应用程序的开发工具,Web服务器选用Tomcat版本。 下面分别简单阐述一下这几个功能模块需…

外汇天眼:经济衰退无阻加息,欧美货币政策齐收紧

美联储和欧洲央行官员在近两日发表讲话,先后释放进一步加息信号,美股、欧股事后均收跌,市场预计美元、欧元近期将下跌。 通胀仍高于目标,两大央行将进一步加息 除了非农报告等关键通胀数据,本周央行动态同样备受市场关…

[附源码]Python计算机毕业设计SSM流浪动物管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

(4E)-TCO-PEG4-DBCO,1801863-88-6,反式环辛烯-四聚乙二醇-二苯并环辛炔

(4E)-TCO-PEG4-DBCO物理数据: CAS:1801863-88-6 | 中文名:(4E)-反式环辛烯-四聚乙二醇-二苯并环辛炔 | 英文名:(4E)-TCO-PEG4-DBCO 结构式(Structural): (4E)-TCO-PEG4-DBCO物理数据补充&…

vue+videojs视频播放、视频切换、视频断点分段上传

“本次需求是做一个视频列表,点击视频列表播放对应视频;同时要求实现断点分段上传大文件(视频)的功能 。 videojs文档:Getting Started with Video.js - Video.js: The Player Framework | Video.js 断点续传组件地址…

linux安装elasticsearch-head (es可视化界面)

系列-Linux centos7.6 安装elasticsearch8.x (es8) 教程 Linux centos7.6 安装elasticsearch8.x (es8) 教程_言之有李LAX的博客-CSDN博客 系列-linux安装elasticsearch-head (es可视化界面) linux安装elasticsearch-head (es可视化界面&am…

浅析linux内核网络协议栈--linux bridge

1 . 前言 本文是参考附录上的资料整理而成,以帮助读者更好的理解kernel中brdige 模块代码。 2. 网桥的原理 2.1 桥接的概念 简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他…

httpclient

1.什么是httpclient HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 2.http请求(结合spring的注解) 2-1GET请…

TStor OneCOS 技术专栏——轻松单桶万亿

TStor OneCOS简介 TStor OneCOS海量对象存储(后面简称OneCOS),是基于腾讯云公有云存储架构打造的完全自研的分布式软件定义存储,轻松支持单桶万亿对象和EB级容量,集群容量无限伸缩,同时支持高密大盘等多种…

STL的常用算法-查找 (20221130)

STL的常用算法 概述&#xff1a; 算法主要是由头文件<algorithm> <functional> <numeric> 组成。 <algorithm>是所有STL头文件中最大的一个&#xff0c;涉及比较、交换、查找、遍历等等&#xff1b; <functional>定义了一些模板类&#xff0…

如何设计可扩展架构

架构设计复杂度模型 业务复杂度和质量复杂度是正交的 业务复杂度 业务固有的复杂度&#xff0c;主要体现为难以理解、难以扩展&#xff0c;例如服务数量多、业务流程长、业务之间关系复杂 质量复杂度 高性能、高可用、成本、安全等质量属性的要求 架构复杂度应对之道 复杂…

野火FPGA进阶(2):基于I2C协议的EEPROM驱动控制

文章目录第49讲&#xff1a;基于I2C协议的EEPROM驱动控制理论部分设计与实现i2c_ctrli2c_rw_dataeeprom_byte_rd_wrtb_eeprom_byte_rd_wr第49讲&#xff1a;基于I2C协议的EEPROM驱动控制 理论部分 I2C通讯协议&#xff08;Inter-Integrated Circuit&#xff09;是由Philips公…

改革后IB数学该如何选?

IB数学&#xff0c;作为一个IB课程里必选科目&#xff0c;让无数IB学霸为之自豪&#xff0c;他们能解出外教都不会做的题。另一方面&#xff0c;也让很多同学&#xff08;自称“学渣”&#xff09;避之不及。 从2019年起&#xff0c;IB数学教学大纲发生重大改革。▲图源&#x…

C语言详细知识点(下)

⛄️上一篇⛄️C语言详细知识点&#xff08;上&#xff09; 文章目录五、数组1、一维数组的定义及使用2、二维数组的定义及使用3、字符数组的定义及使用六、函数1、函数的定义2、函数的调用3、函数的声明4、函数的嵌套调用5、函数的递归调用七、指针1、什么是指针2、指针变量3、…

链表之反转链表

文章目录链表之反转链表题目描述解题思路代码实现链表之反转链表 力扣链接 题目描述 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 示例&#xff1a; ​ 输入: 1->2->3->4->5->NULL ​ 输出: 5->4-&…

基于vue项目的代码优化

前言 项目上线后其整体性能的优良是用户也是研发人员所关注的。项目优化非常重要&#xff0c;一丝一毫的提升都是对用户的负责。因此我们在开发中就应该注重细节&#xff0c;优化工作从日常开发做起。本篇文章就分享一些在日常开发中代码层面的优化手段。 开发常用优化手段 …

达摩院快速动作识别TPS ECCV论文深入解读

一、论文&代码 论文&#xff1a;https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136630615.pdf 模型&代码&#xff1a;ModelScope 魔搭社区 二、背景 高效的时空建模(Spatiotemporal modeling)是视频理解和动作识别的核心问题。相较于图像的Transforme…