code: def face_locations(img, number_of_times_to_upsample=1, model="hog"):
      
      if model == "cnn":
          return [_trim_css_to_bounds(_rect_to_css(face.rect), img.shape) for face in _raw_face_locations(img, number_of_times_to_upsample, "cnn")]
      else:
          return [_trim_css_to_bounds(_rect_to_css(face), img.shape) for face in _raw_face_locations(img, number_of_times_to_upsample, model)]
docs: Returns an array of bounding boxes of human faces in a image
  
      :param img: An image (as a numpy array)
      :param number_of_times_to_upsample: How many times to upsample the image looking for faces. Higher numbers find smaller faces.
      :param model: Which face detection model to use. "hog" is less accurate but faster on CPUs. "cnn" is a more accurate
                    deep-learning model which is GPU/CUDA accelerated (if available). The default is "hog".
      :return: A list of tuples of found face locations in css (top, right, bottom, left) order