何でもみえるロボットの“目”の実現を目指して―LTMスパース推定による三次元計測―

はじめまして.東北大学大学院情報科学研究科 橋本研究室に所属している,博士後期課程1年の千葉直也と申します.

我々の研究室ではロボットのための視覚(ビジョン) であるロボットビジョンを中心として幅広い研究を進めており,私は特に産業ロボットのためのビジョンに関わる研究を行っています.

はじめに

「ロボット」と聞くと,100万馬力の少年ロボットや青いネコ型ロボット,エヌ氏の購入したきまぐれなロボットなどを想像する方が多いのではないでしょうか.

これらのロボットはヒューマノイドロボットと呼ばれるロボットに分類され,人間と同じ空間で働くことを想定しています.実在するヒューマノイド ロボットでは,ソフトバンクのPepperやホンダのASIMO,Boston DynamicsのAtlas,早稲田大学のWABOTなどがあります.

私たちの 身近な環境は人間が使いやすいことを目指して設計されているため,このような環境で活動するには人間と同じ動作や操作ができることが重要です.

一般的なロボットのイメージとは裏腹に,ロボティクス分野の研究ではレスキューロボットや宇宙探査ロボット,そして私の研究対象である産業ロボットなども盛んに研究が進められています.

これらのロボットは必ずしも人間と同じ環境で利用されることを想定していないため,人間とは全く異なる形をしている場合が多くあります.

産業ロボットについて

私の研究対象である産業ロボットは,自動車工場などでよく用いられるロボットであり,部品や完成品の運搬や部品の組み付け,溶接,塗装などに用いられます.形状も多彩で,直交ロボット,垂直多関節ロボット,パラレルリンクロボットなどが用途とコストに応じて使われます.

工場での大量生産には人間に代わりロボットのみで行われる工程が多く,疲れずに24時間働くことのできるロボットは工場の自動化に役立っています.

工場内で産業ロボットを使用する場合,ロボットに動作をプログラムし(ティーチング),ロボットはタイミングよくプログラムされた動作を行う(プレイバック)ことが一般的です.これによって同じ動作を何度も繰り返し,上流工程から流れてくる部品を次々と処理していきます.

産業ロボットにより工場内の自動化が進み大量生産が容易になってきた一方で,近年では無駄な生産を無くして様々なニーズに応えるため,従来の(少品種)大量生産から多品種少量生産,あるいは変種変量生産への切り替えが進んでいます.すなわち様々な商品を同じ生産ラインで自由な個数だけ製造できることが望まれています.

このような生産方式は生産ラインにいる作業者にとっては難しくないかもしれませんが,産業ロボットにとっては大問題です.次々と作るモノや部品が変わる状況では,ロボット一台ずつが次に自分は何をするべきかを理解して動く必要があります.

自分の研究

ロボットが自分で判断して作業を進めるためには,対象の様子をロボットが認識する必要があります.私たちの研究グループでは,工場において自動化が望まれている「ばら積みピッキング(ビンピッキング)」と呼ばれるタスクの研究を進めています.

具体的には,たくさんの単一種類の工業部品がばら積みになっている状態から一つを認識して持ち上げ,次の工程のロボットに渡すという問題設定において,ロボットが物体を認識する技術の実現を目指しています.

ばら積みされた工業部品を認識してロボットを動かすためには,奥行きを含めた正確な計測が必要です.また,工業部品では金属製の物体やプラスチック製の半透明物体なども含まれています.

これら金属製の物体やプラスチック製の半透明物体は,安価な既存の三次元計測法では形状の計測が困難でした.これらの物体をも計測できる,汎用的で正確な三次元形状の計測の達成が,私の研究の目標です.

研究背景

問題の難しさ

金属や半透明プラスチックの計測がなぜ難しいのかを説明するため,はじめにプロジェクタとカメラを用いた三次元計測の基本的な原理を紹介します.

