

手書きスケッチに基づく３次元シーンのデザインシステム
  

辛 孝宗

岡部 誠

   

五十嵐 健夫概要 複数のモデルを含んでいる３次元シーンのデザインは煩雑な仕事である．現在使われている通常の３次元ツールはユーザが適切なモデルをロードし，移動，拡大 縮小 回転などのオペレーションを反復しながら配置しなければならず無駄な時間がかかるため，特にプロトタイプデザイン作業には適していない．
この問題を解決するため，ユーザがモデルの２次元スケッチをしていくだけで３次元シーンが構成できるシステムを提案する．このシステムはユーザのスケッチを入力とし，モデルのデータベースから検索を行い，姿勢推定後画面にスケッチにフィットするように検索されたモデルを配置する．このシステムを利用することによってデザイナは直観的に３次元シーンのプロトタイプを作ることが可能になる．本手法の応用としては，娯楽・会議・教育などの分野のおける３次元シーンプロトタイピングツールなどが考えられる．

はじめに３次元シーンは，ゲームやインテリアデザイン，アニメーション，映画など，様々な分野で必要とされる．３次元シーンのデザインは，デザイナの描いたコンセプトスケッチから始まるが，２次元のスケッチを３次元シーンに変換する作業に既存の３次元ツールを用いると，多数のメニューやコマンドを操作する必要があり，素早く簡単にプロトタイプをデザインする作業には適していない．
本研究では，手書きスケッチに基づき，簡単に３次元シーンのプロトタイプをデザインするためのシステム，を提案する．本システムを用いると，ユーザはデザインしたいシーンのスケッチを描くことで，３次元シーンをデザインできる（図 ）．ユーザが配置したいモデルの輪郭をスケッチすると，システムは自動的にそのスケッチに合うモデルを検索するとともに，そのスケッチにフィットするように，検索されたモデルの姿勢を修正して配置する．本システムを用いることで，ユーザは既存のツールのように，モデルのロードや編集コマンドを繰り返し使用する必要はない．
スケッチに基づく３次元形状モデリングの手法としては，やなどが有名である．また，３次元モデル検索エンジンとしてはなどがある．本研究の目的は，これら既存手法の長所を組み合わせることによって，３次元シーンをデザインするための直観的なユーザインタフェースを提案することである．
本手法の応用としては，インテリアデザインなど，３次元シーンのプロトタイピングツールとしての利用をはじめ，初心者のための娯楽用ソフトウェアと図

スケッチに合うモデルを検索し，姿勢を修正して配．３次元シーンを別の視点から見た図を置する
 に示す．

                 
東京大学大学院情報理工学系研究科

    システムの例：ユーザが３次元モデルをスケッチすると  ，システムは自動的にしての利用，立体感を養うための教育用ソフトウェアなどが考えられる．
以降では，関連研究に触れた上で，上で３次元シーンをデザインするためのユーザインタフェースの詳細について述べ，ついでアルゴリズムについて述べる．

 

 関連研究

スケッチベースモデリング

２次元の入力，主に線画から３次元モデルを構築する手法は，制約を解く
らの手法
や，最適化ベースのらの手法，最小化問題を解く
らの手法 ，対称性を利用したらの手法があるが，この他にも数多く存在する．我々が特に興味をもっているのは２次元ジェスチャを利用した，インタラクティブ性の強いスケッチベース３次元モデラでありらのや，らのなどの手法である．

    

"#$!
%

 スケッチベース検索&'$'# らは，ユーザのスケッチを入力に，３次元モデルを検索するシステムを提案している ．
ユーザがクエリーとして入力できるのは，検索したい３次元モデルの３面図のスケッチか，"#$ らの  を用いてモデリングした３次元モデル

123である．これに対して，我々のシステムでは，任意の視点から見たモデルのスケッチを与えることができる．またらは，ユーザが描いたスケッチをもとに，データベースからクリップアートを検索するシステムを提案している ．しかし，ここでは検索対象が２次元ベクトル画像に限られている．これら既存研究に対し，我々は，検索対象のモデルを任意の視点から見たスケッチをクエリーに３次元モデルを検索し，更にスケッチにフィットする３次元モデルの姿勢を求めるシステムを提案する．

&



412345678

３次元姿勢推定

