SDK ML Detection And Tracking API
Generates frames from boxes and tracks
- metavision_ml.detection_tracking.display_frame.draw_box_events(frame, box_events, label_map, force_color=None, draw_score=True, thickness=1, color_from='class_id', confidence_field='class_confidence', dic_history={})
Draws boxes on a RGB image.
- Parameters
frame (np.ndarray) – H, W, 3 image of dtype uint8
box_events (np.ndarray) – Box_events in EventBbox format.
label_map (list) – List of class names indexed by class_id.
force_color (int list) – If not None, overrides the color from color_field and is put as the color
boxes. (of all) –
draw_score (bool) – Whether to add confidence to the boxes.
thickness (int) – Rectangle line thickness.
color_from (string) – Field of the EventBbox used to choose the box color, defaults to class_id.
confidence_field (string) – Field of the EventBbox used to read confidence score.
dic_history (dict) – Dictionary where keys are track_id and values are np.arrays of boxes
- Returns
Drawn image.
- Return type
img
- metavision_ml.detection_tracking.display_frame.draw_detections_and_tracklets(ts, frame, width, height, detections, tracklets, label_map={0: 'background', 1: 'pedestrian', 2: 'two wheeler', 3: 'car'}, list_previous_tracks=[])
Draws a visualization for both detected boxes and tracked boxes side by side.
Detections are on the left pane, with box colors indicating class membership. Tracks are drawn on the right pane with colors denoting track ids.
- Parameters
ts (int) – Current timestamp in us. (Used for display only).
frame (np.ndarray) – Array of dtype np.uint8 and of shape height x width * 2 x 3
width (int) – Width of the imager in pixels.
height (int) – Height of the imager in pixels.
detections (nd.array) – Array of EventBbox to be drawn.
tracklets (ndarray) – Array of EventTrackedBox to be drawn.
label_map (dict) – Dictionary mapping class ids to the name of the corresponding class
list_previous_tracks (list) – list of np.arrays of tracks (one np.array for each previous timestep)
Detection Loader which reads boxes from a CSV file generated by the C++ detection and tracking pipeline
- metavision_ml.detection_tracking.io.detections_csv_loader(detections_filename)
This function reloads a text file produced by the c++ detection and tracking pipeline and converts it into a dictionary of numpy structured arrays of EventBbox
- Parameters
detections_filename (str) – Filename of detections in the same format as the C++ detection and tracking pipeline
It returns a python dict where the keys are the timestamps. For each timestamp, the associated value is a numpy array of EventBbox for that particular timestamp
Examples
>>> dic_ts_boxes = detections_csv_loader("detections.txt") >>> np_array_of_all_boxes_detected_at_timestamp_1000 = dic_ts_boxes[1000]
- class metavision_ml.detection_tracking.object_detector.ObjectDetector(directory, events_input_width, events_input_height, runtime='cpu', network_input_width=None, network_input_height=None)
Class handling the inference of object detection algorithm.
- Parameters
directory (string) – Path to a folder containing a model.ptjit network file and a info_ssd_jit.json containing a few hyperparameters.
events_input_width (int) – Width of the event sensor used, in pixels.
events_input_height (int) – Height of the event sensor used, in pixels.
runtime (string) – Corresponds to the torch.device used for computation (“cpu”, “cuda:0”, etc.)
network_input_width (int) – Width of the tensor used by the network as input, can be lower than events_input_width to reduce computation.
network_input_height (int) – Height of the tensor used by the network as input, can be lower than events_input_height to reduce computation.
- cd_proc
Object computing tensor representation from the input events.
- Type
object
- detection_threshold
Minimal confidence value for a box to be considered.
- Type
float
- iou_threshold
Minimal Intersection Over Union (IOU) value for a box to be discarded by non maximum suppression.
- Type
float
- nms_computer_with_rescaling
Object handling Non maximum suppression.
- Type
object
- get_label_map()
Returns a dict which contains the labels of the classes
- get_num_classes()
Gets number of output classes (including background class)
- process(ts, frame_buffer_np)
Pass the input frame through the object detector and return the obtained box events.
- Parameters
ts (int) – Current timestamp in us.
frame_buffer_np (np.ndarray) – Input frame buffer.
- reset()
Resets the memory cells of the neural network