ロボットによる描画行為のシミュレーション
池内克史、高松淳、工藤俊亮
東京大学
小川原光一
九州大学
小町谷圭
 東京藝術大学

1. はじめに

我々の研究は、油絵描画ロボットの開発を目標としている。これは「絵を描く」行為の全て、すなわち物体を3次元的に観察・認識し、それをどのように「絵」として表現するかを決定し、実際に筆と絵具を用いて描画するというプロセスの全てをロボット上に実現しようという試みである。

これまで我々は、上述のプロセスを一通り実現するシステムを完成させた。このシステムは2006年5月に日本科学未来館でデモ展示された(図1)。そこではテーブル上に置かれたリンゴやブロックといった物体を認識し、その輪郭をロボットが見たままに筆を用いて描き出した。

図1 日本科学未来館でのデモ展示

続いて我々が行ったのは、個々のモジュールを作り込んでゆく作業であった。まず始めにどのように「絵」として表現するかを決定するプロセスに注目し、特に構図の決定がどのように行われるのかに関していくつかの実験を行った。我々は今後、この結果をロボットが自動的に描画モデルを生成するアルゴリズムの開発に繋げる予定である。

本稿では、まず未来館で行われたデモの流れに沿ってお絵描きロボット全体の構想と仕組みの詳細を述べ、続いて構図の決定に関する解析の結果を紹介する。

2. お絵描きロボット

図2 お絵描きロボットの概要

我々は絵を描くという行為を、対象の観察・モデル化、解釈、絵筆や絵具をつかった描画という3つの過程を通して行われる表現であると考えている(図2)。提案するお絵描きロボットは、この3つの過程全てを実現する形で実装されている。これは単に入力されたイメージを毛筆で出力するようないわゆるプロッタを開発するのと違い、「絵を描く」という行為をそっくりロボットで実現しよういう試みで、この点が本研究の最大の特徴である。

この節は、まず未来館での展示の内容を述べる。この展示では、図2に示した流れの全体を一通り見せるような構成になっている。そのためこの展示の内容を説明することによって、我々のお絵描きロボットがどのように描画を行うのかを概覧することが可能である。続いて図2に示したそれぞれのフェーズごとに、ロボットがどのようにしてタスクを実現しているのかを詳しく述べてゆく。

2.1 未来館デモ展示の概要
図3 お絵描きロボット

我々が用いるロボットは、図3に示されるようなものである。頭部には9個のカメラからなるステレオビジョンシステムを持つ。首は上下左右に自在に動かすことが可能である。腕については、7自由度のロボットアームを2本備えている。各アームの先端には多関節のロボットハンドを搭載している。ロボットハンドは各腕4本の指を備え、各指は3〜4個の関節を持つ。各指の先端には6軸力センサが埋め込まれており、また手のひらには多数の圧力センサが貼られている。また音声出力機構を搭載しており、認識結果や描画中の状態などを音声で伝えることが可能である。

図4 デモに用いたリンゴとブロック

まずロボットの前に描かせたい物体を置く。ロボットはどのような物体が置かれたのかを、頭部のステレオビションシステムを用いて認識する。認識は、ステレオ視により得られる物体の3次元形状データと物体の色を用いて行われる。本来であれば、どのような物体が置かれてもビジョンシステムによりその3次元形状を求め物体を認識するのであるが、この処理は非常に時間がかかるため、デモ展示の時には置かれる物体をリンゴかブロックの2つに限定した(図4)。そしてあらかじめこの2つの物体の正確な形状データを与えておき、それをヒントにして物体の種類と置かれた向きを認識するようにした。すなわちここでは、ロボットは世の中にはリンゴとブロックしかないと思っており、何を置かれてもそれがリンゴかブロックのどちらに似ているかを判断するわけである。

物体が認識されると、ロボットはそれをどのように「絵」として描くかを決定する。ここでは3次元モデルに基づき物体の輪郭に相当する幾何エッジを抽出し、そこから描きた絵のモデル、すなわち描画モデルを構成する。

最後に、得られた描画モデルを元に、ロボットは実際にカンバス上で描画を行う。筆はそれぞれ違った絵具が付けられたものが2種類用意されており、ロボットは描きたい対象に応じて適切な筆を区別し使い分ける。ここでは筆の柄の色がそれぞれ違っており、その色により筆の種類を認識している。

図5 ブロックの描画結果

図5に示したのが、この展示で描かれたブロックである。ブロックは置き方によってロボットからの見え方がかなり変化するが、ここに示した結果をみると分かるとおり、ロボットはきちんと自分から見えに応じた絵を描いている。リンゴを描いた結果は、後に図14に示した。