コンピュータで画像を扱うとき,一枚の画像をたくさんの小さな点を上下左右に並べたものとみなして処理を行います.このときのそれぞれの点を画素と呼びます.

以降では簡単のため,一つ一つの画素が空間中の光線に対応するものとして考えます.

ある画素での光の強さを輝度値と呼びます.プロジェクタの輝度値は照射する光線の明るさ,カメラの輝度値は受け取った光線の明るさを示します.

ステレオカメラによる三次元計測

人間は左右の目で得た映像での視差を使って奥行きを認識しています(厳密には他の情報も利用していますが割愛します).視差とは「右目で見えたある点と,左目で見えたある点がどれだけずれているか」という情報であり,視差と「右目と左目の距離」を使って三角測量の原理で奥行きを認識することができます.

言い換えると,空間上のある点からの光線を右目と左目で観測することで,これら二本の光線の情報からどれくらい離れた点から光線が来たかを認識します.

このような奥行きの計測をコンピュータが行うためには,二つのカメラを置いて観測すればよいように思われます.つまり,二つのカメラで光線が観測された画素のずれから視差を計算するわけです.このような計測法はステレオカメラによる三次元計測と呼ばれます.

しかし,ここで計測対象が工業部品であることが問題になります.工業部品の多くには表面の模様(パターン)がありません.このためステレオカメラによるによる三次元計測は,工業部品のような表面パターンのない物体の計測が苦手である場合が多いです.

プロジェクタ・カメラによる三次元計測

ここで,片目を担当するカメラをプロジェクタに置き換えてみます.プロジェクタは空間中に画像を投影できる装置ですが,言い換えると空間中に光線を照射できる装置であるといえます.

あるプロジェクタの画素から光線を照射したとき,計測対象の上でその光線は反射します(拡散反射と呼ばれます).あらゆる方向に反射した光のうち,カメラに向かってくる光線もあります.この光線をカメラで捉えることで,ステレオカメラによる計測と同様に「二本の光線」の関係を得ることができます.

あとはステレオカメラと同様に三角測量の原理で奥行きがわかる,という仕組みです.この場合には光線をこちらから照射しているわけですから,計測対象に表面のパターンがない場合にもうまく動きます.

金属物体・半透明物体の難しさ

さて,それでは計測対象が金属物体や半透明物体の場合はどうでしょうか.

金属はある角度に対して強く光を反射するという鏡面反射という特性があります

また,プラスチックなどの半透明な物体に光を当てた場合,光線が当たった当てた点以外からも光線が出てくるという表面下散乱が生じます.これは,一本の光線を半透明物体に当てると,その周りもぼやっと光る現象のことです.

これらの現象を図に書くと次のようになります.

左: 鏡面反射による相互反射,右: 表面下散乱
(Naoya Chiba, Koichi Hashimoto, 3D Measurement by Estimating Homogeneous Light Transport (HLT) Matrix. The 2017 IEEE International Conference on Mechatronics and Automation (ICMA2017), 2017. 発表スライドより改変して引用.)

この図のような現象が起きた結果,プロジェクタから照射した光線をカメラで観測したときに「計測対象上で一回だけ反射した光(直接反射光,黄色)」か,「計測対象上で複数回反射した光(間接反射光,青色)」かの区別が難しくなり,「二本の光線」の関係を得ることが難しくなります.

これまでに多くのプロジェクタとカメラを使った三次元計測法が提案されていますが,まだまだこの問題を乗り越えることができていないのが現状です.

問題を解くための古典的なアイデア

この問題を解くための古典的なアイデアとして,エピポーラ幾何を用いるという手法があります.エピポーラ幾何とはステレオ光学系(ステレオカメラやプロジェクタ・カメラ)において光線のなす幾何学的な性質です.

(Naoya Chiba, Koichi Hashimoto, 3D Measurement by Estimating Homogeneous Light Transport (HLT) Matrix. The 2017 IEEE International Conference on Mechatronics and Automation (ICMA2017), 2017. 発表スライドより改変して引用.)

