gimlet-api 0.0.2__py3-none-any.whl → 0.0.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,6 @@ Requires-Dist: protobuf
11
11
  Requires-Dist: grpcio
12
12
  Requires-Dist: torch
13
13
  Requires-Dist: torch_mlir_gml
14
- Version: 0.0.2
14
+ Version: 0.0.4
15
15
 
16
16
  UNKNOWN
@@ -1,9 +1,11 @@
1
- gml/__init__.py,sha256=0yRaNlE_nPT6q2OW7NQzMHNTKt1FYWNYjhCEyhLaRFM,727
2
- gml/_utils.py,sha256=X22j6gPuVyFFdGjPflwkCNo34OohdulxtovBnHY8QrM,1193
3
- gml/client.py,sha256=x-k0YnNpRu1-0kVcPfiUsQ-lLKAOfAwpaFd28ynntp8,10229
4
- gml/compile.py,sha256=CrM7WJn7olXw7nuTOm1IIqOo1a_WbzTmBuUCHZ_hlRQ,2096
5
- gml/model.py,sha256=RENQPeE1Df1oV4CyK3KzAztHrm-vrT5gTVipxJx6bTs,5220
6
- gml/preprocessing.py,sha256=jcdzY1Xn5a9QU7qiWrOFJ-MZNM0eVTMS3inGR5qSA1E,3013
1
+ gml/__init__.py,sha256=e81afOgzDBpBNVb3pv_9Y0waGPuX95Y73ofWsq-UVak,718
2
+ gml/_utils.py,sha256=mSCWHhCdzcUvHqmJIB2FS215K1LMgJCWcZ6e6FWK3hQ,1184
3
+ gml/client.py,sha256=4wJ5JeyhMc7UTJazD0GvcHH90Oqiu-x7UY-Q1Zl2Wxo,10640
4
+ gml/compile.py,sha256=pS_mjATIvAH-zxSbIgZeizmpi08571zpOkn5bWRyzM0,2087
5
+ gml/model.py,sha256=91I0kCyix1e2ZR7UAdxtyxOIS6pTEfUQ3G62MBkYx5k,5221
6
+ gml/model_utils.py,sha256=67w32zLI7rjlNsKW6nvCUp-HUjYNMCKMDhjymgJ6EOU,1275
7
+ gml/pipelines.py,sha256=RObsuECms-dGFAMskxlknxfV5-9d5sEOll7McUP5reo,3737
8
+ gml/preprocessing.py,sha256=w-D_GzRndY-Hec8O5UdMSVDXMWtohbwPRxizUjhHsFA,3004
7
9
  gml/proto/gogoproto/gogo_pb2.py,sha256=WVMIAR8K--mCUkTPM7mEeeXGpQlRRtt_kco10iP3CZs,15728
8
10
  gml/proto/mediapipe/framework/calculator_contract_test_pb2.py,sha256=hNjyZCBz3RYa6rN4xR3FOCZKA24gq_LsJ3EMegl5wK4,2031
9
11
  gml/proto/mediapipe/framework/calculator_options_pb2.py,sha256=Nq1BQRtLdsIgfkw7ymD3eg2p2_RSlZhiHS7YbDhNHR0,1563
@@ -20,10 +22,10 @@ gml/proto/mediapipe/framework/thread_pool_executor_pb2.py,sha256=9TJ66fqSo1BiJmE
20
22
  gml/proto/opentelemetry/proto/common/v1/common_pb2.py,sha256=wQjeDti-C8JiNwRn-z5M5p-Fqxm-SmnbPaoitJcSK-4,2860
21
23
  gml/proto/opentelemetry/proto/metrics/v1/metrics_pb2.py,sha256=t2Far6oVcUFQIimzgAkZ8vQd0asMIlvECp4osC0ujgg,9735
22
24
  gml/proto/opentelemetry/proto/resource/v1/resource_pb2.py,sha256=cbNmE12Nm3PjW4NXU7-Z-9m_0Zs3Ab8R1xLkDnvclCg,1730
23
- gml/proto/src/api/corepb/v1/controlplane_pb2.py,sha256=tMndruR8CilHUaZ8QBPOkT2rh-qXmR20h_TlbF3m_MU,5121
25
+ gml/proto/src/api/corepb/v1/controlplane_pb2.py,sha256=FPNx5fRXj-bnN5mkDUXVz17M33vuHV_hmxH0ggkAUVs,5536
24
26
  gml/proto/src/api/corepb/v1/cp_edge_pb2.py,sha256=QPd5gMZvt97ukeHbrgqwroJH4oKTNtjEiAlgfk-FH-k,13496
25
- gml/proto/src/api/corepb/v1/mediastream_pb2.py,sha256=0vavfDHBauwg-yDdh1GQDPw_kleUAY_lZhIjOhtStec,6347
26
- gml/proto/src/api/corepb/v1/model_exec_pb2.py,sha256=v50FEbj2I9aw6whinGx2yA11nEAUXpktP7hphXxtpyc,25459
27
+ gml/proto/src/api/corepb/v1/mediastream_pb2.py,sha256=yNTIivI9LChFifs90eO5dKwVmAR3WGPYQWXHOuXGUD4,6528
28
+ gml/proto/src/api/corepb/v1/model_exec_pb2.py,sha256=U8ujw_7ijKrULiCqxJ4WY9VWiUtIemfIy2e6h1NPrto,25106
27
29
  gml/proto/src/common/typespb/jwt_pb2.py,sha256=lxy-bqbyg96i9n_xr2JbkuWX-ldnoJavXPMnApzVSio,5580
28
30
  gml/proto/src/common/typespb/status_pb2.py,sha256=IbBJnbsAlvsuTtyT285ZuW6k5VaPfl5kRSOnBxD_H8M,2109
29
31
  gml/proto/src/common/typespb/uuid_pb2.py,sha256=5Fm3jYpCPX7sMrP6RhRYsF0SnuZNIBEQJk9f0jwZ2Rw,1188
@@ -31,11 +33,11 @@ gml/proto/src/controlplane/directory/directorypb/v1/directory_pb2.py,sha256=KgoU
31
33
  gml/proto/src/controlplane/directory/directorypb/v1/directory_pb2_grpc.py,sha256=p3OpT8-hfNHu4-29qr-ZahRwO-LoCYM9Q4jomAHTXGA,24572
32
34
  gml/proto/src/controlplane/filetransfer/ftpb/v1/ftpb_pb2.py,sha256=r8mbJNTq45_c0amPnTr8OFZasCk7XWu2YS_eu7GfWJg,7050
33
35
  gml/proto/src/controlplane/filetransfer/ftpb/v1/ftpb_pb2_grpc.py,sha256=XlE4R2PJaOmzQocx7y6SKJvuqt8tYBGzBuhajvzG0cc,12919
34
- gml/proto/src/controlplane/logicalpipeline/lppb/v1/lppb_pb2.py,sha256=2yD8ZKS5KMqvDd2LFgfOWUU9wC-y1lcSOkumAOOiRCY,5851
36
+ gml/proto/src/controlplane/logicalpipeline/lppb/v1/lppb_pb2.py,sha256=AvPGThkFumcElIYY9fjqWdTX9J44RCEJbaYi1F7gn4c,5661
35
37
  gml/proto/src/controlplane/logicalpipeline/lppb/v1/lppb_pb2_grpc.py,sha256=q1PugN3Jm_4v5hVWADJLCIkIEC2_beKEqEH4vb_SpH8,7396
36
38
  gml/proto/src/controlplane/model/mpb/v1/mpb_pb2.py,sha256=RVedXkNYu2iF5OHiXoYyRw9AGRCUWG7qNyY-5QY71Go,3762
37
39
  gml/proto/src/controlplane/model/mpb/v1/mpb_pb2_grpc.py,sha256=KSdb6V04qUHDsb1R2o3wixwTyZgrhwnPYobjnRgWX4I,4735
38
- gml/tensor.py,sha256=veEDZGWRCJGa16gAabuCZwSS3jLXDXBk4xTH-v5C-Dw,7170
39
- gimlet_api-0.0.2.dist-info/WHEEL,sha256=sobxWSyDDkdg_rinUth-jxhXHqoNqlmNMJY3aTZn2Us,91
40
- gimlet_api-0.0.2.dist-info/METADATA,sha256=-XADMEHG4d3Gk1up3KH_9NhGK_2qtZG3dbC6NEONG0Q,429
41
- gimlet_api-0.0.2.dist-info/RECORD,,
40
+ gml/tensor.py,sha256=8Ne95YFAkid_jjbtuXFtn_Eu0Hn9u5IaBRuwR7BpzxI,11827
41
+ gimlet_api-0.0.4.dist-info/WHEEL,sha256=sobxWSyDDkdg_rinUth-jxhXHqoNqlmNMJY3aTZn2Us,91
42
+ gimlet_api-0.0.4.dist-info/METADATA,sha256=Bm_ca7tpLR7foub0QOavwvJ9_2_4FQlFPr6n8zwoJBU,429
43
+ gimlet_api-0.0.4.dist-info/RECORD,,
gml/__init__.py CHANGED
@@ -1,17 +1,18 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  from gml.client import Client # noqa
17
18
  from gml.model import ModelFromFiles, TorchModel # noqa
gml/_utils.py CHANGED
@@ -1,17 +1,18 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  import hashlib
17
18
  import os
gml/client.py CHANGED
@@ -1,22 +1,23 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  import os
17
18
  import uuid
18
19
  from pathlib import Path
19
- from typing import BinaryIO, List, Optional, TextIO
20
+ from typing import BinaryIO, List, Optional, TextIO, Union
20
21
 
21
22
  import gml.proto.src.api.corepb.v1.model_exec_pb2 as modelexecpb
22
23
  import gml.proto.src.common.typespb.uuid_pb2 as uuidpb
@@ -31,6 +32,7 @@ import gml.proto.src.controlplane.model.mpb.v1.mpb_pb2_grpc as mpb_grpc
31
32
  import grpc
32
33
  from gml._utils import chunk_file, sha256sum
33
34
  from gml.model import Model
35
+ from gml.pipelines import Pipeline
34
36
 
35
37
  DEFAULT_CONTROLPLANE_ADDR = "app.gimletlabs.ai"
36
38
 
@@ -166,7 +168,9 @@ class Client:
166
168
  )
167
169
  except grpc.RpcError as e:
168
170
  if e.code() == grpc.StatusCode.ALREADY_EXISTS:
169
- raise FileAlreadyExists(f"A file already exists with name: {name}")
171
+ raise FileAlreadyExists(
172
+ f"A file already exists with name: {name}"
173
+ ) from e
170
174
  raise e
171
175
  return resp.info
172
176
 
@@ -272,13 +276,20 @@ class Client:
272
276
  name: str,
273
277
  models: List[Model],
274
278
  pipeline_file: Optional[Path] = None,
275
- pipeline: Optional[str] = None,
279
+ pipeline: Optional[Union[str, Pipeline]] = None,
276
280
  ) -> uuidpb.UUID:
277
281
  if pipeline_file is not None:
278
282
  with open(pipeline_file, "r") as f:
279
283
  yaml = f.read()
280
284
  elif pipeline is not None:
281
- yaml = pipeline
285
+ if isinstance(pipeline, Pipeline):
286
+ if self._org_name is None:
287
+ raise ValueError("must set `org` to upload a pipeline")
288
+ yaml = pipeline.to_yaml(
289
+ [model.name for model in models], self._org_name
290
+ )
291
+ else:
292
+ yaml = pipeline
282
293
  else:
283
294
  raise ValueError("must specify one of 'pipeline_file' or 'pipeline'")
284
295
 
gml/compile.py CHANGED
@@ -1,17 +1,18 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  from torch.fx.experimental.proxy_tensor import make_fx
17
18
  from torch_mlir import ExampleArgs, OutputType
gml/model.py CHANGED
@@ -1,17 +1,18 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  import abc
17
18
  import io
@@ -97,7 +98,7 @@ class TorchModel(Model):
97
98
 
98
99
  def _convert_to_torch_mlir(self):
