[Computer Vision] Image Warping - Linear Transformation

2023. 5. 29. 13:03
๐Ÿง‘๐Ÿป‍๐Ÿ’ป์šฉ์–ด ์ •๋ฆฌ

Computer vision
Image Warping
Linear Transformation
scaling
rotation
shear
geometric transformation
rectification
stabilization
stitch

 

 

์˜ค๋Š˜ ๋ฐฐ์šธ ๊ฒƒ์€ Image Warping์ž…๋‹ˆ๋‹ค.

 

Image Warping

 

์ด Image Warping๋Š” ๊ทธ๋ƒฅ image๋ฅผ ๋น„ํ‹€์–ด์ค€๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ธฐํ•˜ํ•™์ ์ธ ๋ณ€ํ™”๋ฅผ ํ†ตํ•ด image๋ฅผ ๋น„ํŠธ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ฃ .

 

์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ T๋ผ๋Š” geometric transform์— ์˜ํ•ด ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ๋“ค๋„ warping์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

- Image rectification

- Video stabilization

- Image stitch

 

 

ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

Image rectification

 

 

์ขŒ์ธก ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ๊ฐ๋„์—์„œ ์ดฌ์šฉ๋œ ๋‘ ๊ฐœ์˜ image๊ฐ€ ์žˆ์„ ๋•Œ,

 

์œ„ ๊ทธ๋ฆผ ์ค‘ ์œ— ๊ทธ๋ฆผ์˜ ์šฐ์ธก๊ณผ ๋ฐ‘ ๊ทธ๋ฆผ์˜ ์ขŒ์ธก์ฒ˜๋Ÿผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ƒ๊น๋‹ˆ๋‹ค.

 

์ด ๋‘ ๊ฐœ์˜ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ์ž˜ ๊ณ„์‚ฐํ•˜๊ณ  matchingํ•˜์—ฌ์„œ ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Video stabilization

์ขŒ์ธก์ฒ˜๋Ÿผ ์ข€ ํ”๋“ค๋ฆฌ๋Š” video์— ๋Œ€ํ•ด image warping์„ ํ†ตํ•ด ํ”๋“ค๋ฆผ์ด ์—†๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

 

Parametric (global) warping

 

 

์œ„ ๊ทธ๋ฆผ์—์„œ ์‚ดํŽด๋ณด์ž๋ฉด,

 

์œ„ p๋ผ๋Š” pixel์„ ์•„์ง ๋ญ”์ง€๋Š” ๋ชจ๋ฅด๋Š” T๋ผ๋Š” geometric transform ํ˜น์€ parametric transform์„ ์ด์šฉํ•ด์„œ ๋ฐ”๋€” p'์ด๋ผ๋Š” ์ขŒํ‘œ๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ด T๋Š” global transform์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ๋ฌด์Šจ ์˜๋ฏธ์ผ๊นŒ์š”?

 

์šฐ์„  image๋Š” h x w ๋งŒํผ์˜ pixel์ด ์กด์žฌํ•˜์ฃ .

 

์ด ๊ฐ๊ฐ์˜ ๋ชจ๋“  pixel์— ๋Œ€ํ•ด์„œ ๊ฐ™์€ transform T๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ global transform T๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๋ถ€ํ„ฐ ์›๋ณธ image์˜ ๋ชจ๋“  pixel์— ๋™์ผํ•œ transform T๋ฅผ ์ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ global geometric transform์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

global geometric transform

 

์ด global transform์€ ๋ช‡ ๊ฐœ์˜ ์ž‘์€ ์ˆ˜์˜ parameter๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์•„๋ž˜ ์ˆ˜์‹์˜ parameter๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” T๋ผ๋Š” ํ–‰๋ ฌ์„ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

๊ฐ„๋‹จํ•œ ๊ทธ๋ฆผ ์˜ˆ์‹œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

translation์€ ์•ฝ๊ฐ„์˜ shift ๋ณ€ํ™˜์ด๊ณ , rotation์€ ํšŒ์ „, aspect ๋Š” aspect ratio๋กœ ๋ฐ”๊พธ๋Š” ๋น„์œจ ๋ณ€ํ™˜, ๊ธฐ์šธ๊ธฐ ํšŒ์ „ ๋ณ€ํ™˜ ๋‹ค ๋“ค์–ด๊ฐ€๋Š” affine๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋Œ€ํ‘œ์ ์ธ transformation์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด 2D Transformation์ด๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฒƒ์„ ๋ณด๋ฉด,

 

x, y pixel ์ขŒํ‘œ์— ๋Œ€ํ•ด์„œ ํ–‰๋ ฌ์„ ๊ณฑํ•ด์ฃผ๋Š” ์‹์ธ๋ฐ,

 

์ด๊ฒƒ์„ 2์ฐจ์›์— ๋Œ€ํ•ด์„œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2D Transformation์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

2D Transformation์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ด…์‹œ๋‹ค.

 

