
영상 처리와 컴퓨터 비전에서 2D 변환(2D Transformation)은 두 영상이나 객체를 서로 정합(Alignment)하거나 새로운 좌표계로 표현할 때 기본적으로 사용되는 도구이다. 정합은 대응되는 점들을 가장 잘 설명하는 변환 모델을 찾는 문제로 이해할 수 있으며, 이러한 변환은 보통 전역 파라미터(Global Parametric Warping)로 정의된다.
2x2 행렬만으로도 회전(Rotation), 크기 변환(Scaling), 전단(Shear), 반사(Reflection) 같은 선형 변환을 표현할 수 있다. 하지만 이동(Translation)은 행렬곱만으로는 불가능하기 때문에, 이를 포함하기 위해 동차 좌표계(Homogeneous Coordinates)가 도입된다. 이때 좌표를 3차원 형태로 확장하고 3x3 행렬을 사용하면 선형 변환과 이동을 모두 포함하는 일반적인 변환을 표현할 수 있다.
기본적인 2D 변환에는 확대/축소, 회전, 이동, 전단, 반사 등이 있으며, 이들을 조합한 것이 Affine Transformation이다. Affine Transformation은 직선성을 보존하면서도 다양한 형태 변화를 허용하기 때문에 영상 정합에서 자주 사용된다.
결국, 2D 변환은 영상에서 대응점을 맞추고 두 장면을 하나로 결합하거나 특정 좌표계를 기준으로 이미지를 재표현하기 위한 수학적 기반이라고 할 수 있다.
기존에는 한 장의 이미지 안에서 특정한 모델 을 특징점들(feature points)에 맞추는 (fitting) 문제를 다뤘다.
예를 들어 여러 점들이 있을 때, 이 점들을 가장 잘 설명하는 직선 모델 을 찾는 방식이였다. 이 과정은 잔차(residual), 즉 모델과 점들 간의 차이를 최소화하는 방향으로 이루어진다.

반면, 정합(Alignment)에서는 서로 다른 두 이미지가 있고, 각각의 이미지에서 추출된 특징점 쌍 이 주어진다.

여기서 목표는 한 이미지의 점들을 다른 이미지의 대응점에 가장 잘 맞추는 변환(Transformation) 를 찾는 것이다.
즉,
를 최소화하는 를 찾는 문제이다.

Warping은 이미지를 변환(transformation)하는 과정으로, 픽셀 좌표 를 새로운 좌표 로 사상(mapping)하는 것이다. 여기서 parametric이라는 말은 이 변환이 소수의 파라미터(parameters)로 정의될 수 있다는 뜻이며, global이라는 말은 이미지 전체에 동일하게 적용된다는 의미이다. 즉, 한 점에서 정의된 변환이 이미지의 모든 픽셀에 동일하게 작용한다.
수학적 표현

변환 는 좌표 변환기와 같으며
형태로 표현된다.
이를 행렬 곱(matrix multiplication)으로 나타낼 수 있다.
여기서 은 변환을 정의하는 행렬이며, 이 행렬의 형태에 따라 변환이 이동/회전/스케일/아핀/투영으로 나뉜다.
핵심은, Global Parametric Warping은 이미지의 모든 점에 동일하게 적용되는 변환이며, 몇 개의 파라미터만으로 전체 변환을 기술할 수 있다는 점이다.
Scaling은 물체의 크기를 조절하는 변환이다. 좌표의 각 성분을 일정한 배율(scalar)로 곱하여 크기를 변화시키며, 이 과정에서 물체의 형태는 유지되지만 크기만 변한다.
Scaling은 크게 두 가지 방식으로 나눌 수 있다.
Uniform Scaling은 모든 좌표 성분에 동일한 배율을 적용하여 물체의 가로와 세로 비율을 그대로 유지하면서 크기만 변화시키는 방식이다.

