From 30b188733e2652bcaefe011b8b101ce4d752f7f4 Mon Sep 17 00:00:00 2001 From: Adrian Iain Lam Date: Sat, 29 May 2021 02:29:26 +0100 Subject: [PATCH] Update README to mention OSF and remove dlib. Remove compile flags needed by dlib. --- README.md | 104 +++++++++++++++++++-------------------------------- block_diagram.drawio | 1 + block_diagram.png | Bin 19687 -> 30324 bytes build.sh | 2 +- example/demo.patch | 9 ++--- 5 files changed, 44 insertions(+), 72 deletions(-) create mode 100644 block_diagram.drawio diff --git a/README.md b/README.md index 77a7383..c912c7d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Facial Landmarks for Cubism -A library that extracts facial landmarks from a webcam feed and converts them +A library that extracts facial landmarks from a webcam feed (computed by [OpenSeeFace](https://github.com/emilianavt/OpenSeeFace)) and converts them into Live2D® Cubism SDK parameters. *Disclaimer: This library is designed for use with the Live2D® Cubism SDK. @@ -15,6 +15,10 @@ This block diagram shows the intended usage of this library: Video showing me using the example program: +## Old version using dlib +The old version using dlib is no longer actively maintained, but if +you want to use it, you can get it on the [dlib-stable branch](https://github.com/adrianiainlam/facial-landmarks-for-cubism/tree/dlib-stable). + ## Spin-off: Mouse Tracking for Cubism An alternative version using mouse cursor tracking and audio based lip @@ -26,66 +30,48 @@ The main advantage is a much lower CPU load. ## Supporting environments This library was developed and tested only on Ubuntu 18.04 using GCC 7.5.0. -However I don't think I've used anything that prevents it from being -cross-platform compatible -- it should still work as long as you have a -recent C/C++ compiler. The library should only require C++11. The Cubism + +Currently it only supports Unix-like environments, as I am using +`` etc to communicate with OpenSeeFace. If there is demand +for it, I can try to make it work on Windows as well (contributions +welcome). + +The library should only require C++11. The Cubism SDK requires C++14. I have made use of one C++17 library (``) in the example program, but it should be straightforward to change this if you don't have C++17 support. -I have provided some shell scripts for convenience when building. In an -environment without a `/bin/sh` shell you may have to run the commands -manually. Hereafter, all build instructions will assume a Linux environment -where a shell is available. +## Build instructions -If your CPU does not support AVX instructions you may want to edit "build.sh" -and "example/demo.patch" to remove the `-D USE_AVX_INSTRUCTIONS=1` variable -(or change AVX to SSE4 or SSE2). However there could be a penalty in -performance. +1. Download OpenSeeFace from , + refer to its documentation and install its dependencies. -## Build instructions + Note: I have forked OSF and added a small feature (flipping the webcam + feed horizontally like a mirror). If you want, you can clone my fork + instead: . -1. Install dependencies. +2. Install dependencies. - You will require a recent C/C++ compiler, `make`, `patch`, CMake >= 3.16, - and the OpenCV library (I'm using version 4.3.0). To compile the example + You will require a recent C/C++ compiler, `make`, `patch`, and CMake >= 3.16. To compile the example program you will also require the OpenGL library (and its dev headers) among other libraries required for the example program. The libraries I had to install on Ubuntu 18.04 (this list may not be exhaustive) are: libgl1-mesa-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libglu1-mesa-dev - A Debian Bullseye user has [reported](https://github.com/adrianiainlam/facial-landmarks-for-cubism/issues/2) - the following extra requirements: - - libopencv-dev libopenblas-dev liblapack-dev +3. Clone this repository -2. Clone this repository including its submodule (dlib) + git clone https://github.com/adrianiainlam/facial-landmarks-for-cubism.git - git clone --recurse-submodules https://github.com/adrianiainlam/facial-landmarks-for-cubism.git - -3. To build the library only: (Skip this step if you want to build the example +4. To build the library only: (Skip this step if you want to build the example program. It will be done automatically.) cd ./build.sh -4. You will require a facial landmark dataset to use with dlib. I have - downloaded mine from - . - Extract the file and edit the "config.txt" file to point to the - path to this file. - - Note: The license for this dataset excludes commercial use. If you want - to use this library in a commercial product you will need to obtain a - dataset in some other way. - To build the example program: -5. Copy the extracted dlib dataset from step 4 to the "example" folder - of this repo. - -6. Download "Cubism 4 SDK for Native R2" from the Live2D website: +5. Download "Cubism 4 SDK for Native R2" from the Live2D website: . Extract the archive -- put the "CubismSdkForNative-4-r.2" folder under @@ -94,17 +80,29 @@ To build the example program: Note: The Cubism SDK is the property of Live2D and is not part of this project. You must agree to Live2D's license agreements to use it. -7. Go into the +6. Go into the "example/CubismSdkForNative-4-r.2/Samples/OpenGL/thirdParty/scripts" directory and run ./setup_glew_glfw -8. Go back to the "example" directory and run +7. Go back to the "example" directory and run ./build.sh -9. Now try running the example program. From the "example" directory: +8. Now try running the example program. + + First, (in a separate terminal) go to where you have downloaded + OpenSeeFace, and run + + ./python3 ./facetracker.py -v 4 --model 3 -M + + The `-M` option is currently available only on my OSF fork. + + I tried models 3 and 4, and I think both work reasonably well. + Please feel free to explore other options provided by OSF. + + Back to the original terminal, from the "example" directory: cd ./demo_build/build/make_gcc/bin/Demo/ ./Demo @@ -144,20 +142,6 @@ the `-c` argument. If using the library directly, the path to this file should be passed to the constructor (or pass an empty string to use default values). -## Troubleshooting - -1. Example program crashes with SIGILL (Illegal instruction). - - Your CPU probably doesn't support AVX instructions which is used by dlib. - You can confirm this by running - - grep avx /proc/cpuinfo - - If this is the case, try to find out if your CPU supports SSE4 or SSE2, - then edit "build.sh" and "example/demo.patch" to change - `USE_AVX_INSTRUCTIONS=1` to `USE_SSE4_INSTRUCTIONS=1` or - `USE_SSE2_INSTRUCTIONS=1`. - ## License The library itself is provided under the MIT license. By "the library itself" @@ -172,10 +156,6 @@ I refer to the following files that I have provided under this repo: The license text can be found in LICENSE-MIT.txt, and also at the top of the .cpp and .h files. -The library makes use of the dlib library, provided here as a Git -submodule, which is used under the Boost Software License, version 1.0. -The full license text can be found under lib/dlib/dlib/LICENSE.txt. - The example program is a patched version of the sample program provided by Live2D (because there's really no point in reinventing the wheel), and as such, as per the licensing restrictions by Live2D, is still the @@ -199,12 +179,6 @@ with the Live2D® Cubism SDK, you must agree to the license by Live2D Inc. Their licenses can be found here: . -The library requires a facial landmark dataset, and the one provided by -dlib (which is derived from a dataset owned by Imperial College London) -has been used in development. The license for this dataset excludes -commercial use. You must obtain an alternative dataset if you wish to -use this library commercially. - This is not a license requirement, but if you find my library useful, I'd love to hear from you! Send me an email at spam(at)adrianiainlam.tk -- replacing "spam" with the name of this repo :). diff --git a/block_diagram.drawio b/block_diagram.drawio new file mode 100644 index 0000000..db1029e --- /dev/null +++ b/block_diagram.drawio @@ -0,0 +1 @@ +7VjbbptAEP0aHhNx9eUxsXNRlaitXLXpU7WFNWwCjLUsBufrO2sWc7Md7FZ2WjWyFOYwMyxn58yOrVmTKL/jZBE8gkdDzdS9XLOmmmkaljPEfxJZFcjQHBeAz5mnnCpgxl6pAnWFpsyjScNRAISCLZqgC3FMXdHACOeQNd3mEDafuiA+7QAzl4Rd9BvzRFCgI0ev8HvK/KB8sqGrOxEpnRWQBMSDrAZZN5o14QCiuIryCQ0leSUvRdztjrubhXEaiz4Bjzwbv7j2D0LS4eclvBr39x8uBkWWJQlT9cKaOQgx37XHlnjpy8tb4jIiU4Uk9iLCX0offFjNbUukC8A9FhOBW7gjZk2NWJV8Uw/pVyZwEYAPMQlvKvSaQxp7VL6Ujlbl8wCwQNBA8JkKsVK1RFIBCAUiCtVdmjPxVLv+LlNdOsqa5irz2liVRiz46qlu1KKkWYWtrTKueD/5Ujt3TUEJpNyle7aqrH7CfSr2+Jmb2kJRUogorgfjlP7KauQ0JIItm8siSiz+JmyT6RMwXHDlAvN5gsuoFRxe1B5YQesyPKAkjU5JflzQeEYpliHt1EuzGrKACTpbkDWRGXak5s6rzJQLmu/fjy5/ZUDZmBSfhq3srOoOmx4Q1DrDQN/NcYPCQ/kaHyThOSUi5bvl2IlEaggulPJNyE/edv+v6SM1bfbUtPWXa9rs1OiXgCWSNA7P8tg+t6ytHrIen1LVVh9VP+Bmm9PeUr6VSs7ggPNbM/GjT4DTo8V/6p109PfWoO2tB9rdw9mpGozepmp0SqaGHaa+4vQP8usDEaR7rsTelRzx0XJDkiTM3UbR2416J0EX+qWBfw2SzC5HzhaOnN/syXnzaeUODVvUFyeMCqoP/608nbGlnag4gvYkOsHgp/fpeaV2enYwVEdj3jl8eHmjyI6dIo6ZWP7g5GH1nDzsXpPHacRgt1q71W5EfdVgO61ExjtUQ/d70FXMIuQP4sOL9LzF9k8W0cg+Z0tFs/rpqHCvfoCzbn4B \ No newline at end of file diff --git a/block_diagram.png b/block_diagram.png index b4bfdd4436b8823acf1e7008034eef66f296febb..1fec38e010e7654eedf540edbd42454d130a6c6d 100644 GIT binary patch literal 30324 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 z zF?={Yv{9-;+J>OWJ{Sk_V|lIg&}z-FLLV1vQ0r+A6^Asl;%L#RQb{^%^jdO8d<0Wt1` z=-I%36kq