Add per-ball trajectory color to shot serialization proto
Some checks failed
Tests / Tests (pull_request) Failing after 10s
Some checks failed
Tests / Tests (pull_request) Failing after 10s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: shot.proto
|
||||
"""Generated protocol buffer code."""
|
||||
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
|
||||
b'\n\nshot.proto\x12\x0fserialized_shot"?\n\x03\x42ox\x12\x0c\n\x04left\x18\x01 \x01(\x02\x12\x0b\n\x03top\x18\x02 \x01(\x02\x12\r\n\x05width\x18\x03 \x01(\x02\x12\x0e\n\x06height\x18\x04 \x01(\x02"\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02"\x7f\n\rBallDetection\x12.\n\x0eplane_position\x18\x01 \x01(\x0b\x32\x16.serialized_shot.Point\x12(\n\nannotation\x18\x02 \x01(\x0b\x32\x14.serialized_shot.Box\x12\x14\n\x0cinterpolated\x18\x03 \x01(\x08"T\n\x10RLEBallDetection\x12\x31\n\tdetection\x18\x01 \x01(\x0b\x32\x1e.serialized_shot.BallDetection\x12\r\n\x05\x63ount\x18\x02 \x01(\r"L\n\x13RLEDetectionHistory\x12\x35\n\ndetections\x18\x01 \x03(\x0b\x32!.serialized_shot.RLEBallDetection"F\n\x10\x44\x65tectionHistory\x12\x32\n\ndetections\x18\x01 \x03(\x0b\x32\x1e.serialized_shot.BallDetection"\xfc\x01\n\rCollisionInfo\x12\x0e\n\x06source\x18\x01 \x01(\r\x12M\n\x10\x62\x61ll_identifiers\x18\x02 \x03(\x0b\x32\x33.serialized_shot.CollisionInfo.BallIdentifiersEntry\x12\x17\n\x0fwall_identifier\x18\x03 \x01(\r\x12\x13\n\x0b\x66rame_index\x18\x04 \x01(\r\x12\x0e\n\x06static\x18\x05 \x01(\x08\x1aN\n\x14\x42\x61llIdentifiersEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.serialized_shot.Point:\x02\x38\x01"\xcc\x02\n\x04Path\x12\x13\n\x0bstart_frame\x18\x01 \x01(\r\x12\x11\n\tend_frame\x18\x02 \x01(\r\x12\x37\n\ndetections\x18\x03 \x01(\x0b\x32!.serialized_shot.DetectionHistoryH\x00\x12>\n\x0erle_detections\x18\x04 \x01(\x0b\x32$.serialized_shot.RLEDetectionHistoryH\x00\x12\x15\n\x0bnot_present\x18\x05 \x01(\x08H\x00\x12\x11\n\tis_static\x18\x06 \x01(\x08\x12\x32\n\nstart_info\x18\x07 \x01(\x0b\x32\x1e.serialized_shot.CollisionInfo\x12\x30\n\x08\x65nd_info\x18\x08 \x01(\x0b\x32\x1e.serialized_shot.CollisionInfoB\x13\n\x11\x64\x65tection_history"R\n\x11IdentifierHistory\x12\x17\n\x0f\x62\x61ll_identifier\x18\x01 \x01(\r\x12$\n\x05paths\x18\x02 \x03(\x0b\x32\x15.serialized_shot.Path"\xf4\x01\n\x12KeyBallIdentifiers\x12\x10\n\x08\x63ue_ball\x18\x01 \x01(\r\x12\x13\n\x0bobject_ball\x18\x02 \x01(\r\x12\x13\n\x0btarget_ball\x18\x03 \x01(\r\x12\x18\n\x10\x63ontact_sequence\x18\x04 \x03(\r\x12\x18\n\x0b\x63ue_ball_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0eobject_ball_id\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0etarget_ball_id\x18\x07 \x01(\rH\x02\x88\x01\x01\x42\x0e\n\x0c_cue_ball_idB\x11\n\x0f_object_ball_idB\x11\n\x0f_target_ball_id"\xa8\x01\n\x04Shot\x12@\n\x14identifier_histories\x18\x03 \x03(\x0b\x32".serialized_shot.IdentifierHistory\x12\x36\n\tkey_balls\x18\x04 \x01(\x0b\x32#.serialized_shot.KeyBallIdentifiers\x12\x13\n\x0bstart_index\x18\x05 \x01(\r\x12\x11\n\tend_index\x18\x06 \x01(\rb\x06proto3'
|
||||
b'\n\nshot.proto\x12\x0fserialized_shot"?\n\x03\x42ox\x12\x0c\n\x04left\x18\x01 \x01(\x02\x12\x0b\n\x03top\x18\x02 \x01(\x02\x12\r\n\x05width\x18\x03 \x01(\x02\x12\x0e\n\x06height\x18\x04 \x01(\x02"\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02"\x7f\n\rBallDetection\x12.\n\x0eplane_position\x18\x01 \x01(\x0b\x32\x16.serialized_shot.Point\x12(\n\nannotation\x18\x02 \x01(\x0b\x32\x14.serialized_shot.Box\x12\x14\n\x0cinterpolated\x18\x03 \x01(\x08"T\n\x10RLEBallDetection\x12\x31\n\tdetection\x18\x01 \x01(\x0b\x32\x1e.serialized_shot.BallDetection\x12\r\n\x05\x63ount\x18\x02 \x01(\r"L\n\x13RLEDetectionHistory\x12\x35\n\ndetections\x18\x01 \x03(\x0b\x32!.serialized_shot.RLEBallDetection"F\n\x10\x44\x65tectionHistory\x12\x32\n\ndetections\x18\x01 \x03(\x0b\x32\x1e.serialized_shot.BallDetection"\xfc\x01\n\rCollisionInfo\x12\x0e\n\x06source\x18\x01 \x01(\r\x12M\n\x10\x62\x61ll_identifiers\x18\x02 \x03(\x0b\x32\x33.serialized_shot.CollisionInfo.BallIdentifiersEntry\x12\x17\n\x0fwall_identifier\x18\x03 \x01(\r\x12\x13\n\x0b\x66rame_index\x18\x04 \x01(\r\x12\x0e\n\x06static\x18\x05 \x01(\x08\x1aN\n\x14\x42\x61llIdentifiersEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.serialized_shot.Point:\x02\x38\x01"\xcc\x02\n\x04Path\x12\x13\n\x0bstart_frame\x18\x01 \x01(\r\x12\x11\n\tend_frame\x18\x02 \x01(\r\x12\x37\n\ndetections\x18\x03 \x01(\x0b\x32!.serialized_shot.DetectionHistoryH\x00\x12>\n\x0erle_detections\x18\x04 \x01(\x0b\x32$.serialized_shot.RLEDetectionHistoryH\x00\x12\x15\n\x0bnot_present\x18\x05 \x01(\x08H\x00\x12\x11\n\tis_static\x18\x06 \x01(\x08\x12\x32\n\nstart_info\x18\x07 \x01(\x0b\x32\x1e.serialized_shot.CollisionInfo\x12\x30\n\x08\x65nd_info\x18\x08 \x01(\x0b\x32\x1e.serialized_shot.CollisionInfoB\x13\n\x11\x64\x65tection_history"I\n\x0c\x43olorCluster\x12\x11\n\tlightness\x18\x01 \x01(\x02\x12\t\n\x01\x61\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x12\x10\n\x08\x66raction\x18\x04 \x01(\x02"B\n\x0fTrajectoryColor\x12/\n\x08\x63lusters\x18\x01 \x03(\x0b\x32\x1d.serialized_shot.ColorCluster"\x8e\x01\n\x11IdentifierHistory\x12\x17\n\x0f\x62\x61ll_identifier\x18\x01 \x01(\r\x12$\n\x05paths\x18\x02 \x03(\x0b\x32\x15.serialized_shot.Path\x12:\n\x10trajectory_color\x18\x03 \x01(\x0b\x32 .serialized_shot.TrajectoryColor"\xf4\x01\n\x12KeyBallIdentifiers\x12\x10\n\x08\x63ue_ball\x18\x01 \x01(\r\x12\x13\n\x0bobject_ball\x18\x02 \x01(\r\x12\x13\n\x0btarget_ball\x18\x03 \x01(\r\x12\x18\n\x10\x63ontact_sequence\x18\x04 \x03(\r\x12\x18\n\x0b\x63ue_ball_id\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0eobject_ball_id\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0etarget_ball_id\x18\x07 \x01(\rH\x02\x88\x01\x01\x42\x0e\n\x0c_cue_ball_idB\x11\n\x0f_object_ball_idB\x11\n\x0f_target_ball_id"\xa8\x01\n\x04Shot\x12@\n\x14identifier_histories\x18\x03 \x03(\x0b\x32".serialized_shot.IdentifierHistory\x12\x36\n\tkey_balls\x18\x04 \x01(\x0b\x32#.serialized_shot.KeyBallIdentifiers\x12\x13\n\x0bstart_index\x18\x05 \x01(\r\x12\x11\n\tend_index\x18\x06 \x01(\rb\x06proto3'
|
||||
)
|
||||
|
||||
_globals = globals()
|
||||
@@ -41,10 +41,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
_globals["_COLLISIONINFO_BALLIDENTIFIERSENTRY"]._serialized_end = 745
|
||||
_globals["_PATH"]._serialized_start = 748
|
||||
_globals["_PATH"]._serialized_end = 1080
|
||||
_globals["_IDENTIFIERHISTORY"]._serialized_start = 1082
|
||||
_globals["_IDENTIFIERHISTORY"]._serialized_end = 1164
|
||||
_globals["_KEYBALLIDENTIFIERS"]._serialized_start = 1167
|
||||
_globals["_KEYBALLIDENTIFIERS"]._serialized_end = 1411
|
||||
_globals["_SHOT"]._serialized_start = 1414
|
||||
_globals["_SHOT"]._serialized_end = 1582
|
||||
_globals["_COLORCLUSTER"]._serialized_start = 1082
|
||||
_globals["_COLORCLUSTER"]._serialized_end = 1155
|
||||
_globals["_TRAJECTORYCOLOR"]._serialized_start = 1157
|
||||
_globals["_TRAJECTORYCOLOR"]._serialized_end = 1223
|
||||
_globals["_IDENTIFIERHISTORY"]._serialized_start = 1226
|
||||
_globals["_IDENTIFIERHISTORY"]._serialized_end = 1368
|
||||
_globals["_KEYBALLIDENTIFIERS"]._serialized_start = 1371
|
||||
_globals["_KEYBALLIDENTIFIERS"]._serialized_end = 1615
|
||||
_globals["_SHOT"]._serialized_start = 1618
|
||||
_globals["_SHOT"]._serialized_end = 1786
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
||||
@@ -90,7 +90,6 @@ class CollisionInfo(_message.Message):
|
||||
"frame_index",
|
||||
"static",
|
||||
]
|
||||
|
||||
class BallIdentifiersEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
@@ -102,6 +101,7 @@ class CollisionInfo(_message.Message):
|
||||
key: _Optional[int] = ...,
|
||||
value: _Optional[_Union[Point, _Mapping]] = ...,
|
||||
) -> None: ...
|
||||
|
||||
SOURCE_FIELD_NUMBER: _ClassVar[int]
|
||||
BALL_IDENTIFIERS_FIELD_NUMBER: _ClassVar[int]
|
||||
WALL_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
|
||||
@@ -160,16 +160,45 @@ class Path(_message.Message):
|
||||
end_info: _Optional[_Union[CollisionInfo, _Mapping]] = ...,
|
||||
) -> None: ...
|
||||
|
||||
class ColorCluster(_message.Message):
|
||||
__slots__ = ["lightness", "a", "b", "fraction"]
|
||||
LIGHTNESS_FIELD_NUMBER: _ClassVar[int]
|
||||
A_FIELD_NUMBER: _ClassVar[int]
|
||||
B_FIELD_NUMBER: _ClassVar[int]
|
||||
FRACTION_FIELD_NUMBER: _ClassVar[int]
|
||||
lightness: float
|
||||
a: float
|
||||
b: float
|
||||
fraction: float
|
||||
def __init__(
|
||||
self,
|
||||
lightness: _Optional[float] = ...,
|
||||
a: _Optional[float] = ...,
|
||||
b: _Optional[float] = ...,
|
||||
fraction: _Optional[float] = ...,
|
||||
) -> None: ...
|
||||
|
||||
class TrajectoryColor(_message.Message):
|
||||
__slots__ = ["clusters"]
|
||||
CLUSTERS_FIELD_NUMBER: _ClassVar[int]
|
||||
clusters: _containers.RepeatedCompositeFieldContainer[ColorCluster]
|
||||
def __init__(
|
||||
self, clusters: _Optional[_Iterable[_Union[ColorCluster, _Mapping]]] = ...
|
||||
) -> None: ...
|
||||
|
||||
class IdentifierHistory(_message.Message):
|
||||
__slots__ = ["ball_identifier", "paths"]
|
||||
__slots__ = ["ball_identifier", "paths", "trajectory_color"]
|
||||
BALL_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
|
||||
PATHS_FIELD_NUMBER: _ClassVar[int]
|
||||
TRAJECTORY_COLOR_FIELD_NUMBER: _ClassVar[int]
|
||||
ball_identifier: int
|
||||
paths: _containers.RepeatedCompositeFieldContainer[Path]
|
||||
trajectory_color: TrajectoryColor
|
||||
def __init__(
|
||||
self,
|
||||
ball_identifier: _Optional[int] = ...,
|
||||
paths: _Optional[_Iterable[_Union[Path, _Mapping]]] = ...,
|
||||
trajectory_color: _Optional[_Union[TrajectoryColor, _Mapping]] = ...,
|
||||
) -> None: ...
|
||||
|
||||
class KeyBallIdentifiers(_message.Message):
|
||||
|
||||
@@ -50,9 +50,21 @@ message Path {
|
||||
CollisionInfo end_info = 8;
|
||||
}
|
||||
|
||||
message ColorCluster {
|
||||
// LAB in OpenCV's 0-255 uint8 scale (see railbird LABCV2Color).
|
||||
float lightness = 1;
|
||||
float a = 2;
|
||||
float b = 3;
|
||||
// Share of this ball's accumulated color pixels in this cluster (0-1).
|
||||
float fraction = 4;
|
||||
}
|
||||
|
||||
message TrajectoryColor { repeated ColorCluster clusters = 1; }
|
||||
|
||||
message IdentifierHistory {
|
||||
uint32 ball_identifier = 1;
|
||||
repeated Path paths = 2;
|
||||
TrajectoryColor trajectory_color = 3;
|
||||
}
|
||||
message KeyBallIdentifiers {
|
||||
uint32 cue_ball = 1;
|
||||
|
||||
Reference in New Issue
Block a user