Ultralytics YOLO27:
Get Started

Ultralytics 솔루션: YOLO26으로 실제 문제 해결#

Ultralytics 솔루션은 YOLO 모델을 활용한 최첨단 애플리케이션을 제공하며, 객체 카운팅, 블러 처리, 보안 시스템과 같은 실제 솔루션을 통해 다양한 산업에서 효율성과 정확도를 높입니다. YOLO26을 실용적이고 영향력 있는 구현에 활용하는 방법을 알아보세요.

Ultralytics 솔루션 썸네일



시청: 명령줄(CLI)에서 Ultralytics 솔루션을 실행하는 방법 | Ultralytics YOLO26 🚀

솔루션#

다음은 훌륭한 컴퓨터 비전 프로젝트를 만드는 데 사용할 수 있도록 엄선한 Ultralytics 솔루션 목록입니다.

  • 분석: YOLO26을 활용해 포괄적인 데이터 분석을 수행하고 패턴을 발견하여 정보에 기반한 의사결정을 내립니다. 설명적, 예측적, 처방적 분석을 지원합니다.
  • 거리 계산: YOLO26에서 바운딩 박스 중심점을 사용해 객체 간 거리를 계산합니다. 이는 공간 분석에 필수적입니다.
  • 히트맵: 탐지 히트맵을 활용해 행렬 전반의 데이터 강도를 시각화하고 컴퓨터 비전 작업에 대한 명확한 인사이트를 제공합니다.
  • 객체 추적을 포함한 인스턴스 세그멘테이션: YOLO26으로 인스턴스 세그멘테이션과 객체 추적을 구현하여 객체 경계를 정밀하게 파악하고 지속적으로 모니터링합니다.
  • Streamlit을 사용한 실시간 추론: 사용자 친화적인 Streamlit 인터페이스를 통해 웹 브라우저에서 직접 YOLO26의 강력한 기능을 활용해 실시간 객체 탐지를 수행합니다.
  • 객체 블러 처리: YOLO26을 사용해 객체를 블러 처리하여 이미지 및 비디오 처리 과정에서 개인정보를 보호합니다.
  • 객체 카운팅: YOLO26으로 실시간 객체 카운팅을 수행하는 방법을 알아보세요. 라이브 비디오 스트림에서 객체를 정확하게 세는 전문 지식을 익힐 수 있습니다.
  • 영역별 객체 카운팅: YOLO26을 사용해 특정 영역의 객체를 세어 다양한 영역에서 정확하게 탐지합니다.
  • 객체 크롭: YOLO26으로 객체 크롭을 수행해 이미지와 비디오에서 객체를 정확하게 추출하는 방법을 익힙니다.
  • 주차 관리: YOLO26으로 주차 구역의 차량 흐름을 정리하고 안내하여 공간 활용도와 사용자 경험을 최적화합니다.
  • 대기열 관리: YOLO26을 사용해 효율적인 대기열 관리 시스템을 구현하여 대기 시간을 최소화하고 생산성을 높입니다.
  • 보안 경보 시스템: YOLO26으로 새로운 객체가 탐지되면 경보를 발생시키는 보안 경보 시스템을 구축합니다. 특정 요구 사항에 맞게 시스템을 사용자 지정할 수 있습니다.
  • 유사도 검색: OpenAI CLIP 임베딩과 코사인 유사도 검색을 결합해 지능형 이미지 검색을 구현합니다. 이를 통해 "가방을 들고 있는 사람" 또는 "이동 중인 차량"과 같은 자연어 쿼리를 사용할 수 있습니다.
  • 속도 추정: YOLO26과 객체 추적 기법을 사용해 객체 속도를 추정합니다. 자율주행 차량 및 교통 모니터링과 같은 애플리케이션에 필수적입니다.
  • 구역 내 객체 추적: YOLO26을 사용해 비디오 프레임의 특정 구역 내 객체를 추적하는 방법을 알아보고, 정밀하고 효율적인 모니터링을 구현합니다.
  • VisionEye 시점 객체 매핑: 특정 객체에 대한 사람 눈의 초점을 모방하는 시스템을 개발하여 세부 정보를 식별하고 우선순위를 지정하는 컴퓨터의 능력을 향상합니다.
  • 운동 모니터링: YOLO26으로 운동을 모니터링하는 방법을 알아보세요. 다양한 피트니스 루틴을 실시간으로 추적하고 분석할 수 있습니다.

