Files
detecttracking/说明文档.txt
王庆刚 5ecc1285d4 update
2024-11-04 18:06:52 +08:00

177 lines
6.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

五个功能模块
1. Yolo + Tracker + Resnet, 其中 Resnet 的实现在./contrast中
track_reid.py
2. 轨迹分析模块,目录为:./tracking
(1) 基于模块Yolo + Tracker + Resnet的输出
tracking_test.py
(2) 基于测试过程数据track.data, tracking_output.data的输出
module_analysis.py
3. 比对分析模块,目录为:./contrast
2个场景1:11:n
1:1场景
(1) 利用现场保存数据进行比对
OneToOneCompare.txt现场保存数据
one2one_onsite.py
(2) 利用本地算法进行特征提取
one2one_contrast.py
1:n场景
(1) 直接利用 deletedBarcode.txt 中数据
one2n_contrast.py
(2) 构造取出、放入事件,设计不同的特征,
feat_select.py
4. 整体流程仿真
pipeline.py
SourceType: "image", "video", yolo+resent+tracker模块输入数据类型
5. 全实时时间切分仿真分析
time_devide.py
需分 2 步运行模块:
(1) runyolo()
该模块调用 imgs_inference.py 中模块 run_yolo
后续工作:
1). 将run_yolo模块与track_redi.yolo_resnet_tracker模块合并
2). 图像文件名标准化
(2) show_seri()
该模块调用 event_time_specify.py 中模块 devide_motion_state
具体实现:
./tracking
tracking_test.py
have_tracked():
轨迹分析测试。遍历track_reid.py输出的文件夹trackdict下的所有.pkl文件。
time_test.py
统计Pipeline整体流程中各模块耗时
module_analysis.py
该模块中需要借助 try...except... 捕获data文件中的异常
main():
遍历文件夹下的每一个子文件夹对子文件夹执行tracking_simulate() 函数;
main_loop()
(1) 根据 deletedBarcode.txt 生成事件对,并利用事件对生成存储地址
(2) 调用 tracking_simulate() 函数
tracking_simulate(eventpath, savepath)
(1) 根据event_names获取事件名enent_name
(2) 遍历并执行 eventpath 文件夹下的 0_track.data、1_track.data 文件并调用do_tracking() 执行
(3) 将前后摄、本地与现场工8幅子图合并为1幅大图。
上下子图分别显示的是前后摄每一行4个子图分别为
(a) tracker输出原始轨迹;
(b) 本地tracking输出;
(c) 现场算法轨迹选择前轨迹;
(d) 现场算法轨迹选择后的轨迹
do_tracking(fpath, savedir, event_name)
inputs
fpath: 0/1_track.data文件并核验是否存在 0/1_tracking_output.data若不存在该文件直接返回 None, None
savedir: 在该文件夹下会建立3个子文件夹及一个png轨迹图
./savedir/event_name_images, 画boxes后的图像序列
./savedir/event_name_subimgs, 轨迹分析后的目标子图,无 _x 为PC机结果有 _x 为平板单摄像头轨迹选择后的输出
./savedir/trajectory, 存储每一个轨迹图
./savedir/event_name_tracking_select.png 或 enent_name_tracking.png 或 enent_name_select.png
outputs:
img_tracking本机tracker、tracking 输出的结果比较图
abimg: 部署算法的tracking、轨迹选择分析比较图
./utils/read_data.py
0/1_track.data 文件保存yolo、Resnet、tracker、tracking模块的输出
函数: extract_data(datapath)
异常排除:
(1) assert len(boxes)==len(feats)确保每一帧内boxes数和feats数相等
(2) assert(len(bboxes)==len(ffeats)), 确保关于bboxes的帧数和关于ffeats的帧数相等
(3) assert(len(trackerboxes)==len(trackerfeats))确保tracker输出的boxes可以对应到相应的feats上
这里未对 len(box)!=9、len(feat)!=256, 的情况做出约束
输出:
bboxes
ffeats
trackerboxes
tracker_feat_dict[f"frame_{fid}"]["feats"]{{bid}: (256,)
}
trackingboxes
tracking_feat_dict[f"track_{tid}"]["feats"]{f"{fid}_{bid}": tracker_feat_dict[f"frame_{fid}"]["feats"][bid]})
0/1_tracking_output.data 文件保存用于比对的boxes、features
函数: read_tracking_output(filepath)
异常排除:
(1) assert len(feats)==len(boxes)
(2) box.size==9、feat.size=256
./deprecated/contrast_one2one.py
1:1 比对评估。have Deprecated!
./enentmatch.py
1:n 模拟测试have Deprecated!
./contrast
feat_similar.py
similarity_compare_sequence(root_dir)
inputs:
root_dir文件夹包含"subimgs"字段,对该文件夹中的相邻图像进行相似度比较
silimarity_compare()
功能对imgpaths文件夹中的图像进行相似度比较
feat_select.py
creatd_deletedBarcode_front(filepath)
(1) 基于 deletedBarcode.txt, 构造取出事件和相应的放入事件,构成列表并更新这些列表。
MatchList = [(getout_event, InputList), ...]
(2) 设计不同的特征选择方式,计算 getout 事件和各 input 事件的相似度,并保存于文件:
deletedBarcodeTest.txt
precision_compare(filepath, savepath)
读取 deletedBarcode.txt 和 deletedBarcodeTest.txt 中的数据,进行相似度比较
one2n_contrast.py
1:n 比对,读取 deletedBarcode.txt实现现场测试评估。
main():
循环读取不同文件夹中的 deletedBarcode.txt合并评估。
main1():
指定deletedBarcode.txt进行1:n性能评估
one2one_onsite.py
现场试验输出数据的 1:1 性能评估;
适用于202410前数据保存版本的需调用 OneToOneCompare.txt
标准特征向量生成
std_sample_path图像样本的存储地址
std_barcode_path对 std_sample_path 中文件列表进行遍历,形成{barcode: 图像样本地址}形式字典并进行存储
std_feature_path调用 inference_image(), 对每一个barcode生成字典并进行存储
genfeats.py
genfeatures(imgpath, bcdpath, featpath)
功能:生成标准特征向量
参数:
(1) imgpath图像样本的存储地址
(2) bcdpath对 imgpath 中文件列表进行遍历,形成{barcode: 图像样本地址}形式字典并进行存储
(3) featpath调用 inference_image(), 对每一个barcode生成字典并进行存储