プロジェクタから一本の光線を照射したとき,その光線はカメラ画像上で一本の直線をなす,というのがエピポーラ幾何の本質です.このときのカメラ画像上での直線をエピポーラ線と呼びます.

エピポーラ幾何を利用すると,直接反射光は必ずエピポーラ線上で観測されるという重要な性質が導かれます.また,間接反射光の多くはエピポーラ線上ではない点で観測されます.

したがって,エピポーラ幾何を利用することで直接反射光を抽出でき,正しい「二本の光線」の関係が得られるということになります.

自分のアプローチ

LTM (Light Transport Matrix) を用いるアイデア

ここまでの話はすべて,プロジェクタの各画素から順番に光線を照射してカメラで観測することを考えていました.しかし,実際にそんなことをすると非常に時間がかかってしまい,とても産業ロボットに搭載して工場の生産ラインで使うことはできません.

私は,この各画素から順番に光を当てていると時間がかかりすぎることを解決するための方法を研究しています. 以下で紹介するLight Transport Matrix (LTM)による表現を行うことでスパース推定という手法(後述)を適用することができ,高速な三次元計測が実現します.

これから紹介する計算を簡単に取り扱う方法として,ベクトルと行列があります.ざっくりと説明すると,ベクトルは複数の値を一続きのまとまりに並べたもので,行列は複数の値を縦横に並べたものです.

以下で高校数学の範囲を超えてベクトルと行列を扱いますが,これらをよく知らなくても本質部分は分かるかと思います.同じ情報について見方を変えるため,そして計算の見通しを良くするための道具として,これらの数学を使っています.

ちなみに余談ですが,以下で使うのは私が高校生の頃は高校で習っていた範囲なのでそれほど難しくはないはずです.大学に入ると線形代数学として勉強することになると思いますので,興味がある高校生の方はぜひ先取りして勉強してみてください.

はじめに,あるカメラ画素に着目してみます.カメラ画素一つずつに\(1, 2, \cdots, R\)と番号をつけて,\(i\)番目の画素の輝度値を\(c_i\)とします.プロジェクタについても同様に,\(j\)番目の画素の輝度値を\(p_j\)とします.

プロジェクタの\(j\)番目の画素から光線を出したとき,計測対象上での光線の反射を経てカメラの\(i\)番目の画素まで届いたとしましょう.このときの\(c_i\)と\(p_j\)の間の輝度値の重み(=どれくらい届いたか)を\(w_{ij}\)と書くことにします.これを式で書くと $$c_i = w_{ij} p_j$$となります.

\(w_{ij}\)が大きいほど\(c_i\)は大きくなりますし(=計測対象がたくさんの光線を反射することに対応),\(p_j\)が大きいほど\(c_i\)は大きくなります(=プロジェクタからの照射光量を増やすことに対応).

\(i\)番目のカメラ画素に光線が届くのは,\(j\)番目のプロジェクタ画素だけとは限りません.例えば\(j’\)番目のプロジェクタ画素から\(w_{ij’}\)の輝度が届くとすると,$$c_i = w_{ij} p_j + w_{ij’} p_{j’}$$となります.

これは,\(p_j\)からの光線と\(p_{j’}\)からの光線を重み\(w_{ij}\),\(w_{ij’}\)を掛けてから足し合わせただけの輝度が\(c_i\)で観測されることを示しています.

より一般には,$$c_i = w_{i1} p_1 + w_{i2} p_2 + ・・・ + w_{ij} p_j + ・・・ + w_{iR} p_R$$と書けます.

ベクトルを使って表すと,\(w_{i1}, w_{i2}, \cdots, w_{ij}, \cdots, w_{iR}\)を並べたベクトルを\(\vec{w_i}\)として,\(p_1, p_2, \cdots, p_j, \cdots, p_R\)を並べたベクトルを\(\vec{p}\)とすることで,$$c_i = \vec{w_i} \cdot \vec{p}$$と表せます.

