주파수 공간에서의 시간 대 곱셈에서의 시간의 상관의 계산 복잡성


12

이미지 처리 기술 (패턴 인식 등)에 대한 2D 상관 관계를 다루고 있습니다. 시간 공간의 상관 관계보다 주파수 공간에서 곱셈을 언제 사용해야하는지에 대한 이론적 인 접근 방법이 있는지 궁금합니다. 2 x 주파수 공간의 크기 는 분명히 빠르지 만 11과 같은 작고 기본 크기는 어떻습니까?

답변:


10

나는 이것이 일반적인 CPU, 하나의 코어에서 하나의 간단한 스레드를 실행하고 멋진 하드웨어를 사용하지 않고 있다고 가정합니다. 그 이상이 있다면 더 간단한 시스템의 추론을 조정하여 설명 할 수 있습니다. 논의 할 특정 시스템이나 다양한 가능성을 다루는 전체 교과서 또는 연구 논문 없이는 더 이상 말할 수 없습니다.

나는 2의 거듭 제곱에 대해 걱정하지 않을 것입니다. 중요하지 않습니다. 버터 플라이 단위를 포함한 FFT 알고리즘과 2가 아닌 3의 요소 또는 소수의 요소에 대해 존재하는 모든 것입니다. 나는 그 무의미한 본성 때문에 이것에 Wikipedia를 인용하는 것을 좋아하지 않지만 어쨌든 :

모든 N에 대해 O (N log N) 복잡성을 갖는 FFT가 있으며, 소수 N에 대해서도

임의의 N에 대한 FFT의 구현은 GPL의 라이브러리 FFTW 에서 찾을 수 있습니다 .

진지한 엔지니어링 측면에서 신뢰할 수있는 유일한 방법은 구축하고 측정하는 것이지만, 변수 사이의 관계를보기 위해 이론으로부터 아이디어를 얻을 수 있습니다. 각 방법에 몇 개의 산술 연산이 포함되는지 추정해야합니다.

수년 동안 차이가 엄청나게 줄어든 경우에도 대부분의 CPU에서 곱셈이 여전히 더 느리므로 곱셈을 계산해 봅시다. 덧셈에 대한 회계는 좀 더 생각하고 물건을 추적해야합니다.

실제 출력 픽셀마다 반복되는 컨볼 루션 커널을 사용하여 곱하고 추가하는 간단한 컨벌루션에는 W² · K² 곱셈이 필요합니다. 여기서 W는 이미지의 한쪽면을 따라 픽셀 수 (간단 함을 위해 정사각형으로 가정)이고 K는 크기입니다. 한 쪽을 따라 픽셀로 컨볼 루션 커널의. 커널과 입력 이미지의 동일한 크기 부분을 사용하여 하나의 출력 픽셀을 계산하려면 K² 곱셈이 필요합니다. 입력 이미지와 번호가 같은 모든 출력 픽셀에 대해 반복합니다.

(N mults ) 직접 = W² · K²

푸리에 공간에서 작업을 수행하려면 이미지를 푸리에 변환해야합니다. 각 열에 개별적으로 FFT를 적용한 다음 각 행에 FFT를 적용하면됩니다. N 개의 데이터 포인트에 대한 FFT는 약 2N · log (N) 곱셈을 취한다; 우리는 N이 하나의 열 또는 행의 길이 인 W가되기를 원합니다. 여기의 모든 로그는 밑이 2입니다.

W 개의 행과 W 개의 열이 있으므로 모든 FFT가 완료된 후 2W · (2W · log (W)) 곱셈을 수행했습니다. 커널의 푸리에 변환을 곱한 후에는 데이터를 역 푸리에로 가져 와서 합리적인 이미지로 돌아 가야하기 때문에 두 배가됩니다. 8W² · log (W)입니다. 물론, 푸리에 변환의 곱셈과 또 다른 W² 곱셈이 이루어져야합니다. (출력 픽셀, 행 또는 한 번에 한 번이 아니라 한 번만 수행하십시오.) 이는 복잡한 곱셈이므로 4W²의 실제 곱셈입니다.

그래서, 내가 깨지거나 (아마도 그렇게하지 않았다면)

(N의 멀트 ) 푸리에 = 4W² · (2 · 로그 (W) + 1)

우리는 언제 직접 일을하고 싶습니까? K가 충분히 작아 W² · K²를 4W² · (2 ​​· log (W) + 1)보다 작게 만드는 경우 W²의 공통 요소는 쉽게 제외됩니다. 이상적인 추정치를 다루기 때문에 아마도 "+1"을 떨어 뜨릴 수 있습니다. +1은 실제 계산과 관련하여 오류 수, 추가 횟수 계산, 루프 오버 헤드 등으로 인해 손실 될 수 있습니다. 그 나뭇잎 :

K² < 8·log(W)

이것은 주파수 공간 접근에 대한 직접 접근을 선택하기위한 대략적인 조건입니다.

동일한 크기의 두 이미지의 상관 관계는 크기가 K = W 인 커널과 충돌하는 것과 같습니다. 푸리에 공간은 항상 그렇게합니다.

오버 헤드, 오피 코드의 파이프 라이닝, 부동 소수점 대 고정 소수점을 설명하고 GPGPU 및 특수 하드웨어로 창을 버리기 위해이를 수정하고 논쟁 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.