새소식

장비 사용 설명서/RKNN

싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN (1) : Overview

  • -

RKNN toolkit 은 model 변환, inference, 그리고 모델 성능 평가를 PC 혹은 RK 칩 시리즈에서 수행할 수 있도록 하는 SDK입니다.

 
오렌지 파이 에는 Rockchip 이라는 회사에서 만든 NPU (RK3588) 가 탑재되어 있는데, RKNN 은 작고 소박한 NPU 에서 큰 딥러닝 모델이 돌아갈 수 있도록 최적화하는 패키지입니다. TensorRT 의 Rockchip 버전이라고 보시면 될 것 같습니다. 
 
RKNN에는 다음과 같은 기능들이 있습니다. 

  1. Model Conversion : Caffe, Tensorflow, ONNX, Darknet 모델들을 RKNN 모델로 변환할 수 있습니다.
  2. Quantization : float 모델을 quantization 모델로 변환할 수 있습니다.
  3. Model Inference 
  4. Performance Evaluation
  5. Memory Evaluation
  6. Model pre-compilation : pre-compilation 을 이용해서 모델을 로드하는 시간을 줄일 수 있습니다. 또한 어떤 모델에 대해서는 모델 사이즈도 줄일 수 있습니다. 다만 pre-compiled RKNN 모델은 x86_64 Ubuntu 기반의 NPU 가 있는 하드웨어 플랫폼에서만 구동될 수 있습니다.
  7. Model Segmentation : 이 함수는 여러 개의 모델들이 동시에 구동될 때 사용될 수 있습니다. 하나의 모델이 여러 개의 조각으로 분리되어 NPU 에서 실행됨으로써 실행 시간을 줄일 수 있습니다.

1. Usage of RKNN-Toolkit

Scenario 1 : RKNN 모델이 아닌 경우
 
이 시나리오에서 RKNN-toolkit 은 PC 에서 동작합니다. 만약 사용하려고 하는 모델이 RKNN 모델이 아니라면 (Caffe, 혹은 텐서플로우 등) 시나리오는 다음과 같이 될 수 있습니다.

  1. RKNN 객체를 생성합니다.
  2. config 인터페이스를 불러서 모델의 파라미터를 pre-process 합니다.
  3. Tensorflow, ONNX, Caffe 등 기존의 모델을 불러옵니다.
  4. RKNN 모델을 빌드합니다.
  5. export_rknn 을 수행해서 RKNN 모델로 내보냅니다. 

 
이때 Hybrid Quantization 등을 사용해서 경량화를 진행할 수 있습니다. Assymetric Quantization, Dynamic Fixed Point Quantization 등 다양한 양자화 방법들을 제공합니다. 
 
Scenario 2. RKNN 모델인 경우
 
RKNN 모델인 경우 그냥 쓰면 됩니다. 

 
 
 
 
변환한 RKNN 모델을 사용하면 오렌지 파이에서도 꽤 괜찮은 성능의 딥러닝 모델을 돌릴 수 있습니다. 오렌지 파이의 가격이 대략 15만원 선인것을 감안하면 나쁘지 않은 경량화 수준이라고 볼 수도 있을 것 같습니다. 
 

Yolo V5 모델 inference

 
 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.