3D点群処理の例:平面上に置いてある物体の自動抽出

以下の図は、Kinectで撮影した点群(1フレームのみ)を入力として、平面上に置かれている物体の点群をそれぞれ個別に分割して抽出する処理の、途中経過の点群と最終結果の点群を示した物です。

この処理は、私がPoint Cloud Libraryを用いて作成したプログラムにより実行したもので、その処理途中の各点群データをそれぞれスクリーンキャプチャしたのが図中の4枚の各画像です(注 Point Cloud Libraryをご存知無い方はPoint Cloudコンソーシアムの概要紹介をご覧下さい)。

その処理手順としては、床平面の上に置かれた3つの物体をKinectで撮影した3D点群データ(左上)から、平面領域を検出し(右上)、その抽出した平面を除いた点群(左下)から、3つの物体を1つの物体ごとの点群に分割する(右下)、というものです。

紹介した「平面上の物体抽出」という処理は、3D系のコンピュータビジョンのエンジニアにとってみれば、初歩的な処理であり、特別実現に難しい処理ではないのですが、素人の方からすれば「こういう処理が点群処理だと実現できるのか」という驚きや発見の印象を持った方もいると思います。この処理の仕組み等は、導入が終ったのちの応用の紹介で一部明らかになるので省略するとして、3D点群データを扱う処理では、このような「3D空間的な処理」が得意です。例えばこの処理の場合ですと、画像データによる処理と比べた場合、以下のような利点があります。

  1. 空間中の各領域を、物体毎に分割することが、画像で行うより簡単(画像と違って3D空間での配置と形状の違いを直接使えるので)。
  2. 対象物体や人の大きさ、形状を直接計って知ることができる(例えばタンスの高さは3Dデータに含まれているので直接計れる)。
  3. 人工物には、(壁や床などの)平面や(柱やパイプ、ペットボトルなどの)円柱といった単純な形状が多く、それらの領域を検出して活用しやすい。

今後、点群処理の応用を紹介する中でわかって頂けると思うのですが、画像を入力として実現するのが難しいこともデプスデータで3D処理すれば簡単になる問題は多いです。あなたが画像系のエンジニアだとして、この処理を画像だけから実現できる自信はありますでしょうか。

3Dデータで処理を行う利点

先程の平面上の物体抽出処理の例に限らず、ある特定の解析処理を、デプスデータを入力として3D処理するよりは、画像上の色情報から2D的に処理する方が難易度は高いのが通例です。もちろん、画像で解ける問題は画像のみで対処しまえば良いです。まだまだ一般には普及してないデプスセンサを使ったシステムを組むよりは、スマートフォンのカメラだけで済む処理や、すでに店舗などに組み込まれているカメラだけで済むシステムにしたくなる気持ちもよくわかります。しかし、デプスセンサで対象の3D形状すべてをデータ化した場合だと、「画像だけでは永遠に実現できない処理」が実現できることも多いので、そこを見落としてはいけません。

例えば、すでに紹介したKinectの人物姿勢推定はその典型例です。人の姿勢を動画でリアルタイムにモーキャプするのは、そもそもデプスセンサで距離画像が撮影できないと(現状では)実現不可能です。「第69回 」などで紹介したように、色の変化に左右されず、人の3D形状だけを用いる事で、人の姿勢が推定できているのが理由でした。また、例えば車を3Dスキャンして、設計した形状通りどれくらい一致した形状で作られているかを検査したいという目的があるとします。これも、「第63回」で紹介したように、単一色のテクスチャーをもつ物体表面は画像だけでは3D化するのは難しいので、そういった物体表面の3D形状を解析したい場合は、アクティブステレオ法のセンサやToFセンサを使って3D形状を撮影するしか解決法はありません。

また、3D点群の処理は、同じ3Dデータが対象同志ということもあって、コンピュータグラフィックスの処理と共通や関連する点が多く、グラフィックス向けの各処理は点群データにも活用しやすいです。また、実世界の2.5D点群の場合は、画像の空間構造にも助けられることで、RGB-Dデータ特有のメリットが更に加わる面もあります。詳しい3D形状を全部データ化していないと実現できない事は、こうしたグラフィックス系の処理でしか達成できないこともあるので、画像データで頑張る場合とは更に差がつく場合があります。

以上のように、3Dデータでしか達成できないことは、本当は3D処理を用いてシステム化するのが正しい選択ではありますが、3D点群処理を実行できるエンジニアの数はまだ非常に少なく、一般消費者向けの実用例も数少ないのが現状です。そこで、この現状を理解するために、3D点群編の導入の最後として、3D点群処理の歴史を短くだけ紹介することにします。

林 昌希(はやし まさき)

慶應義塾大学大学院 理工学研究科、博士課程。
チームスポーツ映像解析プロジェクトにおいて、動画からの選手の姿勢の推定、およびその姿勢情報を用いた選手の行動認識の研究に取り組み中。(所属研究室が得意とする)コンピュータビジョン技術によって、人間の振る舞いや属性を機械学習・パターン認識により計算機で理解する「ヒューマンセンシング技術」全般に明るい。技術商社でエンジニアをしていたこともあり、海外のIT事情にも詳しい

一方、デプスセンサ等で撮影した実世界の3D点群データの活用を推進するための「Point Cloud コンソーシアム」での活動など、3Dコンピュータビジョンのビジネスでの普及にも力を入れている。また、有料メルマガ「DERiVE メルマガ 別館」では、コンピュータビジョン・機械学習の初~中級者のエンジニア向けの、他人と大きな差がつく情報やアイデアを発信中(メルマガでは、わかりやすい理論や使いどころの解説込みの、OpenCVの初心者向け連載なども展開中)。

翻訳書に「コンピュータビジョン アルゴリズムと応用 (3章前半担当)」。