nnstreamer/nnstreamer

:twisted_rightwards_arrows: Neural Network (NN) Streamer, Stream Processing Paradigm for Neural Network Apps/Devices.

NNStreamer – 신경망 기반 미디어 파이프라인

소개

  • 신경망 모을 일반 미디어 필터처럼 취급할 수 있게 해주는 GStreamer 플러그인 모음입니다. 실제로 스트리밍 파이프라인(비디오, 오디오, 센서 데이터 등)을 구축하고 흐름의 어느 곳에나 추론 단계를 삽입할 수 있습니다.

중요한 이유

  • GStreamer는 Linux, Android, Tizen, macOS 등에서 멀티미디어 스트림을 처리하는 사실상의 표준 프레임워크입니다. 해당 생태계에 AI 모델을 연결함으로써 개발자는 다음을 얻을 수 있습니다:
    • 저지연, 온디바이스 추론 – 데이터가 파이프라인을 떠날 필요가 없습니다.
    • 모듈식 구성 – 단일 그래프에서 여러 모델(예: 객체 감지 → 자세 추정)을 결합할 수 있습니다.
    • 하드웨어 가속 실행 – 서브 플러그인은 광범위한 가속기(TensorRT, Edge‑TPU, Movidius, ARM‑NN, Qualcomm QNN 등)를 래핑합니다.

주요 기능(README에 설명된 대로)

  • 주요 프레임워크 지원: TensorFlow, TensorFlow‑Lite, PyTorch, Caffe, ONNX, TVM 등.
  • 여러 입력 소스와 병렬 모델 분기를 허용하는 복합멀티모달 파이프라인을 제공합니다.
  • 여러 플랫폼(Ubuntu, Tizen, Android, Yocto, macOS)용 공식 바이너리 패키지와 C/C#, Java 및 순수 C의 API.
  • 커버리지, 정적 분석 및 일일 릴리스를 포함하여 지속적 통합 테스트를 거친 빌드.
  • 증가하는 예제 애플리케이션 목록(자세 추정, 이미지 분류, 객체 감지, 얼굴 특징점 추적 등) 및 문서화된 엣지 AI 사용 사례.

일반적인 사용 사례 워크플로우

  1. 모델을 선택합니다(예: TensorFlow‑Lite 자세 추정 모델).
  2. nnstreamer 요소를 사용하여 GStreamer 파이프라인을 생성합니다. 예:
    gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
    tensor_filter framework=tflite model=pose.tflite ! \
    tensor_decoder mode=pose ! videoconvert ! autovideosink
    
  3. tensor_filter 요소는 각 프레임에 대해 추론을 실행하고(지원되는 가속기에서 선택적으로 실행), 결과를 다운스트림으로 전달합니다.
  4. 최소한의 코드 변경으로 동일한 파이프라인을 온디바이스(Android, Tizen, 임베디드 Linux)에 배포합니다.

누가 이것을 살펴봐야 할까요

  • 기존 GStreamer 기반 코드를 다시 작성하지 않고 AI를 추가하려는 미디어 엔지니어.
  • 이기종 하드웨어에서 추론을 실행할 수 있는 통합된 방법이 필요한 임베디드/엣지 AI 개발자.
  • 스트리밍 방식으로 다중 모델 파이프라인(예: 감지 → 분류 → 추적)의 프로토타입을 제작하는 연구원.

어디서 시작해야 할까요

  • 사용 중인 OS(Linux, macOS, Android)의 Getting Started 링크를 따르세요.
  • 기성 데모를 위해 nnstreamer-example 리포지토리를 탐색하세요.
  • 더 깊은 설계 세부 정보는 아키텍처 위키를 확인하세요.

위의 모든 정보는 리포지토리의 README에서 직접 가져온 것이며, 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트