YOLO Vision 2026:

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

임베디드 기기, 특히 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 기술을 구동하는 고급 SoC(System-on-Chip)를 설계합니다. ARM 기반 아키텍처, 내장 NPU(Neural Processing Unit), 고해상도 멀티미디어 지원을 갖춘 Rockchip SoC는 태블릿, 스마트 TV, IoT 시스템, 엣지 AI 애플리케이션 등의 기기에서 최첨단 성능을 구현합니다. Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas, Banana Pi 등의 기업은 Rockchip SoC 기반의 다양한 제품을 제공하며 다양한 시장에서 그 영향력과 범위를 더욱 넓혀가고 있습니다.

RKNN 툴킷#

RKNN Toolkit은 사용자의 하드웨어 플랫폼에 딥러닝 모델을 쉽게 배포할 수 있도록 Rockchip에서 제공하는 도구 및 라이브러리 모음입니다. RKNN(Rockchip Neural Network)은 이러한 도구에서 사용하는 독자적인 포맷입니다. RKNN 모델은 Rockchip의 NPU(Neural Processing Unit)가 제공하는 하드웨어 가속을 최대한 활용하도록 설계되어 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 export supports all seven Ultralytics tasks. Semantic segmentation and depth estimation are available only with YOLO26, the only family that ships those heads.

작업YOLOv8YOLO11YOLO26
Detect
세그먼트
시맨틱
깊이
분류
Pose
OBB

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

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

참고

Rockchip 기반 장치(ARM64)에서의 내보내기는 지원되지 않으므로 반드시 X86 기반 Linux PC를 사용하여 모델을 RKNN으로 내보내십시오.

설치#

필수 패키지를 설치하려면 다음을 실행하십시오:

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

설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics Installation guide를 확인하세요. YOLO26에 필요한 패키지를 설치하는 동안 문제가 발생하면 Common Issues guide에서 해결 방법과 팁을 참고하세요.

사용법#

참고

FP16 내보내기는 모든 태스크에서 지원됩니다. INT8 내보내기는 현재 감지 모델에서만 지원되며, 향후 더 많은 태스크가 지원될 예정입니다.

RKNN 포맷은 Export, Predict, Validate 모드를 지원합니다. 추론과 검증은 Rockchip NPU 하드웨어에서 실행됩니다. 모델을 내보낸 후 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증할 수 있습니다. 기본적으로 RKNN 내보내기는 FP16을 지원하는 Rockchip 타겟을 위해 부동소수점 빌드 경로(quantize=16)를 사용합니다. 캘리브레이션 데이터가 포함된 INT8 양자화 RKNN 모델을 빌드하려면 quantize=8를 사용하세요. RKNN 내보내기는 별도의 FP32 모드를 제공하지 않으며, FP16 기본값은 FP32를 요청하지 않습니다.

내보내기(Export)
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
model.export(format="rknn", name="rk3588", quantize=8, data="dota8.yaml")
추론(Predict)
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")

내보내기 인수#

인수유형기본값설명
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 캘리브레이션에 사용되는 Dataset YAML입니다. 분류의 경우 대신 데이터셋 디렉터리 또는 내장 데이터셋 이름을 사용합니다. quantize=8 항목에서 생략할 경우, Ultralytics는 모델 작업에 적합한 기본 캘리브레이션 데이터셋을 선택합니다.
fractionfloat, int, 또는 list1.0비율, 이미지 수 또는 [train, val] 비율/수를 나타내는 캘리브레이션 서브셋입니다. 리스트는 train 또는 val를 제한하는 반면, test은 전체 상태로 유지됩니다.
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

설치 완료 후, 위의 Usage 섹션에 표시된 것과 정확히 동일한 방식으로 Rockchip 기기에서 추론 및 검증을 실행하세요. 내보낸 _rknn_modelYOLO(...)를 사용하여 직접 로드됩니다.

참고

RKNN 런타임 버전이 RKNN Toolkit 버전과 일치하지 않는다는 로그 메시지가 표시되고 추론이 실패하는 경우, /usr/lib/librknnrt.so을 공식 librknnrt.so 파일로 교체해 주세요.

RKNN export screenshot

실제 활용 사례#

YOLO26 RKNN 모델을 탑재한 Rockchip 기반 장치는 다양한 애플리케이션에 활용할 수 있습니다:

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

