【人脸识别实战一】系统架构设计

2020-04-18  本文已影响0人  AIPlayer

1、前言

《人脸识别实战》系列文章将讲述一个人脸识别系统的设计与实现过程。本文是系列文章的开篇,主要描述系统的整体架构和各模块的功能职责,以及系统所需要的环境依赖部署。

2、系统整体架构

系统框图.png

2.1 服务器端

(1)网络消息处理模块

主要负责管理客户端发送来的网络连接请求、消息数据的收发与数据协议解析,以及对图像数据的编解码处理。在系统中以JSON格式进行消息封装,使用TCP连接进行收发通信,而图像数据的解码仅支持OpenCV对图像数据的编解码操作。

(2)图像处理模块

图像处理模块负责处理人脸图像的数据,需要实现的功能包括:

(3)数据库管理模块

数据库管理模块负责数据库的连接与管理以及用户数据的增删改查,主要包括新用户的信息及人脸特征的注册与删除,以及人脸特征比对时的查询操作。系统中使用MySql数据库作为存储仓库。

2.2 客户端

(1)网络处理模块

主要的功能与服务器端相同,可以复用。

(2)图像处理模块

图像处理模块在客户端中仅需要实现人脸检测及人脸对齐即可。

3、环境部署

3.1 依赖

(1)硬件依赖
(2)软件依赖

3.2 环境部署

(1)基础依赖安装
sudo apt-get install -y cmake
sudo apt-get install -y libeigen3-dev
sudo apt-get install -y zlib1g zlib1g.dev
sudo apt-get install -y build-essential libgtk2.0-dev libavcodec-dev 
sudo apt-get install -y libavformat-dev libjpeg-dev libtiff5-dev
sudo apt-get install -y libswscale-dev libjasper-dev 
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
sudo apt-get install libopenblas-dev
(2)OpenCV编译安装
wget https://github.com/opencv/opencv/archive/4.1.1.zip
sudo apt-get install -y unzip
unzip -x 4.1.1.zip
OPENCV_DIR=$(pwd)/opencv-4.1.1
cd $OPENCV_DIR
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install
sudo echo /usr/local/lib  >> /etc/ld.so.conf.d/opencv.conf 
sudo ldconfig  
sudo echo -e "PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH"  >>  /etc/bash.bashrc
source /etc/bash.bashrc
sudo updatedb
(3)tensorflow动态库编译
git clone https://github.com/tensorflow/tensorflow.git
git checkout r1.14
bazel build --config=opt //tensorflow:libtensorflow_cc.so
mkdir /usr/local/include/tf 
cp -r bazel-genfiles/ /usr/local/include/tf/ 
cp -r tensorflow /usr/local/include/tf/ 
cp -r third_party /usr/local/include/tf/ 
cp -r bazel-bin/tensorflow/libtensorflow* /usr/local/lib/
include_directories(/usr/local/include/tf)
target_link_libraries(face_id -ltensorflow_cc -ltensorflow_framework)
(4)Cuda安装

可以参考官网及其它网络资源的教程,这里不再详述。

详细的设计细节及项目源码地址在AIPlayer 发布

上一篇 下一篇

猜你喜欢

热点阅读