当前位置:网站首页>使用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
就可以正常运行啦!!
边栏推荐
- LeetCode简单题之判断一个数的数字计数是否等于数位的值
- Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验
- 通俗易懂单点登录SSO
- 漏洞复现-easy_tornado
- Minimum absolute difference of binary search tree (use medium order traversal as an ordered array)
- Leetcode simple question: find the K beauty value of a number
- 复杂网络建模(二)
- 让Livelink初始Pose与动捕演员一致
- 【无标题】
- Real time monitoring of dog walking and rope pulling AI recognition helps smart city
猜你喜欢
Unityhub cracking & unity cracking
CCTV is so warm-hearted that it teaches you to write HR's favorite resume hand in hand
LeetCode简单题之找到一个数字的 K 美丽值
Complex network modeling (I)
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
eBPF Cilium实战(2) - 底层网络可观测性
探索STEAM艺术设计中的创造力
Network learning (III) -- highly concurrent socket programming (epoll)
Game attack and defense world reverse
电池、电机技术受到很大关注,反而电控技术却很少被提及?
随机推荐
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
通俗易懂单点登录SSO
Complex network modeling (I)
Easy to understand SSO
【雅思口语】安娜口语学习记录 Part2
追风赶月莫停留,平芜尽处是春山
Leetcode medium question my schedule I
OpenJudge NOI 2.1 1752:鸡兔同笼
使用 Nocalhost 开发 Rainbond 上的微服务应用
Dedecms collects content without writing rules
Notes on PHP penetration test topics
Empire CMS collection Empire template program general
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
Recursive method constructs binary tree from middle order and post order traversal sequence
藏书馆App基于Rainbond实现云原生DevOps的实践
复杂网络建模(二)
LeetCode简单题之找到一个数字的 K 美丽值
CTF-WEB shrine模板注入nmap的基本使用
It took "7" years to build the robot framework into a micro service
Network learning (I) -- basic model learning