:开发环境配置、数据集选取与 GitHub 仓库建立)
一、引言在上一篇博客中我完成了项目任务的拆解和工程目录的搭建。本篇文章我将搭建一个能调用 GPU 加速的开发环境并为项目准备标准的测试数据同时将代码托管到 GitHub。二、开发环境配置本项目涉及 Flask 后端开发和多模块文件组织因此我选择VS Code作为主开发环境Jupyter Notebook仅用于局部算法调试Trae CN辅助代码编写。在配置环境时我踩了一个很多人都会遇到但容易忽略的坑明明我的 Jupyter Notebook 可以正常调用显卡但一打开 VS Code 终端却始终提示 No module named torch。经过一步步排查我发现根本原因有两点VS Code 终端未正确激活虚拟环境。刚开始我在终端里执行 conda activate tf 后终端前缀并没有出现预期的tf 提示符导致后续的安装命令其实跑错了地方。后来我把终端默认 shell 改成PowerShelltf才正确显示出来。PyTorch 被安装到了错误的 base 环境。由于我一开始没有在正确的tf 环境下执行安装导致 PyTorch 被错误地装进了系统默认的 base 环境而真正要用的 tf 环境里根本没有对应的包。查明原因后我切换到正确的tf环境重新执行了带有 CUDA 的 pytorch 安装命令。安装成功后终端测试最终完美打通了 VS Code 的 GPU 开发环境。三、依赖包管理requirements.txt为了保证项目能在正确环境下运行并在其他电脑上顺利复现我在项目根目录下创建了requirements.txt 依赖文件。由于本项目的深度学习模型SiamFC需要使用 GPU 进行加速所以 PyTorch 的安装需要先安装带有CUDA 12.1支持的GPU版本的 PyTorch之后执行“pip install -r requirements.txt”便可以完成相关的依赖。# 第一步先安装带有 CUDA 12.1 支持的 GPU 版 PyTorch必须指定源 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 第二步再安装其余 Web 和图像处理依赖 pip install -r requirements.txtrequirements.txt内容如下flask3.0.0 opencv-python4.8.1 opencv-contrib-python4.8.1 numpy1.24.3 torch2.5.1 torchvision0.20.1 torchaudio2.5.1切换镜像源的经历供参考在安装 opencv-contrib-python 时我首先尝试了清华源https://pypi.tuna.tsinghua.edu.cn/simple/但返回了 403 拒绝访问的错误。于是我临时将 pip 的下载源切换到了阿里云镜像pip install opencv-contrib-python --index-urlhttps://mirrors.aliyun.com/pypi/simple/切换后立刻安装成功。如果后续大家遇到类似问题也可以尝试更换国内镜像源或临时指定--index-url。或者也可以使用官方源来下载https://pypi.org/simple不过官方源速度较慢。四、数据集选择数据集有四个选择OTB100、UAV123、LaSOT 和 GOT-10k由于数据集之间存在标注格式不统一的问题所以我没有选择合并数据集只下载了OTB100数据集进行本次项目实现。OTB100数据集在CSDN中直接搜索有博主分享链接可以直接下载。本项目从OTB100数据集中严格筛选了5组具有代表性的视频序列Basketball、Car4、Tiger1、Soccer、Doll。这5个序列覆盖了“目标颜色明显、背景较简单、目标缓慢运动、固定摄像头、轻微光照变化和局部遮挡”等所有场景能够全面且公平地对比KCF、CSRT、SiamFC等算法在精度和鲁棒性上的差异。1Basketball —— 目标相似性与快速运动典型场景室内篮球比赛多名穿着相似队服的运动员快速跑动目标频繁被遮挡。适用方法KCF和 CSRT的经典对比场景。2Car4 —— 光照剧变与尺度变化典型场景汽车在道路上行驶从树荫/桥洞下驶入阳光直射区镜头出现明显变焦尺度放大。适用方法CSRT与 SiamFC。3Tiger1 —— 严重遮挡与快速形变典型场景老虎玩具在植物枝叶间穿梭出现严重的前景遮挡树叶遮挡目标发生快速旋转和形变。适用方法SiamFC 对比 CSRT。4Soccer —— 高动态模糊与背景干扰典型场景足球比赛进球后球员庆祝镜头剧烈晃动画面充斥着大量相似的人头和颜色且伴随高动态模糊。适用方法KCF 与 SiamFC 的综合对比。5Doll —— 局部遮挡与平面外旋转典型场景一个人拿着玩偶做前后移动玩偶被肢体部分遮挡并伴随旋转。适用方法CamShift对比 CSRT。五、GitHub项目创建为了做好版本管理我在 GitHub 新建了一个名为 SingleTrack_Project 的公开仓库。在VS Code的终端依次执行了以下命令将本地文件与远程仓库关联起来# 初始化本地仓库 git init # 添加所有文件到暂存区 git add . # 提交第一次代码 git commit -m 项目基础结构创建 # 关联远程仓库替换成你的仓库地址或SSH密钥 git remote add origin 仓库地址 # 推送代码到远程仓库 git push -u origin main