• openface部署到网页中识别用户表情


    该项目实现前端调用摄像头识别用户表情,并将表情结果呈现在网页上。

    功能

    1、实现openface监测au,识别基本表情
    2、前端调用摄像头,将图像不断传到后端处理,然后将结果传到前端
    3、将openface打包成so库,后端python调用openface的so库进行识别

    准备

    OS: Ubuntu 18.04
    python3.8

    安装Openface框架,安装步骤

    bash ./download_models.sh
    sudo bash ./install.sh
    
    • 1
    • 2

    可以以下代码测试:是否ok:
    for videos:

    ./bin/FaceLandmarkVid -f "../samples/changeLighting.wmv" -f "../samples/2015-10-15-15-14.avi"
    
    • 1

    for images:

    ./bin/FaceLandmarkImg -fdir "../samples/" -wild
    
    • 1

    for multiple faces in videos:

    ./bin/FaceLandmarkVidMulti -f ../samples/multi_face.avi
    
    • 1

    for feature extraction (facial landmarks, head pose, AUs, gaze and HOG and similarity aligned faces):

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

    代码框架

    该项目的根本逻辑在于根据openface的API写一个监测人脸au的接口,然后将整个openface打包成库,最后在后端引用库进行调用,识别表情后将结果呈现在前端web。


    • auweb 这个是前后端的代码
    • openFace 这是需要在openface源码中更换的代码
      • exe
        • AuDetection 这是可以独立前后端运行,在ubuntu中实现调用电脑摄像头进行表情监测,结果在终端打印出来。
        • Interface 这是 接口代码,安装成库后要调用的函数
      • interlib 这里面是打包好的文件,但是对user来说没用,所以不复制过去也行。
      • lib
        • local 修改了cmakelist和代码文件,需要更换。
          • LandmarkDetector
          • FaceAnalyser
      • CMakeLists.txt

    运行

    1、openFace文件中是按照openface 源码的文件层进行排布,因此按照对应的文件层 添加或者更换里面的代码文件。
    2、修改里面调用model和文件的路径,基本在我更换的文件中修改即可。注意如果我用的是绝对路径的话,都必须用绝对路径!
    3、需要对库进行重新编译,不然会报 没有fpic 的错误。
      3.1 这就是为什么LandmarkDetector 的CMakeLists.txt 更改的原因,里面都添加了

    add_compile_options(-fPIC)
    
    • 1

      3.2 重新编译 在openface-master中

    wget http://dlib.net/files/dlib-19.13.tar.bz2
    tar xvf dlib-19.13.tar.bz2
    cd dlib-19.13
    mkdir -p build
    cd build
    cmake -DBUILD_SHARED_LIBS=ON -DDLIB_USE_LAPACK=1 ..
    cmake --build . --config Release
    sudo make install
    sudo ldconfig
    cd ..
    rm -r dlib-19.13.tar.bz2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

      3.3 opencv也是 查看install.sh的代码和网上的解决方案自行重新编译
    4、在./auWeb中运行:

    python3 app.py
    
    • 1

    5、输入终端中出现的网址,http://127.0.0.1:5000/

    识别关键点的话就去掉最后面监测AU的函数就好了呀~


    参考:
    关键点监测
    AU监测


    Github:希望友们能给个star

  • 相关阅读:
    java计算机毕业设计学生信息管理系统源代码+系统+数据库+lw文档
    Layui 表单设计器
    【QT】Windows下QT下载安装
    c语言open函数追加模式的疑问
    SSM - Springboot - MyBatis-Plus 全栈体系(十四)
    DirectX12 - Swap Chain(交换链)
    需求管理的主要内容包括哪些?
    【Java进阶】学好常用类,code省时省力
    SystemVerilog Assertions应用指南 Chapter 1.14蕴含操作符
    5.Docker搭建MinIO
  • 原文地址:https://blog.csdn.net/Carol_learning/article/details/126533610