c3d
c3d copied to clipboard
C3D for Keras (only Tensorflow backend at the moment) with easy preprocessing and automatic downloading of TF format sports1M weights
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.