李剛
(上海信聯信息發(fā)展股份有限公司 上海市 200333)
對照片檔案的人物標注是一項重要的工作。照片檔案上的人物標注是否準確、完整直接影響其利用價值。目前照片檔案主要是通過人工標注,存在的問題是需逐張對照片上每個人進行標注,存在重復人物標注,效率較低。
為解決此問題,本文提出一種照片檔案的人物自動標注的方法,利用人臉檢測技術、人臉相似度比對算法和標注智能推薦算法,解決不同照片重復人物自動標注問題。該方法能夠有效降低工作量,提高工作效率。
如圖1所示,本文提出的標注方法的實現,主要包含流程:
本文通過創(chuàng)建人臉樣本庫,然后將待標注圖像的人臉與人臉樣本庫的每個人臉逐一進行比對,當識別為相似人臉時,則會為該人臉進行自動標注,并合理選擇圖像的標注位置,自動標注完成后,可對標注結果進行人工確認,并完善人臉樣本庫。
本文需先創(chuàng)建人臉樣本庫,其中人臉樣本包括用于人臉比對的人臉指紋P 和用于標注的標注文本T。每個人臉樣本的人臉指紋P和標注文本T 以鍵值對的形式表示。
如圖2所示,人臉指紋P 方法如下:將人臉圖像縮小到8x8 的尺寸,總共64 個像素。這一步的作用是去除圖像的細節(jié),只保留結構、明暗等基本信息,摒棄不同尺寸、比例帶來的圖像差異。將縮小后的圖像,轉為64 級灰度。計算所有64 個像素的灰度平均值。將每個像素的灰度,與平均值進行比較。大于或等于平均值,記為1;小于平均值,記為0。將上一步的比較結果組合在一起,構成一個64 位的整數,即為這張圖像的指紋[1]。
將圖像指紋P 與人臉圖像標注文本T 組成鍵值作為人臉指紋樣本,并將樣本添加到人臉樣本庫。
本文涉及到人臉比對的過程,主要包含以下步驟:
第1 步:提取人臉;
第2 步:人臉指紋與樣本指紋對比;
第3 步:篩出相似人臉;
針對待標注的照片圖像,使用人臉檢測算法,檢測人臉是按照從上往下,從左往右的順序依次進行檢測,使用f(x,y,w,h)標記檢測到的人臉圖像區(qū)域,則第i 個人臉圖像區(qū)域可以記作f(xi,yi,wi,hi),其中xi、yi為檢測到的第i 個人臉的坐標,wi、hi為該人臉的寬度、高度。在總共檢測到n 個人臉的情況下,該照片的n 個人臉區(qū)域分別為:f(x1,y1,w1,h1),f(x2,y2,w2,h2),……,f(xn,yn,wn,hn)。
使用漢明距離算法將待標注人臉的指紋,與樣本庫中的每個人臉樣本的指紋逐一進行比對,從而得到待標注人臉指紋與樣本指紋的不同數位個數,以此識別待標注人臉與人臉樣本是否相似。[2]
人臉圖像指紋的漢明距離計算方法如下:
公式(1)人臉圖像指紋漢明距離計算方法
圖1:整體流程
圖2:人臉灰度圖像生成64 位指紋
圖3:自動標注流程圖
其中,x,y 表示待標注人臉指紋與人臉樣本指紋;i=0,1,…,63表示指紋的64 位編碼,⊕表示異或。
當發(fā)現待標注人臉指紋與人臉樣本指紋不同數位個數低于一定閾值時,則認為是同一人。本文規(guī)定閾值位數為5,即如果不同數位個數低于5,則說明待標注人臉和人臉樣本相似,比對結果為同一人。
當識別出相似人臉時,本文自動智能計算標注文本的合理位置,避免標注文本遮擋人臉或者標注文本相互遮擋的情況。
針對照片檔案人物排列呈現多樣性的特點,本文依據照片中檢測出的人臉區(qū)域的排列特征,將標注位置與人臉位置居中對齊,并標到人臉正上方。然后判斷標注與其他區(qū)域是否有遮擋,通過左右移動、上移、移動到照片整體上方或者下方進行標注,有效避免了標注遮擋的問題,實現有效標注[3]。如圖3所示。
圖4:標注文本四頂點示意圖
圖5:向右移動避免遮擋
圖6:空白位置避免遮擋
在自動標注時,標注區(qū)域優(yōu)先選擇人臉上方區(qū)域,標注過程如下:
2.4.1 計算標注默認尺寸和位置
(1)設定該標注區(qū)域T(xt,yt,wt,ht),獲取待標注人臉區(qū)域f(x,y,w,h),相似人臉樣本的標注文本T;
(2)設置標注默認字體和字號,根據標注文本T 的文字個數和文字默認大小計算標注文本所占區(qū)域大小,計算標注區(qū)域T 的值wt與ht,當標注區(qū)域的寬度wt比人臉區(qū)域的寬度w 大的時候,縮小標注文本的字體大小,保證標注文本的寬度與人臉區(qū)域的寬度一致。標注區(qū)域T 默認位置是對應人臉區(qū)域的f 居中對齊,并向上平移ht 個像素值,作為標注區(qū)域的初始位置,從而得出T(xt,yt,wt,ht)四個頂點的坐標分別為[4]:
p1(xt,yt)、p2(xt+wt,yt)、p3(xt,yt+ht)、p4(xt+wt,yt+ht)。
2.4.2 判斷標注有無遮擋
判斷當前待標注人臉的標注區(qū)域四個頂點是否與其他人臉及標注區(qū)域重疊,即p1、p2、p3、p4 四個頂點是否落在該照片的其他人臉或者標注區(qū)域,如果沒有,則直接繪制標注文本即可;如果有,則繼續(xù)下述步驟進行平移以避免重合。
2.4.3 判斷標注能否移動
(1)移動總體規(guī)則:判斷能否向左、向右、向上移動,每個方向可以移動一次;
(2)判斷是否能夠向右移動,判斷標準是:標注右邊線的xt+wt比右側人臉區(qū)域的x 的值小,并且標注左邊線的xt比目標人臉區(qū)域的x+w/2 值??;
(3)判斷是否能夠向左移動,判斷標準是:標注左邊線的xt比左側人臉區(qū)域和左側標注區(qū)域的x+w 的值大并且標注右邊線的xt+wt比目標人臉區(qū)域的x+w/2 值大;
(4)判斷能否向上移動,判斷標準是:標注上邊線yt要大于上方人臉區(qū)域的y+h 的值。
2.4.4 橫豎移動
通過移動標注以避免遮擋,標注移動之后,還是要再次驗證是否與其他人臉以及標注區(qū)域是否有遮擋。
2.4.4.1 向右平移
(1)假設p1(xt,yt)落在f(xi,yi,wi,hi)區(qū)域中。
(2)確定移動距離d=xi+wi-xt,判斷xt+wt+d 是否比右側人臉區(qū)域x 小,并且xt+d 比目標人臉區(qū)域x+w/2 值小,如果驗證通過,則標注向右平移距離d 以避免遮擋;否則無法通過向右平移避免遮擋。
(3)標注向右平移距離d 之后,得到標注四個頂點新的坐標如下:
p1(xt+d,yt)、p2(xt+wt+d,yt)、p3(xt+d,yt+ht)、p4(xt+wt+d,yt+ht)。
2.4.4.2 向左平移
(1)假設p2(xt+wt,yt)落在f(xi,yi,wi,hi)區(qū)域中。
(2)確定移動距離d=xt+wt-xi,判斷xt-d 是否比左側人臉區(qū)域和左側標注區(qū)域x+w 大,并且xt+wt-d 比目標人臉區(qū)域x+w/2 值大,如果驗證通過,則標注向左平移距離d 以避免遮擋;否則無法通過向左平移避免遮擋。
(3)標注向左平移d 之后,得到標注四個頂點新的坐標如下:
p1(xt-d,yt)、p2(xt+wt-d,yt)、p3(xt-d,yt+ht)、p4(xt+wt-d,yt+ht);
2.4.4.3 向上移動
(1)假設p3(xt,yt+ht)落在f(xi,yi,wi,hi)區(qū)域中。
(2)確定移動距離d=yt+ht-yi,判斷yt-d 是否大于上部人臉區(qū)域的y+h 值,如果判斷通過,則標注向上移動距離d 以避免遮擋;否則無法通過向上移動避免遮擋;
(3)標注向上移動距離d 之后,得到標注四個頂點新的坐標如下:
p1(xt,yt-d)、p2(xt+wt,yt-d)、p3(xt,yt+ht-d)、p4(xt+wt,yt+ht-d);
2.4.5 繪制標注文本當標注與其他人臉區(qū)域和標注區(qū)域沒有遮擋時,可以直接將標注本文繪制到標注區(qū)域中。
2.4.6 空白區(qū)域引線標注
當無法通過移動以避免遮擋,則將標注區(qū)域沿y 軸向上或者向下移動到照片空白區(qū)域中,將標注文本繪制到標注區(qū)域中并增加指引線。如圖6所示。
2.4.7 人工確認及完善樣本庫
當自動標注完成后,由人工進一步確認,比如對標注文本位置進行調整。人工繼續(xù)手工確認新的人臉,確認新的人臉時候,將新的人臉圖像指紋和標注文本添加到人臉樣本庫中,這樣待下一張照片檔案進行識別時,就可以使用更加完善的樣本庫進行對比[5]。
本文基于人臉檢測算法、人臉相似度比較算法和標注位置智能推薦算法,實現重復人物自動標注為主、手工標注為輔的標注方式,使得標注在保證質量情況下,工作效率得到明顯提高。