人臉檢測 二
目的:
- 檢測出使用者路徑下所有的圖片的人像特徵,儲存在指定目錄;
- 人像原始特徵為100*100 圖片;
程式碼特點:
用自制的filewalk函式遍歷使用者目錄,並跟上了檔案操作回撥函式,使得程式碼閱讀起來更一目瞭然。
完整程式碼:
import os
import matplotlib.pyplot as plt
import numpy as np
from cv2 import cv2
from skimage import color, draw, io, transform
face_cascade=cv2.CascadeClassifier()
face_cascade.load(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
def feature_model(full_path_file,detected_path=r'C:\Users\super\Desktop\detected'):
try:img = io.imread(full_path_file)
except:return 0
path,file = os.path.split(full_path_file)
file_name,file_postfix = os.path.splitext(file)
gray = np.array(color.rgb2gray(img)*256,dtype='uint8')
faces=face_cascade.detectMultiScale(gray)
for index,face in enumerate(faces):
x,y,w,h = face
face_detected = img[y:y+h,x:x+w,:]
face_detected = transform.resize(face_detected,(100, 100),mode='reflect')
full_path_detected_file = os.path.join(detected_path,file_name+'_%s%s'%(index,file_postfix))
plt.imsave(full_path_detected_file,face_detected)
def walk(path,callback=print):
files = os.listdir(path)
for file in files:
try:
if os.path.isdir(os.path.join(path,file)):
walk(os.path.join(path,file),callback)
else:
print(os.path.join(path,file))
callback(os.path.join(path,file))
except:pass
def main():
walk(path,feature_model)
if __name__ == "__main__":
path = r'C:\Users\super'
main()
可以改進之處:
- 沒有指定人臉特徵目錄的話就自己創造一個目錄,目前沒有實現這個功能;
- 特殊許可權的檔案目錄不能開啟;
- 人臉識別的原始cv2檢測器太垃圾,檢測出許多非人臉特徵,所以如果照片集裡有很多非人像的圖片就完全沒法用啊!
- 非人像特徵太多不能作為人臉識別原始資料,請繼續篩選;
- 依圖片集大小這個程式可能會執行兩三個小時;
- 據說編碼不能太完美主義,不然會沒完沒了~
效果:
相關文章
- 圖片人臉檢測——OpenCV版(二)OpenCV
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- [計算機視覺]人臉應用:人臉檢測、人臉對比、五官檢測、眨眼檢測、活體檢測、疲勞檢測計算機視覺
- 人臉活體檢測
- 前端人臉檢測指南前端
- 人臉檢測的harr檢測函式函式
- 人臉檢測(detection)與人臉校準(alignment)
- opencv視訊人臉檢測OpenCV
- OpenCV 人臉檢測自學(3)OpenCV
- 人臉活體檢測人臉識別:眨眼+張口
- iOS 人臉關鍵點檢測iOS
- Android人臉檢測介紹Android
- FaceDetector 人臉檢測追蹤demo
- 人臉識別之人臉檢測的重要性
- IOS人臉識別開發入門教程--人臉檢測篇iOS
- Python人臉識別微笑檢測Python
- 視訊人臉檢測——OpenCV版(三)OpenCV
- JavaScript人臉檢測的實現方法JavaScript
- Android API 人臉檢測(Face Detect)AndroidAPI
- 從零玩轉人臉識別之RGB人臉活體檢測
- OpenCv人臉檢測技術-(實現抖音特效-給人臉戴上墨鏡)OpenCV特效
- canvas+face-api人臉實時檢測CanvasAPI
- 3分鐘內實現人臉檢測
- 人臉識別檢測專案實戰
- APISpace的 人臉檢測API 它來啦~API
- 圖片人臉檢測——Dlib版(四)
- 視訊人臉檢測——Dlib版(六)
- 目標檢測 YOLO v3 訓練 人臉檢測模型YOLO模型
- 基於opencv實現簡單人臉檢測OpenCV
- MTCNN人臉檢測與校準(5特徵點)CNN特徵
- 人臉檢測中的AdaBoost演算法演算法
- TF專案實戰(基於SSD目標檢測)——人臉檢測1
- OpenCV檢測篇(一)——貓臉檢測OpenCV
- 尺度不變人臉檢測:Group Sampling
- 人臉檢測背景介紹和發展現狀
- 人臉識別活體檢測技術理論
- 黑人人臉檢測
- 主題:人臉檢測原理及示例(OpenCV+Python)OpenCVPython