99
100
  return to_torch_mlir(
100
- self.torch_module,
101
+ self.torch_module.to("cpu"),
101
102
  [
102
103
  torch_mlir.TensorPlaceholder(shape, dtype)
103
104
  for shape, dtype in zip(self.input_shapes, self.input_dtypes)
gml/model_utils.py ADDED
@@ -0,0 +1,33 @@
1
+ # Copyright 2023- Gimlet Labs, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
16
+
17
+
18
+ def prepare_ultralytics_yolo(model):
19
+ """Prepares an ultralytics YOLO model for export.
20
+
21
+ Ultralytics YOLO models requires setting `export=True` on some of the torch modules for exporting to work properly.
22
+ This function handles setting that value on the necessary modules.
23
+ """
24
+ if not hasattr(model, "model"):
25
+ raise ValueError(
26
+ "input to `prepare_ultralytics_yolo` is not a supported ultralytics yolo model"
27
+ )
28
+ if hasattr(model.model, "fuse") and callable(model.model.fuse):
29
+ model.model.fuse()
30
+
31
+ for _, m in model.named_modules():
32
+ if hasattr(m, "export"):
33
+ m.export = True
gml/pipelines.py ADDED
@@ -0,0 +1,149 @@
1
+ # Copyright 2023- Gimlet Labs, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
16
+
17
+ import abc
18
+ from typing import List
19
+
20
+
21
+ class Pipeline:
22
+ @abc.abstractmethod
23
+ def to_yaml(self, models: List[str], org_name: str) -> str:
24
+ pass
25
+
26
+
27
+ class SingleModelPipeline(Pipeline):
28
+ def to_yaml(self, models: List[str], org_name: str) -> str:
29
+ if len(models) != 1:
30
+ raise ValueError(
31
+ "{} only supports a single model".format(type(self).__qualname__)
32
+ )
33
+ return self._to_yaml(models[0], org_name)
34
+
35
+ @abc.abstractmethod
36
+ def _to_yaml(self, model_name: str, org_name: str) -> str:
37
+ pass
38
+
39
+
40
+ class SimpleDetectionPipeline(SingleModelPipeline):
41
+ def __init__(self, add_tracking_id: bool = False):
42
+ self.add_tracking_id = add_tracking_id
43
+
44
+ def _to_yaml(self, model_name: str, org_name: str):
45
+ add_tracking_id = "true" if self.add_tracking_id else "false"
46
+ # editorconfig-checker-disable
47
+ return f"""---
48
+ nodes:
49
+ - name: camera_source
50
+ kind: CameraSource
51
+ outputs:
52
+ - frame
53
+ - name: detect
54
+ kind: Detect
55
+ attributes:
56
+ add_tracking_id: {add_tracking_id}
57
+ model:
58
+ model:
59
+ name: {model_name}
60
+ org: {org_name}
61
+ frame_rate_limit: 30
62
+ inputs:
63
+ frame: .camera_source.frame
64
+ outputs:
65
+ - detections
66
+ - name: frame_metrics_sink
67
+ kind: FrameMetricsSink
68
+ attributes:
69
+ frame_rate_limit: 30
70
+ inputs:
71
+ frame: .camera_source.frame
72
+ outputs:
73
+ - frame_metrics
74
+ - name: detection_metrics_sink
75
+ kind: DetectionsMetricsSink
76
+ attributes:
77
+ inputs:
78
+ detections: .detect.detections
79
+ - name: pipeline_latency_metrics_sink
80
+ kind: LatencyMetricsSink
81
+ attributes:
82
+ name: model
83
+ inputs:
84
+ reference: .camera_source.frame
85
+ detections: .detect.detections
86
+ frame_metrics: .frame_metrics_sink.frame_metrics
87
+ - name: video_stream_sink
88
+ kind: VideoStreamSink
89
+ attributes:
90
+ frame_rate_limit: 30
91
+ inputs:
92
+ frame: .camera_source.frame
93
+ detections: .detect.detections
94
+ frame_metrics: .frame_metrics_sink.frame_metrics
95
+ """
96
+
97
+
98
+ # editorconfig-checker-enable
99
+
100
+
101
+ class SimpleSegmentationPipeline(SingleModelPipeline):
102
+ def _to_yaml(self, model_name: str, org_name: str):
103
+ # editorconfig-checker-disable
104
+ return f"""---
105
+ nodes:
106
+ - name: camera_source
107
+ kind: CameraSource
108
+ outputs:
109
+ - frame
110
+ - name: segment
111
+ kind: Segment
112
+ attributes:
113
+ model:
114
+ model:
115
+ name: {model_name}
116
+ org: {org_name}
117
+ frame_rate_limit: 30
118
+ inputs:
119
+ frame: .camera_source.frame
120
+ outputs:
121
+ - segmentation
122
+ - name: frame_metrics_sink
123
+ kind: FrameMetricsSink
124
+ attributes:
125
+ frame_rate_limit: 30
126
+ inputs:
127
+ frame: .camera_source.frame
128
+ outputs:
129
+ - frame_metrics
130
+ - name: pipeline_latency_metrics_sink
131
+ kind: LatencyMetricsSink
132
+ attributes:
133
+ name: model
134
+ inputs:
135
+ reference: .camera_source.frame
136
+ segmentation: .segment.segmentation
137
+ frame_metrics: .frame_metrics_sink.frame_metrics
138
+ - name: video_stream_sink
139
+ kind: VideoStreamSink
140
+ attributes:
141
+ frame_rate_limit: 30
142
+ inputs:
143
+ frame: .camera_source.frame
144
+ frame_metrics: .frame_metrics_sink.frame_metrics
145
+ segmentation: .segment.segmentation
146
+ """
147
+
148
+
149
+ # editorconfig-checker-enable
gml/preprocessing.py CHANGED
@@ -1,17 +1,18 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  import abc
17
18
  from typing import List
@@ -17,7 +17,7 @@ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
17
17
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$src/api/corepb/v1/controlplane.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc4\x01\n\nCPMetadata\x12\x37\n\x05topic\x18\x01 \x01(\x0e\x32!.gml.internal.api.core.v1.CPTopicR\x05topic\x12:\n\tentity_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x45ntityIDR\x08\x65ntityId\x12\x41\n\x0erecv_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rrecvTimestamp\"v\n\tCPMessage\x12@\n\x08metadata\x18\x01 \x01(\x0b\x32$.gml.internal.api.core.v1.CPMetadataR\x08metadata\x12\'\n\x03msg\x18\xe8\x07 \x01(\x0b\x32\x14.google.protobuf.AnyR\x03msg\"M\n\x0f\x44\x65viceConnected\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\"P\n\x12\x44\x65viceDisconnected\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\"\xd8\x01\n\x1ePhysicalPipelineReconciliation\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\x12Y\n\x14physical_pipeline_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x16\xe2\xde\x1f\x12PhysicalPipelineIDR\x12physicalPipelineId\x12\x1f\n\x0b\x66orce_apply\x18\x03 \x01(\x08R\nforceApply\"\xbc\x01\n PipelineDeploymentReconciliation\x12_\n\x16pipeline_deployment_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x18\xe2\xde\x1f\x14PipelineDeploymentIDR\x14pipelineDeploymentId\x12\x37\n\x08\x66leet_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0b\xe2\xde\x1f\x07\x46leetIDR\x07\x66leetId*\xc0\x01\n\x07\x43PTopic\x12\x14\n\x10\x43P_TOPIC_UNKNOWN\x10\x00\x12\x1d\n\x19\x43P_TOPIC_DEVICE_CONNECTED\x10\x01\x12-\n)CP_TOPIC_PHYSICAL_PIPELINE_RECONCILIATION\x10\x02\x12 \n\x1c\x43P_TOPIC_DEVICE_DISCONNECTED\x10\x03\x12/\n+CP_TOPIC_PIPELINE_DEPLOYMENT_RECONCILIATION\x10\x04\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$src/api/corepb/v1/controlplane.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc4\x01\n\nCPMetadata\x12\x37\n\x05topic\x18\x01 \x01(\x0e\x32!.gml.internal.api.core.v1.CPTopicR\x05topic\x12:\n\tentity_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x45ntityIDR\x08\x65ntityId\x12\x41\n\x0erecv_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rrecvTimestamp\"v\n\tCPMessage\x12@\n\x08metadata\x18\x01 \x01(\x0b\x32$.gml.internal.api.core.v1.CPMetadataR\x08metadata\x12\'\n\x03msg\x18\xe8\x07 \x01(\x0b\x32\x14.google.protobuf.AnyR\x03msg\"M\n\x0f\x44\x65viceConnected\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\"J\n\x0c\x44\x65viceUpdate\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\"P\n\x12\x44\x65viceDisconnected\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\"\xd8\x01\n\x1ePhysicalPipelineReconciliation\x12:\n\tdevice_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\x12Y\n\x14physical_pipeline_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x16\xe2\xde\x1f\x12PhysicalPipelineIDR\x12physicalPipelineId\x12\x1f\n\x0b\x66orce_apply\x18\x03 \x01(\x08R\nforceApply\"\xbc\x01\n PipelineDeploymentReconciliation\x12_\n\x16pipeline_deployment_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x18\xe2\xde\x1f\x14PipelineDeploymentIDR\x14pipelineDeploymentId\x12\x37\n\x08\x66leet_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0b\xe2\xde\x1f\x07\x46leetIDR\x07\x66leetId*\xdc\x01\n\x07\x43PTopic\x12\x14\n\x10\x43P_TOPIC_UNKNOWN\x10\x00\x12\x1d\n\x19\x43P_TOPIC_DEVICE_CONNECTED\x10\x01\x12-\n)CP_TOPIC_PHYSICAL_PIPELINE_RECONCILIATION\x10\x02\x12 \n\x1c\x43P_TOPIC_DEVICE_DISCONNECTED\x10\x03\x12/\n+CP_TOPIC_PIPELINE_DEPLOYMENT_RECONCILIATION\x10\x04\x12\x1a\n\x16\x43P_TOPIC_DEVICE_UPDATE\x10\x05\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
21
21
 
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
23
23
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'src.api.corepb.v1.controlplane_pb2', globals())
@@ -29,6 +29,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
29
29
  _CPMETADATA.fields_by_name['entity_id']._serialized_options = b'\342\336\037\010EntityID'
30
30
  _DEVICECONNECTED.fields_by_name['device_id']._options = None
31
31
  _DEVICECONNECTED.fields_by_name['device_id']._serialized_options = b'\342\336\037\010DeviceID'
32
+ _DEVICEUPDATE.fields_by_name['device_id']._options = None
33
+ _DEVICEUPDATE.fields_by_name['device_id']._serialized_options = b'\342\336\037\010DeviceID'
32
34
  _DEVICEDISCONNECTED.fields_by_name['device_id']._options = None
33
35
  _DEVICEDISCONNECTED.fields_by_name['device_id']._serialized_options = b'\342\336\037\010DeviceID'
34
36
  _PHYSICALPIPELINERECONCILIATION.fields_by_name['device_id']._options = None
@@ -39,18 +41,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
39
41
  _PIPELINEDEPLOYMENTRECONCILIATION.fields_by_name['pipeline_deployment_id']._serialized_options = b'\342\336\037\024PipelineDeploymentID'
40
42
  _PIPELINEDEPLOYMENTRECONCILIATION.fields_by_name['fleet_id']._options = None
41
43
  _PIPELINEDEPLOYMENTRECONCILIATION.fields_by_name['fleet_id']._serialized_options = b'\342\336\037\007FleetID'
42
- _CPTOPIC._serialized_start=1070
43
- _CPTOPIC._serialized_end=1262
44
+ _CPTOPIC._serialized_start=1146
45
+ _CPTOPIC._serialized_end=1366
44
46
  _CPMETADATA._serialized_start=180
45
47
  _CPMETADATA._serialized_end=376
46
48
  _CPMESSAGE._serialized_start=378
47
49
  _CPMESSAGE._serialized_end=496
48
50
  _DEVICECONNECTED._serialized_start=498
49
51
  _DEVICECONNECTED._serialized_end=575
50
- _DEVICEDISCONNECTED._serialized_start=577
51
- _DEVICEDISCONNECTED._serialized_end=657
52
- _PHYSICALPIPELINERECONCILIATION._serialized_start=660
53
- _PHYSICALPIPELINERECONCILIATION._serialized_end=876
54
- _PIPELINEDEPLOYMENTRECONCILIATION._serialized_start=879
55
- _PIPELINEDEPLOYMENTRECONCILIATION._serialized_end=1067
52
+ _DEVICEUPDATE._serialized_start=577
53
+ _DEVICEUPDATE._serialized_end=651
54
+ _DEVICEDISCONNECTED._serialized_start=653
55
+ _DEVICEDISCONNECTED._serialized_end=733
56
+ _PHYSICALPIPELINERECONCILIATION._serialized_start=736
57
+ _PHYSICALPIPELINERECONCILIATION._serialized_end=952
58
+ _PIPELINEDEPLOYMENTRECONCILIATION._serialized_start=955
59
+ _PIPELINEDEPLOYMENTRECONCILIATION._serialized_end=1143
56
60
  # @@protoc_insertion_point(module_scope)
@@ -15,7 +15,7 @@ from gml.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2
15
15
  from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#src/api/corepb/v1/mediastream.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/wrappers.proto\"3\n\x05Label\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n\x05score\x18\x02 \x01(\x02R\x05score\"d\n\x14NormalizedCenterRect\x12\x0e\n\x02xc\x18\x01 \x01(\x02R\x02xc\x12\x0e\n\x02yc\x18\x02 \x01(\x02R\x02yc\x12\x14\n\x05width\x18\x03 \x01(\x02R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x02R\x06height\"\xcd\x01\n\tDetection\x12\x35\n\x05label\x18\x01 \x03(\x0b\x32\x1f.gml.internal.api.core.v1.LabelR\x05label\x12Q\n\x0c\x62ounding_box\x18\x02 \x01(\x0b\x32..gml.internal.api.core.v1.NormalizedCenterRectR\x0b\x62oundingBox\x12\x36\n\x08track_id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x07trackId\"R\n\rDetectionList\x12\x41\n\tdetection\x18\x01 \x03(\x0b\x32#.gml.internal.api.core.v1.DetectionR\tdetection\"X\n\x10SegmentationMask\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12.\n\x13run_length_encoding\x18\x02 \x03(\x05R\x11runLengthEncoding\"~\n\x0cSegmentation\x12@\n\x05masks\x18\x01 \x03(\x0b\x32*.gml.internal.api.core.v1.SegmentationMaskR\x05masks\x12\x14\n\x05width\x18\x02 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\"\xbb\x01\n\x0eImageHistogram\x12\x45\n\x07\x63hannel\x18\x01 \x01(\x0e\x32+.gml.internal.api.core.v1.ImageColorChannelR\x07\x63hannel\x12\x10\n\x03min\x18\x02 \x01(\x01R\x03min\x12\x10\n\x03max\x18\x03 \x01(\x01R\x03max\x12\x10\n\x03num\x18\x04 \x01(\x03R\x03num\x12\x10\n\x03sum\x18\x05 \x01(\x01R\x03sum\x12\x1a\n\x06\x62ucket\x18\x06 \x03(\x03\x42\x02\x10\x01R\x06\x62ucket\"_\n\x13ImageHistogramBatch\x12H\n\nhistograms\x18\x01 \x03(\x0b\x32(.gml.internal.api.core.v1.ImageHistogramR\nhistograms\"e\n\x13ImageQualityMetrics\x12#\n\rbrisque_score\x18\x01 \x01(\x01R\x0c\x62risqueScore\x12)\n\x10\x62lurriness_score\x18\x02 \x01(\x01R\x0f\x62lurrinessScore\"\xae\x03\n\x11ImageOverlayChunk\x12\x31\n\x08\x66rame_ts\x18\x01 \x01(\x03\x42\x16\xe2\xde\x1f\x07\x46rameTS\xea\xde\x1f\x07\x66rameTSR\x07\x66rameTS\x12\x19\n\x03\x65of\x18\x02 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x45OFR\x03\x65of\x12I\n\ndetections\x18\x64 \x01(\x0b\x32\'.gml.internal.api.core.v1.DetectionListH\x00R\ndetections\x12L\n\x0csegmentation\x18\x65 \x01(\x0b\x32&.gml.internal.api.core.v1.SegmentationH\x00R\x0csegmentation\x12P\n\nhistograms\x18\xc8\x01 \x01(\x0b\x32-.gml.internal.api.core.v1.ImageHistogramBatchH\x00R\nhistograms\x12U\n\rimage_quality\x18\xac\x02 \x01(\x0b\x32-.gml.internal.api.core.v1.ImageQualityMetricsH\x00R\x0cimageQualityB\t\n\x07overlay\"\x81\x01\n\tH264Chunk\x12\x31\n\x08\x66rame_ts\x18\x01 \x01(\x03\x42\x16\xe2\xde\x1f\x07\x46rameTS\xea\xde\x1f\x07\x66rameTSR\x07\x66rameTS\x12\x19\n\x03\x65of\x18\x02 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x45OFR\x03\x65of\x12&\n\x08nal_data\x18\x03 \x01(\x0c\x42\x0b\xe2\xde\x1f\x07NALDataR\x07nalData\"Z\n\x0bVideoHeader\x12\x14\n\x05width\x18\x01 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x1d\n\nframe_rate\x18\x03 \x01(\x01R\tframeRate*\xac\x01\n\x11ImageColorChannel\x12\x1f\n\x1bIMAGE_COLOR_CHANNEL_UNKNOWN\x10\x00\x12\x1c\n\x18IMAGE_COLOR_CHANNEL_GRAY\x10\x01\x12\x1b\n\x17IMAGE_COLOR_CHANNEL_RED\x10\x02\x12\x1d\n\x19IMAGE_COLOR_CHANNEL_GREEN\x10\x03\x12\x1c\n\x18IMAGE_COLOR_CHANNEL_BLUE\x10\x04\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#src/api/corepb/v1/mediastream.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/wrappers.proto\"3\n\x05Label\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n\x05score\x18\x02 \x01(\x02R\x05score\"d\n\x14NormalizedCenterRect\x12\x0e\n\x02xc\x18\x01 \x01(\x02R\x02xc\x12\x0e\n\x02yc\x18\x02 \x01(\x02R\x02yc\x12\x14\n\x05width\x18\x03 \x01(\x02R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x02R\x06height\"\xcd\x01\n\tDetection\x12\x35\n\x05label\x18\x01 \x03(\x0b\x32\x1f.gml.internal.api.core.v1.LabelR\x05label\x12Q\n\x0c\x62ounding_box\x18\x02 \x01(\x0b\x32..gml.internal.api.core.v1.NormalizedCenterRectR\x0b\x62oundingBox\x12\x36\n\x08track_id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueR\x07trackId\"R\n\rDetectionList\x12\x41\n\tdetection\x18\x01 \x03(\x0b\x32#.gml.internal.api.core.v1.DetectionR\tdetection\"X\n\x10SegmentationMask\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12.\n\x13run_length_encoding\x18\x02 \x03(\x05R\x11runLengthEncoding\"~\n\x0cSegmentation\x12@\n\x05masks\x18\x01 \x03(\x0b\x32*.gml.internal.api.core.v1.SegmentationMaskR\x05masks\x12\x14\n\x05width\x18\x02 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\"8\n\nRegression\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n\x05value\x18\x02 \x01(\x01R\x05value\"\xbb\x01\n\x0eImageHistogram\x12\x45\n\x07\x63hannel\x18\x01 \x01(\x0e\x32+.gml.internal.api.core.v1.ImageColorChannelR\x07\x63hannel\x12\x10\n\x03min\x18\x02 \x01(\x01R\x03min\x12\x10\n\x03max\x18\x03 \x01(\x01R\x03max\x12\x10\n\x03num\x18\x04 \x01(\x03R\x03num\x12\x10\n\x03sum\x18\x05 \x01(\x01R\x03sum\x12\x1a\n\x06\x62ucket\x18\x06 \x03(\x03\x42\x02\x10\x01R\x06\x62ucket\"_\n\x13ImageHistogramBatch\x12H\n\nhistograms\x18\x01 \x03(\x0b\x32(.gml.internal.api.core.v1.ImageHistogramR\nhistograms\"e\n\x13ImageQualityMetrics\x12#\n\rbrisque_score\x18\x01 \x01(\x01R\x0c\x62risqueScore\x12)\n\x10\x62lurriness_score\x18\x02 \x01(\x01R\x0f\x62lurrinessScore\"\xae\x03\n\x11ImageOverlayChunk\x12\x31\n\x08\x66rame_ts\x18\x01 \x01(\x03\x42\x16\xe2\xde\x1f\x07\x46rameTS\xea\xde\x1f\x07\x66rameTSR\x07\x66rameTS\x12\x19\n\x03\x65of\x18\x02 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x45OFR\x03\x65of\x12I\n\ndetections\x18\x64 \x01(\x0b\x32\'.gml.internal.api.core.v1.DetectionListH\x00R\ndetections\x12L\n\x0csegmentation\x18\x65 \x01(\x0b\x32&.gml.internal.api.core.v1.SegmentationH\x00R\x0csegmentation\x12P\n\nhistograms\x18\xc8\x01 \x01(\x0b\x32-.gml.internal.api.core.v1.ImageHistogramBatchH\x00R\nhistograms\x12U\n\rimage_quality\x18\xac\x02 \x01(\x0b\x32-.gml.internal.api.core.v1.ImageQualityMetricsH\x00R\x0cimageQualityB\t\n\x07overlay\"\x81\x01\n\tH264Chunk\x12\x31\n\x08\x66rame_ts\x18\x01 \x01(\x03\x42\x16\xe2\xde\x1f\x07\x46rameTS\xea\xde\x1f\x07\x66rameTSR\x07\x66rameTS\x12\x19\n\x03\x65of\x18\x02 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x45OFR\x03\x65of\x12&\n\x08nal_data\x18\x03 \x01(\x0c\x42\x0b\xe2\xde\x1f\x07NALDataR\x07nalData\"Z\n\x0bVideoHeader\x12\x14\n\x05width\x18\x01 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x1d\n\nframe_rate\x18\x03 \x01(\x01R\tframeRate*\xac\x01\n\x11ImageColorChannel\x12\x1f\n\x1bIMAGE_COLOR_CHANNEL_UNKNOWN\x10\x00\x12\x1c\n\x18IMAGE_COLOR_CHANNEL_GRAY\x10\x01\x12\x1b\n\x17IMAGE_COLOR_CHANNEL_RED\x10\x02\x12\x1d\n\x19IMAGE_COLOR_CHANNEL_GREEN\x10\x03\x12\x1c\n\x18IMAGE_COLOR_CHANNEL_BLUE\x10\x04\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
19
19
 
20
20
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
21
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'src.api.corepb.v1.mediastream_pb2', globals())
@@ -35,8 +35,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
35
35
  _H264CHUNK.fields_by_name['eof']._serialized_options = b'\342\336\037\003EOF'
36
36
  _H264CHUNK.fields_by_name['nal_data']._options = None
37
37
  _H264CHUNK.fields_by_name['nal_data']._serialized_options = b'\342\336\037\007NALData'
38
- _IMAGECOLORCHANNEL._serialized_start=1832
39
- _IMAGECOLORCHANNEL._serialized_end=2004
38
+ _IMAGECOLORCHANNEL._serialized_start=1890
39
+ _IMAGECOLORCHANNEL._serialized_end=2062
40
40
  _LABEL._serialized_start=119
41
41
  _LABEL._serialized_end=170
42
42
  _NORMALIZEDCENTERRECT._serialized_start=172
@@ -49,16 +49,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
49
49
  _SEGMENTATIONMASK._serialized_end=654
50
50
  _SEGMENTATION._serialized_start=656
51
51
  _SEGMENTATION._serialized_end=782
52
- _IMAGEHISTOGRAM._serialized_start=785
53
- _IMAGEHISTOGRAM._serialized_end=972
54
- _IMAGEHISTOGRAMBATCH._serialized_start=974
55
- _IMAGEHISTOGRAMBATCH._serialized_end=1069
56
- _IMAGEQUALITYMETRICS._serialized_start=1071
57
- _IMAGEQUALITYMETRICS._serialized_end=1172
58
- _IMAGEOVERLAYCHUNK._serialized_start=1175
59
- _IMAGEOVERLAYCHUNK._serialized_end=1605
60
- _H264CHUNK._serialized_start=1608
61
- _H264CHUNK._serialized_end=1737
62
- _VIDEOHEADER._serialized_start=1739
63
- _VIDEOHEADER._serialized_end=1829
52
+ _REGRESSION._serialized_start=784
53
+ _REGRESSION._serialized_end=840
54
+ _IMAGEHISTOGRAM._serialized_start=843
55
+ _IMAGEHISTOGRAM._serialized_end=1030
56
+ _IMAGEHISTOGRAMBATCH._serialized_start=1032
57
+ _IMAGEHISTOGRAMBATCH._serialized_end=1127
58
+ _IMAGEQUALITYMETRICS._serialized_start=1129
59
+ _IMAGEQUALITYMETRICS._serialized_end=1230
60
+ _IMAGEOVERLAYCHUNK._serialized_start=1233
61
+ _IMAGEOVERLAYCHUNK._serialized_end=1663
62
+ _H264CHUNK._serialized_start=1666
63
+ _H264CHUNK._serialized_end=1795
64
+ _VIDEOHEADER._serialized_start=1797
65
+ _VIDEOHEADER._serialized_end=1887
64
66
  # @@protoc_insertion_point(module_scope)
@@ -19,9 +19,10 @@ except AttributeError:
19
19
  mediapipe_dot_framework_dot_calculator__options__pb2 = mediapipe_dot_framework_dot_calculator__pb2.mediapipe.framework.calculator_options_pb2
20
20
  from gml.proto.src.common.typespb import uuid_pb2 as src_dot_common_dot_typespb_dot_uuid__pb2
21
21
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
22
+ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
22
23
 
23
24
 
24
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"src/api/corepb/v1/model_exec.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a$mediapipe/framework/calculator.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa7\x02\n\x0f\x42oundingBoxInfo\x12Z\n\nbox_format\x18\x01 \x01(\x0e\x32;.gml.internal.api.core.v1.BoundingBoxInfo.BoundingBoxFormatR\tboxFormat\x12%\n\x0e\x62ox_normalized\x18\x02 \x01(\x08R\rboxNormalized\"\x90\x01\n\x11\x42oundingBoxFormat\x12\x1f\n\x1b\x42OUNDING_BOX_FORMAT_UNKNOWN\x10\x00\x12\x1e\n\x1a\x42OUNDING_BOX_FORMAT_CXCYWH\x10\x01\x12\x1c\n\x18\x42OUNDING_BOX_FORMAT_YXYX\x10\x02\x12\x1c\n\x18\x42OUNDING_BOX_FORMAT_XYXY\x10\x03\"\xf4\x07\n\x16ImagePreprocessingStep\x12[\n\x04kind\x18\x01 \x01(\x0e\x32G.gml.internal.api.core.v1.ImagePreprocessingStep.ImagePreprocessingKindR\x04kind\x12s\n\x11\x63onversion_params\x18\x02 \x01(\x0b\x32\x46.gml.internal.api.core.v1.ImagePreprocessingStep.ImageConversionParamsR\x10\x63onversionParams\x12g\n\rresize_params\x18\x03 \x01(\x0b\x32\x42.gml.internal.api.core.v1.ImagePreprocessingStep.ImageResizeParamsR\x0cresizeParams\x12v\n\x12standardize_params\x18\x04 \x01(\x0b\x32G.gml.internal.api.core.v1.ImagePreprocessingStep.ImageStandardizeParamsR\x11standardizeParams\x1a-\n\x15ImageConversionParams\x12\x14\n\x05scale\x18\x01 \x01(\x08R\x05scale\x1a\xed\x01\n\x11ImageResizeParams\x12\x66\n\x04kind\x18\x01 \x01(\x0e\x32R.gml.internal.api.core.v1.ImagePreprocessingStep.ImageResizeParams.ImageResizeKindR\x04kind\"p\n\x0fImageResizeKind\x12\x1d\n\x19IMAGE_RESIZE_KIND_UNKNOWN\x10\x00\x12\x1d\n\x19IMAGE_RESIZE_KIND_STRETCH\x10\x01\x12\x1f\n\x1bIMAGE_RESIZE_KIND_LETTERBOX\x10\x02\x1aH\n\x16ImageStandardizeParams\x12\x14\n\x05means\x18\x01 \x03(\x02R\x05means\x12\x18\n\x07stddevs\x18\x02 \x03(\x02R\x07stddevs\"\xbd\x01\n\x16ImagePreprocessingKind\x12$\n IMAGE_PREPROCESSING_KIND_UNKNOWN\x10\x00\x12.\n*IMAGE_PREPROCESSING_KIND_CONVERT_TO_TENSOR\x10\x01\x12#\n\x1fIMAGE_PREPROCESSING_KIND_RESIZE\x10\x02\x12(\n$IMAGE_PREPROCESSING_KIND_STANDARDIZE\x10\x03\"\xfd\x10\n\x12\x44imensionSemantics\x12W\n\x04kind\x18\x01 \x01(\x0e\x32\x43.gml.internal.api.core.v1.DimensionSemantics.DimensionSemanticsKindR\x04kind\x12q\n\x14image_channel_params\x18\x02 \x01(\x0b\x32?.gml.internal.api.core.v1.DimensionSemantics.ImageChannelParamsR\x12imageChannelParams\x12\x86\x01\n\x1b\x64\x65tection_candidates_params\x18\x03 \x01(\x0b\x32\x46.gml.internal.api.core.v1.DimensionSemantics.DetectionCandidatesParamsR\x19\x64\x65tectionCandidatesParams\x12z\n\x17\x64\x65tection_output_params\x18\x04 \x01(\x0b\x32\x42.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParamsR\x15\x64\x65tectionOutputParams\x12}\n\x18segmentation_mask_params\x18\x05 \x01(\x0b\x32\x43.gml.internal.api.core.v1.DimensionSemantics.SegmentationMaskParamsR\x16segmentationMaskParams\x1a\xf4\x01\n\x12ImageChannelParams\x12j\n\x06\x66ormat\x18\x01 \x01(\x0e\x32R.gml.internal.api.core.v1.DimensionSemantics.ImageChannelParams.ImageChannelFormatR\x06\x66ormat\"r\n\x12ImageChannelFormat\x12 \n\x1cIMAGE_CHANNEL_FORMAT_UNKNOWN\x10\x00\x12\x1c\n\x18IMAGE_CHANNEL_FORMAT_RGB\x10\x01\x12\x1c\n\x18IMAGE_CHANNEL_FORMAT_BGR\x10\x02\x1a=\n\x19\x44\x65tectionCandidatesParams\x12 \n\x0cis_nms_boxes\x18\x01 \x01(\x08R\nisNmsBoxes\x1a\xdf\x03\n\x15\x44\x65tectionOutputParams\x12\x7f\n\x14\x62ox_coordinate_range\x18\x01 \x01(\x0b\x32M.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParams.IndexRangeR\x12\x62oxCoordinateRange\x12H\n\nbox_format\x18\x02 \x01(\x0b\x32).gml.internal.api.core.v1.BoundingBoxInfoR\tboxFormat\x12\x30\n\x14\x62ox_confidence_index\x18\x03 \x01(\x05R\x12\x62oxConfidenceIndex\x12\x1f\n\x0b\x63lass_index\x18\x04 \x01(\x05R\nclassIndex\x12p\n\x0cscores_range\x18\x05 \x01(\x0b\x32M.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParams.IndexRangeR\x0bscoresRange\x1a\x36\n\nIndexRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x12\n\x04size\x18\x02 \x01(\x05R\x04size\x1a\xae\x02\n\x16SegmentationMaskParams\x12l\n\x04kind\x18\x01 \x01(\x0e\x32X.gml.internal.api.core.v1.DimensionSemantics.SegmentationMaskParams.SegmentationMaskKindR\x04kind\"\xa5\x01\n\x14SegmentationMaskKind\x12\"\n\x1eSEGMENTATION_MASK_KIND_UNKNOWN\x10\x00\x12&\n\"SEGMENTATION_MASK_KIND_CLASS_LABEL\x10\x01\x12\x1f\n\x1bSEGMENTATION_MASK_KIND_BOOL\x10\x02\x12 \n\x1cSEGMENTATION_MASK_KIND_SCORE\x10\x03\"\xcd\x03\n\x16\x44imensionSemanticsKind\x12$\n DIMENSION_SEMANTICS_KIND_UNKNOWN\x10\x00\x12\"\n\x1e\x44IMENSION_SEMANTICS_KIND_BATCH\x10\x01\x12#\n\x1f\x44IMENSION_SEMANTICS_KIND_IGNORE\x10\x02\x12*\n&DIMENSION_SEMANTICS_KIND_IMAGE_CHANNEL\x10\x03\x12)\n%DIMENSION_SEMANTICS_KIND_IMAGE_HEIGHT\x10\x04\x12(\n$DIMENSION_SEMANTICS_KIND_IMAGE_WIDTH\x10\x05\x12\x31\n-DIMENSION_SEMANTICS_KIND_DETECTION_CANDIDATES\x10\x06\x12-\n)DIMENSION_SEMANTICS_KIND_DETECTION_OUTPUT\x10\x07\x12)\n%DIMENSION_SEMANTICS_KIND_CLASS_SCORES\x10\x08\x12\x36\n2DIMENSION_SEMANTICS_KIND_SEGMENTATION_MASK_CHANNEL\x10\t\"_\n\x0fTensorSemantics\x12L\n\ndimensions\x18\x01 \x03(\x0b\x32,.gml.internal.api.core.v1.DimensionSemanticsR\ndimensions\"\xa7\t\n\tModelInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x41\n\x04kind\x18\x02 \x01(\x0e\x32-.gml.internal.api.core.v1.ModelInfo.ModelKindR\x04kind\x12N\n\x06\x66ormat\x18\x03 \x01(\x0e\x32\x36.gml.internal.api.core.v1.ModelInfo.ModelStorageFormatR\x06\x66ormat\x12T\n\x0b\x66ile_assets\x18\x04 \x03(\x0b\x32\x33.gml.internal.api.core.v1.ModelInfo.FileAssetsEntryR\nfileAssets\x12_\n\x16input_tensor_semantics\x18\x05 \x03(\x0b\x32).gml.internal.api.core.v1.TensorSemanticsR\x14inputTensorSemantics\x12\x61\n\x17output_tensor_semantics\x18\x06 \x03(\x0b\x32).gml.internal.api.core.v1.TensorSemanticsR\x15outputTensorSemantics\x12!\n\x0c\x63lass_labels\x18\x64 \x03(\tR\x0b\x63lassLabels\x12\x46\n\tbbox_info\x18\x65 \x01(\x0b\x32).gml.internal.api.core.v1.BoundingBoxInfoR\x08\x62\x62oxInfo\x12l\n\x19image_preprocessing_steps\x18\x66 \x03(\x0b\x32\x30.gml.internal.api.core.v1.ImagePreprocessingStepR\x17imagePreprocessingSteps\x1aN\n\x0f\x46ileAssetsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDR\x05value:\x02\x38\x01\"\x9a\x01\n\tModelKind\x12\x16\n\x12MODEL_KIND_UNKNOWN\x10\x00\x12\x14\n\x10MODEL_KIND_TORCH\x10\x01\x12\x1a\n\x16MODEL_KIND_TORCHSCRIPT\x10\x02\x12\x13\n\x0fMODEL_KIND_ONNX\x10\x03\x12\x15\n\x11MODEL_KIND_TFLITE\x10\x04\x12\x17\n\x13MODEL_KIND_OPENVINO\x10\x05\"\x92\x02\n\x12ModelStorageFormat\x12 \n\x1cMODEL_STORAGE_FORMAT_UNKNOWN\x10\x00\x12&\n\"MODEL_STORAGE_FORMAT_MLIR_BYTECODE\x10\x01\x12\"\n\x1eMODEL_STORAGE_FORMAT_MLIR_TEXT\x10\x02\x12!\n\x1dMODEL_STORAGE_FORMAT_PROTOBUF\x10\x03\x12#\n\x1fMODEL_STORAGE_FORMAT_PROTO_TEXT\x10\x04\x12#\n\x1fMODEL_STORAGE_FORMAT_FLATBUFFER\x10\x05\x12!\n\x1dMODEL_STORAGE_FORMAT_OPENVINO\x10\x06\"\xa8\x02\n\x04Node\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x04kind\x18\x02 \x01(\x0e\x32\x31.gml.internal.api.core.v1.LogicalPipelineNodeKindR\x04kind\x12H\n\nattributes\x18\x03 \x03(\x0b\x32(.gml.internal.api.core.v1.NodeAttributesR\nattributes\x12;\n\x06inputs\x18\x04 \x03(\x0b\x32#.gml.internal.api.core.v1.NodeInputR\x06inputs\x12>\n\x07outputs\x18\x05 \x03(\x0b\x32$.gml.internal.api.core.v1.NodeOutputR\x07outputs\"\x1e\n\x08ParamRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xab\x04\n\x05Value\x12!\n\x0bstring_data\x18\x01 \x01(\tH\x00R\nstringData\x12\x1f\n\nint64_data\x18\x02 \x01(\x03H\x00R\tint64Data\x12!\n\x0b\x64ouble_data\x18\x03 \x01(\x01H\x00R\ndoubleData\x12\x1d\n\tbool_data\x18\x04 \x01(\x08H\x00R\x08\x62oolData\x12I\n\x0blambda_data\x18\x05 \x01(\x0b\x32&.gml.internal.api.core.v1.Value.LambdaH\x00R\nlambdaData\x12I\n\nmodel_data\x18\x06 \x01(\x0b\x32(.gml.internal.api.core.v1.Value.ModelRefH\x00R\tmodelData\x12\x43\n\nparam_data\x18\x07 \x01(\x0b\x32\".gml.internal.api.core.v1.ParamRefH\x00R\tparamData\x1aG\n\x08ModelRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\'\n\x02id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x1ap\n\x06Lambda\x12\x16\n\x06inputs\x18\x01 \x03(\tR\x06inputs\x12\x18\n\x07outputs\x18\x02 \x03(\tR\x07outputs\x12\x34\n\x05nodes\x18\x03 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.NodeR\x05nodesB\x06\n\x04\x64\x61ta\"[\n\x0eNodeAttributes\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.gml.internal.api.core.v1.ValueR\x05value\"\x9c\x03\n\tNodeInput\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x0bparam_value\x18\x02 \x01(\x0b\x32\".gml.internal.api.core.v1.ParamRefH\x00R\nparamValue\x12_\n\x11node_output_value\x18\x03 \x01(\x0b\x32\x31.gml.internal.api.core.v1.NodeInput.NodeOutputRefH\x00R\x0fnodeOutputValue\x12\x62\n\x12lambda_input_value\x18\x04 \x01(\x0b\x32\x32.gml.internal.api.core.v1.NodeInput.LambdaInputRefH\x00R\x10lambdaInputValue\x1a@\n\rNodeOutputRef\x12\x1b\n\tnode_name\x18\x01 \x01(\tR\x08nodeName\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x1a$\n\x0eLambdaInputRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04nameB\x07\n\x05value\" \n\nNodeOutput\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"a\n\x05Param\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x44\n\rdefault_value\x18\x02 \x01(\x0b\x32\x1f.gml.internal.api.core.v1.ValueR\x0c\x64\x65\x66\x61ultValue\"\xbc\x01\n\x0fLogicalPipeline\x12\x37\n\x06params\x18\x01 \x03(\x0b\x32\x1f.gml.internal.api.core.v1.ParamR\x06params\x12\x34\n\x05nodes\x18\x02 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.NodeR\x05nodes\x12:\n\tmodel_ids\x18\x03 \x03(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08ModelIDsR\x08modelIds\"\xab\x04\n\x12PipelineDeployment\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12V\n\x13logical_pipeline_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x15\xe2\xde\x1f\x11LogicalPipelineIDR\x11logicalPipelineId\x12\x37\n\x08\x66leet_id\x18\x03 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0b\xe2\xde\x1f\x07\x46leetIDR\x07\x66leetId\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x18\n\x07version\x18\x06 \x01(\x03R\x07version\x12\x44\n\x04spec\x18\x07 \x01(\x0b\x32\x30.gml.internal.api.core.v1.PipelineDeploymentSpecR\x04spec\x12J\n\x06status\x18\x08 \x01(\x0b\x32\x32.gml.internal.api.core.v1.PipelineDeploymentStatusR\x06status\x12\x39\n\ndeleted_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdeletedAt\"W\n\x16PipelineDeploymentSpec\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\"q\n\x18PipelineDeploymentStatus\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\xdc\x03\n\x10PhysicalPipeline\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12_\n\x16pipeline_deployment_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x18\xe2\xde\x1f\x14PipelineDeploymentIDR\x14pipelineDeploymentId\x12:\n\tdevice_id\x18\x03 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\x04spec\x18\x06 \x01(\x0b\x32..gml.internal.api.core.v1.PhysicalPipelineSpecR\x04spec\x12H\n\x06status\x18\x07 \x01(\x0b\x32\x30.gml.internal.api.core.v1.PhysicalPipelineStatusR\x06status\"\xc8\x01\n\x14PhysicalPipelineSpec\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x18\n\x07version\x18\x02 \x01(\x03R\x07version\x12=\n\x05graph\x18\x03 \x01(\x0b\x32\'.gml.internal.api.core.v1.ExecutionSpecR\x05graph\x12\x18\n\x07runtime\x18\x04 \x01(\tR\x07runtime\"\xa3\x01\n\x16PhysicalPipelineStatus\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x18\n\x07version\x18\x02 \x01(\x03R\x07version\x12\x18\n\x07runtime\x18\x03 \x01(\tR\x07runtime\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\"H\n\x08Pipeline\x12<\n\x05nodes\x18\x02 \x03(\x0b\x32&.gml.internal.api.core.v1.PipelineNodeR\x05nodes\"\xa3\x02\n\x0cPipelineNode\x12\x0e\n\x02id\x18\x01 \x01(\x04R\x02id\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x36\n\x06inputs\x18\x03 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.PortR\x06inputs\x12\x38\n\x07outputs\x18\x04 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.PortR\x07outputs\x12\x44\n\x04\x61ttr\x18\x05 \x03(\x0b\x32\x30.gml.internal.api.core.v1.PipelineNode.AttrEntryR\x04\x61ttr\x1a\x37\n\tAttrEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\",\n\x04Port\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03net\x18\x02 \x01(\tR\x03net\"\x84\x01\n\x0c\x46ileResource\x12\x34\n\x07\x66ile_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\n\xe2\xde\x1f\x06\x46ileIDR\x06\x66ileId\x12\x1d\n\nsize_bytes\x18\x02 \x01(\x04R\tsizeBytes\x12\x1f\n\x0bsha256_hash\x18\x03 \x01(\tR\nsha256Hash\"\x8b\x01\n\rExecutionSpec\x12\x36\n\x05graph\x18\x01 \x01(\x0b\x32 .mediapipe.CalculatorGraphConfigR\x05graph\x12\x42\n\nmodel_spec\x18\x02 \x03(\x0b\x32#.gml.internal.api.core.v1.ModelSpecR\tmodelSpec\"\\\n\nNamedAsset\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\x04\x66ile\x18\x02 \x01(\x0b\x32&.gml.internal.api.core.v1.FileResourceR\x04\x66ile\"\xd0\x03\n\tModelSpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x33\n\ronnx_blob_key\x18\x02 \x01(\tB\x0f\xe2\xde\x1f\x0bONNXBlobKeyR\x0bonnxBlobKey\x12Q\n\tonnx_file\x18\x03 \x01(\x0b\x32&.gml.internal.api.core.v1.FileResourceB\x0c\xe2\xde\x1f\x08ONNXFileR\x08onnxFile\x12\x45\n\x0bnamed_asset\x18\x04 \x03(\x0b\x32$.gml.internal.api.core.v1.NamedAssetR\nnamedAsset\x12\x18\n\x07runtime\x18\x32 \x01(\tR\x07runtime\x12\x62\n\rtensorrt_spec\x18\x64 \x01(\x0b\x32+.gml.internal.api.core.v1.TensorRTModelSpecB\x10\xe2\xde\x1f\x0cTensorRTSpecR\x0ctensorrtSpec\x12\x62\n\ropenvino_spec\x18\x65 \x01(\x0b\x32+.gml.internal.api.core.v1.OpenVINOModelSpecB\x10\xe2\xde\x1f\x0cOpenVINOSpecR\x0copenvinoSpec\"\xfe\x01\n\x11TensorRTModelSpec\x12h\n\x14optimization_profile\x18\x01 \x03(\x0b\x32\x35.gml.internal.api.core.v1.TensorRTOptimizationProfileR\x13optimizationProfile\x12&\n\x0f\x65ngine_blob_key\x18\x02 \x01(\tR\rengineBlobKey\x12W\n\x0fmem_pool_limits\x18\x03 \x01(\x0b\x32/.gml.internal.api.core.v1.TensorRTMemPoolLimitsR\rmemPoolLimits\"\x7f\n\x1bTensorRTOptimizationProfile\x12`\n\x12tensor_shape_range\x18\x01 \x03(\x0b\x32\x32.gml.internal.api.core.v1.TensorRTTensorShapeRangeR\x10tensorShapeRange\"M\n\x18TensorRTTensorShapeRange\x12\x1f\n\x0btensor_name\x18\x01 \x01(\tR\ntensorName\x12\x10\n\x03\x64im\x18\x02 \x03(\x05R\x03\x64im\"5\n\x15TensorRTMemPoolLimits\x12\x1c\n\tworkspace\x18\x01 \x01(\x03R\tworkspace\"\x8e\x01\n\x11OpenVINOModelSpec\x12X\n\x0binput_shape\x18\x01 \x03(\x0b\x32\x37.gml.internal.api.core.v1.OpenVINOModelSpec.TensorShapeR\ninputShape\x1a\x1f\n\x0bTensorShape\x12\x10\n\x03\x64im\x18\x01 \x03(\x05R\x03\x64im*\xee\x03\n\x17LogicalPipelineNodeKind\x12&\n\"LOGICAL_PIPELINE_NODE_KIND_UNKNOWN\x10\x00\x12,\n(LOGICAL_PIPELINE_NODE_KIND_CAMERA_SOURCE\x10\n\x12&\n!LOGICAL_PIPELINE_NODE_KIND_DETECT\x10\xe8\x07\x12(\n#LOGICAL_PIPELINE_NODE_KIND_CLASSIFY\x10\xe9\x07\x12\'\n\"LOGICAL_PIPELINE_NODE_KIND_SEGMENT\x10\xea\x07\x12,\n\'LOGICAL_PIPELINE_NODE_KIND_FOR_EACH_ROI\x10\xdf\x0b\x12\x31\n,LOGICAL_PIPELINE_NODE_KIND_VIDEO_STREAM_SINK\x10\xd0\x0f\x12\x37\n2LOGICAL_PIPELINE_NODE_KIND_DETECTIONS_METRICS_SINK\x10\xd1\x0f\x12\x34\n/LOGICAL_PIPELINE_NODE_KIND_LATENCY_METRICS_SINK\x10\xd2\x0f\x12\x32\n-LOGICAL_PIPELINE_NODE_KIND_FRAME_METRICS_SINK\x10\xd3\x0f*\xd7\x01\n\rPipelineState\x12\x1a\n\x16PIPELINE_STATE_UNKNOWN\x10\x00\x12\x1a\n\x16PIPELINE_STATE_PENDING\x10\x01\x12\x18\n\x14PIPELINE_STATE_READY\x10\x02\x12\x1a\n\x16PIPELINE_STATE_RUNNING\x10\x03\x12\x1e\n\x1aPIPELINE_STATE_TERMINATING\x10\x04\x12\x1d\n\x19PIPELINE_STATE_TERMINATED\x10\x05\x12\x19\n\x15PIPELINE_STATE_FAILED\x10\x06\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
25
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"src/api/corepb/v1/model_exec.proto\x12\x18gml.internal.api.core.v1\x1a\x14gogoproto/gogo.proto\x1a$mediapipe/framework/calculator.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xa7\x02\n\x0f\x42oundingBoxInfo\x12Z\n\nbox_format\x18\x01 \x01(\x0e\x32;.gml.internal.api.core.v1.BoundingBoxInfo.BoundingBoxFormatR\tboxFormat\x12%\n\x0e\x62ox_normalized\x18\x02 \x01(\x08R\rboxNormalized\"\x90\x01\n\x11\x42oundingBoxFormat\x12\x1f\n\x1b\x42OUNDING_BOX_FORMAT_UNKNOWN\x10\x00\x12\x1e\n\x1a\x42OUNDING_BOX_FORMAT_CXCYWH\x10\x01\x12\x1c\n\x18\x42OUNDING_BOX_FORMAT_YXYX\x10\x02\x12\x1c\n\x18\x42OUNDING_BOX_FORMAT_XYXY\x10\x03\"\xf4\x07\n\x16ImagePreprocessingStep\x12[\n\x04kind\x18\x01 \x01(\x0e\x32G.gml.internal.api.core.v1.ImagePreprocessingStep.ImagePreprocessingKindR\x04kind\x12s\n\x11\x63onversion_params\x18\x02 \x01(\x0b\x32\x46.gml.internal.api.core.v1.ImagePreprocessingStep.ImageConversionParamsR\x10\x63onversionParams\x12g\n\rresize_params\x18\x03 \x01(\x0b\x32\x42.gml.internal.api.core.v1.ImagePreprocessingStep.ImageResizeParamsR\x0cresizeParams\x12v\n\x12standardize_params\x18\x04 \x01(\x0b\x32G.gml.internal.api.core.v1.ImagePreprocessingStep.ImageStandardizeParamsR\x11standardizeParams\x1a-\n\x15ImageConversionParams\x12\x14\n\x05scale\x18\x01 \x01(\x08R\x05scale\x1a\xed\x01\n\x11ImageResizeParams\x12\x66\n\x04kind\x18\x01 \x01(\x0e\x32R.gml.internal.api.core.v1.ImagePreprocessingStep.ImageResizeParams.ImageResizeKindR\x04kind\"p\n\x0fImageResizeKind\x12\x1d\n\x19IMAGE_RESIZE_KIND_UNKNOWN\x10\x00\x12\x1d\n\x19IMAGE_RESIZE_KIND_STRETCH\x10\x01\x12\x1f\n\x1bIMAGE_RESIZE_KIND_LETTERBOX\x10\x02\x1aH\n\x16ImageStandardizeParams\x12\x14\n\x05means\x18\x01 \x03(\x02R\x05means\x12\x18\n\x07stddevs\x18\x02 \x03(\x02R\x07stddevs\"\xbd\x01\n\x16ImagePreprocessingKind\x12$\n IMAGE_PREPROCESSING_KIND_UNKNOWN\x10\x00\x12.\n*IMAGE_PREPROCESSING_KIND_CONVERT_TO_TENSOR\x10\x01\x12#\n\x1fIMAGE_PREPROCESSING_KIND_RESIZE\x10\x02\x12(\n$IMAGE_PREPROCESSING_KIND_STANDARDIZE\x10\x03\"\xa1\x13\n\x12\x44imensionSemantics\x12W\n\x04kind\x18\x01 \x01(\x0e\x32\x43.gml.internal.api.core.v1.DimensionSemantics.DimensionSemanticsKindR\x04kind\x12q\n\x14image_channel_params\x18\x02 \x01(\x0b\x32?.gml.internal.api.core.v1.DimensionSemantics.ImageChannelParamsR\x12imageChannelParams\x12\x86\x01\n\x1b\x64\x65tection_candidates_params\x18\x03 \x01(\x0b\x32\x46.gml.internal.api.core.v1.DimensionSemantics.DetectionCandidatesParamsR\x19\x64\x65tectionCandidatesParams\x12z\n\x17\x64\x65tection_output_params\x18\x04 \x01(\x0b\x32\x42.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParamsR\x15\x64\x65tectionOutputParams\x12}\n\x18segmentation_mask_params\x18\x05 \x01(\x0b\x32\x43.gml.internal.api.core.v1.DimensionSemantics.SegmentationMaskParamsR\x16segmentationMaskParams\x12j\n\x11regression_params\x18\x06 \x01(\x0b\x32=.gml.internal.api.core.v1.DimensionSemantics.RegressionParamsR\x10regressionParams\x1a\xf4\x01\n\x12ImageChannelParams\x12j\n\x06\x66ormat\x18\x01 \x01(\x0e\x32R.gml.internal.api.core.v1.DimensionSemantics.ImageChannelParams.ImageChannelFormatR\x06\x66ormat\"r\n\x12ImageChannelFormat\x12 \n\x1cIMAGE_CHANNEL_FORMAT_UNKNOWN\x10\x00\x12\x1c\n\x18IMAGE_CHANNEL_FORMAT_RGB\x10\x01\x12\x1c\n\x18IMAGE_CHANNEL_FORMAT_BGR\x10\x02\x1a=\n\x19\x44\x65tectionCandidatesParams\x12 \n\x0cis_nms_boxes\x18\x01 \x01(\x08R\nisNmsBoxes\x1a\xdf\x03\n\x15\x44\x65tectionOutputParams\x12\x7f\n\x14\x62ox_coordinate_range\x18\x01 \x01(\x0b\x32M.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParams.IndexRangeR\x12\x62oxCoordinateRange\x12H\n\nbox_format\x18\x02 \x01(\x0b\x32).gml.internal.api.core.v1.BoundingBoxInfoR\tboxFormat\x12\x30\n\x14\x62ox_confidence_index\x18\x03 \x01(\x05R\x12\x62oxConfidenceIndex\x12\x1f\n\x0b\x63lass_index\x18\x04 \x01(\x05R\nclassIndex\x12p\n\x0cscores_range\x18\x05 \x01(\x0b\x32M.gml.internal.api.core.v1.DimensionSemantics.DetectionOutputParams.IndexRangeR\x0bscoresRange\x1a\x36\n\nIndexRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x12\n\x04size\x18\x02 \x01(\x05R\x04size\x1a\xae\x02\n\x16SegmentationMaskParams\x12l\n\x04kind\x18\x01 \x01(\x0e\x32X.gml.internal.api.core.v1.DimensionSemantics.SegmentationMaskParams.SegmentationMaskKindR\x04kind\"\xa5\x01\n\x14SegmentationMaskKind\x12\"\n\x1eSEGMENTATION_MASK_KIND_UNKNOWN\x10\x00\x12&\n\"SEGMENTATION_MASK_KIND_CLASS_LABEL\x10\x01\x12\x1f\n\x1bSEGMENTATION_MASK_KIND_BOOL\x10\x02\x12 \n\x1cSEGMENTATION_MASK_KIND_SCORE\x10\x03\x1a\\\n\x10RegressionParams\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x32\n\x05scale\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValueR\x05scale\"\xa7\x04\n\x16\x44imensionSemanticsKind\x12$\n DIMENSION_SEMANTICS_KIND_UNKNOWN\x10\x00\x12\"\n\x1e\x44IMENSION_SEMANTICS_KIND_BATCH\x10\x01\x12#\n\x1f\x44IMENSION_SEMANTICS_KIND_IGNORE\x10\x02\x12*\n&DIMENSION_SEMANTICS_KIND_IMAGE_CHANNEL\x10\x03\x12)\n%DIMENSION_SEMANTICS_KIND_IMAGE_HEIGHT\x10\x04\x12(\n$DIMENSION_SEMANTICS_KIND_IMAGE_WIDTH\x10\x05\x12\x31\n-DIMENSION_SEMANTICS_KIND_DETECTION_CANDIDATES\x10\x06\x12-\n)DIMENSION_SEMANTICS_KIND_DETECTION_OUTPUT\x10\x07\x12)\n%DIMENSION_SEMANTICS_KIND_CLASS_SCORES\x10\x08\x12\x36\n2DIMENSION_SEMANTICS_KIND_SEGMENTATION_MASK_CHANNEL\x10\t\x12)\n%DIMENSION_SEMANTICS_KIND_CLASS_LABELS\x10\n\x12-\n)DIMENSION_SEMANTICS_KIND_REGRESSION_VALUE\x10\x0b\"_\n\x0fTensorSemantics\x12L\n\ndimensions\x18\x01 \x03(\x0b\x32,.gml.internal.api.core.v1.DimensionSemanticsR\ndimensions\"\xa7\t\n\tModelInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x41\n\x04kind\x18\x02 \x01(\x0e\x32-.gml.internal.api.core.v1.ModelInfo.ModelKindR\x04kind\x12N\n\x06\x66ormat\x18\x03 \x01(\x0e\x32\x36.gml.internal.api.core.v1.ModelInfo.ModelStorageFormatR\x06\x66ormat\x12T\n\x0b\x66ile_assets\x18\x04 \x03(\x0b\x32\x33.gml.internal.api.core.v1.ModelInfo.FileAssetsEntryR\nfileAssets\x12_\n\x16input_tensor_semantics\x18\x05 \x03(\x0b\x32).gml.internal.api.core.v1.TensorSemanticsR\x14inputTensorSemantics\x12\x61\n\x17output_tensor_semantics\x18\x06 \x03(\x0b\x32).gml.internal.api.core.v1.TensorSemanticsR\x15outputTensorSemantics\x12!\n\x0c\x63lass_labels\x18\x64 \x03(\tR\x0b\x63lassLabels\x12\x46\n\tbbox_info\x18\x65 \x01(\x0b\x32).gml.internal.api.core.v1.BoundingBoxInfoR\x08\x62\x62oxInfo\x12l\n\x19image_preprocessing_steps\x18\x66 \x03(\x0b\x32\x30.gml.internal.api.core.v1.ImagePreprocessingStepR\x17imagePreprocessingSteps\x1aN\n\x0f\x46ileAssetsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDR\x05value:\x02\x38\x01\"\x9a\x01\n\tModelKind\x12\x16\n\x12MODEL_KIND_UNKNOWN\x10\x00\x12\x14\n\x10MODEL_KIND_TORCH\x10\x01\x12\x1a\n\x16MODEL_KIND_TORCHSCRIPT\x10\x02\x12\x13\n\x0fMODEL_KIND_ONNX\x10\x03\x12\x15\n\x11MODEL_KIND_TFLITE\x10\x04\x12\x17\n\x13MODEL_KIND_OPENVINO\x10\x05\"\x92\x02\n\x12ModelStorageFormat\x12 \n\x1cMODEL_STORAGE_FORMAT_UNKNOWN\x10\x00\x12&\n\"MODEL_STORAGE_FORMAT_MLIR_BYTECODE\x10\x01\x12\"\n\x1eMODEL_STORAGE_FORMAT_MLIR_TEXT\x10\x02\x12!\n\x1dMODEL_STORAGE_FORMAT_PROTOBUF\x10\x03\x12#\n\x1fMODEL_STORAGE_FORMAT_PROTO_TEXT\x10\x04\x12#\n\x1fMODEL_STORAGE_FORMAT_FLATBUFFER\x10\x05\x12!\n\x1dMODEL_STORAGE_FORMAT_OPENVINO\x10\x06\"\xa8\x02\n\x04Node\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x04kind\x18\x02 \x01(\x0e\x32\x31.gml.internal.api.core.v1.LogicalPipelineNodeKindR\x04kind\x12H\n\nattributes\x18\x03 \x03(\x0b\x32(.gml.internal.api.core.v1.NodeAttributesR\nattributes\x12;\n\x06inputs\x18\x04 \x03(\x0b\x32#.gml.internal.api.core.v1.NodeInputR\x06inputs\x12>\n\x07outputs\x18\x05 \x03(\x0b\x32$.gml.internal.api.core.v1.NodeOutputR\x07outputs\"\x1e\n\x08ParamRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xab\x04\n\x05Value\x12!\n\x0bstring_data\x18\x01 \x01(\tH\x00R\nstringData\x12\x1f\n\nint64_data\x18\x02 \x01(\x03H\x00R\tint64Data\x12!\n\x0b\x64ouble_data\x18\x03 \x01(\x01H\x00R\ndoubleData\x12\x1d\n\tbool_data\x18\x04 \x01(\x08H\x00R\x08\x62oolData\x12I\n\x0blambda_data\x18\x05 \x01(\x0b\x32&.gml.internal.api.core.v1.Value.LambdaH\x00R\nlambdaData\x12I\n\nmodel_data\x18\x06 \x01(\x0b\x32(.gml.internal.api.core.v1.Value.ModelRefH\x00R\tmodelData\x12\x43\n\nparam_data\x18\x07 \x01(\x0b\x32\".gml.internal.api.core.v1.ParamRefH\x00R\tparamData\x1aG\n\x08ModelRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\'\n\x02id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x1ap\n\x06Lambda\x12\x16\n\x06inputs\x18\x01 \x03(\tR\x06inputs\x12\x18\n\x07outputs\x18\x02 \x03(\tR\x07outputs\x12\x34\n\x05nodes\x18\x03 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.NodeR\x05nodesB\x06\n\x04\x64\x61ta\"[\n\x0eNodeAttributes\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.gml.internal.api.core.v1.ValueR\x05value\"\x9c\x03\n\tNodeInput\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x0bparam_value\x18\x02 \x01(\x0b\x32\".gml.internal.api.core.v1.ParamRefH\x00R\nparamValue\x12_\n\x11node_output_value\x18\x03 \x01(\x0b\x32\x31.gml.internal.api.core.v1.NodeInput.NodeOutputRefH\x00R\x0fnodeOutputValue\x12\x62\n\x12lambda_input_value\x18\x04 \x01(\x0b\x32\x32.gml.internal.api.core.v1.NodeInput.LambdaInputRefH\x00R\x10lambdaInputValue\x1a@\n\rNodeOutputRef\x12\x1b\n\tnode_name\x18\x01 \x01(\tR\x08nodeName\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x1a$\n\x0eLambdaInputRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04nameB\x07\n\x05value\" \n\nNodeOutput\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"a\n\x05Param\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x44\n\rdefault_value\x18\x02 \x01(\x0b\x32\x1f.gml.internal.api.core.v1.ValueR\x0c\x64\x65\x66\x61ultValue\"\xbc\x01\n\x0fLogicalPipeline\x12\x37\n\x06params\x18\x01 \x03(\x0b\x32\x1f.gml.internal.api.core.v1.ParamR\x06params\x12\x34\n\x05nodes\x18\x02 \x03(\x0b\x32\x1e.gml.internal.api.core.v1.NodeR\x05nodes\x12:\n\tmodel_ids\x18\x03 \x03(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08ModelIDsR\x08modelIds\"\xab\x04\n\x12PipelineDeployment\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12V\n\x13logical_pipeline_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x15\xe2\xde\x1f\x11LogicalPipelineIDR\x11logicalPipelineId\x12\x37\n\x08\x66leet_id\x18\x03 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0b\xe2\xde\x1f\x07\x46leetIDR\x07\x66leetId\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x18\n\x07version\x18\x06 \x01(\x03R\x07version\x12\x44\n\x04spec\x18\x07 \x01(\x0b\x32\x30.gml.internal.api.core.v1.PipelineDeploymentSpecR\x04spec\x12J\n\x06status\x18\x08 \x01(\x0b\x32\x32.gml.internal.api.core.v1.PipelineDeploymentStatusR\x06status\x12\x39\n\ndeleted_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdeletedAt\"W\n\x16PipelineDeploymentSpec\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\"q\n\x18PipelineDeploymentStatus\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\xdc\x03\n\x10PhysicalPipeline\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12_\n\x16pipeline_deployment_id\x18\x02 \x01(\x0b\x32\x0f.gml.types.UUIDB\x18\xe2\xde\x1f\x14PipelineDeploymentIDR\x14pipelineDeploymentId\x12:\n\tdevice_id\x18\x03 \x01(\x0b\x32\x0f.gml.types.UUIDB\x0c\xe2\xde\x1f\x08\x44\x65viceIDR\x08\x64\x65viceId\x12\x39\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\x04spec\x18\x06 \x01(\x0b\x32..gml.internal.api.core.v1.PhysicalPipelineSpecR\x04spec\x12H\n\x06status\x18\x07 \x01(\x0b\x32\x30.gml.internal.api.core.v1.PhysicalPipelineStatusR\x06status\"\xc8\x01\n\x14PhysicalPipelineSpec\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x18\n\x07version\x18\x02 \x01(\x03R\x07version\x12=\n\x05graph\x18\x03 \x01(\x0b\x32\'.gml.internal.api.core.v1.ExecutionSpecR\x05graph\x12\x18\n\x07runtime\x18\x04 \x01(\tR\x07runtime\"\xa3\x01\n\x16PhysicalPipelineStatus\x12=\n\x05state\x18\x01 \x01(\x0e\x32\'.gml.internal.api.core.v1.PipelineStateR\x05state\x12\x18\n\x07version\x18\x02 \x01(\x03R\x07version\x12\x18\n\x07runtime\x18\x03 \x01(\tR\x07runtime\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\"\x84\x01\n\x0c\x46ileResource\x12\x34\n\x07\x66ile_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\n\xe2\xde\x1f\x06\x46ileIDR\x06\x66ileId\x12\x1d\n\nsize_bytes\x18\x02 \x01(\x04R\tsizeBytes\x12\x1f\n\x0bsha256_hash\x18\x03 \x01(\tR\nsha256Hash\"\x8b\x01\n\rExecutionSpec\x12\x36\n\x05graph\x18\x01 \x01(\x0b\x32 .mediapipe.CalculatorGraphConfigR\x05graph\x12\x42\n\nmodel_spec\x18\x02 \x03(\x0b\x32#.gml.internal.api.core.v1.ModelSpecR\tmodelSpec\"\\\n\nNamedAsset\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12:\n\x04\x66ile\x18\x02 \x01(\x0b\x32&.gml.internal.api.core.v1.FileResourceR\x04\x66ile\"\xd0\x03\n\tModelSpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x33\n\ronnx_blob_key\x18\x02 \x01(\tB\x0f\xe2\xde\x1f\x0bONNXBlobKeyR\x0bonnxBlobKey\x12Q\n\tonnx_file\x18\x03 \x01(\x0b\x32&.gml.internal.api.core.v1.FileResourceB\x0c\xe2\xde\x1f\x08ONNXFileR\x08onnxFile\x12\x45\n\x0bnamed_asset\x18\x04 \x03(\x0b\x32$.gml.internal.api.core.v1.NamedAssetR\nnamedAsset\x12\x18\n\x07runtime\x18\x32 \x01(\tR\x07runtime\x12\x62\n\rtensorrt_spec\x18\x64 \x01(\x0b\x32+.gml.internal.api.core.v1.TensorRTModelSpecB\x10\xe2\xde\x1f\x0cTensorRTSpecR\x0ctensorrtSpec\x12\x62\n\ropenvino_spec\x18\x65 \x01(\x0b\x32+.gml.internal.api.core.v1.OpenVINOModelSpecB\x10\xe2\xde\x1f\x0cOpenVINOSpecR\x0copenvinoSpec\"\xfe\x01\n\x11TensorRTModelSpec\x12h\n\x14optimization_profile\x18\x01 \x03(\x0b\x32\x35.gml.internal.api.core.v1.TensorRTOptimizationProfileR\x13optimizationProfile\x12&\n\x0f\x65ngine_blob_key\x18\x02 \x01(\tR\rengineBlobKey\x12W\n\x0fmem_pool_limits\x18\x03 \x01(\x0b\x32/.gml.internal.api.core.v1.TensorRTMemPoolLimitsR\rmemPoolLimits\"\x7f\n\x1bTensorRTOptimizationProfile\x12`\n\x12tensor_shape_range\x18\x01 \x03(\x0b\x32\x32.gml.internal.api.core.v1.TensorRTTensorShapeRangeR\x10tensorShapeRange\"M\n\x18TensorRTTensorShapeRange\x12\x1f\n\x0btensor_name\x18\x01 \x01(\tR\ntensorName\x12\x10\n\x03\x64im\x18\x02 \x03(\x05R\x03\x64im\"5\n\x15TensorRTMemPoolLimits\x12\x1c\n\tworkspace\x18\x01 \x01(\x03R\tworkspace\"\x8e\x01\n\x11OpenVINOModelSpec\x12X\n\x0binput_shape\x18\x01 \x03(\x0b\x32\x37.gml.internal.api.core.v1.OpenVINOModelSpec.TensorShapeR\ninputShape\x1a\x1f\n\x0bTensorShape\x12\x10\n\x03\x64im\x18\x01 \x03(\x05R\x03\x64im*\xcc\x04\n\x17LogicalPipelineNodeKind\x12&\n\"LOGICAL_PIPELINE_NODE_KIND_UNKNOWN\x10\x00\x12,\n(LOGICAL_PIPELINE_NODE_KIND_CAMERA_SOURCE\x10\n\x12&\n!LOGICAL_PIPELINE_NODE_KIND_DETECT\x10\xe8\x07\x12(\n#LOGICAL_PIPELINE_NODE_KIND_CLASSIFY\x10\xe9\x07\x12\'\n\"LOGICAL_PIPELINE_NODE_KIND_SEGMENT\x10\xea\x07\x12\x33\n.LOGICAL_PIPELINE_NODE_KIND_MULTI_PURPOSE_MODEL\x10\xeb\x07\x12\'\n\"LOGICAL_PIPELINE_NODE_KIND_REGRESS\x10\xec\x07\x12,\n\'LOGICAL_PIPELINE_NODE_KIND_FOR_EACH_ROI\x10\xdf\x0b\x12\x31\n,LOGICAL_PIPELINE_NODE_KIND_VIDEO_STREAM_SINK\x10\xd0\x0f\x12\x37\n2LOGICAL_PIPELINE_NODE_KIND_DETECTIONS_METRICS_SINK\x10\xd1\x0f\x12\x34\n/LOGICAL_PIPELINE_NODE_KIND_LATENCY_METRICS_SINK\x10\xd2\x0f\x12\x32\n-LOGICAL_PIPELINE_NODE_KIND_FRAME_METRICS_SINK\x10\xd3\x0f*\xd7\x01\n\rPipelineState\x12\x1a\n\x16PIPELINE_STATE_UNKNOWN\x10\x00\x12\x1a\n\x16PIPELINE_STATE_PENDING\x10\x01\x12\x18\n\x14PIPELINE_STATE_READY\x10\x02\x12\x1a\n\x16PIPELINE_STATE_RUNNING\x10\x03\x12\x1e\n\x1aPIPELINE_STATE_TERMINATING\x10\x04\x12\x1d\n\x19PIPELINE_STATE_TERMINATED\x10\x05\x12\x19\n\x15PIPELINE_STATE_FAILED\x10\x06\x42/Z-gimletlabs.ai/gimlet/src/api/corepb/v1;corepbb\x06proto3')
25
26
 
26
27
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
27
28
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'src.api.corepb.v1.model_exec_pb2', globals())
@@ -47,8 +48,6 @@ if _descriptor._USE_C_DESCRIPTORS == False:
47
48
  _PHYSICALPIPELINE.fields_by_name['pipeline_deployment_id']._serialized_options = b'\342\336\037\024PipelineDeploymentID'
48
49
  _PHYSICALPIPELINE.fields_by_name['device_id']._options = None
49
50
  _PHYSICALPIPELINE.fields_by_name['device_id']._serialized_options = b'\342\336\037\010DeviceID'
50
- _PIPELINENODE_ATTRENTRY._options = None
51
- _PIPELINENODE_ATTRENTRY._serialized_options = b'8\001'
52
51
  _FILERESOURCE.fields_by_name['file_id']._options = None
53
52
  _FILERESOURCE.fields_by_name['file_id']._serialized_options = b'\342\336\037\006FileID'
54
53
  _MODELSPEC.fields_by_name['onnx_blob_key']._options = None
@@ -59,116 +58,110 @@ if _descriptor._USE_C_DESCRIPTORS == False:
59
58
  _MODELSPEC.fields_by_name['tensorrt_spec']._serialized_options = b'\342\336\037\014TensorRTSpec'
60
59
  _MODELSPEC.fields_by_name['openvino_spec']._options = None
61
60
  _MODELSPEC.fields_by_name['openvino_spec']._serialized_options = b'\342\336\037\014OpenVINOSpec'
62
- _LOGICALPIPELINENODEKIND._serialized_start=10217
63
- _LOGICALPIPELINENODEKIND._serialized_end=10711
64
- _PIPELINESTATE._serialized_start=10714
65
- _PIPELINESTATE._serialized_end=10929
66
- _BOUNDINGBOXINFO._serialized_start=189
67
- _BOUNDINGBOXINFO._serialized_end=484
68
- _BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_start=340
69
- _BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_end=484
70
- _IMAGEPREPROCESSINGSTEP._serialized_start=487
71
- _IMAGEPREPROCESSINGSTEP._serialized_end=1499
72
- _IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_start=948
73
- _IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_end=993
74
- _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_start=996
75
- _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_end=1233
76
- _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_start=1121
77
- _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_end=1233
78
- _IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_start=1235
79
- _IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_end=1307
80
- _IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_start=1310
81
- _IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_end=1499
82
- _DIMENSIONSEMANTICS._serialized_start=1502
83
- _DIMENSIONSEMANTICS._serialized_end=3675
84
- _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_start=2117
85
- _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_end=2361
86
- _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_start=2247
87
- _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_end=2361
88
- _DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_start=2363
89
- _DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_end=2424
90
- _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_start=2427
91
- _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_end=2906
92
- _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_start=2852
93
- _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_end=2906
94
- _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_start=2909
95
- _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_end=3211
96
- _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_start=3046
97
- _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_end=3211
98
- _DIMENSIONSEMANTICS_DIMENSIONSEMANTICSKIND._serialized_start=3214
99
- _DIMENSIONSEMANTICS_DIMENSIONSEMANTICSKIND._serialized_end=3675
100
- _TENSORSEMANTICS._serialized_start=3677
101
- _TENSORSEMANTICS._serialized_end=3772
102
- _MODELINFO._serialized_start=3775
103
- _MODELINFO._serialized_end=4966
104
- _MODELINFO_FILEASSETSENTRY._serialized_start=4454
105
- _MODELINFO_FILEASSETSENTRY._serialized_end=4532
106
- _MODELINFO_MODELKIND._serialized_start=4535
107
- _MODELINFO_MODELKIND._serialized_end=4689
108
- _MODELINFO_MODELSTORAGEFORMAT._serialized_start=4692
109
- _MODELINFO_MODELSTORAGEFORMAT._serialized_end=4966
110
- _NODE._serialized_start=4969
111
- _NODE._serialized_end=5265
112
- _PARAMREF._serialized_start=5267
113
- _PARAMREF._serialized_end=5297
114
- _VALUE._serialized_start=5300
115
- _VALUE._serialized_end=5855
116
- _VALUE_MODELREF._serialized_start=5662
117
- _VALUE_MODELREF._serialized_end=5733
118
- _VALUE_LAMBDA._serialized_start=5735
119
- _VALUE_LAMBDA._serialized_end=5847
120
- _NODEATTRIBUTES._serialized_start=5857
121
- _NODEATTRIBUTES._serialized_end=5948
122
- _NODEINPUT._serialized_start=5951
123
- _NODEINPUT._serialized_end=6363
124
- _NODEINPUT_NODEOUTPUTREF._serialized_start=6252
125
- _NODEINPUT_NODEOUTPUTREF._serialized_end=6316
126
- _NODEINPUT_LAMBDAINPUTREF._serialized_start=6318
127
- _NODEINPUT_LAMBDAINPUTREF._serialized_end=6354
128
- _NODEOUTPUT._serialized_start=6365
129
- _NODEOUTPUT._serialized_end=6397
130
- _PARAM._serialized_start=6399
131
- _PARAM._serialized_end=6496
132
- _LOGICALPIPELINE._serialized_start=6499
133
- _LOGICALPIPELINE._serialized_end=6687
134
- _PIPELINEDEPLOYMENT._serialized_start=6690
135
- _PIPELINEDEPLOYMENT._serialized_end=7245
136
- _PIPELINEDEPLOYMENTSPEC._serialized_start=7247
137
- _PIPELINEDEPLOYMENTSPEC._serialized_end=7334
138
- _PIPELINEDEPLOYMENTSTATUS._serialized_start=7336
139
- _PIPELINEDEPLOYMENTSTATUS._serialized_end=7449
140
- _PHYSICALPIPELINE._serialized_start=7452
141
- _PHYSICALPIPELINE._serialized_end=7928
142
- _PHYSICALPIPELINESPEC._serialized_start=7931
143
- _PHYSICALPIPELINESPEC._serialized_end=8131
144
- _PHYSICALPIPELINESTATUS._serialized_start=8134
145
- _PHYSICALPIPELINESTATUS._serialized_end=8297
146
- _PIPELINE._serialized_start=8299
147
- _PIPELINE._serialized_end=8371
148
- _PIPELINENODE._serialized_start=8374
149
- _PIPELINENODE._serialized_end=8665
150
- _PIPELINENODE_ATTRENTRY._serialized_start=8610
151
- _PIPELINENODE_ATTRENTRY._serialized_end=8665
152
- _PORT._serialized_start=8667
153
- _PORT._serialized_end=8711
154
- _FILERESOURCE._serialized_start=8714
155
- _FILERESOURCE._serialized_end=8846
156
- _EXECUTIONSPEC._serialized_start=8849
157
- _EXECUTIONSPEC._serialized_end=8988
158
- _NAMEDASSET._serialized_start=8990
159
- _NAMEDASSET._serialized_end=9082
160
- _MODELSPEC._serialized_start=9085
161
- _MODELSPEC._serialized_end=9549
162
- _TENSORRTMODELSPEC._serialized_start=9552
163
- _TENSORRTMODELSPEC._serialized_end=9806
164
- _TENSORRTOPTIMIZATIONPROFILE._serialized_start=9808
165
- _TENSORRTOPTIMIZATIONPROFILE._serialized_end=9935
166
- _TENSORRTTENSORSHAPERANGE._serialized_start=9937
167
- _TENSORRTTENSORSHAPERANGE._serialized_end=10014
168
- _TENSORRTMEMPOOLLIMITS._serialized_start=10016
169
- _TENSORRTMEMPOOLLIMITS._serialized_end=10069
170
- _OPENVINOMODELSPEC._serialized_start=10072
171
- _OPENVINOMODELSPEC._serialized_end=10214
172
- _OPENVINOMODELSPEC_TENSORSHAPE._serialized_start=10183
173
- _OPENVINOMODELSPEC_TENSORSHAPE._serialized_end=10214
61
+ _LOGICALPIPELINENODEKIND._serialized_start=10127
62
+ _LOGICALPIPELINENODEKIND._serialized_end=10715
63
+ _PIPELINESTATE._serialized_start=10718
64
+ _PIPELINESTATE._serialized_end=10933
65
+ _BOUNDINGBOXINFO._serialized_start=221
66
+ _BOUNDINGBOXINFO._serialized_end=516
67
+ _BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_start=372
68
+ _BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_end=516
69
+ _IMAGEPREPROCESSINGSTEP._serialized_start=519
70
+ _IMAGEPREPROCESSINGSTEP._serialized_end=1531
71
+ _IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_start=980
72
+ _IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_end=1025
73
+ _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_start=1028
74
+ _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_end=1265
75
+ _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_start=1153
76
+ _IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_end=1265
77
+ _IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_start=1267
78
+ _IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_end=1339
79
+ _IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_start=1342
80
+ _IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_end=1531
81
+ _DIMENSIONSEMANTICS._serialized_start=1534
82
+ _DIMENSIONSEMANTICS._serialized_end=3999
83
+ _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_start=2257
84
+ _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_end=2501
85
+ _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_start=2387
86
+ _DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_end=2501
87
+ _DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_start=2503
88
+ _DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_end=2564
89
+ _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_start=2567
90
+ _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_end=3046
91
+ _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_start=2992
92
+ _DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_end=3046
93
+ _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_start=3049
94
+ _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_end=3351
95
+ _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_start=3186
96
+ _DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_end=3351
97
+ _DIMENSIONSEMANTICS_REGRESSIONPARAMS._serialized_start=3353
98
+ _DIMENSIONSEMANTICS_REGRESSIONPARAMS._serialized_end=3445
99
+ _DIMENSIONSEMANTICS_DIMENSIONSEMANTICSKIND._serialized_start=3448
100
+ _DIMENSIONSEMANTICS_DIMENSIONSEMANTICSKIND._serialized_end=3999
101
+ _TENSORSEMANTICS._serialized_start=4001
102
+ _TENSORSEMANTICS._serialized_end=4096
103
+ _MODELINFO._serialized_start=4099
104
+ _MODELINFO._serialized_end=5290
105
+ _MODELINFO_FILEASSETSENTRY._serialized_start=4778
106
+ _MODELINFO_FILEASSETSENTRY._serialized_end=4856
107
+ _MODELINFO_MODELKIND._serialized_start=4859
108
+ _MODELINFO_MODELKIND._serialized_end=5013
109
+ _MODELINFO_MODELSTORAGEFORMAT._serialized_start=5016
110
+ _MODELINFO_MODELSTORAGEFORMAT._serialized_end=5290
111
+ _NODE._serialized_start=5293
112
+ _NODE._serialized_end=5589
113
+ _PARAMREF._serialized_start=5591
114
+ _PARAMREF._serialized_end=5621
115
+ _VALUE._serialized_start=5624
116
+ _VALUE._serialized_end=6179
117
+ _VALUE_MODELREF._serialized_start=5986
118
+ _VALUE_MODELREF._serialized_end=6057
119
+ _VALUE_LAMBDA._serialized_start=6059
120
+ _VALUE_LAMBDA._serialized_end=6171
121
+ _NODEATTRIBUTES._serialized_start=6181
122
+ _NODEATTRIBUTES._serialized_end=6272
123
+ _NODEINPUT._serialized_start=6275
124
+ _NODEINPUT._serialized_end=6687
125
+ _NODEINPUT_NODEOUTPUTREF._serialized_start=6576
126
+ _NODEINPUT_NODEOUTPUTREF._serialized_end=6640
127
+ _NODEINPUT_LAMBDAINPUTREF._serialized_start=6642
128
+ _NODEINPUT_LAMBDAINPUTREF._serialized_end=6678
129
+ _NODEOUTPUT._serialized_start=6689
130
+ _NODEOUTPUT._serialized_end=6721
131
+ _PARAM._serialized_start=6723
132
+ _PARAM._serialized_end=6820
133
+ _LOGICALPIPELINE._serialized_start=6823
134
+ _LOGICALPIPELINE._serialized_end=7011
135
+ _PIPELINEDEPLOYMENT._serialized_start=7014
136
+ _PIPELINEDEPLOYMENT._serialized_end=7569
137
+ _PIPELINEDEPLOYMENTSPEC._serialized_start=7571
138
+ _PIPELINEDEPLOYMENTSPEC._serialized_end=7658
139
+ _PIPELINEDEPLOYMENTSTATUS._serialized_start=7660
140
+ _PIPELINEDEPLOYMENTSTATUS._serialized_end=7773
141
+ _PHYSICALPIPELINE._serialized_start=7776
142
+ _PHYSICALPIPELINE._serialized_end=8252
143
+ _PHYSICALPIPELINESPEC._serialized_start=8255
144
+ _PHYSICALPIPELINESPEC._serialized_end=8455
145
+ _PHYSICALPIPELINESTATUS._serialized_start=8458
146
+ _PHYSICALPIPELINESTATUS._serialized_end=8621
147
+ _FILERESOURCE._serialized_start=8624
148
+ _FILERESOURCE._serialized_end=8756
149
+ _EXECUTIONSPEC._serialized_start=8759
150
+ _EXECUTIONSPEC._serialized_end=8898
151
+ _NAMEDASSET._serialized_start=8900
152
+ _NAMEDASSET._serialized_end=8992
153
+ _MODELSPEC._serialized_start=8995
154
+ _MODELSPEC._serialized_end=9459
155
+ _TENSORRTMODELSPEC._serialized_start=9462
156
+ _TENSORRTMODELSPEC._serialized_end=9716
157
+ _TENSORRTOPTIMIZATIONPROFILE._serialized_start=9718
158
+ _TENSORRTOPTIMIZATIONPROFILE._serialized_end=9845
159
+ _TENSORRTTENSORSHAPERANGE._serialized_start=9847
160
+ _TENSORRTTENSORSHAPERANGE._serialized_end=9924
161
+ _TENSORRTMEMPOOLLIMITS._serialized_start=9926
162
+ _TENSORRTMEMPOOLLIMITS._serialized_end=9979
163
+ _OPENVINOMODELSPEC._serialized_start=9982
164
+ _OPENVINOMODELSPEC._serialized_end=10124
165
+ _OPENVINOMODELSPEC_TENSORSHAPE._serialized_start=10093
166
+ _OPENVINOMODELSPEC_TENSORSHAPE._serialized_end=10124
174
167
  # @@protoc_insertion_point(module_scope)
@@ -16,7 +16,7 @@ from gml.proto.src.common.typespb import uuid_pb2 as src_dot_common_dot_typespb_
16
16
  from gml.proto.src.api.corepb.v1 import model_exec_pb2 as src_dot_api_dot_corepb_dot_v1_dot_model__exec__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3src/controlplane/logicalpipeline/lppb/v1/lppb.proto\x12,gml.internal.controlplane.logicalpipeline.v1\x1a\x14gogoproto/gogo.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\"src/api/corepb/v1/model_exec.proto\"R\n\x13LogicalPipelineInfo\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"P\n\x1bListLogicalPipelinesRequest\x12\x31\n\x06org_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\t\xe2\xde\x1f\x05OrgIDR\x05orgId\"\x7f\n\x1cListLogicalPipelinesResponse\x12_\n\tpipelines\x18\x01 \x03(\x0b\x32\x41.gml.internal.controlplane.logicalpipeline.v1.LogicalPipelineInfoR\tpipelines\"D\n\x19GetLogicalPipelineRequest\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\"\xe3\x02\n\x1aGetLogicalPipelineResponse\x12\x42\n\x08pipeline\x18\x01 \x01(\x0b\x32\".gml.internal.api.core.v1.PipelineB\x02\x18\x01R\x08pipeline\x12\x66\n\rpipeline_info\x18\x02 \x01(\x0b\x32\x41.gml.internal.controlplane.logicalpipeline.v1.LogicalPipelineInfoR\x0cpipelineInfo\x12\x12\n\x04yaml\x18\x03 \x01(\tR\x04yaml\x12T\n\x10logical_pipeline\x18\x04 \x01(\x0b\x32).gml.internal.api.core.v1.LogicalPipelineR\x0flogicalPipeline\x12/\n\x0b\x65ncoded_dag\x18\x05 \x01(\tB\x0e\xe2\xde\x1f\nEncodedDAGR\nencodedDag\"\xbd\x01\n\x1c\x43reateLogicalPipelineRequest\x12\x31\n\x06org_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\t\xe2\xde\x1f\x05OrgIDR\x05orgId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x42\n\x08pipeline\x18\x03 \x01(\x0b\x32\".gml.internal.api.core.v1.PipelineB\x02\x18\x01R\x08pipeline\x12\x12\n\x04yaml\x18\x04 \x01(\tR\x04yaml\"H\n\x1d\x43reateLogicalPipelineResponse\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id2\xa5\x04\n\x16LogicalPipelineService\x12\xad\x01\n\x14ListLogicalPipelines\x12I.gml.internal.controlplane.logicalpipeline.v1.ListLogicalPipelinesRequest\x1aJ.gml.internal.controlplane.logicalpipeline.v1.ListLogicalPipelinesResponse\x12\xa7\x01\n\x12GetLogicalPipeline\x12G.gml.internal.controlplane.logicalpipeline.v1.GetLogicalPipelineRequest\x1aH.gml.internal.controlplane.logicalpipeline.v1.GetLogicalPipelineResponse\x12\xb0\x01\n\x15\x43reateLogicalPipeline\x12J.gml.internal.controlplane.logicalpipeline.v1.CreateLogicalPipelineRequest\x1aK.gml.internal.controlplane.logicalpipeline.v1.CreateLogicalPipelineResponseBDZBgimletlabs.ai/gimlet/src/controlplane/logicalpipeline/lppb/v1;lppbb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3src/controlplane/logicalpipeline/lppb/v1/lppb.proto\x12,gml.internal.controlplane.logicalpipeline.v1\x1a\x14gogoproto/gogo.proto\x1a\x1dsrc/common/typespb/uuid.proto\x1a\"src/api/corepb/v1/model_exec.proto\"R\n\x13LogicalPipelineInfo\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"P\n\x1bListLogicalPipelinesRequest\x12\x31\n\x06org_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\t\xe2\xde\x1f\x05OrgIDR\x05orgId\"\x7f\n\x1cListLogicalPipelinesResponse\x12_\n\tpipelines\x18\x01 \x03(\x0b\x32\x41.gml.internal.controlplane.logicalpipeline.v1.LogicalPipelineInfoR\tpipelines\"\x8b\x01\n\x19GetLogicalPipelineRequest\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x31\n\x06org_id\x18\x03 \x01(\x0b\x32\x0f.gml.types.UUIDB\t\xe2\xde\x1f\x05OrgIDR\x05orgId\"\xa5\x02\n\x1aGetLogicalPipelineResponse\x12\x66\n\rpipeline_info\x18\x02 \x01(\x0b\x32\x41.gml.internal.controlplane.logicalpipeline.v1.LogicalPipelineInfoR\x0cpipelineInfo\x12\x12\n\x04yaml\x18\x03 \x01(\tR\x04yaml\x12T\n\x10logical_pipeline\x18\x04 \x01(\x0b\x32).gml.internal.api.core.v1.LogicalPipelineR\x0flogicalPipeline\x12/\n\x0b\x65ncoded_dag\x18\x05 \x01(\tB\x0e\xe2\xde\x1f\nEncodedDAGR\nencodedDagJ\x04\x08\x01\x10\x02\"\x7f\n\x1c\x43reateLogicalPipelineRequest\x12\x31\n\x06org_id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\t\xe2\xde\x1f\x05OrgIDR\x05orgId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n\x04yaml\x18\x04 \x01(\tR\x04yamlJ\x04\x08\x03\x10\x04\"H\n\x1d\x43reateLogicalPipelineResponse\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x0f.gml.types.UUIDB\x06\xe2\xde\x1f\x02IDR\x02id2\xa5\x04\n\x16LogicalPipelineService\x12\xad\x01\n\x14ListLogicalPipelines\x12I.gml.internal.controlplane.logicalpipeline.v1.ListLogicalPipelinesRequest\x1aJ.gml.internal.controlplane.logicalpipeline.v1.ListLogicalPipelinesResponse\x12\xa7\x01\n\x12GetLogicalPipeline\x12G.gml.internal.controlplane.logicalpipeline.v1.GetLogicalPipelineRequest\x1aH.gml.internal.controlplane.logicalpipeline.v1.GetLogicalPipelineResponse\x12\xb0\x01\n\x15\x43reateLogicalPipeline\x12J.gml.internal.controlplane.logicalpipeline.v1.CreateLogicalPipelineRequest\x1aK.gml.internal.controlplane.logicalpipeline.v1.CreateLogicalPipelineResponseBDZBgimletlabs.ai/gimlet/src/controlplane/logicalpipeline/lppb/v1;lppbb\x06proto3')
20
20
 
21
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
22
22
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'src.controlplane.logicalpipeline.lppb.v1.lppb_pb2', globals())
@@ -30,14 +30,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
30
30
  _LISTLOGICALPIPELINESREQUEST.fields_by_name['org_id']._serialized_options = b'\342\336\037\005OrgID'
31
31
  _GETLOGICALPIPELINEREQUEST.fields_by_name['id']._options = None
32
32
  _GETLOGICALPIPELINEREQUEST.fields_by_name['id']._serialized_options = b'\342\336\037\002ID'
33
- _GETLOGICALPIPELINERESPONSE.fields_by_name['pipeline']._options = None
34
- _GETLOGICALPIPELINERESPONSE.fields_by_name['pipeline']._serialized_options = b'\030\001'
33
+ _GETLOGICALPIPELINEREQUEST.fields_by_name['org_id']._options = None
34
+ _GETLOGICALPIPELINEREQUEST.fields_by_name['org_id']._serialized_options = b'\342\336\037\005OrgID'
35
35
  _GETLOGICALPIPELINERESPONSE.fields_by_name['encoded_dag']._options = None
36
36
  _GETLOGICALPIPELINERESPONSE.fields_by_name['encoded_dag']._serialized_options = b'\342\336\037\nEncodedDAG'
37
37
  _CREATELOGICALPIPELINEREQUEST.fields_by_name['org_id']._options = None
38
38
  _CREATELOGICALPIPELINEREQUEST.fields_by_name['org_id']._serialized_options = b'\342\336\037\005OrgID'
39
- _CREATELOGICALPIPELINEREQUEST.fields_by_name['pipeline']._options = None
40
- _CREATELOGICALPIPELINEREQUEST.fields_by_name['pipeline']._serialized_options = b'\030\001'
41
39
  _CREATELOGICALPIPELINERESPONSE.fields_by_name['id']._options = None
42
40
  _CREATELOGICALPIPELINERESPONSE.fields_by_name['id']._serialized_options = b'\342\336\037\002ID'
43
41
  _LOGICALPIPELINEINFO._serialized_start=190
@@ -46,14 +44,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
46
44
  _LISTLOGICALPIPELINESREQUEST._serialized_end=354
47
45
  _LISTLOGICALPIPELINESRESPONSE._serialized_start=356
48
46
  _LISTLOGICALPIPELINESRESPONSE._serialized_end=483
49
- _GETLOGICALPIPELINEREQUEST._serialized_start=485
50
- _GETLOGICALPIPELINEREQUEST._serialized_end=553
51
- _GETLOGICALPIPELINERESPONSE._serialized_start=556
52
- _GETLOGICALPIPELINERESPONSE._serialized_end=911
53
- _CREATELOGICALPIPELINEREQUEST._serialized_start=914
54
- _CREATELOGICALPIPELINEREQUEST._serialized_end=1103
55
- _CREATELOGICALPIPELINERESPONSE._serialized_start=1105
56
- _CREATELOGICALPIPELINERESPONSE._serialized_end=1177
57
- _LOGICALPIPELINESERVICE._serialized_start=1180
58
- _LOGICALPIPELINESERVICE._serialized_end=1729
47
+ _GETLOGICALPIPELINEREQUEST._serialized_start=486
48
+ _GETLOGICALPIPELINEREQUEST._serialized_end=625
49
+ _GETLOGICALPIPELINERESPONSE._serialized_start=628
50
+ _GETLOGICALPIPELINERESPONSE._serialized_end=921
51
+ _CREATELOGICALPIPELINEREQUEST._serialized_start=923
52
+ _CREATELOGICALPIPELINEREQUEST._serialized_end=1050
53
+ _CREATELOGICALPIPELINERESPONSE._serialized_start=1052
54
+ _CREATELOGICALPIPELINERESPONSE._serialized_end=1124
55
+ _LOGICALPIPELINESERVICE._serialized_start=1127
56
+ _LOGICALPIPELINESERVICE._serialized_end=1676
59
57
  # @@protoc_insertion_point(module_scope)
gml/tensor.py CHANGED
@@ -1,22 +1,24 @@
1
- # Copyright © 2023- Gimlet Labs, Inc.
2
- # All Rights Reserved.
1
+ # Copyright 2023- Gimlet Labs, Inc.
3
2
  #
4
- # NOTICE: All information contained herein is, and remains
5
- # the property of Gimlet Labs, Inc. and its suppliers,
6
- # if any. The intellectual and technical concepts contained
7
- # herein are proprietary to Gimlet Labs, Inc. and its suppliers and
8
- # may be covered by U.S. and Foreign Patents, patents in process,
9
- # and are protected by trade secret or copyright law. Dissemination
10
- # of this information or reproduction of this material is strictly
11
- # forbidden unless prior written permission is obtained from
12
- # Gimlet Labs, Inc.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
13
6
  #
14
- # SPDX-License-Identifier: Proprietary
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # SPDX-License-Identifier: Apache-2.0
15
16
 
16
17
  import abc
17
18
  from typing import List, Literal, Optional, Tuple
18
19
 
19
20
  import gml.proto.src.api.corepb.v1.model_exec_pb2 as modelexecpb
21
+ import google.protobuf.wrappers_pb2 as wrapperspb
20
22
 
21
23
 
22
24
  def box_format_str_to_proto(box_format: str):
@@ -122,7 +124,7 @@ class DetectionOutputDimension(DimensionSemantics):
122
124
  self,
123
125
  coordinates_start_index: int,
124
126
  box_format: BoundingBoxFormat,
125
- box_confidence_index: int,
127
+ box_confidence_index: Optional[int] = None,
126
128
  class_index: Optional[int] = None,
127
129
  scores_range: Optional[Tuple[int, int]] = None,
128
130
  ):
