Ultralytics YOLO11 ๐์ ์ด์ฉํ ์ฃผ์ฐจ ๊ด๋ฆฌ
์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฃผ์ฐจ ๊ด๋ฆฌ Ultralytics YOLO11 ๋ ๊ณต๊ฐ์ ๊ตฌ์ฑํ๊ณ ๊ฐ์ฉ์ฑ์ ๋ชจ๋ํฐ๋งํ์ฌ ํจ์จ์ ์ด๊ณ ์์ ํ ์ฃผ์ฐจ๋ฅผ ๋ณด์ฅํฉ๋๋ค. YOLO11 ์ค์๊ฐ ์ฐจ๋ ๊ฐ์ง ๋ฐ ์ฃผ์ฐจ ์ ์ ์จ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ํตํด ์ฃผ์ฐจ์ฅ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
Watch: Ultralytics YOLO ๐์ ์ฌ์ฉํ์ฌ ์ฃผ์ฐจ ๊ด๋ฆฌ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ
์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ ์ฅ์ ์?
- ํจ์จ์ฑ: ์ฃผ์ฐจ์ฅ ๊ด๋ฆฌ๋ ์ฃผ์ฐจ ๊ณต๊ฐ ์ฌ์ฉ์ ์ต์ ํํ๊ณ ํผ์ก์ ์ค์ ๋๋ค.
- ์์ ๋ฐ ๋ณด์: YOLO11 ์ ์ฌ์ฉํ ์ฃผ์ฐจ ๊ด๋ฆฌ๋ ๊ฐ์ ๋ฐ ๋ณด์ ์กฐ์น๋ฅผ ํตํด ์ฌ๋๊ณผ ์ฐจ๋ ๋ชจ๋์ ์์ ์ ํฅ์์ํต๋๋ค.
- ๋ฐฐ๊ธฐ๊ฐ์ค ๋ฐฐ์ถ๋ ๊ฐ์: YOLO11 ์ ์ฌ์ฉํ ์ฃผ์ฐจ ๊ด๋ฆฌ๋ ๊ตํต ํ๋ฆ์ ๊ด๋ฆฌํ์ฌ ์ฃผ์ฐจ์ฅ์ ์ ํด ์๊ฐ๊ณผ ๋ฐฐ๊ธฐ๊ฐ์ค ๋ฐฐ์ถ์ ์ต์ํํฉ๋๋ค.
์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ | ์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ |
---|---|
์ฃผ์ฐจ ๊ด๋ฆฌ ๋ค์์ ์ฌ์ฉํ ์กฐ๊ฐ๋ Ultralytics YOLO11 | ๋ค์์ ์ฌ์ฉํ ์ฃผ์ฐจ ๊ด๋ฆฌ ํ๋ฉด๋ Ultralytics YOLO11 |
์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ฝ๋ ์ํฌํ๋ก์ฐ
ํฌ์ธํธ ์ ํ
์ด์ ํฌ์ธํธ ์ ํ์ด ์ฌ์์ก์ต๋๋ค.
์ฃผ์ฐจ ์ง์ ์ ํ์ ์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์์ ๋งค์ฐ ์ค์ํ๊ณ ๋ณต์กํ ์์ ์ ๋๋ค. Ultralytics ์์๋ ์ฃผ์ฐจ์ฅ ๊ตฌ์ญ์ ์ ์ํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ์ด ๊ณผ์ ์ ๊ฐ์ํํ๊ณ , ๋์ค์ ์ถ๊ฐ ์ฒ๋ฆฌ์ ํ์ฉํ ์ ์์ต๋๋ค.
- ์ฃผ์ฐจ์ฅ์ ๊ด๋ฆฌํ๋ ค๋ ๋น๋์ค ๋๋ ์นด๋ฉ๋ผ ์คํธ๋ฆผ์์ ํ๋ ์์ ์บก์ฒํฉ๋๋ค.
- ์ ๊ณต๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค๋ฅผ ์์ํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ํด๋ฆญ์ผ๋ก ์ฃผ์ฐจ ๊ตฌ์ญ์ ์ค๊ณฝ์ ๊ทธ๋ ค ๋ค๊ฐํ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ด๋ฏธ์ง ํฌ๊ธฐ
์ต๋ ์ด๋ฏธ์ง ํฌ๊ธฐ 1920 * 1080 ์ง์
์ฃผ์ฐจ ์ฌ๋กฏ ์ฃผ์๊ธฐ Ultralytics YOLO11
- ๋ค๊ฐํ์ผ๋ก ์ฃผ์ฐจ ๊ตฌ์ญ์ ์ ์ํ ํ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
save
์ ์ฌ์ฉํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ JSON ํ์ผ์ ์ ์ฅํฉ๋๋ค.
Python ์ฃผ์ฐจ ๊ด๋ฆฌ ๊ท์
YOLO11 ์์ ๋ฅผ ์ฌ์ฉํ ์ฃผ์ฐจ ๊ด๋ฆฌ
import cv2
from ultralytics import solutions
# Video capture
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
# Video writer
video_writer = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize parking management object
parking_manager = solutions.ParkingManagement(
model="yolo11n.pt", # path to model file
json_file="bounding_boxes.json", # path to parking annotations file
)
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break
im0 = parking_manager.process_data(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
์ ํ์ ์ธ์ ParkingManagement
์ด๋ฆ | ์ ํ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|---|
model |
str |
None |
YOLO11 ๋ชจ๋ธ ๊ฒฝ๋ก์ ๋๋ค. |
json_file |
str |
None |
๋ชจ๋ ์ฃผ์ฐจ ์ขํ ๋ฐ์ดํฐ๊ฐ ์๋ JSON ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค. |
์ธ์ model.track
์ธ์ | ์ ํ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|---|
source |
str |
None |
์ด๋ฏธ์ง ๋๋ ๋์์์ ์์ค ๋๋ ํฐ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. ํ์ผ ๊ฒฝ๋ก ๋ฐ URL์ ์ง์ํฉ๋๋ค. |
persist |
bool |
False |
ํ๋ ์ ๊ฐ ์ค๋ธ์ ํธ๋ฅผ ์ง์์ ์ผ๋ก ์ถ์ ํ์ฌ ๋น๋์ค ์ํ์ค ์ ์ฒด์์ ID๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. |
tracker |
str |
botsort.yaml |
์ฌ์ฉํ ์ถ์ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ํฉ๋๋ค(์, bytetrack.yaml ๋๋ botsort.yaml . |
conf |
float |
0.3 |
ํ์ง ์ ๋ขฐ ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. ๊ฐ์ด ๋ฎ์์๋ก ๋ ๋ง์ ๊ฐ์ฒด๋ฅผ ์ถ์ ํ ์ ์์ง๋ง ์คํ์ด ํฌํจ๋ ์ ์์ต๋๋ค. |
iou |
float |
0.5 |
์ค๋ณต ๊ฐ์ง๋ฅผ ํํฐ๋งํ๊ธฐ ์ํ IoU( Intersection over Union ) ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. |
classes |
list |
None |
ํด๋์ค ์ธ๋ฑ์ค๋ณ๋ก ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด classes=[0, 2, 3] ์ง์ ๋ ํด๋์ค๋ง ์ถ์ ํฉ๋๋ค. |
verbose |
bool |
True |
์ถ์ ๊ฒฐ๊ณผ์ ํ์๋ฅผ ์ ์ดํ์ฌ ์ถ์ ๋ ๊ฐ์ฒด์ ์๊ฐ์ ์ถ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. |
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Ultralytics YOLO11 ์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ ์ด๋ป๊ฒ ๊ฐ์ ํ๋์?
Ultralytics YOLO11 ๋ ์ค์๊ฐ ์ฐจ๋ ๊ฐ์ง ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ ๊ณตํ์ฌ ์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค. ์ด๋ฅผ ํตํด ์ฃผ์ฐจ ๊ณต๊ฐ์ ์ต์ ํํ๊ณ ํผ์ก์ ์ค์ด๋ฉฐ ์ง์์ ์ธ ๊ฐ์๋ฅผ ํตํด ์์ ์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ฃผ์ฐจ ๊ด๋ฆฌ ์์คํ ์ ํจ์จ์ ์ธ ๊ตํต ํ๋ฆ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ฃผ์ฐจ์ฅ์ ์ ํด ์๊ฐ๊ณผ ๋ฐฐ๊ธฐ๊ฐ์ค ๋ฐฐ์ถ์ ์ต์ํํจ์ผ๋ก์จ ํ๊ฒฝ ์ง์ ๊ฐ๋ฅ์ฑ์๋ ๊ธฐ์ฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฃผ์ฐจ ๊ด๋ฆฌ ์ฝ๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค๋งํธ ์ฃผ์ฐจ๋ฅผ ์ํด Ultralytics YOLO11 ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ด์ ์ด ์๋์?
Ultralytics YOLO11 ์ค๋งํธ ์ฃผ์ฐจ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค:
- ํจ์จ์ฑ: ์ฃผ์ฐจ ๊ณต๊ฐ ์ฌ์ฉ์ ์ต์ ํํ๊ณ ํผ์ก์ ์ค์ ๋๋ค.
- ์์ ๋ฐ ๋ณด์: ๊ฐ์๋ฅผ ๊ฐํํ๊ณ ์ฐจ๋๊ณผ ๋ณดํ์์ ์์ ์ ๋ณด์ฅํฉ๋๋ค.
- ํ๊ฒฝ ์ํฅ: ์ฐจ๋ ์ ํด ์๊ฐ์ ์ต์ํํ์ฌ ๋ฐฐ๊ธฐ๊ฐ์ค๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
Ultralytics YOLO11 ์ ์ฌ์ฉํ์ฌ ์ฃผ์ฐจ ๊ณต๊ฐ์ ์ ์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ฃผ์ฐจ ๊ณต๊ฐ ์ ์๋ Ultralytics YOLO11 ์ผ๋ก ๊ฐ๋จํ๊ฒ ํ ์ ์์ต๋๋ค:
- ๋์์ ๋๋ ์นด๋ฉ๋ผ ์คํธ๋ฆผ์์ ํ๋ ์์ ์บก์ฒํฉ๋๋ค.
- ์ ๊ณต๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ๋ค๊ฐํ์ ๊ทธ๋ ค ์ฃผ์ฐจ ๊ณต๊ฐ์ ์ ์ํ๋ GUI๋ฅผ ์คํํ์ธ์.
- ์ถ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋ ์ด๋ธ์ด ์ง์ ๋ ๋ฐ์ดํฐ๋ฅผ JSON ํ์์ผ๋ก ์ ์ฅํฉ๋๋ค. ์์ธํ ์ง์นจ์ ํฌ์ธํธ ์ ํ ์น์ ์ ์ฐธ์กฐํ์ธ์.
ํน์ ์ฃผ์ฐจ ๊ด๋ฆฌ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ YOLO11 ๋ชจ๋ธ์ ์ฌ์ฉ์ ์ง์ ํ ์ ์๋์?
์, Ultralytics YOLO11 ์์ ํน์ ์ฃผ์ฐจ ๊ด๋ฆฌ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ ์ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์์ญ ์์ํ
์คํธ ํ์๋ฅผ ์ํ ์ฌ๋ฐฑ ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค. ํ
์คํธ ํ์๋ฅผ ์ํ ParkingManagement
ํด๋์ค์ ์ ํ์ ์ธ์๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ๋ชจ๋ธ์ ์กฐ์ ํ์ฌ ํจ์จ์ฑ๊ณผ ํจ๊ณผ๋ฅผ ๊ทน๋ํํ ์ ์์ต๋๋ค.
์ฃผ์ฐจ์ฅ ๊ด๋ฆฌ์์ Ultralytics YOLO11 ์ ์ค์ ์ ์ฉ ์ฌ๋ก์๋ ์ด๋ค ๊ฒ์ด ์๋์?
Ultralytics YOLO11 ๋ฅผ ๋น๋กฏํ ๋ค์ํ ์ค์ ์ฃผ์ฐจ์ฅ ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์ฉ๋๊ณ ์์ต๋๋ค:
- ์ฃผ์ฐจ ๊ณต๊ฐ ๊ฐ์ง: ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ๊ณผ ์ ์ ๊ณต๊ฐ์ ์ ํํ๊ฒ ํ์ ํฉ๋๋ค.
- ๊ฐ์: ์ค์๊ฐ ๋ชจ๋ํฐ๋ง์ ํตํด ๋ณด์์ ๊ฐํํฉ๋๋ค.
- ํธ๋ํฝ ํ๋ฆ ๊ด๋ฆฌ: ํจ์จ์ ์ธ ํธ๋ํฝ ์ฒ๋ฆฌ๋ก ์ ํด ์๊ฐ ๋ฐ ํผ์ก์ ์ค์ ๋๋ค. ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ฌ์ฃผ๋ ์ด๋ฏธ์ง๋ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์ธํ ์ ์์ต๋๋ค.