天池FashionAI全球挑戰賽小小嚐試

前些天從實驗室瞭解到天池的FashionAI全球挑戰賽,題目和數據都挺有意思,因而花了點時間稍微嘗試了下。目前比賽還在初賽階段,題目有兩個,分別是服裝屬性標籤識別和服飾關鍵點定位。html

服裝屬性標籤識別是指識別出領、袖、衣、裙、褲等部位的設計屬性,對應多個多分類問題,例如如下的例子。git

服飾關鍵點定位是指定位出服飾中關鍵點的位置,對應多個迴歸問題,例如如下的例子。github

這和CelebA(mmlab.ie.cuhk.edu.hk/projects/Ce…)人臉數據集有點像,每張圖片都是一張人臉,對應的標註包括5個關鍵點位置和40個屬性的01標註,例如是否有眼鏡、帽子、鬍子等。網絡

選題

我選了第二道題目,一方面感受有人臉關鍵點檢測、人體骨骼關鍵點檢測等相關問題可供參考,去年的AI Challenger也舉辦過人體骨骼關鍵點檢測的比賽(challenger.ai/competition…),另外一方面本身尚未作過這塊內容,比較感興趣。函數

比賽官方提供的訓練集共包括4W多張圖片,測試集共包括將近1W張圖片,神奇的是訓練集和測試集有366張圖片是徹底重合的。每張圖片都指定了對應的服飾,共5類:上衣(blouse)、外套(outwear)、連身裙(dress)、半身裙(skirt)、褲子(trousers)。學習

一共有24個關鍵點,但每類服飾對應的關鍵點數量並不同。關鍵點標註分爲三類,-1表示不存在,0表示存在但不可見,1表示存在且可見,後兩種狀況都會提供對應關鍵點的xy座標。測試

初步探索

進行了相關的預處理以後,先嚐試下最基礎的結構,即卷積、池化加全鏈接。因爲以前徹底沒作過這一塊,因此網絡的一些細節都只能慢慢嘗試,包括卷積用幾層、卷積核大小設多少、使用哪一個激活函數、使用哪一個損失函數等等。設計

進行了長時間的摸索,終於折騰出第一個所有打通的版本,提交了一版結果,成績大概30%左右。因爲最後一層使用全鏈接層直接輸出每一個關鍵點的xy座標,所以偏差比較大。3d

目前排行榜第一名是4.49%,佔榜不少天雷打不動,可見實力之強勁。cdn

進一步探索

後來一想,像這類比較經典的問題,確定已經有大量的相關研究和模型,徹底靠本身憑空搭一個網絡顯然不靠譜。因而進行了一些調研,找到兩個模型:Convolutional Pose Machine、Stacked Hourglass。

精力有限,重點研究了一下CPM。閱讀了對應的論文,2016年的CVPR,模型結構長這樣,簡單來講就是反覆使用多個Stage,不斷抽取每一個關鍵點對應的愈來愈準確的響應圖。

在Github上找到了CPM的一個開源實現(github.com/timctho/con…),閱讀代碼並進行修改後應用到比賽的數據上,在P100上訓練共花費30個小時左右。使用6個Stage的CPM,爲每一個關鍵點生成一張響應圖。

如下是一張dress對應的結果,第一行的三張依次是第1個、第2個、第3個Stage的響應圖合成結果,第二行的三張分別對應第6個Stage的響應圖合成結果、正確答案、正確答案和原圖的合成,看起來還不錯。

再來看個outwear,響應圖也很準。

最後再看個trousers,關鍵點比較少,也很準。

又交了一版結果,拿到了17%的成績。因爲CPM輸出關鍵點的響應圖而不是直接輸出關鍵點的xy座標,同時使用多個Stage級聯以逐步獲取愈來愈準確的響應圖,所以能夠取得更好的結果。

可能的改進

可能的改進包括多個方面:

  • 使用其餘更新更好的模型。因爲我是這方面的外行,一方面不清楚哪一個模型目前最好,另外一方面再調研和實現一個模型也須要耗費大量時間;
  • 調參。每一個模型都涉及不少參數,除此以外還有不少和模型無關的參數,例如學習率、批大小、正則項係數等,因爲我是這方面的外行,暫時不清楚對關鍵點檢測這類問題該如何選擇參數;
  • 使用數據加強等技巧。因爲我是這方面的外行,暫時不清楚除了數據加強以外還有什麼適合關鍵點檢測這類問題的技巧。

雖然有不少可能的改進方向,不過因爲本身以前沒有作過關鍵點檢測這類問題,因此繼續折騰下去只能靠運氣各類嘗試,並且每次嘗試都須要等待好久的模型訓練時間。

相比之下,對於一些在關鍵點檢測領域有至關積累的團隊和我的,他們有着豐富的經驗和現成的代碼,和他們競爭仍是至關有難度的。看一下排行榜,第一名的4.49%至今無人能超越,前三十名也都在12%如下。

並且我的事情也比較多,時間和精力都十分有限,因此決定這個比賽再也不繼續嘗試,感受作到這一步就能夠了。

總結

經過此次比賽,瞭解了關鍵點檢測這類問題的一些解決方法,並嘗試用CPM進行了一些實踐,對本身而言已經知足了。

等比賽結束後,再關注一下冠軍團隊的解決方案,好好學習一波。

相關文章
相關標籤/搜索