update for bakeup

This commit is contained in:
王庆刚
2024-07-22 20:16:45 +08:00
parent e986ec060b
commit 16543107f3
16 changed files with 179 additions and 52 deletions

View File

@ -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}')