צריך לוודא שבמכשיר מותקנת גרסה תקינה של 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 על ידי הדבקת התוכן של InvoiceGraphConfig שבהמשך בכלי הוויזואליזציה. כאן אפשר לקבל עזרה לגבי כלי הוויזואליזציה.
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 חבילות (כל חבילה מכילה את המחרוזת "שלום עולם!" עם ערכי חותמת זמן שנעים בין 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-05-14 (שעון UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"חסרים לי מידע או פרטים"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"התוכן מורכב מדי או עם יותר מדי שלבים"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"התוכן לא עדכני"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"בעיה בתרגום"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"בעיה בדוגמאות/בקוד"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"סיבה אחרת"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"התוכן קל להבנה"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"התוכן עזר לי לפתור בעיה"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"סיבה אחרת"
}]
{
"last_modified": "עדכון אחרון: 2024-05-14 (שעון UTC).",
"state": ""
}