Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

open-iris v1.1.0 #27

Merged
merged 32 commits into from
Jun 11, 2024
Merged

open-iris v1.1.0 #27

merged 32 commits into from
Jun 11, 2024

Conversation

wiktorlazarski
Copy link
Member

@wiktorlazarski wiktorlazarski commented Jun 11, 2024

open-iris v1.1.0

PR description

Major

Added

  • (Model Cards updates and new LinearNormalization algorithm #19) New LinearNormalization normalisation algorithm. This normalisation algorithm mimics PerspectiveNormalization and is based on the NearestNeighbor extrapolation, instead of Bilinear. This yields a ~20x speedup and remove a major bottleneck on the pipeline. The grid points are sampled linearly, unlike NonLinearNormalization which does so in a non-linear manner depending on the pupil-to-iris ratio.
  • (Model Cards updates and new LinearNormalization algorithm #19) Quality filters are activated by default. Community members surfaced that performances on the default configuration were sometimes sub-par due to a low filtering of bad quality images. We decided to enable the quality filters by default, and as usual let users the possibility to remove them by changing the configuration. These filters are conservative and only reject the worst iris images, users are encouraged to fine-tune them for their use case. The default values are:
    • EyeCentersInsideImageValidator
      • min_distance_to_border: 0.0: images where the pupil enters are not strictly included in the pupil are filtered out. This only happens in the rare case of segmentation failure
    • PupilIrisPropertyCalculator
      • min_iris_diameter: 50: images where the iris diameter is lesser than 50 px are filtered out
    • Pupil2IrisPropertyValidator
    • min_allowed_diameter_ratio: 0.1: Images where the pupil diameter is lesser than 10% of the iris diameter are filtered out.
    • max_allowed_diameter_ratio: 0.7: Images where the pupil diameter is greater than 70% of the iris diameter are filtered out
    • max_allowed_center_dist_ratio: 0.9: Images where the pupil center is too far from the iris center (i.e. the pupil center to iris center distance is greater the 90% of the iris radius)
    • OffgazeValidator
      • max_allowed_offgaze: 0.8: images with an offgaze score above 0.8 are filtered out
    • OcclusionValidator
      • min_allowed_occlusion: 0.25: images where less than 25% of the iris texture is visible are filtered out
    • IsMaskTooSmallValidator:
      • min_maskcodes_size: 4096: iris codes with more than 4096 px masked out (i.e. 50%) are filtered out
  • (open-iris v1.1.0 #27) Dataclasses additions:
    • Add an attribute iris_code_version to the dataclasses IrisFilterResponse and IrisTemplate.
    • Add serialisation and deserialisation to/from base64 encoding to the IrisTemplate class.
    • Add conversion to/from previous iris template format as class functions to IrisTemplate
  • (open-iris v1.1.0 #27) Base64 encoding. On the Orb, communication happens through base64-encoded strings. The configuration received by open-iris is base64-encoded, which requires the capacity to decode and encode string on this format. These functions live in iris.utils.base64_encoding.

Modified

  • (Simplify IRISPipeline output. #12) iris.IRISPipeline output has been simplified. The output structure remains the same (a dictionary). The value of iris_template is now an iris.IrisTemplate object compatible with downstream uses: matching, visualisations, etc. Users will not have to deserialise the object manually and will be able to use iris end-to-end without intermediary manipulations.

Minor

Added

Modified

Fixed

Type

  • Feature
  • Refactoring
  • Bugfix

Checklist

  • I've made sure that my code works as expected by writing unit tests.
  • I've checked if my code doesn't generate warnings or errors.
  • I've performed a self-review of my code.
  • I've made sure that my code follows the style guidelines of the project.
  • I've commented hard-to-understand parts of my code.
  • I've made appropriate changes in the documentation.

TanguyJeanneau and others added 30 commits June 4, 2024 13:31
…h takes a unique base64-encoded config instead of a map of configs
@wiktorlazarski wiktorlazarski added enhancement New feature or request refactoring Refactoring change labels Jun 11, 2024
@wiktorlazarski wiktorlazarski requested a review from a team as a code owner June 11, 2024 20:12
Copy link
Contributor

@TanguyJeanneau TanguyJeanneau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me ! 🪞🥓

@wiktorlazarski wiktorlazarski merged commit 8186c74 into dev Jun 11, 2024
5 checks passed
@wiktorlazarski wiktorlazarski deleted the tanguyjeanneau/open-iris-v1.1.0 branch June 11, 2024 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request refactoring Refactoring change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants