본문 바로가기
AIML 분야/Video Classification & Detection

Kinetics 학습 삽질 과정 (진행중)

by 포숑은 맛있어 2020. 12. 4.
반응형

비디오를 처음 해보니 슬픈 일이 벌어졌다.

 

사실 something-something이랑 jester를 쓰고 싶었는데 데이터셋 유료화되었다.

굉장히 눈물이 났다.

 

돈이 없어서...

지피유가 없어서...

중간 규모의 데이터셋을... 쓰려는데요...

데이터셋이... 유료에요...

 

상황

원래 Kinetics400을 돌리려고 했다.

 

[문제 1] 크롤링을 하자

ActivityNet 공식코드 (youtube-dl 쓰는 그거), youtube crawler 다른거 (이름 까먹음) 둘다 써봤다.

그런데 2-3일정도 지나면 "HTTP too many requests error" 발생.

아무래도 ip를 바꾸거나 해서 시도해야할 것 같은데, 데이터 양이 방대해서 일일이 하기 번거롭다. 오래 걸리고.

진짜 몇번을 시도했는데 이 꼬라지인거 봐서 그냥 유투브에서 요청 너무 많은거 막아버렸나 싶다.

그리고 하루 지나도 안 풀림 ㄱ-

 

 

[문제 2] 링크 요청을 하자

그래서 Kinetics400 Dataset 링크를 요청했다.

그런데 baidu 링크가 왔다. 만료기간 7일 제한.

문제는 회원가입이 막혀있다.

그러면 다른 루트로 다운해야하는데, 마지막으로 해본 게 몇년 전이더라...? 아무튼 그러면 다운로드 속도가 잘 안나올 것 같다. 막힌 방법도 많고.

 

이런 이유로 원래 가지고 있는 Kinetics700 데이터셋에서 학습을 해보려고 한다.

 

[문제 3] 그래. 아무튼 있는 데이터셋 프레임을 잘라보자.

frame 잘라서 일일이 저장하기에는 너무 큰 용량.

800GB에 육박하는 데이터셋인데 이걸 잘라서 저장한다...? ㄱ-

진짜 무진장 오래 걸린다. raid 용량 터뜨리고 말았습니다. 죄송합니다.

마침 NAS 확장해두신 곳에 해봤는데 그러면 데이터 불러오는 속도가 매우 느리다... 그냥 access 자체가 대빵 느림. 굉장히 슬펏다.
추가 확보한 스토리지를 내가 처음 쓴거라 몰랐다. 흑흑. 그래. 백업에만 쓰자.

 

 

SlowFast 공식 코드를 확인해봤다.

1. Kinetics dataset에서 랜덤으로 샘플링해오는 것 같다. 대충봐서 틀릴수도 있다.

2. 비디오 그냥 텐서로 가져오는 것 같은데?

이쯤되면 1에폭 돌릴 때 얼만큼 돌리는건지도 모르겠는...

 

 

=> 그래서 frame 자르지 말고 학습하기로!

 

그런데 내 베이스라인 코드에 해볼거라 detectron2 이런걸 셋업하고싶진 않다.

코드가 복잡하고, 동일한 비교도 어려울 것 같아서.

 

 

[시도 1] 깃허브 검색

깃허브 다른 action recognition 간단한 코드에 프레임 안 자르고 하는거 없나?

=> 찾기가 어렵다.

 

[시도 2] 공식 코드 뜯기

SlowFast 공식 코드 뜯어보자.

=> pyac라는걸 쓴다. 어떻게 쓰는지 코드 뜯어보기가 매우 귀찮다. 까도 까도 뭐가 자꾸 나옴 ㄱ-

아유 복잡해.

 

이걸 까보는 시간에 그냥 내가 짜겠다는 생각이 들었다.

대충 decoder 키워드로 서치해보자.

 

[시도 3] 새로운거 발견

decord라는걸 발견. 이름값 하는 아이이다.

github.com/dmlc/decord#bridges-for-deep-learning-frameworks

 

 

dmlc/decord

An efficient video loader for deep learning with smart shuffling that's super easy to digest - dmlc/decord

github.com

마침 pyac보다 빠르다고 한다.

게다가 pytorch train/tes에 바로 연결해주는 브랜치를 제공해준다고 한다.

=> 써보자!

 

코드를 대충 작성한다.
대충 실행한다.

오. 좋아. 그러면 그냥

1. csv 불러와서 시간 어찌저찌 자르고

2. 나머지는 이미 짠 코드로 돌려막기

3. 굿!

 

하지만 곧 퇴근시간이니 다음주로 적당히 미루고 논문을 읽으러 가야겠다.

 

 

제발 성공해줘!

 

 

아 진짜 학습할때를 생각하고 데이터셋좀 만들어주라

너무 거대해요

반응형

댓글