SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

「crocro.jscam」ライブラリの使い方
――JavaScriptでWebカメラの画像やマーカー情報を取得するライブラリ

ダウンロード jscam_1.1.0.zip (60.2 KB)

マーカー認識の仕組み

 「crocro.jscam」では、一般的なARマーカーの認識と、柳井オリジナルのドット・パターンの認識が行えます。それぞれの仕組みについて、簡単に解説しておきます。

ARマーカーの認識

 ARマーカーの認識は、以下のようになります。

  • 【1】ノイズを減らすために、画像をぼかす。
  • 【2】2値化する。
  • 【3】地続きの領域の情報を得る(ラベリング)。
  • 【4】ラベリングされた中から、マーカーと一致する領域を探す。

 「crocro.jscam」では、【1】~【3】までは一般的な方法と同じです。しかし【4】の方法が少し違います。

 「crocro.jscam」では、ラベリングを行う際に、同時に2つの座標軸の上下左右の端を記録します。この2つの座標を仮に、正座標と45度座標と呼んでおきます。

 この2つの座標系で上下左右の端点を記録すると、このどちらかで射影変換をすれば、簡単にマーカーとの一致を確かめられます。以下、模式図です。

正座標と45度座標の模式図
正座標と45度座標の模式図

 左の正座標では、四角形の四角がうまく認識できません。しかし逆にこういった場合は、45度座標系では四角形の四角を簡単に見つけることができます。

 ARToolKitでは、外周をたどって端点を求めていたのですが、その実装が面倒だったので、もっと簡単なアプローチを考えました。上図のように、正方形に近い四角形ならば、正座標と45度座標のどちらかで、四角形の角が上下左右の端点に一致します。多少の誤差はあるでしょうが、面倒な計算を行わなくて済み、楽なので採用しました。

 また、ARToolKitと違い、外周が変な形でもきちんと認識してくれるという利点もあります。変なマーカーを作って遊ぶのも楽しいです。絵を描く際に、ドット数を増やしたい場合は、配列の数を大きくすればよいです。

変わったマーカー
変わったマーカー

ドット・パターンの認識

 次にドット・パターンの認識です。以下のような流れになります。

  • 【1】ノイズを減らすために、画像をぼかす。
  • 【2】2値化する。
  • 【3】地続きの領域の情報を得る(ラベリング)。
  • 【4】ラベルの情報から、ドット・パターンと同じ配置になっているラベルを探す。

 この方法の利点は、ラベリングをした後、元の画像を一切使わずに計算が行えることです。また、マーカーと違い、粗い画像でも判定ができるという利点があります。

 各ラベルの中心点を比較して4×4の配置が作れた場合、そのドットの大小が、指定したパターンかどうかを確認します。

ドット・パターン
ドット・パターン

 ARマーカー方式でも、ドット・パターン方式でも、動作可能にしているので、どちらでも好きな方をご利用ください。

まとめ

 JavaScriptの新しいライブラリ「crocro.jscam」は、Webカメラの情報を取得したり、マーカー情報を取得するためのライブラリです。

 このライブラリは、簡単な設定で、2値化、ラベリング、マーカーの取得を行えます。また、コールバック設定で、Webカメラの画素データや、ラベル情報、マーカー情報など、多彩な情報を取得できます。

 WebカメラをJavaScriptから簡単に使いたいといった用途や、Webカメラを利用したゲームを作りたいといった用途など、さまざまなシーンで利用できるライブラリです。

 クロノス・クラウンでは、今後も楽しさと実用を兼ね備えたコンテンツや技術を提供していきたいと思います。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6393 2012/02/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー