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.
- Python 2 or 3
- Keras 2.0+ (TensorFlow backend)
- skvideo
- ffmpeg
- scipy
- numpy
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)]
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)
Thanks to albertomontesg for C3D Sports1M theano weights and Keras code. Thanks to titu1994 for Theano to Tensorflow weight conversion code.