丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

1

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

本文作者: AI研習(xí)社-譯站 2018-05-03 18:00
導(dǎo)語(yǔ):這份教程旨在提供一個(gè)工具鏈(流程中工具和相關(guān)庫(kù)的集合),含有遷移學(xué)習(xí)中涉及語(yǔ)義分割的一些最基本的內(nèi)容。

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題A complete Transfer Learning Toolchain for Object Detection,作者Ralph Fehrer。

翻譯 | 龍珂宇 于志鵬      整理 |  凡江

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

遷移學(xué)習(xí)指的是,通過(guò)對(duì)預(yù)訓(xùn)練模型的參數(shù)進(jìn)行微調(diào),將訓(xùn)練好的模型應(yīng)用到相似或者只有細(xì)微差異的不同任務(wù)中。通過(guò)這個(gè)方法,我們可以基于一些性能頂尖的深度學(xué)習(xí)模型得到別的高性能模型。盡管聽(tīng)上去較為簡(jiǎn)單,遷移學(xué)習(xí)仍然在預(yù)處理、搭建和測(cè)試上有很多的研究空間。

這份教程旨在提供一個(gè)工具鏈(流程中工具和相關(guān)庫(kù)的集合),含有遷移學(xué)習(xí)中涉及語(yǔ)義分割的一些最基本的內(nèi)容。以下的教程幫助你搭建一個(gè)典型的、具有生產(chǎn)可用性的遷移學(xué)習(xí)模型。本質(zhì)上,它是一些特定的工具、框架和模型的結(jié)合。我們使用:

每一個(gè)單獨(dú)的步驟沿一下敘述展開(kāi):

我們想要通過(guò)微調(diào)在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的模型,來(lái)檢測(cè)桃子。因?yàn)镃OCO數(shù)據(jù)集的模型訓(xùn)練目標(biāo)是檢測(cè)蘋(píng)果和橘子,因此只調(diào)整預(yù)訓(xùn)練模型頂層的一些參數(shù)就足夠了。

請(qǐng)注意,我們并不會(huì)在這個(gè)教程中制造出一個(gè)很成功的模型,因?yàn)槟切枰诓襟E1中用到大得多的模型,也需要花費(fèi)數(shù)倍的時(shí)間。我們主要致力于給大家展現(xiàn)一個(gè)可以應(yīng)用于其他類(lèi)似場(chǎng)景的遷移學(xué)習(xí)工具鏈,從如何構(gòu)建一個(gè)自定義的數(shù)據(jù)集開(kāi)始,最終得到一個(gè)微調(diào)完成的模型。

這個(gè)工具鏈中的每一步都有很多的替代選項(xiàng),并且對(duì)于不同的任務(wù),實(shí)現(xiàn)遷移學(xué)習(xí)的方法也有很多種。但如果你想盡快上手,不妨嘗試這個(gè)工具鏈,再盡可能地根據(jù)你的需求調(diào)整每一個(gè)步驟。

我們也提供了一個(gè)對(duì)應(yīng)的GitHub項(xiàng)目,上面的文件夾存有大部分我們需要的文件及操作過(guò)程中生成的文件。你可以克隆它來(lái)復(fù)現(xiàn)整個(gè)項(xiàng)目,也可以創(chuàng)建分支來(lái)擴(kuò)展和修改該項(xiàng)目。

1. 創(chuàng)建一個(gè)數(shù)據(jù)集

如果你在已有的數(shù)據(jù)集中找不到一個(gè)你想檢測(cè)的物體的數(shù)據(jù)集,你需要自己找到圖片并給他們做標(biāo)注。有幾種工具可以幫助你減化這個(gè)痛苦的操作:接下來(lái)幾步簡(jiǎn)單地描述了如何使用labelbox, 它是一個(gè)基于云端的標(biāo)注工具,且操作界面十分簡(jiǎn)潔。如果想了解更詳細(xì)的操作指南,可以看labelbox documentation.

1.1 收集圖片URLs

