Ultralytics YOLOv8 ๐์ ํจ๊ป ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ์ฝ๋ ์ฃ์ง TPU
์ฝ๋ ์ฃ์ง๋ ๋ฌด์์ธ๊ฐ์ TPU?
Coral Edge TPU ๋ ์์คํ ์ Edge TPU ์ฝํ๋ก์ธ์๋ฅผ ์ถ๊ฐํ๋ ์ํ ์ฅ์น์ ๋๋ค. TensorFlow ๋ผ์ดํธ ๋ชจ๋ธ์์ ์ ์ ๋ ฅ, ๊ณ ์ฑ๋ฅ ML ์ถ๋ก ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Coral Edge TPU ํํ์ด์ง์์ ํ์ธํ์ธ์.
์ฝ๋ ์ฃ์ง๋ก ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋ชจ๋ธ ์ฑ๋ฅ ํฅ์ํ๊ธฐ TPU
๋ง์ ์ฌ๋๋ค์ด ์ ๋ ฅ ํจ์จ์ด ๋๊ณ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๋ Raspberry Pi์ ๊ฐ์ ์๋ฒ ๋๋ ๋๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ชจ๋ธ์ ์คํํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ฅ์น์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ถ๋ก ์ฑ๋ฅ์ด ์ข์ง ์์ต๋๋ค. onnx ๋๋ openvino. ์ฝ๋ ์ฃ์ง( TPU )๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ถ๋ก ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ์ ๋ํ ํ๋ฅญํ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์์ต๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ์ฃ์ง TPU TensorFlow ๋ผ์ดํธ(์ ๊ท)โญ (์ ๊ท)
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ Edge TPU ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ Coral์ ๊ธฐ์กด ๊ฐ์ด๋๋ ์ค๋๋์์ผ๋ฉฐ, ํ์ฌ Coral Edge TPU ๋ฐํ์ ๋น๋๋ ํ์ฌ TensorFlow ๋ผ์ดํธ ๋ฐํ์ ๋ฒ์ ์์ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ๋ํ Google ์ Coral ํ๋ก์ ํธ๋ฅผ ์์ ํ ํฌ๊ธฐํ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ 2021๋ ๋ถํฐ 2024๋ ์ฌ์ด์ ์ ๋ฐ์ดํธ๊ฐ ์ด๋ฃจ์ด์ง์ง ์์์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ ์ต์ ๋ฒ์ ์ TensorFlow ๋ผ์ดํธ ๋ฐํ์๊ณผ ์ ๋ฐ์ดํธ๋ Coral Edge TPU ๋ฐํ์์ ์ฌ์ฉํ์ฌ Edge TPU ๋ฅผ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋จ์ผ ๋ณด๋ ์ปดํจํฐ(SBC)์์ ์๋์ํค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฝ๋๋ค.
์ ์ ์กฐ๊ฑด
- ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 4B (2GB ์ด์ ๊ถ์ฅ) ๋๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 5 (๊ถ์ฅ)
- ๋ฐ์คํฌํฑ์ด ์๋ Raspberry Pi OS Bullseye/Bookworm(64๋นํธ)(๊ถ์ฅ)
- ์ฝ๋ USB ๊ฐ์๊ธฐ
- Ultralytics PyTorch ๋ชจ๋ธ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํ ๋นARM ๊ธฐ๋ฐ ํ๋ซํผ
์ค์น ์ฐ์ต
์ด ๊ฐ์ด๋๋ ์ด๋ฏธ ์๋ํ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด OS๊ฐ ์ค์น๋์ด ์๊ณ ๋ค์์ ์ค์นํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ultralytics
๋ฐ ๋ชจ๋ ์ข
์์ฑ. ์ป์ผ๋ ค๋ฉด ultralytics
์ค์น๋ ๊ฒฝ์ฐ ๋น ๋ฅธ ์์ ๊ฐ์ด๋ ๋ฅผ ํด๋ฆญํ์ฌ ์ค์ ์ ์๋ฃํ ํ ๊ณ์ ์งํํ์ธ์.
Edge TPU ๋ฐํ์ ์ค์น
๋จผ์ Edge TPU ๋ฐํ์์ ์ค์นํด์ผ ํฉ๋๋ค. ๋ค์ํ ๋ฒ์ ์ด ์์ผ๋ฏ๋ก ์ฌ์ฉ ์ค์ธ ์ด์ ์ฒด์ ์ ๋ง๋ ๋ฒ์ ์ ์ ํํด์ผ ํฉ๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด OS | ๊ณ ์ฃผํ ๋ชจ๋ | ๋ค์ด๋ก๋ํ ๋ฒ์ |
---|---|---|
Bullseye 32๋นํธ | ์๋์ | libedgetpu1-std_ ... .bullseye_armhf.deb |
Bullseye 64๋นํธ | ์๋์ | libedgetpu1-std_ ... .bullseye_arm64.deb |
Bullseye 32๋นํธ | ์ | libedgetpu1-max_ ... .bullseye_armhf.deb |
Bullseye 64๋นํธ | ์ | libedgetpu1-max_ ... .bullseye_arm64.deb |
๋ถ์ 32๋นํธ | ์๋์ | libedgetpu1-std_ ... .bookworm_armhf.deb |
๋ถ์ 64๋นํธ | ์๋์ | libedgetpu1-std_ ... .bookworm_arm64.deb |
๋ถ์ 32๋นํธ | ์ | libedgetpu1-max_ ... .bookworm_armhf.deb |
๋ถ์ 64๋นํธ | ์ | libedgetpu1-max_ ... .bookworm_arm64.deb |
์ฌ๊ธฐ์์ ์ต์ ๋ฒ์ ์ ๋ค์ด๋ก๋ํ์ธ์.
ํ์ผ์ ๋ค์ด๋ก๋ํ ํ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ ์ ์์ต๋๋ค:
๋ฐํ์์ ์ค์นํ ํ, ์ฝ๋ ์ฃ์ง( TPU )๋ฅผ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ USB 3.0 ํฌํธ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์ด๋ ๊ณต์ ๊ฐ์ด๋์ ๋ฐ๋ฅด๋ฉด ์๋ก์ด udev
๊ท์น์ ์ค์นํ ํ์ ์ ์ฉํด์ผ ํฉ๋๋ค.
์ค์
Coral Edge TPU ๋ฐํ์์ด ์ด๋ฏธ ์ค์น๋์ด ์๋ ๊ฒฝ์ฐ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ ๊ฑฐํ์ธ์.
๋ชจ๋ธ์ Edge TPU ํธํ ๋ชจ๋ธ๋ก ๋ด๋ณด๋ด๊ธฐ
Edge TPU ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ชจ๋ธ์ ํธํ ๊ฐ๋ฅํ ํ์์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค. ARM์์๋ Edge TPU ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ๊ณต์ Ultralytics Docker ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Ultralytics HUB๋ฅผ ์ฌ์ฉํ์ฌ Google Colab, x86_64 Linux ์์คํ ์์ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์๋ ๋ด๋ณด๋ด๊ธฐ ๋ชจ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ด๋ณด๋ด๊ธฐ
๋ด๋ณด๋ธ ๋ชจ๋ธ์ <model_name>_saved_model/
ํด๋์ <model_name>_full_integer_quant_edgetpu.tflite
.
๋ชจ๋ธ ์คํ
๋ชจ๋ธ์ ๋ด๋ณด๋ธ ํ ๋ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์คํํ ์ ์์ต๋๋ค:
์คํ ์ค
์ ์ฒด ์์ธก ๋ชจ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ธก ํ์ด์ง์์ ์ข ํฉ ์ ๋ณด๋ฅผ ํ์ธํ์ธ์.
์ค์
๋ค์์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์คํํด์ผ ํฉ๋๋ค. tflite-runtime
์๋ tensorflow
.
๋ง์ฝ tensorflow
๊ฐ ์ค์น๋์ด ์์ผ๋ฉด ๋ค์ ๋ช
๋ น์ผ๋ก tensorflow ์ ์ ๊ฑฐํฉ๋๋ค:
๊ทธ๋ฐ ๋ค์ ์ค์น/์
๋ฐ์ดํธ tflite-runtime
:
์ํ๋ ๊ฒฝ์ฐ tflite-runtime
ํ tensorflow
2.15.0 ๋ค์์์ ๋ค์ด๋ก๋ ์ฌ๊ธฐ ๋ฅผ ํด๋ฆญํ๊ณ ๋ค์์ ์ฌ์ฉํ์ฌ ์ค์นํฉ๋๋ค. pip
๋๋ ์ ํํ ํจํค์ง ๊ด๋ฆฌ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ฝ๋ ์ฃ์ง๋ ๋ฌด์์ธ๊ฐ TPU ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์ฑ๋ฅ์ ํฅ์์ํค๋๊ฐ Ultralytics YOLOv8 ?
Coral Edge TPU ๋ ์์คํ ์ Edge TPU ์ฝํ๋ก์ธ์๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ์ค๊ณ๋ ์ํ ์ฅ์น์ ๋๋ค. ์ด ์ฝํ๋ก์ธ์๋ ์ ์ ๋ ฅ, ๊ณ ์ฑ๋ฅ ๋จธ์ ๋ฌ๋ ์ถ๋ก ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ํนํ TensorFlow ๋ผ์ดํธ ๋ชจ๋ธ์ ์ต์ ํ๋์ด ์์ต๋๋ค. ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Edge TPU ๋ ML ๋ชจ๋ธ ์ถ๋ก ์ ๊ฐ์ํํ์ฌ ํนํ Ultralytics YOLOv8 ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค. Coral Edge์ ๋ํ ์์ธํ ๋ด์ฉ์ ํํ์ด์ง TPU ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ Coral Edge TPU ๋ฐํ์์ ์ค์นํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ Coral Edge TPU ๋ฐํ์์ ์ค์นํ๋ ค๋ฉด, ํด๋น ๋ฐํ์์ ๋ค์ด๋ก๋ํ์ธ์. .deb
์์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด OS ๋ฒ์ ์ฉ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ์ญ์์ค. ์ด ๋งํฌ. ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ค์นํฉ๋๋ค:
์ค์น ์ฐ์ต ์น์ ์ ์ค๋ช ๋ ๋จ๊ณ์ ๋ฐ๋ผ ์ด์ Coral Edge TPU ๋ฐํ์ ๋ฒ์ ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
๋ด Ultralytics YOLOv8 ๋ชจ๋ธ์ Coral Edge TPU ์ ํธํ๋๋๋ก ๋ด๋ณด๋ผ ์ ์๋์?
์, Coral Edge TPU ์ ํธํ๋๋๋ก Ultralytics YOLOv8 ๋ชจ๋ธ์ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. ๋ด๋ณด๋ด๊ธฐ๋ x86_64 Linux ๋จธ์ ์ธ Google Colab ๋๋ Ultralytics Docker ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Ultralytics HUB๋ฅผ ์ฌ์ฉํ์ฌ ๋ด๋ณด๋ผ ์๋ ์์ต๋๋ค. Python ๋ฐ CLI ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ด๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ด๋ณด๋ด๊ธฐ
์์ธํ ๋ด์ฉ์ ๋ด๋ณด๋ด๊ธฐ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ TensorFlow ์ด ์ด๋ฏธ ์ค์น๋์ด ์๋๋ฐ ๋์ tflite-runtime์ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ TensorFlow ๊ฐ ์ค์น๋์ด ์๊ณ ๋ค์๊ณผ ๊ฐ์ด ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ tflite-runtime
๋ฅผ ์ฌ์ฉํ์ฌ TensorFlow ์ ๋จผ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค:
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ค์น ๋๋ ์
๋ฐ์ดํธํฉ๋๋ค. tflite-runtime
๋ฅผ ๋ค์ ๋ช
๋ น์ด๋ก ๋์ฒดํฉ๋๋ค:
ํน์ ํ ์ ๊ฒฝ์ฐ(์: TensorFlow 2.15.0) tflite-runtime
์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ด ๋งํฌ ๋ฅผ ํด๋ฆญํ๊ณ ๋ค์์ ์ฌ์ฉํ์ฌ ์ค์นํฉ๋๋ค. pip
. ์์ธํ ์ง์นจ์ ๋ชจ๋ธ ์คํ ์น์
์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ชจ๋ธ ์คํ.
์ฝ๋ ์ฃ์ง TPU ๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ๋ด๋ณด๋ธ YOLOv8 ๋ชจ๋ธ๋ก ์ถ๋ก ์ ์คํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
YOLOv8 ๋ชจ๋ธ์ Edge TPU ํธํ ํ์์ผ๋ก ๋ด๋ณด๋ธ ํ ๋ค์ ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์คํํ ์ ์์ต๋๋ค:
์คํ ์ค
์ ์ฒด ์์ธก ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ธก ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.