YOLO Vision 2026:

Ultralytics YOLO26를 활용한 VisionEye 뷰 객체 매핑 🚀#

VisionEye 객체 매핑이란 무엇입니까?#

Ultralytics YOLO26 VisionEye는 인간의 관찰 정밀도를 시뮬레이션하여 컴퓨터가 객체를 식별하고 정확히 찾아낼 수 있는 기능을 제공합니다. 이 기능은 인간의 눈이 특정 시점에서 세부 사항을 관찰하는 것과 유사하게 컴퓨터가 특정 객체를 식별하고 집중할 수 있도록 해줍니다.

VisionEye object mapping with YOLO tracking

YOLO26을 사용하여 객체 매핑하기#

VisionEye는 프레임 내에 단일 관찰 지점을 고정하고 그 지점에서 추적된 모든 객체로 광선을 그려주므로, 하나의 시점에서 장면에 어떤 모습인지 시각화할 수 있습니다. vision_point을 관찰자의 픽셀 좌표로 설정한 다음, Python API 또는 CLI를 사용하여 비디오에서 솔루션을 실행하십시오.

Ultralytics YOLO를 사용한 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 인수가 포함된 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
vision_pointtuple[int, int](20, 20)VisionEye 솔루션을 사용하여 시야가 객체를 추적하고 경로를 그릴 기준점입니다.

VisionEye 솔루션 내에서 다양한 track 인수를 활용할 수도 있습니다.

인수유형기본값설명
trackerstr'tracktrack.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1탐지에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체가 추적되지만 잘못된 긍정 탐지(false positives)가 포함될 수 있습니다.
ioufloat0.7겹치는 감지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
verboseboolTrue추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다.
devicestrNone추론용 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자가 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 선택할 수 있도록 합니다.

또한 아래와 같이 시각화 관련 인수도 지원됩니다:

인수유형기본값설명
showboolFalseTrue인 경우, 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백에 유용합니다.
line_widthint or NoneNone바우딩 박스의 선 두께를 지정합니다. None인 경우, 선 두께가 이미지 크기에 따라 자동으로 조정됩니다. 가독성을 위한 시각적 커스텀을 제공합니다.
show_confboolTrue각 탐지에 대한 신뢰도 점수를 레이블과 함께 표시합니다. 각 탐지에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다.

VisionEye 작동 원리#

VisionEye는 프레임 내에 고정된 시각 지점을 설정하고 이 지점에서 감지된 객체로 선을 그려 작동합니다. 이는 인간의 시각이 단일 시점에서 여러 객체에 집중하는 방식을 시뮬레이션합니다. 이 솔루션은 객체 추적을 사용하여 프레임 전반에 걸쳐 객체의 일관된 식별을 유지하며, 관찰자(시각 지점)와 장면 내 객체 간의 공간적 관계를 시각적으로 표현합니다.

VisionEye 클래스의 process 메서드는 몇 가지 주요 작업을 수행합니다:

  1. 입력 이미지에서 트랙(바운딩 박스, 클래스, 마스크)을 추출합니다
  2. 바운딩 박스와 라벨을 그리기 위한 주석 도구(annotator)를 생성합니다
  3. 감지된 각 객체에 대해 박스 라벨을 그리고 vision point에서 시작하는 시선(vision line)을 생성합니다
  4. 추적 통계가 포함된 주석 처리된 이미지를 반환합니다

이 접근 방식은 감시 시스템, 자율 주행, 인터랙티브 설치 등 공간 인식과 객체 관계 시각화가 필요한 애플리케이션에 특히 유용합니다.

VisionEye의 애플리케이션#

VisionEye 객체 매핑은 다양한 산업 전반에서 여러 실용적인 용도로 활용됩니다:

  • 보안 및 감시: 고정된 카메라 위치에서 관심 있는 여러 객체를 모니터링합니다
  • 소매 분석: 매장 진열대와 관련하여 고객 이동 패턴을 추적합니다
  • 스포츠 분석: 코치의 관점에서 선수들의 위치와 움직임을 분석합니다
  • 자율 주행: 차량이 환경 내의 객체를 어떻게 "보고" 우선순위를 지정하는지 시각화합니다
  • 인간-컴퓨터 상호작용: 공간 관계에 반응하는 보다 직관적인 인터페이스를 생성합니다

VisionEye를 거리 계산이나 속도 추정과 같은 다른 Ultralytics 솔루션과 결합하면 객체를 추적할 뿐만 아니라 공간적 관계와 동작을 이해하는 종합적인 시스템을 구축할 수 있습니다.

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은 속도, 정확도, 쉬운 통합으로 유명하여 객체 매핑 및 추적을 위한 최고의 선택입니다. 주요 장점은 다음과 같습니다:

  1. 최첨단 성능: 실시간 객체 탐지에서 높은 정확도를 제공합니다.
  2. 유연성: 탐지, 추적, 거리 계산 등 다양한 작업을 지원합니다.
  3. 커뮤니티 및 지원: 문제 해결 및 개선을 위한 방대한 문서와 활발한 GitHub 커뮤니티가 있습니다.
  4. 사용 편의성: 직관적인 API가 복잡한 작업을 단순화하여 신속한 배포 및 반복 작업을 가능하게 합니다.

응용 프로그램 및 이점에 대한 자세한 내용은 Ultralytics YOLO26 문서를 확인하십시오.

Comet이나 ClearML과 같은 다른 머신러닝 도구와 VisionEye를 어떻게 통합할 수 있습니까?#

Ultralytics YOLO26은 Comet 및 ClearML과 같은 다양한 머신러닝 도구와 원활하게 통합되어 실험 추적, 협업 및 재현성을 향상시킬 수 있습니다. 시작하려면 Comet에서 YOLOv5를 사용하는 방법YOLO26을 ClearML과 통합하기에 대한 상세 가이드를 따르십시오.

추가적인 탐색 및 통합 예시를 보려면 Ultralytics 통합 가이드를 확인하십시오.

댓글