Ultralytics YOLO11 ๐์ ์ฌ์ฉํ ์๋ ์ถ์
์๋ ์ถ์ ์ด๋ ๋ฌด์์ธ๊ฐ์?
์๋ ์ถ์ ์ด๋ ์ฃผ์ด์ง ์ํฉ ๋ด์์ ๋ฌผ์ฒด์ ์ด๋ ์๋๋ฅผ ๊ณ์ฐํ๋ ํ๋ก์ธ์ค๋ก, ์ปดํจํฐ ๋น์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ด์ Ultralytics YOLO11 ์ ์ฌ์ฉํ๋ฉด ๊ฑฐ๋ฆฌ ๋ฐ ์๊ฐ ๋ฐ์ดํฐ์ ํจ๊ป ๋ฌผ์ฒด ์ถ์ ์ ์ฌ์ฉํ์ฌ ๋ฌผ์ฒด์ ์๋๋ฅผ ๊ณ์ฐํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ตํต ๋ฐ ๊ฐ์์ ๊ฐ์ ์์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์๋ ์ถ์ ์ ์ ํ์ฑ์ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ์ง๋ฅํ ์์คํ ๊ณผ ์ค์๊ฐ ์์ฌ ๊ฒฐ์ ํ๋ก์ธ์ค์ ๋ฐ์ ์ ํต์ฌ์ ์ธ ์์์ ๋๋ค.
Watch: ๋ค์์ ์ฌ์ฉํ์ฌ ์๋ ์ถ์ Ultralytics YOLO11
๋ธ๋ก๊ทธ ํ์ธ
์๋ ์ถ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ( Ultralytics YOLO11 ์ปดํจํฐ ๋น์ ํ๋ก์ ํธ์ ์๋ ์ถ์ )์ ํ์ธํ์ธ์.
์๋ ์์ธก์ ์ฅ์ ์?
- ํจ์จ์ ์ธ ๊ตํต ํต์ : ์ ํํ ์๋ ์์ธก์ ๊ตํต ํ๋ฆ์ ๊ด๋ฆฌํ๊ณ ์์ ์ ๊ฐํํ๋ฉฐ ๋๋ก์ ํผ์ก์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ ๋ฐํ ์์จ์ฃผํ ๋ด๋น๊ฒ์ด์ : ์์จ์ฃผํ์ฐจ์ ๊ฐ์ ์์จ ์ฃผํ ์์คํ ์์๋ ์ ๋ขฐํ ์ ์๋ ์๋ ์์ธก์ ํตํด ์์ ํ๊ณ ์ ํํ ์ฐจ๋ ๋ด๋น๊ฒ์ด์ ์ ๋ณด์ฅํฉ๋๋ค.
- ๊ฐํ๋ ๋ณด์ ๊ฐ์: ๊ฐ์ ๋ถ์์ ์๋ ์ถ์ ๊ธฐ๋ฅ์ ๋น์ ์์ ์ธ ํ๋์ด๋ ์ ์ฌ์ ์ํ์ ์๋ณํ์ฌ ๋ณด์ ์กฐ์น์ ํจ๊ณผ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ค์ ์ ํ๋ฆฌ์ผ์ด์
๊ตํตํธ | ๊ตํตํธ |
---|---|
๋ค์์ ์ฌ์ฉํ์ฌ ๋๋ก์์ ์๋ ์ถ์ Ultralytics YOLO11 | ๋ค์์ ์ฌ์ฉํ์ฌ ๋ธ๋ฆฌ์ง์์ ์๋ ์ถ์ Ultralytics YOLO11 |
YOLO11 ์์ ๋ฅผ ์ฌ์ฉํ ์๋ ์ถ์
import cv2
from ultralytics import solutions
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Define speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
speed = solutions.SpeedEstimator(
show=True, # Display the output
model="yolo11n-pose.pt", # Path to the YOLO11 model file.
region=speed_region, # Pass region points
# classes=[0, 2], # If you want to estimate speed of specific classes.
# line_width=2, # Adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if success:
out = speed.estimate_speed(im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
์๋๋ ์ถ์ ์น์ ๋๋ค.
์๋๋ ์ถ์ ์น์ด๋ฉฐ ์์ ํ ์ ํํ์ง ์์ ์ ์์ต๋๋ค. ๋ํ GPU ์๋์ ๋ฐ๋ผ ์ถ์ ์น๊ฐ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
์ธ์ SpeedEstimator
์ด๋ฆ | ์ ํ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO ๋ชจ๋ธ ํ์ผ ๊ฒฝ๋ก |
region |
list |
[(20, 400), (1260, 400)] |
๊ณ์ฐ ์์ญ์ ์ ์ํ๋ ํฌ์ธํธ ๋ชฉ๋ก์ ๋๋ค. |
line_width |
int |
2 |
๊ฒฝ๊ณ ์์์ ์ ๋๊ป์ ๋๋ค. |
show |
bool |
False |
๋น๋์ค ์คํธ๋ฆผ ํ์ ์ฌ๋ถ๋ฅผ ์ ์ดํ๋ ํ๋๊ทธ์ ๋๋ค. |
์ธ์ 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 ์ผ๋ก ๋ฌผ์ฒด ์๋๋ฅผ ์ถ์ ํ๋ ค๋ฉด ๋ฌผ์ฒด ๊ฐ์ง ๋ฐ ์ถ์ ๊ธฐ์ ์ ๊ฒฐํฉํด์ผ ํฉ๋๋ค. ๋จผ์ YOLO11 ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๊ฐ ํ๋ ์์์ ๋ฌผ์ฒด๋ฅผ ๊ฐ์งํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ๋ฌ ํ๋ ์์ ๊ฑธ์ณ ์ด๋ฌํ ๊ฐ์ฒด๋ฅผ ์ถ์ ํ์ฌ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๊ฐ์ฒด์ ์์ง์์ ๊ณ์ฐํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ํ๋ ์ ๊ฐ์ ๋ฌผ์ฒด๊ฐ ์ด๋ํ ๊ฑฐ๋ฆฌ์ ํ๋ ์ ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌผ์ฒด์ ์๋๋ฅผ ์ถ์ ํฉ๋๋ค.
์์:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video/file.mp4")
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 = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
region=[(0, 360), (1280, 360)],
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
im0 = speed_obj.estimate_speed(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
์์ธํ ๋ด์ฉ์ ๊ณต์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ธ์.
ํธ๋ํฝ ๊ด๋ฆฌ์์ ์๋ ์์ธก์ ์ํด Ultralytics YOLO11 ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ด์ ์ด ์๋์?
์๋ ์์ธก์ Ultralytics YOLO11 ์ ์ฌ์ฉํ๋ฉด ํธ๋ํฝ ๊ด๋ฆฌ์ ์๋นํ ์ด์ ์ด ์์ต๋๋ค:
- ํฅ์๋ ์์ ์ฑ: ์ฐจ๋ ์๋๋ฅผ ์ ํํ๊ฒ ์์ธกํ์ฌ ๊ณผ์์ ๊ฐ์งํ๊ณ ๋๋ก ์์ ์ ๊ฐ์ ํฉ๋๋ค.
- ์ค์๊ฐ ๋ชจ๋ํฐ๋ง: YOLO11 ์ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ตํต ํ๋ฆ๊ณผ ํผ์ก์ ํจ๊ณผ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ธ์.
- ํ์ฅ์ฑ: ์ฃ์ง ๋๋ฐ์ด์ค์์ ์๋ฒ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํ๋์จ์ด ์ค์ ์ ๋ชจ๋ธ์ ๋ฐฐํฌํ์ฌ ๋๊ท๋ชจ ๊ตฌํ์ ์ํ ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋ณด์ฅํฉ๋๋ค.
๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ ์ถ์ ์ ์ฅ์ ์ ์ฐธ์กฐํ์ธ์.
YOLO11 ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ AI ํ๋ ์์ํฌ์ ํตํฉํ ์ ์์ต๋๊น? TensorFlow ๋๋ PyTorch?
์, YOLO11 ์ TensorFlow ๋ฐ PyTorch ๊ณผ ๊ฐ์ ๋ค๋ฅธ AI ํ๋ ์์ํฌ์ ํตํฉํ ์ ์์ผ๋ฉฐ Ultralytics ์ YOLO11 ๋ชจ๋ธ์ ONNX, TensorRT, CoreML ๊ณผ ๊ฐ์ ๋ค์ํ ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์๋๋ก ์ง์ํ์ฌ ๋ค๋ฅธ ML ํ๋ ์์ํฌ์์ ์ํํ ์ํธ ์ด์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
YOLO11 ๋ชจ๋ธ์ ONNX ํ์์ผ๋ก ๋ด๋ณด๋ด๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ธ์:
๋ด๋ณด๋ด๊ธฐ ๊ฐ์ด๋์์ ๋ชจ๋ธ ๋ด๋ณด๋ด๊ธฐ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
Ultralytics YOLO11 ์ ์ฌ์ฉํ ์๋ ์์ธก์ ์ผ๋ง๋ ์ ํํฉ๋๊น?
Ultralytics YOLO11 ์ ์ฌ์ฉํ ์๋ ์ถ์ ์ ํ๋๋ ๊ฐ์ฒด ์ถ์ ์ ํ์ง, ๋์์์ ํด์๋ ๋ฐ ํ๋ ์ ์๋, ํ๊ฒฝ ๋ณ์ ๋ฑ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์๋ ์ถ์ ๊ธฐ๋ ์ ๋ขฐํ ์ ์๋ ์ถ์ ์น๋ฅผ ์ ๊ณตํ์ง๋ง ํ๋ ์ ์ฒ๋ฆฌ ์๋์ ์ค๋ธ์ ํธ ์คํด๋ฃจ์ ์ ์ฐจ์ด๋ก ์ธํด 100% ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
์ฐธ๊ณ : ํญ์ ์ค์ฐจ ๋ฒ์๋ฅผ ๊ณ ๋ คํ๊ณ ๊ฐ๋ฅํ๋ฉด ์ค์ธก ๋ฐ์ดํฐ๋ก ์ถ์ ์น๋ฅผ ๊ฒ์ฆํ์ธ์.
์ถ๊ฐ ์ ํ๋ ํฅ์ ํ์ ํ์ธํ๋ ค๋ฉด ์ธ์ SpeedEstimator
์น์
.
TensorFlow ๊ฐ์ฒด ๊ฐ์ง API์ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ ๋์ Ultralytics YOLO11 ์ ์ ํํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
Ultralytics YOLO11 ๋ TensorFlow ๊ฐ์ฒด ๊ฐ์ง API์ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ๋นํด ๋ช ๊ฐ์ง ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค:
- ์ค์๊ฐ ์ฑ๋ฅ: YOLO11 ์ ์ค์๊ฐ ๊ฐ์ง์ ์ต์ ํ๋์ด ๋น ๋ฅธ ์๋์ ์ ํ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฉ ํธ์์ฑ: ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ก ์ค๊ณ๋ YOLO11 ๋ ๋ชจ๋ธ ๊ต์ก ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค.
- ๋ค๋ชฉ์ ์ฑ: ๋ฌผ์ฒด ๊ฐ์ง, ์ธ๋ถํ, ํฌ์ฆ ์ถ์ ๋ฑ ๋ค์ํ ์์ ์ ์ง์ํฉ๋๋ค.
- ์ปค๋ฎค๋ํฐ ๋ฐ ์ง์: YOLO11 ์ ํ๋ฐํ ์ปค๋ฎค๋ํฐ์ ๊ด๋ฒ์ํ ๋ฌธ์๋ก ๊ฐ๋ฐ์๊ฐ ํ์ํ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
YOLO11 ์ ํํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ธํ ๋ชจ๋ธ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.