๐ง๐ปโ๐ป์ฉ์ด ์ ๋ฆฌ
Computer vision
Image Warping
Forward warping
Backward inverse warping
bilinear interpolation
transformation
์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง๋ Transformation์ ์ข ๋ฅ์ ๋ํด ๋ฐฐ์๋ดค์ต๋๋ค.
Forward warping

์์ ๊ฐ์ 2D Transformation์ ์ํ ์ฐ์ฐ์ผ๋ก ํ๋ ฌ M์ผ๋ก ํํํ๋ค๊ณ ํ์ต๋๋ค.
์ด 3 x 3 Matrix์ธ M์ ์๋ณธ image์ ๊ฐ ์ขํ์ ๊ณฑํด์ฃผ๊ฒ ๋๋ฉด,
๊ฐ pixel์ ๋ํด ์ด๋์ํจ ๊ฐ pixel์ ์ป์ ์ ์๋ค๊ณ ํ์์ต๋๋ค.
์ด์ ๊ทธ ์ขํ ์ ๋ณด๊ฐ ์ฐ๋ฆฌ์๊ฒ ์๋ค๊ณ ํ์ ๋, ํด๋น ์ด๋ฏธ์ง๋ฅผ ํด๋น๋๋ ๋ณํ๋ ์์น๋ก ๋ณํํ๋ ์์ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
์ ๊ทธ๋ฆผ์์, ์๋ณธ ์ด๋ฏธ์ง f์ ๋ํด์ ํ๋์ pixel ๊ฐ์ธ [x y]๋ฅผ ๋ฝ์์ M์ ๊ณฑํด์คฌ์ ๋,
[x' y']์ ๋ฝ์๋ด๋ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ํ pixel์ ๋ํด์๋ง ์ดํด๋ณผ ์ ์์ต๋๋ค.
์ด๊ฒ์ warpingํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ธ ๊ฒ์ ๋๋ค.
์ด ๋ฐฉ๋ฒ์๋ forward warping๊ณผ backward warping์ด ์์ต๋๋ค.
์ด ๋ ๊ฐ์ง ๋ฐฉ์ ๋ชจ๋, ๋ณํํ๋ ํ๋ ฌ M์ ๋ง์ถฐ์, f๋ผ๋ image์ ๋ํด ๋ณํํ๋ ํ๋ ฌ M์ ๋ง์ถฐ ์๋ก mapping๋ g๋ผ๋ image๋ฅผ ์ป๊ณ ์ํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค.

๊ทธ๋์ ๋ฐฉ๊ธ ์ค๋ช ํ ๊ฒ์ฒ๋ผ,
์๋ณธ image f์ ํ๋ ฌ M์ ๊ณฑํ์ฌ g๋ฅผ ๋ฝ์๋ด๋ ํ์์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด ๋ฐฉ๋ฒ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.

์ฐ์ธก ์๋จ ์์ ํตํด x', y'์ ๊ตฌํ ์ ์์์ ์๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ฐ๋ฆฌ๊ฐ ๋จ์ํ๊ฒ ์๊ฐํ์ ๋,
g(x', y')์ผ๋ก์ ์ขํ ๊ฐ์ ๊ตฌํ๋ค๊ณ ํฉ์๋ค.
๊ทธ๋ ๋ค๋ฉด pixel์ ๊ฐ์ g(x', y') = f(x, y)์ ๊ฐ์ด ๋ฃ์ด์ฃผ๋ฉด ๋๋ ๊ฑธ๊น์?
์ฌ๊ธฐ์ ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น์?
์ฌ๊ธฐ์ x', y'์ด ์ ์๊ฐ ์๋ ์๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฐ์ ์ด์ผ๊ธฐ ํ ๊ฒ์ด, ์์์ pixel์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ์์น์ ์์ด์ผ ํ๋ค๊ณ ํ์ต๋๋ค.
์์์ด ๋ง๋ค์ด์ง๋ฉฐ quantization์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์, ์์ ์์น์์๋ pixel์ด ์กด์ฌํ ์ ์๋ ๊ฒ์ ๋๋ค.
(* ๊ทธ๋ฆฌ๊ณ pixel ๊ฐ๋ ์ ์์ฌํฉ๋๋ค.)
์ ๋ณํํ๋ ํ๋ ฌ M์๋ cos, sin๊ณผ ๊ฐ์ ์ฐ์ฐ๋ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ ์๋ก ๋์ฌ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ต๋๋ค.
๊ทธ๋์ ๋๋ถ๋ถ์ x', y'์ ์์์ผ ๊ฐ๋ฅ์ฑ์ด ๊ต์ฅํ ๋์ต๋๋ค.
translation์ ์์์ผ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ง๋ง, ํ์ ์ด๋ ๊ธฐ์ธ๊ธฐ์ ๋ณํ๊ฐ ์๋ค๋ฉด ์์๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ๋์์ง๋๋ค.

