Eos-py

Latest version: v1.4.0.post0

Safety actively analyzes 630360 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

0.12.1

This update brings a major speed-up of the shape and blendshape fitting. Depending on the setup (model resolution used, number of coefficients fitted), the speed-up is around 3x to 50x - typically around 10x. The shape and blendshape fitting now take only around or below 1ms per iteration (previously ~10ms). This was achieved by changing all linear algebra operations from OpenCV to Eigen.

Please see also the release notes of v0.12.0 below for the latest changes and updates, some of them breaking changes. See also the release notes of v0.12.0 for information on the PyPi package (eos-py) and the provided binaries.

0.12.0

This is mainly a maintenance release but contains quite a number of improvements. **There are some breaking changes in this release and models have to be re-downloaded in the new format.**

Major changes:

* Changed `PcaModel`, `MorphableModel` and blendshapes to use Eigen for matrices and vectors instead of OpenCV's `cv::Mat`. This change was motivated by the fact that we need Eigen already anyway for solving linear systems. And since Eigen is a header-only library, the core of eos becomes more independent of OpenCV and easier to compile in the near future.
**This change means that the model format has changed as well, so users will have to re-download the models and blendshapes in the new model format.**
* Changed `PcaModel` constructor to take an orthonormal basis (4662c59c4d9ae233047d1b5130470db1ed6bf894)
This introduces a **breaking change**: If you're currently using the `PcaModel` constructor and are passing it a PCA basis matrix, your code will (probably silently) break: The function now expects an orthonormal basis matrix, whereas before, it expected a rescaled basis matrix. However it makes more sense for the function to take an orthonormal basis matrix, as this is usually the result after computing a PCA on data.
* Furthermore, "unnormalised" basis has been renamed to "orthonormal", and "normalised" basis to "rescaled", and the getters have been modified accordingly. This should clear up confusion and make the descriptions good and unambiguous ("normalised" and "unnormalised" was really not a good choice!). (0fdd8a126e82f653001452e88bf1d34210a9ba36)

Minor changes:

* Updated all apps and utilities to reflect all the changes in this release
* We now only store the orthonormal basis in the model files - the rescaled basis is computed when models are loaded. This halves the file size of all models. (50c059c3ff8ced6057e3a7aa15fc5943467c19df)
* Renamed `get_*_pca_basis(int)` to `get_*_pca_basis_at_point(int)` (354deb3e962dce0e7dab7b20f1d4c5886a06e103)
* The mean, basis and eigenvalues of PcaModel are now returned by const reference (8901c1141af0217f64b509378f9effc9e8febc23)
* Added a setup.py file for python's pip:
This means eos's python bindings can now be built and installed with `pip install ./eos`, and packages can be created with `python setup.py sdist` and `python setup.py bdist_wheel`. A `setup.cfg.template` exists to set library paths to OpenCV and Boost.
* Added various python bindings: write_obj, save_model, functionality to construct new models, draw_sample, and more
* Added Eigen as git submodule. This was required because Ubuntu 14.04 only ships with Eigen 3.2.2, while pybind11's new Eigen bindings requires at least 3.2.7. This way, we're also more independent with regards to Python's `sdist` package. An external Eigen can still be used by setting `EIGEN3_INCLUDE_DIR`.
* Added cereal as submodule, removed local copy (f38ac6237e9dc372aea69d6aa43baf8f10507600)
* Added better warnings and errors as to the use of `fit-model-ceres`
* Minor documentation fixes and improvements.

eos python bindings are now available on [PyPI](https://pypi.python.org/pypi/eos-py/)! There's a wheel for python 3.5 on Windows, and a source dist. The source dist needs CMake's find_package to be able to find OpenCV and Boost automatically for it to work (so install it beforehand from a package manager).
If there are issues, you can always clone the repo and do `pip install ./eos` locally, after adjusting the paths in `setup.cfg`.

As always, make sure to clone the repository with `git clone --recursive`, or, if you're updating, run `git submodule update --init --recursive`.

Windows binaries are compiled with Windows 8.1 64bit, Visual Studio 2015. A .whl with python bindings for python 3.5 is available on [PyPI](https://pypi.python.org/pypi/eos-py/). The Matlab bindings are created for Matlab R2016b.
Linux binaries are compiled with Linux Mint 18, based on Ubuntu 16.04, gcc-5.4.

0.11.1

A very small release with very minor updates.

* The BFM Matlab to binary conversion script is now much faster, thanks to NextDesign1
* A fix that makes eos compile on clang 3.9.1 on OS X from macports, thanks NextDesign1!
* Minor updates and clarifications in readme's

This is the last release to support the current model format. eos is switching to Eigen for the PcaModel and MorphableModel classes, which will require users to re-download the models in the new format.
The changes are already done in the devel branch and will be included in the next official release.

0.11.0

This release contains a major modernisation of the CMake scripts. Most of it now follows a target-based approach. The release also contains improvements to the Python and Matlab bindings.
No changes to the fitting algorithm(s) in this release.

Noteworthy changes:
- Major CMake modernisation (and thank you to ruslo for the PRs!)
- gcc-4.9 and CMake 3.1.3 are the new minimum required versions
- More Python and Matlab bindings, improvements of the bindings and the documentation
- Added a `.clang-format` file - please more or less stick to the style in there for new contributions. Most notably, we switched from tabs to 4 spaces, as it improves readability on GitHub
- Moved `Mesh` to `core` namespace (this may break current code, but is easily fixed)
- All CMake options are now prefixed with `EOS_`, you may need to update your configuration (e.g. `BUILD_EXAMPLES` => `EOS_BUILD_EXAMPLES`).

The software renderer also got refactored into classes, with a more dynamic approach for vertex and pixel shaders, and rasterising, following the OpenGL paradigm. The code of the core renderer is exactly the same. The new code is very much experimental, I suggest sticking to the existing rendering functions, which are still there and work as before.

As before, make sure to clone the repository with `git clone --recursive`, or, if you're updating, run `git submodule update --init --recursive`.

Windows binaries are compiled with Windows 8.1 64bit, Visual Studio 2015. The bindings are created for Python 3.5 and Matlab R2016b.
Linux binaries are compiled with Linux Mint 18, based on Ubuntu 16.04, gcc-5.4.

0.10.1

Minor improvements of the project infrastructure: The `INSTALL` target copies less 3rd-party files (only the headers now), python bindings are now in a separate directory, and the python bindings are being built on travis and AppVeyor.

0.10.0

Added Matlab bindings for the fitting function `fit_shape_and_pose(...)`, which means the fitting can be run from Matlab. It returns a mesh and rendering_parameters (pose). A demo script ([`demo.m`](https://github.com/patrikhuber/eos/blob/master/matlab/demo.m)) is included - see the [Matlab bindings section](https://github.com/patrikhuber/eos#matlab-bindings) of the README.md for more details.

Set `GENERATE_MATLAB_BINDINGS` in CMake to build the mex file and run the `INSTALL` target to install everything. CMake-3.7 is required to build the bindings.

So far, only bindings for this one fitting function exists, but it's one of the key functionalities of eos. The model and needed files have to be given as filenames, which means they have to be loaded each time you call the `fit_shape_and_pose(...)` function. It works quite fast but is therefore not fast enough for real-time scenarios.

Another small limitation is that it currently only works with ibug landmarks, and only if all 68 of them are present. This limitation might be lifted in the future.

More bindings (e.g. for the `MorphableModel` itself) might be added in the future.

Page 4 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.