Skip to content

v0.17.0

Compare
Choose a tag to compare
@patrikhuber patrikhuber released this 23 Oct 23:11
· 289 commits to master since this release

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 (8fcc2bf)
    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 (e995b07)
  • Set the vertex_idx in the fitting depending on whether the model contains landmark definitions (f123e51)
  • Revamped the Image class to a better and more future-proof design (14b7f6f)
    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 (be436f4)

Fixes:

  • Fix mpark::variant compilation error on VS >=15.8; Updated pybind11 submodule to fix errors on VS 15.8 (a45a888, ecc6269)

Minor improvements, potentially breaking changes:

  • Renamed get_all_mappings() to get_mappings() (9e0f539)
  • Created new directory eos/core/image/ and moved Image_opencv_interop.hpp there (ad06db1)
  • Return triangle_list by const reference (a7ede7b)
  • 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 (ba46285)

Other minor changes/improvements:

  • Exposed some parameters of the contour fitting to callers (54ade09, abb2dd7, 3929d0c)
  • 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.