MediaPipe 프레임워크 버전이 작동 중인지 확인합니다. 자세한 내용은 설치 안내를 참조하세요.
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
proto에 정의됩니다.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를 위해 CalculatorGraphConfig 콘텐츠를 비주얼라이저에 삽입합니다. 자세한 내용은 여기에서 비주얼라이저에 관한 도움말을 확인하세요.
input_stream: "in" output_stream: "out" node { calculator: "PassThroughCalculator" input_stream: "in" output_stream: "out1" } node { calculator: "PassThroughCalculator" input_stream: "out1" output_stream: "out" }
이 그래프는 그래프 입력 스트림 1개 (
in
)와 그래프 출력 스트림 1개로 구성됩니다. (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 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-08-20(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":"기타"
}]
{
"lastModified": "최종 업데이트: 2024-08-20(UTC)",
"confidential": False
}