Yolo 비전 선전
선전
지금 참여하기

시각화를 통한 컴퓨터 비전 애플리케이션 개선

Nuvola Ladi

4분 소요

2025년 5월 12일

더 나은 인사이트를 얻기 위해 컴퓨터 비전 애플리케이션의 데이터를 Ultralytics Python 패키지를 사용하여 이해하기 쉬운 그래프로 변환하는 방법을 알아보세요.

공항 터미널과 기차역에서 쇼핑몰에 이르기까지 매분 엄청난 양의 데이터가 생성되고 있습니다. AI가 더 널리 사용됨에 따라 이러한 데이터의 많은 부분이 분석되고 세분화됩니다. 그러나 이러한 AI 모델의 결과로 인해 패턴을 파악하거나 추세를 한눈에 이해하기 어려울 수 있습니다. 데이터 시각화는 복잡한 출력을 명확하고 이해하기 쉬운 통찰력으로 바꿔줍니다.

컴퓨터 비전 애플리케이션의 경우 특히 그렇습니다. 컴퓨터 비전은 기계가 이미지와 동영상 등 주변 세계의 시각 정보를 해석하고 이해하는 데 도움을 주는 인공지능(AI) 의 한 분야입니다. 다음과 같은 비전 AI 모델은 Ultralytics YOLO11와 같은 비전 AI 모델은 이러한 시각적 데이터를 분석하여 정보를 얻는 데 도움을 줄 수 있지만, 데이터 시각화는 이러한 정보를 이해하기 쉬운 형식으로 변환하는 데 도움을 줍니다.

간단히 말해서 데이터 시각화는 의미 있는 분석 그래프를 사용하여 원시 데이터와 실제 이해 사이의 간극을 좁힙니다. 오늘날의 데이터 중심 세계에서는 기계가 작업을 수행하는 것만으로는 충분하지 않으며, 스토리를 전달해야 하기 때문에 이것이 중요합니다.

이러한 스토리텔링의 필요성이 바로 데이터 시각화 시장이 2030년까지 183억 6,000만 달러 에 달할 것으로 예상되는 이유입니다. 이전에는 컴퓨터 비전이 어떻게 가치 있는 비즈니스 인사이트를 제공하는지 살펴보았습니다. 오늘은 한 걸음 더 나아가 Ultralytics 패키지를 사용하여 컴퓨터 비전 애플리케이션을 위한 명확하고 통찰력 있는 분석 그래프를 생성하는 방법을 살펴보겠습니다. 시작해 보겠습니다!

그림 1. YOLO11 출력을 기반으로 데이터를 시각화한 예시입니다.

컴퓨터 비전 애플리케이션의 데이터 시각화 개요

컴퓨터 비전 애플리케이션에서 데이터 시각화는 객체 감지 및 추적과 같은 컴퓨터 비전 작업의 결과를 이해하기 쉬운 차트나 대시보드로 변환하는 것을 의미합니다. 이러한 시각 자료는 특히 대량의 비디오 영상을 다룰 때 패턴과 추세를 식별하는 데 도움이 됩니다. 

예를 들어, 몇 시간 분량의 감시 비디오를 수동으로 검토하는 대신 시간이 지남에 따라 감지된 자동차나 사람의 수를 보여주는 간단한 선 그래프는 피크 시간이나 비정상적으로 조용한 기간을 빠르게 강조 표시할 수 있습니다.

데이터 시각화가 유용한 몇 가지 주요 이유는 다음과 같습니다.

  • 복잡한 데이터 단순화: 수천 개의 객체 탐지는 압도적일 수 있지만, 막대 또는 원형 차트와 같은 시각화를 통해 어떤 객체가 가장 자주 나타나는지와 같이 큰 그림을 더 쉽게 볼 수 있습니다.
  • 트렌드 파악: 선 그래프와 막대 그래프는 시간 경과에 따른 패턴, 예를 들어 보행자 통행량이 증가하는 시기와 장소를 식별하는 데 도움이 됩니다.
  • 시간 절약: 비디오의 모든 프레임을 검토하는 대신, 차트는 차량 활동의 갑작스러운 급증 또는 제한 구역에서 비정상적인 객체 출현과 같은 중요한 세부 정보를 빠르게 강조 표시할 수 있습니다.
  • 커뮤니케이션 개선: 시각 자료는 기술에 익숙하지 않은 사람들과 통찰력을 공유하는 것을 더 쉽게 만들어 모든 사람이 결과를 더 명확하게 이해하도록 돕습니다.

