最近參加了乙個oppo舉辦的比賽,做人像精細分割。題目要求是這樣的:
隨著手機硬體平台和人工智慧技術的飛速發展,目前的智慧型手機基本都可以實現後置雙攝像頭和前置單攝像頭對人像拍照時的背景虛化。在虛化的方法上,後置通過雙攝像頭來計算景深從而實現前景人像的分割,進而對背景虛化;而前置則直接對單幀影象進行人像分割的方式來虛化背景。這兩種方式來帶的虛化效果是顯著的,但是也存在很多弊端,無論哪種分割方式,都難以實現對人像髮絲的精細分割,這導致了最終人像頭部邊緣的虛化效果不是很理想。隨著使用者對手機相機拍照功能要求的逐年公升級,為了達到單鏡反光機級別的背景虛化效果,需要能夠實現人像的精細分割,尤其是髮絲邊緣。這樣不僅可以實現更加精確的背景虛化,同時也為人像**換背景提供了技術支援,而這些可以進一步增強使用者的使用體驗。1、它題目中所提到的人像分割更像是摳圖(image matting),如果想要結合人工智慧演算法,我們的第一種思路是:以傳統image matting演算法,作為最終方法,分割前景與背景。但使用這些方法需要trimap影象(劃定中間區域的影象),所以我們考慮用cnn網路進行初步分割,以分割得到的結果圖作為trimap。
2、訓練網路loss的建立:以最終摳圖結果的groundtruth作為計算loss的標準,更新cnn網路,最終得到的網路與傳統分割網路不同,它是乙個更好劃分出trimap的網路。
1.傳統摳圖演算法學習:
2.影象分割網路的學習:
這兩個似乎都是face++的分割網路,還都比較新,但是沒有訓練**,只有訓練好的網路框架,均使用的pytorch的網路框架。
1.學習了一下本題的評估標準:f1分數(f1-score),又稱為平衡f分數(balancedscore),它被定義為精確率和召回率的調和平均數。參考
先看四個概念定義:
tp、true positive 真陽性:**為正,實際也為正
fp、false positive 假陽性:**為正,實際為負
fn、false negative 假陰性:**與負、實際為正
tn、true negative 真陰性:**為負、實際也為負。
計算我們**出來的某類樣本中,有多少是被正確**的。針對**樣本而言。
總結一句話就是:準確率是正確**個數在**資料中佔得比例,召回率是正確**個數在原始資料中佔得比例。
針對原先實際樣本而言,有多少樣本被正確的**出來了。
但是仍然需要trimap圖來幫助劃分區域。
2.在這個**看到了一種訓練網路的方法也是輸入原圖和trimap圖,實現分割影象。細節可去**:
大體思路是:用原圖和trimap圖作為輸入,摳出前景之後,再放到完整的背景影象中,作為網路輸出結果。將結果與原圖進行比較計算loss。
3.用區域生長演算法獲得trimap影象。
區域生長演算法的基本思想是將有相似性質的畫素點合併到一起。對每乙個區域要先指定乙個種子點作為生長的起點,然後將種子點周圍領域的畫素點和種子點進行對比,將具有相似性質的點合併起來繼續向外生長,直到沒有滿足條件的畫素被包括進來為止。這樣乙個區域的生長就完成了。這個過程中有幾個關鍵的問題:
a.給定種子點(種子點如何選取?)
種子點的選取很多時候都採用人工互動的方法實現,也有用其他方式的,比如尋找物體並提取物體內部點或者利用其它演算法找到的特徵點作為種子點。
b. 確定在生長過程中能將相鄰畫素包括進來的準則
這個準則很重要:例如包括灰度值的差值;彩色影象的顏色;梯度特徵,包括梯度的方向和幅值特徵。該點周圍的區域特徵,例如harr特徵,也就是區域畫素和特徵。
HDU2050分割問題
題目出自杭電 相關的問題資料可以在以下鏈結中找到 1 先講n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與每條直線相交且不能有同一交點。這樣就會得到n 1個交點。這些交點...
揹包問題 416 分割等和子集
0 1揹包問題。dp陣列中dp i w 的含義。dp i w 的定義如下 對於前i個物品,當前揹包的容量為w,這種情況下可以裝的最大價值是dp i w 如果你沒有把這第i個物品裝入揹包,那麼很顯然,最大價值dp i w 應該等於dp i 1 w 如果你把這第i個物品裝入了揹包,那麼dp i w 應該...
C 動態規劃問題(1) 分割回文串
本例以把任意乙個字元分割成一些子串,使每個子串都是回文串,並且輸出最小分割次數為例 以字串aabc為例 首先利用中心擴散法判斷是回文字串的區間,回文字串的判斷另一篇文章中有詳解 首先,dp的定義是從s 0 到當前字元s i 分割字串所需的最少次數,那麼,當0 i區間是回文串時dp i 為0,所以aa...