黑人人臉檢測
黑人人臉檢測
由於黑人膚色偏深,往往無法直接被檢測到人臉,我將處理黑人人臉的問題轉化為不均勻光照下人臉檢測的問題,通過邊緣增強和明暗均衡的兩個濾波器實現黑人人臉檢測
import cv2
import dlib
import numpy as np
from PIL import Image,ImageFilter
path = "C:/Users/gufei/Desktop/black/black1.jpg"
path = "black.png"
img = Image.open(path)
org= cv2.imread(path)
def face_enhance(img):
enhance = img.filter(ImageFilter.EDGE_ENHANCE_MORE)#大閾值邊緣增強
result = cv2.cvtColor(np.asarray(enhance), cv2.COLOR_RGB2BGR)
gamma=0.2
scale = float(np.iinfo(result.dtype).max - np.iinfo(result.dtype).min)
result = ((result.astype(np.float32) / scale) ** gamma) * scale#自適應gamma增強
result = np.clip(result, 0, 255).astype(np.uint8)
return result
def show_recognition(img,org):
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 人臉檢測畫框
detector = dlib.get_frontal_face_detector()
# 獲取人臉關鍵點檢測器
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 獲取人臉框位置資訊
dets = detector(gray, 1) # 1表示取樣(upsample)次數 0識別的人臉少點,1識別的多點,2識別的更多,小臉也可以識別
for i in range(len(dets)):
shape = predictor(img, dets[i]) # 尋找人臉的68個標定點
# 遍歷所有點,列印出其座標,並圈出來
for pt in shape.parts():
pt_pos = (pt.x, pt.y)
cv2.circle(org, pt_pos, 2, (0, 0, 255), 1) # img, center, radius, color, thickness
for i, d in enumerate(dets):
print("第", i + 1, "個人臉的矩形框座標:",
"left:", d.left(), "right:", d.right(), "top:", d.top(), "bottom:", d.bottom())
cv2.rectangle(org, tuple([d.left(), d.top()]), tuple([d.right(), d.bottom()]), (0, 0, 255), 2)
img=face_enhance(img)
show_recognition(img,org)
cv2.imshow("image", org)
cv2.waitKey(0)#等待鍵盤輸入
cv2.destroyAllWindows()
執行結果如下:
相關文章
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- OpenCV檢測篇(一)——貓臉檢測OpenCV
- 人臉檢測 二
- [計算機視覺]人臉應用:人臉檢測、人臉對比、五官檢測、眨眼檢測、活體檢測、疲勞檢測計算機視覺
- 人臉檢測的harr檢測函式函式
- 人臉活體檢測
- 前端人臉檢測指南前端
- opencv視訊人臉檢測OpenCV
- OpenCV 人臉檢測自學(3)OpenCV
- 人臉識別之人臉檢測的重要性
- 人臉檢測(detection)與人臉校準(alignment)
- iOS 人臉關鍵點檢測iOS
- Android人臉檢測介紹Android
- FaceDetector 人臉檢測追蹤demo
- 人臉活體檢測人臉識別:眨眼+張口
- 目標檢測 YOLO v3 訓練 人臉檢測模型YOLO模型
- Python人臉識別微笑檢測Python
- 視訊人臉檢測——OpenCV版(三)OpenCV
- 圖片人臉檢測——OpenCV版(二)OpenCV
- JavaScript人臉檢測的實現方法JavaScript
- Android API 人臉檢測(Face Detect)AndroidAPI
- Python指令碼檢測笑臉漏洞Python指令碼
- IOS人臉識別開發入門教程--人臉檢測篇iOS
- canvas+face-api人臉實時檢測CanvasAPI
- 3分鐘內實現人臉檢測
- 人臉識別檢測專案實戰
- APISpace的 人臉檢測API 它來啦~API
- 圖片人臉檢測——Dlib版(四)
- 視訊人臉檢測——Dlib版(六)
- 基於Emgu CV的人臉檢測程式碼
- TF專案實戰(基於SSD目標檢測)——人臉檢測1
- 基於opencv實現簡單人臉檢測OpenCV
- 基於Python的人臉檢測與分類Python
- MTCNN人臉檢測與校準(5特徵點)CNN特徵
- 在Python中使用OpenCV進行人臉檢測PythonOpenCV
- 人臉檢測中的AdaBoost演算法演算法
- 從零玩轉人臉識別之RGB人臉活體檢測
- OpenCv人臉檢測技術-(實現抖音特效-給人臉戴上墨鏡)OpenCV特效