다양한 유형의 데이터 시각화

다양한 유형의 분석 그래프를 사용하여 컴퓨터 비전 결과를 명확하고 이해하기 쉬운 시각 자료로 바꿀 수 있습니다. 예를 들어 감시 영상에서 사람과 차량을 감지하는 컴퓨터 비전 애플리케이션을 작업하고 있다고 가정해 보겠습니다. 이 경우 선 그래프는 하루 동안의 보행량 피크를 추적하는 것과 같이 감지 횟수가 시간에 따라 어떻게 변하는지 보여주는 데 유용합니다.

마찬가지로 막대 차트는 비디오에 더 많은 자동차, 자전거 또는 보행자가 나타나는지 확인하는 것처럼 감지된 다양한 객체 유형의 수를 비교하려는 경우에 유용합니다. 반면에 원형 차트는 각 객체 유형이 전체 감지에서 차지하는 비율을 보여줍니다. 각 그래프는 자체 용도가 있으며 복잡한 컴퓨터 비전 데이터를 더 쉽게 해석하고 공유할 수 있도록 도와줍니다.

Fig 2. 분석 그래프의 예시입니다.

컴퓨터 비전 통찰력을 얻기 위한 분석 그래프 생성

이제 데이터 시각화가 무엇이며 다양한 유형의 분석 그래프가 중요한 이유를 살펴보았으니, 이제 Ultralytics 분석 솔루션을 사용하여 컴퓨터 비전 모델 예측 결과를 시각화하는 방법을 자세히 살펴 보겠습니다. 단계별 프로세스를 살펴보기 전에 먼저 Ultralytics 패키지와 YOLO11 같은 모델을 훈련하고 사용하기 위한 도구와 설정 옵션을 살펴보겠습니다. 

Ultralytics Python 패키지를 사용하면 모델을 쉽게 훈련하고, 개체를 detect , 예측을 실행하고, 결과를 시각화할 수 있습니다. 이를 시작하려면 코딩 환경이 필요합니다. 다음은 세 가지 간단한 옵션입니다:

  • 명령줄 인터페이스(CLI): 명령을 입력하여 코드를 실행할 수 있는 기본적인 텍스트 전용 도구입니다. 시각적 인터페이스가 없으며 터미널이나 명령 프롬프트에 명령을 입력하는 방식으로 상호작용합니다.
  • Jupyter Notebooks: 코드 조각("셀"이라고 함)을 한 번에 하나씩 작성, 실행 및 테스트할 수 있는 대화형 코딩 환경입니다. 각 셀 바로 아래에 결과가 표시되므로 단계별로 무슨 일이 일어나고 있는지 쉽게 이해할 수 있습니다. 특히 학습 및 실험에 유용합니다.
  • Google 실험실: 이 옵션은 웹 브라우저에서 실행되는 무료 클라우드 기반 버전의 Jupyter Notebook입니다. 컴퓨터에서 설정할 필요가 없으며 무료 GPU에 액세스하여 더 빠른 처리를 할 수 있습니다.

이러한 도구는 빠르게 시작하는 데 유용하지만, 사용자는 Visual Studio Code(VS Code)와 같은 통합 개발 환경(IDE)이나 프로덕션 파이프라인에 Ultralytics 통합할 수도 있습니다. 더 많은 옵션에 대해서는 공식 Ultralytics 설명서를 참조하세요.

1단계: 환경 설정

선호하는 환경을 선택했으면 다음 단계는 예측을 실행하고 결과를 시각화할 수 있도록 설정하는 것입니다. 가장 편안한 환경에 따라 위에 언급된 환경 중 하나를 사용할 수 있습니다.

Google Colab에서 작업하는 경우 기본적으로 CPU 사용하므로 성능이 느려질 수 있다는 점에 유의하세요. 속도를 높이려면 '런타임' 메뉴로 이동하여 '런타임 유형 변경'을 선택한 다음 하드웨어 가속기를 GPU (이상적으로는 T4)로 설정하여 GPU 전환하세요.

환경을 준비하려면 아래에 언급된 명령을 사용하여 Ultralytics Python 패키지를 설치해야 합니다. Colab이나 Jupyter와 같은 노트북 기반 도구에서는 명령 앞에 느낌표(!)를 추가해야 합니다.

