Yolo 비전 선전
선전
지금 참여하기
용어집

옵티컬 플로우

컴퓨터 비전에서 Optical Flow의 강력한 기능을 경험해 보세요. 모션을 추정하고, 비디오 분석을 향상시키며, AI 혁신을 주도하는 방법을 알아보세요.

광 흐름은 다음과 같은 기본 개념입니다. 컴퓨터 비전 컴퓨터 비전의 기본 개념입니다. 시각적 장면에서 물체, 표면 및 가장자리의 겉보기 동작을 추정하는 것입니다. 이 움직임은 다음을 기반으로 계산됩니다. 관찰자(예: 카메라)와 장면 자체 사이의 상대적인 움직임을 기반으로 계산됩니다. 이 프로세스의 결과는 벡터 필드가 생성되며, 각 벡터는 두 개의 연속된 비디오 프레임 사이의 픽셀 또는 피처의 변위를 나타냅니다. 이러한 모션 벡터를 분석함으로써 시스템은 장면 동역학을 세밀하고 낮은 수준으로 이해하여 다음과 같은 중요한 질문에 대한 답을 얻을 수 있습니다. 픽셀이 시간에 따라 '어떻게' 움직이는지에 대한 중요한 질문에 답할 수 있습니다.

광학 흐름의 핵심 메커니즘

광 흐름 계산은 일반적으로 '밝기 불변' 가정에 의존합니다. 이 원칙 은 물체의 특정 지점의 픽셀 강도가 연속된 프레임 사이에도 일정하게 유지된다고 가정합니다. 움직이더라도. 알고리즘은 이 가정을 사용하여 변위를 track . 이를 결정하는 데는 두 가지 주요 접근 방식이 있습니다. 모션 필드:

  • 고밀도 광학 흐름: 이 방법은 이미지의 모든 단일 픽셀에 대한 모션 벡터를 계산합니다. 포괄적인 고해상도 모션 맵을 제공하며, 다음과 같은 세분화된 작업에 필수적입니다. 이미지 분할 및 비디오 복원과 같은 세분화된 작업에 필수적인 포괄적인 해상도의 모션 맵을 제공합니다. 계산 집약적이지만 최신 딥 러닝 모델은 RAFT(반복적 올페어 필드 변환) 와 같은 기존의 수학적 방법을 능가하는 고밀도 추정에서 최첨단 성능을 달성했습니다.
  • 희박한 광학 흐름: 희소 방법은 전체 이미지를 분석하는 대신 모서리 또는 가장자리와 같은 뚜렷한 특징의 선택된 집합을 track . 모서리와 같은 특징 세트를 추적하며, 종종 특징 추출 기법을 사용하여 식별합니다. 루카스-카나데 방법과 같은 알고리즘은 이 범주에 속하는 대표적인 알고리즘입니다. 더 적은 수의 데이터를 처리하기 때문에 포인트를 처리하기 때문에 스파스 방법은 매우 효율적이며 다음과 같은 경우에 적합합니다. 실시간 추론 속도보다 밀도가 우선시되는 시나리오에 적합합니다.

옵티컬 플로우 vs. 객체 추적

광 흐름을 다음과 구별하는 것이 중요합니다. 물체 추적과는 비전 파이프라인 내에서 서로 다른 용도로 사용되므로 구별하는 것이 중요합니다. 광학 흐름은 낮은 수준의 작업으로, 픽셀이 무엇을 나타내는지에 대한 이해 없이 픽셀이 무엇을 나타내는지 이해하지 않고 픽셀의 순간적인 움직임을 설명하는 낮은 수준의 작업입니다. 광학 흐름은 본질적으로 객체의 정체성을 본질적으로 유지하지 않습니다.

이와 달리 개체 추적은 특정 개체를 찾아 프레임 전체에 걸쳐 일관된 ID를 할당하는 고수준 작업입니다. 를 할당하는 수준 높은 작업입니다. 고급 추적 모드는 다음과 같이 사용할 수 있습니다. Ultralytics YOLO11와 같은 고급 추적 모드는 일반적으로 개체 감지 을 먼저 수행한 다음 모션 단서를 사용하여 감지를 연결합니다. 트래커는 내부적으로 광학적 흐름을 활용하여 위치를 예측할 수 있지만, 트래커의 목표는 동일성 지속성("4번 차량이 어디로 갔나요?")인 반면, 광학 흐름의 목표는 모션 매핑("이 픽셀들이 얼마나 빨리 움직이고 있나요?")입니다.

