1. 程式人生 > >【AI測試】人臉識別中性別識別模型評價(專案例項)

【AI測試】人臉識別中性別識別模型評價(專案例項)

以人臉識別中的性別識別測試為例項,對整個測試過程進行詳細講解。

舉例有一個專案,要求是輸入一張人臉照片,使用演算法對照片中人物的性別進行預測男 或 女。
測試人員需要對演算法模型的表現進行評價,輸出客觀的評價指標。

測試工作開展:

一、需求分析,檢視需求文件,瞭解需求

演算法的輸入和輸出是什麼的內容,格式。
測試人員需要給出的評價指標。
訓練資料中男性照片和女性照片資料分別有多少,比例。
照片資料是怎樣的(是否有老人,小孩等)。
演算法是如何實現的。(整個模型預測流程;資料是如何處理;用的是什麼演算法)

思考方向:
演算法工程師使用男女訓練資料比例是否合理?
照片資料中覆蓋是否全面?

二、測試資料準備(相當於編寫測試用例)

類比一個輸入框的測試,需要測試漢字、字元、表情、數字、字母,組合等多種情況下的。這裡也是類似。
主要考慮:
1,需要什麼樣的測試資料
2,測試資料要多少

思考什麼情況下可能會影響到演算法識別性別,準備這樣的測試資料。
這裡給出一些建議:

  1. 男性照片和女性照片測試資料比例和訓練資料中比例保持一致。
  2. 照片資料中包括不同年齡段男女
  3. 正常臉部拍攝的照片
  4. 包括不同光線照明場景,尤其是弱光,光線不足,暗場景下的照片。
  5. 包括不同姿勢(偏頭、仰頭、側面)場景照片。
  6. 被物體(如眼鏡、面膜、口罩、手等)遮擋場景照片。

測試資料總數多少參考之前寫的部落格。
本次專案測試主要考慮使用者群體,使用者場景下拍攝的照片。不使用網路照片。不使用國外人臉資料集。不考慮國外人群,像黑種人性別識別。
進入性別識別前有人臉識別模型判斷有沒有人臉,多人臉判斷等,所以不用考慮非人臉是否會識別出性別的問題。
場景下不會有臉部區域很小的照片。此不考慮。

筆者這裡使用1100張女性照片,900張男性照片做為測試資料。
測試資料的標註:
如果是圖片是本地.jpg格式的,在一個資料夾中新建2個子資料夾,一個命名man存放所有男性照片,一個命名為woman存在所有女性照片。

如果圖片是url,所有url儲存在一個txt文件中,分為兩列,第一列為url, 第二列為對應標註1, 2

三、測試指令碼

測試指令碼主要功能:批量執行所有測試資料,記錄模型預測值,和標註值進行,計算得出評價指標。儲存判斷出錯的照片。並記錄每張照片所預測耗時,計算出平均值、中位值、最大值 、最小值等 資料。
使用python編寫實現,評價指標使用sklearn包,平均值使用numpy。

如果同一張照片,模型的輸出結果是不變的。指令碼執行一次就可以。
如果同一張照片,執行多次,可能會有不一樣的輸出。要多次執行指令碼,評價指標取平均值或 其他。看具體出的指標情況。

四、結果分析

檢視評價指標。
檢視判斷出錯的照片,是不是標註出錯。有沒有什麼共同特徵等。

五、大批量照片資料執行

使用大量照片(不需要標註男女)執行,只關注是否會有執行失敗、報錯的情況,不關注預測出來的結果是否正確。
大量資料情況下,主要考察是否有些資料會執行報錯。

六、和百度人臉識別中性別識別PK

待補充