當前位置:
首頁 > 最新 > 圖像識別和分類競賽,數據增強及優化演算法

圖像識別和分類競賽,數據增強及優化演算法

1新智元編譯

編譯:賈岳鵬

【新智元導讀】Kaggle 海洋魚類識別和分類競賽冠軍團隊技術分享:如何設計魯棒的優化演算法?如何分析數據並做數據增強?技術細節包括使用不同船隻的圖像進行驗證,以及如何處理夜視圖像。

今年,Kaggle 社區舉辦了大自然漁業監測大賽(Nature Conservancy Fisheries Monitoring competition),徵召參賽者開發能夠自動對漁船捕撈的海洋生物種類進行檢測和分類的演算法。

非法捕魚等行為對海洋生態系統構成了威脅。這些演算法將有助於增強大自然保護協會分析攝像機監控系統數據的能力。在下面這篇獲獎者訪談中,冠軍隊伍「Towards Robust-Optimal Learning of Learning」(Gediminas Pek?ys,Ignas Namajūnas,Jonas Bialopetravi?ius)分享了他們演算法的技術細節,比如如何使用不同船隻的圖像進行驗證,以及如何處理夜視圖像。

由於比賽數據集中的照片不能公開,團隊招聘了平面設計師 Jurgita Avi?ansyt? 為此博文製作了插圖。

團隊背景

在進入這個挑戰賽之前,你的背景是什麼?

P:劍橋數學畢業,做了大約 2 年的數據科學家/顧問,約 1.5 年的軟體工程師,作為監控應用研究工程師大約有 1.5 年的物體檢測研究和框架開發經驗。

N:數學本科,計算機科學碩士和 3 年研發工作,在 9 個月的監控項目研究負責人經驗。

B:軟體工程學士,計算機科學碩士,6 年計算機視覺和機器學習專業經驗,目前正在研究天體物理學,對應用深度學習方法十分感興趣。

有什麼以前的經驗或領域知識幫助你在這場比賽中取得了成功?

P:我上次參加 Kaggle 比賽獲得的工作和研究經驗幫助了我參加這次競賽,也即在第一周的時間裡建立合理的驗證方法。

N:我在大學學習(主要是自學)、研發的工作經驗,還有前兩次 Kaggle 計算機視覺競賽的經驗,以及每天閱讀 arXiv 論文。

B:我的碩士論文是關於深度學習的,我也有一些 Kaggle 競賽經驗。我在工作中定期解決計算機視覺問題。

你是如何開始參與 Kaggle 競賽的?

P:我第一次聽說 Kaggle 是在我成為數據科學家第一年的時候,但在我轉為從事計算機視覺之後幾年後才開始考慮參賽。Kaggle 競賽能讓人專註於稍微不同的問題/數據集,並有效地驗證不同的方法。

N:我曾經喜歡參與 ACM ICPC 等競賽。我沒有取得特別值得一提的成就,但作為維爾紐斯大學團隊成員參加國際比賽是我的學生生涯中最好的體驗。在開始從事機器學習和計算機視覺工作後,我喜歡上了長期的挑戰賽,所以 Kaggle 再適合不過。

B:我喜歡解決機器學習問題,而 Kaggle 正是做這個的平台。

是什麼讓你決定參賽的?

P:我想為計算機圖像檢測和分類做更多的堆疊和定製模型的實驗。我還想要比較最近的檢測框架/體系結構。

N:對象檢測是我的強項之一,這個問題看上去很有挑戰性,因為成像條件「in the wild」程度很高。

B:主要是因為這場比賽看起來難度很高,特別是缺乏好的數據。

技術細節及思路解析

你們從以前的研究或比賽中借鑒了什麼方法嗎?

借鑒了 Faster R-CNN,它在以前參賽中表現很好,我們也有使用和修改它的經驗。

使用了什麼監督學習方法?

我們主要使用帶 VGG-16 的 Faster R-CNN作為特徵提取器,其中一個模型是用的帶 ResNet-101 的 R-FCN。

數據預處理和數據增強是怎麼做的?

大多數用於訓練模型的增強管道都是相當標準的。隨機旋轉,水平翻轉,模糊和尺度變化我們都用了,這些方法也都提高了驗證分數。然而,最重要的兩件事情是使用夜視圖像和圖像顏色。

我們在早期注意到,夜視圖像真的很容易識別——只需檢查綠色通道的平均值是否比紅色和藍色通道兩者相加的均值更亮就行了,加權係數為 0.75,在所有情況下都適用。觀察典型正常圖像和夜視圖像的顏色強度直方圖,可以清楚地發現差異,因為常規圖像的顏色分布通常彼此相近,這可以從下圖中看出。虛線表示近似這些分布的最佳擬合高斯。

