読者です 読者をやめる 読者になる 読者になる

ナノカ技術メモ

ただのエンジニア。何でも屋みたいな扱い受けてます。

SmartARのiOS用SDKのサンプルを検証

ここではiOS用のSmartARのSDKを動かして試していきます。

MacOS Sierra(10.12.1)
Xcode 8.1
iOS 8.0
SmartAR 1.1.0

SmartARとは

ソニーが研修開発を進めてきた「物体認識技術」と「3D空間認識技術」を統合した高機能・高精度なARエンジン、またそのARアプリ開発ツールSmartAR® SDKのことです。

AndroidiOS、UnityとWindowsSDKを使ったPC用のソフトが開発可能です。
マーカーレスARと3D空間認識、そしてその高速追従性を売りにしています。
サイト内に詳しく丁寧に説明があり、サンプル動画まであるので参考にどうぞ。

SmartAR®のSDKライセンス価格(いずれも価格は税別)
ライセンスの購入はサンプルで検証後にどうぞ。(個人の値段じゃない)

  • Free版:サンプル動作,検証用
  • Standard版(AndroidiOS/Unity 対応):10万円/1アプリID
  • Enterprise版(AndroidiOS/Unityに加えWindows 対応):100万円/年
    • Enterprise 版には以下のサービスが含まれます。
    • 1年間、アプリ数に制限なく開発・配布が可能
    • 契約期間中は常に最新のバージョンを提供
    • 電話もしくは電子メールで日本語のテクニカルサポート

ちなみにSDKのZIPにPDFが同封されていて日本語,英語が用意されていたりと結構日本人向けになってます。

SDKダウンロード

上のサイトにてご利用までの流れはこちらとありますのでそこからダウンロードページへ
f:id:nanokanato:20170329104751p:plain:w300

とりあえず、SDKの選択は2の評価版のiOS/Android/Unity版を使用しますので「SDKダウンロードサイト」をクリック。
f:id:nanokanato:20170329104630p:plain:w300

ソニーのサイトに遷移しますのでダウンロードのボタンを押すとお客様情報入力画面になります。名前、会社名、メールアドレスが必要になります。

入力後、確認画面を挟みダウンロード画面に遷移します。
使用するSmartAR SDKiOS/Android/Unity)と認識対象画像用 辞書作成ツールをダウンロードします。
私は今回iOSをダウンロードしました。
認識対象画像用 辞書作成ツールは認識するマーカーを作成するのに必要なツールなのでダウンロード必須のようです。

SDKの中を確認

ダウンロードしたのがこちら、とりあえず全てダウンロードしてみました。
SmartAR_Tool.zipが認識対象画像用 辞書作成ツール、SmartAR_SDK_iOS.zipがiOS用のSDKなので解凍します。
f:id:nanokanato:20170329104632p:plain:w300

デデドン..まさかの辞書作成ツールが.exeアプリ
Macは.appなので起動できません。(頑張ればできる)
ですよね、開発時はWindowsを用意しましょう...
使い方はREADME_dictool_j.txtに書いてあるみたいです。
f:id:nanokanato:20170329104636p:plain:w300

詳しくはPDFに書いてあるので必読ください。

サンプルのビルド

SmartAR_SDK_iOS.zipを解凍したファイルのSample/ios/sample_api_full/にある「sample_api_full.xcodeproj」がサンプル集みたいなのでこちらをXcodeで開いてビルドします。
Bundle IDや証明書などの設定は通常通りでしたので省略します。

内部で3D空間認証などを行なっているからか標準のカメラより若干画質が落ちている気もしますが、そもそも処理を軽くするために画質を悪くしてる可能性がありますね。
f:id:nanokanato:20170329104704p:plain:w200

左下のResetはおそらく設定などを初期化だと思います。
SmartARと書いてあるのはライセンスキーを認証することで消せるものだと思います。(PDFにはそのような記載)
右下のMENUを押すとMENU画面が開きます。

Sample/ios/target_picture/にマーカー用の画像が用意されてます。
それを撮影することでマーカーに合わさるように立方体が表示されます。
複数個や縦画面だけでなく横画面で撮影しても表示されました。
f:id:nanokanato:20170329104658p:plain:w200f:id:nanokanato:20170329104740p:plain:w200

他のサンプルを表示する

右下のMENUを押すことでこの画面が開きます。
RecogModesからサンプルを切り替えることができるみたい。
f:id:nanokanato:20170329104754p:plain:w200

RecogModes

認識モードの切り替えです。
その中でさらに選ぶことでサンプルを切り替えることができます。
f:id:nanokanato:20170329104706p:plain:w200

Target tracking

デフォルトのものです。
ARマーカーを読み込んで立方体を表示します。
f:id:nanokanato:20170329104743p:plain:w200

Scene mapping:TARGET

ARマーカーを読み込んで認識に使用した特徴点と立方体を表示します。
f:id:nanokanato:20170329104736p:plain:w200

Scene mapping:HFG

完全マーカーレスの3D空間認識を利用したAR。
特徴点のみで床などの平地を認識して立方体を表示します。
ズレがある場合は特徴点の取得が足りない場合です。カメラの向きを変えずにゆっくりあたりを撮影すると綺麗に表示されています。
上向きの認識に特化している??
f:id:nanokanato:20170329104701p:plain:w200

Scene mappingVFG

横向きの認識に特化している??
f:id:nanokanato:20170329104627p:plain:w200

Scene mapping:SFM

3D空間から角度を推定して立方体を配置している??
f:id:nanokanato:20170329104747p:plain:w200

Scene mapping:DRY_RUN

よく見ないとわからないかもですが、特徴点にピンクの点が表示されています。
f:id:nanokanato:20170329104800p:plain:w200

まとめ

サンプルでは箱が出るだけだがそれでも楽しい感じ。
ソースコードをもっと読めばもっといろいろできると思います。
だた、3Dの描画処理をXcodeからあまりやったことがないのでできればUnityでやりたい。(Unity版も存在します)

  • マーカー認識AR
    • 印刷物のマーカーが必要(喫茶店であればコースターやポスターなどでも可)
    • 正確で安定なAR表示
  • 3D空間認識AR
    • 印刷物のマーカーが不要
    • 場所や光原によって安定性が変化する。
    • 特徴点を多く取り込むためユーザーに取り込みの動作をさせる必要がある。