最近做街景语义分割相关的工作,因为没有gpu训练模型,且训练的模型往往miou很低,还不如直接找训练好的模型,所以在github找到了一个模型,具有cityscapes数据集预训练权重,不需要训练模型,不需要看懂模型,一行代码直接出语义分割之后的结果。
语义分割之后,用pyhton统计各个类别所占像素个数,用于后续定量指标的计算。
github链接
https://github.com/VainF/DeepLabV3Plus-Pytorch
链接失效,直接github搜索:VainF/DeepLabV3Plus-Pytorch
下载代码,下载预训练好的权重
选择哪一个都行,随便下载一个,以DeepLabV3Plus-ResNet101为例
下载后的文件后缀的‘.tar’直接删除,然后将文件放到,没有checkpoints文件夹就自己建一个。
无需训练,命令行直接预测。
单张图片:
python predict.py --input datasets/data/cityscapes/leftImg8bit/train/bremen/bremen_000000_000019_leftImg8bit.png --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results
文件夹:
python predict.py --input datasets/data/cityscapes/leftImg8bit/train/bremen --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results
直接将所有图片进行语义分割,随后将四个图片的像素求平均即可。
建议直接用四个方向的图预测。
如果是全景图的话,建议用ptgui pro拆分成上下前后左右六个方向,保留前后左右四个方向,是否保留上方向,自己考虑。根据我的结果是不建议,全是天空没有意义且模型分错严重。
能下载到四个方向的单张图片,就不建议下载全景图。
全景图还是四个方向,见仁见智,论文中都有,只不过更多的是四个方向。有什么,用什么。
以文件夹为例:
python predict.py --input D:\000datasets\XXXX\images360 --dataset cityscapes --model deeplabv3plus_resnet101 --ckpt checkpoints/best_deeplabv3plus_resnet101_cityscapes_os16.pth --save_val_results_to D:\000datasets\XXXX\images360分割结果
如果下载的模型是:
--model deeplabv3plus_mobilenet
--ckpt checkpoints/best_deeplabv3plus_mobilenet_cityscapes_os16.pth
--model deeplabv3plus_resnet101
--ckpt checkpoints/best_deeplabv3plus_resnet101_cityscapes_os16.pth
出现其他运行的错误,包括但不限于 numpy之类的,百度搜索一下就可以解决。
语义分割之后,统计各类像素数量的代码:
示例图。
常规提取代码:运行速度比较慢,大概2张/1s。
改进提取代码:(图片多用得到,图片少就普通代码就行了)。能达到60张/s(取决于cpu),并且文件保存时间几乎为0。
需要代码私信或直接发邮箱437969428@qq.com(语义分割结果提取像素的代码,不是模型提升精度的代码),10以内。建议发邮箱,能直接看到,私信回复不及时。