This program detects faces from webcam footage, estimates distance and angle, and then predicts spine posture. The algorithm for estimating spine posture from distance and angle is a proprietary patent, and this software serves as a demonstration of this patented technology.
- Made with Unity and Sentis
- Face detection from webcam feed
- Distance and angle estimation
- Spine posture prediction (patented algorithm)
- Real-time display of:
- Estimated distance and angle (top left of the screen)
- Predicted spine posture (skeleton on the right side) (with some assumptions (see official web))
A binary package is available for Windows. Download and install it from the distribution page.
- Upon launching, you'll see the initial setup screen.
- Follow the setup process:
- Select your webcam device from the dropdown and press "Next".
- Set the relative angle between the webcam and your face (face the camera directly and press "Next").
- Set the webcam's field of view (position your face 50 cm from the camera and press "Next").
- After setup, the program will begin normal operation.
- To redo the setup, press Settings in the bottom right corner.
Note: Setup information is saved in the registry. If you uninstall the program, this data will be preserved. To remove it completely, use the Registry Editor.
This is a Unity project. At the time of writing, development is done using Unity Editor version 6000.0.30f1.
Following third-party assets/files are not included in this repository. You will need download and place them separately.
-
Head tracker models (from opentrack project) into
Assets/00_SpineMeter/Tracker/NeuralNet/Model/
- head-localizer: https://github.com/opentrack/opentrack/raw/master/tracker-neuralnet/models/head-localizer.onnx
- head-pose-0.2-small: https://github.com/opentrack/opentrack/raw/master/tracker-neuralnet/models/head-pose-0.2-small.onnx
Note that
.meta
files are also needed and they are already included in this repo. If you lose or overwritten them by an accident (e.g. by launching Unity Editor before placing the onnx files), restore them bygit checkout -f Assets/00_Spinometer/Tracker/NeuralNet/Model/head-{localizer,pose-0.2-small}.onnx.meta
. -
ALINE: https://assetstore.unity.com/packages/tools/gui/aline-162772
-
Skeleton 2.0: https://assetstore.unity.com/packages/3d/characters/humanoids/skeleton-2-0-160089
You need to convert the BRP materials to URP in the Editor (Window > Rendering > Render Pipeline Converter).
-
Final IK: https://assetstore.unity.com/packages/p/final-ik-14290
-
DOTween: https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676
or DOTween Pro: https://assetstore.unity.com/packages/tools/visual-scripting/dotween-pro-32416
After placing the assets, open Assets/00_Spinometer/00_App
.
Now you can run the application.
- opentrack authors and maintainers, as we adopted their code of neuralnet tracker module as a crucial part of Spinometer.
The proprietary portions of this software (the implementation of the algorithm for estimating spine posture) are subject to separate license terms from the other parts. See https://github.com/Spinometer/spinometer-core/blob/main/LICENSE.md for more information.
Other parts are licensed under The ISC License.