【蜂口 | AI人工智慧】資料準備的完整過程——龍鵬的一站式caffe工程實踐連載(二)

絵飛的魚發表於2018-09-19

知識引入

這一小節我們將分享資料的準備。在所有機器學習的專案中,資料準備是至關重要的一步,也是第一步。資料的準備將包含以下幾個部分,資料的獲取,資料的清洗與整理以及資料的標註;資料的獲取,一般我們有以下的渠道,開源資料集的獲取,爬蟲獲取,以及我們自己去進行一些採集。但是由於自己採集的效率比較低,所以我們可以優先採用前面兩種渠道,然後是資料的整理,資料的整理工作,這一步尤其重要,它包含統一圖片的格式,統一圖片的命名標準,以及對圖片進行一些去重。對我們需要的圖片進行相應的裁剪。最後是影像的標註,影像的標註就是獲取影像對應的 label。

資料獲取

我們使用開源資料集或者使用爬蟲來進行扒取。開源資料集的話,我們現在這裡給大家介紹一個比較常用的資料集:

連結地址

http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

如上圖, celeba這個資料集是香港中文大學湯曉鷗他們實驗室整理的一個影像領域裡非常有名的資料集,它包含20萬左右的人臉,每一個人臉包含40多個屬性。總體來說它包含不同的姿態,不同的表情,非常適合我們這樣的一個任務,因為它的多樣性非常好。

然後我們介紹一個比較好用的一個爬蟲:

連結地址


上圖這個爬蟲可以爬取 google,bing以及百度這三大通用搜尋引擎的圖片,每一個搜尋引擎大概可以爬到2000張左右的圖片,上面是我們使用人臉嘴唇這樣一個關鍵詞,獲取到一些結果。

資料整理

在我們準備好了資料之後,我們接下來要對這些資料進行一些有效的整理,它包含要統一圖片的格式,重新命名以及圖片的去重等一系列的操作,如下圖:

在這裡我不再對上 面的這幾個步驟逐一的說明,我給大家提供一個 github連結,這是我開源的一個github專案。

連結地址

它上面已經包含了統一格式重新命名以及去重的一些指令碼,大家可以自行的去 follow去使用。

影像裁剪

最後一步,我們要對影像進行適當的裁剪。本專案的這個任務是一個對嘴唇進行分割任務,在影像專案中我們一般會簡化問題,我們沒有必要使用整張的人臉,沒有必要使用帶有非人臉的區域來進行訓練。所以我們需要首先對這個嘴唇區域進行裁剪,裁剪完嘴唇區域之後,我們針對嘴唇區域去訓練一個分割的模型。在使用過程中,我們可以利用其它的方法,先檢測到嘴唇這個區域,然後對這個區域進行分割,這樣可以提高模型的魯棒性,提高模型抗干擾的能力。

具體的方法我們可以先使用 opencv的一個人臉關鍵點檢測的開源框架。首先我們可以提取到嘴唇的關鍵點,提取到嘴唇的關鍵點之後,我們可以適當的擴大一下嘴唇的二維區域,這也方便我們後面做一些資料增強的操作。下面就是我們裁剪出來的嘴唇的結果:

 

我是對嘴唇的區域裁剪了一個正方形 .

資料標註

得到了我們訓練資料之後,我們需要對它進行資料的標註。資料的標註,可以使用一些開源工具。 labelme是一個非常常用的開源工具,它可以對影像分割任務、檢測任務等一系列任務進行標註。我們現在是一個影像分割的任務,如下圖:

所以我們需要的是標註出影像主體的輪廓,也就是嘴唇的輪廓。如上最終標註的結果就是一張與原圖大小相同的圖片,如下圖:

  左圖是我們的原圖,右圖是我們的標註結果。從我們的標註結果可以看出,上嘴唇和下嘴唇我們進行了區分。影像分割任務本質上是一個逐畫素的影像分類任務,在 caffe這個開源框架之中,影像分類任務的標籤是從0,1,2依次往上疊加。所以我們這個彩色圖肯定是不能直接用的。我們最終要使用的話,必須將這個彩色圖轉化為0,1,2,3這樣的標籤,由於我們的這個影像任務包含背景上嘴唇下嘴唇,所以我們的標籤會包含0,1,2。至於這個轉化指令碼的話,大家可以自己去嘗試編寫。

完整內容及影片解讀,請微信搜尋關注蜂口小程式~?

參與內測,免費獲取蜂口所有內容,更有其他優惠福利多多,,若想獲得內測種子使用者資格,歡迎微信fengkou-IT勾搭,歡迎大家多多參與,盡情挑刺,凡是好的建議,我們都會虛心採納噠

蜂口小程式將持續為你帶來最新技術的落地方法,歡迎隨時關注瞭解~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31553577/viewspace-2214494/,如需轉載,請註明出處,否則將追究法律責任。

相關文章