DeeplabV3 制作自己数据集,遇到的问题

在使用DeeplabV3训练自己的数据集时,遇到了tfrecord格式转换、train_crop_size设置及验证过程中的问题。转换tfrecord时,由于train.txt文件末尾的空格导致错误;train_crop_size参数应正确设置为一行,如--train_crop_size=513,513;验证阶段注意eval_crop_size应与图像尺寸匹配,并确保所有路径正确无误。" 103005899,9151154,Java子类构造方法调用父类机制解析,"['Java', '继承', '构造器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、deeplabv3+训练自己数据时,转换tfrecord格式出现问题。一直没有train.txt的转换结果。

  结果出现 ./pascal_voc_seg/VOCdevkit/mydata/JPEGImages/.jpg; No such file or directory  错误。

 后来发现是train.txt文件下最后有两行空格。删掉后重新执行程序即可转换完成。

 

 

2、 训练时,train_crop_size问题

python3 deeplab/train.py \
    --logtostderr \
    --training_number_of_steps=20000 \
    --train_split="train" \
    --model_variant="xception_65" \
    --atrous_rates=6 \
    --atrous_rates=12 \
    --atrous_rates=18 \
    --output_stride=16 \
    --decoder_output_stride=4 \
    --train_crop_size=513,513 \
    --train_batch_size=1 \
    --fine_tune_batch_norm=False \
    --dataset="pascal_voc_seg" \
    --tf_initial_checkpoint='./deeplab/deeplabv3_pascal_tr
### DeepLabV3+ 数据预处理和格式转换 对于DeepLabV3+模型而言,在准备数据集时需遵循特定的结构与格式,以确保训练过程顺利进行。当下载并解压PASCAL VOC数据集至`DeepLabV3Plus-Pytorch/datasets/data`目录下之后,应进一步完成必要的数据转换工作[^1]。 #### 创建适当的数据集结构 为了使DeepLabV3+能够识别所使用的自定义数据集,通常需要构建如下所示的标准文件夹架构: ``` data/ ├── JPEGImages/ │ └── *.jpg (图像文件) ├── SegmentationClass/ │ └── *.png (对应于每张图像的像素级标注掩膜) └── ImageSets/ └── Segmentation/ ├── train.txt (训练样本列表) ├── val.txt (验证样本列表) └── test.txt (测试样本列表, 可选) ``` 上述路径中的`.txt`文件包含了相应集合内所有图像名称(不带扩展名),每一行为一条记录;而`*.png`文件则代表了针对各输入图像制作好的真值标签图谱,其中不同灰度级别表示不同的类别编号。 #### 图像尺寸调整 考虑到计算资源的有效利用以及加速收敛速度,建议预先设定好统一的目标分辨率,并据此裁剪或缩放原始图片及其相应的标签映射。此操作可以通过Python脚本实现自动化批量处理,下面给出一段简单的代码片段作为示范: ```python from PIL import Image import os def resize_images(input_dir, output_dir, size=(512, 512)): if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): img_path = os.path.join(input_dir, filename) with Image.open(img_path) as im: resized_im = im.resize(size, resample=Image.BILINEAR) save_path = os.path.join(output_dir, filename) resized_im.save(save_path) resize_images('path/to/JPEGImages', 'resized_JPEGImages') resize_images('path/to/SegmentationClass', 'resized_SegmentationClass') ``` 这段程序会遍历指定源文件夹内的每一个图像文件,将其大小更改为给定参数`size`规定的宽度和高度,最后保存到目标位置。注意这里的插值方式选择了双线性重采样(`BILINEAR`),这适用于大多数情况下的连续色调图像变换需求。 #### 处理缺失标签的情况 有时可能会遇到某些图像缺少匹配的分割标签的情形,正如提到过的那样,如果发现JPEGImages中有部分成员未能在SegmentationClass找到对应的.png文件,则应当仔细核查这些异常案例的原因所在。可能是因为命名错误或是遗漏上传所致。解决办法可以是对齐两个子集中元素的数量关系,删除那些确实不存在关联标记项的照片条目,或者手动补充遗失的部分[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值