Ultralytics YOLO27:
Get Started

Ultralytics YOLO26 모델을 위한 Rockchip RKNN 내보내기#

임베디드 디바이스, 특히 Rockchip 프로세서 기반 디바이스에 컴퓨터 비전 모델을 배포할 때는 호환되는 모델 형식이 필수적입니다. Ultralytics YOLO26 모델을 RKNN 형식으로 내보내면 Rockchip 하드웨어에 최적화된 성능과 호환성을 확보할 수 있습니다. 이 가이드에서는 부동 소수점 및 INT8 양자화 내보내기를 포함해 YOLO26 모델을 RKNN 형식으로 변환하는 방법을 안내하여 Rockchip 플랫폼에 효율적으로 배포할 수 있도록 합니다.

Rockchip RKNN export for NPU deployment

참고

이 가이드는 Rockchip RK3588 기반의 Radxa Rock 5B와 Rockchip RK3566 기반의 Radxa Zero 3W에서 테스트되었습니다. RK3576, RK3568, RK3562, RK2118, RV1126B, RV1103, RV1106, RV1103B, RV1106B 등 rknn-toolkit2를 지원하는 다른 Rockchip 기반 디바이스에서도 작동할 것으로 예상됩니다. RV1103 및 RV1106과 같이 INT8만 지원하는 타깃에는 quantize=8이 필요합니다.

Rockchip이란 무엇인가요?#

다재다능하고 전력 효율적인 솔루션을 제공하는 것으로 잘 알려진 Rockchip은 다양한 소비자 가전, 산업용 애플리케이션 및 AI 기술을 구동하는 고급 시스템 온 칩(SoCs)을 설계합니다. ARM 기반 아키텍처, 내장 신경망 처리 장치(NPUs), 고해상도 멀티미디어 지원을 갖춘 Rockchip SoCs는 태블릿, 스마트 TV, IoT 시스템 및 엣지 AI 애플리케이션과 같은 기기에서 최첨단 성능을 구현합니다. Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas, Banana Pi와 같은 기업은 Rockchip SoCs 기반의 다양한 제품을 제공하여 여러 시장에서 영향력과 활용 범위를 더욱 넓히고 있습니다.

RKNN Toolkit#

RKNN Toolkit은 Rockchip이 하드웨어 플랫폼에서 딥러닝 모델을 배포할 수 있도록 제공하는 도구 및 라이브러리 모음입니다. RKNN은 Rockchip Neural Network의 약자로, 이러한 도구에서 사용하는 독점 형식입니다. RKNN 모델은 Rockchip의 NPU(신경망 처리 장치)가 제공하는 하드웨어 가속을 최대한 활용하도록 설계되어 RK3588, RK3566, RV1103, RV1106 및 기타 Rockchip 기반 시스템과 같은 기기에서 AI 작업의 고성능을 보장합니다.

RKNN 모델의 주요 기능#

RKNN 모델은 Rockchip 플랫폼에 배포할 때 다음과 같은 여러 이점을 제공합니다.

  • NPU에 최적화: RKNN 모델은 Rockchip의 NPU에서 실행되도록 특별히 최적화되어 성능과 효율성을 극대화합니다.
  • 낮은 지연 시간: RKNN 형식은 추론 지연 시간을 최소화하며, 이는 엣지 디바이스의 실시간 애플리케이션에 매우 중요합니다.
  • 플랫폼별 맞춤화: RKNN 모델은 특정 Rockchip 플랫폼에 맞게 조정할 수 있어 하드웨어 리소스를 더욱 효과적으로 활용할 수 있습니다.
  • 전력 효율성: 전용 NPU 하드웨어를 활용하는 RKNN 모델은 CPU 또는 GPU 기반 처리보다 전력 소모가 적어 휴대용 기기의 배터리 수명을 연장합니다.

Rockchip 하드웨어에 OS 플래시하기#

Rockchip 기반 기기를 확보한 후 가장 먼저 할 일은 하드웨어가 정상적인 환경으로 부팅될 수 있도록 OS를 플래시하는 것입니다. 이 가이드에서는 테스트한 두 기기인 Radxa Rock 5B와 Radxa Zero 3W의 시작 가이드를 안내합니다.

지원 작업#

RKNN 내보내기는 Ultralytics의 7가지 작업을 모두 지원합니다. 시맨틱 세그멘테이션과 깊이 추정은 해당 헤드를 탑재한 유일한 제품군인 YOLO26에서만 사용할 수 있습니다.

작업YOLOv8YOLO11YOLO26
탐지✅✅✅
세그멘테이션✅✅✅
시맨틱❌❌✅
깊이❌❌✅
분류✅✅✅
포즈✅✅✅
OBB✅✅✅