このとき\(w_{ij}\)の値が大きい部分が,そのカメラ画素に到達する光線をたくさん照射しているといえます.

さて,カメラには\(i\)番目の画素の他にもたくさんの画素があります.これらを並べて書くと

$$\begin{matrix}c_1 = \vec{w_1} \cdot \vec{p} \\ c_2 = \vec{w_2} \cdot \vec{p} \\ \vdots \\
c_i = \vec{w_i} \cdot \vec{p} \\ \vdots \\
c_R = \vec{w_R} \cdot \vec{p} \end{matrix}$$

となります.\(c_1, c_2, \cdots, c_i, ・・・, c_R\)を並べたベクトルを\(\vec{c}\)として,\(\vec{w_1}, \vec{w_2}, \cdots, \vec{w_i}, \cdots, \vec{w_R}\)を並べた行列を\(W\)とすると,

$$\vec{c} = W \vec{p}$$

と書き表すことができます.\(W\)は縦に\(\vec{w_i}\)が行として並んでいて,それぞれの行の中には\(w_{ij}\)が並んでいます.上の式での\(W\)を,LTM (Light Transport Matrix,輝度伝達行列)と呼びます.

LTMには,プロジェクタから出した光線がどのような反射を経てカメラに到達したかのすべての情報が含まれています.

ここで\(W\)の\(j\)列目(横ではなくて縦にみます)に着目すると,\(w_{1j}, w_{2j}, \cdots, w_{ij}, \cdots, w_{Rj}\)という値が並んでいることになります.これは,\(j\)番目のプロジェクタ画素を照射したときのカメラ画像と同じになります.

つまり,\(W\)を縦に切って見ていくと,プロジェクタを一画素ずつ光らせてカメラで計測したときの画像を得ることができます.

(千葉直也,橋本浩一.LTM推定三次元計測法による金属物体のばら積みピッキング.第19回 計測自動制御学会システムインテグレーション部門講演会 (SICE SI2018),2018.発表ポスターより改変して引用.)

LTMのスパース推定

LTMのスパース性

LTMにはスパース性と呼ばれるよい性質があることが知られています.スパース性とは要素にゼロを多く含むという性質のことで,イメージとしてはほとんどスカスカでなにもないけど,たまに重要な情報があるという感じです.

LTMがスパース性を持っていることは,光線があちこちには飛び散っていないということに対応します.

例えばLTMがスパースにならない例として,観測する部屋中に霧がかかっているような状態が考えられます.このような場合にはプロジェクタから出した光線はあちこちに飛び散り,カメラのほとんどすべての画素がいつも明るくなってしまいます.

実際にはそんな条件で計測することはありませんので,LTMはスパース性を持つと考えてよいわけです.

LTMのスパース推定

何かを計測するとき,その対象によって求めたい対象を計測するために必要な観測回数は「どのように」「何を」計測するかで決まっています.しかし,対象がスパース性を持つ場合には,それよりも少ない観測回数でその対象を推定できるということが知られています.

LTMはスカスカで一部の要素だけが重要な情報を持っているので,重要な情報がどこにあるかうまく探しながら答えを当てることができるようなイメージです.

LTMを完全に計測するためには,プロジェクタ画素数と同じだけの照射回数が必要となります.しかし,スパース推定を使うことによってプロジェクタの画素数よりも少ない照射回数でLTMの計測を行うことができます.

スパース推定でLTMを求める場合には光線を一本ずつ照射するのではなく,一度に複数の光線を照射します.そしてあとからスパース推定によって,「それぞれの光線がどのように反射してきたのか」(=LTM)を計算します.

つまり,各画素から順番に光線を当てるかわりに,計算(スパース推定)を頑張ることで高速化しているというのが,私のアプローチの本質部分です.

正確な手続きを紹介するのは難しいので割愛しますが,このLTMのスパース推定を高速化したり改良したりするのが非常に研究のやりがいのある部分となっています.

これまで行ってきた研究の紹介

