Published on

๐Ÿ›  PROJECT | Skate Analytics #1

๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ

2022๋…„ ๋ฒ ์ด์ง• ์˜ฌ๋ฆผํ”ฝ์„ ๊ธฐ๋…ํ•ด์„œ ๋งŒ๋“ค์—ˆ๋˜ skating ai๊ฐ€ ๋‹ค๊ฐ€์˜ค๋Š” 2026๋…„ ๋ฐ€๋ผ๋…ธ ์˜ฌ๋ฆผํ”ฝ์„ ๊ธฐ๋…ํ•ด์„œ ์žฌ๋ฐŒ๊ฒŒ ๋งŒ๋“ค๊ณ ์ž ๋‹ค์‹œ ๊บผ๋‚ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ฌ์‹ค ๋‚˜๋Š” 2014๋…„์— ๊ต‰์žฅํžˆ ๋ถˆํ•ฉ๋ฆฌํ•œ ํŒ์ •์„ ๋ณด๊ณ  ๋‚ด ๋งˆ์Œ ์–ด๋”˜๊ฐ€์— judge ai ๊ด€๋ จํ•ด์„œ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์†Œ๋ง์€ 10๋…„ ์ด์ƒ ๋‚ด๋‚ด ์žˆ์–ด์™”๋‹ค..ใ…‹ใ…‹ใ… ใ… 

์•„์‹œ๋‹ค์‹ถ์ด ๋‹น์‹œ 2022๋…„์—๋Š” transformer๊ธฐ๋ฐ˜ํ•ด์„œ ์—ฌ๋Ÿฌ pose estimation์ด ๋งŽ์ด ๋‚˜์˜ค๋˜ ์‹œ๊ธฐ์˜€์ง€๋งŒ, ๋‚ด ๊ธฐ์–ต์ƒ.. ์ผ์ƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฒ—์–ด๋‚œ ํ–‰๋™์„ ํ•˜๋ฉด ์ž˜ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ ํ•œ๊ณ„๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ์—ˆ๋‹ค. ์ ํ”„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์†๋„๋กœ ์ธํ•ด์„œ ๋ธ”๋Ÿฌ๋ฆฌํ•˜๊ฒŒ ๋ณด์ด๋Š” ์˜์ƒ์ด ๋งŽ๊ณ  ์• ์ดˆ์— ๋ฐ์ดํ„ฐ์…‹ ์ž์ฒด๊ฐ€ ์Šคํฌ์ธ  ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋กœ ํ›ˆ๋ จํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ถ€์ง€๊ธฐ์ˆ˜๋ผ..

๋…ผ๋ฌธ์„ ์ž์„ธํ•˜๊ฒŒ ์ฝ์ง€๋Š” ์•Š์•˜์ง€๋งŒ pose estimation ๊ด€๋ จํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ์ •๋„ ๊ฐ๋งŒ ์žก๊ณ  ์žˆ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์šฐ์—ฐํžˆ ์ด ๋…ผ๋ฌธ์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ.. ๋ณด์•„ํ•˜๋‹ˆ ํ•ด๋‹น ๋ชจ๋ธ ํ† ๋Œ€๋กœ ์‹ค์ œ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋กœ์ปฌ๋กœ ๋งŒ๋“œ์‹ ๊ฑด์ง€..

์•”ํŠผ ์ตœ๋Œ€ํ•œ ํ•ด๋‹น ๋…ผ๋ฌธ์„ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด์„œ ์ถ”๊ฐ€์ ์ธ ๋ช‡๊ฐ€์ง€๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

  • ์Šค์ผ€์ดํŠธ ๊ถค์  ๊ทธ๋ฆด ๊ฒƒ
  • ์–ดํ…์…˜ ๋ฐ ํŒ์ • ์š”์†Œ: ๋„์•ฝ๊ณผ ์ฐฉ์ง€์—์„œ๋งŒ ๊ฐ๋„ ๊ณ„์‚ฐ
  • ์•ž ๋’ค ํ•จ๊ป˜ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋„๋ก(?)
  • ์˜์ƒ์€ ๋‹จ์•ˆ ์นด๋ฉ”๋ผ๋กœ ์ดฌ์˜๋œ ์˜์ƒ๋งŒ -> ์ ํ”„ ๊ตฌ๊ฐ„ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆฝํ•‘ํ•  ์ˆ˜ ์žˆ๋„๋ก

๋…ผ๋ฌธ ๊ตฌํ˜„

๋ณธ ๋…ผ๋ฌธ contribution์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค

  • ์ ํ”„ ๋ฐ์ดํ„ฐ์…‹
  • 2d pose estimation + 3d pose estimation + temporal action segmentation
    • DWposeEstimator
    • MotionAGFormer
    • FACT

