๐Ÿ’ป/๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด

[์ปดํ“จํ„ฐ ๋น„์ „] Optical Flow

ruhz 2021. 6. 7. 13:41

FRUC (Frame Rate Up Conversion)

๋™์˜์ƒ์€ ์ด๋ฏธ์ง€์˜ ์—ฐ์†์ด๋‹ค. ์šฐ๋ฆฌ๋‚˜๋ผ ๋ฐฉ์†ก๊ตญ์€ 1์ดˆ์— 60์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š”, 60Hz์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ถœํ•œ๋‹ค. ์• ์ดˆ์— 60Hz์ธ ์˜์ƒ๋“ค์€ ๊ทธ๋Œ€๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ๋˜๊ฒ ์ง€๋งŒ, ๋ณดํ†ต ํ•ด์™ธ ์˜ํ™”๋Š” 24Hz์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ, 24Hz : 60Hz = 2 : 5, 2์žฅ์„ 5์žฅ์œผ๋กœ ๋Š˜๋ ค์„œ ๋‚ด๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. 'A B'๋ฅผ 'A A A B B'๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐฉ์†ก๊ตญ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ๋“  60Hz๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋ณด๋‚ธ๋‹ค ์น˜๊ณ , ์—ฌ๊ธฐ์— 1์ดˆ์— 120์žฅ์„ ๋ณด์—ฌ์ฃผ๋Š” TV๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. TV๊ฐ€ 1์ดˆ์— 120์žฅ์„ ๋ณด์—ฌ์ฃผ๋ ค๋ฉด ์˜์ƒ์˜ ์ž์—ฐ์Šค๋Ÿฌ์›€์„ ์œ„ํ•ด์„œ 60์žฅ์˜ ์˜์ƒ ์‚ฌ์ด์‚ฌ์ด์— ์ ์ ˆํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ผ์›Œ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

 

์ด ๋•Œ ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ๋ผ์›Œ ๋„ฃ์„์ง€๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด์ž๋Š”๊ฒŒ, FRUC์ด๋‹ค. ๋จผ์ € ์ด๋ฏธ์ง€ ์•ˆ์˜ ํ”ฝ์…€๋“ค์ด ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ์–ด๋Š ํ”ฝ์…€์— ๋งค์นญ๋˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋‹ฌ๋ฆฌ๊ธฐ ๋›ฐ๋Š” ์„ ์ˆ˜๊ฐ€ ์ถœ๋ฐœ์ง€์ ์—์„œ ์žˆ๋‹ค๊ฐ€, ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ 2m ์ง€์ ์— ์žˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ์ด์ธ 1m ์ง€์ ์— ์„ ์ˆ˜๊ฐ€ ์œ„์น˜ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๊ฐ„ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ชจ์…˜ ๋ฒกํ„ฐ ์ถ”์ถœ์€ ๊ทธ ์ฒซ๊ฑธ์Œ์ด๋‹ค.

 

 

 

Motion Extraction

 

 

'ํ˜„์žฌ ํ”ฝ์…€ f(y, x, t)๊ฐ€ dt ํ›„์˜ ํ”„๋ ˆ์ž„์—์„œ, ํ”ฝ์…€์˜ y, x ์ขŒํ‘œ๋ฅผ dy, dx๋งŒํผ ์›€์ง์ธ ๊ณณ์— ๊ฐ€์žˆ๋”๋ผ!' ๋ฅผ ๋‚˜ํƒ€๋‚ธ ์‹์ด๋‹ค. ์‚ฌ์‹ค ์›€์ง์—ฌ๋„ ํ”ฝ์…€์˜ ๊ฐ’์ด ์™„์ „ํžˆ ๊ฐ™์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”ฝ์…€ ๊ฐ„ ์ฐจ์ด๊ฐ€ ํฌ์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์— ๋ฐ๊ธฐ ๋ณ€ํ™”๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์™ผ์ชฝ ์‹์„ ํ…Œ์ผ๋Ÿฌ ๊ธ‰์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ „๊ฐœํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์ด ๋œ๋‹ค.

 

 

 

