컴퓨터 비전 프로젝트의 속도 측정을 위한 Ultralytics YOLOv8
Ultralytics YOLOv8 모델을 사용하여 컴퓨터 비전 프로젝트에서 속도 측정에 활용하는 방법을 알아보십시오. 간단한 코딩 예제로 직접 테스트해 보십시오.

우리 모두는 제한 속도 도로 표지판을 본 적이 있을 것입니다. 심지어 우편이나 이메일로 자동 제한 속도 위반 고지서를 받은 적이 있는 사람도 있을 것입니다. 인공지능(AI) 교통 관리 시스템은 컴퓨터 비전 덕분에 과속 위반을 자동으로 적발할 수 있습니다. 신호등이나 고속도로에 설치된 카메라로 촬영한 실시간 영상은 속도 측정 및 도로 안전 강화에 활용됩니다.
속도 측정은 단순히 고속도로 안전에만 국한되지 않습니다. 스포츠, 자율주행 차량 및 기타 다양한 애플리케이션에서 사용될 수 있습니다. 이 기사에서는 컴퓨터 비전 프로젝트에서 Ultralytics YOLOv8 모델을 사용하여 속도를 측정하는 방법을 논의합니다. 또한 직접 시도해 볼 수 있도록 코딩 예제를 단계별로 살펴보겠습니다. 시작해 봅시다!
Link to this section속도 측정으로 더 쉬워진 교통 관리#
세계보건기구(WHO)에 따르면 매년 약 119만 명의 사람들이 과속으로 인한 교통사고로 사망합니다. 또한 2천만 명에서 5천만 명 이상의 사람들이 비치명적 부상을 입으며, 이 중 상당수는 장애로 이어집니다. 특히 속도 측정이 사고를 예방하고 생명을 구하며 도로를 안전하고 효율적으로 유지하는 데 도움을 줄 때 교통 보안의 중요성은 아무리 강조해도 지나치지 않습니다.
컴퓨터 비전을 이용한 속도 측정은 영상 프레임 내의 객체를 감지하고 추적하여 이동 속도를 계산하는 과정을 포함합니다. YOLOv8과 같은 알고리즘은 연속적인 프레임 전반에서 차량과 같은 객체를 식별하고 추적할 수 있습니다. 시스템은 실제 거리를 측정하기 위해 보정된 카메라나 기준점을 사용하여 이러한 객체가 이동하는 거리를 측정합니다. 객체가 두 지점 사이를 이동하는 데 걸리는 시간을 측정함으로써 시스템은 거리-시간 비율을 사용하여 속도를 계산합니다.

그림 1. Ultralytics YOLOv8 모델을 이용한 속도 측정.
과속 차량을 단속하는 것 외에도 AI 통합 속도 측정 시스템은 교통에 대한 예측을 수행하기 위해 데이터를 수집할 수 있습니다. 이러한 예측은 신호 타이밍 최적화 및 자원 할당과 같은 교통 관리 작업을 지원할 수 있습니다. 교통 패턴 및 정체 원인에 대한 통찰력은 교통 혼잡을 줄이기 위한 새로운 도로 계획에 활용될 수 있습니다.
Link to this section다른 산업에서의 속도 측정 애플리케이션#
속도 측정 애플리케이션은 도로 모니터링을 넘어섭니다. 이는 운동선수의 성과를 모니터링하고, 자율주행 차량이 주변에서 움직이는 객체의 속도를 파악하도록 돕고, 의심스러운 행동을 감지하는 등에 유용할 수 있습니다. 카메라를 사용하여 객체의 속도를 측정할 수 있는 곳이라면 어디든지 컴퓨터 비전을 이용한 속도 측정을 사용할 수 있습니다.
다음은 속도 측정이 사용되는 몇 가지 예시입니다.
- Tesla의 자율주행 자동차는 충돌을 방지하기 위해 비전 기반 속도 측정을 사용합니다.
- 컴퓨터 비전과 속도 측정은 2024년 올림픽에서 육상 경기 성능 분석을 개선하는 데 사용될 것입니다.
- 스마트 시티에서는 보행 속도를 모니터링하고 도시의 이동성과 안전을 향상시키기 위해 보행자 보행 분석을 연구하고 있습니다. 이러한 시스템은 운전자에게 보행자의 존재를 알리고 사고를 예방할 수 있습니다.
- 동물 행동 모니터링 시스템은 속도 측정을 사용하여 동물의 움직임을 추적하고 고통이나 질병의 징후를 감지합니다.

