アニメーションARマーカを用いたアドホック通信の提案

22
AR用いた 通信の提案 山本 眞也 柴田 直樹 †† 山口東京理科大学 †† 奈良先端科学技術大学院大学 2013/7/11 DICOMO 2013 1

description

データをモザイク状の画像マーカにエンコードし,携帯電話に搭載されたカメラで読み取ることのできるQR コードが普及している.QR コードのような二次元バーコードで大きなデータを扱おうとすると,画像マーカが大きくなってしまい,読み取るために高解像度のカメラと大きな CPU 資源が必要になる.また,Micro payment などの目的で,目の前にある 2 つの端末を確実に指定して,その間で暗号による通信を行いたい場合,無線電波通信ではなく,ディスプレイからカメラにデータ送信ができれば有用である.そこで,我々は AR マーカの読み取り手法を応用し,送信端末がディスプレイに AR マーカをアニメーションさせ,受信端末がカメラを用いてそのアニメーションする AR マーカを撮影し,読み取ることによってデータ通信を行うようなアドホック通信を提案する.また,CPU 負荷を GPU に分散し,デバイス全体として高いパフォーマンスを実現するための,GPGPU を用いた画像処理アルゴリズムについても合わせて提案する.

Transcript of アニメーションARマーカを用いたアドホック通信の提案

Page 1: アニメーションARマーカを用いたアドホック通信の提案

アニメーションARマーカを用いた

アドホック通信の提案

山本 眞也†,柴田 直樹

††

†山口東京理科大学

††奈良先端科学技術大学院大学

2013/7/11 DICOMO 2013 1

Page 2: アニメーションARマーカを用いたアドホック通信の提案

研究背景

2013/7/11 DICOMO 2013 2

� スマートフォンの普及

�高解像度カメラ,高精細ディスプレイ,高性能CPU,GPU内蔵

� QRコードの普及

� ARアプリケーションが注目を集めている

� 携帯通信網,無線LAN網の混雑

�あらゆるコンテンツがインターネットを経由

�インターネットを必要としないローカルなデータ交換など

� 秘匿通信のための新たな通信経路の必要性

� Micro payment などでの秘密鍵交換の安全性確保

�盗み聞き や man-in-the-middle攻撃への対策

インターネットや電波通信網を用いない通信手段が必要

Page 3: アニメーションARマーカを用いたアドホック通信の提案

アニメーションアニメーションアニメーションアニメーションARマーカを用いた通信マーカを用いた通信マーカを用いた通信マーカを用いた通信手法を提案手法を提案手法を提案手法を提案

� 電波通信網を用いない手軽なアドホック通信

� 一般的なスマートフォンで利用可能

本研究の概要

2013/7/11 DICOMO 2013 3

撮影されたマーカ群を

データへデコード

カメラで録画

データ

データ

アニメーションする

ARマーカとして描画

送信側

受信側

Page 4: アニメーションARマーカを用いたアドホック通信の提案

関連研究

� Unsynchronized 4D barcodes[1](Langlotz, T, et al.)

� 2Dカラーバーコード

� QVGA 2.5 fps で 毎分 1,400 キャラクタ

� 複数色を利用

�ディスプレイ・カメラの性能に大きく依存

�環境の変化に弱い(光源の変化など)

� マーカあたりの情報量に制限

� 通信速度(マーカ読み取り速度)が低速

2013/7/11 DICOMO 2013 4

[1] Langlotz, T. and Bimber, O.: “Unsynchronized 4D barcodes: coding and decoding time-multiplexed

2D color-codes,” Proc. of the 3rd international conference on Advances in visual computing(ISVC’07),

pp. 363-374, 2007.

近隣ピクセル

との混色

Page 5: アニメーションARマーカを用いたアドホック通信の提案

� 既存のアニメーションARマーカ

� 環境やディスプレイ・カメラの性能に強く依存

� QRコードの延長(あらかじめ用意されたマーカを読み取る)

� 提案手法

� 環境や端末の性能への依存が比較的低い

� リアルタイムなエンコード・デコード

本研究の立ち位置

2013/7/11 DICOMO 2013 5

� 2Dカラーバーコード

� 低速アニメーション

� 低解像度マーカ

� 2Dモノクロバーコード

� 高速アニメーション

� 高解像度マーカ

Page 6: アニメーションARマーカを用いたアドホック通信の提案

システム実現への課題

課題

� 非同期なディスプレイとカメラよる手軽な通信の実現のために

1. アニメーションに適した高速に検出できるマーカ構造

2. アニメーションするマーカの正確な読み取り

3. 検出されたノイズや重複を含むマーカ群から適切な

マーカを取捨選択

2013/7/11 DICOMO 2013 6

送信側端末 受信側端末

カメラディスプレイ

データ

エンコード

マーカ群

アニメーション

描画

検出

マーカ群

デコード

データ

Page 7: アニメーションARマーカを用いたアドホック通信の提案

課題(1/3):アニメーション用マーカ

2013/7/11 DICOMO 2013 7

送信側端末 受信側端末

カメラディスプレイ

データ