์—ฌ๊ธฐ์„œ dt๊ฐ€ ๋ณดํ†ต ๋งค์šฐ ์งง๊ธฐ ๋•Œ๋ฌธ์— high order term์€ ๋ฌด์‹œํ•ด๋„ ๋œ๋‹ค. ๊ทธ๋Ÿผ ์œ„ ์ˆ˜์‹๊ณผ ์•„๋ž˜ ์ˆ˜์‹์„ ์—ฐ๋ฆฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์‹์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

dy/dt, dx/dt๋ฅผ v, u๋ผ๊ณ  ๋ฐ”๊ฟจ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ v์™€ u๋ฅผ ์ฐพ์•„๋‚ธ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ๋ชจ์…˜๋ฒกํ„ฐ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ์ง€ f๋ฅผ x, y, t์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ๋‹ค๋ฉด ์ด๋ ‡๋‹ค. 

  • df/dy = f(y+1, x, t) - f(y, x, t) 
  • df/dx = f(y, x+1, t) - f(y, x, t)
  • df/dt = f(y+1, x, t+1) - f(y, x, t)

๊ฒฐ๊ตญ ๋ฏธ๋ถ„ ๊ฒฐ๊ณผ๋Š” ์ƒ์ˆ˜๊ฐ’์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๊ณ , ์šฐ๋ฆฌ๋Š” ๋ฏธ์ง€์ˆ˜ 2๊ฐœ์— ์‹์€ 1๊ฐœ์ธ ์ƒํƒœ์— ๋†“์˜€๋‹ค. ์ด ์ƒํƒœ์—์„œ v, u๋ฅผ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ฒ ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ '์ฃผ๋ณ€์˜ ๊ฐ’๋“ค์ด ๊ฐ™์€ v, u ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค'๋Š” ๋˜ ํ•˜๋‚˜์˜ ๊ฐ€์ •์ด ๋“ค์–ด๊ฐ„๋‹ค. ์ž‘์€ ๊ณจํ”„๊ณต์ด ๋‚ ์•„๊ฐ„๋‹ค๊ณ  ํ•ด๋„ ์ด๋ฏธ์ง€์—์„œ๋Š” ๊ฝค๋‚˜ ๋งŽ์€ ํ”ฝ์…€๋“ค์ด ํ•œ๊บผ๋ฒˆ์— ์ด๋™ํ•  ์ •๋„๋กœ ํ”ฝ์…€์€ ์ž‘์€ ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฝค๋‚˜ ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์ •์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ๋ณ€ ํ”ฝ์…€๋“ค์„ ๋ฌถ์–ด ์‹์„ ์„ธ์šด ๋‹ค์Œ, ๋ชจ๋“  ํ”ฝ์…€๋“ค์— ๋Œ€ํ•˜์—ฌ ๊ฐ€์žฅ ๊ฒฐ๊ณผ๊ฐ€ ์ข‹์€ ํ•˜๋‚˜์˜ ํ•ด๋ฅผ ์ฐพ๋Š”๋‹ค๋ฉด? ์ด์ „์— Lucas-Kanade์—์„œ๋„ ๋‚˜์™”๋˜ ์ตœ์†Œ์ž์Šนํ•ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

 

์ด์ œ ๊ฐ ํ”ฝ์…€๋ณ„๋กœ ๋ชจ์…˜๋ฒกํ„ฐ v๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๊ฐ ํ”ฝ์…€์ด ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ์–ด๋””์— ๋งค์นญ๋˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

Implementing Lucas-Kanade Optical Flow algorithm in Python

In this article an implementation of the Lucas-Kanade optical flow algorithm is going to be described. This problem appeared as an assignment in this computer vision course from UCSD. The inputs wi…

sandipanweb.wordpress.com