์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Ultralytics YOLO11 ๋ชจ๋ธ์šฉ Rockchip RKNN ๋‚ด๋ณด๋‚ด๊ธฐ

์ž„๋ฒ ๋””๋“œ ๋””๋ฐ”์ด์Šค, ํŠนํžˆ Rockchip ํ”„๋กœ์„ธ์„œ ๊ธฐ๋ฐ˜ ๋””๋ฐ”์ด์Šค์— ์ปดํ“จํ„ฐ ๋น„์ „ ๋ชจ๋ธ์„ ๋ฐฐํฌํ•  ๋•Œ๋Š” ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ ํฌ๋งท์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ด๊ธฐ Ultralytics YOLO11 ๋ชจ๋ธ์„ RKNN ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ๊ณผ Rockchip ํ•˜๋“œ์›จ์–ด์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” YOLO11 ๋ชจ๋ธ์„ RKNN ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•˜์—ฌ Rockchip ํ”Œ๋žซํผ์— ํšจ์œจ์ ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

RKNN

์ฐธ๊ณ 

์ด ๊ฐ€์ด๋“œ๋Š” Rockchip RK3588์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Radxa Rock 5B์™€ Rockchip RK3566์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Radxa Zero 3W๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B ๋ฐ RK2118๊ณผ ๊ฐ™์ด rknn-toolkit2๋ฅผ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ Rockchip ๊ธฐ๋ฐ˜ ์žฅ์น˜์—์„œ๋„ ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

๋ฝ์นฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋‹ค์žฌ๋‹ค๋Šฅํ•˜๊ณ  ์ „๋ ฅ ํšจ์œจ์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•œ 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
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", name="rk3588")  # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# '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'

๋‚ด๋ณด๋‚ด๊ธฐ ์ธ์ˆ˜

