DynAIkonTrap.filtering.animal#
This module provides a generic interface to an animal detector. The system is fairly agnostic of the specific animal detection mechanism beings used, as the input to the AnimalFilter
is a JPEG, RGB or RGBA image and the output a confidence in the image containing an animal.
The animal detection model may be chosen from a range of pre-trained detector networks, configurable via AnimalFilterSettings
. Choices currently range between: a SSDLite MobileNet v2 model trained on WCS data, int32 quantised, a SSDLite MobileNet v2 model trained on human and WCS data, int32 quantised and a YOLOv4-tiny model trained on WCS data
The function, AnimalFilter.run()
produces a tuple result, the first result indicates animal presence; the second result human presence. If the model used is trained on WCS data only, the second result will always be False
Classes
|
Animal filter stage to indicate if a frame contains an animal |
|
Class to store supported compressed image formats |
A class to hold data for neural network input buffer sizes. |
- class AnimalFilter(settings: AnimalFilterSettings, sender_settings: Optional[SenderSettings] = None)#
Animal filter stage to indicate if a frame contains an animal
- Parameters:
settings (AnimalFilterSettings) – Settings for the filter
- run(image: bytes, is_jpeg: bool = False) Tuple[bool, bool] #
The same as
run_raw()
, but with a threshold applied. This function outputs a boolean to indicate if the confidences are at least as large as the threshold- Parameters:
image (bytes) – The image frame to be analysed, can be in JPEG compressed format or YUV420 raw format
is_jpeg (bool, optional) – used to inform buffer reading, set to True if a jpeg is given, False for YUV420 buffer. Defaults to False.
- Returns:
Each element is True if the confidence is at least the threshold, otherwise False. Elements represent detections for animal and human class.
- Return type:
Tuple(bool, bool)
- run_raw(image: bytes, is_jpeg: bool = False) Tuple[float, float] #
Run the animal filter on the image to give a confidence that the image frame contains an animal and/or a human. For configurations where an animal-only detector is initialised, human confidence will always equal 0.0.
- Parameters:
image (bytes) – The image frame to be analysed, can be in JPEG compressed format or YUV420 raw format
is_jpeg (bool, optional) – used to inform buffer reading, set to True if a jpeg is given, False for YUV420 buffer. Defaults to False.
- Returns:
Confidences in the output containing an animal and a human as a decimal fraction in range (0-1)
- Return type:
Tuple(float, float)
- run_raw_fcc(image: bytes, is_jpeg: bool = False) float #
A function to run the animal detection method by querying the FASTCAT-Cloud Web API
- Parameters:
image (bytes) – The image frame to be analysed, can be in JPEG compressed format or YUV420 raw format
is_jpeg (bool, optional) – used to inform buffer reading, set to True if a jpeg is given, False for YUV420 buffer. Defaults to False.
- Returns:
The score of the highest confidence animal bounding box, as returned by FASTCAT-Cloud API
- Return type:
float