Skip to content

Releases: worldcoin/open-iris

v1.9.1

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 20 Aug 08:59
96a6960

Hotfix: Preserve sequence types in __safe_serialize, add tests

Summary

  • Preserve original sequence types (list vs tuple) during safe serialization.
  • Add focused unit tests for __safe_serialize.
  • Strengthen multiframe E2E checks.
  • Fix documentation module reference.

Changes

  • src/iris/orchestration/output_builders.py
    • _nested_safe_serialize: return type(obj)(...) for lists/tuples instead of always list[...].
    • __safe_serialize: return type(object)(...) for lists/tuples instead of always list[...].
  • tests/unit_tests/orchestration/test_output_builders.py
    • Add TestSafeSerialize test suite (None, ImmutableModel, numpy array to list, list/tuple recursion with type preservation, primitive passthrough, unsupported type raises).
    • Access private serializer via getattr to avoid dunder name-mangling.
  • tests/e2e_tests/pipelines/test_e2e_multiframe_iris_pipeline.py
    • Assert individual_frames[0]["metadata"]["image_size"] is a tuple.

Rationale

  • Avoid unintended type coercion (tuple → list) during serialization, ensuring API consistency (e.g., image_size remains a tuple).
  • Add regression coverage around serialization behavior.

Testing

  • Unit: tests/unit_tests/orchestration/test_output_builders.py passes.
  • E2E: strengthened assertion for multiframe pipeline metadata type.

Risk/Impact

  • Low. Behavior change is limited to preserving container type during serialization; otherwise non-breaking.

What's Changed

Full Changelog: v1.9.0...v1.9.1

v1.9.0

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 04 Aug 21:59
e7141c4

Open IRIS v1.9.0 Release Notes

🚀 New Features

✨ Multiframe Iris Pipeline

  • New MultiframeIrisPipeline class: A comprehensive pipeline that combines individual iris processing with template aggregation
  • Unified configuration system: Single YAML configuration file that manages both iris processing and template aggregation phases
  • Multi-image processing: Process multiple iris images and aggregate the resulting templates into a single high-quality template
  • Enhanced output builders: New output builders specifically designed for multiframe pipeline results

🔧 Pipeline Architecture Improvements

  • Renamed MultiframeAggregationPipeline to TemplatesAggregationPipeline: More descriptive naming for better clarity
  • Enhanced output builders: Extended output_builders.py with new functions for multiframe pipeline outputs
  • Improved error classes: Added new error types for better exception handling in template aggregation scenarios

🛠️ Infrastructure & DevOps

📚 Documentation Deployment

  • Automated documentation deployment: New GitHub Actions workflow for automatic docs deployment on releases
  • Enhanced build process: Improved documentation building with better handling of hidden files and build artifacts
  • GitHub Pages integration: Streamlined deployment to GitHub Pages with proper .nojekyll file handling

📦 PyPI Publishing

  • Automated PyPI publishing: New workflow for automatic wheel and source distribution publishing
  • TestPyPI support: Support for publishing to TestPyPI for testing purposes
  • Release-triggered publishing: Automatic publishing on GitHub releases and main branch pushes

🔍 Technical Details

Testing Improvements

  • Comprehensive test coverage: Added extensive unit tests for the new multiframe pipeline (783+ lines of test code)
  • End-to-end testing: New e2e tests for multiframe iris pipeline functionality
  • Test refactoring: Improved existing tests to work with the new pipeline architecture

⚠️ Important Notes

Template Quality Requirements

The new multiframe pipeline includes important warnings about template quality and validation requirements. Users must ensure:

  • Templates are from the same user and same eye
  • Templates meet quality thresholds (no off-gaze, occlusion, poor focus)
  • Appropriate validation criteria are established before production use

🔗 Migration Guide

For users upgrading from v1.8.x:

  • The MultiframeAggregationPipeline has been renamed to TemplatesAggregationPipeline
  • New MultiframeIrisPipeline class is available for combined processing
  • Enhanced error handling provides better debugging capabilities
  • Automated deployment workflows reduce manual intervention

What's Changed

Full Changelog: v1.8.2...v1.9.0

v1.8.2

Choose a tag to compare

@ycbiometrics ycbiometrics released this 15 Jul 13:08
768fc3d

open-iris v1.8.2

Changed

  • Add option to load weights from a given path
  • Bug fix on hamming distance with separate_half_matching enabled, the maskbit count should be doubled when applying HD normalization.

