SingleTrack_Project (三)重构

发布时间:2026/7/9 16:18:30
SingleTrack_Project (三)重构 项目初期我对项目需求进行剖析并简单做了脉络梳理。开始使用的前后端的项目构建但是随着后续项目的推进我发现将四种传统方法以及两种深度学习的方法放在同一个目录下尤其还有实验结果、模型训练结果、可视化结果、数据集等内容造成项目耦合太重不轻便并且不易查看为了解决这个问题我对项目结构进行了”大换血“整体重构。项目进行过程中我发现对于数据集的选取过于简单并且少量的数据集无法承担训练模型的重任所以我对数据集的选取也进行了重构。一、重构后的完整项目这次重构的核心思想是“解耦”。我将项目拆分成了五个独立的顶层模块实现了“算法、数据、实验、Web 展示”的完全物理隔离。项目主要部分分为了四大板块四种传统视觉跟踪方法、SiamFC深度学习跟踪器、SiamRPN深度学习跟踪器还有Web可视化交互接口。主要项目结构如下本次重构实现了真正的物理隔离并且极度简化了实验流程配置更加标准化项目文件也更具有可读性。二、数据集更改最初我只选取了OTB100的数据集但后来再进行深度学习方法的模型训练时发现数据集可以使用的仅有七十几个训练出来的模型效果极差所有我改变思路是使用数据量更大的GOT-10k数据集进行模型的训练与验证OTB100仅作为测试数据集使用。我选取了GOT-10k的前10个文件夹中的序列共5000个全部的验证数据集val共166个进行模型的训练。并从OTB100中针对不同场景选择20个序列进行测试其包括快速运动Basketball, Biker, BlurCar2, Jumping、遮挡Coke, Girl, Jogging, Tiger2、尺度变化CarScale, David, Dog, Singer1、形变Bolt, Dancer, Freeman1, Skater以及背景杂乱Board, Deer, Liquor, Soccer。这五种场景覆盖了目标跟踪中最常见的 5 类困难场景可以用来全面评估模型的鲁棒性。同时经过对比我发现OTB100的数据集视频时间有大部分都长于GOT-10k所以对于效果一般的传统方法我采用了GOT-10k的验证数据集进行了测试。三、总结这次重构耗时并不算长但带来的工程效益是长远的。让我真正建立起了“软件工程项目”的思维。当前我的项目已经具备了三个核心能力1.单模块独立实验2.统一 Web 展示3.纯代码版本管理后续我会对于每种方法基于我的理解进行简单介绍。