gimlet-api 0.0.2__py3-none-any.whl → 0.0.5__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.
- {gimlet_api-0.0.2.dist-info → gimlet_api-0.0.5.dist-info}/METADATA +1 -1
- {gimlet_api-0.0.2.dist-info → gimlet_api-0.0.5.dist-info}/RECORD +16 -14
- gml/__init__.py +13 -12
- gml/_utils.py +13 -12
- gml/client.py +27 -16
- gml/compile.py +13 -12
- gml/model.py +15 -13
- gml/model_utils.py +33 -0
- gml/pipelines.py +149 -0
- gml/preprocessing.py +13 -12
- gml/proto/src/api/corepb/v1/controlplane_pb2.py +13 -9
- gml/proto/src/api/corepb/v1/mediastream_pb2.py +17 -15
- gml/proto/src/api/corepb/v1/model_exec_pb2.py +108 -115
- gml/proto/src/controlplane/logicalpipeline/lppb/v1/lppb_pb2.py +13 -15
- gml/tensor.py +155 -15
- {gimlet_api-0.0.2.dist-info → gimlet_api-0.0.5.dist-info}/WHEEL +0 -0
@@ -1,9 +1,11 @@
|
|
1
|
-
gml/__init__.py,sha256=
|
2
|
-
gml/_utils.py,sha256=
|
3
|
-
gml/client.py,sha256=
|
4
|
-
gml/compile.py,sha256=
|
5
|
-
gml/model.py,sha256=
|
6
|
-
gml/
|
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=Nwf44iTZjMOwFL05JKHaEvTd1QAkJdtgaAuFs6RVUp8,5256
|
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=
|
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=
|
26
|
-
gml/proto/src/api/corepb/v1/model_exec_pb2.py,sha256=
|
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=
|
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=
|
39
|
-
gimlet_api-0.0.
|
40
|
-
gimlet_api-0.0.
|
41
|
-
gimlet_api-0.0.
|
40
|
+
gml/tensor.py,sha256=8Ne95YFAkid_jjbtuXFtn_Eu0Hn9u5IaBRuwR7BpzxI,11827
|
41
|
+
gimlet_api-0.0.5.dist-info/WHEEL,sha256=sobxWSyDDkdg_rinUth-jxhXHqoNqlmNMJY3aTZn2Us,91
|
42
|
+
gimlet_api-0.0.5.dist-info/METADATA,sha256=t2CgErN9FNsBNkrCtmXNZcFlTnWzB3cA1vtL4jA1Y-c,429
|
43
|
+
gimlet_api-0.0.5.dist-info/RECORD,,
|
gml/__init__.py
CHANGED
@@ -1,17 +1,18 @@
|
|
1
|
-
# Copyright
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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(
|
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
|
-
|
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
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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,19 @@
|
|
1
|
-
# Copyright
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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
|
+
from __future__ import annotations
|
15
17
|
|
16
18
|
import abc
|
17
19
|
import io
|
@@ -97,7 +99,7 @@ class TorchModel(Model):
|
|
97
99
|
|
98
100
|
def _convert_to_torch_mlir(self):
|
99
101
|
return to_torch_mlir(
|
100
|
-
self.torch_module,
|
102
|
+
self.torch_module.to("cpu"),
|
101
103
|
[
|
102
104
|
torch_mlir.TensorPlaceholder(shape, dtype)
|
103
105
|
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
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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*\
|
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=
|
43
|
-
_CPTOPIC._serialized_end=
|
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
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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=
|
39
|
-
_IMAGECOLORCHANNEL._serialized_end=
|
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
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
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=
|
63
|
-
_LOGICALPIPELINENODEKIND._serialized_end=
|
64
|
-
_PIPELINESTATE._serialized_start=
|
65
|
-
_PIPELINESTATE._serialized_end=
|
66
|
-
_BOUNDINGBOXINFO._serialized_start=
|
67
|
-
_BOUNDINGBOXINFO._serialized_end=
|
68
|
-
_BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_start=
|
69
|
-
_BOUNDINGBOXINFO_BOUNDINGBOXFORMAT._serialized_end=
|
70
|
-
_IMAGEPREPROCESSINGSTEP._serialized_start=
|
71
|
-
_IMAGEPREPROCESSINGSTEP._serialized_end=
|
72
|
-
_IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_start=
|
73
|
-
_IMAGEPREPROCESSINGSTEP_IMAGECONVERSIONPARAMS._serialized_end=
|
74
|
-
_IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_start=
|
75
|
-
_IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS._serialized_end=
|
76
|
-
_IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_start=
|
77
|
-
_IMAGEPREPROCESSINGSTEP_IMAGERESIZEPARAMS_IMAGERESIZEKIND._serialized_end=
|
78
|
-
_IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_start=
|
79
|
-
_IMAGEPREPROCESSINGSTEP_IMAGESTANDARDIZEPARAMS._serialized_end=
|
80
|
-
_IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_start=
|
81
|
-
_IMAGEPREPROCESSINGSTEP_IMAGEPREPROCESSINGKIND._serialized_end=
|
82
|
-
_DIMENSIONSEMANTICS._serialized_start=
|
83
|
-
_DIMENSIONSEMANTICS._serialized_end=
|
84
|
-
_DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_start=
|
85
|
-
_DIMENSIONSEMANTICS_IMAGECHANNELPARAMS._serialized_end=
|
86
|
-
_DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_start=
|
87
|
-
_DIMENSIONSEMANTICS_IMAGECHANNELPARAMS_IMAGECHANNELFORMAT._serialized_end=
|
88
|
-
_DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_start=
|
89
|
-
_DIMENSIONSEMANTICS_DETECTIONCANDIDATESPARAMS._serialized_end=
|
90
|
-
_DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_start=
|
91
|
-
_DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS._serialized_end=
|
92
|
-
_DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_start=
|
93
|
-
_DIMENSIONSEMANTICS_DETECTIONOUTPUTPARAMS_INDEXRANGE._serialized_end=
|
94
|
-
_DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_start=
|
95
|
-
_DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS._serialized_end=
|
96
|
-
_DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_start=
|
97
|
-
_DIMENSIONSEMANTICS_SEGMENTATIONMASKPARAMS_SEGMENTATIONMASKKIND._serialized_end=
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
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\"
|
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
|
-
|
34
|
-
|
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=
|
50
|
-
_GETLOGICALPIPELINEREQUEST._serialized_end=
|
51
|
-
_GETLOGICALPIPELINERESPONSE._serialized_start=
|
52
|
-
_GETLOGICALPIPELINERESPONSE._serialized_end=
|
53
|
-
_CREATELOGICALPIPELINEREQUEST._serialized_start=
|
54
|
-
_CREATELOGICALPIPELINEREQUEST._serialized_end=
|
55
|
-
_CREATELOGICALPIPELINERESPONSE._serialized_start=
|
56
|
-
_CREATELOGICALPIPELINERESPONSE._serialized_end=
|
57
|
-
_LOGICALPIPELINESERVICE._serialized_start=
|
58
|
-
_LOGICALPIPELINESERVICE._serialized_end=
|
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
|
2
|
-
# All Rights Reserved.
|
1
|
+
# Copyright 2023- Gimlet Labs, Inc.
|
3
2
|
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
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
|
-
#
|
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=
|
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)
|
File without changes
|