Ultralytics YOLO26 모델용 Rockchip RKNN 내보내기#
임베디드 장치, 특히 Rockchip 프로세서로 구동되는 장치에 컴퓨터 비전 모델을 배포할 때는 호환 가능한 모델 형식이 필수적입니다. Ultralytics YOLO26 모델을 RKNN 형식으로 내보내면 Rockchip 하드웨어에 최적화된 성능과 호환성을 확보할 수 있습니다. 이 가이드에서는 부동 소수점 및 INT8 양자화 내보내기를 포함하여 YOLO26 모델을 RKNN 형식으로 변환하고 Rockchip 플랫폼에 효율적으로 배포하는 방법을 설명합니다.
이 가이드는 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 기반의 다양한 제품을 제공하여 여러 시장에서 Rockchip의 영향력과 도달 범위를 더욱 확대하고 있습니다.
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 내보내기는 모든 7가지 Ultralytics 작업을 지원합니다. 의미론적 세그멘테이션과 깊이 추정은 해당 헤드를 제공하는 유일한 제품군인 YOLO26에서만 사용할 수 있습니다.
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
# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")
# Export the model to RKNN format
model.export(format="rknn", name="rk3588") # creates 'yolo26n-obb_rknn_model'
# Export an INT8-quantized RKNN model with calibration data (detection models only)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml") # creates 'yolo26n_rknn_model'from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Run inference
results = model("https://ultralytics.com/images/boats.jpg")from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Validate accuracy on the DOTA8 dataset
metrics = model.val(data="dota8.yaml")내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'rknn' | 내보낸 모델의 대상 형식으로, Rockchip 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 사용할 이미지 크기입니다. 정사각형 이미지에는 정수를 사용하고, 특정 크기에는 (height, width) tuple을 사용할 수 있습니다. |
batch | int | 1 | 내보낼 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
name | str | 'rk3588' | Rockchip 대상을 지정합니다. rk3588, rk3576, rk3566, rk3568, rk3562, rk2118 및 rv1126b은 FP16(quantize=16 또는 미설정)과 INT8(quantize=8)을 지원하며, rv1103, rv1106, rv1103b 및 rv1106b는 INT8 전용입니다(quantize=8 또는 미설정). |
quantize | int 또는 str | None | 양자화 정밀도: 설정되지 않았거나 16은 FP16 지원 타겟에 대해 FP16을 빌드하며, 설정되지 않은 경우 INT8 전용 타겟에 대해 INT8이 자동으로 활성화됩니다. 8은 감지 모델에서만 지원되는 INT8을 빌드합니다. RKNN 내보내기에는 별도의 FP32 모드가 없습니다. 이는 지원이 중단된 half/int8 플래그를 대체합니다. |
simplify | bool | True | onnxslim을 사용하여 중간 ONNX graph를 단순화합니다. |
opset | int | None | 중간 ONNX 그래프의 ONNX opset 버전을 지정합니다. 설정하지 않으면 기본값은 19이며, 19보다 큰 값은 19로 낮춰집니다. |
data | str | None | INT8 캘리브레이션에 사용되는 데이터셋 YAML입니다. quantize=8과 함께 생략할 경우, Ultralytics는 기본 감지 캘리브레이션 데이터셋(coco8.yaml)을 선택합니다. |
fraction | float, int 또는 list | 1.0 | Calibration subset은 비율, 이미지 수 또는 [train, val, test] 비율/개수로 지정합니다. 두 항목으로 구성된 목록에서는 test을 전체로 유지하고 0를 건너뜁니다. |
device | str | None | 내보내기에 사용할 장치를 지정합니다: 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 runtime 버전이 RKNN Toolkit 버전과 일치하지 않아 추론에 실패한다는 로그 메시지가 표시되면 /usr/lib/librknnrt.so을 공식 librknnrt.so 파일로 교체합니다.

