Search
Duplicate

시각적 이해를 위한 머신러닝/ Video Classification II

지난 번 이후의 모델들 확인
2D Convolution
3D Convolution은 시간 길이가 추가 된다.
Filter의 가장 앞에 들어간 것은 시간 정보. 3이면 3프레임까지 본다는 것
sliding 할때 공간적으로만 하지 않고 시간축으로도 sliding 해줘야 함
padding도 시간축으로 늘어남
2D Conv에서 filter가 3개 있는 경우
가로x세로x채널
시간 차원이 늘어나서 filter도 4개로 늘어남
시간x가로x세로x채널
거기에 필터 자체의 개수도 있으므로 고려하여 계산하면 이렇게 됨.
패딩은 시간, 공간을 따로 줄 수도 있다.
최초의 3D Conv Model
당시에는 이걸 돌릴만한 컴퓨팅 파워가 없어서 널리 쓰이지 못함
3D Conv를 비디오에 적용한 모델
C3D의 아키텍처
Long range 문제가 있었고, 수작업 feature가 여전히 존재 했음
그 다음으로 나온게 ResNet을 3D로 확장한 것
원래 ResNet은 152층을 쌓았지만 3D는 너무 커서 34층으로 줄임
R3D의 아키텍처
R2+1는 3D 커널로 한번에 하지 않고, 시간쪽 filter와 공간쪽 filter를 쪼개서 학습함
그 점에서 Two-Stream과 비슷함
R2+1D이 R3D보다 성능이 좋다고 함
DenseNet을 이용해서 만든게 T3D
학습할 때 2D ConvNet을 이용함.
I3D는 Two-Stream과 3D Conv를 합하여 사용한 모델
이 모델이 요즘 Default가 됨
I3D의 구조는 Inception 모듈을 사용함
I3D에서 3x3x3 이 2개가 나오는데 이거는 실수라고 생각 됨. 근데 실제 코드도 3x3x3으로 되어 있다고 함.
Inception은 컨셉상 다른 크기를 한번에 보는건데 같은게 2개 들어 있다는게 실수로 보임
I3D의 구조
I3D에서도 Optical Flow를 쓰는게 일단 도움이 되었다고 함
하지만 이 논문 후에는 Optical Flow는 안 나옴
I3D와 같은데 시간, 공간을 쪼갠 것
시간 간격을 듬성듬성 뽑은 것(Low Frame Rate, Slow pathway)과 촘촘히 뽑은것(High Frame Rate, Fast pathway)을 따로 뽑고 그것을 합쳐서 하자는게 SlowFast Net
Slow path는 공간적인 정보를 주로 보고, Fast path는 시간적인 정보를 주로 본다.
Slow, Fast path의 차이
위 구조로 그냥 학습 시켰더니 좀 잘 안되서, Fast의 중간 결과를 Slow에서 받거나 Slow의 중간 결과를 Fast에서 받아서 처리하는 식으로도 해봤는데, 결과적으로는 Fast에서 Slow로 가는 것만해도 성능은 잘 나왔다고 함.
기존 모델들에 대해 파라미터를 바꿔가며 학습해 볼 수 있게 한 모델.
그냥 실험해 본 논문
X3D에서 설정할 수 있는 파라미터들
파라미터 바꿔가며 위와 같이 성능을 했다.
현재 상태