Closed lpj0822 closed 3 years ago
经过segnet的python代码和原始的mobilenetv2_fgseg.cfg进行了比对,发现一处不同。如下图所示: 通过多个项目的mobilenetv2的比对,新的segnet的python代码的mobilenetv2是正确的。 @lpj0822
对于segnet,对外不在用mobilenetv2_fgseg.cfg文件作为输入,使用-m segnet作为参数传入。后期开发方式为使用对内cfg优化网络,网络确认后使用python代码实现,然后对外发布网络,以及确认网络输出层 @foww-0001
后面segnet测试,测python代码实现的网络
后面segnet测试,测python代码实现的网络 @foww-0001
训练原始的cfg文件精度提升不上去。具体的运行脚本是:
python3 easyai/train_task.py -t segment -i /home/wfw/data/VOCdevkit/CarScratch_segment/ImageSets/train.txt -v /home/wfw/data/VOCdevkit/CarScratch_segment/ImageSets/val.txt -m ./cfg/seg/mobilenetv2_fgseg.cfg -p /home/wfw/workspace/HASCO/all_wights/MobilenetV2_FgSegNetV2.pt
分割的精度如下:
Overall Acc: 0.9987664950112649
Mean Acc : 0.5011425594653542
FreqW Acc : 0.9975429305589304
Mean IoU : 0.5005221979327251
Val epoch loss: 0.0476088
找到原因是由于预训练模型不对。
segnet的python代码训练中,需要把固定层的参数进行修改,如下:
"freeze_layer_name": "down_invertedResidual_11",
"freeze_layer_type": 2,
segnet的python代码和原始的mobilenetv2_fgseg.cfg进行了比对,结果如下: Model | mIoU(Err) | GOPS # (G) | Interpolation | Image Size |
---|---|---|---|---|
mobilenetv2_fgsegnetv2.cfg | 71.43(0.0093521) | 30.658 | nearest | 500x400 |
segnet | 74.21(0.0062603) | 30.658 | nearest | 500x400 |
segnet的python代码训练效果更好,预训练模型segnet.pt已经上传到百度网盘/深度学习模型文件/pytorch/segnet.pt。
预训练模型修改了?
预训练模型已经上传到百度网盘。 @lpj0822
代码已经修改
1.python代码实现segnet网络 2.验证网络效果与原先一致