@@ -141,6 +143,9 @@ class DetectionOutputDimension(DimensionSemantics):
141
143
  size=self.scores_range[1],
142
144
  )
143
145
  )
146
+ box_confidence_index = -1
147
+ if self.box_confidence_index is not None:
148
+ box_confidence_index = self.box_confidence_index
144
149
  return modelexecpb.DimensionSemantics(
145
150
  kind=modelexecpb.DimensionSemantics.DIMENSION_SEMANTICS_KIND_DETECTION_OUTPUT,
146
151
  detection_output_params=modelexecpb.DimensionSemantics.DetectionOutputParams(
@@ -149,7 +154,7 @@ class DetectionOutputDimension(DimensionSemantics):
149
154
  size=self.coordinates_range[1],
150
155
  ),
151
156
  box_format=self.box_format.to_proto(),
152
- box_confidence_index=self.box_confidence_index,
157
+ box_confidence_index=box_confidence_index,
153
158
  class_index=self.class_index,
154
159
  scores_range=scores_range,
155
160
  ),
@@ -166,12 +171,16 @@ def _segmentation_mask_kind_to_proto(kind: str):
166
171
  return (
167
172
  modelexecpb.DimensionSemantics.SegmentationMaskParams.SEGMENTATION_MASK_KIND_CLASS_LABEL
168
173
  )
