Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Unified Diff: chromeos/dbus/proto/media_perception.proto

Issue 2791983004: DBus MediaAnalyticsClient and media_perception pb. (Closed)
Patch Set: Fixing compile error. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/dbus/proto/media_perception.proto
diff --git a/chromeos/dbus/proto/media_perception.proto b/chromeos/dbus/proto/media_perception.proto
new file mode 100644
index 0000000000000000000000000000000000000000..05197ccad710b23e6b45fda6691023f4bbf05146
--- /dev/null
+++ b/chromeos/dbus/proto/media_perception.proto
@@ -0,0 +1,131 @@
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package mri;
+
+// The output of a Drishti media perception graph. Implicitly tied to the
+// MediaPerception dictionary defined in Chromium source at
+// src/extensions/common/api/media_perception_private.idl for the
+// Chromium mediaPerceptionPrivate API. A duplicate copy of this proto also
+// exists in Chromium for the mediaPerceptionPrivate API implementation to
tbarzic 2017/05/05 21:10:42 is this still valid statement? I'd prefer to have
Luke Sorenson 2017/05/08 19:06:08 Edited the text a little. To be clear there is jus
tbarzic 2017/05/08 23:04:55 Oh. Can you please reword this a bit further. Some
Luke Sorenson 2017/05/09 17:39:45 Done. Also removed references to "Drishti" since
+// deserialize this proto.
+//
+// The duplicate copy of this proto lives in Chromium source here:
+// src/chromeos/media_perception/media_perception.proto
+// If you change this file, you need to make sure to update this file in the
+// Chromium source tree as well.
+//
+// This message is packaged by the Drishti graph runner when a PerceptionSample
+// or array of PerceptionSamples comes out of the graph.
+message MediaPerception {
+ // The timestamp attached when this data originated from the analysis process.
+ optional uint64 timestamp = 1;
+
+ // A single FramePerception message or array of perceptions (if reporting the
+ // results from multiple frames).
+ repeated FramePerception frame_perception = 2;
+}
+
+// Used to transmit a history of image frames and their associated annotations.
+// This is accumulated over time by the Drishti graph runner.
+message Diagnostics {
+ repeated PerceptionSample perception_sample = 1;
+}
+
+message State {
+ enum Status {
+ TIMEOUT = 0; // Unable to reach media analysis process.
+ UNINITIALIZED = 1; // Media analytics working on loading configuration.
+ STARTED = 2; // Analysis process running but not recieving frames.
+ RUNNING = 3; // Analysis process running and injesting frames.
+ // Media analytics process waiting to be started.
+ SUSPENDED = 4;
+ }
+
+ // Note: RUNNING and SUSPENDED are the only two states which should be sent to
+ // SetState.
+ optional Status status = 1;
+
+ // Device context so that the media analytics process can better select the
+ // right video device to open.
+ optional string device_context = 2;
+}
+
+// This is the output of the MediaPerceptionSinkCalculator.
+message PerceptionSample {
+ optional FramePerception frame_perception = 1;
+ // The image frame data associated with the frame perception.
+ optional RawImageFrame raw_image_frame = 2;
+}
+
+// Note: this is a replica of image/content/flow/image/raw_image_data.proto
+// because this proto needs to be self-contained (to be checked in to Chromium
+// as well).
+message RawImageFrame {
+ optional int32 width = 1;
+ optional int32 height = 2;
+ // colorspace is defined in the same way as SimpleImage::ColorSpace.
+ optional int32 colorspace = 3;
+ // By default, 1 channel means Grayscale, 2 channels meangs Grayscale + Alpha,
+ // 3 channels means RGB, and 4 channels means RGBA.
+ optional int32 channels = 4;
+ // The raw pixel data as a string of uint8.
+ // The size of pixel_data is height*width*channels.
+ // Byte order is RGBARGBARGBA.
+ // TODO(lasoren): Replace with compressed image format.
+ optional bytes pixel_data = 5;
+}
+
+// The set of computer vision metadata for an image frame.
+message FramePerception {
+ optional uint64 frame_id = 1;
+
+ optional uint32 frame_width_in_px = 2;
+ optional uint32 frame_height_in_px = 3;
+
+ // The timestamp associated with the frame (when it enters the Drishti
+ // graph).
+ optional uint64 timestamp = 4;
+
+ // The list of entities detected for this frame.
+ repeated Entity entity = 5;
+}
+
+message Entity {
+ // A unique id associated with the detected entity, which can be used to track
+ // the entity over time.
+ optional uint32 id = 1;
+
+ enum EntityType {
+ UNSPECIFIED = 0;
+ FACE = 1;
+ PERSON = 2;
+ }
+
+ optional EntityType type = 2;
+
+ // Minimum box, which captures entire detected entity.
+ optional BoundingBox bounding_box = 3;
+
+ // A value for the quality of this detection.
+ optional float confidence = 4;
+}
+
+message BoundingBox {
+ // The points that define the corners of a bounding box.
+ optional Point top_left = 1;
+ optional Point bottom_right = 2;
+ // Indicates whether or not these coordinates are normalized to values between
+ // 0 and 1.
+ optional bool normalized = 3 [default = false];
+}
+
+message Point {
+ // x represents the horizontal distance from the top left corner of the image
+ // to the point.
+ optional float x = 1;
+ // y represents the vertical distance from the top left corner of the image to
+ // the point.
+ optional float y = 2;
+}

Powered by Google App Engine
This is Rietveld 408576698