μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

Ultralytics YOLO11 λͺ¨λΈμš© RKNN 내보내기

μž„λ² λ””λ“œ λ””λ°”μ΄μŠ€, 특히 Rockchip ν”„λ‘œμ„Έμ„œ 기반 λ””λ°”μ΄μŠ€μ— 컴퓨터 λΉ„μ „ λͺ¨λΈμ„ 배포할 λ•ŒλŠ” ν˜Έν™˜ κ°€λŠ₯ν•œ λͺ¨λΈ 포맷이 ν•„μˆ˜μ μž…λ‹ˆλ‹€. 내보내기 Ultralytics YOLO11 λͺ¨λΈμ„ RKNN ν˜•μ‹μœΌλ‘œ 내보내면 μ΅œμ ν™”λœ μ„±λŠ₯κ³Ό Rockchip ν•˜λ“œμ›¨μ–΄μ™€μ˜ ν˜Έν™˜μ„±μ„ 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 κ°€μ΄λ“œμ—μ„œλŠ” YOLO11 λͺ¨λΈμ„ RKNN ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 방법을 μ•ˆλ‚΄ν•˜μ—¬ Rockchip ν”Œλž«νΌμ— 효율적으둜 배포할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

μ°Έκ³ 

이 κ°€μ΄λ“œλŠ” Rockchip RK3588을 기반으둜 ν•˜λŠ” Radxa Rock 5B와 Rockchip RK3566을 기반으둜 ν•˜λŠ” Radxa Zero 3W둜 ν…ŒμŠ€νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B 및 RK2118κ³Ό 같이 rknn-toolkit2λ₯Ό μ§€μ›ν•˜λŠ” λ‹€λ₯Έ Rockchip 기반 μž₯μΉ˜μ—μ„œλ„ μž‘λ™ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒλ©λ‹ˆλ‹€.

RKNN

λ½μΉ©μ΄λž€ λ¬΄μ—‡μΈκ°€μš”?

λ‹€μž¬λ‹€λŠ₯ν•˜κ³  μ „λ ₯ 효율적인 μ†”λ£¨μ…˜μ„ μ œκ³΅ν•˜λŠ” κ²ƒμœΌλ‘œ 유λͺ…ν•œ Rockchip은 λ‹€μ–‘ν•œ μ†ŒλΉ„μž κ°€μ „, μ‚°μ—…μš© μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 AI κΈ°μˆ μ„ κ΅¬λ™ν•˜λŠ” κ³ κΈ‰ μ‹œμŠ€ν…œ 온 μΉ©(SoC)을 μ„€κ³„ν•©λ‹ˆλ‹€. ARM 기반 μ•„ν‚€ν…μ²˜, λ‚΄μž₯ν˜• μ‹ κ²½ 처리 μž₯치(NPU), 고해상도 λ©€ν‹°λ―Έλ””μ–΄ 지원을 κ°–μΆ˜ Rockchip SoCλŠ” νƒœλΈ”λ¦Ώ, 슀마트 TV, IoT μ‹œμŠ€ν…œ, μ΅œμ²¨λ‹¨ AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 같은 μž₯μΉ˜μ— μ΅œμ²¨λ‹¨ μ„±λŠ₯을 κ΅¬ν˜„ν•©λ‹ˆλ‹€. Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas, Banana Pi와 같은 νšŒμ‚¬λŠ” Rockchip SoCλ₯Ό 기반으둜 λ‹€μ–‘ν•œ μ œν’ˆμ„ μ œκ³΅ν•˜μ—¬ λ‹€μ–‘ν•œ μ‹œμž₯μ—μ„œ 영ν–₯λ ₯을 ν™•λŒ€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

RKNN νˆ΄ν‚·

