FCN 

通常情况下,FCN可以分为3种:FCN-32、FCN-16、FCN-8(分别表示32倍上采样、16倍上采样、8倍上采样)。

16上采样过程:先把32倍下采样的feature map上采样2倍,变成16倍下采样feature map,再和原来16倍下采样的feature map进行connect操作。最后,16倍双线性插值到原图像大小。

8上采样过程:先把32倍下采样的feature map上采样2倍,变成16倍下采样feature map,再和原来16倍下采样的feature map进行connect操作。将合并后的feature map再和8倍下采样的feature map再进行connect操作。最后,8倍双线性插值到原图像大小。

网络代码地址:https://github.com/aurora95/Keras-FCN/blob/master/models.py

 

Unet 

形状看起来像一个U型,大概的步骤就是先下采样,经历了5个阶段。然后将每个阶段的feature map上采样2倍,将原来对应阶段的feature map进行crop后,进行connect操作。依次类推。

代码地址:https://github.com/zhixuhao/unet/blob/master/model.py

 

deeplabv1

网络结构就是:FCN + denseCRF. 

 

deeplabv2

ASPP的作用 : 由于同一类的物体在图像中可能有不同的比例,ASPP 有助于考虑不同的物体比例,这可以提高准确性。 

网络结构:deeplabv1的升级版,加入了ASPP,其他的和v1类似。

代码地址: https://github.com/DavideA/deeplabv2-keras/blob/master/deeplabV2.py

 

deeplabv3

 

网络结构:deeplabv2的改进版,https://blog.csdn.net/u011974639/article/details/79144773博客里说的很好的。

代码地址:https://github.com/fregu856/deeplabv3/blob/master/model/deeplabv3.py

 

deeplabv3+

 

网络结构:https://blog.csdn.net/u011974639/article/details/79518175写的很好,可以参考。

代码地址: https://github.com/tensorflow/models/tree/master/research/deeplab

运行deeplabv3+的注意事项:

  1、ModuleNotFoundError: No module named 'deeplab'

   在win10下,train、eval、vis的文件中加入 

import sys
sys.path.append(r'D:\BGY\python\deeplabV3\models-master\research')
sys.path.append(r'D:\BGY\python\deeplabV3\models-master\research\slim')

  2、如果 GPU 显存有限,可以在 ModelZoo 中提供的断点模型 Checkpoints 上进行 finetune,其 batchnorm 参数已经训练过,采用小一点的学习率,并设置 fine_tune_batch_norm = False

  3、运行eval时,程序一直停放在INFO:tensorflow:Waiting for new checkpoint at D:/BGY/python/deeplabV3/models-master/research/deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train,这不是错误。同时运行train和eval可以解决。

 

欢迎大家批评、指正。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