Skip to content

Latest commit

 

History

History
61 lines (45 loc) · 1.74 KB

README.md

File metadata and controls

61 lines (45 loc) · 1.74 KB

Easy C3D for Keras

C3D for Keras 2.0 (only Tensorflow backend at the moment) with easy preprocessing and automatic downloading of TF format sports1M weights

DISLAIMER: These converted weights have not been fully tested and may differ somewhat from the original Caffe weights released by the C3D authors. Use at your own risk.

Requirements

  • Python 2 or 3
  • Keras 2.0+ (TensorFlow backend)
  • skvideo
    • ffmpeg
  • scipy
  • numpy

Examples

Classify videos

import skvideo.io
from c3d import C3D
from sports1M_utils import preprocess_input, decode_predictions

model = C3D(weights='sports1M')

vid_path = 'homerun.mp4'
vid = skvideo.io.vread(vid_path)
# Select 16 frames from video
vid = vid[40:56]
x = preprocess_input(vid)

preds = model.predict(x)
print('Predicted:', decode_predictions(preds))
#Predicted: [('baseball', 0.91488838)]

Extract features from videos

import skvideo.io
from c3d import C3D
from keras.models import Model
from sports1M_utils import preprocess_input, decode_predictions

base_model = C3D(weights='sports1M')
model = Model(inputs=base_model.input, outputs=base_model.get_layer('fc6').output)

vid_path = 'homerun.mp4'
vid = skvideo.io.vread(vid_path)
# Select 16 frames from video
vid = vid[40:56]
x = preprocess_input(vid)

features = model.predict(x)

References

Acknowledgements

Thanks to albertomontesg for C3D Sports1M theano weights and Keras code. Thanks to titu1994 for Theano to Tensorflow weight conversion code.