옵티컬 플로우 예제

용어 “광학 흐름”은 매일 경험하는 시각적 현상을 의미합니다. 본질적으로, 광학 흐름은 당신이 세계를 통해 이동으로 경험하는 명백한 시각적 운동이다. 당신이 차 나 기차에 앉아, 창 밖으로 찾고 있다고 가정합니다. 나무, 땅, 건물 등이 뒤로 이동하는 것처럼 보입니다. 이 동작은 광학 흐름입니다. 이 모션은 표시되는 다른 개체에 얼마나 가까이 있는지도 알 수 있습니다. 구름과 같은 먼 물체와 산이 너무 느리게 움직여 여전히 나타납니다. 건물이나 나무와 같이 더 가까운 오브젝트는 뒤로 이동하는 것처럼 보이며, 가까운 오브젝트는 먼 오브젝트보다 빠르게 이동합니다. 잔디나 도로 의 작은 표지판과 같이 매우 가까운 물체는 너무 빨리 움직여 바로 움직입니다. 아래 샘플에서는 위의 알고리즘을 사용하여 조밀한 광학 흐름을 찾는 방법을 보여 주실 수 있습니다. 우리는 광학 흐름 벡터가있는 2 채널 배열을 얻습니다.

우리는 그들의 크기와 방향을 찾을 수 있습니다. 더 나은 시각화를 위해 결과를 색상지정합니다. 방향은 이미지의 색조 값에 해당합니다. 크기는 값 평면에 해당합니다. 아래 코드 보기: 간단히 말해서 추적할 몇 가지 흥미로운 기능을 식별하고 이러한 점의 광학 흐름 벡터를 반복적으로 계산합니다. 그러나 Lucas-Kanade 메서드를 채택하는 것은 작은 움직임(초기 가정)에만 작동하며 큰 움직임이 있을 때 실패합니다. 따라서 Lucas-Kanade 메서드의 OpenCV 구현은 피라미드를 채택합니다. 동물과 곤충이 광학 흐름을 사용하여 세계를 탐색하는 방법에 대해 수행 된 과학적 연구의 꽤 가있다.

확실히 하나의 웹 페이지에 요약너무 많이있다! 그러나 몇 가지 예를 더 생각해 봅시다… 호버링: 한 곳에서 가리키고 싶다고 가정합니다. 이 작업을 수행하는 가장 좋은 방법은 아래 그림과 같이 모든 곳에서 광학 흐름을 0으로 유지하는 것입니다. 이 메서드는 나머지 가만있는 경우에만 작동합니다. 예를 들어, 바람이 흔들리는 가지 사이를 날아다니는 작은 곤충이라면 세상이 움직이면 가지가 흔들리는 것을 볼 수 있습니다(반드시 나쁜 것은 아닙니다). 흐름 구동 이방성 레귤러. 흐름의 크기에 대한 정보만 포함하는 등방성 케이스와 는 달리, 이 정규화기는 흐름의 방향에 대한 정보도 포함합니다. Weickert & Schnörr (2001)는 다음과 같은 제약 조건을 제안 광학 흐름의 크기와 객체가 당신과 관련하여 있는 위치 사이에 명확한 수학적 관계가 있다. 당신이 여행하는 속도를 두 배로하면, 당신이 보는 광학 흐름도 두 배가됩니다. 오브젝트를 두 배 가까이 가져온 경우 광학 흐름이 다시 두 배가 됩니다.

또한 광학 흐름은 이동 방향과 보고 있는 물체의 방향 사이의 각도에 따라 달라집니다. 앞으로 여행한다고 가정해 봅시다. 광학 흐름은 물체가 90도 또는 바로 위 또는 아래에 있을 때 가장 빠릅니다. 오브젝트가 전진 또는 후진 방향에 가까워지면 광학 흐름이 줄어듭니다.