３次元世界に仮想的なカメラを置き２次元画像をレンダリングするのに対し，逆に最終的なシーンの見えを２次元画像で与え，カメラの姿勢を推定する
手法にカメラ・キャリブレーションがある．また，らは，３次元シーン上に必ずカメラに写る点を指定し，それらを制約としながらカメラの姿勢を制御する手法を提案している ．提案手法
では，これらの既存研究をもとに，３次元モデルの姿勢をユーザが与えたスケッチに基づいて推定する手法を提案する．

($#)



ユーザインタフェース

システム操作の概要

  **+,,,-**.

/ +/ 0+の上にスケッチを重ねて行うと（図 ），モデルの上に新たなモデルを配置することができる 図．
システムが自動的に配置したモデルが間違っていた
場合は，他の候補モデルをモデルウィンドウから選んで変更することができる 図．
また，あらかじめスケッチしたものがビットマップ画像としてあれば，それを読み込むこともでき，その場合は，検索に掛けたいスケッチ領域をストロークで囲んで選択することによって３次元モデルを検索，配置することができる（図）．

/ $+/ 1+

既存の３次元ツールが多くのメニューやボタンを提供しているのに対し，ではユーザの手書きスケッチを入力としているので，ユーザは絵コンテのようなイメージを描きながら３次元シーンをデザインしていく．
システムのスクリーンショットを図 に示す．
スケッチウィンドウに表示されている床の上に，）．
３次元モデルのラフなスケッチを描く（図ユーザはマウスの左ボタン＋ドラッグ操作によってスケッチを入力することができる．スケッチが終わった後， 検索ボタン を押すことで，３次元モデル検索によって検索されたモデルが，モデルウィンドウ内に検索スコアの順に表示される．また，一番検索スコアが高いモデルは，ユーザのスケッチにフィットするように配置される（図）．描いたストロー
クや配置されたモデルを削除する場合は，削除した
い対象の上で 消しゴムジェスチャー をすることで削除することができる 図．配置されたモデルの姿勢が間違った場合は上の姿勢ウィンドウから姿勢を選ぶことができる 図．既に存在するモデル

図     システムのスクリーンショット．
モデルウィンドウ内，および，姿勢ウィンドウ内の数字は，そこに表示されるモデルの検索順位を表している．

,

1



モデルの配置と削除

３次元モデルの輪郭を手書きスケッチで描くことによって，３次元モデルを配置できる．ユーザは検索したい３次元モデルの輪郭を描く必要があるが，１つの３次元モデルに対して，スケッチを行う際，ストロークの数や，ストロークを描く順序などに制限はない．
では，シーン中に既に存在する３次元モデルの上に，新たなスケッチを重ねて描くことで，３次元モデルを既に存在する３次元モデルの上に配置することができる．通常の３次元ツールでは，モデルを他のモデルの上に乗せるためには，モデル同士の位置関係に気を配りながら移動，拡大縮小，回転の作業を何度も繰り返さなければならず，

 2 !" #  $ %# !  $& '   !

(a)

(b)

(c)

(g)

(f)

(i)

(l)

(e)

(d)

(h)

(j)

(m)

(k)

(n)

(o)

(p)

図  ３次元シーンデザインの概要

かなり時間がかかる作業である．
スケッチしている最中に，不要なストロークを見つけ削除したくなった場合や，一旦配置した３次元モデルを削除したくなった場合は，それぞれ，削除対象のストロークおよび３次元モデルの上で， 消しゴムジェスチャー を行うことで，消去を行うことができる．

,



３次元モデルの変更

３次元シーンをデザインしながら，既に配置した３次元モデルを，一旦他の類似したモデルで置き換えて比較したい場合がしばしばある．たとえば，ベッドルームをデザインしている際に，ベッドのモデルが多数存在する場合などである 図 ．通常の３次元ツールを利用した場合には，新たなベッドを選択して最初のベッドを配置したのと同様の作業を繰り返さなければならない．ベッドのモデル数が多ければ多いほど，モデルの変更に対する欲求は多くなり，その結果，冗長な操作をたくさん行わなければならない．
では，３次元モデルの変更を行う
場合は，変更したい３次元モデルをクリックする．ク
リックされたモデルが配置された時の２次元スケッチが記憶されているので，モデルウィンドウに，再び検索結果の候補一覧が表示される．この候補モデ/ + 

図  ベッドの選択画面

ルをクリックすることで，類似モデルとの変更することができる．

ビットマップ画像の利用

あらかじめ描かれた絵コンテなどのビットマップ画像を読み込み，画像中のスケッチを選択することで，選択されたスケッチをクエリーに，３次元モデルを配置することができる．画像中のスケッチの選択は，領域を囲むストロークを描くジェスチャーを使用する．

 アルゴリズム
提案システムは，ユーザのスケッチ入力に基づき適切な３次元モデルをデータベースから検索した上で，スケッチにフィットするようにその３次元モデルの姿勢を推定して３次元シーンに配置する．以下 distance
angle

angle
(b)

(a)
図  テレビモデルの斜め上から８つの視点で見た際の輪郭情報に，３次元モデル検索，３次元モデルの姿勢推定の各々のアルゴリズムについて述べる．

３次元モデル検索

本システムでは，検索対象となる３次元モデルのデータベースを作成する．ユーザから与えられる２次元スケッチは３次元モデルの輪郭を意図して描かれているので，データベース内にも，同様に３次元モデルの輪郭情報を保持して，マッチングに使用する必要がある．大体の３次元シーンは全体的な特徴を表現するため，斜め上 クォータビュー の視点を利用している．データベースには，１つの３次元モデルに対して，図 に示すように，斜め上から８つの視点で見た際の輪郭情報を保持しておく．８つの視点を選択したのは実験の結果，最も検索効率が良かったからである．
個々の輪郭情報は，画像そのものではなく，特徴ベクトルに変換されてデータベースに格納される．
本システムでは，検索効率を上げるために，２種類の特徴ベクトルを利用している．
１つ目の特徴ベクトルはを用い，輪郭の全体的な特徴を捉えるものである．まず，図の３次元モデルの輪郭線を抽出し，図に示すように，中心点を輪郭線画像の真ん中に取り，その中心点から最も遠い輪郭線までの距離を測定する．測定を中心点の周りに度行うことで，図に示すようなデータが得られる．このデータに対して離散フーリエ変換を行った結果から得られるデータが特徴ベクトルとなる（図）．
２つ目の特徴ベクトルは，輪郭の局所的な特徴に注目する らの手法を用いた ． らの手法では，図に示すように，輪郭線上に特徴点（コーナーに当たる点など）を求め，中心点からそれら特徴点までの距離のみをサンプリングしてデータ配列を作る 図．本システムではサンプリングを度の範囲で回行った．サンプリング値は度の範囲での合計値を用いている．
ユーザの手書きスケッチが入力されると，システ
ムはスケッチに対して，同様に，２種類の特徴ベク)

