Source code for bob.bio.face.annotator.Base
import bob.bio.base.annotator
from bob.bio.base.annotator.FailSafe import translate_kwargs
class Base(bob.bio.base.annotator.Annotator):
"""Base class for all face annotators"""
[docs] def annotations(self, image):
"""Returns annotations for all faces in the image.
Parameters
----------
image : numpy.ndarray
An RGB image in Bob format.
Returns
-------
list
A list of annotations. Annotations are dictionaries that contain the
following possible keys: ``topleft``, ``bottomright``, ``reye``, ``leye``
"""
raise NotImplementedError()
[docs] def annotate(self, sample, **kwargs):
"""Annotates an image and returns annotations in a dictionary. All
annotator should return at least the ``topleft`` and ``bottomright``
coordinates. Some currently known annotation points such as ``reye``
and ``leye`` are formalized in
:any:`bob.bio.face.preprocessor.FaceCrop`.
Parameters
----------
sample : numpy.ndarray
The image should be a Bob format (#Channels, Height, Width) RGB
image.
**kwargs
The extra arguments that may be passed.
"""
raise NotImplementedError()
[docs] def transform(self, samples, **kwargs):
"""Annotates an image and returns annotations in a dictionary.
All annotator should add at least the ``topleft`` and ``bottomright``
coordinates. Some currently known annotation points such as ``reye``
and ``leye`` are formalized in
:any:`bob.bio.face.preprocessor.FaceCrop`.
Parameters
----------
sample : Sample
The image int the sample object should be a Bob format
(#Channels, Height, Width) RGB image.
**kwargs
Extra arguments that may be passed.
"""
kwargs = translate_kwargs(kwargs, len(samples))
return [
self.annotate(sample, **kw) for sample, kw in zip(samples, kwargs)
]