시각화를 통한 컴퓨터 비전 애플리케이션 강화
더 나은 통찰력을 얻기 위해 Ultralytics Python 패키지를 사용하여 컴퓨터 비전 애플리케이션의 데이터를 이해하기 쉬운 그래프로 바꾸는 방법을 알아보세요.

공항 터미널과 기차역부터 쇼핑몰에 이르기까지, 매분 엄청난 양의 데이터가 생성되고 있습니다. AI 사용이 보편화됨에 따라 이러한 데이터의 상당 부분이 현재 분석 및 분류되고 있습니다. 하지만 때때로 이러한 AI 모델의 결과물만으로는 패턴을 파악하거나 추세를 한눈에 이해하기 어려울 수 있습니다. 이때 데이터 시각화가 도움이 됩니다. 데이터 시각화는 복잡한 출력값을 명확하고 이해하기 쉬운 인사이트로 변환해 줍니다.
이는 컴퓨터 비전 애플리케이션의 경우 특히 그렇습니다. 컴퓨터 비전은 이미지나 동영상과 같이 주변 세계의 시각적 정보를 기계가 해석하고 이해하도록 돕는 인공지능(AI)의 한 분야입니다. Ultralytics YOLO11과 같은 비전 AI 모델은 이러한 시각 데이터를 분석하여 정보를 얻는 데 도움을 줄 수 있으며, 데이터 시각화는 그 정보를 이해하기 쉬운 형식으로 구성하도록 돕습니다.
간단히 말해, 데이터 시각화는 의미 있는 분석 그래프를 사용하여 원시 데이터와 실제 이해 사이의 간극을 메워줍니다. 기계가 단순히 작업을 수행하는 것만으로는 부족한 오늘날의 데이터 중심 세상에서, 기계가 이야기를 전달하도록 하는 것은 매우 중요합니다.
이러한 스토리텔링에 대한 필요성이 바로 데이터 시각화가 급부상하는 이유이며, 시장 규모는 2030년까지 $18.36 billion에 이를 것으로 예상됩니다. 이전 글에서 우리는 컴퓨터 비전이 어떻게 가치 있는 비즈니스 인사이트를 제공할 수 있는지 살펴보았습니다. 오늘은 Ultralytics 패키지를 사용하여 컴퓨터 비전 애플리케이션을 위한 명확하고 통찰력 있는 분석 그래프를 생성하는 방법을 단계별로 알아보며 한 걸음 더 나아가겠습니다. 시작해 볼까요!

그림 1. YOLO11 출력값을 기반으로 데이터를 시각화한 예시입니다.
Link to this section컴퓨터 비전 애플리케이션의 데이터 시각화 개요#
컴퓨터 비전 애플리케이션의 데이터 시각화는 객체 탐지 및 추적과 같은 컴퓨터 비전 작업의 결과를 이해하기 쉬운 차트나 대시보드로 변환하는 것을 포함합니다. 이러한 시각 자료는 특히 방대한 양의 영상 데이터를 다룰 때 패턴과 추세를 식별하는 데 도움이 됩니다.
예를 들어, 수 시간 분량의 감시 영상을 수동으로 검토하는 대신, 시간에 따른 차량이나 사람의 탐지 수를 보여주는 간단한 선 그래프를 통해 피크 시간대나 평소보다 한산한 시간대를 빠르게 파악할 수 있습니다.
데이터 시각화가 유용한 주요 이유는 다음과 같습니다.
-
복잡한 데이터 단순화: 수천 개의 객체 탐지 결과는 압도적일 수 있지만, 막대 차트나 원형 차트와 같은 시각화를 활용하면 어떤 객체가 가장 빈번하게 나타나는지와 같은 전체적인 상황을 더 쉽게 파악할 수 있습니다.
-
추세 파악: 선 그래프와 막대 그래프는 유동 인구가 언제, 어디서 증가하는 경향이 있는지와 같은 시간 흐름에 따른 패턴을 식별하는 데 도움이 됩니다.
-
시간 절약: 영상의 모든 프레임을 검토하는 대신, 차트를 통해 차량 활동의 급증이나 제한 구역 내의 비정상적인 객체 출현과 같은 중요한 세부 사항을 빠르게 강조할 수 있습니다.
-
의사소통 개선: 시각 자료는 비기술적인 청중과 인사이트를 공유하기 쉽게 만들어 주며, 모든 사람이 결과를 더 명확하게 이해하도록 돕습니다.
Link to this section다양한 유형의 데이터 시각화#
다양한 유형의 분석 그래프를 통해 컴퓨터 비전 결과를 명확하고 이해하기 쉬운 시각 자료로 전환할 수 있습니다. 감시 영상에서 사람과 차량을 탐지하는 컴퓨터 비전 애플리케이션을 개발 중이라고 가정해 보겠습니다. 이 경우, 선 그래프는 하루 동안의 유동 인구 변화와 같이 시간에 따라 탐지 수가 어떻게 변하는지 보여주는 데 매우 효과적입니다.
마찬가지로, 막대 차트는 영상에 자동차, 자전거, 보행자 중 어떤 것이 더 많이 나타나는지 확인하는 등 탐지된 다양한 객체 유형의 수를 비교할 때 유용합니다. 반면 원형 차트는 전체 탐지 결과에서 각 객체 유형이 차지하는 비율을 보여줍니다. 각 그래프는 고유한 용도가 있으며 복잡한 컴퓨터 비전 데이터를 더 쉽게 해석하고 공유할 수 있게 합니다.

