Zones¶
-
class
Zone
(name, points, image_width, image_height, description='', **kwargs)¶ A region of interest in a static view.
- Parameters
name (
str
) – The name for the zone.points (
List
[Tuple
[int
,int
]]) – The coordinates of the zone.image_width (
int
) – The width of the image that was used to generate the zone.image_height (
int
) – The height of the image that was used to generate the zone.description (
str
) – A short description of the zone.
-
classmethod
from_bounding_box
(name, box, image_width, image_height, description='')¶ Create a
Zone
from aBoundingBox
.- Parameters
name (
str
) – The name for the zone.box (
BoundingBox
) – A bounding box to be used to generate a zone.image_width (
int
) – The width of the image that was used to generate the zone.image_height (
int
) – The height of the image that was used to generate the zone.description (
str
) – A short description of the zone.
- Return type
Zone
-
property
image_width
¶ The width of the image that was used to generate the zone.
- Return type
int
-
property
image_height
¶ The height of the image that was used to generate the zone.
- Return type
int
-
property
mask
¶ The binary mask representing the zone.
This is a numpy array of 0 and 1 with data type np.uint8. It’s dimensions match the width and height of the image it was generated with.
- Return type
ndarray
-
property
name
¶ The zone name.
- Return type
str
-
property
points
¶ The zone coordinates.
- Return type
List
[Tuple
[int
,int
]]
-
property
description
¶ A short description of the zone.
- Return type
str
-
property
type
¶ The type for the zone.
- Return type
ZoneType
-
to_bounding_box
()¶ Get a
BoundingBox
representing the zone.A box that fits the outermost edges of the Zone will be generated.
- Return type
- Returns
A
BoundingBox
representing theZone
-
update_image_dimensions
(image_width=None, image_height=None)¶ Update the dimensions of the
ZoneList
and all includedZone
objects.- Parameters
image_width (
Optional
[int
]) – The new width to update dimensions toimage_height (
Optional
[int
]) – The new height to update dimensions to
-
check_prediction_within_zone
(prediction)¶ Check whether a prediction is inside the
Zone
.- Parameters
prediction (
ObjectDetectionPrediction
) – The prediction to check for zone affiliation.- Return type
bool
- Returns
True if the prediction is in the
Zone
, and False otherwise.
-
get_predictions_in_zone
(results)¶ Get the predictions that are within this zone.
- Parameters
results (
ObjectDetectionResults
) – TheObjectDetectionResults
to check against the given zone.- Return type
ObjectDetectionResults
- Returns
A :class:
ObjectDetectionResults
containing predictions that are within this zone
-
get_tracked_objects_in_zone
(objects)¶ Get the tracked objects that are within this zone.
- Parameters
results – The
TrackingResults
to check against the given zone.- Return type
TrackingResults
- Returns
A
TrackingResults
containing predictions that are within this zone.
-
compute_prediction_overlap_with_zone
(prediction)¶ Compute the fraction of prediction box which is overlapped by the Zone.
- Parameters
prediction (
ObjectDetectionPrediction
) – The prediction to compute overlap.- Return type
float
- Returns
A value [0.0, 1.0] indicating the fraction of prediction box which is overlapped by the Zone.
-
class
ZoneList
(zones, image_width, image_height)¶ A managed list of
Zone
objects.Work with regions of interest in your applications. Each
Zone
must have a unique name and they all must have matching image dimensions.Typical usage:
my_zones = edgeiq.ZoneList.from_config_file("zone_config.json") <get image> results = obj_detect.detect_objects(image, confidence_level=.5) image = edgeiq.markup_image( image, results.predictions, colors=obj_detect.colors) obj_detect.publish_analytics(zone_detect_results) image = my_zones.markup_image_with_zones( image, fill_zones=True, color=(255, 0, 0))
- Parameters
- Raises
ValueError if zones are invalid (duplicate name or mismatching image dimensions)
-
classmethod
from_config_file
(filepath)¶ Create
ZoneList
from a Zone Creator configuration file.The Zone Creator tools is available with the alwaysAI CLI.
- Parameters
filepath (
str
) – The path to the JSON file to configureZone
objects.- Return type
ZoneList
-
property
zones
¶ The zones in this Zone List
- Return type
List
[Zone
]
-
property
zone_names
¶ - Return type
List
[str
]
-
property
image_width
¶ The width of the image the
Zone
objects were based on.- Return type
Optional
[int
]
-
property
image_height
¶ The height of the image the
Zone
objects were based on.- Return type
Optional
[int
]
-
property
alpha
¶ Transparency of the filled
Zone
objects, if the fill_zones option is selected.The closer alpha is to 1.0, the more opaque the overlay will be. Similarly, the closer alpha is to 0.0, the more transparent the overlay will appear.
- Return type
float
-
update_image_dimensions
(image_width=None, image_height=None)¶ Update the dimensions of the
ZoneList
and all includedZone
objects.- Parameters
image_width (
Optional
[int
]) – The new width to update dimensions toimage_height (
Optional
[int
]) – The new height to update dimensions to
-
get_zones_for_prediction
(prediction)¶ Get the
Zone
objects that this prediction is currently within.- Parameters
prediction (
ObjectDetectionPrediction
) – The prediction to check for associatedZone
objects.- Return type
ZoneList
- Returns
A
ZoneList
containingZone
objects that this prediction is currently within.
-
get_zone_for_prediction
(prediction)¶ Get the
Zone
object that this prediction is currently within. If there are intersecting zones the zone with the higher index is returned. Returns None if no zone is present- Parameters
prediction (
ObjectDetectionPrediction
) – The prediction to check for associatedZone
object.- Return type
Zone
- Returns
A
Zone
object that this prediction is currently within.
-
get_predictions_in_zone
(results, zone_name)¶ Get the predictions that are within the given zone.
- Parameters
results (
ObjectDetectionResults
) – TheObjectDetectionResults
to check against the given zone.zone_name (
str
) – The name of zone to check results against.
- Return type
ObjectDetectionResults
- Returns
A :class:
ObjectDetectionResults
containing predictions that are within the given zone.- Raises
ValueError if the given zone name doesn’t match a zone.
-
get_tracked_objects_in_zone
(results, zone_name)¶ Get the tracked objects that are within the given zone.
- Parameters
results (
TrackingResults
) – TheTrackingResults
to check against the given zone.zone_name (
str
) – The name of zone to check results against.
- Return type
TrackingResults
- Returns
A
TrackingResults
containing predictions that are within the given zone.- Raises
ValueError if the given zone name doesn’t match a zone.
-
create_sub_zone_list
(zone_names)¶
-
markup_image_with_zones
(image, show_labels=True, show_boundaries=True, fill_zones=False, line_thickness=2, font_size=0.5, font_thickness=2)¶ Mark all zones on the given input image.
- Parameters
frame – The image to mark up.
show_labels (
bool
) – True ifZone
names should be drawn.show_boundaries (
bool
) – True ifZone
boundaries should be drawn.fill_zones (
bool
) – True ifZone
objects should have a transparent overlay.color – The color to draw the
Zone
boundaries in.line_thickness (
int
) – The boundary thickness.font_size (
float
) – The font size to use in marking up the labels.font_thickness (
int
) – The font thickness to use in marking up the labels. size.
- Return type
ndarray
- Returns
The marked-up image.
Note: fill_zones is time-intensive. fill_zones = True will generate the zone mask upon first call.