Luxonis OAK

Myriad X VPU 가속을 사용하는 OpenCV AI Kit에 Roboflow Train 모델을 배포하세요.

The Luxonis OAK (OpenCV AI Kit) 임베디드 컴퓨터 비전 시스템 배포에 널리 사용되는 엣지 장치입니다.

OAK 장치는 다운스트림 애플리케이션의 동작을 구동하는 호스트 머신과 페어로 사용됩니다. 영감을 얻고 싶다면 다음을 참조하세요 Luxonis의 사용 사례 그리고 Roboflow의 사례 연구.

참고로: 아직 OAK 장치가 없다면, Roboflow 스토어를 통해 구매할 수 있습니다 10% 할인을 받을 수 있습니다.

지원 작업

호스팅된 API에서 다음 작업 유형이 지원됩니다:

작업 유형
Luxonis OAK 배포에서 지원

객체 감지:

  • Roboflow에서 학습된 YOLOv8 모델(빠른 버전 및 정확한 버전 모두)

  • Roboflow에서 학습된 YOLOv11 모델

분류

인스턴스 세분화

시맨틱 세분화

모델을 Luxonis OAK에 배포하기

지원되는 Luxonis 장치 및 호스트 요구사항

Roboflow Inference Server는 다음 장치를 지원합니다:

  • OAK-D

  • OAK-D-Lite

  • OAK-D-POE

  • OAK-1 (깊이 없음)

설치

다음 패키지를 설치하세요 roboflowoak, depthai, 및 opencv-python 패키지:

pip install roboflowoak
pip install depthai
pip install opencv-python

이제 다음 패키지를 사용하여 Roboflow에서 학습한 맞춤형 모델을 실행할 수 있습니다 roboflowoak 패키지를 사용하여 Roboflow에서 학습한 맞춤형 모델을 실행할 수 있습니다.

추론 실행: 배포

깊이(Depth) 기능이 없는 OAK 장치에 배포하는 경우, 인스턴스화할 때 depth=False 를 설정하세요 (즉, rf 객체를 생성할 때). 깊이 기능이 있는 OAK 모델 이름에는 "D"가 붙습니다. 예: OAK-D 및 OAK-D-Lite.

또한 다음을 주석 처리하세요 max_depth = np.amax(depth) 그리고 cv2.imshow("depth", depth/max_depth)

from roboflowoak import RoboflowOak
import cv2
import time
import numpy as np

if __name__ == '__main__':
    # RoboflowOak 모듈로 객체(rf) 인스턴스화
    rf = RoboflowOak(model="YOUR-MODEL-ID", confidence=0.05, overlap=0.5,
    version="YOUR-MODEL-VERSION-#", api_key="YOUR-PRIVATE_API_KEY", rgb=True,
    depth=True, device=None, blocking=True)
    # 모델을 실행하고 검출 결과와 함께 비디오 출력을 표시합니다
    while True:
        t0 = time.time()
        # rf.detect() 함수가 모델 추론을 실행합니다
        result, frame, raw_frame, depth = rf.detect()
        predictions = result["predictions"]
        #{
        #    predictions:
        #    [ {
        #        x: (중앙),
        #        y:(중앙),
        #        width:
        #        height:
        #        depth: ###->
        #        confidence:
        #        class:
        #        mask: {
        #    ]
        #}
        #frame - 전처리 후 예측이 포함된 프레임
        #raw_frame - OAK에서 받은 원본 프레임
        #depth - raw_frame의 깊이 맵(중앙 카메라에 중심 보정됨)
        
        # timing: 벤치마킹 목적
        t = time.time()-t0
        print("FPS ", 1/t)
        print("PREDICTIONS ", [p.json() for p in predictions])

        # 깊이 계산을 위한 매개변수 설정
        # 깊이 기능이 없는 OAK를 사용하는 경우 다음 2줄을 주석 처리하세요
        max_depth = np.amax(depth)
        cv2.imshow("depth", depth/max_depth)
        # 연속 프레임으로 비디오 피드를 표시합니다
        cv2.imshow("frame", frame)
    
        # OAK 추론 창을 닫거나 추론을 중지하는 방법: CTRL+q 또는 CTRL+c
        if cv2.waitKey(1) == ord('q'):
            break

아래 코드를 입력하세요 (자리표시자 텍스트를 Python 스크립트의 경로로 교체한 후)

# 창을 닫으려면(중단하거나 추론 종료) 키보드에서 CTRL+c를 누르세요
python3 /path/to/[YOUR-PYTHON-FILE].py

Apple Macbook Air (M1)을 호스트 장치로 사용했을 때 추론 속도(밀리초)는 평균 약 15ms, 즉 약 66 FPS였습니다. 참고: OAK와 함께 사용하는 호스트 장치는 FPS에 큰 영향을 미칩니다. 시스템을 설계할 때 이를 고려하세요.

문제 해결

OAK 장치 설정 중 문제가 발생하면 Luxonis의 설치 지침을 확인하고 RGB 예제를 성공적으로 실행할 수 있는지 확인하세요 Luxonis 설치. 또한 도움을 원하면 Roboflow 포럼.

도움을 참조할 수 있습니다

Last updated

Was this helpful?