실제 애플리케이션#
YOLO26 RKNN 모델을 탑재한 Rockchip 기반 장치는 다음과 같은 다양한 애플리케이션에 사용할 수 있습니다.
- 스마트 감시: 낮은 전력 소비로 보안 모니터링을 위한 효율적인 객체 detection 시스템을 배포합니다.
- 산업 자동화: 임베디드 장치에서 직접 품질 관리 및 결함 detection을 구현합니다.
- 리테일 분석: 클라우드에 의존하지 않고 실시간으로 고객 행동과 재고 관리를 추적합니다.
- 스마트 농업: 농업 분야의 컴퓨터 비전을 사용하여 작물 상태를 모니터링하고 해충을 detection합니다.
- 자율 로보틱스: 리소스가 제한된 플랫폼에서 비전 기반 내비게이션과 장애물 detection을 지원합니다.
벤치마크#
아래 YOLO26 벤치마크는 Ultralytics 팀이 Rockchip RK3588 기반의 Radxa Rock 5B에서 rknn 모델 형식을 사용하여 속도와 정확도를 측정한 결과입니다.
| 모델 | 형식 | Precision | 상태 | 크기(MB) | mAP50-95(B) | 추론 시간 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | rknn | FP16 | ✅ | 7.2 | 0.477 | 58.5 |
| YOLO26n | rknn | INT8 | ✅ | 4.1 | 0.463 | 41.2 |
| YOLO26s | rknn | FP16 | ✅ | 21.0 | 0.569 | 93.8 |
| YOLO26s | rknn | INT8 | ✅ | 12.0 | 0.554 | 61.9 |
| YOLO26m | rknn | FP16 | ✅ | 43.0 | 0.608 | 226.3 |
| YOLO26m | rknn | INT8 | ✅ | 22.0 | 0.603 | 122.0 |
| YOLO26l | rknn | FP16 | ✅ | 53.0 | 0.628 | 264.7 |
| YOLO26l | rknn | INT8 | ✅ | 28.0 | 0.617 | 145.3 |
| YOLO26x | rknn | FP16 | ✅ | 113.0 | 0.664 | 655.4 |
| YOLO26x | rknn | INT8 | ✅ | 58.0 | 0.649 | 287.4 |
ultralytics 8.4.60으로 벤치마크 수행
위 벤치마크 검증은 COCO128 데이터셋을 사용하여 진행되었습니다. 추론 시간에는 전처리 및 후처리 시간이 포함되지 않습니다.
요약#
이 가이드에서는 Ultralytics YOLO26 모델을 RKNN 형식으로 내보내 Rockchip 플랫폼에서의 배포를 향상하는 방법을 알아보았습니다. 또한 RKNN Toolkit과 엣지 AI 애플리케이션에서 RKNN 모델을 사용할 때의 구체적인 이점도 살펴보았습니다.
Ultralytics YOLO26과 Rockchip의 NPU 기술을 결합하면 임베디드 장치에서 고급 컴퓨터 비전 작업을 실행할 수 있는 효율적인 솔루션을 제공합니다. 이 접근 방식은 최소한의 전력 소비와 높은 성능으로 실시간 객체 detection 및 기타 비전 AI 애플리케이션을 구현합니다.
사용법에 대한 자세한 내용은 RKNN 공식 문서를 참조하세요.
또한 다른 Ultralytics YOLO26 통합에 대해 자세히 알아보려면 통합 가이드 페이지를 방문하십시오. 이곳에서 유용한 리소스와 정보를 확인할 수 있습니다.
FAQ#
Ultralytics Python 패키지의
export()메서드 또는 명령줄 인터페이스(CLI)를 사용하여 Ultralytics YOLO 모델을 RKNN 형식으로 쉽게 내보낼 수 있습니다. Rockchip과 같은 ARM64 장치에서는 이 작업이 지원되지 않으므로 내보내기 과정에서는 x86 기반 Linux PC를 사용해야 합니다.name인수를 사용하여 대상 Rockchip 플랫폼을 지정할 수 있으며, 예를 들어rk3588,rk3566등을 지정할 수 있습니다. 이 과정에서 Rockchip 장치에 배포할 수 있는 최적화된 RKNN 모델이 생성되며, 장치의 신경망 처리 장치(NPU)를 활용하여 추론을 가속합니다.예시from ultralytics import YOLO # Load your YOLO model model = YOLO("yolo26n.pt") # Export to RKNN format for a specific Rockchip platform 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 기반 엣지 장치의 실시간 애플리케이션에 이상적입니다.