当前位置:网站首页>使用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
:包括背景在内的类别数,这里类别是2
max_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
就可以正常运行啦!!
边栏推荐
- 复杂网络建模(三)
- [step on the pit series] H5 cross domain problem of uniapp
- Rainbond 5.7.1 支持对接多家公有云和集群异常报警
- Full text query classification
- Topic not received? Try this
- Offer harvester: add and sum two long string numbers (classic interview algorithm question)
- 海信电视开启开发者模式
- 【Go ~ 0到1 】 第七天 获取时间戳,时间比较,时间格式转换,Sleep与定时器
- Blob 对象介绍
- 太真实了,原来自己一直没有富裕起来是有原因的
猜你喜欢
机器人教育在动手实践中的真理
CCTV is so warm-hearted that it teaches you to write HR's favorite resume hand in hand
Unityhub cracking & unity cracking
饥荒云服管理脚本
探索STEAM艺术设计中的创造力
CDC (change data capture technology), a powerful tool for real-time database synchronization
让Livelink初始Pose与动捕演员一致
What is the function of paralleling a capacitor on the feedback resistance of the operational amplifier circuit
数据库实时同步利器——CDC(变化数据捕获技术)
Qinglong panel - today's headlines
随机推荐
Rainbond 5.7.1 支持对接多家公有云和集群异常报警
Bugku CTF daily one question chessboard with only black chess
拓维信息使用 Rainbond 的云原生落地实践
电池、电机技术受到很大关注,反而电控技术却很少被提及?
OpenVSCode云端IDE加入Rainbond一体化开发体系
Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验
game攻防世界逆向
Uniapp mobile terminal forced update function
DNS server configuration
[quick start of Digital IC Verification] 12. Introduction to SystemVerilog testbench (svtb)
Offer harvester: add and sum two long string numbers (classic interview algorithm question)
Complex network modeling (III)
Infix keyword infix expression and the use of generic extension function in kotlin
The reified keyword in kotlin is used for generics
Unityhub cracking & unity cracking
追风赶月莫停留,平芜尽处是春山
一文了解如何源码编译Rainbond基础组件
复杂网络建模(二)
解析创新教育体系中的创客教育
Qinglong panel - today's headlines