Computer vision and machine learning for in-play tennis analysis: framework, algorithms and implementation