This release introduces machine learning inference for the detection of the *ColorChecker Classic 24*.
Features
`colour_checker_detection.detection`
Machine Learning Inference
- Add `colour_checker_detection.detection.detect_colour_checkers_inference` definition. (75, KelSolaar)
The model used for inference is published on [HuggingFace](https://huggingface.co/colour-science/colour-checker-detection-models), and was trained on a purposely constructed [dataset](https://huggingface.co/datasets/colour-science/colour-checker-detection-dataset).
The model has only been trained on *ColorChecker Classic 24* images and will not work with *ColorChecker Nano* or *ColorChecker SG* images.
Inference is performed by a script licensed under the terms of the *GNU Affero General Public License v3.0* as it uses the *Ultralytics YOLOv8* API which is incompatible with the *BSD-3-Clause*.
![image](https://github.com/colour-science/colour-checker-detection/assets/99779/b50f2cf5-def0-4088-8e9a-467189b49c2f)
![image](https://github.com/colour-science/colour-checker-detection/assets/99779/85a922c4-a26a-42ce-9051-e50999bb3f28)
![image](https://github.com/colour-science/colour-checker-detection/assets/99779/83808a50-1586-4b0e-9c23-d4b0c90643e7)
Fixes
- Fix incorrect colour checker flipping detection in `colour_checker_detection.detection.detect_colour_checkers_segmentation` definition. (73, andieich, mexicantexan, KelSolaar)
Changes
- The `colour_checker_detection.detection.detect_colour_checkers_segmentation` definition has been overhauled to provide a consistent interface with the `colour_checker_detection.detection.detect_colour_checkers_inference` definition. It also features some improvements following discussions with contributors. (53, 73, 74, andieich, mexicantexan, TimWalter, KelSolaar)
Object | Signature | Author
-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------
`colour_checker_detection.detection.detect_colour_checkers_segmentation` | `detect_colour_checkers_segmentation( image: str \| ArrayLike, samples: int = 32, cctf_decoding: Callable = eotf_sRGB, apply_cctf_decoding: bool = False, segmenter: Callable = segmenter_default, segmenter_kwargs: dict \| None = None, show: bool = False, additional_data: bool = False, **kwargs: Any) -> Tuple[DataDetectionColourChecker \| NDArrayFloat, ...]` | KelSolaar
Object | Name | Author
--------------------------------------------------------------------|---------------------|-----------
`colour_checker_detection.colour_checkers_coordinates_segmentation` | `segmenter_default` | KelSolaar
- ~~`colour_checker_detection.extract_colour_checkers_segmentation`~~: (KelSolaar)
- Remove