RKNN으로 내보내기: YOLO26 모델 변환#

Ultralytics YOLO26 모델을 RKNN 형식으로 내보내고 내보낸 모델로 추론을 실행합니다.

참고

Rockchip 기반 기기(ARM64)에서의 내보내기는 지원되지 않으므로, RKNN으로 모델을 내보낼 때는 X86 기반 Linux PC를 사용해야 합니다.

설치#

필수 패키지를 설치하려면 다음을 실행하세요:

설치
# Install the required package for YOLO26
pip install ultralytics

설치 절차에 대한 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO26에 필요한 패키지를 설치하는 중 문제가 발생하면 해결 방법과 팁을 확인할 수 있는 일반적인 문제 가이드를 참조하세요.

사용법#

참고

FP16 내보내기는 모든 작업에서 지원됩니다. INT8 내보내기는 현재 탐지 모델만 지원하며, 향후 다른 작업에 대한 지원이 추가될 예정입니다. 따라서 RV1103 및 RV1106과 같이 INT8만 지원하는 타깃은 탐지 모델만 내보낼 수 있습니다.

RKNN 형식은 내보내기, 예측, 검증 모드를 지원합니다. 추론과 검증은 Rockchip NPU 하드웨어에서 실행됩니다. 모델을 내보낸 다음, 내보낸 모델을 불러와 추론을 실행하거나 정확도를 검증합니다. 기본적으로 RKNN 내보내기는 FP16을 지원하는 Rockchip 타깃에서 부동소수점 빌드 경로(quantize=16)를 사용합니다. 보정 데이터를 사용하여 INT8 양자화 RKNN 모델을 빌드하려면 quantize=8를 사용합니다. RKNN 내보내기는 별도의 FP32 모드를 제공하지 않으며, 기본 FP16 설정은 FP32를 요청하지 않습니다.

내보내기
from ultralytics import YOLO

# YOLO26 모델을 불러옵니다(지원되는 작업 모델로 바꾸세요).
model = YOLO("yolo26n-obb.pt")

# 모델을 RKNN 형식으로 내보냅니다.
model.export(format="rknn", name="rk3588")  # creates 'yolo26n-obb_rknn_model'

# 보정 데이터를 사용하여 INT8 양자화 RKNN 모델을 내보냅니다(탐지 모델만 해당).
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml")  # creates 'yolo26n_rknn_model'
예측
from ultralytics import YOLO

# 내보낸 RKNN 모델을 불러옵니다.
model = YOLO("./yolo26n-obb_rknn_model")

# 추론 실행
results = model("https://ultralytics.com/images/boats.jpg")
검증
from ultralytics import YOLO

# 내보낸 RKNN 모델을 불러옵니다.
model = YOLO("./yolo26n-obb_rknn_model")

# DOTA8 데이터셋에서 정확도를 검증합니다.
metrics = model.val(data="dota8.yaml")

내보내기 인수#

인수유형기본값설명
formatstr'rknn'내보낸 모델의 타깃 형식으로, Rockchip 배포 환경과의 호환성을 정의합니다.
imgszint 또는 tuple640모델 입력에 사용할 이미지 크기입니다. 정사각형 이미지에는 정수를 사용하고, 특정 크기에는 튜플 (height, width)을 사용할 수 있습니다.
batchint1내보내기 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다.
namestr'rk3588'Rockchip 타깃을 지정합니다. rk3588, rk3576, rk3566, rk3568, rk3562, rk2118, rv1126b은 FP16(quantize=16 또는 설정하지 않음) 및 INT8(quantize=8)을 지원합니다. rv1103, rv1106, rv1103b, rv1106b는 INT8만 지원합니다(quantize=8 또는 설정하지 않음).
quantizeint 또는 strNone양자화 정밀도입니다. 설정하지 않거나 16을 지정하면 FP16 지원 타깃용 FP16을 빌드합니다. INT8 전용 타깃에서는 설정하지 않을 경우 INT8이 자동으로 활성화됩니다. 8은 INT8을 빌드하며, 탐지 모델만 지원됩니다. RKNN 내보내기에는 별도의 FP32 모드가 없습니다. 이 옵션은 더 이상 사용되지 않는 half/int8 플래그를 대체합니다.
simplifyboolTrueonnxslim을 사용하여 중간 ONNX 그래프를 간소화합니다.
opsetintNone중간 ONNX 그래프의 ONNX opset 버전을 지정합니다. 설정하지 않으면 기본값은 19이며, 19보다 큰 값은 19로 낮춰집니다.
datastrNoneINT8 보정에 사용하는 데이터셋 YAML입니다. quantize=8에서 생략하면 Ultralytics가 기본 탐지 보정 데이터셋(coco8.yaml)을 선택합니다.
fractionfloat, int 또는 list1.0비율, 이미지 수 또는 [train, val, test] 비율/개수로 지정하는 보정 하위 집합입니다. 항목이 두 개인 목록에서는 test이 전체로 설정되고, 0는 건너뜁니다.
devicestrNone내보내기에 사용할 디바이스를 지정합니다. GPU(device=0) 또는 CPU(device=cpu)입니다.
팁