2.2 対象の観察・認識

観察・モデル化の過程では、描画対象の3次元形状を取得する。ロボットに登載されているステレオビジョンシステムを用いて全ての物体の3次元形状が計測できれば理想的であるが、実際には対象物体に許される大きさやシステムの精度などから来る制約により、この方法で3次元形状を取得可能な物体は限られている。

その他の3次元形状取得の手法としては、まず描画対象を複数台のカメラで撮影し、そこから3次元形状を復元する手法がある。この手法は人間などの大きな対象物体の形状を得るのに適している。我々は天井に取り付けられた8台のビデオカメラからの画像を元に、視体積交差法を用いて3次元形状を復元するアルゴリズムを開発した。

また物体の形状を正確に取得したい場合は、レーザーレンジセンサを用いる方法もある。この場合、1回のセンシングによって得られる形状は1方向からの距離画像だけであるため、完全な3次元形状を復元するためには、複数の方向からの距離画像が必要となる。そのため、それらの複数距離画像に対し適切に位置合わせを行う処理が不可欠となる。我々はそのための手法も開発した。

2.3 絵の構成

続いて、得られた3次元モデルを2次元の「絵」にするためのプロセスに入る。現在の実装では、物体を輪郭線などの特徴的な曲線によって表現する手法を用いている。この手法では、まず幾何エッジを利用して物体の特徴線を抽出する。しかしこのようにして得られたエッジは大量の細かい線分の集合であり、そのままでは毛筆による描画に適さない。そこで次に、得られた特徴線を単純な図形にまとめる作業を行う。こうして得られた特徴線は、ロボットの腕の構造などを考慮しながら、描きやすい長さや方向の線に分割され、また描く順序が決定される。このようにしてロボットによる描画のためのモデル、すなわち「描画モデル」が生成される。

2.3.1 特徴線の抽出
図6 幾何エッジ
図7 対象物体と幾何エッジを求めた結果

対象を描画する主要な方法のひとつは、対象の輪郭や色・模様の境界など対象を特徴付ける線を描画することである。3次元形状からこれらの特徴線を抽出するために、本システムでは対象の幾何エッジ(=輪郭)を抽出する。

3次元形状は三角パッチによって構成される。幾何エッジとは、図6に示すように、隣接する三角パッチの法線と視線ベクトルとの内積の符合が逆転する箇所の共有エッジとして定義される。図7は、計測したリンゴの3次元形状に対して任意視点からの幾何エッジを抽出した例である。左から、(1)元となったリンゴの写真とリンゴの3次元形状モデル、(2)幾何エッジを抽出した結果、(3)隠面の幾何エッジを除いた後、隣接する幾何エッジを連結し、さらに線長が短いものを除いた結果を表す。

2.3.2 特徴線の単純化
図8 錯綜した特徴線:2.3.1節の手法で求めた特徴線の一部を拡大したもの
図9 冗長な特徴線をスプライン曲線で単純化する

こうして得られた特徴線は、経由点の数が膨大であったり、本来同一の特徴線が複数のエッジに分割されていたりたりするため、図8に見られるように全体として多くの細かい線が錯綜したものとなっていた。このままでは描画のための情報としては不適切なものであるため、以下に述べるような単純化を行い、ロボットに描きやすい特徴線を生成する。

まず各特徴線のセグメントを構成する線分の端点をクラスタリングし、冗長な端点をまとめる。こうして得られた点をC-スプライン曲線を用いて結び、なめらかな曲線を生成する。続いて得られたスプライン曲線の配置を比べて近接するものを1つにまとめる(図9)。

2.3.3 ロボットの身体性の考慮
図10 ロボットの身体性を考慮して、描画モデルを修正する

最後にロボットの身体性を考慮した修正を行い、描画モデルが完成する。ここで考慮されるのは、ロボットが多指ハンドにより筆を把持することに由来する筆遣いの制約である。人間においても筆を動かす時、描き手から見て奥から手前、あるいは左から右に描くのが自然である。逆に描き手から見て手前から奥、あるいは右から左に向うようには筆を動かし難い。ロボットにおいても、人間と同じように筆を把持しているため、人間と同じように把持が安定する筆の動かし方とそうでない動かし方が存在する。そこでロボットにとって安定な運筆が基本となるようにセグメントの始点と終点を決定する。具体的には、手前から奥あるいは右から左に向って線を引かざるを得ないような線が存在する場合、把持が不安定になることを防ぐために、それを分割してそのような運筆が必要ないようにする(図10)。

以上述べてきた過程を経て、3次元形状モデルから描画モデルが生成される。得られた描画モデルに基づき、次には実際にロボットが描画を実行する。