使用Python+OpenCV實現(xiàn)神經(jīng)網(wǎng)絡預處理人臉圖像的快速指南
對于眼睛,我們以類似的方式進行搜索,但將搜索范圍縮小到面部矩形:eyes = eyes_cascade.detectMultiScale(img[y:y+h, x:x+w])for (ex, ey, ew, eh) in eyes: cv2.rectangle(img, (x+ex, y+ey), (x+ex+ew, y+ey+eh), (255, 255, 255), 1)成啦!
雖然這是預期的結(jié)果,但我們會遇到很多其他方面的問題。很多時候,我們沒有正面和清晰的人的臉,甚至……沒有眼睛:
眼睛是被白色包圍的黑色污點:
此處有4只眼,僅檢測到3只眼:
矯正臉部通過計算兩只眼睛之間的角度,我們可以拉直臉部圖像(這很容易)。計算后,我們僅需兩個步驟即可旋轉(zhuǎn)圖像:rows, cols = img.shape[:2]M = cv2.getRotationMatrix2D((cols/2, rows/2), <angle>, 1)img_rotated = cv2.warpAffine(face_orig, M, (cols,rows))
裁剪臉部為了幫助我們的神經(jīng)網(wǎng)絡完成人臉分類任務,最好去掉背景、衣服或配飾等外部干擾信息。在這種情況下,裁剪臉部是一個很好的選擇。我們需要做的第一件事是從矯正的人臉圖像中再次得到人臉矩形。然后我們需要做一個步驟:我們可以按原樣裁剪矩形區(qū)域,或者添加一個額外的填充,這樣我們可以獲得更多的空間。這取決于要解決的具體問題(按年齡、性別、種族等分類);也許你想要更多的頭發(fā);也許不需要。
最后,裁剪(p表示填充):cv2.imwrite('crop.jpg', img_rotated[y-p+1:y+h+p, x-p+1:x+w+p])看!這張臉是孤立的,幾乎可以進行深度學習了
圖像縮放神經(jīng)網(wǎng)絡需要所有的輸入圖像具有相同的形狀和大小,因為GPU在同一時間對一批圖像應用相同的指令,以達到超級快的速度。我們可以動態(tài)地調(diào)整它們的大小,但這可能不是一個好主意,因為在訓練期間將對每個文件執(zhí)行多個轉(zhuǎn)換。因此,如果我們的數(shù)據(jù)集有很多圖像,我們應該考慮在訓練階段之前實現(xiàn)批量調(diào)整大小的過程。在OpenCV中,我們可以使用resize()函數(shù)執(zhí)行向下縮放和向上縮放,有幾種可用的插值方法,指定最終尺寸的例子:cv2.resize(img, (<width>, <height>), interpolation=cv2.INTER_LINEAR)為了縮小圖像,OpenCV建議使用INTER_AREA插值,而要放大圖像,可以使用INTER_CUBIC(慢)或INTER_LINEAR(快,效果仍然不錯)。最后是質(zhì)量和時間之間的權衡。我做了一個快速的升級比較:

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?