RKNN으로 내보낼 때는 x86 Linux 시스템을 사용해야 합니다.

내보내기 프로세스에 관한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 참조하세요.

내보낸 YOLO26 RKNN 모델 배포#

Ultralytics YOLO26 모델을 RKNN 형식으로 성공적으로 내보냈다면, 다음 단계는 Rockchip 기반 기기에 모델을 배포하는 것입니다.

설치#

필수 패키지를 설치하려면 다음을 실행하세요:

설치
# Install the required package for YOLO26
pip install ultralytics

설치가 완료되면 위의 사용법 섹션에 나온 대로 Rockchip 기기에서 추론과 검증을 실행합니다. 내보낸 _rknn_model은 YOLO(...)로 바로 불러올 수 있습니다.

참고

RKNN 런타임 버전이 RKNN Toolkit 버전과 일치하지 않아 추론에 실패한다는 로그 메시지가 표시되면 /usr/lib/librknnrt.so을 공식 librknnrt.so 파일로 바꾸세요.

RKNN 내보내기 스크린샷

실제 애플리케이션#

YOLO26 RKNN 모델을 탑재한 Rockchip 기반 기기는 다음과 같은 다양한 애플리케이션에 사용할 수 있습니다.

  • 스마트 감시: 전력 소모가 적은 효율적인 객체 탐지 시스템을 구축하여 보안 모니터링에 활용합니다.
  • 산업 자동화: 임베디드 기기에서 품질 관리와 결함 탐지를 직접 구현합니다.
  • 리테일 분석: 클라우드에 의존하지 않고 고객 행동과 재고를 실시간으로 추적합니다.
  • 스마트 농업: 농업 분야의 컴퓨터 비전을 사용하여 작물 상태를 모니터링하고 해충을 탐지합니다.
  • 자율 로봇: 리소스가 제한된 플랫폼에서 비전 기반 내비게이션과 장애물 탐지를 구현합니다.

벤치마크#

아래 YOLO26 벤치마크는 Ultralytics 팀이 Rockchip RK3588 기반 Radxa Rock 5B에서 rknn 모델 형식을 사용하여 속도와 정확도를 측정한 결과입니다.

성능
모델형식정밀도상태크기(MB)mAP50-95(B)추론 시간(ms/이미지)
YOLO26nrknnFP16✅7.20.47758.5
YOLO26nrknnINT8✅4.10.46341.2
YOLO26srknnFP16✅21.00.56993.8
YOLO26srknnINT8✅12.00.55461.9
YOLO26mrknnFP16✅43.00.608226.3
YOLO26mrknnINT8✅22.00.603122.0
YOLO26lrknnFP16✅53.00.628264.7
YOLO26lrknnINT8✅28.00.617145.3
YOLO26xrknnFP16✅113.00.664655.4
YOLO26xrknnINT8✅58.00.649287.4

ultralytics 8.4.60으로 벤치마크를 수행했습니다.

참고

위 벤치마크의 검증에는 COCO128 데이터셋을 사용했습니다. 추론 시간에는 전처리와 후처리가 포함되지 않습니다.

요약#

이 가이드에서는 Rockchip 플랫폼에 더 효과적으로 배포하기 위해 Ultralytics YOLO26 모델을 RKNN 형식으로 내보내는 방법을 살펴보았습니다. 또한 RKNN Toolkit과 엣지 AI 애플리케이션에 RKNN 모델을 사용할 때의 구체적인 이점도 알아보았습니다.

Ultralytics YOLO26과 Rockchip의 NPU 기술을 결합하면 임베디드 기기에서 고급 컴퓨터 비전 작업을 효율적으로 실행할 수 있습니다. 이 방식은 전력 소모를 최소화하고 높은 성능을 유지하면서 실시간 객체 탐지 및 기타 비전 AI 애플리케이션을 구현합니다.

사용법에 대한 자세한 내용은 RKNN 공식 문서를 참조하세요.

