SlideShare ist ein Scribd-Unternehmen logo
1 von 73
まよいの墓(レゴ編)
2017/2/23
Image Recognition (failure) Specialist at Studio Arcana
勝見 幸弘
参加しました
作りました
全体図
全体図
ココらへんを担当
やったこと
レゴで迷路を作る
レゴをカメラで撮影
撮影画像から2次元配列データを作成
配列データをサーバに送信
撮影(webカメラ)
画像解析
サーバに送信
VRとかの処理
迷路作成(レゴ)
担当部分
前提
• ブラウザ上で実装する。
• 画像解析などもjavascriptで行う。
webVRだしね
撮影(webカメラ)
画像解析
サーバに送信
VRとかの処理
迷路作成(レゴ)
個別に解説
迷路作成(レゴ)
迷路作成(レゴ)
• 下地として白のレゴを敷き詰める。白のレゴ
が通路となる。
• 赤のレゴを置く。赤のレゴが壁となる。
• 左上・右下に青のレゴを置く。左上がスター
ト、右下がゴールとなる。
迷路作成(レゴ)
• 青や赤のレゴは白のレゴの上に置く。
• レゴの凸1つを1マスとし、全体は16×16マス
の迷路とする。
迷路作成(レゴ)
こんな感じ
迷路作成(レゴ)
こんな感じ
スタート
ゴール
通路
壁
16個
16個
撮影(webカメラ)
撮影(webカメラ)
• レゴを撮影する。
• 撮影の際はカメラを持つ手などの影が映らな
いようにする。
撮影(webカメラ)
こんな感じ
撮影(webカメラ)
こんな感じ
カメラ
画像解析
画像解析
• レゴを撮影した画像を2次元配列のjsonデータ
にする。
• jsonデータはレゴと同じ16×16として、レゴの
状態を表現する。
• 赤いレゴを1、その他の色のレゴを0とする。
画像解析
こんな感じ
{
data: [
[ 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
[ 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0 ],
[ 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1 ],
[ 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ],
・・中略・・
[ 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0 ],
[ 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ],
[ 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0 ]
]
}
16行
16列
サーバに送信
サーバに送信
• 画像解析で生成したjsonデータを送信する。
• websocketで行う。
サーバに送信
こんな感じ
var socket = io(‘http://xxxx.xxx.xx‘);
socket.emit('maze_update', json_data);
ここはサーバ実装者に言われただけな
のでほぼノータッチ
全部を組み合わせる
こんな感じ
ではテスト
レゴの迷路
変換
変換
jsonだとわかりにくいのでmapぽく変換
比較
比較
おしい!
おしい!
いない。。
いけるんじゃない?
簡単じゃん!
では状態を変えて再テスト
レゴの迷路
変換
全然駄目!!!!!!
全然駄目!!!!!!
• 10回やったら成功パターンは2回程度
(´・ω・`).;:…
全然駄目!!!!!!
• 10回やったら成功パターンは2回程度
• 大体駄目なパターンになる
(´・ω…:.;::..
全然駄目!!!!!!
• 10回やったら成功パターンは2回程度
• 大体駄目なパターンになる
• そもそも
きれいな正方形に撮影することが困難
(´・;::: .:.;: サラサラ..
まよいの墓
材料
まずレゴをデータにしま・・・
ああ・・・
あああああ ああああああああああああ
ああああああああああああ
もういい。。
問題1
レゴの高さが無視できない
レゴの高さが無視できない
レゴを横から見る
レゴの高さが無視できない
光
レゴの高さが無視できない
光
影
レゴの高さが無視できない
光
影
影の部分をブロックに
誤認識してしまう
レゴの高さが無視できない
ひどい。。。。
問題2
レゴの高さが無視できない2
レゴを真上から見たとき
理想
レゴを真上から見たとき
現実(雑)
レゴを真上から見たとき
現実(雑)
レゴのマスが正常に測定できない
レゴの高さが無視できない2
上に乗ってるレゴと下のレゴで面積が違う
レゴの高さが無視できない2
上に乗ってるレゴと下のレゴで面積が違う
めっちゃせまい狭い。。。。。。。
解決策
そんなものは無かった
たぶん
• 光いっぱい当てる
• 平面で撮れるようにカメラのセッティングを
努力する
。。とかでできるんじゃないですか?
他にも
レゴも何種類化の色を使って道と壁以外の表現
をしたかった。
使いたかった。。
他にも
レゴも何種類化の色を使って道と壁以外の表現
をしたかった。
撮影のタイミング次第でレゴの色がかわってし
まうため諦め。。。
まとめ
• レゴの高さが無視できない(影ができる)
• レゴの高さが無視できない(レゴの1マスを1
マスと認識できない)
まとめ
• レゴの高さが無視できない(影ができる)
• レゴの高さが無視できない(レゴの1マスを1
マスと認識できない)
当日解決せず!
簡単にできると思ってた。。
http://news.infoseek.co.jp/article/prtimes_000000034_000014803/
とある記事
http://news.infoseek.co.jp/article/prtimes_000000034_000014803/
とある記事
http://news.infoseek.co.jp/article/prtimes_000000034_000014803/
とある記事
本当すいません!

Weitere ähnliche Inhalte

Mehr von Yukihiro Katsumi (10)

New Relic の一部機能を触った話
New Relic の一部機能を触った話New Relic の一部機能を触った話
New Relic の一部機能を触った話
 
エンタープライズアプリケーションアーキテクチャパターン
エンタープライズアプリケーションアーキテクチャパターンエンタープライズアプリケーションアーキテクチャパターン
エンタープライズアプリケーションアーキテクチャパターン
 
Php artisan migrate
Php artisan migratePhp artisan migrate
Php artisan migrate
 
swooleを試してみた
swooleを試してみたswooleを試してみた
swooleを試してみた
 
今更ながらDBのカウントアップの話
今更ながらDBのカウントアップの話今更ながらDBのカウントアップの話
今更ながらDBのカウントアップの話
 
arcadeがやりたい!
arcadeがやりたい!arcadeがやりたい!
arcadeがやりたい!
 
Brainf**k
Brainf**kBrainf**k
Brainf**k
 
Virtualbox+vagrant+docker
Virtualbox+vagrant+dockerVirtualbox+vagrant+docker
Virtualbox+vagrant+docker
 
ぱわぽ
ぱわぽぱわぽ
ぱわぽ
 
アルカナに入社しました。
アルカナに入社しました。アルカナに入社しました。
アルカナに入社しました。
 

まよいの墓(レゴ編)