tensorflow——deeplabv3+训练cityscapes数据集(未完待续)

Anaconda 3 下创建 tfgpu 虚拟环境

source activate tfgpu

1、下载并准备cityscapes数据集
在datasets下创建cityscapes文件夹
在这里插入图片描述

链接: https://pan.baidu.com/s/1wcY6Dit5homnBG2Nzvz0ZA  密码: d84s

下载百度网盘中的数据集到 cityscapes 文件夹中

执行

$ cd models/research/deeplab/datasets
$ sh convert_cityscapes.sh

错误1:
在这里插入图片描述
修改convert_cityscapes.sh

# Create training labels.
python "${CITYSCAPES_ROOT}/cityscapesScripts/cityscapesscripts/preparation/createTrainIdLabelImgs.py"

修改createTrainIdLabelImgs.py

# python imports
from __future__ import print_function, absolute_import, division
import os, glob, sys
sys.path.append('/home/mirrorubuntu/models/research/deeplab/datasets/cityscapes/cityscapesScripts')# add path
# cityscapes imports
from cityscapesscripts.helpers.csHelpers import printError
from cityscapesscripts.preparation.json2labelImg import json2labelImg

# The main method
def main():
    # Where to look for Cityscapes
    if 'CITYSCAPES_DATASET' in os.environ:
        cityscapesPath = os.environ['CITYSCAPES_DATASET']
    else:
        cityscapesPath = os.path.join(os.path.dirname(os.path.realpath(__file__)),'..','..')
    # how to search for all ground truth
    searchFine   = os.path.join( "/home/mirrorubuntu/models/research/deeplab/datasets/cityscapes" , "gtFine"   , "*" , "*" , "*_gt*_polygons.json" ) #改为绝对路径
    searchCoarse = os.path.join( cityscapesPath , "gtCoarse" , "*" , "*" , "*_gt*_polygons.json" )
pip install cityscapesscripts

错误2:在这里插入图片描述

pip3 install pyquaternion

在这里插入图片描述

$ sh convert_cityscapes.sh

tfrecord文件夹下转换成功

2、训练cityscapes数据

下载预训练权重文件

https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md

在这里插入图片描述在exp文件夹下创建名为 cityscapes_train 的文件夹

python train.py \
   --logtostderr \
   --training_number_of_steps=100 \
   --train_split="train" \
   --model_variant="xception_65" \
   --atrous_rates=6 \
   --atrous_rates=12 \
   --atrous_rates=18 \
   --output_stride=16 \
   --decoder_output_stride=4 \
   --train_crop_size=321,321 \
   --train_batch_size=4 \
   --fine_tune_batch_norm=False \
   --dataset="cityscapes" \
   --tf_initial_checkpoint='/home/mirrorubuntu/models/research/deeplab/deeplabv3_cityscapes_train/model.ckpt' \
   --train_logdir='/home/mirrorubuntu/models/research/deeplab/exp/cityscapes_train/train' \
   --dataset_dir='/home/mirrorubuntu/models/research/deeplab/datasets/cityscapes/tfrecord'

错误1:

Unknown: Failed to get convolution algorithm. This is probably because cuDNN

解决办法:

import os

os.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'

3. 测试结果可视化

python vis.py \
--logtostderr \
--vis_split="val" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--vis_crop_size= 1025,2049 \
--dataset= "cityscapes" \
--colormap_type= "cityscapes" \
--checkpoint_dir='/home/mirrorubuntu/models/research/deeplab/exp/cityscapes_train/train' \
--vis_logdir='/home/mirrorubuntu/models/research/deeplab/exp/cityscapes_train/vis' \
--dataset_dir='/home/mirrorubuntu/models/research/deeplab/datasets/cityscapes/tfrecord' 

vis_split:设置为测试集
vis_crop_size:设置1024,2048为图片的大小
dataset:设置为我们在data_generator.py文件设置的数据集名称
dataset_dir:设置为创建的TFRecord
colormap_type:可视化标注的颜色
可到目录deeplab/exp/cityscapes_train/vis下查看可视化结果

在这里插入图片描述出现了奇怪错误,看了好久还是没办法解决

python eval.py \
--logtostderr \
--eval_split="val" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--eval_crop_size=1025,2049 \
--dataset="cityscapes" \
--checkpoint_dir='/home/mirrorubuntu/models/research/deeplab/exp/cityscapes_train/train'\
--eval_logdir='/home/mirrorubuntu/models/research/deeplab/exp/cityscapes_train/eval' \
--dataset_dir='/home/mirrorubuntu/models/research/deeplab/datasets/cityscapes/tfrecord'' \
--max_number_of_evaluations=1

参考链接:

https://www.freesion.com/article/1186620066/
https://codeantenna.com/a/YBBUkMT72q


版权声明:本文为qq_38766208原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。