Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ARCore Update (Jan 2020)

696 views

Published on

日本アンドロイドの会 2020年1月定例会発表資料

Published in: Technology
  • Be the first to comment

ARCore Update (Jan 2020)

  1. 1. ARCore Update Jan.2020 2020.01.22 (wed) eegozilla @JAG 1月定例会
  2. 2. Who are you? eegozilla (@ega1979) Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved. • フリーランスのエンジニア(ARのアプリをつくってます) • ROSCon JP 理事 • 日本アンドロイドの会 運営委員 • GoogleXR WG主宰 (最近活動していない…) • html5j運営スタッフ, ロボット部部長, Webプラットフォーム部スタッフ (最近活動していない…)
  3. 3. ARCoreとは • GoogleがリリースしたAndroidでARを実現するための純正ライブラリ • 3Dセンサ(ToF)を利⽤したTangoに替わって、単眼カメラ(CV)と IMUセンサの情報を元に実現(VIO) • Androidデバイス普及のスケールに合わせて広く普及させることを⽬指し ている Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  4. 4. Motion tracking(モーショントラッキング) • 端末の向きと位置を推定 • CG描画⽤のカメラオブジェクトにその位置と向きを設定することで 3Dオブジェクトがあたかもそこに置いてあるように⾒せることができる Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  5. 5. Environmental understanding(環境認識) • 特徴点と平⾯を検出することで現実の周囲の環境を認識 • テーブルや床、壁などの⽔平⾯と境界を認識してPlaneオブジェクトとして取得 Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  6. 6. Light estimation(光源の推定) • カメラ画像から現実環境の照明の状態を検出し、光量を推定 • 表⽰する3Dオブジェクトの照明効果を周囲になじませる Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  7. 7. Augment Images ARCoreのAugmented Imagesは、ユーザーの環境下で、ポスターや製品パッケージなどの2Dイメージに対してのARアプリケーションの 構築が可能になる。参照するイメージのセットを提供することで、ARCoreのトラッキングは、カメラビューで検出されたARセッション内 でイメージの物理的な位置を⽰します。 Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  8. 8. Cloud Anchors AndroidユーザーとiOSユーザーが共有できるマルチプレーヤーまたは共同のARエクスペリエンスを作成するための機能。 Cloud anchorsを使⽤することで、同じ環境内の複数のデバイスでARKitおよび/またはARCoreのアンカーを使⽤できるようになる。 Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  9. 9. Sceneform Javaを使⽤して3Dモデルをレンダリングするために提供された⾼度なAPI。 これにより、開発者がARエクスペリエンス提供するアプリを作成できる速度が⼤幅に向上が期待される。 Sceneform Tools (Beta) plugin Import and Preview 3D Assets https://developers.google.com/ar/develop/java/sceneform/import-assets Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  10. 10. Augmented Faces Augmented Facesの機能を使うことで、検出された顔のさまざまな領域を⾃動的に識別し、それらの領域を使⽤して、個々の顔の輪郭と領 域に⼀致させる⽅法でテクスチャやモデルなどのアセットをオーバーレイできる。 https://developers.google.com/ar/develop/java/augmented-faces Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  11. 11. Preview 単体カメラによるARプラットフォームとしてリリース しかし、Tangoのプロセスで実⾏される(つまりTangoそのものを弄ったもの) Preview2 Tangoとは異なるプロセスで実⾏されるようになる。C APIリリース(NDK) ARセッションを⼀時停⽌、再開させる機能 (例)電話かけた後にユーザーがARアプリに戻れる v1.0.0 正式リリーズされる。Android Studio 3.1のエミュレータもサポート。 サポート端末追加 v1.1.0 パフォーマンスのチューニング。API追加。 v1.2.0 Cloud Anchors API、Argumented Images API追加 縦⽅向の検出が可能に Sceneformが追加。 Session.isSupported()が廃⽌。 Release Note v1.3.0 新しいAPI・仕様変更: ・FrameクラスにgetAndroidSensorPose()メソッドが追加 ・CameraクラスにgetImageIntrinsics()メソッドが追加 ・新しくCameraIntrinsicsクラスが追加 ・SessionクラスにgetConfig()メソッドが追加 Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  12. 12. v1.4.0 amera configuration APIが追加 ・CameraConfigクラス ・SessionクラスにgetSupportedCameraConfigs()、setCameraConfig(…)、getCameraConfig() 新しいraycastメソッドが追加 ・Frame.hitTest(float[] origin, int originOffset, float[] direction, int directionOffset) camera auto focus modeが追加 ・configクラスにsetFocusMode(FocusMode focusMode) ・getFocusMode() Release Note v1.5.0 新しいAPIの追加・仕様変更: ・PointCloud.getIds() : point cloud の各点に関連付けられた安定したIDを返却 v1.6.0 License and terms of service changes あとは主にチューニングとバグフィックス Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  13. 13. v1.7.0 新しいAPI・仕様変更: ・Camera.getTrackingFailureReason() :ステートがPAUSEDの場合、ARトラッキングの失敗の理由を返却。 ・Frame.transformCoordinates2d(…) :2D座標のリストを1つの2D座標系から別の2D座標系に変換。 ・Session constructors Session(Context, Set<Session.Feature>) (Java) enables new capabilities, starting with: ・Front-facing CameraとAugmented Faces ・セッションを⽣成するときにFRONT_CAMERAの機能をリクエストすることで、前⾯カメラ(⾃撮り) でAugmented Facesを有効にできるように。 ・CameraConfig.getFacingDirection() :前⾯カメラを使⽤しているかどうかをアプリに確認 ・注): フロントカメラを利⽤する場合、モーショントラッキング、すべてのタイプのアンカー、 Augmented Images 、平⾯検知は使えません。 ・Config.setAugmentedFaceMode(…) :アプリでAugmented Facesを有効にする。 ・Trackable AugmentedFaceクラス:顔を検出し、領域のポーズを決定し、3D face meshを⽣成。 ・AugmentedFaceクラスのメソッド:3D face meshの中⼼ポーズ、領域ポーズ、頂点、法線、および三 ⾓形のインデックスを要求するgetterを提供。 Release Note Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  14. 14. v1.7.0 ・Shared Camera access ・カメラのみ(AR以外)とARCoreモード間の⾼速切り替えを可能にするため、アプリはセッションの作 成時にSHARED_CAMERAの機能をリクエストすることで、カメラ制御をARCoreと共有できる。 ・shared_camera_java exampleはカメラアクセスをARCoreと共有する⽅法を⽰すサンプル。 ・SharedCameraクラス:アプリがARCoreとCamera2 APIアクセスを共有できるクラス。 注) Frame.getImageMetadata() は 共有カメラセッションの使⽤時にIllegalStateException を投げ る。代わりに、SharedCamera.setCaptureCallback(…)を使って直接カメラのコールバックをサブス クライブして、Frame.getAndroidCameraTimestamp()を使⽤してフレームをメタデータに関連付ける。 ・Session.getSharedCamera():セッションの共有カメラオブジェクトを取得。 ・Frame.getAndroidCameraTimestamp() :画像のAndroidカメラのタイムスタンプを返却。 ・JavaSDKのみの追加: ・Session.close(): ARCoreセッションが保持しているリソースを明⽰的に解放して、リソース制御を改善。 ・PointCloud:Closeableを実装し、Java try-with-resourcesおよびKotlinの useブロックで使⽤できるよう に変更。 Release Note Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  15. 15. v1.8.0 主にチューニングとバグフィックス v1.9.0 前⾯(selfie)カメラを使⽤するように設定されたセッションを使う場合、getSupportedCameraConfigs() は1つ以上のサポートされているカメラ設定を返却。 SDK 1.7.0か1.8.0を使⽤してビルドされたアプリだと、前⾯カメラを使⽤すると、3つの同⼀のカメラ設定が返却 されていた。 getMeshTriangleIndices(…) は、CharBufferではなくShortBufferを返却するように変更。カメラフレーム を離れても、拡張画像が追跡されるようになりました。 新しいAPI・仕様変更: ・移動する拡張画像を追跡できるように(以前は、画像は動かないと想定されており、それらのポーズはま れにしか更新されない)。 ・カメラからは画像が離れて⾒えても、永続的に画像を追跡できるようになる。 AugmentedImage#getTrackingMethod() を使って、 AugmentedImage#getTrackingMethod()画 像が現在カメラによって追跡されているかどうかを判断(FULL_TRACKING)、または最後の既知のポース に基づいて追跡(LAST_KNOWN_POSE). ・ <model-viewer> Webコンポーネントを使⽤して、ほとんどのAndroidブラウザーからARで3Dモデルを 表⽰するために使⽤できるScene Viewerの機能を追加。 Release Note Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  16. 16. v1.10.0 新しいAPI・仕様変更: ・光源推定のAPIにEnvironmental HDRモードが追加 ・Environmental HDR: 背⾯カメラを使⽤時に現実世界の照明を複製する3つのAPIを提供 ・ Main Directional Light:正しい⽅向に影を落とすのをサポート ・ Ambient Spherical Harmonics:すべての⽅向からの周囲照明のモデリングをサポート ・ HDR Cubemap:鏡⾯ハイライトと反射を提供 ・ ArImage_* :Android NDKを介さずにCPU画像データにアクセス ARCoreがGoogle Play 開発者サービス(AR)に名称変更。 新しいカメラ設定ですべてのARCoreサポート端末に対して60⇒30fpsをターゲットに。 すべてのサンプルアプリで、デバイスがテーブルやポケットやバッグに置かれたときなど、追跡が失われたとき にデバイスがスリープできるようになる。 v1.11.0 新しいAPI・仕様変更: Target FPSとDepthセンサの使⽤に基づきカメラ設定をフィルタリングする機能。 ・CameraConfigFilterクラス:アプリが Target FPSと(もしくは)Depthカメラの使⽤に 基づいてCameraConfigのリストをフィルタリングする。 ・Session.getSupportedCameraConfigs(CameraConfigFilter):提供されたフィルタ設定に基づ いてサポートされているカメラ設定のリストを返却する。 廃⽌: ・Session.getSupportedCameraConfigs() が廃⽌。 ・代わりにgetSupportedCameraConfigs(CameraConfigFilter) Release Note Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  17. 17. v1.12.0 hostCloudAnchor()によってキャプチャされたデータはARCore Cloud Anchor APIサービスにアップロード。 resolveCloudAnchor()は、ARCore Cloud Anchor APIサービスに到達できない場合、またはアンカーをす ぐに解決できない場合にタイムアウトまたは失敗しなくなる。 代わりに、提供されたアンカーが切り離されるまで、APIは引き続きアンカーの解決を試みる。 新しいAPI・仕様変更: CloudAnchorStateに新しいenum値にERROR_HOSTING_SERVICE_UNAVAILABLE Cloud Anchorのサービスに到達できない場合にホスティングプロセス中に設定される。 廃⽌: CloudAnchorStateのenum、ERROR_RESOLVING_LOCALIZATION_NO_MATCHと ERROR_SERVICE_UNAVAILABLE v1.13.0 チューニングとバグフィックスなど v1.14.0 新しいAPI・仕様変更: ・TrackingFailureReason enumに CAMERA_UNAVAILABLE が追加: デバイス上の別のアプリでカメラが⼀時的に失われたこと表す。アプリの優先度が回復すると、 追跡が再開される。 Release Note Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  18. 18. In detail https://developers.google.com/ar/whatsnew-arcore Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  19. 19. Depth API https://developers.googleblog.com/2019/12/blending-realities-with-arcore-depth-api.html
  20. 20. Depth API Depthは、カメラのビュー内の物理的な表⾯までの距離をリアルタイムにかつピクセル単位で表⽰することで、特定のシーンの3Dとしての 解釈が提供された値。この情報はDepth Mapに集約される。 開発者はこれを使うことで、仮想オブジェクトが実世界とのインタラクティブなやり取りができる、より没⼊型のARエクスペリエンスを作 成できる。 Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.
  21. 21. Call for collaborators (Already closed) https://developers.google.com/ar/develop/call-for-collaborators#cloud-anchors Copyright @Hirokazu Egashira a.k.a eegozilla. All right reserved.

×