成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用DeepLab進(jìn)行語義分割

lavnFan / 3117人閱讀

摘要:介紹是谷歌使用基于開發(fā)的語義分割模型,至今已更新個(gè)版本。最新版本是,在此模型中進(jìn)一步將深度可分離卷積應(yīng)用到孔空間金字塔池化和解碼器模塊,從而形成更快,更強(qiáng)大的語義分割編碼器解碼器網(wǎng)絡(luò)。

介紹

DeepLab是谷歌使用tensorflow基于CNN開發(fā)的語義分割模型,至今已更新4個(gè)版本。最新版本是DeepLabv3+,在此模型中進(jìn)一步將深度可分離卷積應(yīng)用到孔空間金字塔池化和解碼器模塊,從而形成更快,更強(qiáng)大的語義分割編碼器-解碼器網(wǎng)絡(luò)。本文從官方案例出發(fā),介紹如何訓(xùn)練以及使用DeepLabv3+模型。

模型安裝

1,下載tensorflow model,然后將解壓后的文件重命名為”models“并移動(dòng)到tensorflow文件夾下。

2,添加環(huán)境變量

cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

3,測(cè)試是否安裝成功

cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research
python deeplab/model_test.py

結(jié)果出現(xiàn)如下錯(cuò)誤:

解決方法如下:


準(zhǔn)備數(shù)據(jù)

下載數(shù)據(jù):

cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research/deeplab/datasets/
sh download_and_convert_voc2012.sh

具體執(zhí)行步驟:

下載并解壓VOC2012數(shù)據(jù)集

移除colormap

在數(shù)據(jù)集中創(chuàng)建TFRecord文件

下載預(yù)訓(xùn)練模型

官方提供了多種模型,可以根據(jù)自己的實(shí)際需求下載安裝。

使用PASCAL VOC2012數(shù)據(jù)集訓(xùn)練

文件結(jié)構(gòu):

tensorflow deeplab文件夾:

訓(xùn)練:

cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research

填寫相關(guān)路徑,執(zhí)行訓(xùn)練

python deeplab/train.py 
    --logtostderr 
    --training_number_of_steps=30000 
    --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=513 
    --train_crop_size=513 
    --train_batch_size=1 
    --dataset="pascal_voc_seg" 
    --tf_initial_checkpoint=${PATH_TO_INITIAL_CHECKPOINT} 
    --train_logdir=${PATH_TO_TRAIN_DIR} 
    --dataset_dir=${PATH_TO_DATASET}

PATH_TO_INITIAL_CHECKPOINT:初始checkpoint文件路徑(遷移學(xué)習(xí))
PATH_TO_TRAIN_DIR:訓(xùn)練模型保存路徑
PATH_TO_DATASET:數(shù)據(jù)集路徑

需要注意的問題:

當(dāng)GPU顯存不夠,使用遷移學(xué)習(xí)方式進(jìn)行訓(xùn)練并減少學(xué)習(xí)率大小,設(shè)置”fine_tune_batch_norm=False“

當(dāng)設(shè)置”output_stride=8“,”atrous_rates“取值區(qū)間應(yīng)由[6,12,18]改為[12,24,36]。

當(dāng)不想使用解碼器結(jié)構(gòu),需要注釋掉”decoder_output_stride“。

驗(yàn)證
cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research
python deeplab/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=513 
    --eval_crop_size=513 
    --dataset="pascal_voc_seg" 
    --checkpoint_dir=${PATH_TO_CHECKPOINT} 
    --eval_logdir=${PATH_TO_EVAL_DIR} 
    --dataset_dir=${PATH_TO_DATASET}

PATH_TO_CHECKPOINT:訓(xùn)練階段checkpoint文件路徑
PATH_TO_EVAL_DIR:評(píng)估模型保存路徑
PATH_TO_DATASET:數(shù)據(jù)集路徑

可視化模型輸出
cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research
python deeplab/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=513 
    --vis_crop_size=513 
    --dataset="pascal_voc_seg" 
    --checkpoint_dir=${PATH_TO_CHECKPOINT} 
    --vis_logdir=${PATH_TO_VIS_DIR} 
    --dataset_dir=${PATH_TO_DATASET}

PATH_TO_CHECKPOINT:訓(xùn)練階段checkpoint文件路徑
PATH_TO_VIS_DIR:評(píng)估模型保存路徑
PATH_TO_DATASET:數(shù)據(jù)集路徑
需要注意的問題:
當(dāng)需要保存分割結(jié)果時(shí),需要設(shè)置”also_save_raw_predictions = True“

Tensorboard
tensorboard --logdir=${PATH_TO_LOG_DIRECTORY}

將同時(shí)顯示”train“,”eval“,”vis“結(jié)果,如需要多帶帶顯示一類,可以指定顯示類別,如:

tensorboard --logdir train/

對(duì)于voc2012這樣的數(shù)據(jù)集,Tensorboard顯示數(shù)據(jù)可能需要幾分鐘的時(shí)間。

模型導(dǎo)出
cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research
python deeplab/export_model.py 
    --logtostderr 
    --checkpoint_path="${PATH_TO_CHECKPOINT}" 
    --export_path="${PATH_TO_EXPORT_PD}" 
    --model_variant="xception_65" 
    --atrous_rates=6 
    --atrous_rates=12 
    --atrous_rates=18 
    --output_stride=16 
    --decoder_output_stride=4 
    --num_classes=21 
    --crop_size=513 
    --crop_size=513 
    --inference_scales=1.0

PATH_TO_CHECKPOINT:checkpoint文件路徑
PATH_TO_EXPORT_PD:導(dǎo)出PD文件路徑(加后綴.pd)

案例
cd /anaconda3/lib/python3.6/site-packages/tensorflow/models/research/deeplab
sh local_test.sh

Google Colab在線測(cè)試地址,可選擇預(yù)訓(xùn)練模型,測(cè)試分割照片來查看模型輸出結(jié)果。

總結(jié)

基于深度學(xué)習(xí)的語義分割與傳統(tǒng)基于隨機(jī)森林的方法相比有了很大的進(jìn)步,雖然目前基于深度學(xué)習(xí)的方法有多種思路,不過基本都是基于全卷積(FCN)衍變而來。FCN將網(wǎng)絡(luò)全連接層使用卷積替代,因此可以接受任意大小的輸入并且針對(duì)下采樣存在位置信息丟失等問題,采用轉(zhuǎn)置卷積用于恢復(fù)圖片尺寸,方便后續(xù)進(jìn)行逐像素預(yù)測(cè)。
DeepLab模型為了改善分割效果,使用atrous卷積(空洞卷積),ASPP,全連接條件隨機(jī)場(chǎng)等技術(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19926.html

相關(guān)文章

  • 語義分割淺析

    摘要:是針對(duì)語義分割任務(wù)提出的模型,主要使用深度卷積網(wǎng)絡(luò)條件隨機(jī)場(chǎng),空洞卷積做像素級(jí)預(yù)測(cè)。在語義分割中存在兩個(gè)主要問題下采樣帶來的分辨率下降,細(xì)節(jié)信息丟失平移不變性,限制了定位精度針對(duì)以上問題,采用空洞卷積擴(kuò)大感受野,獲取更多的上下文信息。 showImg(https://segmentfault.com/img/bVbrls5?w=2040&h=1016); 背景 對(duì)圖像而言,常見的任務(wù)是...

    RaoMeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<