package schema
please see nv.schema , which is used @since v1.0
this is kept for backward compatibility and is used for json based pipeline
the key classes representing the json schema
Calibration
Message
Frame and
Behavior
There are two schema for sending messages perception layer to Message broker (kafka or IOT hub), The two schema are represented by Message and Frame. Frame is concise in terms amount of bytes sent over the network
User can configure to use either of the Messaging schema
jBehavior is specific to the domain we are dealing with, represent object movement & state over period of times
- Alphabetic
- By Inheritance
- schema
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class jAisle(id: String, name: String, level: String, coordinate: jCoordinate) extends Product with Serializable
-
case class
jAnalyticsModule(id: String = null, description: String = null, source: String = null, version: String = null, info: jAnalyticsModuleInfo = jAnalyticsModuleInfo()) extends Product with Serializable
Analytics Module to be nested in every message, example below
Analytics Module to be nested in every message, example below
"analyticsModule": { "id": "module-id", "description": "Vehicle Detection and License Plate Recognition", "source": "OpenALR", "version": "3.0" }
-
case class
jAnalyticsModuleInfo(clusterIndex: Int = -1, clusterModel: String = null) extends Product with Serializable
additional analytics information like clusterIndex, relative deviation
- case class jBbox(topleftx: Double, toplefty: Double, bottomrightx: Double, bottomrighty: Double) extends Product with Serializable
-
case class
jBehavior(id: String, start: Timestamp = null, end: Timestamp = null, timestamp: Timestamp = null, locations: GeoLocation = null, smoothLocations: GeoLocation = null, edges: Array[String] = null, distance: Double = 0, speed: Double = 0, speedOverTime: Array[Double] = null, timeInterval: Double = 0, bearing: Double = 0, direction: String = null, length: Int = 0, place: jPlace = null, sensor: jSensor = null, analyticsModule: jAnalyticsModule = null, object: jObject = null, event: jEvent = null, videoPath: String = null, pose: Array[jPose] = null, gesture: Array[jGesture] = null, gaze: Array[jGaze] = null) extends Product with Serializable
represent object Behavior, and comprise of attributes from object movement + jObject appearance with highest confidence + jSensor + jPlace + jPose + jGesture + jGaze
represent object Behavior, and comprise of attributes from object movement + jObject appearance with highest confidence + jSensor + jPlace + jPose + jGesture + jGaze
the JSON representation of this object Behavior message is stored in persistent store like Elasticsearch for search and indexing
- id
: object id, usually a combination of sensorId + objectId
- start
: start timestamp of the trajectory
- end
: end timestamp
- locations
representing array of [lon,lat] or [x,y]
- smoothLocations
representing smoothened array of [lon,lat] or [x,y]
- edges
road network edges, only applicable for geo coordinates
- distance
traveled in meters
- speed
avg speed in mph
- speedOverTime
speed over a period of time
- bearing
angle
- direction
N, S, E or W based on bearing
- length
length of number of object detections
- place
place where object was detected
- sensor
Sensor
- object
Object
- event
Event
- videoPath
URL of the video if stored
- pose
array of pose estimations
- gesture
array of gesture estimations
- gaze
array of gaze estimations
-
case class
jCoordinate(x: Double, y: Double, z: Double) extends Product with Serializable
Coordinate : in 3D
Coordinate : in 3D
- Since
v0.1
- case class jEntrance(name: String, lane: String, level: String, coordinate: jCoordinate) extends Product with Serializable
- case class jEvent(id: String, type: String) extends Product with Serializable
- case class jGaze() extends Product with Serializable
- case class jGesture() extends Product with Serializable
-
case class
jKeyPoint(name: String, coordinate: jCoordinate, confidence: Double) extends Product with Serializable
KeyPoint : representing KeyPoint of an object detected
KeyPoint : representing KeyPoint of an object detected
- name
of the KeyPoint, can be nose, left-eye, right-eye
- confidence
detection confidence of the body part
- Since
v0.2
- case class jLocation(lat: Double, lon: Double, alt: Double) extends Product with Serializable
-
case class
jMessage(messageid: String, mdsversion: String, timestamp: Timestamp, place: jPlace, sensor: jSensor, analyticsModule: jAnalyticsModule, object: jObject, event: jEvent, videoPath: String) extends Product with Serializable
Message representing an object detected
Message representing an object detected
- messageid
unique id of the message
- mdsversion
schema version
- timestamp
camera timestamp when the object was detected
- place
place where object was detected
- sensor
primarily camera sensor
- analyticsModule
the analytics module used in detection
- object
details of the object detection
- event
event associated , example moving, parked etc
- videoPath
associated URL of the video if any
- Since
v0.1
- case class jObject(id: String, vehicle: jVehicle = null, person: jPerson = null, bbox: jBbox, signature: Array[Double], speed: Double, direction: Double, orientation: Double, location: jLocation, coordinate: jCoordinate) extends Product with Serializable
- case class jParkingSpot(id: String, type: String, level: String, coordinate: jCoordinate) extends Product with Serializable
-
case class
jPerson(gender: String, age: Double, hair: String, cap: String, apparel: String, height: Double, confidence: Double) extends Product with Serializable
Person example
Person example
"person": { "gender": "male", "age": 45, "hair": "black", "cap": "none", "apparel": "formal", "confidence": 0.9779, },
-
case class
jPlace(id: String, name: String, type: String, location: jLocation, aisle: jAisle) extends Product with Serializable
*
*
Describing a scene needs describing where the scene is happening – place, what is happening in terms of events, and who are the objects participating in the event. note coordinate(x,y,z) are in meters
Json representation of Place
"place": { "id": "string", "name": "endeavor", "type": "building/garage", "location": { "lat": 37.37060687475246, "lon": -121.9672466762127, "alt": 0.00 }, "entrance": { "name": "walsh", "lane": "lane1", "level": "P2", "coordinate": { "x": 1.0, "y": 2.0, "z": 3.0 } } }
-
case class
jPose(type: String, bbox: Array[Double], keyPoints: Array[jKeyPoint]) extends Product with Serializable
Pose : representing body pose of an object detected
Pose : representing body pose of an object detected
- type
can be pose2D or pose3D
- bbox
array of double
- keyPoints
array of KeyPoints
- Since
v0.2
-
case class
jSensor(id: String, type: String, location: jLocation, description: String, coordinate: jCoordinate) extends Product with Serializable
Sensor object to be nested in every message, example
Sensor object to be nested in every message, example
"sensor": { "id": "string", "type": "Camera/Puck", "location": { "lat": 45.99, "lon": 35.54, "alt": 79.03 }, "coordinate": { "x": 5.2, "y": 10.1, "z": 11.2 }, "description": "Entrance of Endeavor Garage Right Lane" }
-
case class
jVehicle(type: String, make: String, model: String, color: String, confidence: Double, license: String, licenseState: String) extends Product with Serializable
Vehicle example
Vehicle example
"vehicle": { "type": "sedan", "make": "Bugatti", "model": "M", "color": "blue", "confidence": 0.8205, "license": "CGP93S", "licenseState": "CA" }
Value Members
- object AnomalyEventType extends Enumeration