## 4
45/+/-+//++# &'## 31/+)/+"

/ 5/-++


5 "

44

図   らの手法による特徴ベクトル  中心点から輪郭線上の特徴点への距離を左周りの回転角に対サンプリングされたデータしてサンプリングを特徴ベクトルとして用いるトルを計算する．計算された特徴ベクトルに対し，データベース内の特徴ベクトルとのユークリッド距離をスコアとして比較する．このとき，スコアは２種類の特徴ベクトルに対するスコアの線形和をとったものとする．システムはスコアの順にモデルウィンドウに３次元モデルを表示する．

３次元モデルの姿勢推定検索されたモデルをユーザのスケッチにフィットさせるアルゴリズムについて述べる．
図 に示すように，ユーザのスケッチが ½ ¾  からなる点列で与えられているとする．一方，３次元モデルの各頂点  は，３次元モデルの姿勢を決める変換  と，カメラの姿勢を決める変換   によって，     として画面上に射影される．ここで解くべき問題は，対応する
 と  の距離がなるべく近くなるように， を推定することである．すなわち，%6

6 /      +¾
 /+を最小にするような  を最小二乗法によって推定する．
 と  は特徴ベクトルを求めるときに得られた点列である。本システムでは，変換  として，アフィン変換のうち移動，拡大／縮小，回転だけを取り扱う．さらに，３次元モデルは常に床，もしくは他の３次元モデル上に接していると仮定する．そのため， では 軸周りの回転だけをサポートする．また，拡大／縮小に関しては，縦横高さ方向に等倍率の拡大／縮小だけをサポートする．これは，ユーザのスケッチ入力の不正確さによって，容易に３次元モデルが，歪んでしまうのを防ぐためである．以上，移動，拡大／縮小， 軸周りの回転に相当する変数を未知数として，式の最小化することによって，３次元モデルの姿勢を決定する変換 を得ることができる．

/+ !" #  $ %# !  $& '   !
amplitude

distance

distance
angle

angle
(a)

frequency

(d)

(c)

