צריך לוודא שיש לכם גרסת עבודה של 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
נעשה שימוש בתרשים MediaPipe פשוט הפונקציהPrintHelloWorld()
, מוגדרת בפרוטו שלCalculatorGraphConfig
.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: מדביקים את הקוד התוכן של Forecast GraphConfig מופיע למטה בתוך כלי הוויזואליזציה. צפייה כאן אפשר לקבל עזרה לגבי כלי הוויזואליזציה.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
התרשים הזה מורכב מסטרימינג אחד של קלט בתרשים (
in
) ומסטרימינג אחד של פלט בתרשים (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>(); }
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-09-05 (שעון UTC).