AI의 실제 적용 사례

광학 흐름은 다양한 산업 분야에서 복잡한 모션 관련 문제를 해결하는 데 사용되는 다용도 도구입니다.

  • 자율 시스템 및 로봇 공학: 다음 분야에서 자율 주행 차량에서는 광학 흐름이 시각적 주행 거리 측정에 사용되어 주변 환경에 대한 차량 자체의 움직임을 추정합니다. 다음과 같은 경우에 도움이 됩니다. 정적 감지로 놓칠 수 있는 움직이는 장애물을 감지하여 더 안전한 주행에 기여합니다. 마찬가지로 로보틱스에서는 에이전트가 플로우를 사용하여 다음과 같은 프레임워크를 사용하여 객체를 조작하고 동적 환경을 탐색합니다. ROS.
  • 동작 인식: 동작의 시간적 패턴을 분석하면 AI 시스템이 복잡한 인간의 행동을 인식할 수 있습니다. 복잡한 인간의 행동을 인식할 수 있습니다. 예를 들어 스마트 피트니스 기술에서 광학적 흐름은 자세 추정 자세 추정을 개선하는 데 도움이 될 수 있습니다. 움직임을 프레임 간에 원활하게 추적하여 스쿼트나 테니스 스윙과 같은 운동을 식별할 수 있습니다.
  • 비디오 안정화 및 압축: 소비자 가전제품은 유량 추정에 크게 의존합니다. 전자식 손떨림 보정(EIS)은 플로우 벡터를 사용하여 카메라 흔들림을 보정합니다. 또한, 비디오 압축 표준인 MPEG 과 같은 동영상 압축 표준은 모션 추정 을 사용하여 전체 프레임이 아닌 프레임 간의 차이(잔여 부분)만 인코딩하여 파일 크기를 줄입니다. 만 인코딩하여 파일 크기를 줄입니다.
  • 의료 영상: In 의료 영상 분석에서는 심장 초음파에서 심장의 박동과 같은 조직의 변형을 track 데 광학적 흐름이 적용됩니다. 이를 통해 의사는 장기 기능을 정량화하고 정적 이미지에서는 보이지 않는 이상 징후를 감지할 수 있습니다.

구현 예시

다음 Python 예제는 고밀도 광학 흐름을 계산하는 방법을 보여줍니다. OpenCV 라이브러리를 사용하는 방법을 보여줍니다. 이 예제에서는 널리 사용되는 고밀도 흐름 추정 방법인 Gunnar 파네백 알고리즘을 사용하는데, 이는 밀도 있는 유량 추정에 널리 사용되는 방법입니다.

import cv2
import numpy as np

# Load two consecutive frames (ensure these files exist)
frame1 = cv2.imread("frame1.jpg")
frame2 = cv2.imread("frame2.jpg")

# Convert frames to grayscale
prvs = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
next = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)

# Calculate dense optical flow using Farneback's algorithm
flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)

# Compute magnitude and angle of 2D vectors
mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])

print(f"Flow shape: {flow.shape}")  # Output: (Height, Width, 2)
print(f"Max motion magnitude: {np.max(mag):.2f} pixels")

모션 분석과 객체 감지를 통합하려는 사용자를 위한 제품입니다, Ultralytics 감지 모델 을 흐름 알고리즘과 결합하여 강력한 분석 파이프라인을 만들 수 있습니다. 광학 흐름은 원시 모션 데이터를 제공하지만, 다음과 같은 상위 수준 모델은 YOLO11 과 같은 상위 모델은 해당 모션을 효과적으로 해석하는 데 필요한 모션을 효과적으로 해석하는 데 필요한 의미론적 이해를 제공합니다. 다음과 같은 모델에 대한 지속적인 연구 개발이 진행 중입니다. YOLO26 와 같은 모델에 대한 지속적인 연구 개발은 공간적 이해와 더욱 빠른 엔드투엔드 비디오 분석을 위한 공간적 및 시간적 이해를 통합하는 것을 목표로 합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기