RKNN νˆ΄ν‚·μ€ ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌμ— λ”₯λŸ¬λ‹ λͺ¨λΈμ„ μ‰½κ²Œ 배포할 수 μžˆλ„λ‘ Rockchipμ—μ„œ μ œκ³΅ν•˜λŠ” 도ꡬ 및 라이브러리 μ„ΈνŠΈμž…λ‹ˆλ‹€. RKNN(Rockchip Neural Network)은 μ΄λŸ¬ν•œ λ„κ΅¬μ—μ„œ μ‚¬μš©ν•˜λŠ” 독점 ν˜•μ‹μž…λ‹ˆλ‹€. RKNN λͺ¨λΈμ€ Rockchip의 NPU(μ‹ κ²½ 처리 μž₯치)κ°€ μ œκ³΅ν•˜λŠ” ν•˜λ“œμ›¨μ–΄ 가속을 μ΅œλŒ€ν•œ ν™œμš©ν•˜λ„λ‘ μ„€κ³„λ˜μ–΄ RK3588, RK3566, RV1103, RV1106 및 기타 Rockchip 기반 μ‹œμŠ€ν…œμ—μ„œ AI μž‘μ—…μ—μ„œ 높은 μ„±λŠ₯을 보μž₯ν•©λ‹ˆλ‹€.

RKNN λͺ¨λΈμ˜ μ£Όμš” κΈ°λŠ₯

RKNN λͺ¨λΈμ€ Rockchip ν”Œλž«νΌμ— 배포할 λ•Œ λͺ‡ 가지 이점을 μ œκ³΅ν•©λ‹ˆλ‹€:

  • NPU에 μ΅œμ ν™”: RKNN λͺ¨λΈμ€ Rockchip의 NPUμ—μ„œ μ‹€ν–‰λ˜λ„λ‘ νŠΉλ³„νžˆ μ΅œμ ν™”λ˜μ–΄ μ„±λŠ₯κ³Ό νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•©λ‹ˆλ‹€.
  • 짧은 지연 μ‹œκ°„: RKNN ν˜•μ‹μ€ μΆ”λ‘  지연 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜λ©°, μ΄λŠ” 엣지 λ””λ°”μ΄μŠ€μ˜ μ‹€μ‹œκ°„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.
  • ν”Œλž«νΌλ³„ μ»€μŠ€ν„°λ§ˆμ΄μ§•: RKNN λͺ¨λΈμ€ νŠΉμ • Rockchip ν”Œλž«νΌμ— 맞게 μ‘°μ •ν•  수 μžˆμœΌλ―€λ‘œ ν•˜λ“œμ›¨μ–΄ λ¦¬μ†ŒμŠ€λ₯Ό 더 잘 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν”Œλž˜μ‹œ OSμ—μ„œ Rockchip ν•˜λ“œμ›¨μ–΄λ‘œ

Rockchip 기반 λ””λ°”μ΄μŠ€λ₯Ό 손에 넣은 ν›„ 첫 번째 λ‹¨κ³„λŠ” ν•˜λ“œμ›¨μ–΄κ°€ μž‘λ™ ν™˜κ²½μœΌλ‘œ λΆ€νŒ…λ  수 μžˆλ„λ‘ OSλ₯Ό ν”Œλž˜μ‹œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 κ°€μ΄λ“œμ—μ„œλŠ” ν…ŒμŠ€νŠΈν•œ 두 가지 λ””λ°”μ΄μŠ€μΈ Radxa Rock 5B와 Radxa Zero 3W의 μ‹œμž‘ κ°€μ΄λ“œλ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.

RKNN으둜 내보내기: YOLO11 λͺ¨λΈ λ³€ν™˜ν•˜κΈ°

Ultralytics YOLO11 λͺ¨λΈμ„ RKNN ν˜•μ‹μœΌλ‘œ 내보내고 내보낸 λͺ¨λΈλ‘œ 좔둠을 μ‹€ν–‰ν•©λ‹ˆλ‹€.

μ°Έκ³ 

둝칩 기반 λ””λ°”μ΄μŠ€(ARM64)μ—μ„œλŠ” 내보내기가 μ§€μ›λ˜μ§€ μ•ŠμœΌλ―€λ‘œ λͺ¨λΈμ„ RKNN으둜 내보내렀면 X86 기반 Linux PCλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ„€μΉ˜

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€:

μ„€μΉ˜

# Install the required package for YOLO11
pip install ultralytics

μ„€μΉ˜ κ³Όμ •κ³Ό κ΄€λ ¨λœ μžμ„Έν•œ 지침과 λͺ¨λ²” μ‚¬λ‘€λŠ” Ultralytics μ„€μΉ˜ κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. YOLO11 에 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” λ™μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 일반적인 문제 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ—¬ ν•΄κ²° 방법과 νŒμ„ ν™•μΈν•˜μ„Έμš”.

μ‚¬μš©λ²•

μ°Έκ³ 

