• Feed
  • Explore
  • Ranking
/
/
    RKNN

    [RKNN] rknn-toolkit-lite2

    rknn-toolkit-lite2 간단 예제
    RKNNOrange PiEmbeddedAI
    D
    DevHDL
    2025.05.20
    ·
    6 min read

    Intro

    이전 글에는 RKNPU에서 AI 연산을 위해 rknn-toolkit2를 활용하여 AI 모델을 rknn 형식으로 변환하는 방법에 대해 다뤘다. 그렇다면 RKNPU에서 모델을 연산하려면 어떻게 해야할까?

    그것은 바로 rknn-toolkit-lite2를 이용하는 것이다. rknn-toolkit-lite2는 rknn 형식으로 변환된 모델을 RKNPU에서 연산을 할 수 있도록 하는 라이브러리다.

    이번 글은 rknn-toolkit-lite2를 이용해 rknn 형식의 모델을 추론하여 결과물을 보여주는 간단한 방법에 대해 알아보고자 한다.

    Environment

    기본적으로 rknn-toolkit-lite2는 RKNPU 환경에서 AI 모델의 추론 연산을 할 수 있도록 도와주는 장치이다. 다시말하면 RKNPU 환경에서만 rknn-toolkit-lite2가 동작할 수 있는 것이다. RKNPU는 Rockchip 사의 RK 시리즈 등과 같은 ARM AP에 탑재되므로 OS 환경도 aarch에 국한되어 있다.

    그러므로 rknn-toolkit-lite2를 동작시키기 위한 최소 환경 조건은 아래와 같다.

    구분

    내용

    Python version

    3.7~3.11

    OS

    Debian 10 / 11 (aarch)

    ℹ Python version 관련

    최신 User Guide v2.3.2에는 rknn-toolkit-lite2에서 지원하는 python version이 3.11까지라고 되어있지만, 실제 github에 들어가면 python 3.12 관련 whl도 존재한다. (🔗)

    Installation

    rknn-toolkit-lite2 설치 방법은 아래와 같다.

    python과 pip 설치가 되어있지 않다면 다음 명령어를 통해 설치한다.

    # install python3, pip3
    sudo apt-get update
    sudo apt-get install -y python3 python3-dev python3-pip gcc
    
    # install dependent modules
    sudo apt-get install -y python3-opencv python-numpy

    python과 pip 설치가 완료됐다면, rknn-toolkit-lite2 관련 whl을 다운받아 pip로 라이브러리를 설치한다. whl 파일은 해당 링크 (🔗)에서 python 버전에 맞는 환경을 다운받고, 아래의 명령어를 입력해 설치를 완료한다.

    # basic
    pip install rknn_toolkit_lite2-{rknn version}-cp{python version}-cp{python version}-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
    
    # example) python 3.10 기준
    pip install rknn_toolkit_lite2-2.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

    ℹ whl 파일의 python 버전 구분 방법

    whl 파일명에서 cp 다음에 적힌 숫자를 보면 알 수 있다.
    cp310 : python 3.10 전용 / cp37 : python 3.7 전용

    Basic flow chart

    6223

    위 이미지는 RKNPU User Guide V2.3.2 중 3.4.3절에 존재하는 이미지 이다. rknn-toolkit-lite2를 이용해 모델 추론을 위해서는 이미지의 순서대로 행동해야 한다.

    1. RKNNLite 객체 초기화 (RKNNLite init)

    2. rknn 모델 불러오기 (load_rknn)

    3. RKNNLite 동작 설정 (init runtime)

    4. 모델 추론 (inference)

    5. release

    Python Code

    위의 흐름도를 토대로 간단하게 예제 코드를 작성해 보았다.

    import RKNNLite
    
    # RKNN Lite init
    rknn_lite = RKNNLite()
    
    # Load rknn model
    ret = rknn_lite.load_rknn('path.rknn')
    if ret != 0:
      print('Load rknn failed') 
      exit(ret)
    
    # Init runtime environment
    ret = rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_AUTO)
    if ret != 0:
      print('Init runtime environment failed') 
      exit(ret)
    
    # Inference
    img = [...] # example input
    outputs = rknn_lite.inference(inputs=[img])
    
    # RKNN Release
    rknn_lite.release()

    회고

    rknn-toolkit-lite2의 간단한 사용 방법에 대해 알아보았다.
    rknn 관련 코드들이 쉽게 사용할 수 있게도록 되어있지만,
    누군가 rknn을 시도할 때, 하나라도 도움이 됐으면 좋겠다는 마음으로 글을 적어보았다.

    나 역시 rknn을 다시 쓸 일 있으면 이 글을 다시 보면서 시도하지 않을까... 생각하며 글을 마친다.

    참고사이트

    • 직접 실습해본 rknn 추론 코드

      Road-Surface-Detection-System/Experimental at main · DevHDL/Road-Surface-Detection-System
      [충청ICT이노베이션-Advanced ML] AI기반 도로 노면 상태 판단 시스템. Contribute to DevHDL/Road-Surface-Detection-System development by creating an account on GitHub.
      https://github.com/DevHDL/Road-Surface-Detection-System/tree/main/Experimental
      Road-Surface-Detection-System/Experimental at main · DevHDL/Road-Surface-Detection-System
    • aircokchip/rknn-toolkit2

      GitHub - airockchip/rknn-toolkit2
      Contribute to airockchip/rknn-toolkit2 development by creating an account on GitHub.
      https://github.com/airockchip/rknn-toolkit2
      GitHub - airockchip/rknn-toolkit2
    • rknn-toolkit2 User Guide EN v2.3.2

      rknn-toolkit2/doc/02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.3.2_EN.pdf at master · airockchip/rknn-toolkit2
      Contribute to airockchip/rknn-toolkit2 development by creating an account on GitHub.
      https://github.com/airockchip/rknn-toolkit2/blob/master/doc/02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.3.2_EN.pdf
      rknn-toolkit2/doc/02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.3.2_EN.pdf at master · airockchip/rknn-toolkit2
    • rknn model zoo (rknn example 모음집)

      GitHub - airockchip/rknn_model_zoo
      Contribute to airockchip/rknn_model_zoo development by creating an account on GitHub.
      https://github.com/airockchip/rknn_model_zoo
      GitHub - airockchip/rknn_model_zoo






    - 컬렉션 아티클