다른 Ultralytics YOLO26 통합 옵션에 대해 알아보려면 통합 가이드 페이지를 방문하세요. 이 페이지에서 유용한 자료와 인사이트를 확인할 수 있습니다.

자주 묻는 질문#

  • Ultralytics Python 패키지의 export() 메서드나 명령줄 인터페이스(CLI)를 사용하면 Ultralytics YOLO 모델을 RKNN 형식으로 쉽게 내보낼 수 있습니다. Rockchip과 같은 ARM64 기기에서는 이 작업을 지원하지 않으므로 내보내기에는 x86 기반 Linux PC를 사용해야 합니다. name 인수를 사용하여 타깃 Rockchip 플랫폼을 지정할 수 있습니다. 예를 들면 rk3588, rk3566 등이 있습니다. 이 과정을 통해 Rockchip 기기에 배포할 수 있도록 최적화된 RKNN 모델이 생성되며, 해당 기기의 신경망 처리 장치(NPU)를 활용해 추론을 가속합니다.

    예제
    from ultralytics import YOLO
    
    # YOLO 모델을 불러옵니다.
    model = YOLO("yolo26n.pt")
    
    # 특정 Rockchip 플랫폼용으로 RKNN 형식으로 내보냅니다.
    model.export(format="rknn", name="rk3588")
  • RKNN 모델은 Rockchip 신경망 처리 장치(NPUs)의 하드웨어 가속 기능을 활용하도록 특별히 설계되었습니다. 이 최적화 덕분에 동일한 하드웨어에서 ONNX 또는 LiteRT와 같은 일반 모델 형식을 실행하는 것보다 추론 속도가 크게 빨라지고 지연 시간도 줄어듭니다. RKNN 모델을 사용하면 기기의 리소스를 더 효율적으로 활용하여 전력 소모를 낮추고 전반적인 성능을 높일 수 있습니다. 이는 특히 엣지 디바이스의 실시간 애플리케이션에서 중요합니다. Ultralytics YOLO 모델을 RKNN으로 변환하면 RK3588, RK3566 등의 Rockchip SoCs 기반 기기에서 최적의 성능을 얻을 수 있습니다.

  • RKNN 모델은 Rockchip 플랫폼과 내장 NPU에 맞게 특별히 최적화되어 있습니다. 소프트웨어 에뮬레이션을 통해 다른 플랫폼에서 RKNN 모델을 실행할 수는 있지만, Rockchip 기기가 제공하는 하드웨어 가속의 이점을 얻을 수는 없습니다. 다른 플랫폼에서 최적의 성능을 내려면 Ultralytics YOLO 모델을 해당 플랫폼에 특화된 형식으로 내보내는 것이 좋습니다. 예를 들어 NVIDIA GPU에는 TensorRT를, Google Coral 기기에는 Edge TPU를 사용할 수 있습니다. Ultralytics는 다양한 하드웨어 가속기와의 호환성을 위해 폭넓은 형식으로 내보내기를 지원합니다.

  • Ultralytics YOLO의 RKNN 형식 내보내기는 RK3588, RK3576, RK3566, RK3568, RK3562, RK2118, RV1126B를 포함한 부동소수점 RKNN 빌드 지원 Rockchip 플랫폼을 지원합니다. 또한 quantize=8을 사용하는 INT8 양자화 RKNN 내보내기도 지원합니다. 이는 RV1103, RV1106, RV1103B, RV1106B와 같은 INT8 전용 타깃에 필요합니다. 이러한 플랫폼은 Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas, Banana Pi 등의 제조업체 제품에 널리 사용되므로, 단일 보드 컴퓨터부터 산업용 시스템까지 다양한 Rockchip 기반 기기에 최적화된 RKNN 모델을 배포할 수 있습니다.

  • RKNN 모델은 Rockchip NPU에 최적화되어 있어 일반적으로 Rockchip 기기에서 ONNX 또는 LiteRT와 같은 다른 형식보다 뛰어난 성능을 보입니다. 예를 들어 Radxa Rock 5B(RK3588) 벤치마크에서 RKNN 형식의 YOLO26n은 FP16에서 이미지당 58.5ms, INT8에서 이미지당 41.2ms의 추론 시간을 기록하여 다른 형식보다 훨씬 빨랐습니다. 이러한 성능상의 이점은 다양한 YOLO26 모델 크기에서도 일관되게 나타나며, 벤치마크 섹션에서 확인할 수 있습니다. 전용 NPU 하드웨어를 활용하는 RKNN 모델은 지연 시간을 줄이고 처리량을 극대화하므로 Rockchip 기반 엣지 디바이스의 실시간 애플리케이션에 적합합니다.

댓글