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

news2024/11/28 22:01:45

要复现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.coloradmin.cn/o/49361.html

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

相关文章

低代码助力生产管理:车间管理系统

在当前制造业全球化、网络化、敏捷化的背景下,制造业信息化是目前生产的主要趋势。其中车间是制造企业的核心单元,是企业生产计划的具体实施环节,同时负责反馈实时生产信息。因此车间层的信息资源集成和生产管理控制是整个企业生产供应链控制…

[Power Query] 快速计算列

对两列或者多列的计算,在Power Query中除了通过自定义列来实现以外,我们也可以通过利用功能区的【添加列】|【标准】运算功能进行列的计算 数据源 将数据源导入到Power BI Desktop,单击【转换数据】选项,进入Power Query查询编辑…

python对异常的处理

了解异常当检测到一个错误时,解释器就无法继续执行了,反而出现一些错误的提示,这就是异常。测试:f open(test.txt,r) #以读模式打开文件,文件不存在则报错 运行了解释器报错避免出现异常提示的写法 #需求:…

串口通信及串口转蓝牙相关知识

之前没有接触过硬件相关的工作, 因此对硬件的知识一知半解。 最近由于项目需要, 用到了串口通信以及串口跟蓝牙之间通信相关的东西。记录下来, 希望对新手有所帮助。 如有疏漏之处, 欢迎指正。 1 串口通信 https://www.jishulin…

docker-compose安装部署gitlab中文版

文章目录前言一、环境信息二、准备部署1.准备路径2.安装docker-compse,下载镜像3.引入库2.执行部署三、登陆页面前言 记录一下使用docker-compose部署gitlab平台的过程 一、环境信息 操作系统版本:CentOS Linux release 7.9.2009 (Core) gitlab镜像版本…

世界杯winner只属于你——MESSI

其实现在大脑中还在回忆着那一脚精彩的进球。 看官方怎么说的: 北京时间11月27日凌晨3点,世界杯C组第2轮,阿根廷2-0战胜墨西哥。 梅西在11月27日用1进球1助攻,上帝降临,拯救阿根廷。特别是那个进球,直接让…

矩阵快速幂 笔记加理解

文章目录1.何为快速幂1.1学习快速幂的好文章1.2快速幂取模代码(对1000取模)2.矩阵快速幂1.何为快速幂 补充一个公式证明: 1.1学习快速幂的好文章 http://t.csdn.cn/agKop 1.2快速幂取模代码(对1000取模) ll fast…

VMware虚拟网络编辑器配置

一,NAT模式网络设置。 把下面的ip,子网掩码,网关记住。 切换到network-scripts 目录下。 cd /etc/sysconfig/network-scripts/修改ifcfg-ens33 这个文件。 然后重启网络服务: 对于openEuler: systemctl restart Ne…

关于Eslint语法检查

在vue创建项目中,选择eslintStandard config -标准规范- 在保存时就开启检查 eslintrc.js配置,没反应重启项目 语法报错,根据错误提示,去eslint官网搜索规则 在eslintrc.js文件中rules中添加或者修改规则,自定义的…

猿如意|IntelliJ IDEA Community下载安装以及基础开发设置和快捷键设置的详细教程

文章目录 一、如何在猿如意官网中下载IntelliJ IDEA Community? 二、关于IntelliJ IDEA Community的安装以及使用前的设置教程 1.下载安装 2.基础开发设置 三、总结 一、如何在猿如意官网中下载IntelliJ IDEA Community? 我们要想能够更简单的获取到Int…

【愚公系列】华为云系列之DevCloud+ECS+MySQL搭建超级冷笑话网站【开发者专属集市】

文章目录前言1.项目背景2.项目介绍3.所需华为云环境一、华为云系列之DevCloudECSMySQL搭建超级冷笑话网站1.创建项目2.创建代码仓库3.创建数据库4.修改代码5.编译构建6.部署7.环境准备8.导入主机9.部署应用10.应用访问11.资源释放11.1 释放 ECS 资源11.2 释放 RDS 资源总结前言…

[附源码]Python计算机毕业设计Django的校园报修平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

大于10M图片如何查看?

大于10M的图片,如果Windows无法查看,只需要压缩到10M以内就行。 我们先下载一个工具,帮助我们批量压缩图片。 Faststone image viewer 查看器,下载地址: https://www.faststone.org/ 假如我们有一张大于10M的图片&a…

计算机病毒

文章目录计算机病毒计算机病毒的类型计算机感染病毒的表现计算机病毒 计算机病毒指的是干扰计算机正常运行的软件或者代码片段。 计算机病毒的传播途径有很多,例如隐藏在传输的文件或者数据中,或者借助一些不安全的网络等等。病毒一旦进入您的计算机系…

【NDVI:注意力机制:遥感图像】

NDVI-Net: A fusion network for generating high-resolution normalized difference vegetation index in remote sensing (NDVI-Net:一种生成高分辨率归一化植被指数的遥感融合网络) 归一化植被指数(Normalized Difference Ve…

Matlab最小二乘平面拟合(SVD方法)—点云处理及可视化第3期

在之前的文章中,分享了Matlab基于PCA的平面拟合方法: 这一次,再来分享一下基于奇异值分解(Singular Value Decomposition, SVD)的平面拟合。 先来看一下成品效果: 特别提示:《Matlab点云处理及…

融合多策略的萤火虫算法求解多目标优化问题(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

数字化门店| 美甲美睫店管理系统| 小程序教程

随着悦己消费升级,女性对于自身外观上的消费支出增加,近几年疫情之下,人们出门常戴口罩,对于爱美的女孩,打扮的漂漂亮亮却被口罩遮挡了容颜,都说眼睛与手可以看出一个人的心灵与美,因此美甲美睫…

new Promise(function(resolve, reject){}) 的reject相当于抛异常

通过reject传异常&#xff1a; <html><body><script>const promise new Promise(function(resolve, reject) {if (Math.random() > 0.5){resolve("value");} else {reject(new Error("throw error"));//throw new Error("thro…

分层架构理论基础

一、三层架构 1、什么是三层架构 三层架构&#xff08;3-tier architecture&#xff09;通常意义上的三层架构就是将整个业务应用划分为&#xff1a;表示层&#xff08;User Interface layer&#xff09;、业务逻辑层&#xff08;Business Logic Layer&#xff09;、数据访问层…