Are there tools to help clean a large dataset so that it only contains faces? I have a fairly large dataset consisting of different images with and without persons that I want to use for a project.

The problem is that I only want the pictures that contain faces, and it is best if there is only a crop of the face.

I already looked at Facenet and Openface, but I thought that there must be a simpler already trained solution just to sort the dataset so I can get started with my own project.
I don't know of a tool but you could write a simple script to detect faces and crop it. It's quite simple with the Haar cascade in openCV to detect faces and use inbuilt functions to crop your image based on the size of the detected face.

Hope that helps !