当前位置:网站首页>使用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
就可以正常运行啦!!
边栏推荐
- Offer harvester: add and sum two long string numbers (classic interview algorithm question)
- BiSeNet的特点
- 基于Pytorch 框架手动完成线性回归
- Quick analysis of Intranet penetration helps the foreign trade management industry cope with a variety of challenges
- 发挥创客教育空间的广泛实用性
- [untitled]
- buureservewp(2)
- 在Rainbond中实现数据库结构自动化升级
- 复杂网络建模(三)
- The zblog plug-in supports the plug-in pushed by Baidu Sogou 360
猜你喜欢
CCTV is so warm-hearted that it teaches you to write HR's favorite resume hand in hand
opencv学习笔记五——梯度计算/边缘检测
快解析内网穿透为文档加密行业保驾护航
JS cross browser parsing XML application
jeeSite 表单页面的Excel 导入功能
Network learning (II) -- Introduction to socket
eBPF Cilium实战(1) - 基于团队的网络隔离
eBPF Cilium实战(2) - 底层网络可观测性
opencv学习笔记三——图像平滑/去噪处理
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
随机推荐
通俗易懂单点登录SSO
Introduction à l'objet blob
Zcmu--1492: problem d (C language)
复杂网络建模(二)
机器人教育在动手实践中的真理
在Rainbond中一键部署高可用 EMQX 集群
Avatary's livedriver trial experience
Complete linear regression manually based on pytoch framework
Openjudge noi 2.1 1752: chicken and rabbit in the same cage
Excel import function of jeesite form page
opencv学习笔记四——膨胀/腐蚀/开运算/闭运算
雅思考试自己的复习进度以及方法使用【日更版】
LeetCode简单题之判断一个数的数字计数是否等于数位的值
Notes on PHP penetration test topics
快解析内网穿透为文档加密行业保驾护航
JS复制图片到剪切板 读取剪切板
Blob 對象介紹
Easy to understand SSO
复杂网络建模(三)
Dedecms collects content without writing rules