Minor updates to MediaPipe graph documentation: use Graph/CalculatorGraphConfig instead of GraphConfig and mention that node can be a subgraph.
PiperOrigin-RevId: 508517281
This commit is contained in:
parent
fd764dae0a
commit
2163920ee8
|
@ -12,26 +12,25 @@ nav_order: 2
|
|||
{:toc}
|
||||
---
|
||||
|
||||
## GraphConfig
|
||||
## Graph
|
||||
|
||||
A `GraphConfig` is a specification that describes the topology and functionality
|
||||
of a MediaPipe graph. In the specification, a node in the graph represents an
|
||||
instance of a particular calculator. All the necessary configurations of the
|
||||
node, such its type, inputs and outputs must be described in the specification.
|
||||
Description of the node can also include several optional fields, such as
|
||||
A `CalculatorGraphConfig` proto specifies the topology and functionality of a
|
||||
MediaPipe graph. Each `node` in the graph represents a particular calculator or
|
||||
subgraph, and specifies necessary configurations, such as registered
|
||||
calculator/subgraph type, inputs, outputs and optional fields, such as
|
||||
node-specific options, input policy and executor, discussed in
|
||||
[Synchronization](synchronization.md).
|
||||
|
||||
`GraphConfig` has several other fields to configure the global graph-level
|
||||
settings, eg, graph executor configs, number of threads, and maximum queue size
|
||||
`CalculatorGraphConfig` has several other fields to configure global graph-level
|
||||
settings, e.g. graph executor configs, number of threads, and maximum queue size
|
||||
of input streams. Several graph-level settings are useful for tuning the
|
||||
performance of the graph on different platforms (eg, desktop v.s. mobile). For
|
||||
performance of the graph on different platforms (e.g., desktop v.s. mobile). For
|
||||
instance, on mobile, attaching a heavy model-inference calculator to a separate
|
||||
executor can improve the performance of a real-time application since this
|
||||
enables thread locality.
|
||||
|
||||
Below is a trivial `GraphConfig` example where we have series of passthrough
|
||||
calculators :
|
||||
Below is a trivial `CalculatorGraphConfig` example where we have series of
|
||||
passthrough calculators :
|
||||
|
||||
```proto
|
||||
# This graph named main_pass_throughcals_nosubgraph.pbtxt contains 4
|
||||
|
@ -65,7 +64,7 @@ To modularize a `CalculatorGraphConfig` into sub-modules and assist with re-use
|
|||
of perception solutions, a MediaPipe graph can be defined as a `Subgraph`. The
|
||||
public interface of a subgraph consists of a set of input and output streams
|
||||
similar to a calculator's public interface. The subgraph can then be included in
|
||||
an `CalculatorGraphConfig` as if it were a calculator. When a MediaPipe graph is
|
||||
a `CalculatorGraphConfig` as if it were a calculator. When a MediaPipe graph is
|
||||
loaded from a `CalculatorGraphConfig`, each subgraph node is replaced by the
|
||||
corresponding graph of calculators. As a result, the semantics and performance
|
||||
of the subgraph is identical to the corresponding graph of calculators.
|
||||
|
@ -151,7 +150,7 @@ protobuf specified for a MediaPipe calculator. These "graph options" can be
|
|||
specified where a graph is invoked, and used to populate calculator options and
|
||||
subgraph options within the graph.
|
||||
|
||||
In a CalculatorGraphConfig, graph options can be specified for a subgraph
|
||||
In a `CalculatorGraphConfig`, graph options can be specified for a subgraph
|
||||
exactly like calculator options, as shown below:
|
||||
|
||||
```
|
||||
|
@ -178,7 +177,7 @@ node {
|
|||
}
|
||||
```
|
||||
|
||||
In a CalculatorGraphConfig, graph options can be accepted and used to populate
|
||||
In a `CalculatorGraphConfig`, graph options can be accepted and used to populate
|
||||
calculator options, as shown below:
|
||||
|
||||
```
|
||||
|
@ -188,7 +187,7 @@ graph_options: {
|
|||
|
||||
node: {
|
||||
calculator: "ImageToTensorCalculator"
|
||||
input_stream: "IMAGE:multi_backend_image"
|
||||
input_stream: "IMAGE:image"
|
||||
node_options: {
|
||||
[type.googleapis.com/mediapipe.ImageToTensorCalculatorOptions] {
|
||||
keep_aspect_ratio: true
|
||||
|
@ -247,9 +246,9 @@ NOTE: The current approach is experimental and subject to change. We welcome
|
|||
your feedback.
|
||||
|
||||
Please use the `CalculatorGraphTest.Cycle` unit test in
|
||||
`mediapipe/framework/calculator_graph_test.cc` as sample code. Shown
|
||||
below is the cyclic graph in the test. The `sum` output of the adder is the sum
|
||||
of the integers generated by the integer source calculator.
|
||||
`mediapipe/framework/calculator_graph_test.cc` as sample code. Shown below is
|
||||
the cyclic graph in the test. The `sum` output of the adder is the sum of the
|
||||
integers generated by the integer source calculator.
|
||||
|
||||
![a cyclic graph that adds a stream of integers](https://mediapipe.dev/images/cyclic_integer_sum_graph.svg "A cyclic graph")
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user