Ultralytics YOLO용 Luxonis OAK 배포#
Luxonis OAK 카메라는 Luxonis 도구로 변환한 후 온디바이스에서 Ultralytics YOLO 모델을 실행합니다. 이는 수동 배포 워크플로이며, Luxonis는 기본 Ultralytics model.export(format="...") 타겟이 아닙니다.
이 가이드는 RVC2 및 RVC4 장치를 다룹니다. 카메라 플랫폼에 맞게 변환하세요. RVC2 및 RVC4 아티팩트는 상호 호환되지 않습니다. 지원되는 모델 가족군과 태스크는 다양하므로 변환 전에 Luxonis Tools 지원 매트릭스를 확인하세요.
지원되는 YOLO .pt 체크포인트(yolo26n.pt 등) 또는 자체 훈련된 모델로 시작하세요. 변환된 NN Archive는 모델과 런타임 메타데이터를 패키징합니다.
Luxonis Hub를 사용한 클라우드 변환#
- Luxonis Hub에 로그인하고 빠른 변환을 엽니다.
- YOLO를 선택하고 RVC2 또는 RVC4를 선택한 후
.pt체크포인트를 업로드하세요. - 입력 형태와 변환 파라미터를 설정한 후 변환을 제출하세요.
- 완료 후 아래 추론 예시를 위해 변환된 모델의 식별자를 복사하거나 NN Archive를 다운로드하세요.
자동화된 변환 또는 사용자 정의 RVC4 캘리브레이션 데이터를 보려면 HubAI SDK를 사용하세요. Python 3.10+ 환경에서 설치 지침을 따르세요. 상세 변환은 레지스트리 관리 및 사전 정의된 캘리브레이션 데이터셋을 제공합니다.
도구 및 ModelConverter를 사용한 로컬 변환#
Python 3.10+ 및 Docker를 사용하세요. 종속성 제약 조건을 포함하여 업스트림 설정 지침에 따라 Luxonis Tools를 설치하세요. 도구는 Luxonis 파싱을 위해 YOLO 출력을 준비하며, 일반적인 ONNX 내보내기는 이 단계를 대체하지 않습니다.
# Export the checkpoint to an ONNX NN Archive
tools yolo26n.pt --imgsz "640 640" --output-dir output
# Install the target-platform converter
pip install modelconv==0.6.0도구는 output/ 아래의 타임스탬프 디렉토리 내에 yolo26n.tar.xz을 작성합니다. 아래 예시 경로를 해당 파일로 교체하세요. RVC4 INT8 변환의 경우 calibration_images/에 대표적인 배포 이미지를 채우세요. 캘리브레이션 데이터 요구 사항을 참조하세요.
modelconverter convert rvc4 --path output/yolo26n_20260807_104858/yolo26n.tar.xz \
calibration.path calibration_images/RVC2의 경우 FP16 변환에 캘리브레이션 이미지가 필요하지 않으므로 rvc4 대신 rvc2을 사용하세요. 중간 ONNX 아티팩트 대신 추론을 위해 ModelConverter의 출력 디렉토리에서 결과로 나온 컴파일된 NN Archive를 사용하세요. 출력 경로 및 플랫폼별 옵션은 ModelConverter를 참조하세요.
OAK 카메라에서 추론 실행#
호환되는 OAK 카메라를 연결하고 Python 환경에 DepthAI를 설치하세요.
pip install depthai==3.9.0비공개 Hub 모델의 경우 스크립트를 실행하기 전에 DEPTHAI_HUB_API_KEY을 Luxonis Hub API 키로 설정하세요. your-model-identifier를 Hub의 식별자로 교체하거나 로컬 컴파일된 NN Archive 대안을 사용하세요.
import depthai as dai
model = "your-model-identifier"
# Alternatively, use your converted local artifact:
# model = dai.NNArchive("path/to/model.rvc4.tar.xz")
visualizer = dai.RemoteConnection()
with dai.Pipeline() as pipeline:
camera = pipeline.create(dai.node.Camera).build()
detection = pipeline.create(dai.node.DetectionNetwork).build(camera, model)
visualizer.addTopic("rgb", detection.passthrough, group="RGB")
visualizer.addTopic("detections", detection.out, group="RGB")
pipeline.start()
visualizer.registerPipeline(pipeline)
while pipeline.isRunning():
if visualizer.waitKey(1) == ord("q"):
pipeline.stop()http://localhost:8082을 열어 RGB 스트림과 검출 결과를 확인하세요. DetectionNetwork은 호환되는 인스턴스 세분화 및 포즈 모델도 지원합니다. 의미론적 세분화 및 분류를 포함한 다른 태스크의 경우 태스크별 추론 지침을 따르세요.
스테레오 깊이 파이프라인의 경우 공간 검출 예시를 참조하세요. 벤치마킹 가이드를 사용하여 타겟 카메라에서 모델을 측정하세요. 처리량은 모델, 입력 크기, 정밀도 및 파이프라인 구성에 따라 다릅니다.