그림 2. 분석 그래프 예시입니다.
Link to this section컴퓨터 비전 인사이트를 얻기 위한 분석 그래프 생성#
데이터 시각화가 무엇인지, 그리고 다양한 유형의 분석 그래프가 왜 중요한지 살펴보았으니, 이제 Ultralytics Analytics 솔루션을 사용하여 컴퓨터 비전 모델 예측 결과를 시각화하는 방법을 자세히 알아보겠습니다. 단계별 과정을 살펴보기 전에, 먼저 Ultralytics 패키지와 YOLO11과 같은 모델을 학습하고 사용하는 데 필요한 도구와 설정 옵션을 살펴보겠습니다.
Ultralytics Python 패키지를 사용하면 모델을 쉽게 학습시키고, 객체를 탐지하며, 예측을 수행하고, 결과를 시각화할 수 있습니다. 시작하려면 코딩 환경이 필요합니다. 다음은 세 가지 간단한 옵션입니다.
-
명령 줄 인터페이스(CLI): 명령어를 입력하여 코드를 실행하는 기본적인 텍스트 전용 도구입니다. 시각적 인터페이스는 없으며, 터미널이나 명령 프롬프트에 명령어를 입력하여 상호작용합니다.
-
Jupyter Notebooks: 소규모 코드 단위(셀)를 한 번에 하나씩 작성, 실행, 테스트할 수 있는 대화형 코딩 환경입니다. 결과가 각 셀 바로 아래에 표시되므로 단계별로 어떤 일이 일어나는지 이해하기 쉽습니다. 학습 및 실험에 특히 유용합니다.
-
Google Colab: 웹 브라우저에서 실행되는 무료 클라우드 기반 Jupyter Notebooks 버전입니다. 컴퓨터에 별도의 설정을 할 필요가 없으며, 더 빠른 처리를 위해 무료 GPU에 액세스할 수 있습니다.
이러한 도구들은 빠르게 시작하는 데 매우 유용하지만, 사용자는 Ultralytics를 Visual Studio Code(VS Code)와 같은 통합 개발 환경(IDE)이나 운영 파이프라인에 통합할 수도 있습니다. 더 많은 옵션을 확인하려면 공식 Ultralytics 문서를 살펴보십시오.
Link to this section1단계: 환경 설정#
선호하는 환경을 선택했다면, 다음 단계는 예측을 실행하고 결과를 시각화할 수 있도록 환경을 설정하는 것입니다. 가장 편안하게 느끼는 방식에 따라 위에서 언급한 환경 중 하나를 사용할 수 있습니다.
Google Colab을 사용하는 경우, 기본적으로 CPU를 사용하므로 성능이 느려질 수 있다는 점을 유의하십시오. 속도를 높이려면 "Runtime(런타임)" 메뉴로 이동하여 "Change runtime type(런타임 유형 변경)"을 선택하고, 하드웨어 가속기를 GPU(가급적 T4)로 설정하십시오.
환경을 준비하려면 아래에 언급된 명령어를 사용하여 Ultralytics Python 패키지를 설치해야 합니다. Colab이나 Jupyter와 같은 노트북 기반 도구에서는 명령어 앞에 느낌표(!)를 붙여야 합니다.
pip install ultralyticsLink to this section2단계: 동영상 파일 다운로드#
다음으로 작업할 동영상이 필요합니다. Pexels와 같은 무료 스톡 사이트에서 쉽게 다운로드할 수 있습니다. YOLO11이 탐지할 수 있는 객체가 포함된 동영상을 선택하십시오. 모델은 COCO 데이터셋으로 사전 학습되었으므로 사람, 자동차, 자전거와 같은 일반적인 객체를 인식할 수 있습니다.
이 튜토리얼에서는 붐비는 공항 터미널에서 수하물 처리 영상을 사용하겠습니다. 같은 영상을 사용하거나 프로젝트에 적합한 다른 영상을 선택해도 됩니다.

