Visualizing MediaPipe Graphs

To help users understand the structure of their calculator graphs and to understand the overall behavior of their machine learning inference pipelines, we have built the MediaPipe Visualizer that is available online.

  • A graph view allows users to see a connected calculator graph as expressed through a graph configuration that is pasted into the graph editor or uploaded. The user can visualize and troubleshoot a graph they have created.

    _images/startup_screen.pngStartup screen

Working within the Editor

Getting Started:

The graph can be modified by adding and editing code in the Editor view.

_images/editor_view.pngEditor UI

  • Pressing the “New” button in the upper right corner will clear any existing code in the Editor window.

    _images/upload_button.pngNew Button

  • Pressing the “Upload” button will prompt the user to select a local PBTXT file, which will everwrite the current code within the editor.

  • Alternatively, code can be pasted directly into the editor window.

  • Errors and informational messages will appear in the Feedback window.

    _images/console_error.pngError Msg

Understanding the Graph

The visualizer graph shows the connections between calculator nodes.

  • Streams exit from the bottom of the calculator producing the stream and enter the top of any calculator receiving the stream. (Notice the use of the key, “input_stream” and “output_stream”).

    _images/stream_ui.pngStream UI

    _images/stream_code.pngStream_code

  • Sidepackets work the same, except that they exit a node on the right and enter on the left. (Notice the use of the key, “input_side_packet” and “output_side_packet”).

    _images/side_packet.pngSidepacket UI

    _images/side_packet_code.pngSidepacket_code

  • There are special nodes that represent inputs and outputs to the graph and can supply either side packets or streams.

    _images/special_nodes.pngSpecial nodes

    _images/special_nodes_code.pngSpecial nodes

Visualizing Subgraphs

The MediaPipe visualizer can display multiple graphs in separate tabs. If a graph has a type field in the top level of the graph’s text proto definition, and that value of graph type is used as a calculator name in another graph, it is considered a subgraph by the visualizer and colored appropriately where it is used. Clicking on a subgraph will navigate to the corresponding tab which holds the subgraph’s definition.

For instance, there are two graphs involved in the hand detection example: the main graph (source pbtxt file) and its associated subgraph (source pbtxt file). To visualize them:

  • In the MediaPipe visualizer, click on the upload graph button and select the 2 pbtxt files to visualize (main graph and its associated subgraph).

    _images/upload_button.pngUpload graph button

    _images/upload_2pbtxt.pngChoose the 2 files

  • There will be 2 additional tabs. The main graph tab is hand_detection_mobile.pbtxt.

    _images/maingraph_visualizer.pnghand_detection_mobile_gpu.pbtxt

  • Clicking on the HandDetection node in purple redirects the view to the hand_detection_gpu.pbtxt tab.

    _images/click_subgraph_handdetection.pngHand detection subgraph