我們想要增加更多的夜視圖像。因此,最終的一個模型,也是最後成績最好的單一模型,隨機分配了一些訓練圖像,並且擴展了直方圖,使其更接近於夜視圖像。這是針對每個顏色通道分別完成的,並假設是高斯的(實際情況並不是高斯的),並且相應地修改了平均值和標準偏差——基本上就是縮小紅色和藍色通道,從圖中可以看出。之後我們也分別對每個顏色通道進行了隨機的對比度拉伸。因為夜視圖像本身可能是非常多樣的,而固定變換無法體現這種變化。

因為這個模型性能非常好,我們還添加了一個不單獨使用夜視圖像的模型,但卻加長了所有圖像的對比度。因為這是分別在每個通道上完成的,可能會改變魚類或周圍環境的顏色。由於數據中海洋里光照條件變化多端,真實圖像中的顏色不太穩定,所以這種方法結果看上去還是很好的。

比賽中,關於數據方面,你們最重要的看法是什麼?

首先,必須具有包含來自不同船舶的圖像的驗證集,而不是訓練集中的圖像,否則模型可以根據船舶特徵學習分類魚類,這雖然不會在驗證分數上有所體現,但可能會導致 stage2 測試集的精確度下降。

其次,整個數據集中魚的大小都非常不同,因此對這一點進行處理顯然是有用的。

第三,有大量的夜視圖像具有不同的顏色分布,因此用不同的方式處理夜視圖像也提高了我們的分數。

更重要的是,其他團隊在論壇上發布的附加數據似乎包含了很多這樣的圖像,其中的魚看起來與放在船上的魚看起來不一樣,因此過濾掉這部分數據很重要。

最後,我們對原始訓練圖像進行了多邊形注釋,這有助於我們在旋轉圖像上實現更準確的邊界框,否則圖像將包含很多背景(如果旋轉框的邊框被視為基本真實的)。

參賽工具及硬體配置

你們使用了哪些工具?

我們使用從定製的存儲庫 py-R-FCN(包括 Faster R-CNN)代碼:https://github.com/Orpine/py-R-FCN 。

你們在這次比賽中都做了哪些事情?

我們花了一些時間注釋數據,從論壇上發布的圖像中找到有用的附加數據,找到正確的擴充來訓練模型,查看生成的驗證圖像預測,然後查看模型可能學到的任何虛假模式。

你們的硬體設置是什麼樣的?

兩台 NVIDIA GTX 1080,一台 NVIDIA TITAN X

你們獲勝解決方案的訓練和預測運行時間分別是多少?

非常粗略的估計,GTX 1080 訓練大約 50 小時,預測每個圖像 7-10 秒。我們最好的單一模型其實比整個系統更加精確,可以在 4 小時內訓練,需要 0.5 秒進行預測。

對剛入門數據科學的人有什麼建議嗎?

先閱讀介紹類的材料,然後逐漸開始閱讀論文,嘗試自動動手解決機器學習問題,培養直覺,檢查訓練好的模型,努力去了解出了什麼問題。計算機視覺問題對於練手來說相當不錯。學習享受機器學習過程要付出長期的努力,保持興趣才能保持動力。Kaggle 是學習機器學習的完美平台。

編譯原文:http://blog.kaggle.com/2017/07/07/the-nature-conservancy-fisheries-monitoring-competition-1st-place-winners-interview-team-towards-robust-optimal-learning-of-learning/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

「AI TOP 10」特斯拉市值蒸發真相;十年內實現心靈感應;Waymo撤銷對Uber大部分訴訟
谷歌投入622000英鎊創建機器人記者,每月挖掘3萬條新聞
「機器人總統強過特朗普?」技術視角看通用AI能否超越人類領袖
「Kaggle冠軍分享」圖像識別和分類競賽,數據增強及優化演算法
谷歌投資「演算法商店」創始人:打造AI操作系統(PPT)

TAG:新智元 |

您可能感興趣

改進語音識別性能的數據增強技巧
數據+進化演算法=數據驅動的進化優化?進化演算法PK數學優化
數據+進化演算法=數據驅動的進化優化?進化演算法PK數學優化
數據 + 進化演算法 = 數據驅動的進化優化?進化演算法 PK 數學優化
「極簡主義機器學習」演算法可從極小數據中分析圖像
演算法歧視研究:比大數據「殺熟」更值得關注的領域
數據盾與耳朵財經達成戰略合作;馬化騰:應加強區塊鏈和數字貨幣的立法研究
深度分析金融知識圖譜創業:需從「數據」競爭跨向「技術」競爭
成為優秀數據分析師的核心競爭力是什麼?
N維圖像的數據增強方法概覽
淺析數據標準化和歸一化,優化機器學習演算法輸出結果
圖像配對數據集TTL:展現人類和機器判斷圖像相似性的差異
人工深度加工的增強型數據集對大數據分析的重要性
數據差異的可視化
大數據技術詳解比較分析!
互聯網項目中針對數據分析和數據可視化實現的重要意義
「助力美賽」這是一份超實用的演算法、數據合集
特徵選取演算法-機器學習與數據分析常用術語(二)
數據隱私模型:從技術和演算法角度了解數據隱私
機器學習探索性數據分析的數據類型