def frame_callback(vis, frame_idx): print("Frame idx", frame_idx) image = cv2.imread( seq_info["image_filenames"][frame_idx], cv2.IMREAD_COLOR) vis.set_image(image.copy()) if seq_info["detections"] is not None: detections = deep_sort_app.create_detections( seq_info["detections"], frame_idx) vis.draw_detections(detections) mask = results[:, 0].astype(np.int) == frame_idx track_ids = results[mask, 1].astype(np.int) boxes = results[mask, 2:6] vis.draw_groundtruth(track_ids, boxes) if show_false_alarms: groundtruth = seq_info["groundtruth"] mask = groundtruth[:, 0].astype(np.int) == frame_idx gt_boxes = groundtruth[mask, 2:6] for box in boxes: # NOTE(nwojke): This is not strictly correct, because we don't # solve the assignment problem here. min_iou_overlap = 0.5 if iou(box, gt_boxes).max() < min_iou_overlap: vis.viewer.color = 0, 0, 255 vis.viewer.thickness = 4 vis.viewer.rectangle(*box.astype(np.int))
def frame_callback(vis, frame_idx): print("Frame idx", frame_idx) image = cv2.imread(seq_info["image_filenames"][frame_idx], cv2.IMREAD_COLOR) vis.set_image(image.copy()) if seq_info["detections"] is not None: detections = deep_sort_app.create_detections( seq_info["detections"], frame_idx) vis.draw_detections(detections) mask = results[:, 0].astype(np.int) == frame_idx track_ids = results[mask, 1].astype(np.int) boxes = results[mask, 2:6] vis.draw_groundtruth(track_ids, boxes) if show_false_alarms: groundtruth = seq_info["groundtruth"] mask = groundtruth[:, 0].astype(np.int) == frame_idx gt_boxes = groundtruth[mask, 2:6] for box in boxes: # NOTE(nwojke): This is not strictly correct, because we don't # solve the assignment problem here. min_iou_overlap = 0.5 if iou(box, gt_boxes).max() < min_iou_overlap: vis.viewer.color = 0, 0, 255 vis.viewer.thickness = 4 vis.viewer.rectangle(*box.astype(np.int))
def frame_callback(vis, frame_idx): #프레임별로 처리 print("Frame idx", frame_idx) image = cv2.imread( seq_info["image_filenames"][frame_idx], cv2.IMREAD_COLOR) vis.set_image(image.copy()) if seq_info["detections"] is not None: detections = deep_sort_app.create_detections( seq_info["detections"], frame_idx) vis.draw_detections(detections) mask = results[:, 0].astype(np.int) == frame_idx track_ids = results[mask, 1].astype(np.int) #해당 frame_id인 mask값들 중 [1]들인 id값 추출 boxes = results[mask, 2:6] vis.draw_groundtruth(track_ids, boxes) # 발위치 10개 중 y값만 빼기 h_file = os.path.dirname(result_file) # result/text/ with open(h_file + '/ID_h.txt', 'r') as f_hi: line_splits = [int(l.split(',')[1]) for l in f_hi.read().splitlines()[1:]] i = 0 #print(line_splits) if show_false_alarms: groundtruth = seq_info["groundtruth"] mask = groundtruth[:, 0].astype(np.int) == frame_idx gt_boxes = groundtruth[mask, 2:6] for box in boxes: # NOTE(nwojke): This is not strictly correct, because we don't # solve the assignment problem here. min_iou_overlap = 0.5 if iou(box, gt_boxes).max() < min_iou_overlap: vis.viewer.color = 0, 0, 255 vis.viewer.thickness = 4 vis.viewer.rectangle(*box.astype(np.int)) if IDnum != 0: # Tracking 하는 ID만 보여주고 발 표시 !!!!!!! vis.viewer.circle( box[0] + box[2] / 2, box[1] + box[3], 3)