動的照明を活用したブロックトイ認識方式
橋本 菜摘

1

(指導教員：椎尾 一郎)

はじめに

ブロックトイは，直方体の形を基本形としてさまざまな形があり，それらを組み合わせることにより多様なものを表現することが出来る．従来，子供の玩具として考えられてきたが，近年ではアート作品も制作されるなど大人も楽しめるものとなった．しかし，凝ったアート作品を自分で一から組み立てることは容易ではない．また，ある作品を仕上げるために，組み立て説明書を同梱した組み立てキットも販売されているが，説明書を見ながら組み立てる作業は初心者には困難である．
そこで，コンピューターでブロックトイを認識し，組み立て方の手順を示す組み立て支援システムの実現をめざした．その実現のためには，どんな形のブロックトイがいくつ用意されてるのか把握する必要があると考えた．そこで本研究では，組み立て支援システムの前段階として，ブロックトイの認識システムを提案する．

2

図 2: 全体図

動的照明を用いたブロックトイ認識方式

物体を認識する方法としてさまざまな手段が考えられる．その 1 つが，画像処理である．しかし，単にカメラ画像を処理するだけでは，手などのようなブロックトイ以外のものが混入したときに，これをブロックトイと区別して認識することが困難であると予想される．そこで，照明を照らしたときに出来る，ブロックトイの突起部分の影を検出し，ブロックトイを認識するシステムを考案した．
図 1 のように，ブロックトイの左側から照明を照らした場合は突起部分の右側に影ができ，反対に右側から照明を照らした場合は突起部分の左側に影ができる．
このように照明をどの方向からブロックトイに照らしたかによって，できる影の向きが変わるため，ある特定の向きに出来るブロックトイの突起部分の影を検出することで，ブロックトイを効率よく認識するとともに，手などの突起の無い物体を認識対象から排除できる．

図 3: システム構成図

3実装

3.1

概要

動的照明による認識の有用性を確認するために，ブロックトイ認識システムを制作した．図 2 に本システ
ムの全体図を示す．
作業エリアは，組み立て支援システムに発展させた
ときに，ユーザーがブロックトイの組み立てを行う場所である．ユーザーから向かって右側，正面，左側の３方向に高さ 5cm の壁があり，そのうちの右側，左側の壁にそれぞれ３つずつ等間隔に照明となる LED を付け，また作業エリアに設置した LED を制御するために，マイコン (Arduino Uno) を使用した．LED が光ったときに写真を撮るカメラには Logicool HD Pro
Webcam C920 を使用した．なお本システムは，MacOS 10.7.5 上で C 言語により開発した．

3.2

撮影と画像処理PC からシリアル通信で Arduino を制御し，作業エリアの右側にある３個の LED，左側にある３個の LED，両側にある計６個の LED を順番に光らせる．Arduino
が LED を光らせると，PC に LED を光らせたことをシリアル通信で知らせる．PC が Arduino から LEDを光らせたという情報を受け取ると，カメラを起動し，LED が光っている写真を撮る．撮った写真３枚 (右側の LED が光っている写真，左側の LED が光っている
写真，左右両側の LED が光っている写真) を用いて，画像処理を行い，ブロックトイを検出し，検出結果をPC の画面に表示した．
以下では，OpenCV を使った画像処理の大まかな流図 1: 左：左側から照らした場合右：右側から照らした場合

3図 4: 2 値化した突起部分の影画像
れを示す．

図 5: ブロックトイの検出結果• 差分抽出トイだと判断してしまうことが分かった．また，作業エリア中央や端など LED の光が届きにくい場所にあるブロックトイが認識できていないこともわかった．

両側の LED が光っている写真から左側の LED が光っている写真の差分を抽出し，差分画像を生成する．実際に本システムで左側の LED を光らせたものが，図 1 の左側の写真である．

4• 2 値化

生成した差分画像を 2 値化する．実際に 2 値化したブロックトイ 1 つ分の突起部分の影画像が図 4である．

• テンプレートマッチング

ブロックトイの突起部分の影の画像をテンプレー
ト画像として用いて，テンプレートマッチングを行う．閾値をもうけ，突起部分の影に似た画像部分を抽出する．

• ブロックトイ判別

5

検出した影の画像がブロックトイの突起部分の影かどうか判別する．判別したブロックトイの突起部分の影から，どこからどこまでが 1 つのブロッ
クトイの突起部分の影なのか判別する．1 つのブ
ロックトイと判別したものを矩形で囲む．

まとめと今後の課題

動的照明を用いて，ブロックトイの突起部分の影を検出し，ブロックトイを認識するシステムを実装した．
カメラの露出にムラがあり，うまく影が取れないことが分かった．カメラの自動露出機能により光量変化した画像が同じ条件で取得できないこと，照明や太陽光などの環境光に影響を受けていること，LED の明るさにムラがあることなどさまざまな要因が考えられる．
原因を解明し，システムを改良していきたい．
また，ブロックトイの認識率を上げ，誤認識を減らすためにテンプレート画像を増やしたり，テンプレートマッチングを行う範囲を狭くするなどして現在の方法を見直したい．
そして，ブロックトイ認識を完成させて，本システ
ムを利用したブロックトイの組み立て支援システムにつなげていきたい．

以上の４ステップを右側の LED を光らせた場合にも適用する，

3.3

関連研究

ブロックトイを認識し，組み立てを支援するシステムに DuploTrack[1] がある．ユーザーの手元にある実際のブロックトイの動きを追跡し，ユーザーから見えている方向とほぼ同じ方向からみたブロックトイをディスプレイに表示し，組み立てを支援する．ブロックト
イを認識するために，DuploTrack[1] では深度センサを用いているが，カメラの解像度が低いため，大きなブロックトイしか認識できないという問題がある．
また，岩下らは，複数の赤外線ライトによる影をもちいて検出した歩容により個人認識 [2] を行った．複数の赤外線ライトと１台のカメラを用いて，対象人物の影領域を抽出し，個人の識別を行っている．

ブロックトイ判別方法

テンプレートマッチングをして，検出されたものがブロックトイの突起部分の影であるかどうか判別するために，マッチングした箇所の中で隣り合うものの距離が閾値以下のものをブロックトイとした．ここで用いる閾値は，ブロックトイの突起部分の距離である．
つぎに，距離が閾値以下となるものの組み合わせを作り，どこからどこまでが 1 つのブロックトイなのか区別し，その結果をディスプレイに表示した．
ブロックトイを検出した表示例が図 5 である．
この場合，20 個あるブロックトイのうち 14 個が認識され，認識率は 7 割であった．テンプレートマッチ
ングの際に，ブロックトイであるのに突起部分の影がうまく取れなかったためにブロックトイではないと判断したり，反対にブロックトイではないのにブロック

参考文献[1] Ankit Gupta Director Fox Brian Curless Michael Cohen：DuploTrack: a real-time system for authoring andguiding duplo block assembly（UIST 2012）[2] 岩下友美 内野康司 倉爪 亮：複数の赤外線ライトによる影を用いた歩容による個人識別（電子情報通信学会2012）4