2 스트림 액션-인식
UCF101 데이터 세트에서 비디오 정보를 모델링하기 위해 RESNET101과 함께 공간 및 모션 스트림 CNN을 사용합니다.
참조 용지
- [1] 비디오에서 액션 인식을위한 2 스트림 컨볼 루션 네트워크
- [2] 시간 세그먼트 네트워크 : 심층 행동 인식을위한 모범 사례를 향해
- [3] TS-LSTM 및 시간적 인식 : 활동 인식을위한 시공간 역학 악용
1. 데이터
1.1 공간 입력 데이터 -> RGB 프레임
- UCF101 데이터 세트에서 각 비디오에서 샘플링 속도 : 10과 약 5.9g의 디스크에서 .jpg 이미지를 저장하는 RGB 프레임을 추출합니다.
1.2 모션 입력 데이터 -> 스택 광학 흐름 이미지
모션 스트림에서는 광학 흐름 데이터를 얻기 위해 두 가지 방법을 사용합니다.
- 전처리 된 TVL1 광학 흐름 데이터 세트를 https://github.com/feichtenhofer/twostreamfusion에서 직접 다운로드하십시오.
- Flownet2.0 방법을 사용하여 2 채널 광학 흐름 이미지를 생성하고 x, y 채널을 각각 디스크에서 .jpg 이미지로 저장하여 약 56g입니다.
1.3 (대안) Feichtenhofer/TwostreamFusion에서 직접 전처리 데이터를 다운로드)
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.003
cat ucf101_jpegs_256.zip* > ucf101_jpegs_256.zip
unzip ucf101_jpegs_256.zip
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.003
cat ucf101_tvl1_flow.zip* > ucf101_tvl1_flow.zip
unzip ucf101_tvl1_flow.zip
2. 모델
2.1 공간 CNN
- 이전에 언급 한 바와 같이, 우리는 resnet101을 먼저 imagenet으로 미리 훈련 한 다음 UCF101 공간 RGB 이미지 데이터 세트에서 미세 조정을 사용합니다.
2.2 모션 CNN
- 모션 CNN의 입력 데이터는 10 개의 X 채널 및 10 y 채널 이미지를 포함하는 광학 흐름 이미지의 스택이므로 입력 모양은 (20, 224, 224)이므로 20 채널 이미지로 간주 될 수 있습니다.
- 모델에서 ImageNet 미리 훈련 된 무게를 사용하려면 (64, 3, 7, 7)에서 (64, 20, 7, 7)에서 imagenet로 미리 훈련 된 첫 번째 컨볼 루션 층의 가중치를 수정해야합니다.
- [2] Wang에서 ** Cross Modality Pre-라는 방법을 제공합니다.
** 그러한 무게 모양 변환을 수행합니다. 그는 먼저 RGB 채널의 중량 값을 평균화하고 모션 스트림 입력의 채널 수에 의해이 평균을 복제합니다 (이 경우 20입니다).
3. 훈련 전략
3.1 공간 CNN
- 여기서 우리는 시간적 세그먼트 네트워크의 기술을 사용합니다. 미니 배치의 모든 비디오에 대해 각 비디오에서 3 개의 프레임을 무작위로 선택합니다. 그런 다음 프레임 사이의 합의는 손실 계산을위한 비디오 수준 예측으로 도출됩니다.
3.2 모션 CNN
- 모든 미니 배치에서, 우리는 9537 훈련 비디오에서 64 개 (배치 크기) 비디오를 무작위로 선택하고 각 비디오에서 무작위로 1 개의 스택 광학 흐름을 선택합니다.
3.3 데이터 확대
- 두 스트림 모두 임의의 자르기와 같은 동일한 데이터 확대 기술을 적용합니다.
4. 테스트 방법
- 3783 개의 테스트 비디오마다 각 비디오에서 19 프레임을 균일하게 샘플링하며 비디오 수준 예측은 19 개의 프레임 레벨 예측의 투표 결과입니다.
- 우리가 숫자 19를 선택한 이유는 UCF101의 최소 비디오 프레임 수가 28이기 때문에 10 스택 모션 스트림에서 테스트하기에 충분한 프레임이 있는지 확인해야합니다.
5. 공연
| 회로망 | 상위 1 |
|---|
| 공간 CNN | 82.1% |
| 모션 CNN | 79.4% |
| 평균 융합 | 88.5% |
6. 미리 훈련 된 모델
- 공간 RESNET101
- 모션 resnet101
7. 장치에서 테스트
공간 스트림
- 이 경로 와이 기능을 장치의 UCF101 데이터 세트에 맞게 수정하십시오.
- 훈련 및 테스트
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
모션 스트림
- 이 경로 와이 기능을 장치의 UCF101 데이터 세트에 맞게 수정하십시오.
- 훈련 및 테스트
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate