OpenFace安装教程及踩坑记录 (Ubuntu20.04—2024.10.24)

OpenFace安装教程及踩坑记录 (Ubuntu20.04—2024.10.24)

一、环境准备

1.安装gcc及g++ (version>=8)

#查看版本
gcc --version
g++ --version
#安装(官方教程安的是g++8,实测g++9是完全可以的,但是需要修改后面的安装指令)
 sudo apt-get update
 sudo apt-get install build-essential
 sudo apt-get install g++-8

2.安装cmake (OpenFace 所需的 CMake 版本至少为 3.8)

sudo apt-get install cmake

3.安装OpenBLAS

sudo apt-get install libopenblas-dev

4.安装OpenCV

#4.1 安装依赖:
 sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
 
#4.2 下载OpenCV: https://github.com/opencv/opencv/archive/4.1.0.zip
 wget https://github.com/opencv/opencv/archive/4.1.0.zip
 
#4.3 解压并准备构建
 sudo unzip 4.1.0.zip
 cd opencv-4.1.0
 mkdir build
 cd build
 
#4.4 构建及安装:
 sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D WITH_TBB=ON ..
 sudo make -j2
 sudo make install

5.安装dlib

#5.1下载dlib: http://dlib.net/files/dlib-19.13.tar.bz2
 wget http://dlib.net/files/dlib-19.13.tar.bz2
 #5.2解压并准备构建
 tar xf dlib-19.13.tar.bz2
 cd dlib-19.13
 mkdir build
 cd build
 #5.3构建并安装
 cmake ..
 cmake --build . --config Release
 sudo make install
 sudo ldconfig

6.安装Boost

sudo apt-get install libboost-all-dev

二、OpenFace 安装

1.下载OpenFace:https://github.com/TadasBaltrusaitis/OpenFace.git
注意:官方代码是不全的,需要额外下载几个东西:(坑1)
1)CEN.zip:

#CEN.zip下载地址
https://www.dropbox.com/scl/fo/pq55xsw9eabf346vivmqn/AClMzt769mNe8ISrPjL9Bdo?rlkey=7qq9uk66x877ck4nny45qdzn2&e=1&dl=0

包含12个.mat文件和4个.dat文件:
将12个.mat文件放到../OpenFace/matlab_version/models/cen
将4个.dat文件放到
../OpenFace/lib/local/LandmarkDetector/model/patch_experts
2)haarcascade_frontalface_alt.xml:
(解决Could not find the HAAR face detector location-没有找到 Haar 级联检测器的问题,坑2)

#haarcascade_frontalface_alt.xml下载地址
https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml

将其放到../OpenFace/build/bin/model下(build是构建OpenFace时【步骤二、2】创建的文件夹)

2.构建编译及安装 (注意将g++和gcc版本换为自己的版本,这里是g++9和gcc-8)

#创建构建文件夹
cd OpenFace
mkdir build
cd build
 
#编译及安装(注意将g++和gcc版本换为自己的版本,这里是g++-9和gcc-8)
 cmake -D CMAKE_CXX_COMPILER=g++-9 -D CMAKE_C_COMPILER=gcc-9 -D CMAKE_BUILD_TYPE=RELEASE ..
 make

3.测试(目前在../OpenFace/build文件夹)
想要将结果输出到指定文件夹,可以在指令最后加上-out_dir 指令,如: -out_dir /root/autodl-tmp/OpenFace/test

#视频检测:
./bin/FaceLandmarkVid -f "../samples/changeLighting.wmv" -f "../samples/2015-10-15-15-14.avi"

#图片检测:
./bin/FaceLandmarkImg -fdir "../samples/" -wild

#多人脸视频检测:
./bin/FaceLandmarkVidMulti -f ../samples/multi_face.avi

#特征提取(facial landmarks, head pose, AUs, gaze and HOG and similarity aligned faces):
./bin/FeatureExtraction -verbose -f "../samples/default.wmv"

在无图形界面的测试及使用:
在无图形界面的运行环境下,OpenFace 会遇到一些问题,特别是涉及到 GTK 的显示问题 和 OpenCV 的异常(坑3)。

#遇到的问题
Could not find the HAAR face detector location
Reading the landmark detector/tracker from: ./bin/model/main_ceclm_general.txt
...
(sim_warp:72320): Gtk-WARNING **: 15:35:07.444: cannot open display: 
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.1.0) /root/autodl-tmp/opencv-4.1.0/modules/core/src/system.cpp:1533: error: (-215:Assertion failed) key_ != -1 && "Can't fetch data from terminated TLS container." in function 'getData'

我们可以使用 xvfb 来创建虚拟显示,这样可以绕过没有 GUI 的问题。(实测有效)

#安装 xvfb
sudo apt-get install xvfb
#使用 xvfb-run 运行 OpenFace:
xvfb-run ./bin/FeatureExtraction -verbose -f "../samples/default.wmv" -out_dir /root/autodl-tmp/OpenFace/test -no_gui -fd 2
#-fd 2 参数是指定 DLIB 作为面部检测器(Haar 级联和 MTCNN 检测器在没有 GUI 支持的环境下可能会遇到一些问题)
#-no_gui是禁用GUI

注:本文实测环境为Ubuntu20.04,不代表其他系统版本效果,结果仅供参考。
本文所涉及的包及模型文件已打包,可在如下链接获取:百度网盘 提取码:pwsx

主要参考资料:
OpenFace官方安装教程
OpenFace安装问题—Could not find CEN patch experts
OpenFace在linux下的详细环境配置

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值