videoflow/videoflow
Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.
해결하는 문제
Videoflow는 분산 동영상 및 스트림 처리 파이프라인을 구축하기 위한 프레임워크입니다. 개발 시에는 로컬에서, 운영 환경에서는 Kubernetes에서 동일한 코드로 실행할 수 있도록, 한 번만 처리 그래프(DAG)를 정의하면 됩니다.
작동 방식
사용자는 파이프라인을 생산자, 프로세서, 소비자로 구성된 시리즈로 정의합니다. 그래프 내 각 노드는 로컬에서는 별도의 프로세스, Kubernetes에서는 파드로 독립된 워커로 실행되며 NATS JetStream 메시지 브로커를 통해 통신합니다. 각 노드는 출력을 특정 브로커 주제에 게시하고 부모 노드의 주제에 구독하여 입력을 재구성합니다. ML 모델 로딩과 같은 비용이 큰 초기화 작업은 생성자 대신 open() 메서드를 사용합니다.
대상 사용자
스케일링, GPU 스케줄링, 분산 환경에서 복잡한 처리 체인을 실행할 수 있어야 하는 고처리량 동영상 분석 파이프라인을 개발하는 개발자들을 위한 것입니다.
주요 특징
- 이중 실행 모드: 코드 변경 없이 로컬에서 서브프로세스로 또는 Kubernetes에서 컨테이너로 동일한 파이프라인을 실행 가능.
- 분산 아키텍처: 통신에는 NATS JetStream, 페이로드 저장에는 Redis 사용.
- C 수준의 스케일링: 노드 단위 스케일링, GPU 스케줄링, Kubernetes에서의 자동 스케일링 지원.
- 언어 독립성: 컨테이너 이미지로 배포된 컴포넌트라면 어떤 언어로 작성되었는지 상관없이 실행 가능.
- 내장된 비전 컴포넌트: 객체 탐지, 추적, 자세 추정, 세그멘테이션을 위한 즉시 사용 가능한 컴포넌트 포함.
- 강력한 에러 처리: 독성 메시지용 데드레터 큐(DLQ)와 실패한 노드의 자동 재시작 기능 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트