# 基于OpenCV实现的人脸识别系统 **Repository Path**: zhangqichen86/opencv_faces ## Basic Information - **Project Name**: 基于OpenCV实现的人脸识别系统 - **Description**: 基于OpenCV库实现的实时人脸识别系统,使用C,C++语言编写代码。(其中包含简单的摄像头调用和图形处理demo) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-10-28 - **Last Updated**: 2024-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实时人脸识别系统 ## 介绍 ### my_camera 基于OpenCV库实现的人脸识别系统,主要功能包括人脸检测,人脸特征捕获,特征数据注册,人脸识别。同时搭载了音乐播放器功能,在摄像头捕获图像的同时不再枯燥乏味,智能语音提示提供了检测摄像头前的功能。 ### camera_demo OpenCV库函数中简单的图形化处理函数的使用,包括摄像头时文字处理、点线面处理等。以及键盘的交互通过wasd来移动色块、鼠标点击拖动来改变图片位置等。 ### camera_pic_demo 图片的处理,其中包括灰度片,从图片中截取需要的部分图像块,背景消除等等功能。 ## 软件架构 1. 语言:C/C++ 2. 库:OpenCV库 3. 环境:Linux Ubuntu 20.04 x86架构 4. 工具:vscode,g++,cmake ## 安装教程 1. 进入项目文件夹 ``` cd material ``` 2. 运行cmake安装程序 ``` cmake -B -build cmake --build build ``` 需要注意这里要在项目文件夹 (material) 中运行cmake 3. 执行程序开始人脸识别 ``` ./build/demo ``` ## 使用说明 1. CMakeLists.txt 文件中 ``` add_executable(demo my_camera.cpp) ``` demo表示可执行程序的名字 camera.cpp表示使用的功能,默认为该人脸识别功能,体验其他的功能可以把这里的 my_camera.cpp 改为:camera_demo.cpp 或者 camera_pic_demo.cpp ``` target_link_libraries(demo PRIVATE ${OpenCV_LIBS}) ``` demo与上面的demo保持同步即可 可以简单的用cmake --build build指令测试和使用其他demo模块 2. .cpp文件中宏定义path需要根据环境中图片和音乐所在位置调整 Linux系统使用 pwd 指令查询即可,修改宏定义无需修改代码段内容。 3. 如果显示无法打开摄像头 可以使用 ``` ls /dev/video* ``` 指令查询当前操作系统设备文件中摄像头接入的文件 此时一般会显示 video0 和 video1,如果显示设备编号有变动则需要修改代码或者重新插入摄像头设备 修改:将代码中的 VideoCapture camera(0); //括号中的0做相应的修改然后再使用 cmake --build build 重新编译即可。 4. 在人脸识别代码中,支持修改人脸识别的精度以用于不同的实际应用场合 ``` if(cosine_score > 0.300) // 此处的 consine_score 表示人脸的特征向量,一般设置0.369 数值越大则人脸检测的精度越高,越小则越模糊 { return face_name[i]; } ``` 可以通过修改对比值的大小来修改识别的精度。 5. 按键操作(可以通过代码段修改按键) - q:退出人脸识别系统 - z:注册人脸信息(文件夹faces中的人脸录入) - space(空格):拍照(留下当前帧的照片,按下后终端中会响应输入姓名) - c:显示/关闭 自适应图片(默认为小眼睛)自动识别左眼坐标及人脸框大小匹配。 - h:打开语音提示功能。 g:关闭语音提示功能 - p:播放/暂停 BGM - j/k: 加大/减小 音量 - s:停止播放音乐