Verifique se você tem uma versão de trabalho do MediaPipe Framework. Consulte instruções de instalação.
Para executar o exemplo de
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!
O exemplo
hello world
usa um gráfico MediaPipe simples na FunçãoPrintHelloWorld()
, definida em um .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" } )");
Visualize esse gráfico usando MediaPipe Visualizer colando o CalculatorGraphConfig abaixo no visualizador. Consulte aqui para receber ajuda com o visualizador.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
Este gráfico consiste em 1 fluxo de entrada de gráfico (
in
) e 1 fluxo de saída de gráfico (out
) e doisPassThroughCalculator
s conectados em série.Antes de executar o gráfico, um objeto
OutputStreamPoller
é conectado ao para recuperar posteriormente a saída do gráfico, e um grafo é executado começa comStartRun
.CalculatorGraph graph; MP_RETURN_IF_ERROR(graph.Initialize(config)); MP_ASSIGN_OR_RETURN(OutputStreamPoller poller, graph.AddOutputStreamPoller("out")); MP_RETURN_IF_ERROR(graph.StartRun({}));
O exemplo então cria 10 pacotes (cada pacote contém uma string "Hello Mundo!" com valores de carimbo de data/hora variando de 0, 1, ... 9) usando o A função
MakePacket
adiciona cada pacote ao gráfico usando oin
. fluxo de entrada e, por fim, o fecha para concluir a execução do grafo.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"));
Por meio do objeto
OutputStreamPoller
, o exemplo recupera todas as 10 pacotes do stream de saída, extrai o conteúdo da string de cada pacote e a exibe no registro de saída.mediapipe::Packet packet; while (poller.Next(&packet)) { LOG(INFO) << packet.Get<string>(); }
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-09-05 UTC.