楠木軒

目標乾脆面君:動動手 用TensorFlow API訓練出自己的目標檢測模型

由 濮陽南煙 發佈於 綜合

  來源:Medium

  編譯:Tom R

  TensorFlow內包含了一個強大的物體檢測API,我們可以利用這API來訓練自己的數據集實現特殊的目標檢測。

  Dat Tran就分享了自己實現可愛的浣熊檢測器的經歷,在文章中作者把檢測器的訓練流程進行了梳理,我們可以舉一反三來訓練其他在工作項目中需要的檢測器。下面我們一起來學習一下吧!

  為什麼要做這件事?

  方便麪君不僅可愛,在國外很普遍的與人們平靜地生活在一起。處於對它的喜愛和與浣熊為鄰的情況,作者選擇了它作為檢測器的檢測對象。完成後可以將攝像安裝在房子周圍,檢測是否有浣熊闖入了你家,你就能及時知道是否來了不速之客了。看來浣熊還真多啊!

  創建數據集

  機器學習需要數據作為原料,那麼我們首先需要做的就是建立起一個可供訓練的數據集,同時我們需要利用符合Tensorflow的數據格式來保持這些數據及其標籤:

  1. Tensorflow的物體檢測接口主要使用TFRecord文件格式,我們需要將數據轉換為這個格式;

  2.有很多工具可以完成數據的轉換,無論是類似PASCAL VOC數據集或是Oxford Pet數據集的格式,都有很多成熟的腳本來完成轉換,甚至也可以自己寫一個腳本來轉換,跟着文檔解釋不會太難;

  3.在準備輸入數據之前你需要考慮兩件事情:其一,你需要一些浣熊的彩色圖片;其二,你需要在圖中浣熊的位置框座標(xmin,ymin,xmax,ymax)來定位浣熊的位置並進行分類。對於只檢測一種物體來説我們的任務十分簡單,只需要定義一類就可以了;

  4.哪裏去找數據呢?互聯網是最大的資源啦。包括各大搜索引擎的圖片搜索和圖像網站,尋找一些不同尺度、位姿、光照下的圖片。作者找了大概兩百張的浣熊圖片來訓練自己的檢測器(數據量有點小,但是來練手還是可以的);

  5.有了數據以後我們需要給他們打標籤。分類很簡單都是浣熊,但是我們需要手動在每一張圖中框出浣熊的位置。一個比較好的打標工具是LabelImg。編譯好後只要要在圖片上輕點鼠標就可以得到PASCAL VOC格式的XML文件,再利用一個腳本就可以轉換成Tensorflow需要的輸入格式了;有時候在Mac上打開jpeg圖像會出現問題,需要將其轉換為png來解決;

  6.最後,將圖像的標籤轉換為TFRecord格式後,並將起分為訓練集(~160張)和測試集(~40張)就可以開始下一步的工作了!

  小提示:

  1. 還有很多圖像標註工具,包括 FIAT (Fast Image Data Annotation Tool)、BBox-Label-Tool、以及matlab自帶的trainingImageLabeler等等,可以根據條件和需要自行選擇;

  2. 圖像格式轉換同樣也有很多工具,作者推薦了ImageMagick的工具,當然我們還有ps,美圖的工具,甚至自己寫一個腳本也是一兩分鐘的事;

  3. 整個訓練過程中最耗時的就是數據的標註了,作者表示僅僅一類圖像200張的排序和打標籤就花了他兩個多小時的時間,如果需要大量圖像的話還是要情人幫忙或者找標註公司,例如CrowdFlower, CrowdAI 和 Amazon’s Mechanical Turk;

  4. 對於圖像的選擇,儘量選擇適中的圖像,要是太大不僅運算速度慢還會造成內存溢出,需要調節訓練批量的大小。

  訓練模型

  輸入數據搞定後我們就開始訓練模型啦。一般對於物體識別訓練來説有標準的工作流程。首先需要利用一個預訓練模型來作為訓練的基礎,作者使用了ssd_mobilenet_v1。同時需要將分類改變為1,並更改模型、訓練數據、標籤數據的路徑。對於學習率、批量大小和其他超參數先用默認參數來進行訓練。

  隨後構建標籤映射就可以進行訓練了。

  小提示:

  1. API中有一個數據增強選項

  data_augmentation_option

  ,這個選項對於較為單一的訓練數據來説十分有用。

  2. 重要!標籤的值需要從1開始標記,0是一個佔位符,在為每一類分類標籤賦值時需要注意。

  做完了這些進一步的準備工作,我們終於可以開始訓練了。我們可以選擇在自己本地的GPU上訓練網絡,或者在雲服務器上訓練。在雲服務器上可能需要一額外的配置文件。作者使用Google Cloud就需要一個YAML的文件來定義使用機器的參數。

  在訓練的過程中,我們可以通過tensorboard來實時監測模型的訓練情況一遍在出現異常時及時調整訓練策略。

  下圖是作者基於24幅圖的批量大小進行了一個多小時22k次訓練的結果,但在40min左右就出現了很好的收斂結果。

  圖中顯示了loss和精度隨訓練的變化情況。在預訓練模型的幫助下,損失函數下降很快。

  同時作者還將訓練過程中模型表現隨訓練次數的變化呈現了出來:

  在經過測試和輕微的調整之後(實現自己的精度),就可以完成訓練了。

  模型的使用

  完成訓練之後我們需要將模型保存下來,通常使用checkpoint的模式來保存。由於我們是基於雲端訓練的,需要通過一個腳本將模型導入到本機使用。下面是作者將這個模型放到一個youtube浣熊視頻中的結果:

  浣熊出沒

  捕捉到浣熊

  看完視頻我們會發現有時會出現漏識別和誤識別。這主要是因為我們用於訓練的數據集太小了,模型缺乏魯棒性和泛化性,需要更多的數據來提高它的性能,而這也是目前人工智能面臨的最大問題。

  結語

  在跟隨作者完成物體檢測器的訓練後,我們應該也可以通過相應的步驟開發自己的檢測器。當然需要提高分類器的表現,就需要更多的數據,數據,數據!

  這個一檢測器訓練時間很短而且表現看起來不錯。但對於多類物體的的話,表現是會有些許下降的,同時訓練時間也要增加才能得到較好的結果。同時我們需要在心中謹記一個原則,最終的模型一定是速度與精度,效率與效果的平衡。深度學習和其他的科學一樣都有矛盾與平衡的一面,真正的產品效果其實取決於你傾向天平的哪一方!

  -END-

  歡迎加入將門技術社羣!

  現已涵蓋CV、機器人、NLP、ML、IoT等多個當下火熱的技術話題。我們每週邀請來自產學研的優秀技術人進行線上分享,目前羣裏已匯聚數千位上述領域的技術從業者。

  入羣方式>>關注“將門創投”(id:thejiangmen)微信公眾號,在後台回覆關鍵詞“技術社羣”,提交入羣申請表。通過審核後,我們會在第一時間發出邀請。

  點擊右上角,把文章朋友圈

  將門創投

  讓創新獲得認可!

  微信:thejiangmen

  service@thejiangmen.com


  近日,人氣男星汪東城正在寧夏趕拍新戲,其一組片場照曝光,硬朗氣質與時尚感切換自如,而其坐啃乾脆面充飢的花絮照頗為搶鏡,令粉絲心疼不已。在七夕佳節之際,汪東城的大批粉絲也組團為愛豆應援,在拍攝地近40度的高温下,粉絲調用兩輛專車,為汪東城與全劇組400多人暖心準備了各式禮物,令人動容。

  軍大衣加身草原秒變秀場 因斷糧啃乾脆面充飢

  戈壁灘的荒漠草原之上,汪東城戲中造型自帶野性質感,藍襯衫、黑仔褲、經典格子三種元素,軍用沙漠靴營造凌厲氣場,配以汪東城深邃的眼神殺,酷帥不羈。當夜幕降臨、温差極大,汪東城長款軍大衣加身,從西部牛仔秒變軍裝型男。

  而一張汪東城包裹得嚴嚴實實、坐啃一包乾脆面的花絮照更是搶鏡,只因在甘肅天祝山的拍攝現場海拔高達3000多米,高山上冷雨不停,寒意逼人。此外,深山路險還導致餐車掉隊,劇組不時陷入斷糧囧境,餓到不行的汪東城只能以工作人員的乾脆面充飢,經歷了一次飢寒交迫的拍戲過程,但汪東城在出現高原反應的艱難情況下,也依然堅持敬業拍戲,專業精神十足。

  粉絲探班體驗高温片場 花式應援感動愛豆

  正值七夕時,因心疼在寧夏沙漠苦戰的汪東城,粉絲們也組團前往探班。由於當天片場是劇組搭建的密閉空間,全劇組在沒有空調的山洞中備受高温折磨,汪東城更需要在猶如蒸籠的片場拍攝高強度的動作戲,動輒汗水狂流。一整日在現場陪伴汪東城拍戲的粉絲們,也深刻體會到了演員在極端條件下完成工作所必須的堅強意志。

  粉絲們還通過應援行動表達了對愛豆的愛意,特意準備了花茶、餅乾、巧克力等食品以及防蚊液、按摩儀等實用物品。此番汪東城粉絲寧夏之行不畏艱辛,長途跋涉送上貼心暖意,讓汪東城與劇組所有台前幕後工作人員都十分感動,汪東城也表示無限感激粉絲們這十多年來的支持和鼓勵。

  一直以來,汪東城在專注演藝事業外更熱心公益,不遺餘力轉發尋人啓事、實現患癌女孩心願等等,努力踐行公益的汪東城成為了粉絲的正能量榜樣。而除了為汪東城應援,粉絲們也跟隨他的善行“益”起來,自發組織了探訪抗戰老兵、深入山區為孩子贈書等愛心活動,以公益應援方式綿延偶像之愛,可謂有什麼樣的愛豆就有什麼樣的粉絲。“用你愛的方式來愛你”,是粉絲們給汪東城的最佳應援。

  (2017-08-30)


  這隻超可愛的浣熊叫做Pumpkin,去年,住在巴拿馬的Rosie Kemp發現了一隻浣熊寶寶,寶寶從樹上掉落,不僅非常虛弱,它的腳還骨折,雖然想要快點拯救浣熊寶寶,但Rosie選擇先在原地等待,因為她怕浣熊媽媽會回來找寶寶!等了好一陣子,浣熊媽媽都沒有回來的跡象,為了怕浣熊寶寶發生危險,Rosie選擇把浣熊寶寶帶回家,最後來領養了這隻浣熊寶寶,將它取名為Pumpkin!

  Rosie跟她的女兒把Pumpkin當自己的孩子一樣照顧,把它喂的飽飽的,也隨時注意它的健康狀況!

  小浣熊不僅跟家人相處的超好,它還超級黏家裏的兩隻狗狗,它根本以為自己是狗了吧XD

  好險當初它們救了Pumpkin一命,它才能像現在這樣,幸福快樂的生活!

  它跟狗狗們的互動真的太療愈了!

  動物的世界真的很神奇啊!

  圖片來自網絡

  (2017-08-22)


  測評·屬於你的我的我們的乾脆面

  本文作者|點妹兒

  記得有一天,點妹兒在朋友圈發了張乾脆面的照片,有小夥伴在下面呼籲,“做個乾脆面的測評吧”,好吧我想,那就做個乾脆面的測評吧。

  這次測評中,我們邀請了江湖幾大乾脆面門派——張君雅小妹妹、小浣熊、小當家、衞龍;另外,為了給各位一些珍貴的童年回憶,我們又從淘寶上挑選了幾個80後、90後小時候常吃的懷舊品牌,分別是——小主人、一棵葱、面老大。

  為了讓測評顯得更立體,除了常規的口感、價格維度,我們這次加入了聲音這一維度,因為對於嚼乾脆面的人來説,入口那一聲脆,是異常重要的,如果脆得不夠響,那這個乾脆面就吃得沒有氣勢,且不同乾脆面之間,還有不同的脆法,這個都是需要細細品味的,説到這裏,給大家聽一首~乾脆面之歌吧↓

  聽完後,我們就開始今天的乾脆面大比拼吧!

  一號選手

  張君雅小妹妹

  關鍵詞:張君雅、台灣、萌、可愛

  參與測評產品:日式串燒休閒丸子、捏碎面

  張君雅小妹妹·日式串燒休閒丸子

  聲音:聲音不是很清脆,偏黯啞,入口開嚼後,氣勢較弱,如果喜歡歘欻䫄䵵的清脆聲,建議放棄這位選手。

  口感:味道偏甜,不是特別脆,但嚐起來感覺很健康,彷彿自己吃的不是對身體無益的小零食,而是養生大補之物……(是不是太過了?)

  價格:10.3元/包(就是有點兒貴)

  推薦指數:☆☆☆

  張君雅小妹妹·捏碎面

  聲音:入口即歘欻䫄䵵嘎嘣脆,特別牛逼,像百靈鳥的歌聲一般美妙,雖然我沒有聽過百靈鳥的聲音……

  口感:脆,口感適中,鹹淡適中,吃起來很健康,整體贊!加了調料包味道會更豐富~

  價格:4.5元/包

  推薦指數:☆☆☆☆

  二號選手

  小浣熊

  關鍵詞:乾脆面一哥

  參與測評產品:小浣熊乾脆面

  小浣熊·乾脆面

  聲音:清脆,相當的清脆,歘欻䫄䵵,感覺良好!

  口感:脆,入口鹹,後勁微甜,淡淡的,吃起來相對健康,不錯的。

  價格:1.5元/包

  推薦指數:☆☆☆☆

  三號選手

  衞龍

  關鍵詞:衞龍爸爸、辣條家的

  參與測評產品:拉麪丸子

  衞龍·拉麪丸子

  聲音:入口聲響平淡、黯啞,沒什麼氣勢,不清脆,略寡淡。

  口感:鹹中帶甜,味道豐富,不過,吃多了感覺味精味道有點重。

  價格:1.1元/包

  推薦指數:☆☆☆

  四號選手

  小當家

  關鍵詞:乾脆面江湖第二

  參與測評產品:小當家乾脆面

  小當家·乾脆面

  作為一款乾脆面,小當家的設計一定是一個特別的人,你們看,蜜汁豬排味的乾脆面,包裝袋上的畫就是一頭長得像蜜蜂的豬用吸管吸花朵裏的……蜜;而紅燒牛肉味,就是一個太陽,在曬一羣牛……多麼傳神的表達!

  聲音:脆,且脆得十分有氣質,入口歘欻歘䫄,耳朵還有迴響,喜歡!

  口感:味道適中,絲絲麪條中,透着淡淡的鹹味,從麪條被嚼碎時發出的聲音來看,原料應該不錯!

  價格:0.52元/包

  推薦指數:☆☆☆☆

  五號選手

  面老大

  關鍵詞:80後、懷舊一霸

  參與測評產品:面老大蝦仔面

  面老大·蝦仔面

  聲音:入口嚼碎的聲音太鈍,雖然聲響較大,但沒什麼氣質,追求入口嘎嘣脆有氣質的同學,就不要入手了。

  口感:小時候的味道——劣質的香葱味,入口鹹,餘味甜,脆得有點嚼不動了。

  價格:0.69元/包

  推薦指數:☆☆

  六號選手

  小主人

  關鍵詞:可以集卡片

  參與測評產品:小主人點心面

  小主人·點心面

  聲音:入口雖脆,但總感覺這脆聲沒發揮好,細鈍細鈍的,不是很到位。

  口感:麪條比較細,味道總體不錯,但味精味道有點重,別吃太多!

  價格:0.53元/包

  推薦指數:☆☆☆

  七號選手

  一棵葱

  關鍵詞:80後、葱味

  參與測評產品:烤羊肉串點心面、香辣牛肉味點心面、香葱味點心面

  一棵葱·烤羊肉串點心面

  聲音:大概是麪條比較硬的緣故,入口時很脆,氣勢十足,不過,一鼓作氣,再而衰,三而竭,慢慢就變得索然無味~

  口感:調料味太重,有點面發潮了的感覺,不好吃!

  價格:0.56元/包

  推薦指數:☆☆

  總結

  最好吃:小浣熊乾脆面

  最健康:張君雅小妹妹系列

  雖然點妹兒不喜歡吃但其實很有小時候的味道:小主人點心面,還可以集卡片,現在的年輕人是不知道,小時候,可以集卡片的零食,對我們有着致命的吸引力!

  包裝最靈魂:小當家,首推蜜汁豬排味,忍不住再放張圖~

  最出戏:衞龍拉麪丸子,衞龍爸爸還是好好去做你的辣條吧~

  互動時間

  乾脆面給你的回憶是什麼樣子的?

  你心中最好吃的乾脆面是哪一款?

  備註:喜歡沈一點北京的文章的同學,可以關注我們的頭條號喔~

  (2017-08-15)


  看到標題就知道小編是個80後,小時候喜歡幹吃泡麪,覺得泡麪泡水發脹就不好吃。

  幹吃泡麪可以説是乾脆面的前身了。

  對90後來説,就不需要那麼複雜,小浣熊乾脆面,以及收集裏面的卡片,成了童年美好的回憶。

  那時的乾脆面,還算是奢侈的享受。

  而現在,多了好多好多的選擇。

  — ❶ —

  張君雅小妹妹

  張君雅小妹妹應該算的是乾脆面界的網紅吧!萌萌的小妹妹包裝,從捏臉面開始出門,集好玩和好吃為一體。

  而且張君雅的乾脆面做成了好多造型,無論是是小圓面,還是扁扁面,或是小條面讓吃麪變得有意思起來。

  多種味道的組合讓你一次可以嘗試到多種味道,醬汁無死角的包裹每一根麪條,讓味道更佳細膩,全面。

  【哪裏買】複製¥ehQQ0Yfup9I¥,打開淘寶就可以啦

  — ❷ —

  來丸面

  “來人啊,抓吃客!”,小麪餅的形狀是適合一口一個的小零食。超級脆,完全是看劇、玩遊戲必備的零食。

  麪餅中加入的肉鬆卻帶來了不一樣的體驗,醬汁混合着麪條的香味,還有一股若隱若現肉味。

  四種口味的混合組合,搭配着香脆的口感讓你的嘴不再寂寞。

  【哪裏買】

  複製¥xUX50YUia3Z¥ 打開淘寶就可以啦

  — ❸ —

  幸運脆脆香

  還記得小時候吃過的幸運泡麪嗎?那個可愛的小丑有沒有在你的心中留下些許印象呢?沒錯,脆脆香就是和小丑一家的!

  沒有對面條做造型,保持了它最原始的模樣,白淨的細麪條讓人無法想象它將帶來的神奇味道。

  麪條極細,可以帶給你爽脆口感。散發着淳樸的麪條香味,個人比較推薦怪味豆味道的,真是很特別的體驗。

  【哪裏買】

  複製¥uFgn0YUlGDu¥ 打開淘寶就可以啦

  — ❹ —

  魔法士

  魔法士應該也算是老牌的乾脆面啦,記得之前還在上學的適合它的代言人是劉謙,還有一度掀起了集海賊王小卡的熱潮。

  它的味道搭配很有個性,在常規口味中加入了意想不到的元素讓口味變得更加清新,讓乾脆面告別油膩感。

  粗細適中的麪條,在捏碎時能夠帶來不錯的手感。個性的味道組合也是讓人可以感受到魔法的魅力,不虛此名呢!

  【哪裏買】

  複製¥4YtD0Y56xOP¥ 打開淘寶就可以啦

  — ❺ —

  康師傅香脆爆

  它是康師傅旗下的乾脆面,感覺味道就是一種保證啦!發麪的製作工藝讓麪條中產生了許多細小的氣泡,帶來了酥脆的口感。

  五種味道的組合將香脆進行到底,個人最喜歡香葱雞塊味,它可以很明顯的看到麪條中的香葱末,乾脆面、葱、雞的組合讓味蕾很是滿足。

  【哪裏買】

  複製¥GOC40Y5SiCa¥ 打開淘寶就可以啦

  — ❻ —

  小浣熊

  統一集團的小浣熊算是最經典的乾脆面啦。雖然它換了包裝,但還是記憶中的味道,還是覺得原來的樣子比較可愛呢!

  它的面是比較寬的那種,需要自己撒調料粉,這樣可以更好地控制自己的口味,比較還是有小清新和重口味之分。

  寬面加酥脆的口感又是別有一番滋味,也許吃它更多會是一種回憶、一種情懷吧,好好品味這童年的記憶。

  【哪裏買】

  複製¥1inV0Y5izuu¥ 打開淘寶就可以啦

  泡麪真是淋透了滿滿的回憶,囤貨動起來!

  (2017-07-27)