From dfb2272a155e96a8d6d143ecf815b6d3d43495e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=86=E5=88=9A?= Date: Mon, 7 Oct 2024 17:27:00 +0800 Subject: [PATCH] pepeline_extract_subimg.py: extract subimg --- __pycache__/track_reid.cpython-39.pyc | Bin 16793 -> 16691 bytes .../__pycache__/feat_inference.cpython-39.pyc | Bin 0 -> 10314 bytes contrast/one2one_contrast.py | 35 ++--- pipeline.py | 109 ++++++++++++++- pipeline_extract_subimg.py | 125 ++++++++++++++++++ track_reid.py | 11 +- 6 files changed, 241 insertions(+), 39 deletions(-) create mode 100644 contrast/__pycache__/feat_inference.cpython-39.pyc create mode 100644 pipeline_extract_subimg.py diff --git a/__pycache__/track_reid.cpython-39.pyc b/__pycache__/track_reid.cpython-39.pyc index c859070e92a1e5dac2d06a1f7f4639f9e1825dc3..2532102649ab96099343efa466d2ebb9707e318b 100644 GIT binary patch delta 1825 zcmZwHTW}Lq7zgk@Nt#kZOKrI{X=!aMg-x0iNm|-8Z39+@mKi9*sPw^1nq5kI*@TnD zqHd>Z#}|bXJ&M$VBq&0;JjjlS7xclw3*Pa{3Op#FyeNz^BQuWU`ELPV=uCe7zVDpP z`S$GDjE@riNs=GU&z~;vziVUG-alW@-&Rzxl4mI0!#}B~*@2>;$xi*5;z~l6=|^S_ zTSn$7i%@BtNy;gs3mQqN2l^keO4fX=Hr!1nlID9$CqTu z@CsGDku_$?C>id!l{cArr&1l?dA+-n6<)Q3vu6L#3S zjD+<+oMBQpJ)VjyDK)CZWLn5Kk*z8nBP-dt(o(XAT`%21vMgQpko^TdM0c>i%DffF zcxX6O8jbZwdJ@-en+T7Cw}9E#{fH9a9q=xA448L&0?~WmefGF_UgH*oj{vh{JW=`~ z_y~Lq%)OBj4FbHf^b>Z$EBf9>xD@n*|DVtUNKb)J!DrwYYxaf7=S=gpk9>iGdB0yG z`U-pvHiE053!Dbua14^9-y$)$^gBe~qij(m`UA2bK_^%Z&Hw}a1kQqU;5=Z9>YUYE z5nTWmIo*7_dy`RhBfW&uui!T}R2Ot!L%0U~4esL@R=Qd7=%?!LAjGAgT{PS3m`C_n zIjGS8@s|+$RLorU0aBr_t}iBzGK`w@D)hkyKXI5-rV8xPlIp3v()NVJ=0#;^@V2l{WE9F`mGa+Kh5C%DLZf?l$XrGrl5*AE7l z6LOqgZJym(h0z7z*0D2k;wdRk4ZFNWl@-abrxH|^C0dMGUf|*w_IPSTd_d-lyHT6N zxgSSZix#p?UY_+id=v%w&nys>0uIwcLbgQqQ)YCcevv%~n0=$L!pOs14j) UT8R$Id>uE-hW8VZbu8`r54fYvI{*Lx delta 1821 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: + vts = doFrontTracks(bboxes, tracksdict) + vts.classify() + + if base.find('back')>=0: + vts = doBackTracks(bboxes, tracksdict) + vts.classify() + + tracks = [t for t in vts.tracks if t.cls>0 and not t.is_static()] + # tracks = [t for t in vts.tracks if t.cls>0] + + for track in tracks: + # for track in vts.Residual: + for *xyxy, tid, conf, cls, fid, bid in track.boxes: + img = tracksdict[f'frame_{int(fid)}']["imgs"][int(bid)] + + imgpth = savepath / Path(f'{base}_tid-{int(tid)}_fid-{int(fid)}_bid-{int(bid)}.jpg') + + cv2.imwrite(imgpth, img) + + return len(vts.Residual) + + + + +def main(): + + videopath = r"\\192.168.1.28\share\上海中环店采集视频\21-25\videos\1\back" + savepath = r"D:\contrast\barcodes" + + vpaths = [] + for root, dirs, files in os.walk(videopath): + vpth = [os.path.join(root, f) for f in files if os.path.splitext(f)[-1] in VIDFORMATS] + vpaths.extend(vpth) + + manual_txt = os.path.join(savepath, 'manual_videos.txt') + file = open(manual_txt, 'a', encoding='utf-8') + + + + manual = [] + k = 0 + for vpath in vpaths: + videoname = os.path.basename(vpath) + + vname, ext = os.path.splitext(videoname) + barcode = videoname.split('_')[0] + + subpath = os.path.join(savepath, barcode, vname) + subpath = Path(subpath) + if not subpath.exists(): + subpath.mkdir(parents=True, exist_ok=True) + + ntract = pipeline(vpath, subpath) + + if ntract==0: + manual.append(vpath) + file.write(vpath) + file.write("\n") + + print(f"{videoname} done!!!") + k += 1 + if k==10: + break + + file.close() + + + + + + +if __name__ == "__main__": + main() + + + + + + + + + + \ No newline at end of file diff --git a/track_reid.py b/track_reid.py index 8822f53..e927a77 100644 --- a/track_reid.py +++ b/track_reid.py @@ -264,12 +264,11 @@ def yolo_resnet_tracker( im0 = annotator.result() save_path_img, ext = os.path.splitext(save_path) if save_img: - if dataset.mode == 'image': - imgpath = save_path_img + f"_{dataset}.png" - else: - imgpath = save_path_img + f"_{dataset.frame}.png" - - cv2.imwrite(Path(imgpath), im0) + # if dataset.mode == 'image': + # imgpath = save_path_img + f"_{dataset}.png" + # else: + # imgpath = save_path_img + f"_{dataset.frame}.png" + # cv2.imwrite(Path(imgpath), im0) if vid_path[i] != save_path: # new video vid_path[i] = save_path