(b)図      による特徴ベクトル  ３次元モデル
中心点から輪郭線への距離を左周りの回転角に対してサンプリング  サンプリングされたデータ  データをフーリエ変換した結果を特徴ベクトルとして用いる

va
Mobjectpa

Mcamera
qa

4vb
vdvc

qb
qc

pb
pc

qdpd



実装

  システムは 7' ' 89
44 の & を用いて実装されている．３次元グラフィックスシステムの実装には， 3#: 3 84を利用した．
ユーザの２次元スケッチに基づく３次元モデルの検索や配置は瞬時に実現されるが，データベースに３次元モデルを登録する際の事前処理には，モデルごとに２〜３秒を費やす．これは登録処理で，ビデオメモリを頻繁にアクセスする必要があるためであり，今後，最適化してパフォーマンスの向上を図ることが可能である．

結果)

)

 まとめと今後の発展

図  ユーザのスケッチに基づく姿勢推定 ユーザが描いたオレンジ色のスケッチに，レンダリング画像がフィットするように，３次元モデルの姿勢＝アフィン変換 を推定する．

を分けて，カテゴリ別２０個ずつのモデルを入れて実験した．実験の参加者は 人だったがモデルウィンドウの上位２個以内にユーザが望むモデルが入るケースは約％を示し，ユーザは次の候補を表示する操作をほとんどせずにシーンを構成することができた．ユーザのスケッチ時間は約分，３次元シーンの構成の時間は約 分かかった．

図 に，提案システムを用いてデザインした３次元シーンを示す．
行目の図は筆者ら， 行目の図はユーザ１名がデザインしたものである．野外，リビングルーム，ベッドルーム，乗り物のカテゴリ*

本稿では，手書きスケッチに基づく対話的な３次元シーンのデザイン手法，およびそのアルゴリズムについて紹介した．本手法を利用することにより，通常の３次元ツールの扱いに熟練したデザイナーだ
けでなく，初心者も使用法を学習する手間をそれほどかけずに，直観的に３次元シーンをデザインすることが可能となる．
今後の発展としては，検索アルゴリズムの改良による検索率の向上に取り組む予定である．また，今回は３次元モデル単位での検索のみをサポートしたが，メッシュセグメンテーションにより３次元モデルを代表的なパーツごとに分割し（例えば，家のモデルを，屋根，壁，窓，ドアに分割するなど），部品単位での検索，組み合わせによる３次元モデルデザインなどにも取り組みたい．また，複数の絵コンテをキーフレームとして利用することで，アニメーションを生成できるようなユーザインタフェースの研究も行う予定である．

参考文献
                     !"  "! ! 
 
 #$%#&'()# $$*

            -. / 0

# + ,    -1 231 $$ 図 ２次元スケッチをもとにデザインした３次元シーン結果．左列にユーザが与えた手書きスケッチと中央列に完成した３次元シーン，右列に回転されたシーンを示す．

 - ,"     / 4    5 5
3 !"0  ! 6 
71!  8                77 9#$)9# :8;  :; 231 #((9 1 - /
9 . ,  / -  - < =  5 1         5 " 1 "       !
"! ##%&'>)(? #((? -   "  1 @ !  .0!0 "  "!   #""$ % &'     (&          )  77 )9(:8 ;  :; 231 $$# 1 - /
A .     3 - !    .  . ' !"  ! "   
      #""$ % && 77
9($)9A 1 - / $$$
*   3 7 1 < ;  @ ; , @ 5 , 1Æ06  ! 3 !"0  40! 6     " (         "
  7 ?? @  !   231 #(( 7! 3" ! 
> 3 +8   , :   - + 
.     B ! " ! ! '      8 ! !

!C!

"! #%&'##)#> #((9 !

$ 1 /!   5 < . 1! ! ! ! 0! "   #    $ ((!$>$
( - 3    3     D 3   0! 6   7' "7  ! 6 !  ***         *+77 9)99 #((( - 37 !     7 ! E" !  , " #    8  /F"!  @   +F"! ***  !  !
! ! >%(&'((()(# $$A
# - 37 !     7 +7!  = ! 0 "!"!    F"!     0    8    #>%>&'A?)AA $$A
 . .   3 : !  . .     0=  !  ! 77 " !  !   7 !      ?%G#&'>)$9 $>$
9 4  H =  < /   5 , 
3<. '  ! "   !"   "    #""$ % &, 77 A)*(1 - / $$A