update for bakeup
This commit is contained in:
@ -205,9 +205,9 @@ def do_tracker_tracking(fpath, save_dir):
|
||||
|
||||
def do_tracking(fpath, savedir):
|
||||
'''
|
||||
fpath: 算法各模块输出的data文件地址,匹配
|
||||
savedir: 对 fpath 各模块输出的复现
|
||||
分析具体视频时,需指定 fpath 和 savedir
|
||||
fpath: 算法各模块输出的data文件地址,匹配;
|
||||
savedir: 对 fpath 各模块输出的复现;
|
||||
分析具体视频时,需指定 fpath 和 savedir
|
||||
'''
|
||||
# fpath = r'D:\contrast\dataset\1_to_n\709\20240709-102758_6971558612189\1_track.data'
|
||||
# savedir = r'D:\contrast\dataset\result\20240709-102843_6958770005357_6971558612189\error_6971558612189'
|
||||
@ -218,17 +218,25 @@ def do_tracking(fpath, savedir):
|
||||
bboxes, ffeats, trackerboxes, tracker_feat_dict, trackingboxes, tracking_feat_dict = extract_data(fpath)
|
||||
|
||||
tracking_output_path = os.path.join(imgpath, CamerType + '_tracking_output.data')
|
||||
|
||||
if not os.path.isfile(tracking_output_path): return
|
||||
|
||||
tracking_output_boxes, _ = read_tracking_output(tracking_output_path)
|
||||
|
||||
|
||||
|
||||
|
||||
'''存储画框后的 img'''
|
||||
save_dir, basename = os.path.split(savedir)
|
||||
if not os.path.exists(savedir):
|
||||
os.makedirs(savedir)
|
||||
|
||||
'''存储轨迹对应的 boxes子图'''
|
||||
subimg_dir = os.path.join(save_dir, basename.split('_')[0] + '_subimgs')
|
||||
if not os.path.exists(subimg_dir):
|
||||
os.makedirs(subimg_dir)
|
||||
|
||||
|
||||
''' 读取 fpath 中 track.data 文件对应的图像 '''
|
||||
|
||||
imgs = read_imgs(imgpath, CamerType)
|
||||
|
||||
''' 在 imgs 上画框并保存,如果 trackerboxes 的帧数和 imgs 数不匹配,返回原图'''
|
||||
@ -262,9 +270,27 @@ def do_tracking(fpath, savedir):
|
||||
vts.classify()
|
||||
|
||||
edgeline = cv2.imread("./shopcart/cart_tempt/edgeline.png")
|
||||
draw_all_trajectories(vts, edgeline, save_dir, traj_graphic)
|
||||
img = draw_all_trajectories(vts, edgeline, save_dir, traj_graphic)
|
||||
|
||||
imgpth = save_dir.joinpath(f"{traj_graphic}_show.png")
|
||||
cv2.imwrite(str(imgpth), img)
|
||||
else:
|
||||
print("Please check data file!")
|
||||
|
||||
for track in vts.Residual:
|
||||
for *xyxy, tid, conf, cls, fid, bid in track.boxes:
|
||||
img = imgs[int(fid-1)]
|
||||
x1, y1, x2, y2 = int(xyxy[0]/2), int(xyxy[1]/2), int(xyxy[2]/2), int(xyxy[3]/2)
|
||||
subimg = img[y1:y2, x1:x2]
|
||||
|
||||
subimg_path = os.path.join(subimg_dir, f'{CamerType}_{int(tid)}_{int(fid-1)}_{int(bid)}.png' )
|
||||
|
||||
cv2.imwrite(subimg_path, subimg)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
'''================== 现场测试的 tracking() 算法输出 =================='''
|
||||
@ -295,14 +321,14 @@ def do_tracking(fpath, savedir):
|
||||
cv2.line(abimg, (int(abW/2), 0), (int(abW/2), abH), (128, 255, 128), 2)
|
||||
|
||||
algpath = save_dir.joinpath(f"{traj_graphic}_Alg.png")
|
||||
cv2.imwrite(algpath, abimg)
|
||||
cv2.imwrite(str(algpath), abimg)
|
||||
|
||||
return
|
||||
|
||||
|
||||
def main_loop():
|
||||
del_barcode_file = 'D:/contrast/dataset/compairsonResult/deletedBarcode_20240709_pm.txt'
|
||||
basepath = r'D:\contrast\dataset\1_to_n\709' # 测试数据文件夹地址
|
||||
del_barcode_file = r'\\192.168.1.28\share\测试_202406\deletedBarcode\bad\deletedBarcode_0719_4.txt'
|
||||
basepath = r'\\192.168.1.28\share\测试_202406\0719\719_4' # 测试数据文件夹地址
|
||||
SavePath = r'D:\contrast\dataset\result' # 结果保存地址
|
||||
prefix = ["getout_", "input_", "error_"]
|
||||
|
||||
@ -341,9 +367,7 @@ def main_loop():
|
||||
if fpath.find(name)>0:
|
||||
enent_name = prefix[i] + name
|
||||
break
|
||||
|
||||
spath = os.path.join(savepath, enent_name)
|
||||
|
||||
do_tracking(fpath, spath)
|
||||
|
||||
k +=1
|
||||
@ -353,25 +377,24 @@ def main_loop():
|
||||
|
||||
|
||||
|
||||
def main_fold():
|
||||
save_dir = Path('./result')
|
||||
if not save_dir.exists():
|
||||
save_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
files_path = 'D:/contrast/dataset/1_to_n/709/20240709-112658_6903148351833/'
|
||||
for filename in os.listdir(files_path):
|
||||
filename = '1_track.data'
|
||||
|
||||
fpath = os.path.join(files_path, filename)
|
||||
if os.path.isfile(fpath) and filename.find("track.data")>0:
|
||||
# do_tracker_tracking(fpath, save_dir)
|
||||
do_tracking(fpath, save_dir)
|
||||
|
||||
|
||||
def main():
|
||||
'''
|
||||
fpath: data文件,包括 Pipeline 各模块输出
|
||||
save_dir:需包含二级目录,其中一级目录为轨迹图像;
|
||||
二级目录为与data文件对应的序列图像存储地址。
|
||||
'''
|
||||
|
||||
fpath = r'\\192.168.1.28\share\测试_202406\0719\719_4\20240719-164209_\0_track.data'
|
||||
save_dir = r'D:\contrast\dataset\result\20240719-164209_6971284204320_6902890247777\getout'
|
||||
|
||||
do_tracking(fpath, save_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
# main()
|
||||
main_loop()
|
||||
# main_fold()
|
||||
|
||||
except Exception as e:
|
||||
print(f'Error: {e}')
|
||||
|
||||
|
Reference in New Issue
Block a user