174
+ case "score_masks":
175
+ return (
176
+ modelexecpb.DimensionSemantics.SegmentationMaskParams.SEGMENTATION_MASK_KIND_SCORE
177
+ )
169
178
  case _:
170
179
  raise ValueError("Invalid segmentation mask kind: {}".format(kind))
171
180
 
172
181
 
173
182
  class SegmentationMaskChannel(DimensionSemantics):
174
- def __init__(self, kind: Literal["bool_masks", "int_label_masks"]):
183
+ def __init__(self, kind: Literal["bool_masks", "int_label_masks", "score_masks"]):
175
184
  self.kind = _segmentation_mask_kind_to_proto(kind)
176
185
 
177
186
  def to_proto(self) -> modelexecpb.DimensionSemantics:
@@ -183,6 +192,38 @@ class SegmentationMaskChannel(DimensionSemantics):
183
192
  )
184
193
 
185
194
 
195
+ class LabelsDimension(DimensionSemantics):
196
+ def to_proto(self) -> modelexecpb.DimensionSemantics:
197
+ return modelexecpb.DimensionSemantics(
198
+ kind=modelexecpb.DimensionSemantics.DIMENSION_SEMANTICS_KIND_CLASS_LABELS
199
+ )
200
+
201
+
202
+ class ScoresDimension(DimensionSemantics):
203
+ def to_proto(self) -> modelexecpb.DimensionSemantics:
204
+ return modelexecpb.DimensionSemantics(
205
+ kind=modelexecpb.DimensionSemantics.DIMENSION_SEMANTICS_KIND_CLASS_SCORES
206
+ )
207
+
208
+
209
+ class RegressionValueDimension(DimensionSemantics):
210
+ def __init__(self, label: str, scale: Optional[float] = None):
211
+ self.label = label
212
+ self.scale = scale
213
+
214
+ def to_proto(self) -> modelexecpb.DimensionSemantics:
215
+ scale = None
216
+ if self.scale is not None:
217
+ scale = wrapperspb.DoubleValue(value=self.scale)
218
+ return modelexecpb.DimensionSemantics(
219
+ kind=modelexecpb.DimensionSemantics.DIMENSION_SEMANTICS_KIND_REGRESSION_VALUE,
220
+ regression_params=modelexecpb.DimensionSemantics.RegressionParams(
221
+ label=self.label,
222
+ scale=scale,
223
+ ),
224
+ )
225
+
226
+
186
227
  class TensorSemantics:
187
228
  def __init__(self, dimensions: List[DimensionSemantics]):
188
229
  self.dimensions = dimensions
@@ -191,3 +232,102 @@ class TensorSemantics:
191
232
  return modelexecpb.TensorSemantics(
192
233
  dimensions=[dim.to_proto() for dim in self.dimensions],
193
234
  )
235
+
236
+
237
+ class RGBImage(TensorSemantics):
238
+ """RGBImage is an image tensor input with channels in RGB order."""
239
+
240
+ def __init__(self, channels_first=True):
241
+ if channels_first:
242
+ dimensions = [
243
+ BatchDimension(),
244
+ ImageChannelDimension(channel_format="rgb"),
245
+ ImageHeightDimension(),
246
+ ImageWidthDimension(),
247
+ ]
248
+ else:
249
+ dimensions = [
250
+ BatchDimension(),
251
+ ImageHeightDimension(),
252
+ ImageWidthDimension(),
253
+ ImageChannelDimension(channel_format="rgb"),
254
+ ]
255
+ super().__init__(dimensions)
256
+
257
+
258
+ class BGRImage(TensorSemantics):
259
+ """BGRImage is an image tensor input with channels in BGR order."""
260
+
261
+ def __init__(self, channels_first=True):
262
+ if channels_first:
263
+ dimensions = [
264
+ BatchDimension(),
265
+ ImageChannelDimension(channel_format="bgr"),
266
+ ImageHeightDimension(),
267
+ ImageWidthDimension(),
268
+ ]
269
+ else:
270
+ dimensions = [
271
+ BatchDimension(),
272
+ ImageHeightDimension(),
273
+ ImageWidthDimension(),
274
+ ImageChannelDimension(channel_format="bgr"),
275
+ ]
276
+ super().__init__(dimensions)
277
+
278
+
279
+ class BinarySegmentationMasks(TensorSemantics):
280
+ """BinarySegmentationMasks represents the output of a segmentation model with binary masks.
281
+
282
+ The expected tensor shape is [B, NUM_CLASSES, H, W].
283
+ For example, a segmentation model with 4 classes would output a tensor of shape [B, 4, H, W],
284
+ where each channel is a binary mask per-pixel.
285
+ """
286
+
287
+ def __init__(self):
288
+ dimensions = [
289
+ BatchDimension(),
290
+ SegmentationMaskChannel("bool_masks"),
291
+ ImageHeightDimension(),
292
+ ImageWidthDimension(),
293
+ ]
294
+ super().__init__(dimensions)
295
+
296
+
297
+ class YOLOOutput(TensorSemantics):
298
+ """YOLOOutput represents a detection output from a YOLO model.
299
+
300
+ The YOLO model should output a tensor of shape [B, N_BOXES, (4 or 5) + NUM_CLASSES].
301
+ """
302
+
303
+ def __init__(self, has_box_conf=True):
304
+ dimensions = [
305
+ BatchDimension(),
306
+ DetectionNumCandidatesDimension(is_nms=False),
307
+ ]
308
+
309
+ if has_box_conf:
310
+ dimensions.append(
311
+ DetectionOutputDimension(
312
+ coordinates_start_index=0,
313
+ box_format=BoundingBoxFormat(
314
+ box_format="cxcywh",
315
+ is_normalized=False,
316
+ ),
317
+ box_confidence_index=4,
318
+ scores_range=(5, -1),
319
+ )
320
+ )
321
+ else:
322
+ dimensions.append(
323
+ DetectionOutputDimension(
324
+ coordinates_start_index=0,
325
+ box_format=BoundingBoxFormat(
326
+ box_format="cxcywh",
327
+ is_normalized=False,
328
+ ),
329
+ scores_range=(4, -1),
330
+ )
331
+ )
332
+
333
+ super().__init__(dimensions)