您可以将 opencv SIFT 与 tensorflow 模型集成吗?

Can you integrate opencv SIFT with a tensorflow model?

我正在尝试创建一个 CNN,但使用的是 SIFT 算法而不是任何池化层。 问题是我似乎无法在 Tensorflow 或 PyTorch 中找到算法的任何 Python 实现。我看到的唯一实现是使用 opencv。

是否可以将 opencv SIFT 实现用作 Tensorflow CNN 模型中的一个层? 如果是这样,您将如何创建它?

虽然这是一个有趣的想法,但我认为它存在许多问题,使其非常不切实际甚至不可能。

网络的各层在输入方面必须是可区分的,以允许计算任何梯度,然后将其用于更新权重。 虽然我认为可以编写一个完全可微分的筛选实现,但仅此一点是不切实际的。

进一步的SIFT没有固定数量的输出并且需要很长时间来计算,这会大大减慢训练速度。

将 SIFT 与神经网络一起使用的唯一实用方法是首先 运行 SIFT,然后使用前 N 个检测到的关键点作为第一层的输入。但是,我不确定这是否会成功。