v1.8.1

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 02 Jul 14:20
f51786e

Bugfix

Removed the weights from the output_builders for the Multi-frame pipeline due to potential privacy concerns

What's Changed

Full Changelog: v1.8.0...v1.8.1

v1.8.0

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 02 Jul 10:59
5143b76

Release Notes - IRIS v1.8.0

Overview

IRIS v1.8.0 introduces significant enhancements to multi-frame iris template processing with new alignment and identity validation capabilities. This release focuses on improving the robustness and accuracy of template aggregation by ensuring proper alignment and identity validation before processing.

🚀 New Features

Template Alignment System

  • Hamming Distance-Based Alignment: New algorithm that aligns iris templates by finding optimal rotation offsets that minimize hamming distance between templates and a reference
  • Configurable Reference Selection: Multiple methods for selecting reference templates (linear, mean squared, root mean squared)
  • Rotation Optimization: Configurable maximum rotation shift with normalization options
  • Preserved Distance Information: Maintains original pairwise distances while providing aligned templates

Identity Validation & Filtering

  • Template Identity Filter: New algorithm that validates and filters templates to ensure they belong to the same identity
  • Outlier Detection: Greedy purification algorithm to remove outlier templates based on pairwise distances
  • Identity Clustering: Identifies potential identity clusters using graph-based connected component analysis
  • Configurable Actions: Multiple validation failure actions (remove, raise error, log warning)

Enhanced Data Structures

  • WeightedIrisTemplate: New dataclass extending IrisTemplate with per-bit reliability weights
  • Improved Base64 Encoding: Enhanced encoding utilities for float arrays
  • Enhanced Validation: Improved input validation and error handling

🔧 Pipeline Improvements

Updated Multi-Frame Aggregation Pipeline

  • New Pipeline Flow: Templates now go through alignment → identity validation → aggregation
  • Improved Mask Threshold: Adjusted mask threshold in majority vote from 0.5 to 0.01 for better performance
  • Enhanced Error Handling: New error types for identity validation failures

What's Changed

Full Changelog: v1.7.1...v1.8.0

v1.7.1

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 16 Jun 07:29
9438c3c

Add Pipeline Configuration Update Functionality

What's Changed

Full Changelog: v1.7.0...v1.7.1

v1.7.0

Choose a tag to compare

@ShevchenkoRostyslav ShevchenkoRostyslav released this 10 Jun 07:20
c459abe

open-iris v1.7.0

Major

  • 🎯 Multiframe Aggregation Pipeline: New pipeline for processing multiple iris captures with template aggregation capabilities
  • 🏗️ Base Pipeline Abstraction: Refactored pipeline architecture with new BasePipeline class for better code organization and extensibility
  • 📊 Majority Vote Template Aggregation: Added sophisticated template combination algorithm for improved iris recognition accuracy

Bug Fixes & Improvements

  • 🔧 Pipeline Metadata Validation: Enhanced version checking and validation mechanisms
  • 📝 Configuration Management: Improved YAML configuration loading and default location handling
  • 🧪 Testing Coverage: Extensive new test suites for multiframe aggregation and template combination
  • 🛠️ Code Refactoring: Cleaned up pipeline implementations and improved code maintainability

Technical Changes

  • Enhanced output builders with improved debugging capabilities
  • Streamlined iris pipeline implementation by moving common functionality to base class
  • Updated pipeline configurations and parameter handling

v1.6.0

Choose a tag to compare

@ycbiometrics ycbiometrics released this 20 May 13:32
ff31961

open-iris v1.6.0

Major

Changed

  • add flag maskisduplicated to allow mask to be either different or duplicated in the imaginary and real parts (for more compact template size).
  • only masking out noisy fragile bits when maskisduplicated is enabled.

v1.5.0

Choose a tag to compare

@ycbiometrics ycbiometrics released this 22 Apr 14:46
b76cdeb

open-iris v1.5.0

Major

Changed

  • calculate mask response by convolving with imaginary part of filters
  • change mask_threshold accordingly

v1.4.0

Choose a tag to compare

@wiktorlazarski wiktorlazarski released this 08 Apr 15:18
d4c9a46

open-iris v1.4.0

Major

Changed

  • Improved filter convolution on the normalized image boundaries. This change should slightly reduce maskcode occlusion.

Changelog

Full Changelog: v1.3.0...v1.4.0