【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.
24. 2014/05/10 CLR/H in TOKYO #2 VB Festival
要件のデータ化
• 売り上げの履歴や在庫の変動など
「形に無いもの」もデータ化する
• どこまでをデータとして保持するか
どのような単位で保持するかは要件次第
– 全ての状態を保持するのと
最新の状態を保持するのとでは
必要な形が異なる
25. 2014/05/10 CLR/H in TOKYO #2 VB Festival
データの意味
• レコードとして存在する意味を定義
• レコードが集まるテーブルの意味を定義
– 定義できる=レコードが存在するケース
• それぞれの意味を定義することで
処理の結果どうあるべきかの姿も決まる
26. 2014/05/10 CLR/H in TOKYO #2 VB Festival
売上データ 売上が発生した
売掛データ
売上が発生したから
売掛も発生した
粗利データ
売上が発生したから
粗利も発生した
データ間のつながり
27. 2014/05/10 CLR/H in TOKYO #2 VB Festival
カラムの意味
• レコードのカラムの定義
• 重複する値は原則持たない
• レコードの値から算出できるならば
結果を保持する必要は「薄い」
– アプリ要件として保持するケースはある
– SQL Server は計算列で自動計算も可能
28. 2014/05/10 CLR/H in TOKYO #2 VB Festival
削除フラグ
• 業務系DBではよくある削除フラグ
• 手法自体は問題ない
– ただしインデックスに含ませるのは必須
• 削除したデータを保持する場合には
もっとも手軽な方法
29. 2014/05/10 CLR/H in TOKYO #2 VB Festival
適用日時の持ち方
• データの種類によっては
「いつから適用されるか」
「いつまで適用されるか」
という日時範囲が必要になる
– 消費税率とかが代表
– 毎回抽出時に日付の範囲指定を記載するのは
面倒なのでテーブル値関数化しておくと楽
(SQL Server)
30. 2014/05/10 CLR/H in TOKYO #2 VB Festival
SQL
• データベースの情報を操作する言語
– SELECT(抽出)
– INSERT(追加)
– UPDATE(更新)
– DELETE(削除)
31. 2014/05/10 CLR/H in TOKYO #2 VB Festival
SELECT
• 情報を取得するための命令
– SELECT 抽出するカラム、計算
FROM 抽出対象の情報(テーブルなど)
WHERE 抽出したものに対しての条件
• DISTINCT 指定で結果から重複を除去
32. 2014/05/10 CLR/H in TOKYO #2 VB Festival
グルーピング集計
• GROUP BY で抽出結果のグルーピング集計
• 集計結果から一部を除外する場合は
WHERE ではなく HAVING で指定
• GROUP BY で指定するのはカラムだけ
ではなく計算結果も指定する事が多い
33. 2014/05/10 CLR/H in TOKYO #2 VB Festival
CASE
• 抽出項目に対する条件判断
– CASE {条件} WHEN {分岐A} THEN {値A}
WHEN {分岐B} THEN {値B}
ELSE {値C} END
• 複数の CASE 文をネストさせて
利用も可能
34. 2014/05/10 CLR/H in TOKYO #2 VB Festival
結合
• ある情報の塊と別の情報の塊を
結合して抽出を行う
– INNER JOIN:内部結合
– LEFT OUTER JOIN:左外部結合
• RIGHT OUTER JOIN:右外部結合
– CROSS JOIN:クロス結合
• WHERE 条件で結合条件を記載できるが
JOIN 句で記載するのが現在の標準
35. 2014/05/10 CLR/H in TOKYO #2 VB Festival
内部結合
A BC
Aの塊とBの塊で共通
している部分を抽出
TBL_A INNER JOIN TBL_B
36. 2014/05/10 CLR/H in TOKYO #2 VB Festival
外部結合
A BC
Aの塊、およびAの塊
とBの塊で共通してい
る部分を抽出
TBL_A LEFT OUTER JOIN TBL_B
37. 2014/05/10 CLR/H in TOKYO #2 VB Festival
クロス結合
A BC
Aの塊とBの塊、全て
の組み合わせを抽出
TBL_A CROSS JOIN TBL_B
38. 2014/05/10 CLR/H in TOKYO #2 VB Festival
EXISTS
• ある項目が、ある抽出結果に含まれてい
るかどうかを判断
• WHERE節で
(ある項目) EXISTS (抽出結果)
として記述
39. 2014/05/10 CLR/H in TOKYO #2 VB Festival
サブクエリ・インラインビュー
• クエリ結果を WHERE 条件や
SELECT 項目に組み込む方法
• SELECT の項目として組み込む場合は
単純に JOIN しては多重度の絡みで
難しいケースに適している
40. 2014/05/10 CLR/H in TOKYO #2 VB Festival
INSERT
• データの追加を行う
• 対象カラムを指定した記述と
対象カラムを未指定な記述がある
– 未指定の場合はテーブルのカラム全てに対し
て値を指定する必要がある
• SELECT した結果を INSERT もできる
41. 2014/05/10 CLR/H in TOKYO #2 VB Festival
UPDATE
• データの変更を行う
• 内部的には DELETE → INSERT を
行っている DB が多い
• SELECT 結果に対して UPDATE もできる
42. 2014/05/10 CLR/H in TOKYO #2 VB Festival
DELETE
• データの削除を行う
• SELECT 結果に対して DELETE もできる
43. 2014/05/10 CLR/H in TOKYO #2 VB Festival
まとめ
• データ構造を理解する事と
システムの仕様を理解することは同じ
• プログラムを作成する際にも
データ構造は必要な知識
• データの意味を理解すると
処理結果としてどうあるべきかが見え
仕様上の問題も発見しやすくなる