- Published on
๐ | 3D Pose-based Temporal Action Segmentation for Figure Skating
Development Background
2022๋ ๋ฒ ์ด์ง ์ฌ๋ฆผํฝ์ ๊ธฐ๋ ํด์ ๋ง๋ค์๋ skating ai๊ฐ ๋ค๊ฐ์ค๋ 2026๋ ๋ฐ๋ผ๋ ธ ์ฌ๋ฆผํฝ์ ๊ธฐ๋ ํด์ ์ฌ๋ฐ๊ฒ ๋ง๋ค๊ณ ์ ๋ค์ ๊บผ๋ด๋ณด๊ฒ ๋์๋ค. ์ฌ์ค ๋๋ 2014๋ ์ ๊ต์ฅํ ๋ถํฉ๋ฆฌํ ํ์ ์ ๋ณด๊ณ ๋ด ๋ง์ ์ด๋๊ฐ์ judge ai ๊ด๋ จํด์ ๋ง๋ค๊ณ ์ถ์ ์๋ง์ 10๋ ์ด์ ๋ด๋ด ์์ด์๋ค..ใ ใ ใ ใ
์์๋ค์ถ์ด ๋น์ 2022๋ ์๋ transformer๊ธฐ๋ฐํด์ ์ฌ๋ฌ pose estimation์ด ๋ง์ด ๋์ค๋ ์๊ธฐ์์ง๋ง, ๋ด ๊ธฐ์ต์.. ์ผ์๊ณผ ๊ด๋ จํ์ฌ ๋ฒ์ด๋ ํ๋์ ํ๋ฉด ์ ์ธ์ํ์ง ๋ชปํ ํ๊ณ๋ฅผ ์ง๋๊ณ ์์๋ค. ์ ํ์ ๊ฐ์ ๊ฒฝ์ฐ ์๋๋ก ์ธํด์ ๋ธ๋ฌ๋ฆฌํ๊ฒ ๋ณด์ด๋ ์์์ด ๋ง๊ณ ์ ์ด์ ๋ฐ์ดํฐ์ ์์ฒด๊ฐ ์คํฌ์ธ ๊ด๋ จ ๋ฐ์ดํฐ๋ก ํ๋ จํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ถ์ง๊ธฐ์๋ผ..
๋ ผ๋ฌธ์ ์์ธํ๊ฒ ์ฝ์ง๋ ์์์ง๋ง pose estimation ๊ด๋ จํด์๋ ์ฌ๋ฌ ๊ฐ ์ ๋ ๊ฐ๋ง ์ก๊ณ ์์๋ค.
๊ทธ๋ฌ๋ค๊ฐ ์ฐ์ฐํ ์ด ๋ ผ๋ฌธ์ ๋ฐ๊ฒฌํ๊ฒ ๋๋๋ฐ.. ๋ณด์ํ๋ ํด๋น ๋ชจ๋ธ ํ ๋๋ก ์ค์ ๋ก ์น์ฌ์ดํธ๋ฅผ ๋ก์ปฌ๋ก ๋ง๋์ ๊ฑด์ง..
์ํผ ์ต๋ํ ํด๋น ๋ ผ๋ฌธ์ ๋ณด๊ณ ๋ฐ๋ผํ๋ฉด์ ์ถ๊ฐ์ ์ธ ๋ช๊ฐ์ง๋ก ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ํ์๋ค.
- ์ค์ผ์ดํธ ๊ถค์ ๊ทธ๋ฆด ๊ฒ
- ์ดํ ์ ๋ฐ ํ์ ์์: ๋์ฝ๊ณผ ์ฐฉ์ง์์๋ง ๊ฐ๋ ๊ณ์ฐ
- ์ ๋ค ํจ๊ป ์ฌ์ํ ์ ์๋๋ก(?)
- ์์์ ๋จ์ ์นด๋ฉ๋ผ๋ก ์ดฌ์๋ ์์๋ง -> ์ ํ ๊ตฌ๊ฐ ์ฌ์ฉ์๊ฐ ํด๋ฆฝํํ ์ ์๋๋ก
Paper Implementation and Theoretical Background
Paper Overview
๋ณธ ๋ ผ๋ฌธ์ ์ ์ฒด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค:
DWpose โ MotionAGFormer โ Frame Action Cross Attention
๋จ์ ์นด๋ฉ๋ผ๋ก ์ดฌ์๋ ๋น๋์ค๋ง์ผ๋ก ํผ๊ฒจ ์ค์ผ์ดํ ๋์์ ์ ํํ ํ๋ณํ๋ ๊ฒ์ ์ฌ๋ฌ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ํนํ ํผ๊ฒจ ์ค์ผ์ดํ ์ ๋ณต์กํ ํ์ ๋์๊ณผ ์ ํ์ 3์ฐจ์์ ํน์ฑ์ 2D ์์๋ง์ผ๋ก๋ ์์ ํ ๋ถ์ํ๊ธฐ ์ด๋ ต๋ค. ๊ธฐ์กด ๋ฐฉ๋ฒ๋ค์ ๊น์ด ์ ๋ณด์ ๋ถ์กฑ์ผ๋ก ์ธํด ์ ํํ ๋์ ๋ถ๋ฅ์ ํ๊ณ๋ฅผ ๋ณด์๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 3์ฐจ์ ์์ธ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์ ๊ทผ๋ฒ์ ์ฑํํ์๋ค. 2D ์์ธ ์ถ์ ๊ฒฐ๊ณผ๋ฅผ 3D๋ก ๋ณํํ๊ณ , ์๊ณ์ด ํน์ฑ์ ๊ณ ๋ คํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํตํด ์ ํ ๋์์ ์ ํํ ๋ถ์ํ๊ณ ์ ํ์๋ค.
๋ ผ๋ฌธ์ contribution์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค:
- ํผ๊ฒจ์ค์ผ์ดํ ์ ํ ๋ฐ์ดํฐ์ ์์ฑ
- Pose Estimation๊ณผ Temporal Action Segmentation๋ก์ ๋ณธ ๋ฐ์ดํฐ์ ์ ์ ์๋ฏธํ๋ค.
Figure Skating Jump Dataset
์ด ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ์ ์ 12๊ฐ ์นด๋ฉ๋ผ๋ก ๋์ ์ดฌ์๋ ๋น๋์ค ๋ฐ์ดํฐ์ ํจ๊ป 3D ์ขํ ๋ฐ์ดํฐ(c3d), ๋ฉํ๋ฐ์ดํฐ(json)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
โโc3d
โ โโSkater_A
โ โ โโAxel, Comb, Flip, Loop, Lutz, Salchow, Toeloop
โโjson
โ โโSkater_A (๋์ผ ๊ตฌ์กฐ, 2D ๊ธฐ๋ฐ)
โโskater_A
โ โโcam_1 ~ cam_12 (์ดฌ์ ์์)
์ ํ ์ข ๋ฅ ๋ถ๋ฅ: ์ก์ , ํ๋ฆฝ, ๋ฃน, ๋ฌ์ธ , ์ด์ฝ, ํ ๋ฃน, ๊ทธ๋ฆฌ๊ณ ์ฝค๋น๋ค์ด์ ๊น์ง ์ด 7๊ฐ์ง ์ ํ ์ ํ์ ํฌํจํ๊ณ ์๋ค. ๊ฐ ์ ํ๋ ์๋ก ๋ค๋ฅธ ๋์ฝ ๋ฐฉ์๊ณผ ํ์ ํน์ฑ์ ๊ฐ์ง๋ฏ๋ก, ์ด๋ค์ ์ ํํ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ด ํ๋ก์ ํธ์ ํต์ฌ ๊ณผ์ ์๋ค.
MotionAGFormer Architecture
MotionAGFormer์ ๊ตฌ์กฐ์ ์ ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค. ์ธ์ฒด ๋์์ ๊ณต๊ฐ์ ํน์ฑ๊ณผ ์๊ฐ์ ํน์ฑ์ ๋์์ ๋ชจ๋ธ๋งํ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ์ ์ฒด ๊ตฌ์กฐ๋ ํฌ๊ฒ ๋ ๊ฐ์ ๋ณ๋ ฌ ๋ธ๋์น๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ด๋ฏธ์ง๋ AGFormer์ ๊ทธ ํ๋ฆ์ ๋ณด์ฌ์ฃผ๋๋ฐ, AGFormer ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
- Spatial Metaformer: ๊ด์ ์ ์์น ์ ๋ณด๋ฅผ ๋ด๋นํ๋ spatial metaformer, ๊ด์ ๋ค ๊ฐ์ ๊ณต๊ฐ์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ์ญํ ์ ๋ด๋นํ๋ค. ๊ฐ ๊ด์ ์ด ์ธ์ ํ ๊ด์ ๋ค๊ณผ ์ด๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง๋์ง ํ์ตํ์ฌ, ์์ฐ์ค๋ฌ์ด ์ธ์ฒด ๋์์ ์ ์ฝ์กฐ๊ฑด์ ๋ชจ๋ธ์ ๋ฐ์ํ ์ ์๋ค.
- Temporal Metaformer: trajectory ์ ๋ณด๋ฅผ ๋ด๋นํ๋ temporal metaformer๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ณผ๊ฑฐ์ ํ์ฌ, ๋ฏธ๋์ ํ๋ ์๋ค ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํ์ตํ๋ค.
์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์ Metaformer ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผํ๋๋ฐ,
TokenMixer๋ผ๊ณ ์ ํ์์ง๋ง, ๋ณธ ๋ ผ๋ฌธ์ ์ฝ๋๋ฅผ ์คํค๋ฐํด๋ดค์ ๋ ์ ๋ถ๋ถ์ด Attention์ด ๋ค์ด๊ฐ๋ ์๋ GCN์ด ๋ค์ด๊ฐ๋์ ์ฐจ์ด๋ฐ์ ์์ด๋ณด์ธ๋ค. ์ ๋ ๊ฐ๋ฅผ ์๋ ๊ฒ๋ ์๋๊ณ ๋ ผ๋ฌธ์์๋ parallel module์ด๋ผ๊ณ ํํํ๊ณ ์๋ค.
GCN ๊ณ์ฐ ๊ณผ์ ์์ ์๋นํ ํ๋ ฌ ์ฐ์ฐ์ด ํ์ํ๋ฏ๋ก, ์ด ๋ถ๋ถ์ด ์ ์ฒด ํ๋ จ ๊ณผ์ ์์ ์ฃผ์ ๋ณ๋ชฉ ์ง์ ์ด ๋ ์ ์์์ ํ์ธํ์๋ค. ๋ฐ๋ผ์ ์ค์ ์์คํ ๊ตฌ์ถ ์์๋ ์ด ๋ถ๋ถ์ ์ต์ ํ๊ฐ ์ค์ํ ๊ณ ๋ ค์ฌํญ์ด๋ค.
Data Preprocessing Process
Data Preprocessing Challenges
์ปค์คํ ๋ฐ์ดํฐ์ ํ ๋๋ก ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์๋ ์ด์์ ์ ๋จ๊ฒจ์ ธ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์ ์ ์๋ฏ, world -> camera -> image ์ขํ๊ณ๋ก ๋ณํ์ ํด์ผํ๋ค. ๊ทธ๊ฑฐ๋ ๋ชจ๋ฅด๊ณ ์ฝ์ง์ ํ์๋ค.. ๊ทธ๋ฆฌ๊ณ ๋๊ตฐ๋ค๋ ๋ ผ๋ฌธ์ ๋์จ FSJump3D ๋ฐ์ดํฐ์ ์์๋ 2D ๊ด๋ จ ์ ๋ณด๊ฐ ์๊ณ , ์ขํ๊ณ ๋ณํ์์๋ ์นด๋ฉ๋ผ ์ ๋ณด๊ฐ ํ์๋ผ.. ๊ฒฐ๊ตญ์๋ ์ด ๋ถ๋ถ์ ์ ์์๊ฒ ๋ฌธ์ํ๋ค.
์ฝ์งํ๋ฉด์ ์๋์ฒ๋ผ ์ด๋ ๊ฒ ๋ง๋ค์๋๋ฐ ์๊ฐ๋ณด๋ค ์ ๋์ง ์์์๋ค..ใ ใ

