Sigurohuni që keni një version funksional të MediaPipe Framework. Shihni udhëzimet e instalimit .
Për të drejtuar shembullin
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!
Shembulli
hello world
përdor një grafik të thjeshtë MediaPipe në funksioninPrintHelloWorld()
, të përcaktuar në protokollinCalculatorGraphConfig
.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" } )");
Ju mund ta vizualizoni këtë grafik duke përdorur MediaPipe Visualizer duke ngjitur përmbajtjen CalculatorGraphConfig më poshtë në vizualizues. Shihni këtu për ndihmë në vizualizuesin.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
Ky grafik përbëhet nga 1 rrymë hyrëse grafiku (
in
) dhe 1 rrjedhë dalëse grafiku (out
) dhe 2PassThroughCalculator
të lidhur në mënyrë serike.Përpara ekzekutimit të grafikut, një objekt
OutputStreamPoller
lidhet me rrymën dalëse në mënyrë që të marrë më vonë daljen e grafikut dhe fillon ekzekutimi i grafikut meStartRun
.CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));
Më pas, shembulli krijon 10 pako (çdo paketë përmban një varg "Hello World!" me vlera të vulës kohore që variojnë nga 0, 1, ... 9) duke përdorur funksionin
MakePacket
, shton secilën pako në grafik përmes rrjedhësin
dhe në fund mbyll rrjedhën hyrëse për të përfunduar ekzekutimin e grafikut.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"));
Nëpërmjet objektit
OutputStreamPoller
shembulli më pas merr të gjitha 10 paketat nga rrjedha e daljes, merr përmbajtjen e vargut nga çdo paketë dhe e printon atë në regjistrin e daljes.mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
Përveçse siç përcaktohet ndryshe, përmbajtja e kësaj faqeje është e licencuar sipas licencës së atribuimit 4.0 të Creative Commons dhe kampionët e kodit janë licencuar sipas licencës së Apache 2.0. Për detaje, shiko Politikat e sajtit të Google Developers. Java është një markë tregtare e regjistruar e Oracle dhe/ose filialeve të tij.
Përditësimi i fundit: 2025-07-25 UTC.