• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

  • ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

WebARはじめてみませんか?〜第5回 8th Wall Webの画像認識機能の使い方〜

2019年4月26日

  • このエントリーをはてなブックマークに追加

こんにちは!
デザイナーの伊東(@ALAKIWebVRAR1)です。

※TwitterでもWebARの事を中心に情報発信中!
よかったらフォローお願いしますm(_ _)m
Follow @ALAKIWebVRAR1

前回は決められたマーカーではなく、完全オリジナルのマーカーを作成して、認識させる技術をどう実装するかをご紹介しました。

WebARはじめてみませんか?〜第4回 tracking.jsで完全オリジナルのマーカーを実現 / 画像認識編〜

その記事を公開して数日後の2019年4月17日、なんと8th Wall Webが画像認識に対応したとのニュースが発表されました!

Release 11: Image Targets & More

8th Wall Web登場以前は、iOS12以降に実装されたARの「クイックビュー」、決められた規定の中で作成したマークを読み取る「マーカー型AR」の2種類が主流だったWebAR。
画像認識機能の発表により、WebARの可能性が大きく広がったと感じています。

今日は、最新の技術であるWebARの画像認識機能を実際に利用するための方法をご説明します。

今日の記事を最後まで学ぶと、こんなものが作れるようになります。

https://alaki.co.jp/blog/wp-content/uploads/2019/04/card2.mp4

 

サンプルコードのダウンロード

まずはサンプルコードをダウンロードしましょう。
GitHubから8th Wall Webのデータを落としてきます。

https://github.com/8thwall/web

サンプルコードは以下の場所に用意されています。
/examples/aframe/

今回は「flyer」というフォルダに入ったサンプルコードを使用します。
その中に「flyer.jpg」というファイルを開いてみましょう。

flyer

この画像の左上のクラゲの絵から3Dオブジェクトが、右下からは動画が再生されるようなサンプルコードが提供されています。

ソースコードの確認

次に、index.htmlを開いて実際のソースコードをみてみましょう。

<!doctype html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  <meta name="apple-mobile-web-app-capable" content="yes">

  <title>8th Wall Web: Flyer</title>

  <script src="//cdn.8thwall.com/web/aframe/8frame-0.9.0.min.js"></script>

  <!-- XR Extras - provides utilities like load screen, almost there, and error handling.
         See github.com/8thwall/web/xrextras -->
  <script src="//cdn.8thwall.com/web/xrextras/xrextras.js"></script>

  <!-- 8thWall Web - Replace the app key here with your own app key -->
  <script src="//apps.8thwall.com/xrweb?appKey=XXXXXXXXX"></script>

</head>

<body>

  <a-scene
    xrweb="disableWorldTracking: true"
    xrextras-gesture-detector
    xrextras-almost-there
    xrextras-loading
    xrextras-runtime-error>

    <a-assets>
      <!-- Credit to Poly by Google for the model: https://poly.google.com/view/dA5osnS0Rzj -->
      <a-asset-item id="jelly-glb" src="jellyfish-model.glb"></a-asset-item>
      <img id="jelly-thumb" src="targets/video-target.jpg">
      <video
        id="jelly-video"
        autoplay
        muted
        crossorigin="anonymous"
        loop="true"
        src="jellyfish-video.mp4">
      </video>
    </a-assets>

    <a-camera
      position="0 4 10"
      raycaster="objects: .cantap"
      cursor="fuse: false; rayOrigin: mouse;">
    </a-camera>

    <a-light type="directional" intensity="0.5" position="1 1 1"></a-light>

    <a-light type="ambient" intensity="1"></a-light>

    <a-entity
      xrextras-named-image-target="name: video-target"
      xrextras-play-video="video: #jelly-video; thumb: #jelly-thumb; canstop: true"
      geometry="primitive: plane; height: 1; width: 0.79;">
    </a-entity>

    <a-entity xrextras-named-image-target="name: model-target">
      <!-- Add a child entity that can be rotated independently of the image target. -->
      <a-entity xrextras-one-finger-rotate gltf-model="#jelly-glb"></a-entity>
    </a-entity>

  </a-scene>

</body>
</html>

 

細かいところをみていきます。

まずは表示させるオブジェクトを、<a-assets>の中に記述します。

<a-assets>
 <!-- Credit to Poly by Google for the model: https://poly.google.com/view/dA5osnS0Rzj -->
 <a-asset-item id="jelly-glb" src="jellyfish-model.glb"></a-asset-item>
 <img id="jelly-thumb" src="targets/video-target.jpg">
 <video
 id="jelly-video"
 autoplay
 muted
 crossorigin="anonymous"
 loop="true"
 src="jellyfish-video.mp4">
 </video>