因?yàn)檎也坏教易訄D片的數(shù)據(jù)集,我們使用Google的圖片搜索來(lái)構(gòu)建我們的基礎(chǔ)數(shù)據(jù)集。手動(dòng)從Google上下載成千張圖片非常乏味和耗時(shí),幸運(yùn)的是,有工具幫助我們通過(guò)腳本文件向Google發(fā)送搜索請(qǐng)求:

  1. 復(fù)制google-images-download.py script到腳本文件夾

  2. 在當(dāng)前文件夾下打開(kāi)command prompt

  3. 運(yùn)行以下指令

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

我們的數(shù)據(jù)(桃子)文件夾現(xiàn)在就會(huì)出現(xiàn)一個(gè)image_urls.csv文件,里面是桃子圖片的URL鏈接。

1.2 給圖片做標(biāo)注

在這一步里,我們創(chuàng)建一個(gè)labelbox的項(xiàng)目,導(dǎo)入我們的image_urls.csv文件,然后給圖片們做標(biāo)注。

  1. 創(chuàng)建a labelbox project然后導(dǎo)入image_urls.csv

  2. (可選) Adapt the labeling interface調(diào)整做標(biāo)注的界面

  3. 使用semantic segmentation interface of labelbox來(lái)做標(biāo)注

  4. the labeled datasets輸出到j(luò)son格式

  5. 使用這個(gè)腳本Use this script將json格式的數(shù)據(jù)集轉(zhuǎn)化為COCO的格式

請(qǐng)注意:為了生成TFRecords文件,我們需要將coco-files分成訓(xùn)練集,驗(yàn)證集和測(cè)試集。你可以創(chuàng)建幾個(gè)獨(dú)立的labelbox project,然后重復(fù)幾遍上述操作;也可以手動(dòng)或者用腳本把上面生成的東西分成幾部分。

下面這張圖片展示了web-based labelbox的UI:

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

使用labelbox給桃子做標(biāo)注,用于之后的語(yǔ)義分割

這一步的輸出是三個(gè)json文件,以COCO格式存儲(chǔ)其標(biāo)簽及其他信息,分別對(duì)應(yīng)我們的訓(xùn)練集,驗(yàn)證集和測(cè)試集。你們可以在accompanying GitHub-repository中對(duì)應(yīng)的data subfolder里找到示例文件。

2. 遷移學(xué)習(xí)

2.1 將COCO標(biāo)簽數(shù)據(jù)轉(zhuǎn)換為T(mén)FRecords的數(shù)據(jù)格式

TensorFlow的對(duì)象檢測(cè)API要求數(shù)據(jù)需為TFRecord格式,這是一種不易理解的數(shù)據(jù)格式。準(zhǔn)確的理解TFRecord需要花費(fèi)一定的時(shí)間,而且并非易事。幸運(yùn)的是,Tensorflow提供了一些腳本,可以將大部分常用格式轉(zhuǎn)換為T(mén)FRecord,例如create_coco_tf.record.py。你可以在我們的GitHub倉(cāng)庫(kù)中找到這個(gè)腳本的小改版本。

創(chuàng)建TFRecords數(shù)據(jù)

  1. 用命令行cd到與GitHub倉(cāng)庫(kù)中對(duì)應(yīng)的腳本文件夾

  2. 運(yùn)行下面的代碼

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

腳本會(huì)為三個(gè)數(shù)據(jù)集中的每一個(gè)輸出一個(gè)record文件,并且下載圖片到data子目錄中,你可以在here看到三個(gè).record后綴的文件

2.2 配置模型參數(shù)

下面的步驟與與你準(zhǔn)備使用的模型有關(guān),也與新類(lèi)和原始訓(xùn)練類(lèi)的關(guān)系有關(guān)。在本例中,我們訓(xùn)練了可用于TensorFlow模型zoo中的faster_rcnn_resnet50_coco模型,用來(lái)監(jiān)測(cè)桃子。桃子與原始數(shù)據(jù)集中的蘋(píng)果和句子有著很強(qiáng)的相關(guān)性。

  1. here下載faster_rcnn_resnet50_coco

  2. 解壓縮下載的tar包

  3. 將三個(gè).ckpt后綴文件復(fù)制到模型的文件夾中

  4. 復(fù)制faster_rcnn_resnet50_coco配置文件到模型的子文件夾中

  5. 用標(biāo)簽映射創(chuàng)建label_map.pbtxt文件

  6. 打開(kāi)配置文件并做如下更改