그림 2. 속도 측정은 사람의 보행 속도를 측정할 수 있습니다.
Link to this section컴퓨터 비전을 사용한 속도 측정의 이점#
비전 기반 속도 측정 시스템은 향상된 정확도, 비용 효율성 및 유연성 덕분에 기존의 센서 기반 방식을 대체하고 있습니다. LiDAR와 같은 값비싼 센서에 의존하는 시스템과 달리 컴퓨터 비전은 표준 카메라를 사용하여 실시간으로 속도를 모니터링하고 분석합니다. 속도 측정을 위한 컴퓨터 비전 솔루션은 기존 교통 인프라와 원활하게 통합될 수 있습니다. 또한, 이러한 시스템은 전체적인 교통 흐름과 안전을 개선하기 위해 차량 유형 식별 및 교통 패턴 분석과 같은 여러 복잡한 작업을 수행하도록 구축될 수 있습니다.
Link to this section직접 해보기: YOLOv8을 이용한 속도 측정#
이제 속도 측정과 그 응용 분야에 대해 명확히 이해했으므로, 코드를 통해 컴퓨터 비전 프로젝트에 속도 측정을 통합하는 방법을 자세히 살펴보겠습니다. YOLOv8 모델을 사용하여 움직이는 차량을 감지하고 속도를 추정할 것입니다.
이 예제는 인터넷에서 다운로드한 도로 위의 자동차 영상을 사용합니다. 동일한 영상이나 관련 영상을 사용할 수 있습니다. YOLOv8 모델은 각 차량의 중심을 식별하고 이 중심이 영상 프레임 내의 수평선을 통과하는 속도에 따라 차량의 속도를 계산합니다.
시작하기 전에, 이 경우의 거리 계산은 근사치이며 유클리드 거리에 기반한다는 점에 유의해야 합니다. 카메라 보정이 고려되지 않았으므로 속도 측정이 완전히 정확하지 않을 수 있습니다. 또한, 추정 속도는 GPU의 속도에 따라 달라질 수 있습니다.
1단계: Ultralytics 패키지를 설치하는 것으로 시작합니다. 명령 프롬프트나 터미널을 열고 아래 표시된 명령을 실행하십시오.
pip install ultralytics설치 과정에 대한 단계별 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하십시오. YOLOv8에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드에서 해결 방법과 유용한 팁을 확인할 수 있습니다.
2단계: 다음으로 필요한 라이브러리를 가져옵니다. OpenCV 라이브러리는 영상 처리를 처리하는 데 도움을 줍니다.
import cv2
from ultralytics import YOLO, solutions3단계: 그 다음 YOLOv8 모델을 로드하고 모델이 감지할 수 있는 클래스 이름을 가져올 수 있습니다.
model = YOLO("yolov8n.pt")
names = model.model.names프로젝트에 가장 적합한 모델을 이해하려면 지원하는 모든 모델을 확인하십시오.
4단계: 이 단계에서는 OpenCV의 VideoCapture 모듈을 사용하여 입력 영상 파일을 엽니다. 또한 영상의 너비, 높이 및 초당 프레임 수(fps)를 추출합니다.
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))5단계: 여기에서 속도 측정의 최종 결과를 저장하기 위해 비디오 라이터를 초기화합니다. 출력 영상 파일은 “speed_estimation.avi”로 저장됩니다.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))6단계: 다음으로 속도 측정을 위한 선 지점을 정의할 수 있습니다. 입력 영상의 경우, 이 선은 프레임 중앙에 수평으로 배치됩니다. 입력 영상에 따라 선을 가장 적합한 위치에 배치하기 위해 값을 자유롭게 조정해 보십시오.
line_pts = [(0, 360), (1280, 360)]7단계: 이제 정의된 선 지점과 클래스 이름을 사용하여 속도 측정 객체를 초기화할 수 있습니다.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)8단계: 스크립트의 핵심은 영상을 프레임 단위로 처리하는 것입니다. 각 프레임을 읽고 객체를 감지 및 추적합니다. 추적된 객체의 속도가 추정되고, 주석이 달린 프레임이 출력 영상으로 작성됩니다.
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)9단계: 마지막으로 비디오 캡처 및 라이터 객체를 해제하고 모든 OpenCV 창을 닫습니다.
cap.release()
video_writer.release()
cv2.destroyAllWindows()10단계: 스크립트를 저장합니다. 터미널이나 명령 프롬프트에서 작업 중인 경우 다음 명령을 사용하여 스크립트를 실행하십시오.
python your_script_name.pyLink to this section비전 기반 속도 측정의 과제#
컴퓨터 비전을 사용하여 속도 측정을 구현할 때 관련된 과제를 이해하는 것도 중요합니다. 비, 안개, 눈과 같은 좋지 않은 기상 조건은 도로의 가시성을 방해할 수 있으므로 시스템에 문제를 일으킬 수 있습니다. 마찬가지로, 다른 차량이나 객체에 의해 발생하는 폐색(occlusion)은 이러한 시스템이 대상 차량의 속도를 정확하게 추적하고 추정하는 것을 어렵게 만들 수 있습니다. 그림자나 태양의 눈부심을 유발하는 나쁜 조명 조건 또한 속도 측정 작업을 더욱 복잡하게 만들 수 있습니다.
또 다른 과제는 컴퓨팅 파워와 관련이 있습니다. 실시간으로 속도를 측정하려면 고화질 교통 카메라에서 나오는 많은 시각적 데이터를 처리해야 합니다. 귀하의 솔루션은 이 모든 것을 처리하고 지연 없이 모든 것이 빠르게 작동하도록 보장하기 위해 고가의 하드웨어가 필요할 수 있습니다.
다음으로 개인정보 보호 문제가 있습니다. 이러한 시스템이 수집하는 데이터에는 브랜드, 모델, 번호판 정보와 같이 개인의 동의 없이 수집되는 개인의 차량 상세 정보가 포함될 수 있습니다. 일부 최신 HD 카메라는 차량 내부 탑승자의 이미지를 캡처할 수도 있습니다. 이러한 데이터 수집은 최대한의 주의를 기울여 처리해야 하는 심각한 윤리적 및 법적 문제를 야기할 수 있습니다.
Link to this section미래를 향한 속도#
속도 측정을 위해 Ultralytics YOLOv8 모델을 사용하는 것은 많은 용도에 유연하고 효율적인 솔루션을 제공합니다. 까다로운 조건에서의 정확도와 개인정보 보호 문제 해결과 같은 과제가 있지만, 그 이점은 다방면입니다. 컴퓨터 비전이 활성화된 속도 측정은 기존 방식에 비해 비용 효율적이고 적응력이 뛰어나며 정밀합니다. 이는 운송, 스포츠, 감시 및 자율주행 자동차와 같은 다양한 분야에서 유용합니다. 모든 이점과 애플리케이션을 고려할 때, 이는 미래 스마트 시스템의 핵심 부분이 될 것입니다.
AI에 관심이 있으신가요? 저희 커뮤니티와 소통해 보세요! GitHub 저장소를 둘러보고 저희가 어떻게 AI를 활용하여 의료 및 농업과 같은 다양한 산업 분야에서 혁신적인 솔루션을 만들어내고 있는지 확인해 보시기 바랍니다. 저희와 함께 협업하고, 혁신하며, 배워보세요! 🚀