๊ทธ๋์ ์ f๋ผ๋ image์์๋ x, y๊ฐ ์ ์์ด๊ธฐ ๋๋ฌธ์ pixel ๋ฐ์ค ์์ ๋ค์ด์์ง๋ง, ๊ทธ๊ฒ ์๋๋ผ ์์์ผ ๊ฒฝ์ฐ์๋ ๋ค์ด๊ฐ์ง ๋ชป ํ ์๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ์์ ๊ฐ์ด 2๊ฐ์ pixel ์ฌ์ด์ ๋์ด๊ธฐ๋ ํ๊ณ , (ex. 1,3 3)
๋์ ํ๋ฅ ๋ก 4๊ฐ์ pixel ์ฌ์ด์ ๋์ด๊ฒ ๋ฉ๋๋ค. (ex. 1.4, 2,7)
๊ทธ๋ ๋ค๋ฉด ์ด๋ด ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํ ๊น์?
์ด ๊ฒฝ์ฐ, ์ f(x, y)์ ๋ํ ๊ฐ์ g(x', y')๋ฅผ ํฌํจํ๋ 4๊ฐ์ pixel ๊ฐ๋ค๋ก ๋ชจ๋ ๋ณด๋ด์๋ ์์ด๋์ด๊ฐ ๋์ต๋๋ค.
๊ทธ๋์ ์ด๋ฅผํ ๋ฉด, g(1.2 , 1.4)์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค๋ฉด, g(1,1), g(2,1), g(1,2), g(2,2)์ผ๋ก ๋ณด๋ด์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ pixel ์ฌ์ด mapping ๋๋ฉด ๋ ๊ตฐ๋ฐ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ ๋๋ค.
์ ๋ฐฉ์์ผ๋ก ํ๋ฉด, f(x,y)์ ๋ํด์ ์ฌ๋ฌ ๋ฐฉํฅ์ผ๋ก ํผ๋จ๋ฆฌ๋ ์์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด๊ฒ์ด ํ pixel์์๋ง ์จ๋ค๋ ๋ณด์ฅ์ ์์ฃ . ์๋ ๊ทธ๋ฆผ์ ๋ด ์๋ค.

์ ๊ทธ๋ฆผ์ ๋ดค์ ๋,
f(x, y)๊ฐ g(x', y')์ผ๋ก ๊ฐ๋๋ฐ, f(x, y+1)๋ g(x', y')๋ก ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ด ๊ฒฝ์ฐ ํผ๋จ๋ ค์ค ๊ฐ์ด 2๊ฐ๊ฐ ์๊ฒจ๋ฒ๋ฆฐ ๊ฒ์ ๋๋ค.

์ด๋ค pixel ๊ฐ์ ์จ์ผํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ผ๋, average ๊ฐ์ ์ฐ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ ๊ฒฝ์ฐ์ ๋ํด์ {f(x, y) + f(x, y + 1)} / 2๊ฐ ๋๊ฒ ์ฃ .