벤치마크#

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

성능
모델형식정밀도상태크기(MB)mAP50-95(B)추론 시간(ms/im)
YOLO26nrknnFP167.20.47758.5
YOLO26nrknnINT84.10.46341.2
YOLO26srknnFP1621.00.56993.8
YOLO26srknnINT812.00.55461.9
YOLO26mrknnFP1643.00.608226.3
YOLO26mrknnINT822.00.603122.0
YOLO26lrknnFP1653.00.628264.7
YOLO26lrknnINT828.00.617145.3
YOLO26xrknnFP16113.00.664655.4
YOLO26xrknnINT858.00.649287.4

ultralytics 8.4.60(으)로 벤치마크 수행됨

참고

위 벤치마크 검증은 COCO128 데이터셋을 사용하여 수행되었습니다. 추론 시간은 전처리/후처리를 포함하지 않습니다.

요약#

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

Ultralytics YOLO26과 Rockchip의 NPU 기술 조합은 임베디드 기기에서 고급 컴퓨터 비전 태스크를 실행하기 위한 효율적인 솔루션을 제공합니다. 이 접근 방식을 통해 최소한의 전력 소비와 고성능으로 실시간 객체 감지 및 기타 비전 AI 애플리케이션을 구현할 수 있습니다.

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

또한 다른 Ultralytics YOLO26 통합에 대해 자세히 알아보려면 통합 가이드 페이지를 방문하세요. 유용한 리소스와 인사이트를 많이 찾으실 수 있습니다.

FAQ#

  • Ultralytics Python 패키지의 export() 메서드를 사용하거나 명령 줄 인터페이스(CLI)를 통해 Ultralytics YOLO 모델을 RKNN 포맷으로 손쉽게 내보낼 수 있습니다. Rockchip과 같은 ARM64 기기는 이 작업을 지원하지 않으므로, 내보내기 프로세스에는 x86 기반 Linux PC를 사용하고 있는지 확인하세요. name 인수를 사용하여 rk3588, rk3566 또는 기타 대상 Rockchip 플랫폼을 지정할 수 있습니다. 이 프로세스는 뉴럴 처리 장치(NPU)를 활용한 가속 추론을 통해 Rockchip 기기에 즉시 배포할 수 있는 최적화된 RKNN 모델을 생성합니다.

    예시
    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의 NPU(Neural Processing Units) 하드웨어 가속 기능을 활용하도록 특별히 설계되었습니다. 이러한 최적화는 동일한 하드웨어에서 ONNX나 LiteRT와 같은 일반적인 모델 형식을 실행하는 것보다 훨씬 더 빠른 추론 속도와 감소된 지연 시간을 제공합니다. RKNN 모델을 사용하면 장치 리소스를 더욱 효율적으로 사용하여 전력 소비를 낮추고 전반적인 성능을 향상시킬 수 있으며, 이는 엣지 장치의 실시간 애플리케이션에서 특히 중요합니다. Ultralytics YOLO 모델을 RKNN으로 변환하면 RK3588, RK3566 등과 같은 Rockchip SoC 기반 장치에서 최적의 성능을 달성할 수 있습니다.

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

  • RKNN 포맷으로의 Ultralytics YOLO 내보내기는 RK3588, RK3576, RK3566, RK3568, RK3562, RK2118, RV1126B를 포함하여 부동소수점 RKNN 빌드를 지원하는 Rockchip 플랫폼을 지원합니다. 또한 RV1103, RV1106, RV1103B, RV1106B와 같이 INT8 전용 타겟에 필요한 quantize=8을 사용한 INT8 양자화 RKNN 내보내기도 지원합니다. 이러한 플랫폼은 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.5 ms/image, INT8에서 41.2 ms/image의 추론 시간을 기록하여 다른 포맷보다 현저히 빠른 속도를 보여줍니다. 이러한 성능 우위는 벤치마크 섹션에서 볼 수 있듯이 다양한 YOLO26 모델 크기 전반에 걸쳐 일관되게 나타납니다. RKNN 모델은 전용 NPU 하드웨어를 활용하여 지연 시간을 최소화하고 처리량을 극대화하므로, Rockchip 기반 엣지 디바이스의 실시간 애플리케이션에 이상적입니다.

댓글