Ubuntu 18.04 安装 OpenFace

在大多数系统上,您可以使用bash ./download_models.sh后跟sudo bash ./install.sh脚本安装 OpenFace 。

有关模型下载的更多详细信息,请参阅 - https://github.com/TadasBaltrusaitis/OpenFace/wiki/Model-acquisition

但是,鉴于我们很难访问 github 则需要一步步手动做。请参阅以下步骤:

依赖安装

OpenFace 需要 cmake、OpenCV 4.0.0(或更新版本)、OpenBLAS、dlib、C++17 编译器(tbb 和 boost 是可选的附加依赖项,如果存在,将使用)。
如果您已经有以下任何依赖项,则可以跳过这些步骤

1. 获取最新的 GCC,使用:

 sudo apt-get update
 sudo apt-get install build-essential
 sudo apt-get install g++-8

请注意,如果在 Ubuntu 16.04 或更低版本上,在安装最新的 g++ 之前,您将需要以下几行:

 sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
 sudo apt-get -y update

2. Cmake:

sudo apt-get install cmake

请注意,如果在 Ubuntu 16.04 或更低版本上,OpenFace 所需的 CMake 版本至少为 3.8,而 Ubuntu 16.04 apt-get 仅支持最高 CMake 3.5,要安装更新版本的 CMake,请执行以下操作:

sudo apt-get --purge remove cmake-qt-gui -y
sudo apt-get --purge remove cmake -y
mkdir -p cmake_tmp
cd cmake_tmp
wget https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz
tar -xzvf cmake-3.10.1.tar.gz -qq
cd cmake-3.10.1/
./bootstrap
make -j4
sudo make install
cd ../..
sudo rm -rf cmake_tmp

3. 获取 OpenBLAS

sudo apt-get install libopenblas-dev

4. 下载并编译 OpenCV 4.1.0

4.1 安装OpenCV依赖:

sudo apt-get install ffmpeg
sudo apt-get install libgtk2.0-dev 

如果libgtk2.0-dev安装出现错误:

