전체 글
스타트업 6년차 Computer Vision 엔지니어. 논문 리뷰 및 코딩 삽질 등을 공유하고 있습니다. Pose Estimation을 주로 하고 있어요. LinkedIn : https://www.linkedin.com/in/wooil-jang-7b2853193/
-
TCMR 코드로 학습을 돌려보던 중 insta variety 데이터셋에서 유독 전처리 시간이 오래 걸렸다. #insta_utils.py image = np.expand_dims(sess1.run(tf.image.decode_jpeg(images_data[i], channels=3)), axis=0) 해당 코드는 tfrecord에서 이미지를 session run해서 읽어오고 있는데, 그냥 tfrecord -> jpg 이미지로 바꾼 뒤, 이미지를 읽도록 하니 엄청난 시간 단축이 되었다. image = np.expand_dims(cv2.imread('/home/Data/insta_variety_img/train/'+osp.basename(fname)+'/'+str(vid_idx)+'/'+str(i)+'.jpg..
tfrecord의 심각한 bottleneck (image read time 속도 지연 문제)TCMR 코드로 학습을 돌려보던 중 insta variety 데이터셋에서 유독 전처리 시간이 오래 걸렸다. #insta_utils.py image = np.expand_dims(sess1.run(tf.image.decode_jpeg(images_data[i], channels=3)), axis=0) 해당 코드는 tfrecord에서 이미지를 session run해서 읽어오고 있는데, 그냥 tfrecord -> jpg 이미지로 바꾼 뒤, 이미지를 읽도록 하니 엄청난 시간 단축이 되었다. image = np.expand_dims(cv2.imread('/home/Data/insta_variety_img/train/'+osp.basename(fname)+'/'+str(vid_idx)+'/'+str(i)+'.jpg..
2022.06.14 -
3d human pose estimation에서 depth ambiguity 문제를 해결하기 위해 depth estimation을 사용하면 어떨까? 싶었는데 시도를 해본 논문이 있어서 간단히 정리해볼까 합니다. On the role of depth predictions for 3D human pose estimation 21년 3월 발표된 논문으로 결과를 먼저 살펴보면, 문경식 님이 2019년 발표했던 3DMPPE_POSENET보다 좀 더 좋은 성능을 보이고 있습니다. 최근의 3D Human Pose Estimation 모델들은 아래 링크에서 확인하실 수 있습니다. https://paperswithcode.com/sota/3d-human-pose-estimation-on-human36m Papers wi..
depth prediction을 이용한 3d human pose estimation3d human pose estimation에서 depth ambiguity 문제를 해결하기 위해 depth estimation을 사용하면 어떨까? 싶었는데 시도를 해본 논문이 있어서 간단히 정리해볼까 합니다. On the role of depth predictions for 3D human pose estimation 21년 3월 발표된 논문으로 결과를 먼저 살펴보면, 문경식 님이 2019년 발표했던 3DMPPE_POSENET보다 좀 더 좋은 성능을 보이고 있습니다. 최근의 3D Human Pose Estimation 모델들은 아래 링크에서 확인하실 수 있습니다. https://paperswithcode.com/sota/3d-human-pose-estimation-on-human36m Papers wi..
2022.05.30 -
대표적인 생성 모델인 GAN에 대해 알아보겠습니다. 기본적인 모델은 random noise를 입력으로 사용한다고 가정합니다. GAN은 generator가 만든 이미지가 discriminator가 가진 참값 이미지에 포함이 되는지를 판단하는 역할을 하는 구조입니다. ——————— Objective function (목적함수) binary cross entropy loss (scalar 값, 0~1 사이, positive class가 될 확률) 일반적인 로그 함수는 위 그림을 세로로 뒤집은 형태로, x 축 커질수록 y축 커지는 지수 함수의 모양이 나온다. negative log likelihood 이를 loss minimize에 적용하기 위해 -log(negative log likelihood) 하면, po..
GAN 모델 기초대표적인 생성 모델인 GAN에 대해 알아보겠습니다. 기본적인 모델은 random noise를 입력으로 사용한다고 가정합니다. GAN은 generator가 만든 이미지가 discriminator가 가진 참값 이미지에 포함이 되는지를 판단하는 역할을 하는 구조입니다. ——————— Objective function (목적함수) binary cross entropy loss (scalar 값, 0~1 사이, positive class가 될 확률) 일반적인 로그 함수는 위 그림을 세로로 뒤집은 형태로, x 축 커질수록 y축 커지는 지수 함수의 모양이 나온다. negative log likelihood 이를 loss minimize에 적용하기 위해 -log(negative log likelihood) 하면, po..
2022.05.30 -
확률 밀도 함수 추정 64x64x3 과 같은 input 이미지가 있을 때, 1차원의 vector로 만들어서 그에 따른 값을 추정하는 확률 분포 x, y가 어떤 값일 때 나올 수 있는 확률값 (아래 이미지의 바닥면이 x, y이고 확률값이 수직면이라 보면 된다) VAE의 이해 1. Autoencoder 정보 압축 및 복원을 위한 모델 2. VAE Autoencoder의 확률론 기반 변형 encoder의 output vector가 확률 변수로 모델링되어, 샘플링과정을 통해 추출된 벡터(평균, 분산/표준편차의 추정치)가 디코더의 입력으로 사용됨 loss 출력 이미지와 입력 이미지 차이 KL (KL Diversions term) : dimension별로의 평균/표준편차가 표준정규분포(평균 0, 분산 1)에 가깝도..
생성 모델의 기초확률 밀도 함수 추정 64x64x3 과 같은 input 이미지가 있을 때, 1차원의 vector로 만들어서 그에 따른 값을 추정하는 확률 분포 x, y가 어떤 값일 때 나올 수 있는 확률값 (아래 이미지의 바닥면이 x, y이고 확률값이 수직면이라 보면 된다) VAE의 이해 1. Autoencoder 정보 압축 및 복원을 위한 모델 2. VAE Autoencoder의 확률론 기반 변형 encoder의 output vector가 확률 변수로 모델링되어, 샘플링과정을 통해 추출된 벡터(평균, 분산/표준편차의 추정치)가 디코더의 입력으로 사용됨 loss 출력 이미지와 입력 이미지 차이 KL (KL Diversions term) : dimension별로의 평균/표준편차가 표준정규분포(평균 0, 분산 1)에 가깝도..
2022.05.29 -
이번에는 신체(body) 뿐만 아니라, 손, 얼굴을 포함한 전신에 대한 3D Pose를 예측하는 whole body pose estimation에 대해 알아보겠습니다. Challenges hand가 주로 어렵다 : 움직임이 많고, 작기 때문, 관절 수도 바디랑 비슷하다 (한 손당 21개 관절) 기존 방식 : Body estimator, Hand estimator, Face estimator 따로 해서 integration해서 합쳤음 (통으로 하나로 하면 ResNet에 넣었다고 치면, 8x8로 줄고, hand/face의 크기가 1px 정도라 그냥 crop해서 따로따로 하는 게 더 성능 좋음) 고려해야할 사항 3D body, hand의 연결 : 손목 rotation을 잘 추정해야 연결을 잘 할 수 있음 간단..
Whole Body pose estimation이번에는 신체(body) 뿐만 아니라, 손, 얼굴을 포함한 전신에 대한 3D Pose를 예측하는 whole body pose estimation에 대해 알아보겠습니다. Challenges hand가 주로 어렵다 : 움직임이 많고, 작기 때문, 관절 수도 바디랑 비슷하다 (한 손당 21개 관절) 기존 방식 : Body estimator, Hand estimator, Face estimator 따로 해서 integration해서 합쳤음 (통으로 하나로 하면 ResNet에 넣었다고 치면, 8x8로 줄고, hand/face의 크기가 1px 정도라 그냥 crop해서 따로따로 하는 게 더 성능 좋음) 고려해야할 사항 3D body, hand의 연결 : 손목 rotation을 잘 추정해야 연결을 잘 할 수 있음 간단..
2022.05.27 -
이미지에서만 하던 3D Pose estimation에서 한 차원 더 나아가, 영상에서의 3D Pose Estimation에 대해 알아보겠습니다. 가장 쉬운 방법 매 프레임마다 단일 이미지에서 inference motion blur가 심할 때는 단일 이미지만 보고 3D human pose estimation을 하기가 매우 어려움 단일 이미지에서의 3D human pose estimator는 주변 프레임 정보를 활용할 수 없기 때문에, 주변 프레임 정보를 활용할 수 있는 temporal module이(LSTM, GRU, GraphCNN, Transformer, …) 필요 temporal module 여러 시간대의 정보를 조합할 수 있는 모듈 단일 프레임 + 주변 프레임 정보까지 활용 가능 같은 데이터셋이면 ..
video 3D pose estimation이미지에서만 하던 3D Pose estimation에서 한 차원 더 나아가, 영상에서의 3D Pose Estimation에 대해 알아보겠습니다. 가장 쉬운 방법 매 프레임마다 단일 이미지에서 inference motion blur가 심할 때는 단일 이미지만 보고 3D human pose estimation을 하기가 매우 어려움 단일 이미지에서의 3D human pose estimator는 주변 프레임 정보를 활용할 수 없기 때문에, 주변 프레임 정보를 활용할 수 있는 temporal module이(LSTM, GRU, GraphCNN, Transformer, …) 필요 temporal module 여러 시간대의 정보를 조합할 수 있는 모듈 단일 프레임 + 주변 프레임 정보까지 활용 가능 같은 데이터셋이면 ..
2022.05.26