</a-assets>

上からクラゲの3Dオブジェクト、クラゲの動画のサムネイル、動画の本体の3つを記述しています。

表示させるオブジェクトを用意したら、認識する画像と紐づける作業をします。

<a-entity
 xrextras-named-image-target="name: video-target"
 xrextras-play-video="video: #jelly-video; thumb: #jelly-thumb; canstop: true"
 geometry="primitive: plane; height: 1; width: 0.79;">
</a-entity>
<a-entity xrextras-named-image-target="name: model-target">
 <!-- Add a child entity that can be rotated independently of the image target. -->
 <a-entity xrextras-one-finger-rotate gltf-model="#jelly-glb"></a-entity>
</a-entity>

ここで注目したいのは、「xrextras-named-image-target」という属性です。
この属性で、対応する画像を変数で指定します。

肝心の認識する画像は、ソースコード内に置くのではなく、8th Wall Webの管理画面上で管理します。

画像のアップロード

認識する画像は、管理画面からアップロードします。
まずは8th Wall Webにアクセスし、管理画面にログインしましょう。
※アカウントの作成がまだの方は、下記の記事を参考に作成してください。
https://alaki.co.jp/blog/?p=3160

ログインした後、ダッシュボードのプロジェクトの詳細情報を確認してください。

スクリーンショット 2019-04-25 23.10.02

右下の「IMAGE TARGETS」の項目から画像をアップロードすることができます。
「Manage image targets」と書かれたボタンをクリックしてください。

スクリーンショット 2019-04-25 23.14.02

「Upload An Additional Image」のところから画像をアップロードします。
試しに、サンプルデータに入っていたクラゲの画像をアップロードしましょう。アップロードが完了すると、サイズや変数名を設定する画面になります。

スクリーンショット 2019-04-25 23.18.58

ここで設定するオブジェクト名が、先ほどソースコードで紐づけを行なった変数と同じであれば、3Dオブジェクトを表示することができます。

ここまでの手順を正しく設定できていれば、
先ほどのソースコードをサーバーにアップして、
読み込ませておいたクラゲの画像にクラゲの3Dオブジェクトを表示させることが可能になります。

次の章で実際にデバイスで確認してみましょう。

実機で検証する

サーバーにアップしたhtmlファイルをPCで確認すると、QRコードをモバイル端末で読み取るようにという表示になります。

スクリーンショット 2019-04-25 23.53.55

QRコードを読み取って、モバイル端末でサイトを表示させます。

サイトアクセス後にWebカメラが起動します。そのカメラで画像を読み込ませましょう。

正しく3Dオブジェクトを表示させることができました!!

https://alaki.co.jp/blog/wp-content/uploads/2019/04/trim.mp4

まとめ

いかがだったでしょうか?
複雑な処理が必要な画像処理の機能が、簡単に実装できることを体感していただけたのではないでしょうか。

8th Wall Webのようなプラットフォームにより、WebAR開発のハードルは低くなっていくのを感じています。
アイディア次第では、すぐにでも実用的なものが作れるのではないかと思います。

皆さんもぜひ、8th Wall Webの画像認識機能をお試しください!

  • ツイート
  • このエントリーをはてなブックマークに追加
ALAKI ロゴ
さよなら過去のAR。
WebARがイベント集客に
革命を起こします。
特設サイトはこちら >

You may also like...

  • 【Unity】「Shape2D」の角丸がぼやける問題を解決する

    24 11月, 2022

  • ブラウザから簡単にAR体験を!ARkit2を利用したWebAR

    9 11月, 2018

  • blender2.8を使って3Dオブジェクトにアニメーションをつける方法〜part.1〜

    30 11月, 2018

  • Next story WebARはじめてみませんか?〜第6回 Google、Amazonの最新の動向から、5Gまで。AR/3D技術を取り巻く世の中の流れ〜
  • Previous story WebARはじめてみませんか?〜第4回 tracking.jsで完全オリジナルのマーカーを実現 / 画像認識編〜

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

弊社サービス

MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。 広報活動の課題を数字で可視化し、出願者数アップをお手伝いします クリエイティブ業務のコミュニケーションを高速化 Webの知識が無くてもWebサイトの品質をチェックできます。

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 色

アーカイブ

  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法
  • Web制作時に高解像度の元画像がない場合にPythonで高画質化する方法
  • 『考える』が楽しくなる!考えを「広げる」・「深める」12の方法
  • macにpythonの開発環境を作ってみよう!
  • 商品・サービスを圧倒的に成長させる、シリコンバレーで注目の「プロダクト・レッド・グロース」を解説

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 色

検索

ALAKI株式会社 © 2026. All Rights Reserved.