天天看点

目标检测之Kalman滤波追踪

github

tracker = Tracker(
    distance_function=euclidean_distance, 
    distance_threshold=49,
    hit_inertia_min=2,
    hit_inertia_max=6,
    initialization_delay=2,
)
           
for idx, img in enumerate(imgs):
	detects = []
	bboxes, confs  = predict(model, img, size=IMG_SIZE, augment=AUGMENT) #目标检测代码
	for bbox, score in zip(bboxes, confs):
         x1, y1, x2, y2 = bbox
         detects.append([x1, y1, x2, y2, score])
    tracked_objects = tracker.update(detections=to_norfair(detects, idx))
    for tobj in tracked_objects:
        bbox_width, bbox_height, last_detected_frame_id = tobj.last_detection.data
        if last_detected_frame_id == idx:  # Skip objects that were detected on current frame
            continue

        # Add objects that have no detections on current frame to predictions
        xc, yc = tobj.estimate[0]
        x_min, y_min = int(round(xc - bbox_width / 2)), int(round(yc - bbox_height / 2)) #tracking结果
        score = tobj.last_detection.scores[0]
           

继续阅读