三次元物体認識を用いた オクルージョンのある物体の認識 白井研究室 T215036 小板 峻一朗
研究背景 近年、少子高齢化による労働力不足で物流現場の自動 化や機械化が進んでいる。 それに伴って、物体認識の研究が進められている。 引用元:「JFAS 事例紹介 ロボットピッキング」http://www.jfas.co.jp/solution/index67.html
研究の目的 認識対象が他のある物体によって隠れて見えない状態 (オクルージョン)での認識対象を認識するシステムの作 成。
3次元物体認識 認識に画像そのものを用いるのではなく、3次元センサなどから距離 データ(ポイントクラウド)を取得し、 3D CADモデルと入力シーンを照 合することで物体認識を行う手法を使用した。 3D CADモデルと入力シーンにキーポイントを設定し、3次元特徴量 (位置+特徴量)を付加してマッチングを行う。
研究内容 3次元特徴量のプログラムの作成。 認識対象の3次元特徴量を算出。 入力シーンからポイントクラウドデータを取得し、3次元特徴量を算出。 2、3を基にマッチング 他の特徴量を用いて、2〜4を行い、評価する。
開発環境 OS Ubuntu 16.04 デバイス Kinect XBOX360 3次元点群処理ソフト Open3D Point Cloud Library(PCL) プログラム言語 Python3.6 C++
3次元点群処理ソフト Open3D Point Cloud Library(PCL) pythonで使用可能でJupyter notebookでのデバックが可能なため プロトタイピングに便利であることから、自作の特徴量の作成に使用。 Point Cloud Library(PCL) 言語はC++で一般的な、3次元点群処理に加え、3次元物体認識に 必要な3次元特徴量の計算を行うライブラリが存在するため、自作の 特徴量との比較に使用。
ポイントクラウドデータ(点群) Kinectから取得したRGB-Dデータからポイントクラウドデータを生成。 ポイントクラウドデータとはコンピューターで扱う点の集合のこと であり、多くの場合、空間は3次元で直交座標(x,y,z)で表現されるこ とが多い。
キーポイントの設定 Kinectなどのセンサから得られたポイントクラウドデータは非常に多く の点群が含まれているため、ボクセル化によるダウンサンプリングによっ て点群を減らし、残った点をキーポイントとした。 ボクセル化とは、クラウドを望んだ解像度で複数の立方体形状の領域に分 割し、各ボクセル内の点を1つを除いて処理することである。
3次元特徴量 3次元特徴量は、選択したキーポイントの周りの情報を記述す ることで得られる。 本研究では、複数存在する3次元特徴量の中から多くの特徴量 の基礎となっており、代表的なSHOTを参考として自作の特徴量 を作成した。 その後、既存のSHOTとPFHの特徴量計算ライブラリを使用した マッチング法と比較した。
SHOT ポイントクラウド上の点の中からキーポイントを設定する。 キーポイントの法線方向をz軸とし、z軸を基にx軸とy軸を設定し、LRFと呼ばれる座標系を設定する。 キーポイント周りをLRFを用いて、xy平面で2分割、球内の中心部と周辺部で2分割、z軸周りで8分割(2×2×8=32分割)する。 基準点の法線rと、3で分割した32個の各スペースの法線ベクトル 𝑛 𝑖 との内積を計算し、mビンのヒストグラムを作成。 「物体認識のための3次元特徴量の基礎と動向-橋下研究室」より引用 http://isl.sist.chukyo-u.ac.jp/Archives/ViEW2014SpecialTalk-Hashimoto.pdf
PFH キーポイントの全ての近傍点とペアを作る。(このとき、近傍点同士もぺアにす る。) ペアそれぞれに対して法線から固定座標フレームを計算し、このフレームに より法線の差異を3つの角度変数と点間の距離を計算し、ヒストグラム化する。 「PCL/OpenNI tutorial 4: 3D object recognition (descriptors)」より引用 http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_4:_3D_object_recognition_(descriptors))
自作の特徴量とマッチング方法 特徴量の記述の際に、計算コストを下げるために法線ではなく、 各領域内のデータ数を特徴量とした。 マッチングには高速最近傍点探索ライブラリ(FLANN)を使用した。 一度目のマッチングの際に距離が最小となるマッチング点を選 び出し、その後のそのマッチング点の半径r内の近傍点を探索し、 その近傍点の特徴量だけで再度マッチングを行った。
使用したモデルと入力シーン 認識対象(モデル) 入力シーン
研究結果(作成した特徴量) 認識対象(モデル) 認識結果(マッチング点を緑色で表示)
研究結果(PCL:SHOT)
研究結果(PCL:PFH)
考察・評価 認識速度は、PCL内のSHOT特徴量に比べて約3倍かかったのに対し て、マッチング対応点はあまり変化が無かった。 自作の特徴量 SHOT PFH 認識速度 1分5秒 22秒 14秒 マッチング対応点数 19点 21点 9点 認識速度は、PCL内のSHOT特徴量に比べて約3倍かかったのに対し て、マッチング対応点はあまり変化が無かった。 Kinectから取得したポイントクラウドデータ精度の原因で、誤マッ チングを起こし、マッチング点も少なかった。
展望 オクルージョンのある物体の認識が可能となったため、認識対 象が互いに重なり合い、不規則に置かれた状態(バラ積み)での物 体の認識も可能。 キーポイントをダウンサンプリングによって設定したが、エッ やコーナーなど特徴的な点群のみをキーポイントに設定すること で高速化し、マッチング精度の向上が望める。
参考文献 [1]「三次元物体認識を応用したバラ積みピッキングシステム」 https://www.ihi.co.jp/var/ezwebin_site/storage/original/application/4a2a6b334c4ee44309400fcde6da e7c3.pdf [2]「物体認識のための3次元特徴量の基礎と動向」 http://isl.sist.chukyo-u.ac.jp/Archives/ViEW2014SpecialTalk-Hashimoto.pdf [3]「特徴的3-Dベクトルペアマッチングによるバラ積み部品の高速認識」 https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0ahUKEwjajIKd1MjYAh UFOrwKHVRfATEQFghDMAc&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2F%3Faction%3Drepositor y_action_common_download%26item_id%3D82576%26item_no%3D1%26attribute_id%3D1%26file_n o%3D1&usg=AOvVaw1pgBufBJfm5AQ_Rrsy2MJ [4]「 PCL/OpenNI tutorial 4: 3D object recognition (descriptors)」 http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_4:_3D_object_recognition_(descriptors)
モデルと入力シーン(サンプルデータ) 認識対象(モデル) 入力シーン
認識結果(作成した特徴量) 認識対象(モデル) 認識結果(マッチング点を緑色で表示)
認識結果(サンプルデータ) SHOT特徴量 PFH特徴量
考察・評価(サンプルデータ) 認識時間は、変わらず約3.5倍かかった。 自作の特徴量 SHOT PFH 認識速度 1分10秒 20秒 マッチング対応点数 111点 67点 22点 認識時間は、変わらず約3.5倍かかった。 対応点は、kinectから取得した点群データのときより約5倍に増加した。
PCL(Point Cloud Library) ソースフレームワーク。 プログラミング言語は、C++で書かれている。 一般的な、3次元点群処理に加え、3次元物体認識に必要な3次 元特徴量の計算を行うライブラリが存在する。
Open3D Open3Dは、3次元データを扱うソフトウェアの開発をサポート するオープンソースライブラリ。 PCLとは異なり、pythonで使用可能でJupyter notebookでのデ バックが可能なため、プロトタイピングに便利。
Kinect Kinetは、マイクロソフト社から発売されたジェスチャーや音声 認識によって操作が出来るデバイス。 RGBカメラ、深度センサー、マルチレイマイクロフォンが内蔵 されており、プレーヤーの位置、動き、声、顔を認識することが 可能。 本研究では、ポイントクラウドデータの生成に用いる。
Kinectから深度データ取得 Kinectから取得した深度データからポイントクラウドを作成。