diff --git a/bob/pad/face/utils/face_detection_utils.py b/bob/pad/face/utils/face_detection_utils.py
index 66b16de7dbdf996f5b26a6addb3da08667894f44..aaa26da0a49e98143eb6dbda5693b80239c972da 100644
--- a/bob/pad/face/utils/face_detection_utils.py
+++ b/bob/pad/face/utils/face_detection_utils.py
@@ -8,6 +8,7 @@ This file contains face detection utils.
 # Import here:
 
 import importlib
+import numpy as np
 
 
 #==============================================================================
@@ -96,8 +97,139 @@ def detect_faces_in_video(frame_container, method = "dlib"):
             annotations[str(idx)] = frame_annotations
 
     return annotations
+    
 
+def getEyePos(lm):
 
+    """
+    This function returns the locations of left and right eyes 
+
+    **Parameters:**
+
+    ``lm`` : :py:class:`array`
+        A numpy array containing the coordinates of facial landmarks, (68X2)
+
+
+    **Returns:**
+
+    ``right_eye`` 
+        A tuple containing the location of right eye, 
+
+    ``left_eye`` 
+        A tuple containing the location of left eye
+
+    """
+
+    # Mean position of eye corners as eye centers , casted to int()
+
+    left_eye_t=(lm[36,:]+lm[39,:])/2.0
+    right_eye_t=(lm[42,:]+lm[45,:])/2.0
+
+    right_eye=(int(left_eye_t[1]),int(left_eye_t[0]))  
+    left_eye=(int(right_eye_t[1]),int(right_eye_t[0]))
+    
+    return right_eye,left_eye
+
+
+
+def detect_face_landmarks_in_image(image, method = "dlib"):
+    """
+    This function detects a face and facial landmarks in the input image.
+
+    **Parameters:**
+
+    ``image`` : 3D :py:class:`numpy.ndarray`
+        A color image to detect the face in.
+
+    ``method`` : :py:class:`str`
+        A package to be used for face detection. Options supported by this
+        package: "dlib" (dlib is a dependency of this package). 
+
+    **Returns:**
+
+    ``annotations`` : :py:class:`dict`
+        A dictionary containing the annotations for an image.
+        Dictionary must be as follows ``{'topleft': (row, col), 'bottomright': (row, col), 'left_eye': (row, col), 'right_eye': (row, col), 'landmarks': [(row1,col1), (row2,col2), ...]}``
+        Where (rowK,colK) is the location of Kth facial landmark (K=0,...,67).
+        If no annotations found an empty dictionary is returned. 
+    """
+
+    try:
+        face_landmark_detection_module = importlib.import_module("bob.ip.facelandmarks");
+    except ImportError:
+        raise ImportError("No module named bob.ip.facelandmarks")
+
+    if not hasattr(face_landmark_detection_module, 'detect_landmarks'):
+        raise AttributeError("bob.ip.facelandmarks module has no attribute detect_landmarks")
+
+    key_points = face_landmark_detection_module.detect_landmarks(image, 1);
+
+    annotations = {}
+
+    try:
+        kp = key_points[0]
+    except:
+        kp = None
+
+    if kp is not None:
+
+        lm=np.vstack((kp.landmarks[:,1],kp.landmarks[:,0])).T
+
+        right_eye,left_eye=getEyePos(lm)
+
+        points=[]
+
+        for i in range(lm.shape[0]):
+            points.append((int(lm[i,0]),int(lm[i,1])))
+
+        annotations['topleft']=kp.bounding_box.topleft
+        annotations['bottomright']=kp.bounding_box.bottomright
+        annotations['landmarks']=points # list of landmarks
+        annotations['left_eye'] = left_eye
+        annotations['right_eye'] = right_eye
+
+
+    return annotations
+
+
+
+def detect_face_landmarks_in_video(frame_container, method = "dlib"):
+    """
+    This function detects a face and face landmarks  in each farme of the input video.
+
+    **Parameters:**
+
+    ``frame_container`` : FrameContainer
+        FrameContainer containing the frames data.
+
+    ``method`` : :py:class:`str`
+        A package to be used for face detection. Options supported by this
+        package: "dlib" (dlib is a dependency of this package). 
+
+    **Returns:**
+
+    ``annotations`` : :py:class:`dict`
+        A dictionary containing the annotations for each frame in the video.
+        Dictionary structure: ``annotations = {'1': frame1_dict, '2': frame1_dict, ...}``.
+        Where ``frameN_dict = {'topleft': (row, col), 'bottomright': (row, col), 'left_eye': (row, col), 'right_eye': (row, col), 'landmarks': [(row1,col1), (row2,col2), ...]}``
+        is the dictionary defining the coordinates of the face bounding box in frame N.
+        Where (rowK,colK) is the location of Kth facial landmark (K=0,...,67).
+        If no annotations found an empty dictionary is returned.
+    """
+
+    annotations = {}
+
+    for idx, frame in enumerate(frame_container):
+
+        image = frame[1]
+
+        frame_annotations = detect_face_landmarks_in_image(image, method);
+
+        if frame_annotations:
+
+            annotations[str(idx)] = frame_annotations
+
+    return annotations