λ‚΄λ³΄λ‚΄κΈ°λŠ” ν˜„μž¬ 탐지 λͺ¨λΈμ— λŒ€ν•΄μ„œλ§Œ μ§€μ›λ©λ‹ˆλ‹€. ν–₯ν›„ 더 λ§Žμ€ λͺ¨λΈμ΄ 지원될 μ˜ˆμ •μž…λ‹ˆλ‹€.

μ‚¬μš©λ²•

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to RKNN format
# Here name can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", args={"name": "rk3588"})  # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# Here name can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
yolo export model=yolo11n.pt format=rknn name=rk3588  # creates '/yolo11n_rknn_model'

내보내기 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 내보내기 κ΄€λ ¨ λ¬Έμ„œ νŽ˜μ΄μ§€(Ultralytics )λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

내보낸 YOLO11 RKNN λͺ¨λΈ λ°°ν¬ν•˜κΈ°

Ultralytics YOLO11 λͺ¨λΈμ„ RKNN ν˜•μ‹μœΌλ‘œ μ„±κ³΅μ μœΌλ‘œ λ‚΄λ³΄λƒˆλ‹€λ©΄ λ‹€μŒ λ‹¨κ³„λŠ” μ΄λŸ¬ν•œ λͺ¨λΈμ„ Rockchip 기반 λ””λ°”μ΄μŠ€μ— λ°°ν¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ„€μΉ˜

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€:

μ„€μΉ˜

# Install the required package for YOLO11
pip install ultralytics

μ‚¬μš©λ²•

μ‚¬μš©λ²•

from ultralytics import YOLO

# Load the exported RKNN model
rknn_model = YOLO("./yolo11n_rknn_model")

# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model='./yolo11n_rknn_model' source='https://ultralytics.com/images/bus.jpg'

벀치마크

YOLO11 μ•„λž˜ λ²€μΉ˜λ§ˆν¬λŠ” Ultralytics νŒ€μ΄ Rockchip RK3588을 기반으둜 Radxa Rock 5Bμ—μ„œ μ‹€ν–‰ν•œ κ²ƒμž…λ‹ˆλ‹€. rknn 속도와 정확도λ₯Ό μΈ‘μ •ν•˜λŠ” λͺ¨λΈ ν˜•μ‹μž…λ‹ˆλ‹€.

λͺ¨λΈ ν˜•μ‹ μƒνƒœ 크기(MB) mAP50-95(B) μΆ”λ‘  μ‹œκ°„(ms/im)
YOLO11n rknn βœ… 7.4 0.61 99.5
YOLO11s rknn βœ… 20.7 0.741 122.3
YOLO11m rknn βœ… 41.9 0.764 298.0
YOLO11l rknn βœ… 53.3 0.72 319.6
YOLO11x rknn βœ… 114.6 0.828 632.1

μ°Έκ³ 

μœ„μ˜ λ²€μΉ˜λ§ˆν¬μ— λŒ€ν•œ 검증은 coco8 데이터 μ„ΈνŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μš”μ•½

이 κ°€μ΄λ“œμ—μ„œλŠ” Ultralytics YOLO11 λͺ¨λΈμ„ RKNN ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λ‚΄μ„œ Rockchip ν”Œλž«νΌμ—μ„œ 배포λ₯Ό ν–₯μƒμ‹œν‚€λŠ” 방법을 λ°°μ› μŠ΅λ‹ˆλ‹€. λ˜ν•œ RKNN νˆ΄ν‚·κ³Ό 엣지 AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— RKNN λͺ¨λΈμ„ μ‚¬μš©ν•  λ•Œμ˜ ꡬ체적인 μž₯점에 λŒ€ν•΄μ„œλ„ μ†Œκ°œν–ˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©λ²•μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ RKNN 곡식 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

λ˜ν•œ Ultralytics YOLO11 톡합에 λŒ€ν•΄ 더 μžμ„Ένžˆ μ•Œκ³  μ‹Άλ‹€λ©΄ 톡합 κ°€μ΄λ“œ νŽ˜μ΄μ§€λ₯Ό λ°©λ¬Έν•˜μ„Έμš”. μœ μš©ν•œ λ¦¬μ†ŒμŠ€μ™€ μΈμ‚¬μ΄νŠΈλ₯Ό 많이 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“… 생성 0 일 μ „ ✏️ μ—…λ°μ΄νŠΈ 0일 μ „

λŒ“κΈ€