2020 CCF BDCI 遥感影像地块分割比赛主办方提供了PaddleSeg静态图版本作为baseline,现正值飞桨框架推荐使用动态图,作为飞桨的图像分割工具套件PaddleSeg动态图版也已经适配了Paddle 2.0rc版。Seg的动态图版本是今后推荐使用的,第一期支持的模型数和精度也已经超过静态图版了,但目前在处于实验阶段,并未全面向用户推出,借着这次比赛机会,我们也测试了动态图的性能。
作为动态图的baseline,我们选择了一个比较简单的分割模型,HRNet_W48+FCN,并未做任何调参,配置文件以及测试结果在这里能找到:
PaddleSeg动态图主目录:https://github.com/PaddlePaddle/PaddleSeg/tree/develop/dygraph
遥感分割比赛配置文件:https://github.com/PaddlePaddle/PaddleSeg/tree/develop/dygraph/contrib/remote_sensing
数据准备参考:https://aistudio.baidu.com/aistudio/projectdetail/1090790
训练方式:
python -m paddle.distributed.launch train.py --config contrib/remote_sensing/fcn_hrnetw48_ccf_256x256_160k.yml --save_dir save_model_path --save_interval 8000 --log_iters 200 --do_eval --use_vdl
单尺度评估:
python -m paddle.distributed.launch val.py --config contrib/remote_sensing/fcn_hrnetw48_ccf_256x256_160k.yml --model_path save_model_path/best_model/model.pdparams
多尺度评估:
python -m paddle.distributed.launch val.py --config contrib/remote_sensing/fcn_hrnetw48_ccf_256x256_160k.yml --model_path save_model_path/best_model/model.pdparams --aug_eval --scales 1.0 1.25 --flip_horizontal
我们采用了1.0和1.25倍的多尺度做一个示例(同学们可以尝试更多组合),另外加了水平翻转。
生成上传图片:
python predict.py --config contrib/remote_sensing/fcn_hrnetw48_ccf_256x256_160k.yml --model_path save_model_path/best_model/model.pdparams --image_path dataset/rs_data/img_testA --aug_pred --scales 1.0 1.25 --flip_horizontal --save_dir output_images_path
和多尺度评估方式类似。
我们最后得到的结果:在单尺度验证集mIoU是71.55%,增加多尺寸和翻转验证集mIoU是72.42%,最后在初赛的测试集mIoU是70.36%,结果和训练模型都能在PaddleSeg动态图里面找到:
https://github.com/PaddlePaddle/PaddleSeg/tree/develop/dygraph/contrib/remote_sensing
目前PaddleSeg动态图版本正在快马加鞭的完善文档中,可能有些遗漏,有不清楚的欢迎直接加QQ群(850378321)圈我们,如果对大家有帮助,希望能在github上给我们PaddleSeg点小星星。
https://github.com/PaddlePaddle/PaddleSeg
强!
赞!好强!
厉害了!
非常棒
厉害了
早点出来就好了,费了不少算力
比赛快结束的时候开源了一个70分的baseline。。。
想请教下,test没有对应的label,配置文件总是报错缺失
,怎么办呢?
配置文件里不需要配置test的
您好,感谢分享。我想请问静态图版本的HRNet_W48也能达到差不多的效果吗?
你好,静态图我们没测试过,但应该能达到差不多的结果。
这是怎么回事啊!!!
model:
type: FCN
backbone:
type: HRNet_W48
pretrained: pretrained_model/hrnet_w18_ssld
num_classes: 8
pretrained: Null
backbone_indices: [-1]
TypeError: __init__() missing 1 required positional argument: 'num_classes'
我用你的方法跑出了基本的模型,然后进行预测,但是生成的是.jpg后缀的图片,提交进行测验失败。修改到符合ccf大赛的.png格式后,评测系统提示需要输入单通道的像素图片,这个怎么能让predict.py文件直接生成符合题目要求的图片格式啊,我尝试进行修改pridict.py文件,但是提示我没有相应的权限。大佬,求教。
请用develop分支
不太懂,是用最新的Paddleseg文件吗,我这个是一个月前colne的。
为毛静态图deeplabv3+一直徘徊在0.63的样子,加了一堆的trick都上不去,动态图一个fcn就0.7了。。。
您好这是什么原因呢?
如果是aistudio的话,将num_workers设置成0,因为共享缓存不足。
请问AI STUIDIO平台的GPU跑完测试需要多久呢
我看了一下log信息,发现是用的4张V100训练的,每张卡上bs16,所以每轮实际上bs是64。如果我们用aistudio上单卡跑的话,使用同样配置,要跑100多个小时才能训完。。欲哭无泪。。缺算力呀