๊ทธ๋์ g(x', y')์ pixel ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์๋, ํผ๋จ๋ ค์ง๋ ๋ชจ๋ ๊ฐ์ ๋ค ๊ธฐ๋กํด๋ฌ์ผํฉ๋๋ค.
๊ทธ๋์ผ ๊ฐ์ ๋ค ํฉํ๊ณ ๊ทธ๊ฒ์ ๋ํด์ ํ๊ท ์ ๋ผ ์ ์๊ฒ ๋ฉ๋๋ค.
์๋ณธ f image์์์ ๋ชจ๋ pixel ์์น๋ฅผ ๋ค ๋ด์ผ, g image๋ฅผ ๋ง๋ค ๋, ๋ช ๊ฐ๋ ๊ฒน์ณค๋์ง ์ ์๊ฐ ์๊ฒ ์ฃ .
๊ทธ๋ฆฌ๊ณ ๋,
์์ ๊ฐ์ด ๋ค ๋ 1 mapping์ด๊ธฐ ๋๋ฌธ์, pixel ๊ฐ์ ๋ฐ์ง ๋ชปํ๋ ์์น๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ช๋ช pixel ์์น๋ ์ด๋ ํ warping๋ ์ค์ง ์์ ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ๋น ๊ณต๊ฐ์ธ hole์ด ๋ฐ์ํฉ๋๋ค.
๊ทธ๋์ ์ฌ๋ฌ pixel์ด ํ ๊ตฐ๋ฐ๋ก ๋ชฐ๋ฆด ์ ์๋ค.
์ด๋ ๊ฒ ๋ชฐ๋ฆฌ๋ค ๋ณด๋ฉด pixel ๊ฐ์ ๋ฐ์ง ๋ชปํ๋ ๋ถ๋ถ๋ ์๊ธด๋ค.
์ด๋ฌํ ์๋ก ์ฐ๊ฒฐ๋๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Backward warping

์ด๋ฒ์ Backward warping์ ๋๋ค.
์ ์์์ ๋ํด ์๋์ ๊ฐ์ด ๋ฐ๊ฟ๋ณด๊ฒ ์ต๋๋ค.

์ด๋ฒ์๋ x', y'์ด ์๋ณธ image x, y์ ์ด๋๋ก ๊ฐ์ง๋ฅผ ์์ธกํ๋ ๊ฒ์ ๋๋ค.
x', y'์ M์ inverse Matrix๋ฅผ ๊ณฑํด์ฃผ๊ฒ ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ๋ณด๋ฉด, g(x', y') = f(x, y)๊ฐ ๋๋ ๊ตฌ์กฐ์ ๋๋ค.
์ด๊ฒ์ ์๊นํ ๊ฒ๊ณผ ๊ฐ์๊น์?
์ฌ๊ธฐ์๋ x', y'์ ๋ํด ์ญํ๋ ฌ M๋ฅผ ๊ณฑํด์ฃผ๋ฉด x, y์ ๊ฐ์ ์ ์ ์์ต๋๋ค.

