Upload
naistis
View
852
Download
2
Embed Size (px)
DESCRIPTION
データをモザイク状の画像マーカにエンコードし,携帯電話に搭載されたカメラで読み取ることのできるQR コードが普及している.QR コードのような二次元バーコードで大きなデータを扱おうとすると,画像マーカが大きくなってしまい,読み取るために高解像度のカメラと大きな CPU 資源が必要になる.また,Micro payment などの目的で,目の前にある 2 つの端末を確実に指定して,その間で暗号による通信を行いたい場合,無線電波通信ではなく,ディスプレイからカメラにデータ送信ができれば有用である.そこで,我々は AR マーカの読み取り手法を応用し,送信端末がディスプレイに AR マーカをアニメーションさせ,受信端末がカメラを用いてそのアニメーションする AR マーカを撮影し,読み取ることによってデータ通信を行うようなアドホック通信を提案する.また,CPU 負荷を GPU に分散し,デバイス全体として高いパフォーマンスを実現するための,GPGPU を用いた画像処理アルゴリズムについても合わせて提案する.
Citation preview
アニメーションARマーカを用いた
アドホック通信の提案
山本 眞也†,柴田 直樹
††
†山口東京理科大学
††奈良先端科学技術大学院大学
2013/7/11 DICOMO 2013 1
研究背景
2013/7/11 DICOMO 2013 2
� スマートフォンの普及
�高解像度カメラ,高精細ディスプレイ,高性能CPU,GPU内蔵
� QRコードの普及
� ARアプリケーションが注目を集めている
� 携帯通信網,無線LAN網の混雑
�あらゆるコンテンツがインターネットを経由
�インターネットを必要としないローカルなデータ交換など
� 秘匿通信のための新たな通信経路の必要性
� Micro payment などでの秘密鍵交換の安全性確保
�盗み聞き や man-in-the-middle攻撃への対策
インターネットや電波通信網を用いない通信手段が必要
アニメーションアニメーションアニメーションアニメーションARマーカを用いた通信マーカを用いた通信マーカを用いた通信マーカを用いた通信手法を提案手法を提案手法を提案手法を提案
� 電波通信網を用いない手軽なアドホック通信
� 一般的なスマートフォンで利用可能
本研究の概要
2013/7/11 DICOMO 2013 3
撮影されたマーカ群を
データへデコード
カメラで録画
データ
データ
アニメーションする
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.
近隣ピクセル
との混色
� 既存のアニメーションARマーカ
� 環境やディスプレイ・カメラの性能に強く依存
� QRコードの延長(あらかじめ用意されたマーカを読み取る)
� 提案手法
� 環境や端末の性能への依存が比較的低い
� リアルタイムなエンコード・デコード
本研究の立ち位置
2013/7/11 DICOMO 2013 5
� 2Dカラーバーコード
� 低速アニメーション
� 低解像度マーカ
� 2Dモノクロバーコード
� 高速アニメーション
� 高解像度マーカ
システム実現への課題
課題
� 非同期なディスプレイとカメラよる手軽な通信の実現のために
1. アニメーションに適した高速に検出できるマーカ構造
2. アニメーションするマーカの正確な読み取り
3. 検出されたノイズや重複を含むマーカ群から適切な
マーカを取捨選択
2013/7/11 DICOMO 2013 6
送信側端末 受信側端末
カメラディスプレイ
データ
エンコード
マーカ群
アニメーション
描画
検出
マーカ群
デコード
データ
課題(1/3):アニメーション用マーカ
2013/7/11 DICOMO 2013 7
送信側端末 受信側端末
カメラディスプレイ
データ
エンコード
マーカ群
アニメーション
描画
検出
マーカ群
デコード
データ
課題 1: アニメーションに適した高速に検出できるマーカ構造
� 複雑なマーカ構造は検出・エンコード・デコードに時間がかかる
解決策: 新たなマーカ構造を提案
2013/7/11 DICOMO 2013 8
提案するマーカ構造
� 最小単位(正方形) = セル
�セルの大きさ(pixel)は自由
� 1セル = 1ビット
�モノクロ(白=0,黒=1)
� マーカ粒度(何セル用いるか)
� 7x7セル以上
�一辺のセル数は奇数
� 固定セル
�リム = マーカの外枠
�基準点B = 右上,右下
�基準点W = 左下,中心
� ペイロード(可変セル)
�リムと基準点を除くセル
�次ページで解説
基準点およびリム(色B)
基準点および背景(色W)
ペイロード
11x11セルのマーカの例
ペイロードの構成
� カウンタ部: アニメーション・フレーム番号(8〜64ビット)
� データ部 : マーカごとに分割された送信データ(8ビット単位)
� 冗長部 : データ部の誤り検出訂正符号(サイズは方式に依存
)
ペイロードの配分法
1. マーカ粒度,仮のカウンタ部サイズ,誤り検出訂正符号を決める
2. 仮カウンタ部サイズを引いたペイロードにデータ部,冗長部を割り当てる
3. 2.で余ったペイロードをカウンタ部に加え,カウンタ部のサイズを確定する
2013/7/11 DICOMO 2013 9
データ部
冗長部
カウンタ部
設定値
7x7セル(ペイロード 21セル)
仮カウンタ部 = 8セル
(15,11)ハミング符号
課題(2/3):高速なマーカ読み取り
2013/7/11 DICOMO 2013 10
送信側端末 受信側端末
カメラディスプレイ
データ
エンコード
マーカ群
アニメーション
描画
検出
マーカ群
デコード
データ
課題 2: アニメーションするマーカの正確な読み取り
� 誤検出を出来る限りなく少なくしなければならない
� 高解像度・高フレームレートでもリアルタイム処理しなければならない
解決策: GPGPUによる画像解析を用いたマーカ読み取り手法を提案
� GPGPUによる連結成分抽出
� CPUによる座標変換・ペイロード読み込み
GPU処理部:連結成分抽出① Sobel Operator,Edge Thinning,二値化 を順に適用し,連結成分を抽出する
② 30ピクセル未満の連結成分(ノイズ)を破棄する
③ 各連結成分の2次元座標 X,Y の最小値,最大値を利用し,マーカの角を見つけるための8つの代表点を求める(重複を含む)
2013/7/11 DICOMO 2013 11
上,下,左,右,左上,左下,右上,右下
① ②,③
入力画像 連結成分抽出 代表点抽出
1. 最も遠い2点を選択し,線分を引く
2. 線分の中点から垂直ベクトル方向に最も離れた2点を選択し,線分を引く
3. これらの4点と2線分を,頂点と対角線とする四角形をマーカとみなす
4. 対角線の交点のピクセルが,マーカ中央の基準点の指定色でない
連結成分を削除
5. 最小二乗法による回帰分析を行い,サブピクセル精度の座標へ修正する
CPU処理部:マーカの検出・補正
2013/7/11 DICOMO 2013 12
GPU部で抽出された連結成分の代表点
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
課題(3/3):マーカの選別
2013/7/11 DICOMO 2013 14
送信側端末 受信側端末
カメラディスプレイ
データ
エンコード
マーカ群
アニメーション
描画
検出
マーカ群
デコード
データ
課題 3: 検出されたマーカ群から適切なものを取捨選択
� 検出されたマーカは誤検出やアニメーションの影響によるノイズを含む
� アニメーションタイミングと撮影タイミングが非同期なため,重複を含む
解決策: 直前に検出したマーカを利用した逐次選別法を提案
マーカの逐次選別手法
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
実験
�実験1:マーカ検出速度評価
�アニメーションするマーカを正確に読み取れるだけのマー
カ検出速度を実現できているか
�実験2:読み取りエラー率評価
�どの程度のアニメーション速度(fps)に耐えうるか
�どの程度の検出ドロップ,検出エラーを含むか
�どの程度の誤り訂正符号を含めるべきか
2013/7/11 DICOMO 2013 16
実験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
マーカ検出速度
2013/7/11 DICOMO 2013 18
提案手法は,既存手法より高速!
FullHDかつ30fps以上(33ms以内)で動作可能
実験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
を評価
検出ドロップ率
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まではほぼ問題なく読み取りが可能
マーカ単位のエラー率
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)を大きく上回る
オートフォーカスによって一度だけ
大きなエラーが発生
쨠
まとめ
� アニメーションARマーカによるアドホック通信手法を提案しました
� アニメーションに適した高速に検出できるマーカ構造
� GPGPUを利用した高速かつ正確なマーカ読み取り手法
� ノイズや重複を含むマーカ群から適切なマーカを逐次選別する手法
� 高速にARマーカを読み取れることを示した
� 1080pの複雑な映像でも,30fpsでマーカ検出可能
� 1マーカあたりのマーカドロップ率・マーカエラー率について示した
� 一般的な環境下において,10fpsのアニメーションで,ほぼエラーなしで受信可能
今後の予定
� 177x177(QRコード最大サイズ)以上の粒度の高いマーカで実験
� マーカ読取手法のCPU処理部(座標変換・ペイロード読み込み)の高速化
� NACKに相当する再送処理の手段を考案・実装
2013/7/11 DICOMO 2013 22