๋จผ์ € MotionAGFormer๋กœ 2d->3d pose ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์ž..

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

๋ผ๊ณ  ์“ฐ๊ณ  ์‚ฝ์งˆ ์—ฐ๋Œ€๊ธฐ๋ผ๊ณ  ์ฝ๋Š”๋‹ค.

์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ์…‹ ํ† ๋Œ€๋กœ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์ด์Šˆ์— ์ž˜ ๋‚จ๊ฒจ์ ธ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ, world -> camera -> image ์ขŒํ‘œ๊ณ„๋กœ ๋ณ€ํ™˜์„ ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๊ฑฐ๋„ ๋ชจ๋ฅด๊ณ  ์‚ฝ์งˆ์„ ํ–ˆ์—ˆ๋‹ค.. ๊ทธ๋ฆฌ๊ณ  ๋”๊ตฐ๋‹ค๋‚˜ ๋…ผ๋ฌธ์— ๋‚˜์˜จ FSJump3D ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š” 2D ๊ด€๋ จ ์ •๋ณด๊ฐ€ ์—†๊ณ , ์ขŒํ‘œ๊ณ„ ๋ณ€ํ™˜์—์„œ๋Š” ์นด๋ฉ”๋ผ ์ •๋ณด๊ฐ€ ํ•„์ˆ˜๋ผ.. ๊ฒฐ๊ตญ์—๋Š” ์ด ๋ถ€๋ถ„์€ ์ €์ž์—๊ฒŒ ๋ฌธ์˜ํ–ˆ๋‹ค.

์‚ฝ์งˆํ•˜๋ฉด์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ๋˜์ง€ ์•Š์•˜์—ˆ๋‹ค..ใ… ใ… 

image frame..?

2d pose๋Š” dwpose๋กœ ์–ป์€ ๋ฐ์ดํ„ฐ, world3d ์ขŒํ‘œ๋Š” ์žˆ๊ฒ ๋‹ค ์‹ถ์–ด์„œ focal length๋Š” linear regression์œผ๋กœ 650 ์ถ”์ •ํ•œ ๊ฐ’์„ ์ด์šฉํ–ˆ๊ณ (ํ˜„์‹ค์€ 1650..^^) extrinsic๊ฐ’์€ cv2.solvePnP์ด์šฉํ•ด์„œ ์ถ”์ •ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ์ง€ ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€..๋‚˜์™”๋‹ค..ใ…‹ใ…‹ใ…‹ ๊ทธ๋ž˜๋„ ์ผ๋ จ์˜ ์‚ฝ์งˆ ๋•๋ถ„์— ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ํŒŒ์•…์€ ๋˜์–ด์„œ.. ๋‹คํ–‰?์ธ ๊ฑฐ ๊ฐ™๊ธฐ๋„

๋ฐ์ดํ„ฐ ํ˜•ํƒœ

MotionAGFormer์—์„œ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ format ํ˜•ํƒœ๋Š” Human 3.6M๊ณผ mpiํ˜•ํƒœ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋ฌผ๋ก  ์œ„ ์ด์Šˆ๋ฅผ ํ†ตํ•ด์„œ ์ปค์Šคํ…€์œผ๋กœ๋„ ํ›ˆ๋ จ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ปค์Šคํ…€์œผ๋กœ ํ›ˆ๋ จ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์œผ๋‚˜.. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„๋ฒ„๋ฆฐ ๋ฐ”๋žŒ์— ๋ฐ˜์ฏค ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง€๊ธด ํ–ˆ๋‹ค..ใ…‹ใ…‹

MotionAGFormer๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ train, test๋กœ ๋‚˜๋ˆ„์—ˆ๋Š”๋ฐ,

dict_keys(['joint_2d', 'confidence', 'joint3d_image', 'joints_2.5d_image', '2.5d_factor', 'camera_name', 'action', 'source', 'frame', 'world_3d', 'cam_3d', 'cam_param'])

์—ฌ๊ธฐ์„œ joint_2.5d_image = 2.5_factor * joint3d_image์™€ ๋™์ผํ•˜๋‹ค. ์ด์™€ ๊ด€๋ จ๋œ ์ด์Šˆ๋Š” ๋‹ค์‹œ ํ•œ ๋ฒˆ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹œ๋ฉด ๋˜๊ฒ ๋‹ค.

์•„๋ž˜ ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” Reference์—์„œ ์ฒดํฌ!

ํ›ˆ๋ จ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ..!


Reference

Authors