pip install ultralytics

2단계: 비디오 파일 다운로드

다음으로 작업할 동영상이 필요합니다. 펙셀과 같은 무료 스톡 사이트에서 쉽게 다운로드할 수 있습니다. YOLO11 detect 수 있는 사물이 포함된 동영상을 선택해야 합니다. 이 모델은 COCO 데이터 세트에 대해 사전 학습되었으므로 사람, 자동차, 자전거와 같은 일반적인 물체를 인식할 수 있습니다. 

이 튜토리얼에서는 붐비는 공항 터미널에서 수하물 처리 비디오를 사용합니다. 동일한 비디오를 사용하거나 프로젝트에 맞는 다른 비디오를 선택할 수 있습니다.

Fig 3. 공항 터미널에서 수하물 처리 장면을 보여주는 입력 비디오의 프레임입니다.

3단계: 패키지 가져오기

다음으로, 필요한 라이브러리를 가져오고 입력 비디오를 로드할 수 있습니다.

컴퓨터 비전에서 이미지 및 비디오 작업에 널리 사용되는 라이브러리인 OpenCV (cv2)를 가져오는 것으로 시작하겠습니다. 또한 객체 감지를 실행하고 비디오에서 분석을 생성하는 데 도움이 되는 Ultralytics 라이브러리를 가져올 것입니다.

다음으로, 경로를 지정하여 비디오 파일을 열어보겠습니다. "path/to/video.mp4"를 다운로드한 비디오 파일의 실제 위치로 바꾸십시오. 

또한 아래 코드 스니펫에는 비디오가 올바르게 로드되었는지 확인하는 간단한 검사가 포함되어 있습니다. 경로가 잘못되었거나 파일이 손상된 경우 프로그램이 중지되고 "비디오 파일 읽기 오류"라는 오류 메시지가 표시됩니다.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

4단계: 비디오 작성기 준비

다음으로, 출력을 저장하기 위해 비디오 라이터를 설정합니다. 분석을 실행하면 이 코드 부분은 원본 비디오의 각 프레임에서 생성된 업데이트된 그래프를 기록하는 새 비디오 파일을 생성합니다.

아래 코드 스니펫에서는 먼저 입력 비디오에서 너비, 높이 및 초당 프레임 수(fps)와 같은 주요 속성을 추출합니다. 이러한 값은 비디오에서 직접 가져와 정수로 변환하여 출력 쓰기에 올바른 형식이 되도록 합니다.

다음으로, cv2.VideoWriter 함수를 사용하여 "analytics_output.avi"라는 새 비디오 파일을 만듭니다(필요에 따라 이름을 바꿀 수 있음). 이 비디오는 일반적인 비디오 압축 방법인 MJPG 형식을 사용하여 저장됩니다. 출력 해상도는 원본 비디오 크기에 관계없이 1280x720 픽셀로 설정됩니다.

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720), 
)

5단계: Ultralytics 애널리틱스 솔루션 설정하기

이제 동영상에서 그래프를 생성하기 위해 Ultralytics 솔루션을 설정하겠습니다. 선, 파이, 영역 또는 막대 차트 등 데이터가 표시되는 방식과 사용할 YOLO 모델을 선택할 수 있습니다. 이 예에서는 가벼운 "yolo11n.pt" 모델을 사용하여 결과를 영역 그래프로 표시합니다.

analytics = solutions.Analytics(
    show=True, 
    analytics_type="area", 
    model="yolo11n.pt",   
)

6단계: 입력 비디오 처리

코드의 마지막 부분은 비디오를 한 번에 한 프레임씩 처리하는 루프를 실행합니다. 각 프레임은 분석 도구로 전달되어 그래프를 실시간으로 업데이트합니다. 업데이트된 그래프는 출력 비디오에 기록됩니다. 프레임을 읽을 수 없으면 루프가 중지됩니다. 모든 프레임이 처리된 후 비디오가 저장되고 열려 있는 모든 창이 닫힙니다.

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count) 

        out.write(results.plot_im) 
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()

7단계: 모든 것을 하나로 묶기

마지막으로 모든 것을 종합해 보겠습니다. 코드 몇 줄만 추가하면 바운딩 박스와 레이블이 있는 YOLO11 객체 감지 결과를 보여주는 동영상과 실시간 분석 그래프를 보여주는 동영상 두 개를 생성할 수 있습니다.

