본문 바로가기

딥러닝프로젝트/pose_estimation

DeepLabCut, Leap

조사일시:19년10월31일~19년11월6일

 

 

Animal Pose_estimation을 위한 여러라이브러리를 조사한 적이 있습니다.

Leap

동물중 특히 , 강아지를 Pose_estimation하기 위한 방법을 찾았습니다.

 

 

우선 Leap이라는 프레임 네트워크가 있습니다.

 

위기사는 2018년 12월 Nature 기사입니다.

 

Fast animal pose estimation 검색을 하는데 Leap를 소개 해주길래 알게 되었습니다.

 

개발환경

 

Python :  3.6.4

Anaconda : 5.1.0

MatLab : MATLAB R2018a

Python : OpenCv3

 

개발환경 요구사항은 위와같이 됩니다.

 

Input Data

 

확장자 : h5(HDF5)

 이유:  모든 language environment 에서 지원을 해준다.

  Mp4,Avis, 등등에 비해 lossless 하다.

Leap에서 우리가 가지고 있는 비디오를 변환해주는 툴을

제공해줍니다.

VideoReader , h5create, h5write

Shape:192 * 192 * 1 * 2085

  width * height * channel * frame

 

Creating Labeling Dataset

 

클러스터링 기법을 이용해서 Dataset을 labeling 합니다.

 

동영상을 frame별로 추출하면 single frame192*192

여기에는 대부분의 픽셀이 많이 변하지 않거나 , 상관관계가 있다.

Pca로 차원을 줄여준다.

 

 

기법 :Pca

고차원의 데이터를 저차원의 데이터로 변환하는것

 

 

※Pca기법이 제가 공부가 부족해서 어떤 원리인지는 잘 모르겠습니다

 

 

 

 

 

데이터의 차원을 줄인 다음에 대표적인 동작 여러 개로 clustering 을 해줍니다.

 

 

 

Creating Skeleton

 

 

 

관절의 종류를 정의하는 과정

Labeling and training

 

DeepLabcut

 

Makerless animal pose estimation

 

경주마, 치타, 곤충, 박테리아 , 사람에 대한 pre_trainted model갖고잇다고 합니다.

개발환경

운영체제  : Windows , Linux, Mac os

Python : Python3

Anaconda

Tensorflow :  Tensorflow 2.X 시리즈 사용 X

그래픽카드 : Geforce 1080Ti , 2080Ti 권장

  만일 없다면 , Google Colabortry,Aws 를 이용

 

Creating Project

2D의정보만으로 표현된 관절을 만들거나 ,3D의 정보로 표현된 관절을 만들 수 있습니다.

Select Data

일반적으로 , 50~200장에 datalabeling

 

이를 위해 , k_means 같은 clustrering 기법을 사용한다.

 

Labeling Frame

Deeplabcut 에서는 labeling frame 이라는 toolbox를 제공합니다.

Framecrop 할 수 있게 하는 기능이 있습니다.

Labeling 할 때 occlussion이나 invisible한 부분은 하면 안된다.

※Occlusion:예전에 찾아봣을떄 , 사진상에서 관절이 겹치는 부분을 의미한다고 합니다.

※Invisible: 관절이 사진상에서 보이지 않는 부분을 의미한다고 합니다.

 

Creating Training Dataset

Labeling 하는 운영체제와 training하는 운영체제를 동일하게 해줘야한다.

 

Training NetWork

GTX 1080 TI GPU :200000번의 iteration으로  train시키는데 6시간 정도가 소요된다.

'딥러닝프로젝트 > pose_estimation' 카테고리의 다른 글

DeeplabCut 사용하는법  (0) 2020.07.18