Pastikan Anda memiliki versi Framework MediaPipe yang berfungsi. Lihat petunjuk penginstalan.
Untuk menjalankan contoh
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!
Contoh
hello world
menggunakan grafik MediaPipe sederhana di bagian FungsiPrintHelloWorld()
, yang ditentukan dalam protoCalculatorGraphConfig
.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" } )");
Anda dapat memvisualisasikan grafik ini menggunakan MediaPipe Visualizer dengan menempelkan Konten CalculatorGraphConfig di bawah ke visualizer. Lihat di sini untuk mendapatkan bantuan terkait visualizer.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
Grafik ini terdiri dari 1 aliran input grafik (
in
) dan 1 aliran output grafik (out
), dan 2PassThroughCalculator
yang terhubung secara berurutan.Sebelum menjalankan grafik, objek
OutputStreamPoller
terhubung ke aliran output guna mengambil output grafik nanti, dan grafik menjalankan dimulai denganStartRun
.CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));
Contoh tersebut kemudian membuat 10 paket (setiap paket berisi {i>string<i} “Hello” Dunia!" dengan nilai Stempel waktu mulai dari 0, 1, ... 9) menggunakan Fungsi
MakePacket
, menambahkan setiap paket ke dalam grafik melaluiin
aliran input, dan terakhir menutup aliran data input untuk menyelesaikan proses menjalankan grafik.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"));
Melalui objek
OutputStreamPoller
, contoh tersebut kemudian mengambil ke-10 paket dari {i>output stream<i}, mendapatkan konten string dari setiap paket dan mencetaknya ke log output.mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-09-05 UTC.