尝试复现SiamFC论文(纯小白实践)

一,前期准备工作

系统环境检查

创建python文件,大致检查系统环境

复制代码
# 创建一个检查脚本 check_environment.py
import sys
import torch

print("=" * 50)
print("环境检查报告")
print("=" * 50)

# 检查Python版本
print(f"Python版本: {sys.version}")

# 检查PyTorch版本
print(f"PyTorch版本: {torch.__version__}")

# 检查CUDA是否可用
print(f"CUDA是否可用: {torch.cuda.is_available()}")

if torch.cuda.is_available():
    print(f"CUDA版本: {torch.version.cuda}")
    print(f"GPU设备: {torch.cuda.get_device_name(0)}")
    print(f"GPU数量: {torch.cuda.device_count()}")
else:
    print("警告: CUDA不可用,将使用CPU模式,训练速度会很慢")

# 检查cuDNN
if torch.cuda.is_available():
    print(f"cuDNN版本: {torch.backends.cudnn.version()}")
    print(f"cuDNN启用: {torch.backends.cudnn.enabled}")

print("=" * 50)

# 最终验证脚本 final_check.py
try:
    import torch
    import torchvision
    import cv2
    import numpy as np
    from PIL import Image
    import scipy

    print("✓ 所有核心依赖包导入成功")

    # 测试基本功能
    if torch.cuda.is_available():
        x = torch.randn(3, 3).cuda()
        print("✓ GPU计算测试通过")
    else:
        print("⚠️  使用CPU模式")

    print("🎉 环境配置完成,可以开始运行SiamFC代码!")

except ImportError as e:
    print(f"❌ 导入错误: {e}")

报错:

下载scipy

github上各种库的下载链接

论文代码下载

代码下载解压缩之后是这样的:

数据集下载

GOT---10K

点击此处,查看数据集

页面打开之后,点击Download,我们可以查看到数据的下载链接,和整个数据集的结构。

下载之后应该有这三个文件(一个文件,两个压缩包),对压缩包进行解压。

然后分别打开每个文件,对各个文件里面的每个压缩包解压,注意解压缩的路径要与规定的一致。

预训练模型下载

点击百度云蓝色链接,下载作者提供的预训练模型。

也可以根据数据集自己进行训练,训练之后同样会生成不同阶段的训练模型。我们取最后一次训练结果siamfc_alexnet_e50.pth。pretrained文件夹是在tools文件夹下面,如果不是训练过程中自己生成的话,就需要自己进行创建。具体结构tools/pretrained/siamfc_alexnet_e50.pth。

二,环境安装

前面的大家可以借鉴这个博主的

windows复现SiamFC以及环境安装-CSDN博客

1.新创建环境

打开anaconda prompt,输入命令。创建了一个版本为3.7,名字为siamfc的环境名。

复制代码
conda create -n siamfc python=3.7

运行截图:

2.查看环境

复制代码
conda env list

结果:

新建的siamfc环境已经在上面了。

3.激活环境

复制代码
conda activate siamfc

结果:

在anaconda prompt里面控制行前面的括号内字符由base变到siamfc。表示环境激活,现在所有命令都是在该环境下进行的。

4.查看环境里的包

复制代码
pip list

结果:

只有五个包,不满足运行要求。

5.安装pytorch等

论文建议的版本是PyTorch>=1.0,建议严格与论文保持一致,减少不必要的麻烦。

在PyTorch官网,找到匹配的版本及相应语句。上图论文建议的cudatoolkit=9.0。但是我看的一些博主都是用的10.0的那条语句。这个地方我随大流了。

运行代码:

复制代码
conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=10.0 -c pytorch

运行结果报错:

解决办法:先安装其他的,然后再pip安装torchvision。这个是参考博文中提到的方法,在实际过程中,我先下载了torchvision,在安装其他的。

安装torchvision,如果开VPN了,记得把代理关了。

代码:

该代码前面指定版本,后面标明从PyPI官方源下载。

复制代码
pip install torchvision==0.2.2 -i https://pypi.org/simple

这个运行的很慢,换一个下载源。这个版本上好像有点细微的不同。

复制代码
pip install torch==1.0.0 torchvision==0.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

运行结果:

检查下载的包,可以看到torchvision已经下载了。

现在开始下载其他包

命令语句:

复制代码
conda install pytorch==1.0.1 cudatoolkit=10.0 -c pytorch

运行了一下好像没下载成:

重新下载:

复制代码
conda install pytorch==1.0.1 cudatoolkit=10.0 -c pytorch -y

使用-y参数会自动确认安装:

6.查看已安装的包

代码:pip list

7.版本下载错了,卸载重下

根据上图,可以看出环境中有torch 1.13.1和torchvision 0.2.2。这个配置有问题,因为torchvision 0.2.2是一个非常旧的版本,而torch 1.13.1相对较新,可能不兼容。

按照SiamFC代码的要求安装PyTorch 1.0.1和torchvision 0.2.2,应该安装PyTorch 1.0.1,而不是1.13.

复制代码
# 卸载当前不兼容的版本
pip uninstall torch torchvision

# 安装兼容的旧版本
pip install torch==1.0.1 torchvision==0.2.2 -f https://download.pytorch.org/whl/torch_stable.html

下载

查看安装包

三,环境配置

Apply-->OK

up主修改的数据库地址:

3是一行一行的往下运行


各种数据集下载链接库

四,总结

实现不了,我看B站上的教程,用的虚拟环境,跟我直接用的电脑不太一样。这个系统又太老了,环境配置也不好配置。再加上我中间因为太难拖了好长时间,现在跟不太清楚细节了。总之,找下一个新一点的去实现。

参考视频:

目标跟踪零基础代码入门(一):SiamFC_哔哩哔哩_bilibili