Non-Uniform Scaling은 각 성분에 서로 다른 배율을 적용하여 물체의 형태가 가로 혹은 세로 방향으로 늘어나거나 줄어드는 방식이다.
2D 공간에서 다양한 선형 변환들은 2x2 행렬을 통해 표현할 수 있다. 이 행렬은 점 를 새로운 점 로 매핑하며, 기하학적 구조를 바꾸는 역할을 한다.
2D Scaling(크기 조정)
각 좌표에 스케일 값을 곱하여 객체를 확대 또는 축소한다.
Uniform scaling : 모든 축에 동일한 비율을 적용
Non-Uniform scaling : 축마다 다른 비율 적용
2D Rotation(회전)
원점을 중심으로 일정한 각도 만큼 회전시키며, 코사인과 사인 항으로 표현된다.
2D Reflection(대칭 변환)
축이나 원점을 기준으로 좌표를 반전시킨다. 예를 들어 Y축 대칭은 x를 음수로 바꾼다.
Mirror about Y-axis:
Mirror over (0,0):
이러한 변환들은 모두 2x2 선형 변환 행렬로 표현이 가능하다. 하지만, Translation(평행 이동)과 같은 변환은 단순 2x2 행렬로는 표현할 수 없으며, 이 경우에는 동차 좌표(Homogeneous Coordinates)를 사용해 3x3 행렬로 확장해야 한다.
2차원 좌표계에서 우리는 보통 한 점을 로 표현한다. 하지만 이러한 표현만으로는 모든 변환을 행렬 연산으로 표현하기 어렵다. 특히 Translation(이동) 같은 연산은 단순한 2x2 행렬 곱으로는 나타낼 수 없다. 이 문제를 해결하기 위해 Homogeneous Coordinate(동차 좌표계) 개념이 사용된다.
일반적인 2D 좌표 는 동차 좌표계에서 3차원 벡터로 확장된다. 즉,
이렇게 세 번째 성분을 추가함으로써, 단순한 2x2 행렬 연산으로 표현할 수 없었던 변환도 행렬 곱으로 나타낼 수 있게 된다.
동차 좌표계의 점은 형태를 갖는다. 이때 원래의 2차원 좌표로 변환하려면 로 나누어 주면 된다.
즉, Homogeneous 좌표에서 스케일은 중요하지 않고, 좌파ㅛ의 비율만이 실제 점의 위치를 결정한다.
앞서 언급했듯이, 이동 변환은 단순한 2x2 행렬로 표현할 수 없다. 하지만 Homogeneous Coordinates를 사용하면 이를 3x3 행렬로 깔끔하게 표현할 수 있다.
2차원 평면에서 이동은 다음과 같다.
이를 Homogeneous 좌표계에서는 다음과 같은 행렬 곱으로 나타낼 수 있다.
즉, 단순히 행렬의 마지막 열에 이동 벡터 를 추가하는 것만으로도 이동 변환을 행렬 연산으로 표현할 수 있다.

즉, Homogeneous Coordinates는 행렬 곱만으로 모든 기하학적 변환을 처리할 수 있게 하는 좌표계 확장 방법이다.
1. Translation (이동)
이동은 한 점 을 만큼 평행 이동시키는 연산이다.
이를 Homogeneous 좌표계로 표현하면 다음과 같다.
2. Scaling(스케일링)
스케일링은 좌표를 특정 배율로 확장하거나 축소하는 변환이다.
Homogeneous 행렬 표현은 다음과 같다.
3. Rotation(회전)
회전은 원점을 기준으로 좌표를 만큼 회전시키는 연산이다.
Homogeneous 행렬 표현은 다음과 같다.
4. Shear(시어, 전단 변환)
시어는 축 방향으로 좌표를 기울이는 변환이다.
Homogeneous 행렬 표현은 다음과 같다.
Homogeneous Coordinates를 활용하면 2D 기하학적 변환을 3×3 행렬 곱으로 일관되게 표현할 수 있다.
이러한 통합적 표현 덕분에, 여러 변환을 순차적으로 적용할 때는 각 변환 행렬을 곱해 하나의 복합 변환 행렬로 표현할 수 있다. 이는 컴퓨터 그래픽스, 비전, 로보틱스에서 변환을 효율적으로 처리할 수 있게 해준다.
아핀 변환(Affine Transformation)은 영상 및 기하학적 데이터 처리에서 가장 널리 쓰이는 선형 변환의 한 형태이다. 아핀 변환은 직선성(linearity)과 평행성(parallelism)을 보존하지만, 길이와 각도는 일반적으로 보존하지 않는다. 즉, 변환 후에도 직선은 여전히 직선으로 유지되고 평행한 직선은 여전히 평행하게 남지만, 크기나 각도는 달라질 수 있다.
Source: Alyosha Efros
Adapted from: Lana Lazebnik
Slide credit: Kristen Grauman