論文メモ:ASLFeat:正確な形状と位置特定のための局所特徴の学習
本文は D2-Net に基づくさらなる改良であり、主な革新点は以下の通りです:
1)Deformable Convolution を使用して密な変換推定と特徴抽出を行う
2)特徴ピラミッドを使用して空間解像度に適応し、low-level の詳細を使用して正確な特徴点を特定する
1 方法
1.1 前提条件
本論文のネットワーク設計は、以下の2つの研究に基づいています:DCN と D2-Net。まず、これら2つの研究の主なアイデアを振り返ります:
Deformable convolutional networks (DCN)
可変形畳み込み (Deformable Convolutional Networks, DCN) の目的は主に動的な受容野を学習することです。従来の畳み込みの式は以下の通りです:
\begin{equation}\mathbf{y}(\mathbf{p})=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}+\mathbf{p}_{n}\right)\end{equation}
ここで \mathbf{p} は畳み込みの中心点の座標を表し、\mathbf{p}_{n} は畳み込み \mathcal{R} 範囲内のオフセットを表し、\mathbf{x}(\cdot) はその点のピクセル値を示します。DCN はこれに加えて、オフセット予測 \Delta p と特徴重み \Delta m を追加します:
\begin{equation}\mathbf{y}(\mathbf{p})=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}\right) \cdot \Delta \mathbf{m}_{n}\end{equation}
ここで \Delta p は通常小数であるため、実際の実装では非線形補間が使用されます。
D2-Net
D2-Net の核心的なアイデアは、descriptor と detector を一体化し、describe-and-detect というアプローチを取ることです。特徴マップを学習し、local descriptors を取得する方法は L2-Norm を使用し、detector を取得する方法は y 上で以下の計算を行います:
local score の計算:
\begin{equation}\alpha_{i j}^{c}=\frac{\exp \left(\mathbf{y}_{i j}^{c}\right)}{\sum_{\left(i^{\prime}, j^{\prime}\right) \in \mathcal{N}(i, j)} \exp \mathbf{y}_{i^{\prime} j^{\prime}}^{c}}\end{equation}
ここで \mathcal{N}(i, j) は近傍ピクセルの範囲を表し、例えば 3 \times 3 の畳み込みでは、3 近傍で合計 9 ピクセルとなります。
channel-wise-score の計算:
\begin{equation}\beta_{i j}^{c}=\mathbf{y}_{i j}^{c} / \max _{t} \mathbf{y}_{i j}^{t}\end{equation}
最終的な detector score はこれらの最大値を取って得られます:
これに基づいて、本論文では後続の改良を提案しています。
1.2 幾何制約付き DCN
DCN に関して、著者は元のバージョンでは自由度が高すぎ、任意の変形を予測する可能性があると考えています。しかし、視覚的な位置決めのタスクにおいて、変形は全体的であり、自由度は限られています。通常は 1) 相似変換、2) アフィン変換、3) ホモグラフィーです:
したがって、従来の DCN は重要でないパラメータを学習し、幾何制約を満たすことができませんでした。これに対して、著者は幾何制約を使用して改良を行いました。
アフィン制約付き DCN
通常、回転とスケーリングを含むアフィン変換は以下のように表されます:
\begin{equation}\mathbf{S}=\lambda R(\theta)=\lambda\left(\begin{array}{cc}\cos (\theta) & \sin (\theta) \\-\sin (\theta) & \cos (\theta)\end{array}\right)\end{equation}
いくつかの論文、例えば AffNet では、さらに曲率係数が導入されています。したがって、本論文ではこれを模倣してアフィン変換を以下のように定義します:
ホモグラフィー制約付き DCN
ホモグラフィーは通常、4つの点対で解くことができます。本論文では、《Unsupervised deep homography》の方法を模倣して、微分可能な線形ソルバーを使用して H 行列を求めます。通常、線形方程式は以下のように定義されます:\mathbf{M h}=\mathbf{0}、\mathbf{M} \in \mathbb{R}^{8 \times 9}。ここで \mathbf{h} は \mathbf{H} 行列の9つのパラメータを表す9次元ベクトルであり、\mathbf{H}_{33}=1、\mathbf{H}_{31}=\mathbf{H}_{32}=- の3つの制約条件を満たす必要があります。したがって、実際には6つのパラメータです。線形方程式を再定義します:\hat{\mathbf{M}}_{(i)} \hat{\mathbf{h}}=\hat{\mathbf{b}}_{(i)}、ここで \hat{\mathbf{M}}_{(i)} \in \mathbb{R}^{2 \times 6} であり、各対応点対 (u_i, v_i) と (u_i', v_i') に対して次のようになります:
\begin{equation}\hat{\mathbf{M}}_{(i)}=\left[\begin{array}{cccccc}0 & 0 & -u_{i} & -v_{i} & v_{i}^{\prime} u_{i} & v_{i}^{\prime} v_{i} \\u_{i} & v_{i} & 0 & 0 & -u_{i}^{\prime} u_{i} & -u_{i}^{\prime} v_{i}\end{array}\right]\end{equation}および:
\begin{equation}\hat{\mathbf{b}}_{(i)}=\left[-v_{i}^{\prime}, u_{i}^{\prime}\right]^{T} \in \mathbb{R}^{2 \times 1}\end{equation}最終的に線形方程式は次のように構築されます:
\begin{equation}\hat{\mathbf{M}} \hat{\mathbf{h}}=\hat{\mathbf{b}}\end{equation}微分可能な線形ソルバー(tf.matrix solve)を使用して \mathbf{h} を解くことができます。
実際には、{(−1, −1),(1, −1),(1, 1),(−1, 1)} の4つのオフセットを \mathbf{H} に掛けて新しいオフセットを得ます。
上記のすべての幾何変換を定義することで、最終的に幾何制約を加えたオフセットは次の式で得られます:
\begin{equation}\triangle \mathbf{p}_{n}=\mathbf{T} \mathbf{p}_{n}-\mathbf{p}_{n}, \text { where } \mathbf{p}_{n} \in \mathcal{R}\end{equation}1.3 選択的かつ正確なキーポイント検出
キーポイントのピーク測定
D2-Net では、detector のスコアは spatial と channel-wise の応答を組み合わせて得られます。channel-wise-score の計算では ratio-to-max を使用しますが、これにより channel 上の実際の分布との関連が弱くなる可能性があります(?)。これに基づいて、著者は2つのスコアに以下の改良を加えました(主にピークを detector のスコア基準として使用することを目的としています):
\begin{equation}\beta_{i j}^{c}=\operatorname{softplus}\left(\mathbf{y}_{i j}^{c}-\frac{1}{C} \sum_{t} \mathbf{y}_{i j}^{t}\right)\end{equation}それに応じて:
\begin{equation}\alpha_{i j}^{c}=\operatorname{softplus}\left(\mathbf{y}_{i j}^{c}-\frac{1}{|\mathcal{N}(i, j)|} \sum_{\left(i^{\prime}, j^{\prime}\right) \in \mathcal{N}(i, j)} \mathbf{y}_{i^{\prime} j^{\prime}}^{c}\right)\end{equation}ここで softplus 活性化関数は以下の通りです:
\begin{equation}f(x)=\ln \left(1+e^{x}\right)\end{equation}マルチレベルキーポイント検出 (MulDet)
D2-Net のキーポイントの位置精度が十分でない理由は、低解像度の特徴マップから検出が行われるためです。空間解像度を回復する方法はいくつかあります(下図参照)。例えば、追加の特徴デコーダーを学習したり、膨張畳み込みを採用したりする方法がありますが、これらの方法は学習パラメータの数を増やすか、GPU メモリや計算能力を大幅に消費します。
著者は、追加の学習重みを必要としないシンプルで効果的な解決策を提案しました。これは、畳み込みネットワークの固有のピラミッド特徴層次を利用し、複数の特徴層次を組み合わせて検出する、階層的なスケール融合法です。
\begin{equation}\hat{\mathbf{s}}=\frac{1}{\sum_{l} w_{l}} \sum_{l} w_{l} \mathbf{s}^{(l)}\end{equation}最終的なスコアの計算は、各層の同じ位置のスコアを加重平均して行います。
1.4 学習フレームワーク
ネットワークアーキテクチャ
最終的なネットワーク設計は以下の図の通りです:
VGG の設計と同様に、各スケールで2つの conv を使用し、最終層では3層の deformable conv(conv6、conv7、conv8)を使用しています。MulDet 部分では conv1、conv3、conv8 の3層の特徴を使用します。
式14の w_{i}=1,2,3、式3の \mathcal{N}(i, j)=3,2,1。
損失設計
\mathcal{C} を画像ペア (I, I^{\prime}) の特徴点対応ペアとします。D2-Net と同様に、Loss は以下のように定義されます:
\begin{equation}\mathcal{L}\left(I, I^{\prime}\right)=\frac{1}{|\mathcal{C}|} \sum_{c \in \mathcal{C}} \frac{\hat{s}_{c} \hat{s}_{c}^{\prime}}{\sum_{q \in \mathcal{C}} \hat{s}_{q} \hat{s}_{q}^{\prime}} \mathcal{M}\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)\end{equation}ここで \hat{S}_{k} と \hat{S}_{k}^{\prime} は (I と I^{\prime}) に対応する detector score を表し、\mathbf{f}_{k} と \mathbf{f}_{k}^{\prime} は descriptors を表します。\mathcal{M}(\cdot, \cdot) は ranking loss を表し、この部分は D2-Net の hardest-triplet loss に代わるものです。ここでの \mathcal{M} は以下のように定義されます:
\begin{equation}\begin{array}{l}\mathcal{M}\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)=\left[D\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)-m_{p}\right]_{+}+ \\\quad\left[m_{n}-\min \left(\min _{k \neq c} D\left(\mathbf{f}_{c}, \mathbf{f}_{k}^{\prime}\right), \min _{k \neq c} D\left(\mathbf{f}_{k}, \mathbf{f}_{c}^{\prime}\right)\right)\right]_{+}\end{array}\end{equation}ここで D(\cdot, \cdot) はユークリッド距離を表します。m_p と m_n はそれぞれ 0.2 と 1.0 です。
2 実験
2.1 画像マッチング
実験結果は以下の通りです:
2.2 他の手法との比較
実験結果は以下の通りです:
2.3 3D 再構成
実験結果は以下の通りです:
2.4 視覚的ローカライゼーション
実験結果は以下の通りです:
論文 & ソースコード
論文
https://arxiv.org/abs/2003.10071
ソースコード
https://github.com/lzx551402/ASLFeat
参考資料
[1] https://blog.csdn.net/phy12321/article/details/106040545
[2] https://www.jianshu.com/p/c184c2efbecc