图像匹配的superpoint算法训练


官方没有开源的训练代码,从github上找了野生的基于pytorch实现训练。

1.检测器magicpoint以及人工数据的生成

2.用magicpoint给自己的数据集打上伪标签

我没有训练magicpoint了,直接用已经训练好的预训练权重,在这里:
在这里插入图片描述

2.1 main

自己编写一个文件然后运行,内容如下下面
在这里插入图片描述
这是官方的说明:
在这里插入图片描述
其中
任务:export_detector_homoAdapt
配置文件: “configs/magicpoint_coco_export.yaml”
输出保存伪标签的文件夹:“magicpoint_synth_homoAdapt_uavtianda0002_train”

2.2 接下来我们看setting.py文件

DATA_PATH = 'zz_datasets' # path for datasets 也就是输入图片存放的位置
EXPER_PATH = 'zz_logs' # path for saving checkpoints 也就是输出图片存放的位置,伪标签也在。
SYN_TMPDIR = './zz_temp_datasets/'  # path for dumping synthetic data 没啥用
DEBUG = False # true: will make synthetic data only uses draw_checkboard and ignore other classes,
# DEBUG = False

前面提到的"magicpoint_synth_homoAdapt_uavtianda0002_train"也就是在’zz_logs’ 文件夹下,这个你可以自己命名

2.3然后看yaml配置文件

data:
    dataset: 'Coco'  # 'coco' 'hpatches'
    export_folder: 'val' # train, val  
    preprocessing:
        resize: [240, 320] 
        # resize: [480, 640] 
    gaussian_label:
        enable: false # false
        sigma: 1.
    augmentation:
        photometric:
            enable: false
    homography_adaptation:
        enable: true
        num: 100 # 100
        aggregation: 'sum'
        filter_counts: 0
        homographies:
            params:
                translation: true
                rotation: true
                scaling: true
                perspective: true
                scaling_amplitude: 0.2
                perspective_amplitude_x: 0.2
                perspective_amplitude_y: 0.2
                allow_artifacts: true
                patch_ratio: 0.85

training:
    workers_test: 2

model:
    # name: 'SuperPointNet' # 'SuperPointNet_gauss2'
    name: 'SuperPointNet_gauss2' # 'SuperPointNet_gauss2'
    params: {
    }    
    batch_size: 1
    eval_batch_size: 1
    detection_threshold: 0.015 # 0.015
    nms: 4
    top_k: 600
    subpixel:
        enable: true

# pretrained: 'logs/magicpoint_synth20/checkpoints/superPointNet_200000_checkpoint.pth.tar' # 'SuperPointNet'
pretrained: 'logs/magicpoint_synth_t2/checkpoints/superPointNet_100000_checkpoint.pth.tar'


data:
    dataset: 'Coco'  # 'coco' 'hpatches'
    export_folder: 'val' # train, val

这两行的意思就是,datasets文件夹里的Coco.py文件。
第三行为任务,可以是train也可以是val。生成训练集和验证集在不同文件夹
在这里插入图片描述
Coco.py的第57行定义了输入图片的位置

    def __init__(self, export=False, transform=None, task='train', **config):

        # Update config
        self.config = self.default_config
        self.config = dict_update(self.config, config)
        # dict_update(self.config, config)
        self.transforms = transform
        self.action = 'train' if task == 'train' else 'val'

        # get files
        base_path = Path(DATA_PATH, 'uav_tianda/' + task + '2014/')

在这里插入图片描述
下面是伪标签的保存地址,yaml文件中的export_folder: 设置为val和train各跑一次代码,得到两个文件夹里的伪标签。
在这里插入图片描述

3.使用带为伪标签的数据进行训练得到superpoint

3.1 main函数

定义这样一个函数,然后运行
在这里插入图片描述
这是官网的介绍:
在这里插入图片描述
superpoint_uavtianda_visdrone是训练好的权重的内容。

3.2看看yaml配置文件

data:
    # name: 'coco'
    dataset: 'Coco' # 'coco'

#    labels: datasets/magicpoint_synth20_homoAdapt100_coco_f1/predictions
    labels: zz_logs/magicpoint_synth_homoAdapt_uavtianda_train/predictions
#    root: # datasets/COCO
    root: # zz_datasets/uav_tianda
    root_split_txt: # /datasets/COCO

注意labels一定要到predictions这一层,才能找到标签文件。

用于训练的图片在这:

在这里插入图片描述

您好!关于SuperPoint训练SuperPoint是一种用于图像特征点检测和描述的模型。在训练SuperPoint模型之前,通常需要准备一个包含图像和相应的特征点标注的数据集。以下是一个基本的SuperPoint训练过程: 1. 数据准备:收集并标注一个包含图像和相应特征点的数据集。可以使用一些开源数据集,如HPatches、MS COCO等。 2. 特征点提取:使用预训练的模型或手动提取特征点,并将其与图像进行配对。 3. 训练前处理:将图像和特征点转换为模型所需的输入格式。一般来说,需要将图像进行归一化、裁剪或缩放,以及将特征点转换为网络所需的标签或掩码。 4. 模型定义:定义SuperPoint模型的结构,可以使用现有的网络架构作为起点,并根据需要进行调整。可以使用深度学习框架如PyTorch或TensorFlow来实现模型。 5. 损失函数:定义适合任务的损失函数,例如平均重投影误差(average re-projection error)或其他相关损失函数来评估特征点检测和描述性能。 6. 训练过程:使用数据集中的图像和相应的特征点标注来训练模型。通常使用梯度下降算法和反向传播来优化模型参数。 7. 超参数调整:调整模型的超参数,例如学习率、批大小、训练迭代次数等,以优化模型性能。 8. 模型评估:使用测试集或交叉验证来评估模型在特征点检测和描述任务上的性能。 这些步骤只是一个基本的训练流程示例,实际的训练过程可能会因具体任务和数据集而有所不同。希望对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大泽泽的小可爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值