MiniBullLab / easy_ai

3 stars 1 forks source link

segnet网络改写为python代码 #43

Closed lpj0822 closed 3 years ago

lpj0822 commented 3 years ago

1.python代码实现segnet网络 2.验证网络效果与原先一致

foww-0001 commented 3 years ago

经过segnet的python代码和原始的mobilenetv2_fgseg.cfg进行了比对,发现一处不同。如下图所示: 57734664 通过多个项目的mobilenetv2的比对,新的segnet的python代码的mobilenetv2是正确的。 @lpj0822

lpj0822 commented 3 years ago

对于segnet,对外不在用mobilenetv2_fgseg.cfg文件作为输入,使用-m segnet作为参数传入。后期开发方式为使用对内cfg优化网络,网络确认后使用python代码实现,然后对外发布网络,以及确认网络输出层 @foww-0001

lpj0822 commented 3 years ago

后面segnet测试,测python代码实现的网络

lpj0822 commented 3 years ago

后面segnet测试,测python代码实现的网络 @foww-0001

foww-0001 commented 3 years ago

训练原始的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

找到原因是由于预训练模型不对。

foww-0001 commented 3 years ago

segnet的python代码训练中,需要把固定层的参数进行修改,如下:

"freeze_layer_name": "down_invertedResidual_11",
"freeze_layer_type": 2,
foww-0001 commented 3 years ago
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。

MiniBullLab commented 3 years ago

预训练模型修改了?

foww-0001 commented 3 years ago

预训练模型已经上传到百度网盘。 @lpj0822

lpj0822 commented 3 years ago

代码已经修改