I would consider training a cascade classifier in OpenCV, either with a HAAR or LBP based model. In this tutorial you can find out about how to use a ready-made classifier which was trained already. Classifiers like these are saved as .xml files and can be found in the data folder of the opencv source code. I found a few for frontal face detection but also one for profile face detection.
You could also combine these classifiers, so one detects frontal faces and the other one profile faces. By doing this, you can get the largest coverage and find the most faces.
Training your own classifier takes much longer and more effort but can give you better results for your specific case. This link might help you to get an idea of how to go about that.
I'm sure you can find a lot of face images databases online that have enough images to suit your needs.
License plate detection should be even easier since they can't be viewed from too many different angles. OpenCV also has a classifier for this.