当前位置:网站首页>使用BiSeNet实现自己的数据集
使用BiSeNet实现自己的数据集
2022-07-07 05:19:00 【我是一个小稻米】
数据集准备
数据集:遥感房屋影像分割,分先后两个时间,主要是实现建筑物面积随时间的面积变化情况。
百度云:https://pan.baidu.com/s/1HlnKWToc00986jiTxhq_CA
提取码:RSAI
数据处理
1. 数据集
数据集存放在根目录下的datasets文件夹下,与coco和city数据集并列,如果你的数据集的标签已经是0,1,那么可以不用管label_255,如果标签没有经过255-->1的转化,可以先将标签文件放在label_255下。
—BiSeNet
---------datasets
-----------------coco
-----------------cityscapes
-----------------time
-----------------------train
------------------------------image
------------------------------label_255
------------------------------label
-----------------------val
------------------------------image
------------------------------label_255
------------------------------label
2. 在datasets/times/文件夹下创建one.py
目的是将0,255的标签转化为0,1,如果是多类的,那么标签就是0,1,2,3,...n
代码中只转化了train中的文件,要转化val中的文件,修改train为val即可
import os
import cv2 as cv
labels_path = './train/label_255'
labels_save_path = './train/label'
lab_names = os.listdir(labels_path)
for s in lab_names:
label_path = os.path.join(labels_path, s)
label_save_path = os.path.join(labels_save_path, s)
label = cv.imread(label_path, 0)
label[label!=0]=1
cv.imwrite(label_save_path, label)
2. 在datasets/times/文件夹下创建util.py文件
目的是生成train.txt文件和val.txt文件,要转化val.txt文件,只需要将下面代码中的所有train换成val即可(有三处)
import os
image_path = './train/image'
label_path = './train/label'
image_names = os.listdir(image_path)
for s in image_names:
image = os.path.join(image_path, s)
label = os.path.join(label_path, s)
with open('train.txt', 'a') as fin:
fin.write(image[2:] +","+ label[2:] +"\n")
fin.close()
网络模型地址
模型修改
1. 修改configs/bisenet_customer.py文件

n_cats:包括背景在内的类别数,这里类别是2max_iter:训练次数im_root:数据路径train_im_anns:刚才生成的train.txt路径val_im_anns:刚才生成的val.txt路径cropsize:改成图像尺寸eval_crop:改成图像尺寸(不知道作用)ims_per_gpu:gpu数量
2. 修改类别
这个数据集类别是2
如果configs/bisenet_customer.py中的model_type='bisenetv2'修改lib/models/bisenetv2.py文件中的n_classes=2

如果configs/bisenet_customer.py中的model_type='bisenetv1'修改lib/models/bisenetv1.py文件中的BiSeNetV1(2)
运行命令
--nproc_per_node不知道什么意思,这里的2是gpu的数量
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 tools/train_amp.py --config configs/bisenet_customer.py
就可以正常运行啦!!
边栏推荐
- Basic use of CTF web shrink template injection nmap
- Standard function let and generic extension function in kotlin
- Vulnerability recurrence fastjson deserialization
- Unityhub cracking & unity cracking
- Complex network modeling (III)
- 让Livelink初始Pose与动捕演员一致
- Myabtis_Plus
- Register of assembly language by Wang Shuang
- Interview questions (CAS)
- 运放电路的反馈电阻上并联一个电容是什么作用
猜你喜欢

追风赶月莫停留,平芜尽处是春山

发挥创客教育空间的广泛实用性

Rainbond 5.7.1 支持对接多家公有云和集群异常报警

JS copy picture to clipboard read clipboard

eBPF Cilium实战(2) - 底层网络可观测性

Leetcode medium question my schedule I

Vulnerability recurrence fastjson deserialization

What is the function of paralleling a capacitor on the feedback resistance of the operational amplifier circuit

Record a stroke skin bone error of the skirt

Unityhub cracking & unity cracking
随机推荐
OpenJudge NOI 2.1 1752:鸡兔同笼
Niu Mei's mathematical problem --- combinatorial number
Avatary's livedriver trial experience
ZCMU--1396: 队列问题(2)
追风赶月莫停留,平芜尽处是春山
Zcmu--1492: problem d (C language)
JS copy picture to clipboard read clipboard
Zsh shell adds automatic completion and syntax highlighting
利用 Helm 在各类 Kubernetes 中安装 Rainbond
[quick start of Digital IC Verification] 14. Basic syntax of SystemVerilog learning 1 (array, queue, structure, enumeration, string... Including practical exercises)
Real time monitoring of dog walking and rope pulling AI recognition helps smart city
Full text query classification
Zcmu--1396: queue problem (2)
力扣(LeetCode)187. 重复的DNA序列(2022.07.06)
Call pytorch API to complete linear regression
eBPF Cilium实战(2) - 底层网络可观测性
Summary of redis functions
Minimum absolute difference of binary search tree (use medium order traversal as an ordered array)
基于Pytorch 框架手动完成线性回归
【雅思口语】安娜口语学习记录 Part2