forward warping์ ์๋ณธ์ ์๋ ๊ฐ์ ๋ํด g์ ๊ฒ์ ์์ธกํ๋ค๊ณ ํ๋ฉด,
backward warping์ ๋๊ฐ์ด g๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด์ f์ ์๋ ๊ฒ์ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๋ ๋๋์ ๋๋ค.
์ฐ์ black์ g ๋ฅผ ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ , g์ ์ฒ์ ๊ฐ๋ถํฐ ์ฑ์์ค๋๋ค. (1, 1)๋ถํฐ ์ฑ์ ๋๊ฐ๋ค๊ณ ํ๋ฉด,
์ด๊ฒ์ด f์ matching๋๋ ์์น๋ฅผ ์์ง ์ ์์ง ๋ชปํ๋๋ฐ, ์ฌ๊ธฐ์๋ ์ญํ๋ ฌ M์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์ด ์์์์๋ M^-1 * [1 1 1]์ ํด์ค๋ค๊ณ ํ์ ๋, ์ด๋ ํ ๊ฐ์ด ๋์ฌ ๊ฒ์ ๋๋ค.
์ด ๊ฐ์ด [a b 1]์ด๋ผ๊ณ ํฉ์๋ค.
๊ทธ๋ผ g(1, 1) = f(a, b)๋ฅผ ํ๋ฉด ๋ ๊ฒ ๊ฐ์ด ๋ณด์ ๋๋ค.
๊ทธ๋ฌ๋, ์ด a, b๊ฐ ๋์ ํ๋ฅ ๋ก ์์์ผ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ๋จ์ํ ์ด๋ ๊ฒ ์ฐ์ฐํ ์ ์์ต๋๋ค.
๊ทธ๋์, ์ฐ๋ฆฌ๋ ์์ ์์น๋ฅผ ์ถ์ ํ๋ interpolation์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
a, b๊ฐ ์์๋ผ๋ฉด ์ฐ๋ฆฌ๋ ์ด ๊ฐ์ ์ฃผ๋ณ 4๊ฐ์ pixel ๊ฐ๋ค์ ํตํด ์ถ์ ํ๊ธฐ ์ํด์ Bilinear Interpolation์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด a, b๋ฅผ ๋๋ฌ์ธ๊ณ ์๋ 4๊ฐ์ pixel ๊ฐ์ interpolation์ ํตํด ์ถ์ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ผ ์ฐ๋ฆฌ๊ฐ ์ด์ ์ญํ๋ ฌ M๋ ์๊ณ ์๊ณ ,
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฑ์์ผํ x', y'๋ ์ด๋ฏธ ์ ํด์ ธ ์๊ณ , ์ฌ๊ธฐ์ ์ญํ๋ ฌ ใ ก * [x' y' 1]์ ํด์ฃผ๋ฉด a, b์ ๊ฐ๋ ๊ตฌํ ์ ์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด f(a, b)๋ bilinear interpolation์ผ๋ก ์ถ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ฒฐ๊ตญ forward๋ g๋ผ๋ image๋ฅผ ๋ง๋ค๊ธฐ ์ํด f์ ๊ฐ์ ๋ณด๋ด๋ ๊ฒ์ด์๊ณ ,
backward๋ g๋ผ๋ image๋ฅผ ๋ง๋ค๊ธฐ ์ํด f์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋์ backward warping์์๋ ์ฐ๋ฆฌ๊ฐ forward warping์์์ ์์ ๋ฌธ์ ๋ ํด๊ฒฐ์ด ๋๊ณ ,
g๊ฐ ๋ง๋ค์ด๋์ ๋ชจ๋ ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ๋ง ํ๋ฉด ๋๋, forward warping์์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ค๋ง, interpolation์ ํด์ผ๋๊ธฐ ๋๋ฌธ์ ๋ฟ์๊ฒ ๋๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
4๊ฐ์ pixel์ ์กฐํฉ, ์ฆ, ๊ฐ์คํ๊ท ์ผ๋ก ๊ณ์ฐ์ด ๋๊ธฐ ๋๋ฌธ์, ๋ฟ์๊ฒ ๋๋, ์ ์ข์์ง๋ ํ์์ด ์ผ์ด๋๊ธด ํ์ง๋ง,
๊ทธ๋๋,forward warping์ hole ๋ฌธ์ ๊ฐ ์๊ณ , ๋ณด๋ด๋ ๋ฐ ์์ด ๊ฐ์ด ๊ฒน์ณ์ ํ๊ท ์ ๋ด์ผํ๋ ๋ฌธ์ ๋ ์์ต๋๋ค.
๋ชจ๋ pixel์ ๋ค ์ฑ์ธ ์ ์๊ณ , ์กฐ๊ธ ๋ฟ์๊ฒ ๋๋ ํ์๋ ์กด์ฌํ๊ธด ํฉ๋๋ค.
์ ํ๋๋ก ๋ดค์ ๋๋ ์ฝ๊ฐ ๋ ์ข๋ค๊ณ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด๋ป๊ฒ g๋ผ๋ ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ผํ๋์ง ๊ฐ์ด ์ ์ ์ฌ ๊ฒ์ ๋๋ค.

์ ์ฌ์ง์ฒ๋ผ ํ์ ํ์ ๋์ ๊ณต๊ฐ์ ๋ค ํฌํจํ ์ ์๋ g๋ผ๋ ๊ณต๊ฐ์ ์ก์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ด๋ฏธ์ง๋ฅผ ๋ฒ์ด๋๋ ๋น์ด์๋ ๋ถ๋ถ์ ๊ฒ์์์ผ๋ก ์ฑ์์ฃผ๊ฒ ๋ฉ๋๋ค.
Backward warping์ ๊ฒฐ๊ณผ์์ผ๋ก ๊ด์ฐฎ์ง๋ง,
๋น ๊ป๋ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฑ์ ๊ณผ์ ์ ๊ณ ๋ฏผ์ด ํ์ํด ๋ณด์ ๋๋ค.
'Artificial Intelligence > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Computer Vision] Hands-On Generative AI with Transformers and Diffusion Models (0) | 2023.09.05 |
---|---|
[Computer Vision] Color Image Processing (1) | 2023.06.06 |
[Computer Vision] Image Warping - Transformation (0) | 2023.05.30 |
[Computer Vision] Image Warping - Linear Transformation (2) | 2023.05.29 |
[Computer Vision] Image Restoration - Bilateral Filter(Adaptive Filtering) (0) | 2023.05.25 |