프로젝트 소개

MediaPipe Unity 플러그인 이 플러그인은 Unity(2022.3 이상)에서 MediaPipe(0.10.22)를 사용하기 위한 네이티브 플러그인입니다. MediaPipe C++ API를 C#으로 하나씩 이식하여 Unity에서 호출할 수 있도록 하는 것이 목표입니다. 이 방식은 루프에서 여러 API를 호출할 때 성능을 희생할 수 있지만, 유연성을 제공합니다. 주요 기능 - C#으로 MediaPipe 코드 작성 - Unity에서 MediaPipe 공식 솔루션 실행 - Unity에서 커스텀 Calculator 및 CalculatorGraph 실행 (일부 입력/출력 유형의 경우 C++ 필요) Hello World 예제 C# 코드 예제: Mediapipe 및 UnityEngine 네임스페이스를 사용합니다. HelloWorld라는 MonoBehaviour 클래스를 정의합니다. _ConfigText 상수에 PassThroughCalculator를 사용하는 그래프 설정 문자열을 포함합니다. Start() 메서드에서 CalculatorGraph와 OutputStreamPoller를 생성하고 그래프를 실행합니다. 10개의 "Hello World!" 문자열 패킷을 입력 스트림에 추가한 후 입력 스트림을 닫습니다. 폴러를 통해 출력을 받아 로깅하고, 그래프가 완료될 때까지 대기합니다. 보다 자세한 사용법은 API 개요나 튜토리얼을 참조하세요. 설치 릴리스 페이지에서 사전 빌드된 패키지를 다운로드합니다: - MediaPipeUnityPlugin-all.zip: 필수 라이브러리를 포함한 전체 소스 코드 - MediaPipeUnityPlugin-all-stripped.zip: 위에서와 같으나 심볼이 제거됨 - com.github.homuler.mediapipe-*.tgz: Unity Package Manager용 타르볼 패키지 - MediaPipeUnityPlugin.*.unitypackage: Unity 패키지 파일 모바일 샘플 씬의 경우, 필수 모델과 설정을 포함하고 있으므로 MediaPipeUnityPlugin-all.zip 또는 -stripped.zip 사용을 권장합니다. 플러그인 자체 빌드 대부분의 경우 플러그인을 직접 빌드할 필요가 없습니다. 사전 빌드된 패키지가 작동하지 않을 경우에만 빌드 가이드를 따르세요. 저장소에는 필수 라이브러리나 모델이 포함되어 있지 않으므로 클로닝 후 빌드가 필요합니다. 패키지 빌드 - Unity 패키지: 프로젝트를 열고 Tools > Export Unitypackage를 클릭합니다. - 타르볼: npm을 설치한 후 Packages/com.github.homuler.mediapipe에서 npm pack을 실행합니다. 지원 플랫폼 macOS와 Windows에서는 GPU 모드가 지원되지 않습니다. 지원되는 플랫폼은 Linux(x86_64), macOS(x86_64/ARM64), Windows(x86_64), Android, iOS, WebGL(제한 사항 있음)입니다. 지원 솔루션 이 플러그인은 다음 MediaPipe Tasks에 대한 C# API를 구현합니다: - 객체 감지 - 이미지 분할 - 손 랜드마크 감지 - 제스처 인식 - 얼굴 감지 - 얼굴 랜드마크 감지 - 자세 랜드마크 감지 - 오디오 분류 MediaPipe Framework를 통한 레거시 솔루션도 사용할 수 있지만, 지원이 종료되었습니다. 사용 방법 .unitypackage 또는 .tar.gz를 사용하여 플러그인을 프로젝트에 가져옵니다. Android 참고 사항 Android 빌드의 경우, APK에 libstdc++_shared.so가 포함되어 있는지 확인해야 합니다. 그렇지 않으면 DllNotFoundException이 발생します. Assets/Plugins/Android에 파일을 배치하거나 빌드 시점에 포함하도록 Gradle 코드를 추가하세요. 샘플 앱 Assets/MediaPipeUnity/Samples/Scenes의 샘플 씬을 확인하세요. 인스펙터에서 올바른 추론 모드(CPU 또는 GPU)와 에셋 로더 유형(에디터의 경우 Local, 기기의 경우 StreamingAssets)을 선택합니다. 기술적 제한 사항 - 이 플러그인은 네이티브 라이브러리를 사용하며, 버그로 인해 UnityEditor 또는 앱이 충돌할 수 있습니다. Linux/macOS에서는 충돌을 방지하기 위해 SIGABRT를 처리하지만, Windows에서는 이것이 불가능합니다. - GPU 추론의 경우 OpenGL Core API가 지원되지 않습니다. PC 스탠드얼론 빌드에서는 Vulkan을 사용하세요. 라이선스 MIT 라이선스를 따르며, 일부 파일은 다른 라이선스(MediaPipe Apache 2.0, emscripten MIT, FontAwesome)를 따릅니다. 자세한 내용은 Third Party Notices를 참조하세요.