エンコード

マーカ群

アニメーション

描画

検出

マーカ群

デコード

データ

課題 1: アニメーションに適した高速に検出できるマーカ構造

� 複雑なマーカ構造は検出・エンコード・デコードに時間がかかる

解決策: 新たなマーカ構造を提案

Page 8: アニメーションARマーカを用いたアドホック通信の提案

2013/7/11 DICOMO 2013 8

提案するマーカ構造

� 最小単位(正方形) = セル

�セルの大きさ(pixel)は自由

� 1セル = 1ビット

�モノクロ(白=0,黒=1)

� マーカ粒度(何セル用いるか)

� 7x7セル以上

�一辺のセル数は奇数

� 固定セル

�リム = マーカの外枠

�基準点B = 右上,右下

�基準点W = 左下,中心

� ペイロード(可変セル)

�リムと基準点を除くセル

�次ページで解説

基準点およびリム(色B)

基準点および背景(色W)

ペイロード

11x11セルのマーカの例

Page 9: アニメーションARマーカを用いたアドホック通信の提案

ペイロードの構成

� カウンタ部: アニメーション・フレーム番号(8〜64ビット)

� データ部 : マーカごとに分割された送信データ(8ビット単位)

� 冗長部 : データ部の誤り検出訂正符号(サイズは方式に依存

ペイロードの配分法

1. マーカ粒度,仮のカウンタ部サイズ,誤り検出訂正符号を決める

2. 仮カウンタ部サイズを引いたペイロードにデータ部,冗長部を割り当てる

3. 2.で余ったペイロードをカウンタ部に加え,カウンタ部のサイズを確定する

2013/7/11 DICOMO 2013 9

データ部

冗長部

カウンタ部

設定値

7x7セル(ペイロード 21セル)

仮カウンタ部 = 8セル

(15,11)ハミング符号

Page 10: アニメーションARマーカを用いたアドホック通信の提案

課題(2/3):高速なマーカ読み取り

2013/7/11 DICOMO 2013 10

送信側端末 受信側端末

カメラディスプレイ

データ

エンコード

マーカ群

アニメーション

描画

検出

マーカ群

デコード

データ

課題 2: アニメーションするマーカの正確な読み取り

� 誤検出を出来る限りなく少なくしなければならない

� 高解像度・高フレームレートでもリアルタイム処理しなければならない

解決策: GPGPUによる画像解析を用いたマーカ読み取り手法を提案

� GPGPUによる連結成分抽出

� CPUによる座標変換・ペイロード読み込み

Page 11: アニメーションARマーカを用いたアドホック通信の提案

GPU処理部:連結成分抽出① Sobel Operator,Edge Thinning,二値化 を順に適用し,連結成分を抽出する

② 30ピクセル未満の連結成分(ノイズ)を破棄する

③ 各連結成分の2次元座標 X,Y の最小値,最大値を利用し,マーカの角を見つけるための8つの代表点を求める(重複を含む)

2013/7/11 DICOMO 2013 11

上,下,左,右,左上,左下,右上,右下

① ②,③

入力画像 連結成分抽出 代表点抽出

Page 12: アニメーションARマーカを用いたアドホック通信の提案

1. 最も遠い2点を選択し,線分を引く

2. 線分の中点から垂直ベクトル方向に最も離れた2点を選択し,線分を引く

3. これらの4点と2線分を,頂点と対角線とする四角形をマーカとみなす

4. 対角線の交点のピクセルが,マーカ中央の基準点の指定色でない

連結成分を削除

5. 最小二乗法による回帰分析を行い,サブピクセル精度の座標へ修正する

CPU処理部:マーカの検出・補正

2013/7/11 DICOMO 2013 12

GPU部で抽出された連結成分の代表点

Page 13: アニメーションARマーカを用いたアドホック通信の提案

DICOMO 20132013/7/11

CPU部:座標計算・ペイロード読込1. 2次元座標からマーカの3次元姿勢を算出

2. 2次元の正方形に変換し,各セルの位置・ピクセル位置を計算し,ペイロードとして読み出す

13

90°

1

1

視点

二次元画像

のマーカ頂点

マーカの

三次元位置

0110 1010 0011

1101 0001 11111

111

1

1 1

10 0

0

0 00

00 0

0

Page 14: アニメーションARマーカを用いたアドホック通信の提案

課題(3/3):マーカの選別

2013/7/11 DICOMO 2013 14

送信側端末 受信側端末

カメラディスプレイ

データ

エンコード

マーカ群

アニメーション

描画

検出

マーカ群

デコード

データ

課題 3: 検出されたマーカ群から適切なものを取捨選択

� 検出されたマーカは誤検出やアニメーションの影響によるノイズを含む

� アニメーションタイミングと撮影タイミングが非同期なため,重複を含む

解決策: 直前に検出したマーカを利用した逐次選別法を提案

Page 15: アニメーションARマーカを用いたアドホック通信の提案

マーカの逐次選別手法

2013/7/11 DICOMO 2013 15

検出したマーカのカウンタ Nと直前のマーカのカウンタMを比較

• Mを書き出す

• Nを次の比較対象とす

N = M+1

次のマーカ(カウンタ O)を読み込む

Nはカウンタエラー

• N をM+1に修正

• Mを書き出す

Nはノイズ

• N を削除

Nまでドロップ

• NまでNULL

を入れる

それ以外

O = M+2O = M+1 それ以外

• ペイロードで多数決

• 多数

• 同票ならば中間

点のマーカ

をMに上書き

• それ以外を破棄

N = M

O = MO ≠ M

Page 16: アニメーションARマーカを用いたアドホック通信の提案

実験

�実験1:マーカ検出速度評価

�アニメーションするマーカを正確に読み取れるだけのマー

カ検出速度を実現できているか

�実験2:読み取りエラー率評価

�どの程度のアニメーション速度(fps)に耐えうるか

�どの程度の検出ドロップ,検出エラーを含むか

�どの程度の誤り訂正符号を含めるべきか

2013/7/11 DICOMO 2013 16

Page 17: アニメーションARマーカを用いたアドホック通信の提案

実験1:マーカ検出速度評価

アニメーションするマーカを読み取れる検出速度を実現できている

かを評価

� 画像を入力し,マーカを検出するまでの速度を計測

� 提案手法(GPGPU読み取り手法) と ARToolkit による比較

� 実験環境

� Java 7,JOGL 1.1.1,JOCL 0.1.7,OpenCV 2.4.2

� 入力画像

� SIMPLE と COMPLEX の2種類の画像

� 480p, 720p, 1080pの3種類の解像度

2013/7/11 DICOMO 2013 17SIMPLE COMPLEX

CPU GPU

OLD PC Core2Quad (2.4GHz) GeForce GTX 560 Ti

NEW PC Core i7 (2.5GHz) GeForce 470 GTX

Page 18: アニメーションARマーカを用いたアドホック通信の提案

マーカ検出速度

2013/7/11 DICOMO 2013 18

提案手法は,既存手法より高速!

FullHDかつ30fps以上(33ms以内)で動作可能

Page 19: アニメーションARマーカを用いたアドホック通信の提案

実験2:読み取りエラー率評価

� どの程度のアニメーション速度に耐えうるか

� マーカのドロップ率,マーカごとのエラー率はどの程度か

� マーカ粒度とアニメーション速度を変え,マーカのドロップ率とマーカ毎の

エラー率を計測

実験環境

� Java 7,JOGL 1.1.1,JOCL 0.1.7,OpenCV 2.4

� 650x650 pixel 程度のマーカ を 720p, 30fps で撮影

2013/7/11 DICOMO 2013 19

マーカ粒度 9x9 13x13 17x17 19x19

ペイロード

データ部 32 104 208 272

カウンタ部 13

冗長部 -

アニメーション速度(FPS) 5, 10, 15, 30

CPU GPU

SENDER Core i7(1.8GHz) HD Graphics 3000 LG W2253V(1080p, 21.5 inch)

RECEIVER Core i7(2.66GHz) GeForce 470 GTX Intel LifeCamStudio Q2F-00020

50cm

を評価

Page 20: アニメーションARマーカを用いたアドホック通信の提案

検出ドロップ率

2013/7/11 DICOMO 2013 20

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

5 10 15 30 5 10 15 30 5 10 15 30 5 10 15 30

9x9 13x13 17x17 19x19

Drop

Error

Complete

FPS

Marker Size

10fpsまではほぼ問題なく読み取りが可能

Page 21: アニメーションARマーカを用いたアドホック通信の提案

マーカ単位のエラー率

2013/7/11 DICOMO 2013 21

0

5

10

15

20

25

30

35

40

45

50

5 10 15 30 5 10 15 30 5 10 15 30 5 10 15 30

9x9 13x13 17x17 19x19

[ % ]

FPS

Marker Size

最大値

第3四分位

中央値

第1四分位

最小値

オートフォーカス機能をカットできれば,安定した 10 fps による通信が可能

19x19,10 fpsのとき,2,720 bpsで通信でき,既存手法(187 bps)を大きく上回る

オートフォーカスによって一度だけ

大きなエラーが発生

Page 22: アニメーションARマーカを用いたアドホック通信の提案

まとめ

� アニメーションARマーカによるアドホック通信手法を提案しました

� アニメーションに適した高速に検出できるマーカ構造

� GPGPUを利用した高速かつ正確なマーカ読み取り手法

� ノイズや重複を含むマーカ群から適切なマーカを逐次選別する手法

� 高速にARマーカを読み取れることを示した

� 1080pの複雑な映像でも,30fpsでマーカ検出可能

� 1マーカあたりのマーカドロップ率・マーカエラー率について示した

� 一般的な環境下において,10fpsのアニメーションで,ほぼエラーなしで受信可能

今後の予定

� 177x177(QRコード最大サイズ)以上の粒度の高いマーカで実験

� マーカ読取手法のCPU処理部(座標変換・ペイロード読み込み)の高速化

� NACKに相当する再送処理の手段を考案・実装

2013/7/11 DICOMO 2013 22