3.9 KiB
3.9 KiB
Face Recognition 项目说明
本项目使用
OpenCV+Dlib+Yolov4-tiny+Python实现2个主要功能:
- 通过摄像头捕获人脸数据录入数据库,通过摄像头获取的实时视频流识别人脸
- 通过获取的视频捕获人脸数据,和已经录入数据库的人脸数据进行比较,识别出对应的人脸
项目结构说明如下:
.
├── data
│ ├── data_faces # 人脸数据库或通过摄像头捕获人脸存放位置
├── face_check_from_data.py # 人脸对比
├── face_reco_from_camera_ot.py # 带OT人脸追踪的视频流人脸识别
├── face_reco_from_camera.py # 视频流人脸识别
├── face_reco_from_video.py # 监控视频下的人脸捕获
├── faces_output # 监控视频下的人脸捕获数据存放位置
│ ├── all_faces
│ ├── captured_faces
│ └── result_video.avi
├── features_extraction_to_csv.py # 支持DNN检测器的数据转码
├── features.py # 基础的数据转码
├── get_faces_dnn.py # 支持OpenCV DNN检测器的摄像头人脸获取
├── get_faces.py # 摄像头人脸获取
├── get_faces_UI.py # UI摄像头人脸获取
├── LICENSE
├── models # 模型存放位置
│ ├── deploy.prototxt
│ ├── dlib
│ │ ├── dlib_face_recognition_resnet_model_v1.dat
│ │ ├── mmod_human_face_detector.dat
│ │ └── shape_predictor_68_face_landmarks.dat
│ ├── face_embeddings.pkl
│ ├── face_model_trained.xml
│ ├── haar
│ │ ├── haarcascade_eye.xml
│ │ └── haarcascade_frontalface_default.xml
│ ├── opencv_face_detector.pbtxt
│ ├── opencv_face_detector_uint8.pb
│ ├── openface_nn4.small2.v1.t7
│ ├── res10_300x300_ssd_iter_140000.caffemodel
│ ├── yolov4-tiny.cfg
│ └── yolov4-tiny.weights
├── README.md
├── requirements.txt
├── shutil
└── simsun.ttc
识别实时视频流使用方法:
- 安装依赖
pip install -r requirements.txt
- 通过摄像头捕获人脸数据,或导入人脸数据,本项目提供三种方式获取人脸数据:
python3 get_faces.py # 基础的人脸捕获,流畅度一般
python3 get_faces_UI.py # 基础人脸捕获方式+UI支持
python3 get_faces_dnn.py # 使用OpenCV DNN人脸检测器,大幅提高视频流畅度
- 转码,将捕获的人脸数据转码
python3 features.py # 使用基础人脸捕获方式和UI支持的转码方式
python3 features_extraction_to_csv.py # 使用DNN方式识别的转码方式
- 人脸识别
python3 face_reco_from_camera.py # 人脸识别
python3 face_reco_from_camera_ot.py # 带OT追踪的人脸识别
识别监控视频的使用方法:
- 安装依赖
pip install -r requirements.txt
- 通过摄像头捕获人脸数据,或导入人脸数据,本项目提供三种方式获取人脸数据:
python3 get_faces.py # 基础的人脸捕获,流畅度一般
python3 get_faces_UI.py # 基础人脸捕获方式+UI支持
python3 get_faces_dnn.py # 使用OpenCV DNN人脸检测器,大幅提高视频流畅度
- 监控视频中捕获人脸数据
python3 face_reco_from_video.py
- 人脸对比
python3 face_check_from_data.py