位置情報

安全警告-Android

安全警告

開発者は、アドオンモジュールであるMapbox Vision Safetyを使用して、道路状況と潜在的な危険を運転手に通知・警告する機能を作成できる。(Mapbox Vision Safety がVision SDKから渡されたセグメンテーション、検出、および分類情報を使用する)

速度制限の監視
開発者は、標識分類を使用して速度制限および他の重要な標識を監視したり、最近によく観察された速度制限を追跡したりすることができる。車両の速度が最近の観察された速度制限を超えた場合、プログラム的なアラートを設定できる。
速度警告は、速度制限標識と車両の現在速度標識という2つのサインがある。

標識の検出
Vision SafetyがMapbox Vision SDKのDetectionClass を使用して、表示されているtrafficSignsを検出して、speedLimit*タイプ(トラックの最高速度や最低速度などの特別な速度制限の標識を含む)に基づいてSignTypesにフィルターする。
Vision SafetyのSpeedLimitRangeクラスには最小および最大の速度制限の数値が含まれている。

車両速度
Vision SDKでのVehicleLocationクラスの速度プロパティを使用して、デバイスの現在速度を判断する。
次に、現在の車両速度を速度制限範囲と比較して、適当な速度通知をトリガーできる。

Android実装の例


1.	package com.mapbox.vision.examples;  
2.	  
3.	import android.os.Bundle;  
4.	import android.support.v7.app.AppCompatActivity;  
5.	import android.widget.Toast;  
6.	import com.mapbox.vision.VisionManager;  
7.	import com.mapbox.vision.mobile.core.interfaces.VisionEventsListener;  
8.	import com.mapbox.vision.mobile.core.models.AuthorizationStatus;  
9.	import com.mapbox.vision.mobile.core.models.Camera;  
10.	import com.mapbox.vision.mobile.core.models.Country;  
11.	import com.mapbox.vision.mobile.core.models.FrameSegmentation;  
12.	import com.mapbox.vision.mobile.core.models.classification.FrameSignClassifications;  
13.	import com.mapbox.vision.mobile.core.models.detection.FrameDetections;  
14.	import com.mapbox.vision.mobile.core.models.position.VehicleState;  
15.	import com.mapbox.vision.mobile.core.models.road.RoadDescription;  
16.	import com.mapbox.vision.mobile.core.models.world.WorldDescription;  
17.	import com.mapbox.vision.safety.VisionSafetyManager;  
18.	import com.mapbox.vision.safety.core.VisionSafetyListener;  
19.	import com.mapbox.vision.safety.core.models.CollisionObject;  
20.	import com.mapbox.vision.safety.core.models.RoadRestrictions;  
21.	import org.jetbrains.annotations.NotNull;  
22.	  
23.	/** 
24.	 * Example shows how overspeed can be detected using Vision and VisionSafety SDKs combined. 
25.	 */  
26.	public class SafetyActivity extends AppCompatActivity {  
27.	  
28.	    private Float maxAllowedSpeed = -1f;  
29.	  
30.	    // this listener handles events from Vision SDK  
31.	    private VisionEventsListener visionEventsListener = new VisionEventsListener() {  
32.	  
33.	        @Override  
34.	        public void onAuthorizationStatusUpdated(@NotNull AuthorizationStatus authorizationStatus) {}  
35.	  
36.	        @Override  
37.	        public void onFrameSegmentationUpdated(@NotNull FrameSegmentation frameSegmentation) {}  
38.	  
39.	        @Override  
40.	        public void onFrameDetectionsUpdated(@NotNull FrameDetections frameDetections) {}  
41.	  
42.	        @Override  
43.	        public void onFrameSignClassificationsUpdated(@NotNull FrameSignClassifications frameSignClassifications) {}  
44.	  
45.	        @Override  
46.	        public void onRoadDescriptionUpdated(@NotNull RoadDescription roadDescription) {}  
47.	  
48.	        @Override  
49.	        public void onWorldDescriptionUpdated(@NotNull WorldDescription worldDescription) {}  
50.	  
51.	        @Override  
52.	        public void onVehicleStateUpdated(@NotNull VehicleState vehicleState) {  
53.	            // current speed of our car  
54.	            Float mySpeed = vehicleState.getSpeed();  
55.	  
56.	            // display toast with overspeed warning if our speed is greater than maximum allowed speed  
57.	            if (mySpeed > maxAllowedSpeed && maxAllowedSpeed > 0) {  
58.	                Toast.makeText(  
59.	                        SafetyActivity.this,  
60.	                        "Overspeeding! Current speed : " + mySpeed +  
61.	                                ", allowed speed : " + maxAllowedSpeed,  
62.	                        Toast.LENGTH_LONG  
63.	                ).show();  
64.	            }  
65.	        }  
66.	  
67.	        @Override  
68.	        public void onCameraUpdated(@NotNull Camera camera) {}  
69.	  
70.	        @Override  
71.	        public void onCountryUpdated(@NotNull Country country) {}  
72.	  
73.	        @Override  
74.	        public void onUpdateCompleted() {}  
75.	    };  
76.	  
77.	    private VisionSafetyListener visionSafetyListener = new VisionSafetyListener() {  
78.	        @Override  
79.	        public void onCollisionsUpdated(@NotNull CollisionObject[] collisions) {}  
80.	  
81.	        @Override  
82.	        public void onRoadRestrictionsUpdated(@NotNull RoadRestrictions roadRestrictions) {  
83.	            maxAllowedSpeed = roadRestrictions.getSpeedLimits().getCar().getMax();  
84.	        }  
85.	    };  
86.	  
87.	    @Override  
88.	    public void onCreate(Bundle savedInstanceState) {  
89.	        super.onCreate(savedInstanceState);  
90.	        setContentView(R.layout.activity_main);  
91.	    }  
92.	  
93.	    @Override  
94.	    protected void onStart() {  
95.	        super.onStart();  
96.	  
97.	        VisionManager.create();  
98.	        VisionManager.start(visionEventsListener);  
99.	  
100.	        VisionSafetyManager.create(VisionManager.INSTANCE, visionSafetyListener);  
101.	    }  
102.	  
103.	    @Override  
104.	    protected void onStop() {  
105.	        super.onStop();  
106.	  
107.	        VisionSafetyManager.destroy();  
108.	  
109.	        VisionManager.stop();  
110.	        VisionManager.destroy();  
111.	    }  
112.	}   

Related post

  1. レイヤの処理-iOS

  2. 安全警告-iOS

  3. はじめに-MapboxIDを作成する

  4. データ視覚化

  5. レイヤの処理-web

  6. 複数言語の対応

PAGE TOP