last update in 2024
This commit is contained in:
@ -214,15 +214,16 @@ def yolo_resnet_tracker(
|
||||
# NMS
|
||||
with dt[2]:
|
||||
pred = non_max_suppression(pred, conf_thres, iou_thres, classes, agnostic_nms, max_det=max_det)
|
||||
|
||||
|
||||
if dataset.mode == "video":
|
||||
frameId = dataset.frame
|
||||
else:
|
||||
frameId = dataset.count
|
||||
# Process predictions
|
||||
for i, det in enumerate(pred): # per image
|
||||
im0 = im0s.copy()
|
||||
|
||||
s += '%gx%g ' % im.shape[2:] # print string
|
||||
|
||||
annotator = Annotator(im0.copy(), line_width=line_thickness, example=str(names))
|
||||
|
||||
s += '%gx%g ' % im.shape[2:] # print string
|
||||
if len(det):
|
||||
# Rescale boxes from img_size to im0 size
|
||||
det[:, :4] = scale_boxes(im.shape[2:], det[:, :4], im0.shape).round()
|
||||
@ -235,46 +236,39 @@ def yolo_resnet_tracker(
|
||||
'''
|
||||
det_tracking = Boxes(det, im0.shape).cpu().numpy()
|
||||
tracks = tracker.update(det_tracking, im0)
|
||||
if len(tracks) == 0:
|
||||
continue
|
||||
|
||||
if dataset.mode == "video":
|
||||
frameId = dataset.frame
|
||||
else:
|
||||
frameId = dataset.count
|
||||
|
||||
tracks[:, 7] = frameId
|
||||
|
||||
# trackerBoxes = np.concatenate([trackerBoxes, tracks], axis=0)
|
||||
'''================== 1. 存储 dets/subimgs/features Dict ============='''
|
||||
imgs, features = ReIDEncoder.inference(im0, tracks)
|
||||
featdict = {}
|
||||
for ii, bid in enumerate(tracks[:, 8]):
|
||||
featdict.update({f"{int(frameId)}_{int(bid)}": features[ii, :]}) # [f"feat_{int(bid)}"] = features[i, :]
|
||||
|
||||
frameDict = {"path": path,
|
||||
"fid": int(frameId),
|
||||
"bboxes": det,
|
||||
"tboxes": tracks,
|
||||
"imgs": imgs,
|
||||
"feats": featdict}
|
||||
yoloResnetTracker.append(frameDict)
|
||||
|
||||
# imgs, features = inference_image(im0, tracks)
|
||||
# TrackerFeats = np.concatenate([TrackerFeats, features], axis=0)
|
||||
|
||||
'''================== 2. 提取手势位置 ==================='''
|
||||
for *xyxy, id, conf, cls, fid, bid in reversed(tracks):
|
||||
name = ('' if id==-1 else f'id:{int(id)} ') + names[int(cls)]
|
||||
label = None if hide_labels else (name if hide_conf else f'{name} {conf:.2f}')
|
||||
|
||||
if id >=0 and cls==0:
|
||||
color = colors(int(cls), True)
|
||||
elif id >=0 and cls!=0:
|
||||
color = colors(int(id), True)
|
||||
else:
|
||||
color = colors(19, True) # 19为调色板的最后一个元素
|
||||
annotator.box_label(xyxy, label, color=color)
|
||||
if len(tracks) > 0:
|
||||
tracks[:, 7] = frameId
|
||||
# trackerBoxes = np.concatenate([trackerBoxes, tracks], axis=0)
|
||||
'''================== 1. 存储 dets/subimgs/features Dict ============='''
|
||||
imgs, features = ReIDEncoder.inference(im0, tracks)
|
||||
featdict = {}
|
||||
for ii, bid in enumerate(tracks[:, 8]):
|
||||
featdict.update({f"{int(frameId)}_{int(bid)}": features[ii, :]}) # [f"feat_{int(bid)}"] = features[i, :]
|
||||
|
||||
frameDict = {"path": path,
|
||||
"fid": int(frameId),
|
||||
"bboxes": det,
|
||||
"tboxes": tracks,
|
||||
"imgs": imgs,
|
||||
"feats": featdict}
|
||||
yoloResnetTracker.append(frameDict)
|
||||
|
||||
# imgs, features = inference_image(im0, tracks)
|
||||
# TrackerFeats = np.concatenate([TrackerFeats, features], axis=0)
|
||||
|
||||
'''================== 2. 提取手势位置 ==================='''
|
||||
for *xyxy, id, conf, cls, fid, bid in reversed(tracks):
|
||||
name = ('' if id==-1 else f'id:{int(id)} ') + names[int(cls)]
|
||||
label = None if hide_labels else (name if hide_conf else f'{name} {conf:.2f}')
|
||||
|
||||
if id >=0 and cls==0:
|
||||
color = colors(int(cls), True)
|
||||
elif id >=0 and cls!=0:
|
||||
color = colors(int(id), True)
|
||||
else:
|
||||
color = colors(19, True) # 19为调色板的最后一个元素
|
||||
annotator.box_label(xyxy, label, color=color)
|
||||
|
||||
'''====== Save results (image and video) ======'''
|
||||
# save_path = str(save_dir / Path(path).name) # 带有后缀名
|
||||
@ -719,11 +713,13 @@ def main():
|
||||
# p = r"D:\datasets\ym\永辉双摄视频\新建文件夹"
|
||||
# p = r"\\192.168.1.28\share\测试_202406\0723\0723_2\20240723-112522_"
|
||||
# p = r"D:\datasets\ym\联华中环"
|
||||
p = r"D:\exhibition\images\153112511_0_seek_105.mp4"
|
||||
# p = r"D:\exhibition\images\153112511_0_seek_105.mp4"
|
||||
# p = r"D:\exhibition\images\image"
|
||||
|
||||
|
||||
optdict["project"] = r"D:\exhibition\result"
|
||||
p = r"\\192.168.1.28\share\数据\原始数据\小物品数据\视频\82654976401_20241213-143457_front_addGood_5478c9a53bbe_40_17700000001.mp4"
|
||||
optdict["project"] = r"D:\小物品入侵检测\result"
|
||||
|
||||
# optdict["project"] = r"D:\exhibition\result"
|
||||
if os.path.isdir(p):
|
||||
files = find_video_imgs(p)
|
||||
k = 0
|
||||
|
Reference in New Issue
Block a user