精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    如何使用TensorFlow追蹤千年隼號(hào)

    大數(shù)據(jù)

    作者:Nick Bourdakos

    摘要:本文以星球大戰(zhàn)中的千年隼號(hào)為例,介紹了如何使用強(qiáng)大的PowerAI來進(jìn)行對(duì)象檢測(cè)。

    大數(shù)據(jù)
    活動(dòng)中的自定義對(duì)象檢測(cè)(完整視頻地址)

    當(dāng)前,大多數(shù)的大型科技公司(如IBM、Google、Microsoft和Amazon)都有自己的視覺識(shí)別產(chǎn)品。一些小公司也提供了類似的產(chǎn)品,如Clarifai。但是他們都沒有提供對(duì)象檢測(cè)API。

    下面兩張圖片都使用了相同的Watson Visual Recognition默認(rèn)分類器進(jìn)行標(biāo)記。不過,第一張圖片首先通過了一個(gè)對(duì)象檢測(cè)模型。

    大數(shù)據(jù)

    對(duì)象檢測(cè)比視覺識(shí)別先進(jìn)得多。但是如果想要進(jìn)行對(duì)象檢測(cè),你就不得不自己動(dòng)手了。

    根據(jù)不同的使用情況,可能并不需要自定義對(duì)象檢測(cè)模型。?TensorFlow的對(duì)象檢測(cè)API提供了一些基于COCO數(shù)據(jù)集的不同速度和準(zhǔn)確度的模型。

    這是COCO模型可檢測(cè)對(duì)象的完整列表:

    大數(shù)據(jù)

    如果想要檢測(cè)不在此列表中的東西,則必須構(gòu)建自己的自定義對(duì)象檢測(cè)器。

    標(biāo)注圖片

    訓(xùn)練自己的模型需要做很多工作。需要收集大量的圖像,并標(biāo)注它們。標(biāo)注包括指定對(duì)象坐標(biāo)和相應(yīng)的標(biāo)簽。對(duì)于包含兩個(gè)鈦戰(zhàn)機(jī)的圖像,標(biāo)注的結(jié)果是這樣的:

    <annotation>    <folder>images</folder>    <filename>image1.jpg</filename>    <size>        <width>1000</width>        <height>563</height>    </size>    <segmented>0</segmented>    <object>        <name>Tie Fighter</name>        <bndbox>            <xmin>112</xmin>            <ymin>281</ymin>            <xmax>122</xmax>            <ymax>291</ymax>        </bndbox>    </object>    <object>        <name>Tie Fighter</name>        <bndbox>            <xmin>87</xmin>            <ymin>260</ymin>            <xmax>95</xmax>            <ymax>268</ymax>        </bndbox>    </object></annotation>

    針對(duì)星球大戰(zhàn)模型,我收集了308個(gè)圖片,每張圖片包含了兩到三個(gè)對(duì)象。我建議針對(duì)每個(gè)對(duì)象找出的200-300個(gè)樣本圖片。

    我們是否需要為這幾百?gòu)垐D片寫一大推的xml呢?

    當(dāng)然不用!有很多標(biāo)注工具,比如labelImg和RectLabel。我使用的是RectLabel,但它只能在macOS上使用。不過,還是有很多工作要做的。我花了大約三四個(gè)小時(shí)的時(shí)間來標(biāo)注整個(gè)數(shù)據(jù)集。創(chuàng)建標(biāo)注時(shí),請(qǐng)將其導(dǎo)出為PASCAL VOC格式。

    在運(yùn)行腳本準(zhǔn)備數(shù)據(jù)之前,還需要做一些設(shè)置工作。

    克隆代碼庫(kù)

    從這里克隆代碼庫(kù)。目錄結(jié)構(gòu)如下所示:

    models|-- annotations|   |-- label_map.pbtxt|   |-- trainval.txt|   `-- xmls|       |-- 1.xml|       |-- 2.xml|       |-- 3.xml|       `-- ...|-- images|   |-- 1.jpg|   |-- 2.jpg|   |-- 3.jpg|   `-- ...|-- object_detection|   `-- ...`-- ...

    這里已經(jīng)包含了所有的訓(xùn)練數(shù)據(jù),開箱即用。但是如果要用自己的數(shù)據(jù)創(chuàng)建模型,那么需要將你自己的訓(xùn)練圖像添加到images目錄中,將XML標(biāo)注添加到annotations/xmls目錄中,然后更新trainval.txt和label_map.pbtxt。

    trainval.txt是一個(gè)文件名列表,用于查找和關(guān)聯(lián)JPG和XML文件。下面的trainval.txt列表讓我們可以找到abc.jpg、abc.xml、123.jpg、123.xml、xyz.jpg和xyz.xml:

    abc123xyz

    注意:請(qǐng)確保JPG和XML文件的文件名除了擴(kuò)展名之外是一樣的。

    label_map.pbtxt是我們要檢測(cè)的對(duì)象列表。內(nèi)容是這樣的:

    item {  id: 1  name: 'Millennium Falcon'}item {  id: 2  name: 'Tie Fighter'}

    運(yùn)行腳本

    首先,安裝Python和pip,并安裝腳本需要的組件:

    pip install -r requirements.txt

    在PYTHONPATH中加入models和models/slim:

    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

    重要提示:每次打開終端后都要運(yùn)行一遍,或者添加到~/.bashrc文件中。

    運(yùn)行腳本:

    python object_detection/create_tf_record.py

    腳本運(yùn)行結(jié)束之后,將會(huì)得到train.record和val.record文件。我們將用這兩個(gè)文件來訓(xùn)練模型。

    下載模型

    即使使用多個(gè)GPU,從頭開始訓(xùn)練對(duì)象檢測(cè)器也可能需要數(shù)天的時(shí)間。為了加速訓(xùn)練,我們將采用一個(gè)在不同數(shù)據(jù)集上訓(xùn)練過的對(duì)象檢測(cè)器,并重新設(shè)置它的一些參數(shù)來初始化我們的新模型。

    你可以從這個(gè)模型集市上下載模型。每個(gè)模型的準(zhǔn)確性和速度都不一樣。我使用的是faster_rcnn_resnet101_coco。

    把所有的model.ckpt文件提取出來并復(fù)制到代碼庫(kù)的根目錄。

    faster_rcnn_resnet101.config是faster_rcnn_resnet101_coco模型的配置文件。如果使用另一個(gè)模型,則可以在這里找到相對(duì)應(yīng)的配置文件。

    準(zhǔn)備訓(xùn)練

    運(yùn)行下面的腳本,訓(xùn)練開始了!

    python object_detection/train.py \        --logtostderr \        --train_dir=train \        --pipeline_config_path=faster_rcnn_resnet101.config

    注意:將pipeline_config_path替換為配置文件實(shí)際的路徑。

    global step 1:global step 2:global step 3:global step 4:...

    好極了!開始運(yùn)行了!

    10分鐘后。

    global step 41:global step 42:global step 43:global step 44:...

    電腦開始冒煙了

    global step 71:global step 72:global step 73:global step 74:...

    這東西要運(yùn)行多久呢? 視頻中使用的模型要運(yùn)行22000步。如果使用的是MacBook Pro,假設(shè)每15秒左右完成一步,以這樣的速度,大約需要三到四天的時(shí)間才能獲得一個(gè)差不多的模型。太費(fèi)時(shí)間了!??!

    救世主PowerAI強(qiáng)勢(shì)出擊!

    PowerAI

    PowerAI讓用戶可以在配置了P100 GPU的IBM Power Systems上快速訓(xùn)練模型!

    大概只用了一個(gè)小時(shí)的時(shí)間就訓(xùn)練了一萬(wàn)步。不過,這只用了一個(gè)GPU。 PowerAI的真正威力是能夠以高達(dá)95%的效率在數(shù)百個(gè)GPU上進(jìn)行分布式的深度學(xué)習(xí)。

    在PowerAI的幫助下,IBM創(chuàng)造了在7個(gè)小時(shí)內(nèi)識(shí)別一張新圖像達(dá)到33.8%準(zhǔn)確率的記錄。它超過了微軟以前的行業(yè)紀(jì)錄,在10天內(nèi)達(dá)到29.9%的準(zhǔn)確率。

    太快了!

    創(chuàng)建一個(gè)Nimbix賬號(hào)

    Nimbix為開發(fā)者提供了在PowerAI平臺(tái)上免費(fèi)處理十個(gè)小時(shí)的試用帳戶。你可以在這里進(jìn)行注冊(cè)。

    注意:這個(gè)過程不是自動(dòng)的,所以可能需要24小時(shí)才能審批通過。

    申請(qǐng)通過后,你將收到一封電子郵件,其中包含有關(guān)確認(rèn)和創(chuàng)建帳戶的說明。

    現(xiàn)在,你可以在這里登錄了。

    部署PowerAI Notebooks應(yīng)用

    首先搜索PowerAI Notebooks。

    大數(shù)據(jù)

    點(diǎn)擊,然后選擇?TensorFlow。

    大數(shù)據(jù)

    選擇機(jī)器類型:32 thread POWER8, 128GB RAM, 1x P100 GPU w/NVLink (np8g1)。

    大數(shù)據(jù)

    服務(wù)器開啟,將顯示以下儀表板面板。當(dāng)服務(wù)器的Status變?yōu)镻rocessing時(shí),就可以訪問服務(wù)器了。

    點(diǎn)擊(click to show)獲取密碼。

    然后點(diǎn)擊Click here to connect啟動(dòng)Notebook。

    大數(shù)據(jù)

    使用用戶名nimbix和先前提供的密碼進(jìn)行登錄。

    大數(shù)據(jù)

    開始訓(xùn)練

    點(diǎn)擊New下拉菜單并選擇Terminal,打開一個(gè)新的終端窗口。

    大數(shù)據(jù)

    跳出一個(gè)熟悉的界面:

    大數(shù)據(jù)

    注意:該終端可能不能在Safari中運(yùn)行。

    訓(xùn)練的步驟與我們?cè)诒镜剡M(jìn)行訓(xùn)練的步驟相同。如果你使用我的訓(xùn)練數(shù)據(jù),那么可以克隆我的代碼庫(kù):

    git clone [https://github.com/bourdakos1/Custom-Object-Detection.git](https://github.com/bourdakos1/Custom-Object-Detection.git)

    然后cd進(jìn)入根目錄:

    cd Custom-Object-Detection

    運(yùn)行下面這個(gè)命令,下載我們之前提到的預(yù)先訓(xùn)練好的faster_rcnn_resnet101_coco模型。

    wget [http://storage.googleapis.com/download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_11_06_2017.tar.gz](http://storage.googleapis.com/download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_11_06_2017.tar.gz)tar -xvf faster_rcnn_resnet101_coco_11_06_2017.tar.gzmv faster_rcnn_resnet101_coco_11_06_2017/model.ckpt.* .

    然后,再次設(shè)置PYTHONPATH,因?yàn)檫@是一個(gè)新的終端:

    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

    最后運(yùn)行訓(xùn)練命令:

    python object_detection/train.py \        --logtostderr \        --train_dir=train \        --pipeline_config_path=faster_rcnn_resnet101.config

    下載模型

    數(shù)據(jù)越多,則需要的步驟也越多。我的模型在接近4500步的時(shí)候非常穩(wěn)定。然后,在大約20000步時(shí)達(dá)到峰值。我甚至做了20萬(wàn)步的訓(xùn)練,但是效果并不理想。

    我建議每5000步左右下載一次模型,對(duì)其進(jìn)行評(píng)估,以確保你的方向是正確的。

    點(diǎn)擊左上角的Jupyter徽標(biāo),打開Custom-Object-Detection/train。

    下載編號(hào)最大的model.ckpt文件。

    model.ckpt-STEP_NUMBER.data-00000-of-00001model.ckpt-STEP_NUMBER.indexmodel.ckpt-STEP_NUMBER.meta

    注意:一次只能下載一個(gè)文件。

    大數(shù)據(jù)

    注意:完成后,請(qǐng)務(wù)必點(diǎn)擊機(jī)器上的紅色電源按鈕。否則,記時(shí)不會(huì)停止,時(shí)間會(huì)繼續(xù)走下去。

    導(dǎo)出推理圖

    要在代碼中使用模型,需要將檢查點(diǎn)文件(model.ckpt-STEP_NUMBER.*)轉(zhuǎn)換為推理圖。

    將剛剛下載的檢查點(diǎn)文件復(fù)制到代碼庫(kù)的根目錄中。

    然后運(yùn)行這個(gè)命令:

    python object_detection/export_inference_graph.py \        --input_type image_tensor \        --pipeline_config_path faster_rcnn_resnet101.config \        --trained_checkpoint_prefix model.ckpt-STEP_NUMBER \        --output_directory output_inference_graph

    記住執(zhí)行:

    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

    這時(shí),應(yīng)該可以看到一個(gè)新的output_inference_graph目錄和frozen_inference_graph.pb文件。這就是我們需要的文件。

    測(cè)試模型

    現(xiàn)在運(yùn)行以下命令:

    python object_detection/object_detection_runner.py

    它會(huì)在test_images目錄中的所有圖像上運(yùn)行output_inference_graph/frozen_inference_graph.pb中的對(duì)象檢測(cè)模型,并將結(jié)果輸出到output/test_images目錄中。

    結(jié)果

    點(diǎn)擊此處查看在“星球大戰(zhàn):原力覺醒”某個(gè)片段上運(yùn)行模型后得到的結(jié)果。

    極客網(wǎng)企業(yè)會(huì)員

    免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

    2017-11-15
    如何使用TensorFlow追蹤千年隼號(hào)
    作者:Nick Bourdakos 摘要:本文以星球大戰(zhàn)中的千年隼號(hào)為例,介紹了如何使用強(qiáng)大的PowerAI來進(jìn)行對(duì)象檢測(cè)。 活動(dòng)中的自定義對(duì)象檢測(cè)(完整

    長(zhǎng)按掃碼 閱讀全文