これまでに研究してきた手法のねらいとアイデアをいくつか紹介します.詳細な内容は数式で記述しているので紹介しにくいのですが,問題意識とアイデア自体はそれぞれ単純です.

LTMの行分解推定

LTMはカメラ画素とプロジェクタ画素のすべての組み合わせを考えるので,非常に大きな行列となります.これを一気に解くのは難しいため,数式上で全く同じ計算結果になるような変形を行い,小さい問題に分割しました.

具体的には,LTMの推定に使う「\(\ell_1\)正則化最小二乗法」というスパース推定の問題の場合には,LTMを行ごとに分解して別々に計算してからそれらを組み合わせてLTM全体を推定できることを示しました.

LTMの多段解像度推定

行分解推定でもまだ実用的な解像度ではなかったので,さらに高速化を行いました.重要なアイデアは照射パタンの解像度を段階的に変更することです.これによってLTMのスパースではない部分(=情報のある部分)を効率よく探すことができるようになり,高い解像度でLTMを推定できるようになりました.

白飛び対応

カメラで写真を撮ったとき,明るすぎる部分が真っ白になってしまう経験があると思います.プロジェクタとカメラを使った三次元計測でも同じような白飛びが生じ,スパース推定に失敗してしまう場合があります.

白飛びを考慮した観測モデルを導入することで,情報のある部分を探すのと同時に白飛びしている部分を検知しながらスパース推定を進めるような手法を開発しました.

おわりに

以上,LTMを推定することによって三次元計測を行う研究について紹介しました.この研究は,「産業ロボットが自分で判断して動く」という大きな目標の小さなパーツに過ぎません.また,実際に工場でロボットビジョンとして実用化するまでにはまだまだ改善が必要な技術です.

それでも,いつか自分の研究によってロボットが新しい目を手に入れる日が来るかもしれないと思うとワクワクしてきて,研究を進めるのが楽しくなります.

まだまだ研究者としては駆け出しの自分ではありますが,いつか工場で自分の研究した成果が使われることを夢見てこれからもロボットビジョンの研究を進めたいと思います.

最後に,もし興味を持って話を聞きたい,ロボットやビジョンの研究の道に進みたいので相談したいという方がいたら,気軽にメールやTwitterで連絡をください.普段は仙台にいるのですが,割と全国あちこちに出張しているので(この原稿も出張先の徳島で書いてます..)時間があえばぜひ研究の紹介やお話をさせていただきたいと思います.もちろんオンラインでもOKです.

個人Webサイト: https://sites.google.com/view/n-chiba-
メール: chiba(at)ic.is.tohoku.ac.jp
Twitter: @n_chiba_

参考文献等

関連する発表済み論文等

Naoya Chiba, Koichi Hashimoto. Sparse Estimation of Light Transport Matrix under Saturated Condition. The 29th British Machine Vision Conference (BMVC2018), 2018.

Naoya Chiba, Koichi Hashimoto. Ultra-Fast Multi-Scale Shape Estimation of Light Transport Matrix for Complex Light Reflection Objects. The 2018 IEEE International Conference on Robotics and Automation (ICRA2018), 2018.

Naoya Chiba, Koichi Hashimoto, 3D Measurement by Estimating Homogeneous Light Transport (HLT) Matrix. The 2017 IEEE International Conference on Mechatronics and Automation (ICMA2017), 2017.

Naoya Chiba, Shogo Arai, Koichi Hashimoto, Feedback Projection for 3D Measurements Under Complex Lighting Conditions. The 2017 American Control Conference (ACC2017), 2017.

関連する分野の入門におすすめする資料

大関真之.今日からできるスパースモデリング.

スライド: http://www-adsys.sys.i.kyoto-u.ac.jp/mohzeki/Presentation/lectureslide20151118-1.pdf

資料: http://www-adsys.sys.i.kyoto-u.ac.jp/mohzeki/Presentation/lecturenote20150902.pdf

画像情報教育振興協会.ディジタル画像処理[改訂新版].