Ultralytics YOLOv8 ๐์ ํจ๊ป ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ์ฝ๋ ์ฃ์ง TPU
์ฝ๋ ์ฃ์ง๋ ๋ฌด์์ธ๊ฐ์ TPU?
Coral Edge TPU ๋ ์์คํ ์ Edge TPU ์ฝํ๋ก์ธ์๋ฅผ ์ถ๊ฐํ๋ ์ํ ์ฅ์น์ ๋๋ค. TensorFlow ๋ผ์ดํธ ๋ชจ๋ธ์์ ์ ์ ๋ ฅ, ๊ณ ์ฑ๋ฅ ML ์ถ๋ก ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Coral Edge TPU ํํ์ด์ง์์ ํ์ธํ์ธ์.
์ฝ๋ ์ฃ์ง๋ก ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋ชจ๋ธ ์ฑ๋ฅ ํฅ์ํ๊ธฐ TPU
๋ง์ ์ฌ๋๋ค์ด ์ ๋ ฅ ํจ์จ์ด ๋๊ณ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๋ Raspberry Pi์ ๊ฐ์ ์๋ฒ ๋๋ ๋๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ชจ๋ธ์ ์คํํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ฅ์น์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ถ๋ก ์ฑ๋ฅ์ด ์ข์ง ์์ต๋๋ค. onnx ๋๋ openvino. ์ฝ๋ ์ฃ์ง( TPU )๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ถ๋ก ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ์ ๋ํ ํ๋ฅญํ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์์ต๋๋ค.
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์ ์ฃ์ง TPU TensorFlow ๋ผ์ดํธ(์ ๊ท)โญ (์ ๊ท)
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ Edge๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ Coral์ ๊ธฐ์กด ๊ฐ์ด๋ TPU ๋ ์ค๋๋์์ผ๋ฉฐ, ํ์ฌ 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
๋๋ ์ ํํ ํจํค์ง ๊ด๋ฆฌ์.