조사일시: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 frame당 192*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장에 data를 labeling
이를 위해 , k_means 같은 clustrering 기법을 사용한다.
Labeling Frame
Deeplabcut 에서는 labeling frame 이라는 toolbox를 제공합니다.
Frame을 crop 할 수 있게 하는 기능이 있습니다.
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 |
---|