-將 fine-tune checkpoint 改為: fine_tune_checkpoint:“../model/model.ckpt”

- 將 train_input_reader 的input_path值改為: input_path: “../data/coco_train.record”

- 將 train_input_reader 的label_map_path 值改為: label_map_path: “../data/label_map.pbtxt”

- 將val_input_reader的 input_path值改為:

input_path: ”../data/coco_val.record”

- 將 val_input_reader 的label_map_path值改為: label_map_path: “../data/label_map.pbtxt”

  7.(可選)根據(jù)需要,可以修改其他條目

經(jīng)過(guò)以上步驟,我們創(chuàng)建了label_map.pbtxt,并且修改了faster_rcnn_resnet50_coco.config

2.3 訓(xùn)練模型

在這個(gè)環(huán)節(jié),我們根據(jù)之前的配置重新訓(xùn)練模型

  1. 復(fù)制train.py到腳本的子文件夾

  2. 用命令行cd到這個(gè)子文件夾

  3. 運(yùn)行下面的代碼

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

檢查model/train 子文件夾中是否存在此步驟產(chǎn)生的文件。

3. 生成推理圖

首先執(zhí)行下面的1~3操作,生成的.ckpt文件和frozen_inference_graph.pb文件將用于步驟4、檢驗(yàn)推理圖和5、推理和評(píng)估模型的操作:

  1. export_inference_graph.py復(fù)制到scripts 文件夾。

  2. 打開(kāi)命令行并cd到scripts文件夾

  3. 執(zhí)行下面的腳本:

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

腳本運(yùn)行后會(huì)在model/fine_tuned_model 文件夾中產(chǎn)生幾個(gè).ckpt.*文件和一個(gè)frozen_inference_graph.pb文件

4. 檢驗(yàn)推理圖

TensorBoard是檢驗(yàn)Tensorflow程序的一個(gè)強(qiáng)大的組件,我們可以用它來(lái)更好的理解、調(diào)試和優(yōu)化Tensorflow圖

  1. 用pip 命令安裝TensorBoard

  2. import_pb_to_tensorboard.py拷貝到  scripts 目錄下

  3. 在 model/fine_tuned_model 子目錄中創(chuàng)建logdir 目錄

  4. 打開(kāi)命令行并cd到scripts文件夾

  5. 執(zhí)行下面的腳本:

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

新創(chuàng)建的logdir文件夾中應(yīng)當(dāng)包含tensorboard所需的事件文件

完成以下步驟以開(kāi)始tensorboard:

  1. 打開(kāi)命令行cd到到scripts目錄

  2. 運(yùn)行下面的命令

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

TensorBoard開(kāi)始運(yùn)行后你可以訪問(wèn) http://localhost:6006,可以在GUI界面中再次看到訓(xùn)練的模型。

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

關(guān)于TensorBoard的更多信息,詳見(jiàn)TensorBoard documentation或閱讀this tutorial

5. 推理和評(píng)估模型

為了評(píng)估模型效果, 我們借助在步驟3中創(chuàng)建的  frozen_inference_graph.pb 文件,來(lái)運(yùn)行在步驟2.1中創(chuàng)建的coco_testdev.record

  1. detection_inference.py腳本拷貝到scripts目錄

  2. infer_detections.py腳本拷貝到scripts目錄

  3. 打開(kāi)命令行cd到scripts目錄

  4. 運(yùn)行下面的腳本

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

在 /data/inference文件夾中查看運(yùn)行腳本結(jié)果 . 關(guān)于TensorFlow API的更多說(shuō)明請(qǐng)參考this TensorFlow tutorial

如果對(duì)模型最終的訓(xùn)練效果滿意的話,那么此模型就算訓(xùn)練完成。

博客原址 https://medium.com/practical-deep-learning/a-complete-transfer-learning-toolchain-for-semantic-segmentation-3892d722b604

雷鋒字幕組正在招募中,掃描下方二維碼,備注“雷鋒字幕組+姓名”加入我們。雷鋒網(wǎng)雷鋒網(wǎng)

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

一個(gè)應(yīng)用于物體識(shí)別的遷移學(xué)習(xí)工具鏈

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)