Ultralytics YOLO26를 활용한 VisionEye 객체 매핑 🚀
VisionEye 객체 매핑이란 무엇입니까?
Ultralytics YOLO26 VisionEye는 컴퓨터가 인간의 눈과 같은 정밀도로 객체를 식별하고 정확하게 찾아낼 수 있는 기능을 제공합니다. 이 기능을 통해 컴퓨터는 인간의 눈이 특정 시점에서 세부 사항을 관찰하는 것과 유사하게 특정 객체를 식별하고 집중할 수 있습니다.
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"VisionEye 인수
다음은 VisionEye 인수에 대한 표입니다:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
vision_point | tuple[int, int] | (20, 20) | VisionEye 솔루션을 사용하여 객체를 추적하고 경로를 그릴 기준점입니다. |
You can also utilize various track arguments within the VisionEye solution:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 사용할 추적 알고리즘을 지정합니다. 예: bytetrack.yaml 또는 botsort.yaml. |
conf | float | 0.1 | 탐지에 대한 신뢰도 임계값을 설정합니다. 낮은 값을 사용할수록 더 많은 객체가 추적되지만 오탐지가 포함될 수 있습니다. |
iou | float | 0.7 | 중복 탐지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다. |
classes | list | None | 클래스 인덱스별로 결과를 필터링합니다. 예를 들어, classes=[0, 2, 3]은 지정된 클래스만 추적합니다. |
verbose | bool | True | 추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다. |
device | str | None | 추론을 위한 장치(예: cpu, cuda:0 또는 0)를 지정합니다. 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중 하나를 선택할 수 있습니다. |
또한 아래와 같이 몇 가지 시각화 인수가 지원됩니다:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
show | bool | False | True인 경우 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다. |
line_width | int or None | None | 바운딩 박스의 선 두께를 지정합니다. None인 경우 이미지 크기에 따라 선 두께가 자동으로 조정됩니다. 명확성을 위한 시각적 사용자 정의를 제공합니다. |
show_conf | bool | True | 레이블과 함께 각 탐지에 대한 신뢰도 점수를 표시합니다. 각 탐지에 대한 모델의 확신 수준을 알 수 있습니다. |
show_labels | bool | True | 시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있게 합니다. |
VisionEye의 작동 원리
VisionEye는 프레임 내에 고정된 시점을 설정하고 이 지점에서 감지된 객체까지 선을 그리는 방식으로 작동합니다. 이는 인간의 시각이 단일 관점에서 여러 객체에 집중하는 방식을 시뮬레이션합니다. 이 솔루션은 객체 추적을 사용하여 프레임 전체에서 객체를 일관되게 식별하고, 관찰자(시점)와 장면 내 객체 간의 공간적 관계를 시각적으로 표현합니다.
VisionEye 클래스의 process 메서드는 다음과 같은 주요 작업을 수행합니다:
- 입력 이미지에서 트랙(바운딩 박스, 클래스, 마스크)을 추출합니다
- 바운딩 박스와 레이블을 그리기 위한 주석 생성기를 만듭니다
- 감지된 각 객체에 대해 박스 레이블을 그리고 시점에서 객체까지의 시각적 선을 생성합니다
- 추적 통계가 포함된 주석이 달린 이미지를 반환합니다
이 접근 방식은 감시 시스템, 자율 주행, 대화형 설치 미술과 같이 공간 인식과 객체 관계 시각화가 필요한 애플리케이션에 특히 유용합니다.
VisionEye의 애플리케이션
VisionEye 객체 매핑은 다양한 산업 분야에서 다음과 같이 실용적으로 활용될 수 있습니다:
- 보안 및 감시: 고정된 카메라 위치에서 관심 있는 여러 객체를 모니터링합니다
- 소매 분석: 매장 진열대와 관련하여 고객 이동 패턴을 추적합니다
- 스포츠 분석: 코치의 관점에서 선수들의 위치와 움직임을 분석합니다
- 자율 주행: 차량이 환경 내 객체를 어떻게 "보고" 우선순위를 정하는지 시각화합니다
- 인간-컴퓨터 상호작용: 공간 관계에 반응하는 보다 직관적인 인터페이스를 생성합니다
VisionEye를 거리 계산이나 속도 추정과 같은 다른 Ultralytics 솔루션과 결합하면 객체를 추적할 뿐만 아니라 그 공간적 관계와 행동까지 이해하는 포괄적인 시스템을 구축할 수 있습니다.
참고
문의 사항이 있으시면 Ultralytics Issue 섹션이나 아래 언급된 토론 섹션에 질문을 남겨 주십시오.
FAQ
Ultralytics YOLO26을 사용하여 VisionEye 객체 매핑을 시작하려면 어떻게 해야 합니까?
Ultralytics YOLO26으로 VisionEye 객체 매핑을 시작하려면 먼저 pip를 통해 Ultralytics YOLO 패키지를 설치해야 합니다. 그 후 문서에 제공된 샘플 코드를 사용하여 VisionEye를 포함한 객체 탐지를 설정할 수 있습니다. 다음은 시작을 위한 간단한 예제입니다:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo26n.pt", # use any model that Ultralytics supports, e.g., YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows왜 객체 매핑 및 추적에 Ultralytics YOLO26을 사용해야 합니까?
Ultralytics YOLO26은 속도, 정확도, 통합 편의성으로 유명하여 객체 매핑 및 추적을 위한 최고의 선택지입니다. 주요 장점은 다음과 같습니다:
- 최첨단 성능: 실시간 객체 탐지에서 높은 정확도를 제공합니다.
- 유연성: 탐지, 추적, 거리 계산 등 다양한 작업을 지원합니다.
- 커뮤니티 및 지원: 문제 해결과 기능 개선을 위한 방대한 문서와 활발한 GitHub 커뮤니티가 있습니다.
- 사용 편의성: 직관적인 API는 복잡한 작업을 단순화하여 신속한 배포와 반복을 가능하게 합니다.
애플리케이션과 이점에 대한 자세한 내용은 Ultralytics YOLO26 문서를 확인하십시오.
Comet이나 ClearML과 같은 다른 머신 러닝 도구와 VisionEye를 어떻게 통합할 수 있습니까?
Ultralytics YOLO26은 Comet 및 ClearML과 같은 다양한 머신 러닝 도구와 원활하게 통합되어 실험 추적, 협업 및 재현성을 향상시킵니다. 시작하려면 YOLOv5와 Comet 사용 방법 및 YOLO26과 ClearML 통합 방법에 대한 상세 가이드를 따르십시오.
추가적인 탐색과 통합 예제는 Ultralytics 통합 가이드를 확인하십시오.