There are plenty of methods to make an object detection like Haarcascade, HoG and most advanced are FAST-RCNN.
In this blog I would like to present an Idea to do object detection (moving object detection) we'll be using OpenCV background subtraction method for localizing the moving objects then we'll pass each localized object to a powerful deep learning model.
We can train our model by using transfer learning with inception v-3 model and pass every ROI to machine learning model to classify it.
Only problem is with the model if it will enough fast to work on real time video or another ways if we do it on GPU it might work great.