Eos-py

Latest version: v1.4.0.post0

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

Scan your dependencies

Page 2 of 6

1.1.0

This release contains an important fix for models that have separate `texture_triangle_indices`, like e.g. the [4DFM](https://www.4dface.io/4dfm/).
It also contains a number of other minor improvements and an updated documentation.

Fixes:
* `texture_triangle_indices` is now correctly passed along to `sample_to_mesh(...)` in all `MorphableModel` member functions (e598203ddf8ec370cc86b6ab3e1ea8045f6fb705). Previously, `get_mean` and the `draw_sample` functions (except for the one that takes shape, colour and expression coefficients) would have returned a mesh without the texture triangle indices (if the `MorphableModel` contained them).
This might actually have been causing wrong code to be run or some bad memory access to - the assert that checks for that in `sample_to_mesh(...)` is not triggered in Release and RelWithDebInfo builds, therefore we haven't caught this for a while.
Now we always handle models correctly that contain texture triangle indices, like the 4DFM.

Minor improvements & changes:
* The documentation at [http://patrikhuber.github.io/eos/doc/](http://patrikhuber.github.io/eos/doc/) is now updated to eos `v1.1.0`
* Added `Mesh::tti` to the Python bindings (afc80dfb4bdd3160c867e6327be0ec3818da1fb0)
* Moved mesh normal computation functions to `eos/render/normals.hpp` header (5b6cd230ffac75c8139bb1e74be8d888eb830004)
* Added functions to compute face and vertex normals of a mesh (7af6131a334666778e96250bfbbaab784186f7ff)
* Renamed `include/eos/render/utils.hpp` to `transforms.hpp`
* Improve error messaging when loading `MorphableModels` with odd versions (41fddf6d732df07c5077139b74235b995f7edf4f)
* Moved `ray_triangle_intersect(...)` to its own header (5b574092d562e8628b95edbf4af83a2f8049b5e9)
* Added simple image resize function (ae533982269246fbb56cf2f2260c9e09a59d49ee)
* Improved the natvis `Image` visualiser for Image Watch: Set channel type to RGB(A) for 3 and 4 channel images (622fc35a0e6fd22938237e834c1511c7a749bbf4)

In-progress changes:

These are in-progress changes on new rendering/texture extraction stuff in the `render::v2` namespace - these work in principle but are not too thoroughly tested or used in eos yet.
* Uncommented `v2::extract_texture(...)` and updated all affected code (23d07554a014d7ce1a1fcafe13e4173074175512)
* Updated `v2::SoftwareRenderer` and related code to compile with the latest eos changes and without OpenCV

1.0.1

Small maintenance release with updated Python bindings, fixed `demo.py` script (updated to work with the latest eos changes), and fixed BFM2009/2017 converter scripts.

See the release notes from [v1.0.0](https://github.com/patrikhuber/eos/releases/tag/v1.0.0) for the latest changes!

1.0.0

The API and functionality of eos have been quite stable for a while now and proven themselves robust and useful. This release mainly constitutes the exciting bump to v1.0!

One major recent addition is support for the _4D Face Model_, 4DFM, a full-head 3D morphable face model with 36 expressions/action units, from [4dface.io](https://www.4dface.io/4dfm/).

<img src="https://raw.githubusercontent.com/patrikhuber/eos/gh-pages/images/4dfm_color_sample.jpg" width=20% alt="4D Face Model colour picture"></img>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://raw.githubusercontent.com/patrikhuber/eos/gh-pages/images/4dfm_shape.png" width=20% alt="4D Face Model shape picture"></img>

The update also includes the most recent version of pybind11, and addition of `sample_to_mesh()` to the Python bindings.

Other recent changes & improvements include supporting uv coordinates with seams, support for landmark/vertex definitions in the `MorphableModel` class to give certain vertices a fixed semantic meaning, and lots of other things. See the release notes from [v0.17.0](https://github.com/patrikhuber/eos/releases/tag/v0.17.0) and [v0.18.0](https://github.com/patrikhuber/eos/releases/tag/v0.18.0) for more details.

0.18.0

This release adds support for texture maps with seams. When a texture map contains seams, the vertices at the seams are usually duplicated, and then some of the triangle indices are different in uv space from the triangulation of the 3D vertices. This change allows to support the texture coordinates of the full-head _4D Face Model_ (4DFM).

* The `MorphableModel` file format version was increased to `4` to store an additional member containing the uv triangulation (85cc563afe7e1916fa98d577c5b036cb622c8806)
* Updated `extract_texture` to support uv coordinates with seams (a70ded3d3c7644b54fd97878183d7b5c46323624)

Other minor changes:
* Made the return type of get_texture_coordinates const ref (3a25d5278f131b72fc1f91c5009f4684a2dcf97f)

**Please also have a look at the [changes in v0.17.0](https://github.com/patrikhuber/eos/releases/tag/v0.17.0).**

0.17.0

This is a release with quite a few nice changes and improvements. Please read through the release notes carefully.
This release was in the `devel` branch for a few months, and never actually left the devel branch. The `MorphableModel` format version was increased to 3, from adding `landmark_definitions`. Since there are quite a few model files with this version in circulation, it was deemed best to make it an "official" model version and release it as v0.17.0.

Major changes & improvements:
* Added (optional) landmark definitions to the MorphableModel class (8fcc2bfa4f73d1d49388e2b72f99fc2e8c57d2a4)
Models can now optionally store landmark/vertex definitions, for example mappings like `"eye.right.outer_corner" <=> 177` from a generic name to vertex ids - and then a second mappings file can be used, that maps from 2D landmark identifiers (like the number `37` from ibug) to these generic names (`"eye.right.outer_corner"`). This separates the vertex _definition_ from a particular set of 2D landmarks.
Alternatively, users can still use direct mappings, like in the file `ibug_to_sfm.txt`, which map directly from 2D landmark identifiers to 3D vertex indices.
* Added a getter to `MorphableModel` for `landmark_definitions` (e995b07821038567284bf02202feb6021289d1e0)
* Set the `vertex_idx` in the fitting depending on whether the model contains landmark definitions (f123e518c3a85bb5deaf9d17e7c11931ede9225a)
* Revamped the `Image` class to a better and more future-proof design (14b7f6f6d998bb30de3f2047fa7f6af374786f3c)
Note: The storage order is now row-major, as opposed to col-major before. In the future, we may add means to choose the storage order.
* Added natvis file for Image Watch for `eos::core::Image` (be436f4d99406cfb62addabcc45303a7aa780a66)

Fixes:
* Fix `mpark::variant` compilation error on VS >=15.8; Updated pybind11 submodule to fix errors on VS 15.8 (a45a888bbf29b251f2bd472d13a06208387e6a8b, ecc626946da2cbea42623759ff09dec6ef9eba34)

Minor improvements, potentially breaking changes:
* Renamed `get_all_mappings()` to `get_mappings()` (9e0f539652e28a8b461bde9a53a202c471b04677)
* Created new directory `eos/core/image/` and moved `Image_opencv_interop.hpp` there (ad06db1b9e85319e8bddbca67b52f248b4dda331)
* Return `triangle_list` by const reference (a7ede7bfca5cc1929b43d629dc90db7c5c3ae14d)
* Exposed a few more things to the Python bindings, particularly landmark-mappings related, and added some `__repr__` methods.
* Removed the unused `initial_rendering_params` parameter from fit_shape_and_pose (ba46285497485c1ab8f0f80722e8c09eb8b26e43)

Other minor changes/improvements:
* Exposed some parameters of the contour fitting to callers (54ade09b95c2680d2393d4020604c569189b8a1e, abb2dd7b29944490cbffe92f77b3a5843c8bd990, 3929d0cffd004d1bfae29cde43b9f48e2f35067f)
* Improved `read_obj` a bit to handle a few more cases. Still, don't rely on it to parse every `.obj` file, it's not meant to do that. Use your own or `assimp` or something like that.

And as always, various small improvements to the code style and to the documentation.

0.16.1

A few minor updates and fixes:

Fixes:
* Added missing inline to `draw_sample` (a6900a2)
* Fixed constructing a 4x4 rotation matrix `R` instead of 3x3 in the Python bindings of `ScaledOrthoProjectionParameters` (5863f3b)

Updates:
* Moved `render::Rect` to `core` namespace
* Added Python bindings for `eos::core::Rect` and `eos::core::Landmark<Eigen::Vector2f>`. The Python bindings are now using `Landmark` and `LandmarkCollection` natively, without having to keep a separate list of landmark identifiers.
* Added README.md as `long_description` for PyPI ([link](https://pypi.org/project/eos-py/))
* Minor README.me/initial_cache.cmake.template updates

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.