솔루션 인수#

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일의 경로입니다.
regionlist 또는 dictNone관심 영역을 정의하는 점입니다. (x, y) 튜플 목록 또는 여러 영역에 대해 영역 이름을 점 목록에 매핑하는 사전(RegionCounter만 해당)으로 지정할 수 있습니다. None이면 영역이 필요한 Solutions는 사전 정의된 기본값을 사용합니다.
show_inboolTrue비디오 스트림에 진입 수를 표시할지 제어하는 플래그입니다.
show_outboolTrue비디오 스트림에 이탈 수를 표시할지 제어하는 플래그입니다.
analytics_typestr'line'그래프 유형입니다. line, bar, area 또는 pie을 지정할 수 있습니다.
colormapintcv2.COLORMAP_DEEPGREEN히트맵에 사용할 컬러맵입니다.
line_widthint2Solution에서 그리는 상자, 키포인트 및 개수 표시의 선 두께입니다.
verboseboolTrue프레임별 입력 형태, 클래스 개수 및 처리 속도 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다.
json_filestrNone모든 주차 좌표 데이터가 포함된 JSON 파일의 경로입니다.
up_anglefloat145.0'위' 자세의 각도 임계값입니다.
kptslist[int][6, 8, 10]운동 모니터링에 사용할 키포인트 인덱스 3개의 목록입니다. 이 키포인트는 팔굽혀펴기, 턱걸이, 스쿼트 및 복근 운동과 같은 운동에 필요한 어깨, 팔꿈치, 손목 등의 신체 관절이나 부위에 해당합니다.
down_anglefloat90.0'아래' 자세의 각도 임계값입니다.
blur_ratiofloat0.5블러 강도의 비율을 조정하며, 값의 범위는 0.1 - 1.0입니다.
crop_dirstr'cropped-detections'잘라낸 감지 결과를 저장할 디렉터리 이름입니다.
recordsint5보안 경보 시스템에서 이메일을 트리거하는 총 감지 횟수입니다.
vision_pointtuple[int, int](20, 20)VisionEye 솔루션을 사용하여 객체를 추적하고 경로를 그릴 기준점입니다.
sourcestrNone입력 소스(비디오, RTSP 등)의 경로입니다. Solutions 명령줄 인터페이스(CLI)에서만 사용할 수 있습니다.
figsizetuple[float, float](12.8, 7.2)Analytics 차트의 크기(인치)입니다. (12.8, 7.2)은 1280×720 프레임을 렌더링합니다.
fpsfloat30.0속도 계산에 사용하는 초당 프레임 수입니다.
max_histint5속도 및 방향 계산을 위해 객체별로 추적할 최대 과거 지점 수입니다.
meter_per_pixelfloat0.05픽셀 거리를 실제 단위로 변환하는 데 사용하는 스케일링 계수입니다.
max_speedint120최대 속도(km/h)입니다. 추정 속도가 이를 초과하면 이 값으로 제한됩니다.
datastr'images'유사도 검색에 사용하는 이미지 디렉터리 경로입니다.
imgszint640모델 추론에 사용할 입력 이미지 크기입니다.
추적 인수

솔루션은 아래의 추론 및 추적 인수를 model.track()에 전달합니다.

인수유형기본값설명
trackerstr'tracktrack.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25탐지에 대한 신뢰도 임계값을 설정합니다. 값을 낮추면 추적할 수 있는 객체가 늘어나지만 오탐이 포함될 수 있습니다.
ioufloat0.7중복 탐지를 필터링하기 위한 교집합 대비 합집합 (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
devicestrNone추론에 사용할 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자는 모델 실행에 사용할 CPU, 특정 GPU 또는 기타 연산 장치를 선택할 수 있습니다.
imgszint or tuple640추론 대상 이미지 크기입니다. 정사각형을 나타내는 정수 또는 (height, width) 쌍을 지정합니다. 모델 stride에 맞춰 형태가 조정됩니다.
max_detint300추적 전에 프레임별로 유지할 최대 탐지 수를 지정하여 밀집된 장면에서 솔루션이 처리하는 객체 수를 제한합니다.
quantizeint or strNone추론 정밀도: CPU 이외의 환경에서 PyTorch 및 TorchScript 모델은 16(FP16) 또는 32/unset(FP32)을 사용하며, 다른 형식은 아티팩트와 런타임이 선택하는 정밀도를 사용합니다. 더 이상 사용되지 않는 half 인수를 대체합니다.
시각화 인수

show_conf, show_labels 및 앞서 언급한 다른 인수를 사용해 시각화를 사용자 지정할 수 있습니다.

인수유형기본값설명
showboolFalseTrue이면 주석이 추가된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.
show_confboolTrue각 감지 결과의 레이블 옆에 신뢰도 점수를 표시합니다. 각 감지 결과에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각화 출력에 각 감지 결과의 레이블을 표시합니다. 감지된 객체를 즉시 파악할 수 있습니다.

SolutionAnnotator 사용#

모든 Ultralytics 솔루션은 별도의 클래스 SolutionAnnotator를 사용합니다. 이 클래스는 기본 Annotator 클래스를 확장하며 다음 메서드를 제공합니다.

메서드반환 유형설명
draw_region()None지정된 점, 색상 및 두께를 사용해 영역을 그립니다.
queue_counts_display()None지정된 영역의 대기열 개수를 표시합니다.
display_analytics()None주차장 관리에 대한 전반적인 통계를 표시합니다.
estimate_pose_angle()float객체 자세에서 세 점 사이의 각도를 계산합니다.
draw_specific_kpts()np.ndarray이미지에 지정된 키포인트를 그립니다.
plot_workout_information()int이미지에 레이블이 있는 텍스트 상자를 그립니다.
plot_angle_and_count_and_stage()None운동 모니터링을 위해 각도, 스텝 수 및 단계를 시각화합니다.
plot_distance_and_line()None중심점 사이의 거리를 표시하고 선으로 연결합니다.
display_objects_labels()None객체 클래스 레이블로 바운딩 박스에 주석을 표시합니다.
sweep_annotator()None수직 스윕 라인과 선택적 레이블을 시각화합니다.
visioneye()None객체 중심점을 시각적 "눈" 지점에 매핑하고 연결합니다.
adaptive_label()None바운딩 박스 중앙에 원형 또는 직사각형 배경 레이블을 그립니다.

SolutionResults 사용#

Similarity Search을 제외하면 각 Solution 호출은 SolutionResults 객체를 반환합니다.

  • 객체 카운팅의 경우 결과에는 in_count, out_count 및 classwise_count가 포함됩니다.
SolutionResults
import cv2

from ultralytics import solutions

im0 = cv2.imread("path/to/img")

region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

counter = solutions.ObjectCounter(
    show=True,  # 출력을 표시합니다.
    region=region_points,  # 영역 포인트를 전달합니다.
    model="yolo26n.pt",  # model="yolo26n-obb.pt" 객체 카운팅에 OBB 모델을 사용하는 경우입니다.
    # classes=[0, 2],  # COCO 사전 학습 모델에서 person 및 car와 같은 특정 클래스만 카운팅합니다.
    # tracker="botsort.yaml"  # 추적기를 선택합니다. 예: "bytetrack.yaml"
)
results = counter(im0)
print(results.in_count)  # display in_counts
print(results.out_count)  # display out_counts
print(results.classwise_count)  # display classwise_count

SolutionResults 객체에는 다음 속성이 있습니다:

속성유형설명
plot_imnp.ndarray카운트, 블러 효과 또는 솔루션별 개선 사항과 같은 시각적 오버레이가 적용된 이미지입니다.
in_countint비디오 스트림에서 정의된 구역으로 진입하는 것으로 탐지된 객체의 총수입니다.
out_countint비디오 스트림에서 정의된 구역을 나가는 것으로 탐지된 객체의 총수입니다.
classwise_countdict[str, dict[str, int] | int]클래스별 카운트: ObjectCounter 및 Heatmap의 경우 {"IN": int, "OUT": int}, Analytics의 경우 int입니다.
queue_countint미리 정의된 대기열 또는 대기 구역에 현재 있는 객체 수입니다(대기열 관리에 적합).
workout_countlist[int]AI Gym에서 트랙별 운동 반복 횟수입니다(현재 추적 중인 개인마다 하나의 항목).
workout_anglelist[float]AI Gym에서 트랙별 운동 각도입니다(현재 추적 중인 개인마다 하나의 항목).
workout_stagelist[str]AI Gym에서 트랙별 현재 운동 단계입니다(현재 추적 중인 개인마다 하나의 항목).
pixels_distancefloat두 객체 또는 포인트(예: 바운딩 박스) 사이의 픽셀 기반 거리입니다. (거리 계산에 적합합니다.)
available_slotsint모니터링 구역에서 비어 있는 주차 공간의 수입니다(주차 관리에 적합).
filled_slotsint모니터링 구역에서 점유된 주차 공간의 수입니다. (주차 관리에 적합합니다.)
email_sentbool알림 또는 경보 이메일이 성공적으로 전송되었는지를 나타냅니다(보안 경보에 적합).
total_tracksint비디오 분석 중 관찰된 고유 객체 트랙의 총수입니다.
region_countsDict[str, int]사용자 정의 영역 또는 구역 내 객체 수입니다.
speed_dictDict[int, int]속도 분석에 유용한, SpeedEstimator가 추정한 객체 속도(km/h)의 트랙별 딕셔너리입니다.
total_crop_objectsintObjectCropper 솔루션이 생성한 크롭 객체 이미지의 총개수입니다.
speedDict[str, float]트래킹 및 솔루션 처리 성능 지표가 포함된 딕셔너리입니다.

자세한 내용은 SolutionResults 클래스 문서를 참조하세요.

CLI를 통한 Solutions 사용#

명령 정보

대부분의 Solutions는 명령줄 인터페이스를 통해 바로 사용할 수 있습니다.

구문

yolo SOLUTIONS SOLUTION_NAME ARGS
  • SOLUTIONS는 필수 키워드입니다.
  • SOLUTION_NAME은 다음 중 하나입니다: ['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye', 'region', 'security', 'parking'].
  • ARGS(선택 사항)는 기본 설정을 재정의하는 arg=value 쌍으로, 예를 들어 show_in=True이 있습니다.
yolo solutions count show=True # for object counting

yolo solutions count source="path/to/video.mp4" # specify video file path

Solutions에 기여하기#

커뮤니티의 기여를 환영합니다! Ultralytics YOLO의 특정 분야에 능숙하지만 아직 Solutions에서 다루지 않은 내용이 있다면, 전문 지식을 공유해 주세요. 가이드를 작성하면 커뮤니티에 기여하고 문서를 더욱 포괄적이고 사용자 친화적으로 만드는 데 도움을 줄 수 있습니다.

시작하려면 Pull Request(PR)를 여는 방법에 대한 지침이 담긴 기여 가이드를 읽어 주세요 🛠️. 여러분의 기여를 기다리겠습니다!

Ultralytics YOLO 생태계를 더욱 견고하고 다재다능하게 만들기 위해 함께 노력해요 🙏!

자주 묻는 질문#

  • Ultralytics YOLO26의 고급 객체 감지 기능을 활용하면 실시간 객체 계수에 사용할 수 있습니다. 객체 계수 상세 가이드에 따라 YOLO26을 설정하면 라이브 비디오 스트림을 분석할 수 있습니다. YOLO26을 설치하고 모델을 불러온 다음 비디오 프레임을 처리하여 객체 수를 동적으로 계산하면 됩니다.

  • Ultralytics YOLO26은 실시간 객체 감지와 알림 메커니즘을 제공하여 보안 시스템을 강화합니다. YOLO26을 사용하면 감시 영역에서 새로운 객체가 감지될 때 알림을 트리거하는 보안 경보 시스템을 만들 수 있습니다. 강력한 보안 모니터링을 위해 YOLO26으로 보안 경보 시스템을 설정하는 방법을 알아보세요.

  • Ultralytics YOLO26은 대기열에 있는 사람을 정확하게 계수하고 추적하여 대기 시간을 줄이고 서비스 효율성을 최적화하는 데 도움을 주므로 대기열 관리 시스템을 크게 개선할 수 있습니다. 효과적인 대기열 모니터링과 분석을 위해 YOLO26을 구현하는 방법은 대기열 관리 상세 가이드를 참조하세요.

  • 네, Ultralytics YOLO26은 운동 루틴을 실시간으로 추적하고 분석하여 운동 모니터링에 효과적으로 사용할 수 있습니다. 이를 통해 운동 자세와 수행 능력을 정밀하게 평가할 수 있습니다. YOLO26을 사용해 AI 기반 운동 모니터링 시스템을 설정하는 방법은 운동 모니터링 가이드에서 확인하세요.

  • Ultralytics YOLO26은 특정 영역의 데이터 강도를 시각화하는 히트맵을 생성하여 활동이나 관심도가 높은 지역을 강조할 수 있습니다. 이 기능은 다양한 컴퓨터 비전 작업의 패턴과 추세를 파악하는 데 특히 유용합니다. 포괄적인 데이터 분석 및 시각화를 위해 YOLO26으로 히트맵을 만들고 사용하는 방법을 알아보세요.

댓글