2d pose๋ dwpose๋ก ์ป์ ๋ฐ์ดํฐ, world3d ์ขํ๋ ์๊ฒ ๋ค ์ถ์ด์ focal length๋ linear regression์ผ๋ก 650 ์ถ์ ํ ๊ฐ์ ์ด์ฉํ๊ณ (ํ์ค์ 1650..^^) extrinsic๊ฐ์ cv2.solvePnP
์ด์ฉํด์ ์ถ์ ํ๋ค. ๊ทธ๋์ ๊ทธ๋ฐ์ง ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ..๋์๋ค..ใ
ใ
ใ
๊ทธ๋๋ ์ผ๋ จ์ ์ฝ์ง ๋๋ถ์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๊ฐ ์ ์ฒ๋ฆฌ๋๋์ง ํ์
์ ๋์ด์.. ๋คํ?์ธ ๊ฑฐ ๊ฐ๊ธฐ๋
Data Format Types
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์ ๋์ผํ๋ค. ์ด์ ๊ด๋ จ๋ ์ด์๋ ๋ค์ ํ ๋ฒ ์ฌ๊ธฐ์์ ํ์ธํ์๋ฉด ๋๊ฒ ๋ค.
3D Pose Estimation Implementation
finetuning์ ์ํด ๋ฐ์ดํฐ ์ฝ์ง์ ํ๋ ์ค, ์๋ ๋ฐ์ดํฐ์ ์ ์ด์ฉํด์ ์ ์ฒ๋ฆฌํ๊ณ ์์๋ค.
๋ฌธ์ ๋ gt2d ๋ฐ์ดํฐ๊ฐ ์์ด์ ํผ์์ hrnet pose detector๋ก ํ๋ํ๋ ์ ์ฐ๊ณ ํ๋ จํ๋ ์์ค, ์๋๊ฒ ๋ค ์ถ์ด์ ์ ์์๊ฒ ์ง๋ฌธ์ ํ๋ค. ์๊ณ ๋ณด๋ ํด๋น ๋ฐ์ดํฐ์ ์ ์๋ ๋ฐ์ดํฐ์ ์ผ๋ก ํตํฉ์ด ๋์๊ณ . MotionAGFormer์ ์ต๊ทผ TCPFormer ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ์ ๋ง๊ฒ๋ ์ฝ๋๊ฐ ๋์ด์์๋ค.
์ด์ ์ด์์์ ์ดํดํ๋ฏ, (lcn-pose)[https://github.com/CHUNYUWANG/lcn-pose/blob/master/tools/gendb.py] ๋ฅผ ๋ฐ๋ผ์ ์ ์ ๋ฆฌ๊ฐ ๋์ด์๋ค. ๋ณ๋๋ก ์ฝ๋ ์์ ์์ด ์ ์ฒ๋ฆฌ ํ์ MotionAGFormer์ ํ์ธํ๋ํ ๊ฒฐ๊ณผ:
Protocol #1 Error (MPJPE): 68.64220575394518 mm
Acceleration error: 0.8875901212590517 mm/s^2
Protocol #2 Error (P-MPJPE): 10.61481703004164 mm
๋ ผ๋ฌธ์์ ์ ์ฌํ๊ฒ ๊ฒฐ๊ณผ๊ฐ ๋์๋ค. โป ๋ ผ๋ฌธ์ ์ฝ 65
์ ์ฐธ๊ณ ๋ก, ํ์ฌ ๊ทธ๋ํฝ ์นด๋๋ RTX 5060 ๋จ์ผ ๊ทธ๋ํฝ์นด๋๋ก๋ง ํ๋ จ์ ํ์ผ๋ batch ์ฌ์ด์ฆ๊ฐ ์ปค๋ฒ๋ฆฌ๊ฑฐ๋ ํ๋ ์ ํฌ๊ธฐ๊ฐ 81๋ก ๋์ด๊ฐ๋ฉด ํ๋ จ์ด ๋ถ๊ฐ๋ฅํด์.. ใ ใ ๊ฐ์ฅ ์์ ๋ชจ๋ธ๋ก ํ๋ จํ์๋ค.
๊ถ๊ธํด์ scratch๋ก ์ค๋ก์ง AthletePose3D๋ก๋ง ํ์ ๋ ๊ฒฐ๊ณผ๋ ๊ถ๊ธํด์ ๋ ๋ค ํ๋ จํด๋ณด์๋ค. TCPFormer์ ํ๋ ์ ์๊ฐ 81๋ถํฐ๋ง ๋ชจ๋ธ์ ์ ๊ณตํด์ ํ์ธํ๋์ด ๋ถ๊ฐ๋ฅํ ์ํ๋ฉฐ, ํ๋ จ์๊ฐ์ด MotionAGFormer๋ณด๋ค ํ epoch ๋น 2~3๋ฐฐ์ ์๊ฐ์ด ์ฐจ์ด๋์.. ์ด๋ฌํ ์ด์ ๋ก AthletePose3D๋ก๋ง ํ๋ จํด๋ณด๊ธฐ๋ก ํ์๋ค.
MotionAGFormer Error | TCPFormer Error |
---|---|
Protocol #1 Error (MPJPE): 68.64220575394518 mm | Protocol #1 Error (MPJPE): 68.11883602779461 mm |
Acceleration error: 0.8875901212590517 mm/s^2 | Acceleration error: 0.9531336133192262 mm/s^2 |
Protocol #2 Error (P-MPJPE): 10.61481703004164 mm | Protocol #2 Error (P-MPJPE): 10.737423883378284 mm |
๊ฒฐ๊ณผ๋ก๋ง ๋ดค์ ๋ ๋ณ ์ฐจ์ด๊ฐ ์์ด๋ณด์ด๊ณ .. ๋ชจ๋ธ ์์ฒด ์ฉ๋์ผ๋ก ๋ดค์ ๋ ์ ์๊ฐ 1/3๋ฐฐ ์ด๋ฏ๋ก MotionAGFormer์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. ๋๊ตฐ๋ค๋ RTX 5060 ๊ธฐ์ค, ์ ์๋ ์ฝ 18์๊ฐ, ํ์๋ 48์๊ฐ ํ๋ จ ์๊ฐ์ด ์์๋์๋ค.
๋ ผ๋ฌธ์ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ๊ฒฐ๊ณผ๋ก AthletePose3D๋ ๋ค์ํ๊ณ robustํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค๋ผ๊ณ ์ฃผ์ฅํ๋ค.
MotionAGFormer Data Preprocessing
์๋ ๋ฐ์ดํฐ์ ์ ์ด๋ฏธ MotionAGFormer์ ๋ง๊ฒ ๋ฐ์ดํฐ๊ฐ ์ค๋น๋์ด์๋ค.
๋ง์ฝ Custom์ผ๋ก ์ค๋นํ๊ณ ์ถ๋ค๋ฉด ์๋ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ์ผํ๋ค.
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'])
์ฌ๊ธฐ์ 'joint3d_image'๋ ์ด๋ฏธ์ง ์ขํ๊ณ (world โ camera โ image)๋ก ๋ณํ๋ ๊ฐ์ผ๋ก z๊ฐ์ depth ๊ฐ์ด๋ค. ์๊ทผ๊ฐ์ ์ํด ์ ์ฉ๋ ๊ฐ์ด๋ค. ๋ฐ๋ผ์: joint3d_image * 2.5d_factor = joint_2.5d_image์ ๊ฐ๋ค.
2d์ confidence๋ 2d pose estimator์ ํตํด์, 3d๋ world frame ๊ธฐ์ค 3d pose estimator๋ก ์ป๊ณ , camera์ intrinsic, extrinsic๊ฐ์ด ์๋ค๋ฉด ๋ฐ์ดํฐ์ ์ ๋ง๋ค๊ธฐ๊น์ง๋ ํฌ๊ฒ ์ด๋ ต์ง ์๋ค. ๋ฌธ์ ๋ 2.5d factor์ ์ด๋ป๊ฒ ์ป๋๋๋๊ฑด๋ฐ,

lambda = (box[2] - box[0] + 1) / rectangle_3d_size
์ฌ๊ธฐ์ lambda๋ world ์ขํ๊ณ์์ image ์ขํ๊ณ๋ก์ ๋ณํ ๋น์จ์ ๋ํ๋ธ๋ค. ๋ฐ๋๋ก 2.5d factor๋ image ์ขํ๊ณ์์ world ์ขํ๊ณ๋ก์ ์ญ๋ณํ์ ์ํ ํฉํฐ์ด๋ฏ๋ก, ๋ค์๊ณผ ๊ฐ์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ค:
2.5d_factor = 1/lambda
joint3d_image๋ 3D ์๋ ์ขํ๋ฅผ ์นด๋ฉ๋ผ ์ขํ๊ณ๋ฅผ ๊ฑฐ์ณ ์ด๋ฏธ์ง ์ขํ๊ณ๋ก ๋ณํํ ๊ฒฐ๊ณผ์ด๋ค. ์ด๋ z๊ฐ์ ์ค์ ๊น์ด ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฉฐ, ์๊ทผ๊ฐ์ ์ ํํ ๋ฐ์ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ณ์ฐ์ด ์ํ๋๋ค:
joint3d_image * 2.5d_factor = joint_2.5d_image
Temporal Action Segmentation
๊ด๋ จ ๋ฐ์ดํฐ๋ ํด๋น ์ด์์์ ์ป์๋ค.
๊ธฐ์กด RTX 5060์์๋ ํ๋ จ์๊ฐ์ด 240์๊ฐ์ ๋์ด๊ฐ๋ ๊ด๊ณ๋ก vast.ai ์์ RTX 5090์ ๋์ฌํด์ ํ๋ จ ์๊ฐ 11์๊ฐ์ ์์ํ์ฌ ํ๋ จํ์๋ค. evaluation์ ์๋์ ๊ฐ์ด ๋์๋ค..!
Metric | Value |
---|---|
Edit | 88.12912075922682 |
AccB | 97.32553214576997 |
Acc | 97.32553214576997 |
F1@0.10 | 88.6706877013139 |
F1@0.25 | 88.46973316829319 |
F1@0.50 | 87.56543776970041 |
Frame Action Cross Attention Data Preprocessing

๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ์์๋ 17๊ฐ ๊ด์ ์ ์ ๋ ฌ๋ local pose ์ ๋ณด์ ํจ๊ป ๊ด๋ จ ์ค์ผ๋ฌ ๊ฐ๋๋ฅผ ์ถ๊ฐํ ํํ๋ฅผ ํน์ฑ์ผ๋ก ํ์ฉํ๋ค. ์ด๋ฅผ ํตํด ๊ด์ ์ ์์น๋ฟ๋ง ์๋๋ผ ๋ฐฉํฅ ์ ๋ณด๋ ํจ๊ป ๊ณ ๋ คํ ์ ์์ด, ๋ณด๋ค ์ ํํ ๋์ ๋ถ์์ด ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ ํํ๊ฐ ๋ฌํ๊ฒ 18 _ 3 = 54๋ก flatten๋ ํํ๋ฅผ ์ฐพ์๋ณผ ์ ์์๋ค. ๋ฌธ์ ๋.. ๊ด์ ์ 17๊ฐ ์ฌ์ฉํ๋ h36m ํฌ๋งท์ผ๋ก์จ ์ด๋ป๊ฒ ์ ์ฒ๋ฆฌ๋ฅผ ํ๋์ง ๊ถ๊ธํ๋ค. ์ด๋ฆฌ์ ๋ฆฌ ์คํํด๋ณธ ๊ฒฐ๊ณผ ์ 17 _ 3 = 51๊ฐ๋ local joint position์ธ ๊ฒ์ ํ์ธํ์ผ๋ ๋ง์ง๋ง 3๊ฐ ๊ฐ์ด ๋ฌด์์ธ์ง ๊ฐ์ด ์์กํ์๋ค.

์ฒ์์๋ global ๊ฐ์ธ ์ค ์๊ณ ์ ๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ฆฐ ๊ฒ์ด์์ง๋ง ์๊ณ ๋ณด๋ ๋ ผ๋ฌธ์ ์ ํ์๋ ๋ฐ์ ๊ฐ์ด pose alignment ์ฆ, ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ๋ฐ๋ผ๋ณด๊ฒ๋ ์ ์ฒ๋ฆฌ๋ฅผ ํด๋๊ณ ๊ทธ ๋ค์๋ค๊ฐ euler angle์ concatํ ๊ฒ ๋ฟ์ด์๋ค. ์๋ ๊ธฐ์ค์ ์ ์ก๊ณ ์ ์ฒ๋ฆฌ๋ฅผ ํ์๋ค๊ณ ํ๋ค.(๋ ผ๋ฌธ์์๋ ๋จ์ํ๊ฒ pose alignment๋ก๋ง ํ๊ธฐ๋์ด ์์ด์ ๊ด๋ จํด์ ๊ณ์ ์ ์์๊ฒ ์ง๋ฌธํ์๋ค.)
๋คํํ ์ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์ป์ด์ pose estimation์ผ๋ก ์ป์ ๊ฒฐ๊ณผ๋ฅผ ๊ฑด๋ด๋ฐ์ ํจ์ ๊ฒฐ๊ณผ๊ฐ ํ ๋๋ก segment๋ฅผ ์งํํ์๋ค.
๋ฐ์ดํฐ์ ์ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ์๋์ ๊ฐ์๋๋ฐ,

์ด์ 3d๋ก ์ถ์ถํ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋ฅ ์ฉ ์ข์ง ์์์ ๋ณด์ฌ์ค๋ค.. ์ด ์ํ๋ก TAS๋ฅผ ์งํํ ๊ฒ ๊ฐ๋ค.
์ต์ข ์ ์ผ๋ก ์ป์ ๊ฒฐ๊ณผ๋ฌผ์ ์.. ์์งํ ๋ง์ด ์ค๋ง์ค๋ฌ์ ๋ค. ๋ฟ์ธ ๋ฅผ ๋ฃน์ผ๋ก ์ธ์ํ๋ ๋ฑ ๋๋ถ๋ถ์ ๊ฒฐ๊ณผ๊ฐ None์ผ๋ก ์ฒ๋ฆฌ๋์๋ค..ใ ใ
์๋ฌด๋๋ TAS์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ฅผ plotํ์ ๋ ์๋นํ corrupt๋ ๊ฒ๋ค์ด ๋ง์ด๋ค์ด๊ฐ ๊ฑธ ํ์ธํ๊ณ , ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ์ ๋์ค์ง ์์ ๊ฒ์ผ๋ก ์ฌ๋ฃ๋๋ค..
Final Results and Evaluation
MotionAGFormer์ Frame Action Cross Attention์ ๊ฐ ์์๋๋ก์ evaluation์ ์๋์ ๊ฐ๋ค.
MotionAGFormer Error |
---|
Protocol #1 Error (MPJPE): 68.64220575394518 mm |
Acceleration error: 0.8875901212590517 mm/s^2 |
Protocol #2 Error (P-MPJPE): 10.61481703004164 mm |
Metric | Value |
---|---|
Edit | 88.12912075922682 |
AccB | 97.32553214576997 |
Acc | 97.32553214576997 |
F1@0.10 | 88.6706877013139 |
F1@0.25 | 88.46973316829319 |
F1@0.50 | 87.56543776970041 |
์๊ฐ๋ณด๋ค ์ธ์์ ์์ด์ ์ค๋ง์ค๋ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์๋ค. Annotation feature ๋ฐ์ดํฐ๊ฐ ๋ง์ด ์์๋ ๊ฒ์ ํ์ธํด์.. ๊ทธ๊ฒ์ ๊ฐ์ํ๊ณ ์ธ์ํ๋ ๊ฒ ๊ฐ์๋ณด์ธ๋ค. ์์์ ๋ฟ์ธ ์ด๋ ๋ฃน์ผ๋ก ์ธ์ํ๋ ์ค๋ฅ๋ฅผ ๋ฒํ๊ณ ์๋ค..
Summary and Conclusions
์ข ํฉ์ ์ธ ๊ฒฐ๊ณผ์ ํ์ดํผ ๊ด๋ จํ ์ ๋ฆฌ๋ฅผ ํ์๋ฉด, ์๊ฐ๋ณด๋ค ๊ฒฐ๊ณผ๊ฐ ๋ฏธํกํ ๊ฒ์ ๋ํด์๋ ๋ฐ์ดํฐ ํ๋ฆฌํฐ๊ฐ ์๋นํ ๋ฎ์๋ค๋ ๊ฒ๊ณผ ๊ฐ์ฅ ์ค์ํ foot feature๋ค์ ์ฌ์ฉํ์ง ์์๋ค๋ ๊ฒ์ด๋ค.. ์ด๋ฌํ ์ฐ์ ๊ฐ ํฌ์ง ์์๊น ์์ํด๋ณด์๋ค.
์ผ๋ณธ์์๋ ์ด์ ๊ด๋ จํด์ ์ฐ๊ตฌ๊ฐ ์๋นํ ์ด๋ฃจ์ด์ง๊ณ ์๋ ๊ฒ ๊ฐ์๋ฐ, ๊ธฐ์กด์ ์ฒด์กฐ ์ชฝ์์ ์ฐ์ด๋ AI ์ฑ์ ๊ธฐ์ ์ ๋ฐํ์ผ๋ก ์ ์๋ค ํ๋ จ ๋ถ์์ฉ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ์๋ ์ค์ด๋ค.
๊ฒฐ๊ณผ๋ ๋น๋ก ์คํจ์ ๊ฐ๊น์ด ๋ ผ๋ฌธ ๊ตฌํ์ด์์ง๋ง ์ถฉ๋ถํ ๊ฐ์ ๊ฐ๋ฅํ๋ค๊ณ ๋ณธ๋ค.
- foot feature ์ถ๊ฐ: ๋์ฝ๊ณผ ์ฐฉ์ง๊ฐ ์ค์ํ ํ์ ๊ธฐ์ค์ผ๋ก์จ Annotation์ ์ถ๊ฐ์ ์ธ ๋ถ๋ถ๋ค์ด ํ์ํ๋ค. ์ด ๋ถ๋ถ์ ์ด์ ํ๋ ์๊ณผ ํ์ฌ ํ๋ ์๊ฐ์ ์๋๋ก ๊ณ์ฐํด์ ๋ค์ด๊ฐ๋ฉด ๋ฐ ์์ฒด๋ฅผ ์ถ๊ฐํ์ง ์์๋ ๋ ๊ฒ ๊ฐ์ ๋ณด์ธ๋ค.
- ์ถ๊ฐ์ ์ธ Annotation ๋ฐ์ดํฐ ํ์: ์์ง ์ฐฉ์ง์ ๋์ฝ์ ๊ดํ ๋ฐ์ดํฐ์ ์ ํ์ ํ ๋ถ์กฑํ๊ณ ์ฃผ๊ด์ ์ธ ์์๋ค์ด ๋ค์ด๊ฐ๋ค. ์ด์ ๊ด๋ จํด์ ๋ง์ ์ฌ๋๋ค๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ง์ด ํ์ํด๋ณด์ธ๋ค.
๋ํ ๋ ผ๋ฌธ์์๋ DWposeEstimator๋ฅผ ์ฌ์ฉํ์์ง๋ง.. coco ํฌ๋งท์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ๋์์ ๋ณํํด์ h36m ํฌ๋งท์ estimate์ ํ์๋ค. ์ด๋ฏธ ๋ด๋ถ์ hrnet์ด๋ผ๊ณ 2d pose estimator๊ฐ ์์๋๋ฐ, ์๋๋ฉด์์ hrnet์ด estimateํ๋๋ฐ ๋ ๋นจ๋์ด์ dwpose๋ fallback์ฉ์ผ๋ก ๋ฃ์ด๋๊ธฐ๋ ํด๋์๋ค. ์, ๊ทธ๋ฆฌ๊ณ .. coco ํฌ๋งท์ด ๋ ๊ฐ์ง(?)๋ ์๋ค๋ ๊ฑธ ์ด๋ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฏ์ด๋ณด๋ฉด์ ์๊ฒ๋์๋ค. ๋๋ฆ ์ป์ด๊ฐ๋ ๋ถ๋ถ์ด ๋ง์๋ ํ๋ก์ ํธ์ธ ๊ฒ ๊ฐ๋ค.
References
- Authors
- Name
- Amelia Young
- GitHub
- @ameliacode