이를 위해 예측 비디오 저장용과 분석용으로 두 개의 VideoWriter 인스턴스를 설정합니다. 이 버전의 코드에는 객체 추적과 그래프 생성이 모두 포함되어 있으므로 시각적 통찰력과 함께 탐지 결과를 볼 수 있습니다.

다음은 예측 및 분석 결과의 예와 함께 제공되는 포괄적인 코드입니다.

import cv2
from ultralytics import YOLO, solutions

# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"

# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)

# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)

# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')

# Process frames
frame_count = 0
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    frame_count += 1
    pred_frame = model.track(frame, persist=True)[0].plot()
    out_pred.write(pred_frame)

    resized = cv2.resize(pred_frame, analytics_res)
    out_ana.write(analytics(resized, frame_count).plot_im)

cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()

위의 코드가 성공적으로 실행되면 두 개의 출력 비디오가 생성됩니다. “output_predictions.avi” 파일은 경계 상자와 레이블이 있는 객체 탐지 결과를 보여주고, “output_analytics.avi” 파일은 탐지를 기반으로 한 실시간 분석 그래프를 표시합니다.

그림 4. “output_predictions.avi” 파일의 프레임입니다.

다음은 예측을 기반으로 한 분석 결과의 프레임입니다. 영역 차트를 사용하여 프레임 268 부근의 급증과 같이 시간 경과에 따른 여행 가방 수의 변동에 대한 통찰력을 얻을 수 있으며, 이는 해당 비디오 부분에서 여행 가방의 이동 또는 활동을 나타냅니다.

그림 5. 면적 그래프로 시각화한 YOLO11 예측.

실제 컴퓨터 비전 애플리케이션에서 그래프 활용

다음은 데이터 시각화가 의미 있는 영향을 미치는 실제 컴퓨터 비전 애플리케이션의 예시입니다.

  • 헬스케어: 컴퓨터 비전 시스템은 환자 활동, 직원 이동 및 장비 사용을 실시간으로 모니터링할 수 있습니다. 이는 시각화했을 때 환자 최대 점유 시간 또는 응답 지연과 같은 패턴을 드러낼 수 있는 많은 양의 시각적 데이터를 생성합니다.
  • 리테일 및 이커머스: 비전 AI는 고객의 움직임, 진열대 앞에서의 체류 시간, 제품 상호 작용을 track 데 사용할 수 있습니다. 막대 또는 원형 차트와 같은 시각적 분석은 가장 많은 관심을 받는 매장 구역이나 품목을 강조하여 소매업체가 제품 배치를 최적화하고 구매 전환을 개선하는 데 도움을 줄 수 있습니다.
  • 제조: 컴퓨터 비전 모델이 장착된 카메라는 조립 라인에서 결함, 안전 위반 또는 장비 상태를 모니터링할 수 있습니다. 데이터 시각화는 가장 일반적인 결함 유형의 추세를 보여주거나 오류율이 가장 높은 기간을 강조 표시하여 더 빠른 의사 결정과 예방적 유지 관리를 가능하게 합니다.

주요 내용

Ultralytics 패키지를 사용하면 시간 경과에 따라 나타나는 사람이나 사물의 수를 추적하는 등 동영상 영상을 명확하고 통찰력 있는 그래프로 쉽게 변환하여 무슨 일이 일어나고 있는지 파악할 수 있습니다. 몇 시간 분량의 동영상을 수동으로 검토하는 대신 주요 패턴과 추세를 강조하는 시각적 요약을 생성할 수 있어 신속하게 대응하기가 더 쉬워집니다. 병원, 소매점, 제조 시설 등 어느 곳에서든 이러한 그래프를 통해 복잡한 AI 결과를 누구나 이해하고 사용할 수 있는 인사이트로 전환할 수 있습니다.

AI에 대해 더 자세히 알고 싶으신가요? GitHub 저장소를 탐색하고, 커뮤니티와 연결하고, 라이선스 옵션을 확인하여 컴퓨터 비전 프로젝트를 시작하세요. 솔루션 페이지에서 제조업의 AI물류 산업의 컴퓨터 비전과 같은 혁신에 대해 자세히 알아보세요.

함께 미래의 AI를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요

무료로 시작하기