๋น ๋ฅธ ์์ ๊ฐ์ด๋: ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ๋ฐ Pi ์นด๋ฉ๋ผ( YOLOv5 ๋ฐ YOLOv8
์ด ์ข ํฉ ๊ฐ์ด๋๋ Pi ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํด ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ ๋ฌผ์ฒด ๊ฐ์ง ๋ชจ๋ธ( YOLO )์ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ๋์๋๋ฆฝ๋๋ค. ์ด ๊ฐ์ด๋๋ ํ์, ์ทจ๋ฏธ ํ๋๊ฐ, ์ ๋ฌธ๊ฐ ๋ฑ ๋๊ตฌ๋ 30๋ถ ์ด๋ด์ ์์ํ๊ณ ์คํํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๊ฐ์ด๋์ ์ง์นจ์ ์ค์ ๋ฌธ์ ๋ฅผ ์ต์ํํ๊ธฐ ์ํด ์๊ฒฉํ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ผ๋ฏ๋ก ํน์ ํ๋ก์ ํธ์ YOLO ์ ํ์ฉํ๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค.
Watch: ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 5 ์
๋ฐ์ดํธ ๋ฐ ๊ฐ์ ์ฌํญ.
์ ์ ์กฐ๊ฑด
- ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 3, 4, 5
- Pi ์นด๋ฉ๋ผ
- 64๋นํธ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ด์ ์ฒด์
CSI ์ผ์ด๋ธ์ ํตํด Pi ์นด๋ฉ๋ผ๋ฅผ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์ฐ๊ฒฐํ๊ณ 64๋นํธ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ์ด์์ฒด์ ๋ฅผ ์ค์นํฉ๋๋ค. ๋ค์ ๋ช ๋ น์ผ๋ก ์นด๋ฉ๋ผ๋ฅผ ํ์ธํฉ๋๋ค:
์นด๋ฉ๋ผ์์ ๋น๋์ค ํผ๋๊ฐ ํ์๋์ด์ผ ํฉ๋๋ค.
YOLO ๋ฒ์ ์ ํ: YOLOv5 ๋๋ YOLOv8
์ด ๊ฐ์ด๋๋ ๋ค์ ์ค ํ๋๋ก ์์ํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. YOLOv5 ๋๋ YOLOv8. ๋ ๋ฒ์ ๋ชจ๋ ๊ณ ์ ํ ์ฅ์ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ์ ํ์ ์ฌ๋ฌ๋ถ์ ๋ชซ์ด์ง๋ง, ์ด ๊ฐ์ด๋์ ๋ชฉํ๋ ๋น ๋ฅธ ์ค์ ๋ฟ ์๋๋ผ ํฅํ ๊ฐ์ฒด ๊ฐ์ง ์์ ์ ์ํ ๊ฒฌ๊ณ ํ ํ ๋๋ฅผ ๋ง๋ จํ๋ ๊ฒ์์ ๊ธฐ์ตํ์ธ์.
ํ๋์จ์ด ์ฌ์: ํ๋์ ๋ณด๊ธฐ
์ ๋ณด์ ์ ๊ฐํ ํ๋์จ์ด ๊ฒฐ์ ์ ๋๊ธฐ ์ํด ์๋ ํ์ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด 3, 4, 5์ ์ฃผ์ ํ๋์จ์ด ์ฌ์์ ์์ฝํด ๋์์ต๋๋ค:
๊ธฐ๋ฅ | ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 3 | ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 4 | ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 5 |
---|---|---|---|
CPU | 1.2GHz ์ฟผ๋ ์ฝ์ด ARM ์ฝ์ดํ ์ค-A53 | 1.5GHz ์ฟผ๋ ์ฝ์ด 64๋นํธ ARM ์ฝ์ดํ ์ค-A72 | 2.4GHz ์ฟผ๋ ์ฝ์ด 64๋นํธ Arm Cortex-A76 |
RAM | 1GB LPDDR2 | 2GB, 4GB ๋๋ 8GB LPDDR4 | ์์ธํ ๋ด์ฉ์ ์์ง ์ ๊ณต๋์ง ์์ต๋๋ค. |
USB ํฌํธ | USB 2.0 4๊ฐ | USB 2.0 2๊ฐ, USB 3.0 2๊ฐ | USB 3.0 2๊ฐ, USB 2.0 2๊ฐ |
๋คํธ์ํฌ | ์ด๋๋ท ๋ฐ Wi-Fi 802.11n | ๊ธฐ๊ฐ๋นํธ ์ด๋๋ท ๋ฐ Wi-Fi 802.11ac | PoE+๋ฅผ ์ง์ํ๋ ๊ธฐ๊ฐ๋นํธ ์ด๋๋ท, ๋์ผ ๋ฐด๋ 802.11ac Wi-Fiยฎ |
์ฑ๋ฅ | ๋ ๋๋ฆฌ๊ณ , ๋ ๊ฐ๋ฒผ์ด YOLO ๋ชจ๋ธ์ด ํ์ํ ์ ์์ต๋๋ค. | ๋ ๋น ๋ฅด๊ฒ, ๋ณต์กํ YOLO ๋ชจ๋ธ ์คํ ๊ฐ๋ฅ | ์์ธํ ๋ด์ฉ์ ์์ง ์ ๊ณต๋์ง ์์ต๋๋ค. |
์ ๋ ฅ ์๊ตฌ ์ฌํญ | 2.5A ์ ์ ๊ณต๊ธ ์ฅ์น | 3.0A USB-C ์ ์ ๊ณต๊ธ ์ฅ์น | ์์ธํ ๋ด์ฉ์ ์์ง ์ ๊ณต๋์ง ์์ต๋๋ค. |
๊ณต์ ๋ฌธ์ | ๋งํฌ | ๋งํฌ | ๋งํฌ |
์ํํ ์ค์ ๊ณผ์ ์ ์ํด ์ฌ์ฉ ์ค์ธ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋ชจ๋ธ์ ๋ง๋ ์ง์นจ์ ๋ฐ๋ฅด์๊ธฐ ๋ฐ๋๋๋ค.
๋น ๋ฅธ ์์ YOLOv5
์ด ์น์ ์์๋ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ Pi ์นด๋ฉ๋ผ๋ก YOLOv5 ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํฉ๋๋ค. ์ด ๋จ๊ณ๋ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด OS ๋ถ์ค์์ด์ ๋์ ๋ libcamera ์นด๋ฉ๋ผ ์คํ๊ณผ ํธํ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค.
ํ์ํ ํจํค์ง ์ค์น
-
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค:
-
YOLOv5 ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํฉ๋๋ค:
-
ํ์ํ ์ข ์์ฑ์ ์ค์นํฉ๋๋ค:
-
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 3์ ๊ฒฝ์ฐ ํธํ๋๋ ๋ฒ์ ์ PyTorch ๋ฐ Torchvision์ ์ค์นํฉ๋๋ค(๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด 4์ ๊ฒฝ์ฐ ๊ฑด๋๋ฐ๊ธฐ):
์์ detect.py
SSH ๋๋ CLI ๋ฅผ ํตํด TCP ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์์ ์ฝ๊ฐ์ ์์ ์ด ํ์ํฉ๋๋ค. detect.py
.
-
์ด๊ธฐ
detect.py
: -
์ฐพ๊ธฐ ๋ฐ ์์
is_url
๋ผ์ธ์ ์ฌ์ฉํ์ฌ TCP ์คํธ๋ฆผ์ ์๋ฝํฉ๋๋ค: -
๋๊ธ๋ก
view_img
๋ผ์ธ: -
์ ์ฅํ๊ณ ์ข ๋ฃํฉ๋๋ค:
Libcamera๋ก TCP ์คํธ๋ฆผ ์์ํ๊ธฐ
-
TCP ์คํธ๋ฆผ์ ์์ํฉ๋๋ค:
๋ค์ ๋จ๊ณ๋ฅผ ์ํด ์ด ํฐ๋ฏธ๋ ์ธ์ ์ ๊ณ์ ์คํํ์ธ์.
YOLOv5 ์ถ๋ก ์ํ
-
YOLOv5 ํ์ง๋ฅผ ์คํํฉ๋๋ค:
๋น ๋ฅธ ์์ YOLOv8
๋์ YOLOv8 ์ค์ ์ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์ด ์น์ ์ ๋ฐ๋ฅด์ธ์. ๋จ๊ณ๋ ๋งค์ฐ ์ ์ฌํ์ง๋ง YOLOv8 ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์กฐ์ ๋์์ต๋๋ค.
ํ์ํ ํจํค์ง ์ค์น
-
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค:
-
์ค์น
ultralytics
Python ํจํค์ง์ ๋๋ค: -
์ฌ๋ถํ ํฉ๋๋ค:
Libcamera๋ก TCP ์คํธ๋ฆผ ์์ํ๊ธฐ
-
TCP ์คํธ๋ฆผ์ ์์ํฉ๋๋ค:
YOLOv8 ์ถ๋ก ์ํ
YOLOv8 ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์ํํ๋ ค๋ฉด ๋ค์ Python ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
results = model('tcp://127.0.0.1:8888', stream=True)
while True:
for result in results:
boxes = result.boxes
probs = result.probs
๋ค์ ๋จ๊ณ
๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ YOLO ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค! ๋ ๋ง์ ํ์ต๊ณผ ์ง์์ ์ํ์๋ฉด Ultralytics ์ ์นด์๋ฏธ๋ฅด ์๋ ์ฌ๋จ์ ๋ฐฉ๋ฌธํ์ธ์.
๊ฐ์ฌ ๋ฐ ์ธ์ฉ
์ด ๊ฐ์ด๋๋ ๋ฉธ์ข ์๊ธฐ ์ข ๋ณด์กด์ ์ํด YOLO ์ ์ฌ์ฉํ๋ ๋จ์ฒด์ธ ์นด์๋ฏธ๋ฅด ์๋ ์ฌ๋จ์ ์ํด ๋ค์ ์ํ ํฌ๊ฐ ์ฒ์์ ๋ง๋ค์์ต๋๋ค. ๋ฌผ์ฒด ๊ฐ์ง ๊ธฐ์ ๋ถ์ผ์์ ์ ๊ตฌ์ ์ธ ์์ ๊ณผ ๊ต์ก์ ์ค์ ์ ๋ ์ด ๋จ์ฒด์ ๊ณต๋ก๋ฅผ ์ธ์ ํฉ๋๋ค.
์นด์๋ฏธ๋ฅด ์๋ ์ฌ๋จ์ ํ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์น์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค.