frankmocap 3d skeleton visualization 2

먕먕·2022년 12월 19일
0
post-thumbnail

한 frame으로 시각화한 것을 모든 frame에 대해 시각화한 후, video로 추출해보자

전체 코드는 깃에 업로드하였다
https://github.com/dangdang2222/frankmocap_project/blob/main/3D_skeleton_visualize_to_video.ipynb

먼저 pkl이 저장되어있는 output 디렉토리로 이동한 후 pkl 파일들 이름 형식을 잠깐 보자

반복문으로 처리할 수 있을 것 같다

for index in range(0,301):
    if index<10:
        pkl_name = 'mocap/0000'+str(index)+'_prediction_result.pkl'
    elif index<100:
        pkl_name = 'mocap/000'+str(index)+'_prediction_result.pkl'
    else:
        pkl_name = 'mocap/00'+str(index)+'_prediction_result.pkl'
    pickle_f = pd.read_pickle(pkl_name)

301 대신 전체 frame 개수를 써줘야한다
plotting 코드는 이전과 같으므로 설명을 생략

매 프레임의 plotting을 jpg로 저장하려고 한다. 편의를 위해 plotting을 저장할 폴더를 생성하고 그 안에 frame 순서대로 저장한다

for index in range(0,301):
	(생략)
    if index<10:
        spkl_name = 'mid/s0000'+str(index)+'.jpg'
        
    elif index<100:
        spkl_name = 'mid/s000'+str(index)+'.jpg'
    else:
        spkl_name = 'mid/s00'+str(index)+'.jpg'
    fig.savefig(spkl_name)

아래 코드는 output으로 나온 jpg와 위에서 저장한 pkl을 visualize한 jpg를 합치기 위한 코드이다. 대충 각각 jpg를 읽고, 사이즈를 동일하게 조절한 후 paste로 이어붙여서 새로운 jpg를 저장하는 과정

from PIL import Image

for index in range(0,301):
    if index<10:
        one_name = 'rendered/0000'+str(index)+'.jpg'
        two_name = 'mid/s0000'+str(index)+'.jpg'
        new_name = 'concat/0000'+str(index)+'.jpg'
    elif index<100:
        one_name = 'rendered/000'+str(index)+'.jpg'
        two_name = 'mid/s000'+str(index)+'.jpg'
        new_name = 'concat/000'+str(index)+'.jpg'
    else:
        one_name = 'rendered/00'+str(index)+'.jpg'
        two_name = 'mid/s00'+str(index)+'.jpg'
        new_name = 'concat/00'+str(index)+'.jpg'
        
    one = Image.open(one_name)
    two = Image.open(two_name)
    two = two.resize((one.size[0]//2, one.size[1]))
    new = Image.new('RGB',(one.size[0]+two.size[0],one.size[1]),(250,250,250))
    
    new.paste(one,(0,0))
    new.paste(two,(one.size[0],0))
    new.save(new_name)

영상으로 추출한다

cat *.jpg | ffmpeg -f image2pipe -i - output2.mkv

(velog는 영상 업로드가 안되는거 같아서 gif로 변환해서 올림)

0개의 댓글