Mapbox Vision SDK
Mapbox Vision SDKは、より良い運転体験をビルドするのに使用するツールである。 SDKは携帯電話やダッシュカメラや埋め込みナビゲーションシステムなどに付くメラでキャプチャされた画像を処理する。 SDKはこのデータを使用してドライバーあたりの環境を理解して、ドライバーにアシスタンスとARナビゲーションの機能を提供する。
• ドライバー向けのAIおよびAR機能は現在のモバイルおよび埋め込みアプリケーションで稼働する。
• ターンバイターン方式の方向とカスタムオブジェクトを使用して、拡張現実ナビゲーションをビルドする。
• 速度超過、車線逸脱、距離不保持などのカスタムアラートを作成する。
• オンデバイス上に実行するニューラルネットワークはデータプランに負担をかけずにリアルタイムでパフォーマンスを発揮する。
Mapbox Vision SDKは、デバイスのビルトインカメラを使用して、Androidデバイスにおいて道路シーンをリアルタイムで直接解釈するためのライブラリである。下記の機能がある。
• 規制および警告サインを分類と表示する
• 車両、歩行者、道路標識、信号を検出するオブジェクト
• 14つの異なるクラスへの道路のセマンティックセグメンテーション
• グローバルカバレッジを備えた拡張現実ナビゲーション
外部カメラのサポート:WiFiまたは有線接続
直接に対話できるVision関連のSDKは3つがあって、Vision Coreモジュールに依存する。
利用可能なSDK
• Vision SDK (vision) は、主要なSDKで、全てのMapbox Visionのアプリケーションに必要である。 Vision SDKのコンポーネントはカメラの構成、分類の表示、検出、セグメンテーションレイヤー、車線特徴抽出、その他のインターフェイスなどを有効にする。VisionはVisionCoreで実行されているリアルタイムの推論にアクセスする。
• Vision AR SDK (vision-ar) は、Visionのアドオンモジュールで、カスタマイズ可能な拡張現実体験を作成するのに使用される。道路舗装材(シェーダー、テクスチャ)、道路ジオメトリ、オクルージョン、カスタムオブジェクトなどのユーザーのルート視覚化を構成できる。
• Vision Safety SDK (vision-safety) は、Visionのアドオンモジュールで、速度超過、近くの車両、サイクリスト、歩行者、車線逸脱などのカスタマイズ可能なアラートを作成するのに使用される。
コアロジック
Vision Coreは、システムのコアロジックで、すべての機械学習モデルを含む。 上記に列記されている何れかのVision関連のSDKをプロジェクトに取り込むと共に、VisionCoreが自動的に導入されるようになる。
要求
Android:
VisionSDKはOpen CLをサポートするQC Snapdragon 650、710、8xx(ただし855未満)を搭載したAndroid 6(API 23)以上が必要である。 Vision SDKと動作する各デバイスは以下の通り。
• Samsung Galaxy S8, S8+, S9, S9+, Note 8
• Open CLをサポートするQC Snapdragon 650、710、8xx(ただし855未満)
• Xiaomi Mi 6, 8
• HTC U11, U11+, U12, U12+
• OnePlus 5, 6
SDKの構成
Android
SDKをプロジェクトにダウンロード・インポートした後、Android Studioプロジェクトにて下記のように設定する。
Mapboxアクセストークンを設定する
Mapbox APIsにはMapboxアカウントおよびアクセストークンが必要である。
1. Mapboxアカウントページからアクセストークンを取得する。
2. strings.xmlファイルを開いて、 mapbox_access_tokenの文字列を作成して、アクセストークンをペーストする。
1. <string name="mapbox_access_token" translatable="false">YOUR_ACCESS_TOKEN_HERE</string>
3. 新規なクラスを作成して、VisionManagerを初期化し、本MapboxアクセストークンをVisionManageに渡す。
4. public class VisionApp extends Application {
5. @Override
6. public void onCreate() {
7. super.onCreate();
8. VisionManager.init(this, getResources().getString(R.string.mapbox_access_token));
9. }
10. }
設定の権限
Mapbox Vision SDKは下記の権限が必要である。
1. <uses-permission android:name="android.permission.INTERNET" />
2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3. <uses-permission android:name="android.permission.CAMERA" />
4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
5. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
6. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
SDKを呼び出す前に、すべての権限を付与する必要がある。
VisionViewをアクティビティのレイアウトに追加する(任意)
VisionViewは、Vision SDKによって生成された画像をレンダリングする。 下記のスニペットで追加できる。
1. <com.mapbox.vision.view.VisionView
2. android:id="@+id/vision_view"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. app:visualization_mode="detection" />
app:visualization_modeは、VisionView上にレンダリング対象を指定する:ビデオソース、セグメンテーションの削除、または検出する。
ライフサイクルのメソッド
VisionManagerのライフサイクルのメソッドを呼び出す必要である。 Vision SDKが生成するイベントをリッスンするには、VisionEventsListenerのインスタンスをVisionManager.start()メソッドに渡する。
1. @Override
2. protected void onResume() {
3. super.onResume();
4. ...
5. VisionManager.create();
6. VisionManager.start(myVisionEventsListenerInstance);
7. }
8. @Override
9. protected void onPause() {
10. super.onPause();
11. ...
12. VisionManager.stop();
13. VisionManager.destroy();
14. }
デバイスの設定
フレームワークのインストールに加えて、車両にデバイスをセットアップする必要がある。マウントを選択して設定する際に、考慮すべき事項は以下通りである。
• 一般的に、マウントが短ければ、振動は少なくなる。フロントガラスをママウンティングするかダッシュボードをマウンティングするか、はどちらも良い。
• バックミラーの近くまたは背後に電話を置く。マウントの設置場所によって制限が違う。
• 携帯電話のカメラビューが遮られていないかを確認する。