Which face detection method suitable for detecting faces of people at a long distance?
One of the ways is to do instance segmentation in order to get all the classes in the environment including distant objects. 
Once you get all the classes, you can draw a bounding box around the required far off face class, upsample it and send it to your face detection NN. suppose your image is of 54x54x3, it will be upsampled to 224x224x3 and sent to your trained NN.
I have checked five different methods for face detection.
     1. Haar cascade 
     2. Dlib HOG 
     3. Python face_recognition module 
     4. DLib_CNN 
     5. OpenCV CNN 
All these methods have some advantages and disadvantages and i found out that openCV_CNN works better out of these five algorithm. But for my application i need to detect faces from people on far distance and for this purpose even OpenCV_CNN is not working well (it detects faces of people closer to camera and not the people on far distance). Is there any other algorithm which detects faces of people on far distance?