์ธ์ˆ˜ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
format str rknn ๋‚ด๋ณด๋‚ธ ๋ชจ๋ธ์˜ ๋Œ€์ƒ ํ˜•์‹์œผ๋กœ, ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
imgsz int ๋˜๋Š” tuple 640 ๋ชจ๋ธ ์ž…๋ ฅ์— ์‚ฌ์šฉํ•  ์›ํ•˜๋Š” ์ด๋ฏธ์ง€ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜• ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ ์ •์ˆ˜ ๋˜๋Š” ํŠœํ”Œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (height, width) ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
batch int 1 ๋‚ด๋ณด๋‚ด๊ธฐ ๋ชจ๋ธ ์ผ๊ด„ ์ถ”๋ก  ํฌ๊ธฐ ๋˜๋Š” ๋‚ด๋ณด๋‚ธ ๋ชจ๋ธ์ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ตœ๋Œ€ ์ด๋ฏธ์ง€ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. predict ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
name str rk3588 ๋ก์นฉ ๋ชจ๋ธ(rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ณด๋‚ด๊ธฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ด€๋ จ ๋ฌธ์„œ ํŽ˜์ด์ง€(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'

์ฐธ๊ณ 

RKNN ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์ด RKNN ํˆดํ‚ท ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์•„ ์ถ”๋ก ์— ์‹คํŒจํ–ˆ๋‹ค๋Š” ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ๊ต์ฒดํ•˜์„ธ์š”. /usr/lib/librknnrt.so ๊ณต์‹ librknnrt.so ํŒŒ์ผ.

RKNN ๋‚ด๋ณด๋‚ด๊ธฐ ์Šคํฌ๋ฆฐ์ƒท

๋ฒค์น˜๋งˆํฌ

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 ํ†ตํ•ฉ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ํ†ตํ•ฉ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”. ์œ ์šฉํ•œ ๋ฆฌ์†Œ์Šค์™€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋งŽ์ด ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Ultralytics YOLO ๋ชจ๋ธ์„ RKNN ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

Ultralytics YOLO ๋ชจ๋ธ์„ RKNN ํ˜•์‹์œผ๋กœ ์‰ฝ๊ฒŒ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. export() ๋ฉ”์„œ๋“œ๋ฅผ Ultralytics Python ํŒจํ‚ค์ง€ ๋˜๋Š” ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI)๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ด๊ธฐ ํ”„๋กœ์„ธ์Šค์— x86 ๊ธฐ๋ฐ˜ Linux PC๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, Rockchip๊ณผ ๊ฐ™์€ ARM64 ์žฅ์น˜๋Š” ์ด ์ž‘์—…์ด ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์ƒ Rockchip ํ”Œ๋žซํผ์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. name ์ธ์ˆ˜์™€ ๊ฐ™์€ rk3588, rk3566๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ€์† ์ถ”๋ก ์„ ์œ„ํ•ด ์‹ ๊ฒฝ ์ฒ˜๋ฆฌ ์žฅ์น˜(NPU)๋ฅผ ํ™œ์šฉํ•˜์—ฌ Rockchip ์žฅ์น˜์— ๋ฐฐํฌํ•  ์ค€๋น„๊ฐ€ ๋œ ์ตœ์ ํ™”๋œ RKNN ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ

from ultralytics import YOLO

# Load your YOLO model
model = YOLO("yolo11n.pt")

# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")
yolo export model=yolo11n.pt format=rknn name=rk3588

Rockchip ๋””๋ฐ”์ด์Šค์—์„œ RKNN ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

RKNN ๋ชจ๋ธ์€ ํŠน๋ณ„ํžˆ Rockchip์˜ ์‹ ๊ฒฝ ์ฒ˜๋ฆฌ ์žฅ์น˜(NPU)์˜ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ํ•˜๋“œ์›จ์–ด์—์„œ ONNX ๋˜๋Š” TensorFlow Lite์™€ ๊ฐ™์€ ์ผ๋ฐ˜ ๋ชจ๋ธ ํ˜•์‹์„ ์‹คํ–‰ํ•  ๋•Œ๋ณด๋‹ค ์ถ”๋ก  ์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง€๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค. RKNN ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ฐ”์ด์Šค์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์ „๋ ฅ ์†Œ๋น„๋ฅผ ์ค„์ด๊ณ  ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ํŠนํžˆ ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค์˜ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Ultralytics YOLO ๋ชจ๋ธ์„ RKNN์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด RK3588, RK3566 ๋“ฑ๊ณผ ๊ฐ™์€ Rockchip SoC ๊ธฐ๋ฐ˜ ๋””๋ฐ”์ด์Šค์—์„œ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NVIDIA ๋˜๋Š” Google ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ œ์กฐ์—…์ฒด์˜ ๋””๋ฐ”์ด์Šค์— RKNN ๋ชจ๋ธ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‚˜์š” ?

RKNN ๋ชจ๋ธ์€ ํŠน๋ณ„ํžˆ Rockchip ํ”Œ๋žซํผ๊ณผ ๊ทธ ํ†ตํ•ฉ NPU์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ RKNN ๋ชจ๋ธ์„ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, Rockchip ๋””๋ฐ”์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์–ป์œผ๋ ค๋ฉด Ultralytics YOLO ๋ชจ๋ธ์„ ํ•ด๋‹น ํ”Œ๋žซํผ์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํฌ๋งท(์˜ˆ: NVIDIA GPU์šฉ TensorRT ๋˜๋Š” Google ์˜ Edge์šฉ TensorFlow Lite TPU)์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Ultralytics ์€ ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๊ธฐ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ด‘๋ฒ”์œ„ํ•œ ํฌ๋งท์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

RKNN ๋ชจ๋ธ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ง€์›๋˜๋Š” Rockchip ํ”Œ๋žซํผ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLO RKNN ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” ์ธ๊ธฐ ์žˆ๋Š” RK3588, RK3576, RK3566, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B ๋ฐ RK2118์„ ํฌํ•จํ•œ ๊ด‘๋ฒ”์œ„ํ•œ Rockchip ํ”Œ๋žซํผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์€ Radxa, ASUS, Pine64, ์˜ค๋ Œ์ง€ ํŒŒ์ด, Odroid, ์นด๋‹ค์Šค, ๋ฐ”๋‚˜๋‚˜ ํŒŒ์ด์™€ ๊ฐ™์€ ์ œ์กฐ์—…์ฒด์˜ ๋””๋ฐ”์ด์Šค์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ์ง€์›์„ ํ†ตํ•ด ์‹ฑ๊ธ€ ๋ณด๋“œ ์ปดํ“จํ„ฐ๋ถ€ํ„ฐ ์‚ฐ์—…์šฉ ์‹œ์Šคํ…œ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ Rockchip ๊ธฐ๋ฐ˜ ์žฅ์น˜์— ์ตœ์ ํ™”๋œ RKNN ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ ์ปดํ“จํ„ฐ ๋น„์ „ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” AI ๊ฐ€์† ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RKNN ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์€ Rockchip ๋””๋ฐ”์ด์Šค์—์„œ ๋‹ค๋ฅธ ํฌ๋งท๊ณผ ์–ด๋–ป๊ฒŒ ๋น„๊ต๋˜๋‚˜์š”?

RKNN ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ Rockchip ์žฅ์น˜์—์„œ ONNX ๋˜๋Š” TensorFlow Lite์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ˜•์‹๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, ์ด๋Š” Rockchip์˜ NPU์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Radxa Rock 5B(RK3588)์˜ ๋ฒค์น˜๋งˆํฌ์— ๋”ฐ๋ฅด๋ฉด RKNN ํ˜•์‹์˜ YOLO11n์€ ๋‹ค๋ฅธ ํ˜•์‹๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅธ ์ด๋ฏธ์ง€๋‹น 99.5ms์˜ ์ถ”๋ก  ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ฒค์น˜๋งˆํฌ ์„น์…˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ์ด๋Ÿฌํ•œ ์„ฑ๋Šฅ ์ด์ ์€ ๋‹ค์–‘ํ•œ YOLO11 ๋ชจ๋ธ ํฌ๊ธฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ „์šฉ NPU ํ•˜๋“œ์›จ์–ด๋ฅผ ํ™œ์šฉํ•˜๋Š” RKNN ๋ชจ๋ธ์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ตœ๋Œ€ํ™”ํ•˜์—ฌ Rockchip ๊ธฐ๋ฐ˜ ์—์ง€ ๋””๋ฐ”์ด์Šค์˜ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

๐Ÿ“… 20์ผ ์ „์— ์ƒ์„ฑ๋จ โœ๏ธ ์—…๋ฐ์ดํŠธ 4 ์ผ ์ „

๋Œ“๊ธ€