確認您的 MediaPipe Framework 運作正常。詳情請見 安裝操作說明。
如要執行
hello world
範例:$ git clone https://github.com/google/mediapipe.git $ cd mediapipe $ export GLOG_logtostderr=1 # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' as desktop GPU is not supported currently. $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \ mediapipe/examples/desktop/hello_world:hello_world # It should print 10 rows of Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World! # Hello World!
hello world
範例採用PrintHelloWorld()
函式,在CalculatorGraphConfig
proto 中定義。absl::Status PrintHelloWorld() { // Configures a simple graph, which concatenates 2 PassThroughCalculators. CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"( input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" } )");
但您可以使用 MediaPipe Visualizer 方法是將 將下方的 CalculatorGraphConfig 內容放入視覺化工具中。詳情請見 這裡的說明。
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
這張圖表包含 1 個圖表輸入串流 (
in
) 和 1 個圖形輸出串流 (out
) 和 2 個PassThroughCalculator
已序列連線。執行圖表之前,
OutputStreamPoller
物件會連線至 以便稍後擷取圖形輸出內容 開始使用StartRun
。CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));
此範例會建立 10 個封包 (每個封包都含有「Hello」字串 全世界!」時間戳記值介於 0、1 ... 9) 之間,並使用
MakePacket
函式,透過in
將每個封包加入圖表 最後,關閉輸入串流以完成圖形執行作業。for (int i = 0; i < 10; ++i) { MP_RETURN_IF_ERROR(graph.AddPacketToInputStream("in", MakePacket<std::string>("Hello World!").At(Timestamp(i)))); } MP_RETURN_IF_ERROR(graph.CloseInputStream("in"));
此範例會透過
OutputStreamPoller
物件,擷取所有 10 個 輸出串流中的封包,然後將每個封包的字串內容從每個封包中取得 然後輸出到輸出記錄檔mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-09-05 (世界標準時間)。