日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

人脸检测流程

發布時間:2023/12/14 pytorch 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人脸检测流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


人臉檢測流程圖如上圖所示,對于每一步做相關分析.,人臉檢測算法準備使用訓練集CASIA-WebFace數據集及簡單介紹,測試集使用MegaFace數據集。

Face detection

目前最火的開源人臉檢測算法是Retinaface,所以為了得到比較好的人臉框準備使用Retinaface算法做人臉檢測,Retinaface關于Pytorch的實現可以點擊這個[鏈接]
(https://github.com/supernotman/RetinaFace_Pytorch),
這個作者寫的非常好,而且易于實現,RetinaFace訓練測試使用的數據集是wider-face,該算法在widerface挑戰賽中取得了the state of the art,Pytorch復現版本的算法訓練使用的數據集也是widerface。然而原始的widerface數據集的標注信息是沒有landmark的為了讓測試結果更加精準,RetinaFace作者自己標注了人臉五點landmark。
這里有個值得注意的問題,在Retinaface訓練的過程中,作者采用的數據增強是這樣的[1] (英文原話見頁底),意思是為了讓細小的人臉模塊可以更好的采集到,我們采用的方法是對原圖進行隨機正方形切塊(邊長為短邊的0.3 ~ 1,在推理過程中代碼是直接將原圖resize為一個640*640的圖片也就是說得到的landmark是對應resize后圖片的landmark

Face Alignment

CASIA-WebFace數據集有10k多個人臉ID,總共有0.5M的人臉頭像,這些頭像都經過切割了,但是應該是為了后面更好的提取特征,所以對人臉對齊做進一步切割。
1.生成casia_landmark.txt文檔
將retinaface 模塊應用到所有的CASIA-WebFace上就可得到對應的五點landmark文檔,casia_landmark.txt
2.仿射變換
由于人臉定位得到的人臉框框出的人臉不一定是正的,(因為拍攝的時候可能拍到的圖片頭像就是歪的),需要通過landmark來糾正人臉讓對應的人臉是正的,這里定義了一個標準的五點landmark坐標,通過映射原來的landmark到新的landmark會得到一個33矩陣,通過這個矩陣對原圖像做放射變換并切割,得到對應的人臉圖像,具體代碼,在網上找了一個還不錯的,點這個鏈接,這里需要強調一下的是有些程序把人臉resize成11296的有些把人臉resize成112112的,這是因為對于不同的網絡輸入不一樣的問題,在arcface中人臉resize成112112我們以這個作為標準,標準的五點人臉關鍵點是對稱的(眼睛對稱,嘴角對稱,鼻尖在最中心),96 ->112只需將對應橫坐標平移八個像素點就行了。
3.檢測與對齊結合
這里其實就是將訓練好的retinaface網絡推理一遍CASIA-WebFace數據集(該數據集照片大小都是250250的),將其放大到640640得到對應的landmark。然后采用仿射變換及裁剪,把頭像裁剪下來,標準的人臉檢測數據集就做好了
(1):初始做檢測的時候發現平均10張圖片就有2張漏檢,很快意識到了問題,對RetinaFace來說他的訓練集照片人臉都是比較小的照片,但是現在的CASIA數據集人臉都比較大,如果還是用640640進行放大就會出現檢測不到的情況,因此直接使用250250的圖片做檢測就好了。
(2):CASIA數據集雖然每張圖片基本上對應的是一個人,但是也有圖片是兩個人的,兩個人臉一張是ID的人臉,另一張其實是背景人臉,但是由于RetinaFace效果非常好,所以兩張人臉都檢測出來了,在這里我只取了比較大的人臉做這個人的ID小的人臉直接pass了,當然有可能會出錯,我對于有多張人臉或者沒有人臉的情況都做了一下記錄,最后人工排查一下就好了。
(3):由于CASIA數據集有很多是黑白照片,我們需要使用cv2.cvtCOLOR函數將單通道圖片換成多通道圖片,實驗證明,單通道圖片變成多通道圖片依然可以人臉框及landmark依然可以檢測的很準確
(4):在檢測過程中發現使用RetinaFace也會出現漏檢的情況,我將圖片尺寸從250250 縮小到160160,這樣左右有1600張漏檢的圖片一下子少了1000張,RetinaFace對尺度比較小的圖片檢測效果好一點。剩下的那些圖片就不做數據處理了,
(5):有些數據集照片又多張人臉這種情況下RetinaFace會得到多個bbox和landmark 這是沒辦法的,在這里選取圖片中面積最大的頭像作為目標ID的頭像做對齊裁剪,

4.CASIA-WebFace數據集清洗
最終通過RetinaFace對CASIA-WebFace數據集做人臉檢測得到493875張尺度為112*112的圖片,大概比原數據集少了0.001左右,這是無關緊要的我覺得,但是這些數據有很多數據是有問題的,對于這些圖片做人工排查。清除的數據主要是(1)一張圖片有兩個人臉,(2)人臉圖片不屬于那個人的ID, (3)特別模糊的圖片 (4)角色化妝太夸張的圖片

[1]Since there are around 20% tiny faces in the WIDER FACE training set, we follow [68, 49] and randomly crop square patches from the original images and resize these patches into 640 × 640 to generate larger training faces. More speci?cally, square patches are cropped from the original image with a random size between [0.3, 1] of the short edge of the original image. For the faces on the crop boundary, we keep the overlapped part of the face box if its centre is within the crop patch. Besides random crop, we also augment training data by random horizontal ?ip with the probability of 0.5 and photo-metric colour distortion [68].

總結

以上是生活随笔為你收集整理的人脸检测流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。