DTW란? Dynamic Time Warping하며 학습 + 내가 생각한 알고리즘
·
Project/DTW
우선 목표는 여러 영상에 대해 DTW를 수행하고 N개의 video, 각 video의 frame을 N(M)이라고 하였을 때,Mediapipe로 관절을 추출 ( N*N(M)*33개 ) --> 33개는 Mediapipe에서 한 frame당 사람을 33개의 관절 data로 추출이 data를 기반으로 dtw를 수행 --> 이는, 서로 다른 영상에 대해 비슷한 동작끼리 time sequence를 최대한 맞춘다는 의미여기서 그럼 문제는 무엇이 있는가 ?우선 dtw는 기본적인 algorithm에서 2개의 time  serise에 대해 수행을 하며, data 또한 1d, 1d에 대해  처리를 한다.이 말은 A=[1,2,3,4] B=[0,0,0,1,2,3,4]라는 data가 있을 경우 A의 0:3번 index B의 3:6..
using dynamic time warping in 3d data
·
Project/DTW
1. mediapipe를 통해 영상에서 data 추출 2. 추출된 관절 데이터를 관절사이의 vector로 변환후 각변환 3. 여러 영상에서 이를 반복하여 여러 영상에 대한 각변환 data 저장 4. 이를 dtw algorithm을 기반으로 차원을 추가하여 3d data에서도 적용가능하게 변형 5. output으로 path를 받고, path 기반으로 영상에서 비슷한 동작의 sequence(frame)를 재생 output : 서로 다른 타이밍에서 동작을 수행하였는데, 같은 동작의 타이밍을 잘 맞추고 있음.
여러 비디오를 dtw를 통해 타임시퀀스 맞추기
·
Project/DTW
우선 미디어파이프를 통해 여러 영상을 돌리면서 각 관절 데이터를 저장 저장은 x[video][frame][joint], y[video][frame][joint]의 형태로 저장했으며 x[1][30][2]는 두번째 영상의 31번째 프레임의 2번관절에 대한 x축 좌표가 저장되어있다. def angle_of_vectors(vec1,vec2): a,b,c,d=vec1[0],vec1[1],vec2[0],vec2[1] dotProduct = a*c + b*d modOfVector1 = math.sqrt( a*a + b*b)*math.sqrt(c*c + d*d) angle = dotProduct/modOfVector1 angleInDegree = math.degrees(math.acos(angle)) return an..
Dynamic Time Warping(DTW) study
·
Project/DTW
황공진
'Project/DTW' 카테고리의 글 목록