MediaPipe Framework'ün çalışan bir sürümüne sahip olduğunuzdan emin olun. Yükleme talimatlarını inceleyin.
hello world
örneğini çalıştırmak için:$ 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
örneği,PrintHelloWorld()
işlevindeCalculatorGraphConfig
protokolünde tanımlanan basit bir MediaPipe grafiğini kullanır.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'ı kullanarak aşağıdaki HesaplayıcıGraphConfig içeriğini görselleştiriciye yapıştırarak bu grafiği görselleştirebilirsiniz. Görselleştirici hakkında yardım almak için buraya bakın.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
Bu grafik, seri olarak bağlanmış 1 grafik giriş akışı (
in
), 1 grafik çıkış akışı (out
) ve 2PassThroughCalculator
içerir.Grafiği çalıştırmadan önce, grafik çıkışını daha sonra almak için çıkış akışına bir
OutputStreamPoller
nesnesi bağlanır veStartRun
ile grafik çalıştırma işlemi başlatılır.CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));
Daha sonra örnek,
MakePacket
işlevini kullanarak 10 paket (her pakette 0, 1, ... 9 arasında Zaman Damgası değerleriyle bir "Hello World!" dizesi içerir) oluşturur, her paketiin
giriş akışı üzerinden grafiğe ekler ve son olarak giriş akışını kapatarak grafiğin çalışmasını tamamlar.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"));
Daha sonra örnek,
OutputStreamPoller
nesnesi aracılığıyla çıkış akışındaki 10 paketin tamamını alır, her bir paketten dize içeriğini alır ve çıkış günlüğüne yazdırır.mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-05-14 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"İhtiyacım olan bilgiler yok"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Çok karmaşık / çok fazla adım var"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Güncel değil"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Çeviri sorunu"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Örnek veya kod sorunu"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Diğer"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Anlaması kolay"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Sorunumu çözdü"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Diğer"
}]