Giter VIP home page Giter VIP logo

face's Introduction

基于三维人脸数据的AR互动平台开发

根据已有的三维人脸数据,开发一款基于普通投影仪或显示器和普通相机的人机交互系统,要求

  1. 实现三维人脸的渲染和显示;
  2. 能识别相机前实时采集的面部表情,比如大笑、沮丧等;能根据面部表情变化对应调整三维人脸数据;
  3. 手掌交互,检查手掌到摄像头的距离对三维模型进行放大或缩小

我使用的系统 Manjaro

manjaro

Requirements

pip install pygame PyOpenGL PyOpenGL_accelerate
pip install deepface tensorflow
pip install numpy
pip install opencv-python
pip install mediapipe cvzone

运行示例

python3 main.py

人脸表情实时识别

by deepface

Demo

  1. face_detector.py

3D模型加载

by pygame pyopengl

使用pyopengl进行3d模型的加载

Demo

  1. obj_show.py

  1. light.py 用于设置光照和相机

  2. objloader.py 用于加载模型和纹理

You can use mouse to move, rotate and scale it. And you may set lighting for a better viewing. You need to be familiar with opengl.

(鼠标移动,自行设置光照,具体可以看代码)

See the code to learn more. (eg. I use pickle to accelerate loading, obj.pkl 即缓存文件)

手掌交互

by mediapipe cvzone

根据手掌到摄像头的距离使三维人脸模型放大或缩小

原理:根据手掌某两点的距离与实际到摄像头的距离拟合一个关于x和y的函数, 再根据这个函数去判断距离

Demo

  1. hand_detector.py

实现环境配置

  1. pip 换源(也可以不换),然后依次安装上面的python库

  2. 配置opengl的环境

sudo apt-get install build-essential # 基本编译环境
sudo apt-get install libgl1-mesa-dev # opengl library
sudo apt-get install libglu1-mesa-dev # opengl utilities
sudo apt-get install libglut-dev # opengl utilities toolkit

需要注意的是:第四步可能会有报错,像如下

Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libglut-dev

这时将上述命令改为sudo apt-get install freeglut3-dev即可.

可能遇到的问题:

  1. pyopengl运行不成功,error可能像这样
libGL error: MESA-LOADER: failed to open iris: /home/hosameldin/miniforge3/envs/robenv/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/iris_dri.so) (search paths /usr/lib/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /home/hosameldin/miniforge3/envs/robenv/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/iris_dri.so) (search paths /usr/lib/dri)
libGL error: failed to load driver: iris

解决:参考链接

*shrc 配置文件中加入

export LD_PRELOAD=/usr/lib/libstdc++.so.6 pyopengl

如果你用的是win, 参考这个链接

参考与感谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.