Python dlib.rectangle() Examples
The following are 30
code examples of dlib.rectangle().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
dlib
, or try the search function
.
Example #1
Source File: align_dlib.py From 1.FaceRecognition with MIT License | 7 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #2
Source File: frames.py From GazeML with MIT License | 6 votes |
def detect_landmarks(self, frame): """Detect 5-point facial landmarks for faces in frame.""" predictor = get_landmarks_predictor() landmarks = [] for face in frame['faces']: l, t, w, h = face rectangle = dlib.rectangle(left=int(l), top=int(t), right=int(l+w), bottom=int(t+h)) landmarks_dlib = predictor(frame['grey'], rectangle) def tuple_from_dlib_shape(index): p = landmarks_dlib.part(index) return (p.x, p.y) num_landmarks = landmarks_dlib.num_parts landmarks.append(np.array([tuple_from_dlib_shape(i) for i in range(num_landmarks)])) frame['landmarks'] = landmarks
Example #3
Source File: align_dlib.py From 1.FaceRecognition with MIT License | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #4
Source File: predict.py From facial-expression-recognition-using-cnn with GNU General Public License v3.0 | 6 votes |
def predict(image, model, shape_predictor=None): # get landmarks if NETWORK.use_landmarks or NETWORK.use_hog_and_landmarks or NETWORK.use_hog_sliding_window_and_landmarks: face_rects = [dlib.rectangle(left=0, top=0, right=NETWORK.input_size, bottom=NETWORK.input_size)] face_landmarks = np.array([get_landmarks(image, face_rects, shape_predictor)]) features = face_landmarks if NETWORK.use_hog_sliding_window_and_landmarks: hog_features = sliding_hog_windows(image) hog_features = np.asarray(hog_features) face_landmarks = face_landmarks.flatten() features = np.concatenate((face_landmarks, hog_features)) else: hog_features, _ = hog(image, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True) hog_features = np.asarray(hog_features) face_landmarks = face_landmarks.flatten() features = np.concatenate((face_landmarks, hog_features)) tensor_image = image.reshape([-1, NETWORK.input_size, NETWORK.input_size, 1]) predicted_label = model.predict([tensor_image, features.reshape((1, -1))]) return get_emotion(predicted_label[0]) else: tensor_image = image.reshape([-1, NETWORK.input_size, NETWORK.input_size, 1]) predicted_label = model.predict(tensor_image) return get_emotion(predicted_label[0]) return None
Example #5
Source File: align_dlib.py From facenet-demo with MIT License | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #6
Source File: align_dlib.py From facenet-demo with MIT License | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #7
Source File: blinkDetect.py From Fatigue-Detection-System-Based-On-Behavioural-Characteristics-Of-Driver with MIT License | 6 votes |
def getLandmarks(im): imSmall = cv2.resize(im, None, fx = 1.0/FACE_DOWNSAMPLE_RATIO, fy = 1.0/FACE_DOWNSAMPLE_RATIO, interpolation = cv2.INTER_LINEAR) rects = detector(imSmall, 0) if len(rects) == 0: return 0 newRect = dlib.rectangle(int(rects[0].left() * FACE_DOWNSAMPLE_RATIO), int(rects[0].top() * FACE_DOWNSAMPLE_RATIO), int(rects[0].right() * FACE_DOWNSAMPLE_RATIO), int(rects[0].bottom() * FACE_DOWNSAMPLE_RATIO)) points = [] [points.append((p.x, p.y)) for p in predictor(im, newRect).parts()] return points
Example #8
Source File: dlib_featurizer.py From ColumbiaImageSearch with Apache License 2.0 | 6 votes |
def featurize(self, img, bbox): """ Compute face feature of the face bounding box in `bbox` in the image `img`. :param img: image :type img: :class:`numpy.ndarray` :param bbox: bounding box dictionary :type bbox: dict :return: face feature :rtype: :class:`numpy.ndarray` """ # Deal with B&W images if len(img.shape)==2: import skimage img = skimage.color.gray2rgb(img) # Build dlib rectangle from bounding box from dlib import rectangle dlib_bbox = rectangle(bbox['left'], bbox['top'], bbox['right'], bbox['bottom']) shape = self.sp(img, dlib_bbox) # Return feature return np.squeeze(self.facerec.compute_face_descriptor(img, shape))
Example #9
Source File: head_pose_estimation.py From deepgaze with MIT License | 6 votes |
def _return_landmarks(self, inputImg, roiX, roiY, roiW, roiH, points_to_return=range(0,68)): """ Return the the roll pitch and yaw angles associated with the input image. @param image It is a colour image. It must be >= 64 pixel. @param radians When True it returns the angle in radians, otherwise in degrees. """ #Creating a dlib rectangle and finding the landmarks dlib_rectangle = dlib.rectangle(left=int(roiX), top=int(roiY), right=int(roiW), bottom=int(roiH)) dlib_landmarks = self._shape_predictor(inputImg, dlib_rectangle) #It selects only the landmarks that #have been indicated in the input parameter "points_to_return". #It can be used in solvePnP() to estimate the 3D pose. landmarks = np.zeros((len(points_to_return),2), dtype=np.float32) counter = 0 for point in points_to_return: landmarks[counter] = [dlib_landmarks.parts()[point].x, dlib_landmarks.parts()[point].y] counter += 1 return landmarks
Example #10
Source File: face_landmark_detection.py From deepgaze with MIT License | 6 votes |
def returnLandmarks(self, inputImg, roiX, roiY, roiW, roiH, points_to_return=range(0,68)): #Creating a dlib rectangle and finding the landmarks dlib_rectangle = dlib.rectangle(left=int(roiX), top=int(roiY), right=int(roiW), bottom=int(roiH)) dlib_landmarks = self._predictor(inputImg, dlib_rectangle) #It selects only the landmarks that # have been indicated in the input parameter "points_to_return". #It can be used in solvePnP() to estimate the 3D pose. self._landmarks = numpy.zeros((len(points_to_return),2), dtype=numpy.float32) counter = 0 for point in points_to_return: self._landmarks[counter] = [dlib_landmarks.parts()[point].x, dlib_landmarks.parts()[point].y] counter += 1 #Estimation of the eye dimesnion #self._right_eye_w = self._landmark_matrix[RIGHT_TEAR].item((0,0)) - self._landmark_matrix[RIGHT_EYE].item((0,0)) #self._left_eye_w = self._landmark_matrix[LEFT_EYE].item((0,0)) - self._landmark_matrix[LEFT_TEAR].item((0,0)) return self._landmarks
Example #11
Source File: align_dlib.py From Face_Recognition_Client with Apache License 2.0 | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #12
Source File: align_dlib.py From tindetheus with MIT License | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #13
Source File: align_dlib.py From tindetheus with MIT License | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #14
Source File: align_face.py From mxnet-face with Apache License 2.0 | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) return list(map(lambda p: (p.x, p.y), points.parts()))
Example #15
Source File: align_face.py From mxnet-face with Apache License 2.0 | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if len(faces) > 0: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #16
Source File: align_dlib.py From MaskInsightface with Apache License 2.0 | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #17
Source File: align_dlib.py From MaskInsightface with Apache License 2.0 | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #18
Source File: align_dlib.py From facenet with MIT License | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #19
Source File: align_dlib.py From Python-Tensorflow-Face-v2.0 with Apache License 2.0 | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #20
Source File: align_dlib.py From facenet with MIT License | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #21
Source File: align_dlib.py From insightface with MIT License | 6 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) #return list(map(lambda p: (p.x, p.y), points.parts())) return [(p.x, p.y) for p in points.parts()] #pylint: disable=dangerous-default-value
Example #22
Source File: align_dlib.py From insightface with MIT License | 6 votes |
def getLargestFaceBoundingBox(self, rgbImg, skipMulti=False): """ Find the largest face bounding box in an image. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param skipMulti: Skip image if more than one face detected. :type skipMulti: bool :return: The largest face bounding box in an image, or None. :rtype: dlib.rectangle """ assert rgbImg is not None faces = self.getAllFaceBoundingBoxes(rgbImg) if (not skipMulti and len(faces) > 0) or len(faces) == 1: return max(faces, key=lambda rect: rect.width() * rect.height()) else: return None
Example #23
Source File: detect.py From pychubby with MIT License | 5 votes |
def __init__(self, points, img, rectangle=None): """Construct.""" # Checks if points.shape != (68, 2): raise ValueError("There needs to be 68 2D landmarks.") if np.unique(points, axis=0).shape != (68, 2): raise ValueError("There are some duplicates.") self.points = points self.img = img self.rectangle = rectangle self.img_shape = self.img.shape[ :2 ] # only first two dims matter - height and width
Example #24
Source File: align_dlib.py From Face_Recognition_Client with Apache License 2.0 | 5 votes |
def findLandmarks(self, rgbImg, bb): """ Find the landmarks of a face. :param rgbImg: RGB image to process. Shape: (height, width, 3) :type rgbImg: numpy.ndarray :param bb: Bounding box around the face to find landmarks for. :type bb: dlib.rectangle :return: Detected landmark locations. :rtype: list of (x,y) tuples """ assert rgbImg is not None assert bb is not None points = self.predictor(rgbImg, bb) return list(map(lambda p: (p.x, p.y), points.parts()))
Example #25
Source File: test_detect.py From pychubby with MIT License | 5 votes |
def dlib_rectangle(self): return Mock(spec=dlib.rectangle)
Example #26
Source File: face_recognition_api.py From Face-Recognition with MIT License | 5 votes |
def _tuple_to_rect(rect): """ Convert a tuple in (top, right, bottom, left) order to a dlib `rect` object :param rect: plain tuple representation of the rect in (top, right, bottom, left) order :return: a dlib `rect` object """ return dlib.rectangle(rect[3], rect[0], rect[1], rect[2])
Example #27
Source File: main.py From FaceSwap with MIT License | 5 votes |
def get_facial_landmarks_from_mask(img, pts): rect = cv2.boundingRect(pts) rect = dlib.rectangle(rect[0], rect[1], rect[0] + rect[2], rect[1] + rect[3]) return np.matrix([list(pt) for pt in pts]), rect
Example #28
Source File: main.py From FaceSwap with MIT License | 5 votes |
def toRoi(rect): return dlib.rectangle(0, 0, rect.right() - rect.left(), rect.bottom() - rect.top())
Example #29
Source File: face_detection_dlib_cnn.py From Mastering-OpenCV-4-with-Python with MIT License | 5 votes |
def show_detection(image, faces): """Draws a rectangle over each detected face""" # faces contains a list of mmod_rectangle objects # The mmod_rectangle object has two member variables, a dlib.rectangle object, and a confidence score # Therefore, we iterate over the detected mmod_rectangle objects accessing dlib.rect to draw the rectangle for face in faces: cv2.rectangle(image, (face.rect.left(), face.rect.top()), (face.rect.right(), face.rect.bottom()), (255, 0, 0), 10) return image # Load CNN detector from dlib:
Example #30
Source File: utils.py From FaceSwap with MIT License | 5 votes |
def getFaceKeypoints(img, detector, predictor, maxImgSizeForDetection=640): imgScale = 1 scaledImg = img if max(img.shape) > maxImgSizeForDetection: imgScale = maxImgSizeForDetection / float(max(img.shape)) scaledImg = cv2.resize(img, (int(img.shape[1] * imgScale), int(img.shape[0] * imgScale))) #detekcja twarzy dets = detector(scaledImg, 1) if len(dets) == 0: return None shapes2D = [] for det in dets: faceRectangle = rectangle(int(det.left() / imgScale), int(det.top() / imgScale), int(det.right() / imgScale), int(det.bottom() / imgScale)) #detekcja punktow charakterystycznych twarzy dlibShape = predictor(img, faceRectangle) shape2D = np.array([[p.x, p.y] for p in dlibShape.parts()]) #transpozycja, zeby ksztalt byl 2 x n a nie n x 2, pozniej ulatwia to obliczenia shape2D = shape2D.T shapes2D.append(shape2D) return shapes2D