There are already pre-trained networks out there. TensorFlow comes with an example command line tool that you can pass any image and it will tell you what is in the image.
The classes that it can detect are from ImageNet, so that might be limiting.
The classes that it can detect are from ImageNet, so that might be limiting.
Maybe someone should create a website that lets volunteers label images for this purpose.
* http://i.imgur.com/Wex6pSR.png
Which I say is pretty much what you'd need to train a net to detect people smiling (amongst other things). Of course, there are some refinements you can make to improve accuracy and presentation of the results. My point was: you should begin with datasets that are readily available, and then improve on need (and if resources are available to justify the investment).