그림 3. 공항 터미널의 수하물 처리를 보여주는 입력 영상의 프레임입니다.
Link to this section3단계: 패키지 가져오기#
다음으로 필요한 라이브러리를 가져오고 입력 동영상을 로드할 수 있습니다.
먼저 컴퓨터 비전에서 이미지 및 영상 작업을 위해 널리 사용되는 라이브러리인 OpenCV(cv2)를 가져오겠습니다. 또한 객체 탐지를 실행하고 영상에서 분석 결과 생성을 돕는 Ultralytics 라이브러리도 가져옵니다.
그런 다음 동영상 파일 경로를 지정하여 동영상 파일을 열어보겠습니다. "path/to/video.mp4"를 실제 다운로드한 동영상 파일의 위치로 바꾸십시오.
또한 아래 코드 조각에는 동영상이 올바르게 로드되는지 확인하기 위한 간단한 확인 절차가 포함되어 있습니다. 경로가 잘못되었거나 파일이 손상된 경우, 프로그램이 중지되고 "Error reading video file."이라는 오류 메시지가 표시됩니다.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"Link to this section4단계: 비디오 라이터 준비#
그 다음, 결과물을 저장하기 위한 비디오 라이터를 설정하겠습니다. 분석을 실행하면 코드의 이 부분이 원본 동영상의 각 프레임에서 생성된 업데이트된 그래프를 기록하는 새 동영상 파일을 생성합니다.
아래 코드 조각에서는 먼저 입력 동영상에서 너비, 높이, 초당 프레임 수(fps)와 같은 주요 속성을 추출합니다. 이러한 값은 동영상에서 직접 가져오며, 결과물을 작성할 때 올바른 형식이 되도록 정수로 변환됩니다.
다음으로, cv2.VideoWriter 함수를 사용하여 "analytics_output.avi"라는 이름의 새 동영상 파일을 생성합니다(필요에 따라 이름을 변경할 수 있습니다). 동영상은 일반적인 동영상 압축 방식인 MJPG 형식으로 저장됩니다. 출력 해상도는 원본 동영상 크기와 관계없이 1280×720 픽셀로 설정됩니다.
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),
)Link to this section5단계: Ultralytics Analytics 솔루션 설정#
이제 Ultralytics Analytics 솔루션을 설정하여 동영상에서 그래프를 생성하겠습니다. 선, 원형, 영역 또는 막대 차트와 같은 데이터 표시 방식과 사용할 YOLO 모델을 선택할 수 있습니다. 이 예제에서는 경량 모델인 "yolo11n.pt"를 사용하고 결과를 영역 그래프(area graph)로 표시하겠습니다.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)Link to this section6단계: 입력 동영상 처리#
코드의 마지막 부분은 동영상을 한 번에 한 프레임씩 처리하는 루프를 실행합니다. 각 프레임은 분석 도구로 전달되며, 도구는 그래프를 실시간으로 업데이트합니다. 업데이트된 그래프는 출력 동영상에 기록됩니다. 프레임을 읽을 수 없으면 루프가 중지됩니다. 모든 프레임 처리가 완료되면 동영상이 저장되고 열려 있는 창이 닫힙니다.
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()Link to this section7단계: 모두 종합하기#
마지막으로 모든 것을 종합해 보겠습니다. 몇 줄의 코드만 추가하면 두 개의 출력 동영상을 생성할 수 있습니다. 하나는 바운딩 박스와 라벨이 포함된 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 예측.
Link to this section실제 컴퓨터 비전 애플리케이션에서 그래프 사용하기#
다음은 데이터 시각화가 의미 있는 영향을 미치는 실제 컴퓨터 비전 애플리케이션 사례입니다:
-
헬스케어: 컴퓨터 비전 시스템은 환자 활동, 직원 이동, 장비 사용량을 실시간으로 모니터링할 수 있습니다. 이는 방대한 양의 시각 데이터를 생성하며, 시각화할 경우 피크 환자 점유 시간대나 응답 지연과 같은 패턴을 발견할 수 있습니다.
-
소매 및 전자상거래: 비전 AI는 고객 이동, 진열대 앞 체류 시간, 상품 상호작용을 추적하는 데 사용할 수 있습니다. 막대 차트나 원형 차트와 같은 시각적 분석을 통해 어떤 매장 구역이나 품목이 가장 많은 관심을 받는지 강조할 수 있으며, 소매업체는 이를 통해 상품 배치를 최적화하고 전환율을 개선할 수 있습니다.
-
제조: 컴퓨터 비전 모델이 탑재된 카메라는 조립 라인의 결함, 안전 위반 사항 또는 장비 상태를 모니터링할 수 있습니다. 데이터 시각화를 통해 가장 흔한 결함 유형의 추세를 보여주거나 오류율이 가장 높은 시간대를 강조함으로써 더 빠른 의사결정과 예방적 유지보수를 가능하게 합니다.
Link to this section핵심 요약#
Ultralytics 패키지를 사용하면 영상 데이터를 시간 경과에 따른 사람이나 객체의 수 추적과 같이 상황을 알려주는 명확하고 통찰력 있는 그래프로 쉽게 전환할 수 있습니다. 수 시간 분량의 영상을 수동으로 검토하는 대신, 주요 패턴과 추세를 강조하는 시각적 요약본을 생성하여 더 빠르게 대응할 수 있습니다. 병원, 소매점, 제조 시설 등 어디에서든 이러한 그래프는 복잡한 AI 출력값을 누구나 이해하고 활용할 수 있는 인사이트로 변환해 줍니다.
AI에 대해 더 알고 싶으십니까? 컴퓨터 비전 프로젝트를 시작하려면 GitHub 저장소를 탐색하고, 커뮤니티와 연결하며, 라이선스 옵션을 확인해 보십시오. 제조업의 AI 및 물류 산업의 컴퓨터 비전과 같은 혁신에 대해 더 자세히 알아보려면 솔루션 페이지를 참조하십시오.






