【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
公開URL:https://arxiv.org/pdf/2404.19174
出典:Guilherme Potje, Felipe Cadar, Andre Araujo, Renato Martins, Erickson R. ascimento: XFeat: Accelerated Features for Lightweight Image Matching, Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023)
概要:リソース効率に優れた特徴点マッチングのための軽量なアーキテクチャ「XFeat(Accelerated Features)」を提案します。手法は、局所的な特徴点の検出、抽出、マッチングのための畳み込みニューラルネットワークの基本的な設計を再検討します。特に、リソースが限られたデバイス向けに迅速かつ堅牢なアルゴリズムが必要とされるため、解像度を可能な限り高く保ちながら、ネットワークのチャネル数を制限します。さらに、スパース下でのマッチングを選択できる設計となっており、ナビゲーションやARなどのアプリケーションに適しています。XFeatは、高速かつ同等以上の精度を実現し、一般的なラップトップのCPU上でリアルタイムで動作します。
セル生産方式におけるロボットの活用には様々な問題があるが,その一つとして 3 体以上の物体の組み立てが挙げられる.一般に,複数物体を同時に組み立てる際は,対象の部品をそれぞれロボットアームまたは治具でそれぞれ独立に保持することで組み立てを遂行すると考えられる.ただし,この方法ではロボットアームや治具を部品数と同じ数だけ必要とし,部品数が多いほどコスト面や設置スペースの関係で無駄が多くなる.この課題に対して音𣷓らは組み立て対象物に働く接触力等の解析により,治具等で固定されていない対象物が組み立て作業中に運動しにくい状態となる条件を求めた.すなわち,環境中の非把持対象物のロバスト性を考慮して,組み立て作業条件を検討している.本研究ではこの方策に基づいて,複数物体の組み立て作業を単腕マニピュレータで実行することを目的とする.このとき,対象物のロバスト性を考慮することで,仮組状態の複数物体を同時に扱う手法を提案する.作業対象としてパイプジョイントの組み立てを挙げ,簡易な道具を用いることで単腕マニピュレータで複数物体を同時に把持できることを示す.さらに,作業成功率の向上のために RGB-D カメラを用いた物体の位置検出に基づくロボット制御及び動作計画を実装する.
This paper discusses assembly operations using a single manipulator and a parallel gripper to simultaneously
grasp multiple objects and hold the group of temporarily assembled objects. Multiple robots and jigs generally operate
assembly tasks by constraining the target objects mechanically or geometrically to prevent them from moving. It is
necessary to analyze the physical interaction between the objects for such constraints to achieve the tasks with a single
gripper. In this paper, we focus on assembling pipe joints as an example and discuss constraining the motion of the
objects. Our demonstration shows that a simple tool can facilitate holding multiple objects with a single gripper.
9. 最小全域木
• 入力
重み付きグラフ G = (V, E), w : E → R
• 問題:
重み和が最小の全域木を求めよ
3
1
1 2 3
2
2
9/ 71
10. 最小全域木
• 入力
重み付きグラフ G = (V, E), w : E → R
• 問題:
重み和が最小の全域木を求めよ
3
1
1 2 3
2
2
10/ 71
11. 最小全域木
• 入力:
重み付きグラフ G = (V, E), w : E → R
• 問題:
重み和が最小の全域木を求めよ
• 解答:貪欲法(Kruskal)
1. 枝の軽い順に採用していく
2. ただし,閉路ができる場合は無視
Q. なぜ貪欲で解けるか? (→ どこまで拡張できるか?)
11/ 71
12. 最適化問題を考える際の基本
{∑
e∈X w(e) 閉路なし
f (X) :=
+∞ 閉路あり
• 全部の X を調べると O(2m ) 時間
• もし f が 良い不等式 を満たすなら
全部調べなくても,一部だけ調べれば十分!
• 一番扱いやすい不等式:凸不等式(2つの解 ≥ 間の解)
Y f (X) + f (Y )
X
≥ 2f ((X + Y )/2)
12/ 71
13. 最小全域木問題の凸不等式
{∑
e∈X w(e) 閉路なし
f (X) :=
+∞ 閉路あり
任意の e ∈ X Y に対し,e′ ∈ Y X がとれて
f (X) + f (Y ) ≥ f (X − e + e′ ) + f (Y + e − e′ )
-
Y Y ?
X-
e′ 6
X
e
13/ 71
14. 凸不等式が成り立つこと(左辺有限 ⇒ 右辺有限)
f (X) + f (Y ) ≥ f (X − e + e′ ) + f (Y + e − e′ )
e
≥
e′
(よくある教科書の証明は,中でこれを示している)
14/ 71
15. 凸不等式を使った証明
T ∗ 最適解,T 貪欲解について凸不等式を書く
f (T ) + f (T ∗ ) ≥ f (T − e + e′ ) + f (T ∗ + e − e′ )
∴ f (T ) ≥ f (T − e + e′ ) ∴ w(e) ≥ w(e′ )
- で成立:貪欲で e を追加したところに矛盾
- = で成立:T ∗ + e − e′ を T ∗ として繰り返す
→ 最終的に T = T ∗ になって証明完了
☆この証明が動くことが凸のうれしさ
☆一般に,この凸不等式を満たす関数は
貪欲で最小化可能( → 離散凸 )
15/ 71
29. 第 k 最小全域木
• 入力:
重み付きグラフ G = (V, E), w : E → R
正整数 k
• 問題:
重み和が k 番目に小さな全域木を出力
(注意:k = 1 のとき最小全域木)
ヒント 1:1 番目,2 番目,…と順番に求める
ヒント 2:同じ計算が多いので前処理する
29/ 71
31. 第 k 最小全域木:優先度付き探索
Q ← (∅, MST)
while Q ̸= ∅
(banList, spanningTree) ← Q
print (spanningTree)
for each e in spanningTree:
newList ← banList ∪ {e}
newTree ← MST(newList)
Q ← (newList, newTree)
計算量:だいたい O(kmnα(n) + m log n)
同じ計算を何度もしているので,効率化できそう
31/ 71
32. 前処理 1:絶対使う枝は縮約する
T :全域木,枝 e ∈ T の 交換可能枝C(e):
C(e) = {e′ ̸∈ T : T − e + e′ は全域木 }
⇐⇒ e′ の両端をつなぐ T 上の経路に e がある
全域木 T で枝 e を禁止するときの不可避なロス
mine′ ∈C(e) w(e) − w(e′ )
∴ 最小全域木中のロスが小さな k 本以外の枝は絶対使う
→ 先に縮約して k 頂点のグラフにしておく
32/ 71
33. 前処理 2:絶対使わない枝は捨てる
T :全域木,枝 e′ ̸∈ T の 交換可能枝C(e′ ):
C(e′ ) = {e ∈ T : T − e + e′ は全域木 }
⇐⇒ e′ の両端をつなぐ T 上の経路の枝
全域木 T で枝 e′ と交換するときの不可避なロス
mine∈C(e′ ) w(e) − w(e′ )
∴ 最小全域木外のロスが小さな k 本以外の枝は使わない
→ 先に捨てて 2k − 1 枝グラフにしておく
33/ 71
37. 最小直径全域木
• 入力
重み付きグラフ G = (V, E), w : E → R+
• 問題:
全域木 T で,直径が最小のもの
(木の直径:二点対間距離の最大値)
ヒント:
「グラフのどまんなか」を探す
⇒ 「どまんなか」からの最短路木 = 最小直径全域木
SPOJ PT07C: The GbAaY Kingdom
SPOJ MDST: Minimum Diameter Spanning Tree
37/ 71
38. グラフの絶対中心
グラフ G の絶対中心:maxv∈V d(c, v) が最小の点
絶対中心は頂点ではない可能性がある
6
c
絶対中心からの最短路木 = 最小直径全域木
⇒ どの枝の内側に絶対中心があるかを全部試す
38/ 71
39. 枝の内点からの距離
枝 (u, v) の内点 c から w への距離:d(c, u) = t として
gw (t) = min{t + d(u, w), d(u, v) − t + d(v, w)}
c からの最遠頂点までの距離
g(t) = max gw (t)
w∈V
g(t) の最小値 = (u, v) 間に中心があるとしたときの半径
∴ すべての枝について,g(t) の最小値を計算すればいい!
w
u t v
6
c
39/ 71
44. 問題:逆最小全域木
• 入力:
重み付きグラフ G = (V, E), w : E → R
全域木 T
• 問題:
T が最小全域木になるような最小重み修正:
- T は重み w + p のときの最小全域木,
∑
- e |p(e)| 最小化
ヒント 1:T が MST であるための必要十分条件
ヒント 2:最低限必要な修正量を計算
44/ 71
45. 最小全域木の必要十分条件(最適性基準)
{∑
e∈X w(e) 閉路なし
f (X) :=
+∞ 閉路あり
全域木 T が MST ⇐⇒ 任意の e ∈ T, e′ ̸∈ T について
f (T − e + e′ ) ≥ f (T )
=⇒ w(e)≤ w(e′ ) (e, e′ : 交換可能)
(どの交換可能枝を交換しても得しない)
- 得したら最小でないのは当然
⇒ 得する分だけは 最低限修正が必要
45/ 71
46. 最低限必要な修正量
最低限必要な修正量は2部グラフマッチングでわかる
2部グラフ B = ({T, E T }, A):
e, e′ 間に辺がある
⇐⇒ e, e′ は交換可能
(重み = 交換したときの得)
T ET マッチング = その対を同時に交換
最大重みマッチングの分だけは,絶対修正が必要
(負の辺 = 交換して損する辺は除いておく)
46/ 71
47. 逆全域木問題の最大最小定理
min 重み変更量 = max マッチング
≥ は簡単(前ページ)
≤ は難しい;当面そういうものと覚えてもよい
e, e′ 間に辺がある
⇐⇒ e, e′ は交換可能
(重み = 交換したときの得)
T ET マッチング = その対を同時に交換
47/ 71
48. 最大最小定理証明のアウトライン
(1) w + p に関する最適性基準を書き下す
∑
min e |p(e)| s.t. w + p の最適性基準
(2) T の枝は軽く・E T の枝は重くするはず,と考えて
絶対値を外しつつ,変数変換して形を整える
∑
min e q(e) s.t. q に関する条件
(3) 線形計画の双対定理を使って式をじっと眺める
→ マッチングの LP 表現になっている
最小費用流主双対アルゴリズムを使って得られる
ポテンシャルの性質を観察することでも証明可能
48/ 71
51. 最小全域木 ×2
• 入力
重み付きグラフ G = (V, E), w : E → R
• 問題
辺を共有しない(辺素な)全域木を2つ取り
重み和が最小になるようにせよ
ヒント 1:目的関数が凸になるように作る → 貪欲
ヒント 2:貪欲の 1 ステップごとに探索が発生
51/ 71
52. うまくいかない関数定義
{
w(X) + w(Y ) 閉路なし・辺共有しない
g(X, Y ) =
+∞ それ以外
「辺共有しない」という条件のせいで凸にならない
(貪欲するときに X と Y のどちらに足すべきかが不明)
※ダメ解法:Kruskal で UnionFind×2 = この関数で貪欲
52/ 71
53. 凸になる関数の定義
{
w(X) 閉路なし(森)
f (X) =
+∞ 閉路あり
{
w(X) X をうまく配分すると森 × 2
g(X) =
+∞ それ以外
g(X) + g(Y ) ≥ g(X − e + e′ ) + g(Y + e − e′ )
※ f と g の関係:畳み込み
g(X) = min {f (T ) + f (X T )} = f ∗ f
T ⊆X
53/ 71
54. 凸なので貪欲で解ける(Kruskal と同じ)
{
w(X) X をうまく配分すると森 × 2
g(X) =
+∞ それ以外
for e ∈ E: 軽い順
if X ∪ {e}: 森 ×2
X = X ∪ {e}
必要なサブルーチン
X が森 ×2 に配分できるとき,
X ∪ {e} が森 ×2 に配分できるかの判定
54/ 71
55. X :森 ×2 に e を追加できるか
• X = {F1 , F2 }:森 ×2 の形を常に保持
• e を追加できるかどうか:交換手順を探索
(1) e が F1 に追加できれば終了
(2) できなかったら e の交換可能枝を列挙
それぞれについて F2 に追加を試みる 二部マッチング
(3) F1 , F2 交互に繰り返す 増加道探索と類似
• 最短手数の交換だけ探す:幅優先探索
(a) 同じ枝は何度もチェックしない
→ 探索中に 木を動的変更しなくてよい
交換枝の列挙:動的木を使えば全体で O(n2 )
☆ 列挙の順番を工夫すると動的木なしで O(n)
55/ 71
56. {F1 , F2 } に枝 (u, v) を追加できるかの判定
前処理:(1) F1 , F2 を u が根になるように向き付ける
(2) 木の u 以外の頂点を白く塗り,u を黒く塗る
(黒:w より根に近い枝は全部探索済み,の意味)
L1 := [(u, v)] 根に近い側からテスト
for i = 1, 2, 1, 2, . . .: → 同じ枝を二回見ない
if Li = ∅: return false
Li+1 = ∅
for (x, y) ∈ Li :
if (x, y) が Fi に追加可能: return true
if x は白: swap(x,y) /* 一方は絶対黒 */
while y は白:
Li+1 .push front((y, p[y]))
y を黒く塗る,y ← p[y]
56/ 71
64. 参考文献:最小全域木
• T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein (2009):
Introduction to Algorithms. 3rd eds., MIT Press.
• R. L. Graham and P. Hell (1985): On the history of the minimum
spanning tree problem. Annals of the History of Computing, vol.7,
pp.43-57.
• K. Murota (2003): Discrete Convex Analysis. SIAM Monographs
on Discrete Mathematics and Applications, vol.10, SIAM,
Philadelphia.
• J. Oxley (2003): What is a matroid? Cubo, vol.5, pp.179-218.
• A. Schrijver (2003): Combinatorial Optimization. Springer.
• 秋葉拓哉, 岩田陽一, 北川宜稔 (2012): プログラミングコンテストチャ
レンジブック. 2nd eds, マイナビ.
64/ 71
65. 参考文献:最小比全域木
• R. Chandrasekaran (1977): Minimum ratio spanning trees.
Networks, vol.7, pp.335-342.
• W. Dinkelbach (1967): On nonlinear fractional programming.
Management Science, vol.13, pp.492-498.
• T. Radzik (1992): Newton’s Method for Fractional Combinatorial
Optimization. Proceedings of 33rd Annual Symposium of
Foundation of Computer Science, pp. 659-669.
65/ 71
66. 参考文献:第 k 最小全域木
• D. Eppstein (1990): Finding the k-smallest spanning trees. 2nd
Scandinavian Workshop on Algorithm Theory, Bergen, Norway,
Lecture Notes in Computer Science, vol.447, pp.38-47.
• R. E. Tarjan (1979): Applications of path compression on balanced
trees. Journal of ACM, vol.26, pp.690-715.
• 秋葉拓哉 (2011): 完全制覇・ツリー上でのクエリ処理技法.
Competitive Programming Advent Calendar 2011-12-05,
http://topcoder.g.hatena.ne.jp/iwiwi/20111205/1323099376
66/ 71
67. 参考文献:最小直径全域木
• R. A. Cunninghame-Green (1975): The absolute center of a graph,
Discrete Applied Mathematics,. vol.7, pp.275-283.
• R. Hassin and A. Tamir (1995): On the minimum diameter
spanning tree problem, Information Processing Letters, vol.53,
pp.109-111.
• J. Halpern (1979): A simple elimination criterion in a search for the
center of a graph, Management Science, vol.7, pp.287-293.
• O. Kariv and S. L. Hakimi (1979): An algorithmic approach to
network location problem I: the p centers, SIAM Journal on Applied
Mathematics, vol.37, no.513-518.
67/ 71
68. 参考文献:逆最小全域木
• R. Ahuja and J. Orlin (2001): Inverse optimization, Operations
Research, vol. 49 pp.771-783.
• M. Cai and Y. Li (1997): Inverse matroid intersection problem ZOR
Mathematical Methods of Operations Research, vol.45 pp.235-243.
• C. Heuberger (2004): Inverse combinatorial optimization: A survey
on problems, methods, and results. Journal of Combinatorial
Optimization, vol.8, pp.329-361.
• P. T. Sokkalingam, R. K. Ahuja, and J. B. Orlin (1996): Solving
inverse spanning tree problems though network flow techniques.
Operations Research, vol.47, no.2.
68/ 71
69. 参考文献:最小全域木 ×2
• J. Edmonds (1970): Submodular functions, matroids, and certain
polyhedra. Proceedings of the Calgary Conerence on Conbinatorial
Combinatorial Structures and Their Ppplications, pp.69-87.
• A. Frank (1981): A weighted matroid intersection algorithm.
Journal of Algorithms, vol.2, no.4, pp.328-336.
• H. N. Gabow and R. E. Tarjan, Robert (1984), Efficient algorithms
for a family of matroid intersection problems. Journal of
Algorithms, vol.5, no.1, pp.80-131.
• J. Roskind and R. E. Tarjan (1985): A note on finding
minimum-cost edge-disjoint spanning trees. Mathematics of
Operations Research, vol.10, pp.701-708.
69/ 71
70. 参考文献:演習問題 / 発展課題
• N. Katoh (1990): An ϵ-approximation scheme for minimum
variance problems. Journal of the Operations Research Society of
Japan, vol.33, no.1 46-65.
• M. R. Garey and D. S. Johnson (1979): Computers and
Intracctability: A Guide to the Theory of NP-Completeness. W. H.
Freeman, New York.
• H. Fernau, J. Kneis, D. Kratsch, A. Langer (2011), M. Liedloff, D.
Raible, and P. Rossmanith: An exact algorithm for the maximum
leaf spanning tree problem. Journal Theoretical Computer Science,
vol.412, no.45, pp.6290-6302.
• A. Bernath and Z. Kiraly (2011): On the tractability of some
natural packing, covering and partitioning problems. Technical
Report.
70/ 71
71. • A. M. Frieze (1985): On the value of a random minimum spanning
tree problem. Discrete Applied Mathematics, vol.10, pp.47-56.
• A. Frieze, M. Ruszink, and L. Thoma (2000): A note on random
minimum length spanning trees, The Electronic Journal of
Combinatorics, vol.7, R41.
• A. Lehman (1964): A solution to Shannon’s switching game.
Journal of the Society for Industrial and Applied Mathematics,
vol.12, pp.687-725.
71/ 71