OpenVINO是Intel推出的计算机视觉深度学习推理加速库,支持Intel CPU, 核心显卡,VPU和FPGA。前三篇文章分别介绍了OpenVINO的环境搭建、重要文件、目录、环境变量, 以及人脸特征提取SDK的开发。
人脸识别的完整流程主要包括人脸检测(人脸位置定位),人脸特征提取和人脸特征检索三个阶段。只提供人脸特征提取并不能完成完整的人脸识别。人脸识别的第一步是从图片中找出人脸的位置,然后将人脸图片抠出来作为人脸特征提取的输入,从而人脸特征提取器提出人脸特征,用于后续的人脸特征检索,因此本文就来实战一下人脸检测。本文所有操作的系统环境为Ubuntu16.04。
人脸检测的C++工程已经推到了Github: adamydwang/face-openvino。 该工程取名为face-openvino是希望能够包括整个人脸识别的完整sdk, 因此该工程集成了Github: adamydwang/insightface-openvino。
CMake工程目录结构
本文延续insightface-openvino工程的做法,依然采用CMakeLists来构建C++工程,目录如下:
- bin: 用于保存编译生成的人脸特征提取和人脸检测demo可执行程序。
- build: 用于保存编译过程中产生的临时文件。
- demo: 存放人脸特征提取和人脸检测demo程序。
- image: 存放了一张测试图片。
- include: 用于保存C++头文件。
- lib: 用于保存编译生成的人脸相关的sdk,包括人脸特征提取和人脸检测。
- model: 用于保存openvino模型文件。
- src: 用于保存C++源文件。
完整的CMakeLists.txt文件内容如下
本工程的CMakeLists几乎是最简版,只包括了必须的内容,可用于初学者参考学习CMakeLists的编写。
cmake_minimum_required(VERSION 2.7)project(insightface)add_definitions(-std=c++11)find_package(InferenceEngine REQUIRED)find_package(OpenCV REQUIRED)include_directories(${PROJECT_SOURCE_DIR}/include ${InferenceEngine_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})set(LIBS ${InferenceEngine_LIBRARIES} ${OpenCV_LIBRARIES})set(SRCS ${PROJECT_SOURCE_DIR}/src/insightface.cpp ${PROJECT