The following packages have unmet dependencies:
 libgtk2.0-dev : Depends: libgdk-pixbuf2.0-dev (>= 2.21.0) but it is not going to be installed
                 Depends: libpango1.0-dev (>= 1.20) but it is not going to be installed
                 Depends: libcairo2-dev (>= 1.6.4-6.1) but it is not going to be installed
                 Depends: libx11-dev (>= 2:1.0.0-6) but it is not going to be installed
                 Depends: libxext-dev (>= 1:1.0.1-2) but it is not going to be installed
                 Depends: libxinerama-dev (>= 1:1.0.1-4.1) but it is not going to be installed
                 Depends: libxi-dev (>= 1:1.0.1-4) but it is not going to be installed
                 Depends: libxrandr-dev (>= 2:1.2.99) but it is not going to be installed
                 Depends: libxcursor-dev but it is not going to be installed
                 Depends: libxfixes-dev (>= 1:3.0.0-3) but it is not going to be installed
                 Depends: libxcomposite-dev (>= 1:0.2.0-3) but it is not going to be installed
                 Depends: libxdamage-dev (>= 1:1.0.1-3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

可以使用 aptitude 来解决这些依赖项的问题:先回答 N 不接受当前的错误方案,后面回答 Y 就可以。

sudo apt install aptitude
sudo aptitude install libgtk2.0-dev

最后可以 sudo apt-get install libgtk2.0-dev 再检查下

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 从 https://github.com/opencv/opencv/archive/4.1.0.zip 下载 OpenCV 4.1.0

wget https://github.com/opencv/opencv/archive/4.1.0.zip

4.3 解压并创建build文件夹:

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 ..
或者直接安装到 pkg-config:
sudo cmake -D OPENCV_GENERATE_PKGCONFIG=ON -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:

wget http://dlib.net/files/dlib-19.13.tar.bz2;
tar xf dlib-19.13.tar.bz2;
cd dlib-19.13;
mkdir build;
cd build;
cmake ..;
cmake --build . --config Release;
sudo make install;
sudo ldconfig;
cd ../..;    

6. 获取 Boost (可选):

sudo apt-get install libboost-all-dev

实际的 OpenFace 安装

1. 获取 OpenFace

git clone https://github.com/TadasBaltrusaitis/OpenFace.git

2. 创建一个源外构建目录来存储编译的工件:

cd OpenFace
mkdir build
cd build

3. 使用编译代码(如果使用 g++ 版本 8,请适当更改为 clang 或其他版本):

cmake -D CMAKE_CXX_COMPILER=g++-8 -D CMAKE_C_COMPILER=gcc-8 -D CMAKE_BUILD_TYPE=RELEASE ..
make

4. 测试:

对于视频:

./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

用于特征提取(面部标志、头部姿势、AU、注视和 HOG 以及相似性对齐的人脸):

./bin/FeatureExtraction -verbose -f "../samples/default.wmv"

FeatureExtraction 和 FaceLandmarkVidMulti

输入参数

-f <文件名> 输入的视频文件,可以指定多个 -f

-fdir <目录> 对目录中的每个图像(.jpg、.jpeg、.png 和 .bmp)运行特征提取(输出将存储在整个目录的单个文件中)

-device <设备 id> 用于从实时提要中提取特征的网络摄像头的设备 ID

-cam_width 输入网络摄像头分辨率(默认 640),仅在设置设备时有效

-cam_height 输入网络摄像头高度分辨率(默认 480),仅在设置设备时有效

-root <目录> 输入的根

-inroot <目录> 输入的根

-au_static如果指定了此标志,则 AU 预测将像在静态图像而不是视频上一样执行,请参阅此处了解更详细的说明,这是 FaceLandmarkVidMulti 的默认行为

输出参数(有关输出格式的更多详细信息,请参见此处)

-out_dir <目录> 与创建输出文件相关的根目录

-of <文件名>输出的文件名(如果未指定,将使用原始文件名,如果是-fdir网络摄像头,则为目录名称,如果是网络摄像头,则为网络摄像头 + 时间戳)

-oc <FOURCC_CODE>输出视频文件的编解码器(可以在此处找到 FOURCC 代码列表 - https://www.fourcc.org/codecs.php)

输出的附加参数(适用于 FaceLandmarkImg 和 FeatureExtraction)

-verbose 实时可视化处理步骤:使用注视、动作单元、相似性对齐的面部和 HOG 特征(默认情况下不可视化)跟踪面部,此标志将所有这些都打开,下面的标志允许更细粒度的控制。可视化这些输出将降低处理速度,可能会显着降低。

-vis-track 可视化跟踪的人脸

-vis-hog 可视化 HOG 特征

-vis-align 可视化相似度对齐的人脸

-vis-aus 可视化动作单元

-simscale < float> 用于相似对齐的人脸比例(默认 0.7)

-simsize < int> 相似度对齐时图像的宽度和高度(以像素为单位)(默认 112)

-format_aligned < format> 对齐面的输出图像格式(例如 png 或 jpg),OpenCV 支持的任何格式

-format_vis_image < format>可视化图像的输出图像格式(例如 png 或 jpg),OpenCV 支持的任何格式。仅适用于FaceLandmarkImg

-nomask 强制对齐的人脸输出图像不被屏蔽

-g 输出图像应该是灰度的(为了节省空间)

默认情况下,可执行文件将输出所有特征(跟踪视频、HOG 文件、相似性对齐图像和带有地标、动作单元和注视的 .csv 文件)。您可能并不总是想要提取所有输出特征,您可以使用以下标志指定所需的输出:

-2Dfp 以像素为单位输出 2D 地标

-3Dfp 以毫米为单位输出 3D 地标

-pdmparams 输出刚性和非刚性形状参数

-pose 输出头部姿势(位置和旋转)

-aus 输出面部动作单元

-gaze 输出凝视和相关特征(眼睛标志的 2D 和 3D 位置)

-hogalign 输出提取的 HOG feure 文件

-simalign 输出跟踪人脸的相似度对齐图像

-nobadaligned 如果输出相似度对齐的图像,不要从检测失败或不可靠的帧中输出(从而节省一些磁盘空间)

-tracked 输出带有检测到的地标的视频

FaceLandmarkVid 输入参数

-f < filename>正在输入的视频文件,可以通过多个-f标志指定多个文件

-device < device_num> 从中读取图像的网络摄像头(默认为 0)

-cam_width 输入网络摄像头分辨率(默认 640)

-cam_height 输入网络摄像头高度分辨率(默认 480)

-inroot < directory>输入的根,因此-f可以相对于它指定

通用参数

使用参数的模型

-mloc < the location of landmark detection models>
选项:

“model/main_ceclm_general.txt”(默认)- 在不同姿势和光照的 Multi-PIE 以及野外数据(300W 和 Menpo)上进行训练。最准确,但最慢且内存最重的方法。适用于大多数情况。
“model/main_clnf_general.txt”- 对不同姿势和光照的多 PIE 以及野外数据进行了培训。在很多条件下都能很好地工作,但对于轮廓面和非常大的表情却失败了
“model/main_clnf_wild.txt” - 同上,但仅在 300W 数据集(Helen 和 LFPW)上训练
“model/main_clnf_multi_pie.txt” - 在 CMU Multi-PIE 数据集上训练,在光线充足的环境中工作良好
“model/main_clm_general.txt”- 最不准确。但最快的模型
模型参数

-wild 标志指定图像何时更困难,模型考虑扩展搜索区域

-multi_view <0/1> 是否应该使用多视图初始化(更健壮,但速度更慢),默认关闭

用于正确头部姿势和眼睛注视计算的可选相机参数

-fx < focal length in x>
-fy < focal length in y>
-cx < optical centre in x>
-cy < optical centre in y>

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值