์ด ๋„ค๋ชจ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

 

์œ„ ๋„ค๋ชจ๋ณด๋‹ค ์ปค์กŒ์ฃ .

 

์ด scale ๋ณ€ํ™”๋Š” ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋ ๊นŒ์š”?

 

์šฐ์„ , uniform scaling์€ ๋†’์ด์™€ ๋„ˆ๋น„๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•œ ๋น„์œจ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ธฐ์กด ๊ฐ’ x์—์„œ a๊ฐ€ ๊ณฑํ•ด์ง„ x',

 

๊ธฐ์กด ๊ฐ’ y์—์„œ b๊ฐ€ ๊ณฑํ•ด์ง„ y'์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์ด x', y'์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 

์•ž์„œ ์ด์•ผ๊ธฐํ•œ ๊ฒƒ์ฒ˜๋Ÿผ,

 

global transformation์„ ํ–‰๋ ฌํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์˜€์ฃ .

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์ด x', y'์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์œ„์™€๊ฐ™์ด ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ด…์‹œ๋‹ค.

์ขŒํ‘œ๋ฅผ ๋ณด๋ฉด,

 

(2, 1)์€ 2๋ฐฐํ•˜์—ฌ (4, 2)๊ฐ€ ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด uniformํ•˜์ง€ ์•Š๋Š” case๋„ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ ๊ฐ ์š”์†Œ์— ๋‹ค๋ฅธ scalar ๊ฐ’์ด ๊ณฑํ•ด์ง€๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ scale์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ a์™€ b๋ผ๋Š” parameter ๋‘ ๊ฐœ๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

 

 

๊ทธ๋ฆฌ๊ณ  shear๋ผ๊ณ ํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ ๊ด€๋ จ ๋‚ด์šฉ์„ ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ matrix form์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฃผ๋ฉด ๊ธฐ์šธ๊ธฐ์˜ ๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ํšŒ์ „์— ๋Œ€ํ•ด ๋ด…์‹œ๋‹ค.

 

๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด p์˜ ์ขŒํ‘œ๊ฐ€ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ์„ธํƒ€๋งŒํผ์˜ ๊ฐ๋„๋งŒํผ ํšŒ์ „ํ•˜์—ฌ p'์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ–‰๋ ฌ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

 

์œ„์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ์œ ๋„๋ฉ๋‹ˆ๋‹ค.

 

 

์œ„์™€ ๊ฐ™์€ ํ–‰๋ ฌ ์—ฐ์‚ฐ์„ ๊ฑฐ์น˜๋ฉด ์„ธํƒ€๋งŒํผ ํšŒ์ „๋œ ์ƒˆ๋กœ์šด ์ขŒํ‘œ๊ฐ€ ์–ป์–ด์ง‘๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ํ–‰๋ ฌ์— ๋Œ€ํ•œ 2D Transformation ์‹์€ ์œ„์™€ ๊ฐ™์ด ํ‘œํ˜„์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ์‹์œผ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ ๊ฒƒ์„ ๋ณด์ž๋ฉด,

 

์›๋ž˜์˜ ์œ„์น˜์™€ ๋ฐ”๋€ ์œ„์น˜์— ๋Œ€ํ•ด์„œ ํ•ด๋‹น ๊ด€๊ณ„๋Š” ํ–‰๋ ฌ M์ด๋ผ๋Š” ๊ฒƒ์„ ํ†ตํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ scaling, shear, rotation์€ 2 x 2 ํ–‰๋ ฌ M์œผ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ž˜์„œ ์ •๋ฆฌํ•˜์ž๋ฉด ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ฒƒ์„ linear transformation์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ ์ด linear transformation์€ linearility๋ฅผ ๋งŒ์กฑ์‹œ์ผœ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ด linearility๊ฐ€ ์œ„ transformation์— ๋Œ€ํ•ด ๋‹ค ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด์„œ linear transformation์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  scaling๊ณผ rotation ๋™์‹œ์— ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด,

 

scaling + rotation์— ๋Œ€ํ•œ matrix๋„ M์œผ๋กœ ์œ„์™€ ๋™์ผํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ๋จผ์ €, scaling์— ๋Œ€ํ•œ matrix๋ฅผ M1, rotation์— ๋Œ€ํ•œ matrix๋ฅผ M2๋ผ๊ณ  ํ•œ๋‹ค๋ฉด,

 

M1 * p๋ฅผ ํ•˜๋ฉด scaling์ด ๋  ๊ฒƒ์ด๊ณ  ์—ฌ๊ธฐ์— M2๋ฅผ ๊ณฑํ•˜๋ฉด ๋‹ค์‹œ rotation์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ M2 * M1 * p์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์ด ๊ณง p'์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ด M1 * M2๋„ ๊ฒฐ๊ตญ์—” M์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ linear transformation์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

 

 

BELATED ARTICLES

more