luoyetx / deep-landmark

Predict facial landmarks with Deep CNNs powered by Caffe.
BSD 3-Clause "New" or "Revised" License
282 stars 156 forks source link

hello why twice use np.random.rand() > 0.5 in level1 generate_hdf5 .thanks #21

Open mttsky opened 8 years ago

mttsky commented 8 years ago
        ### rotation
        if np.random.rand() > 0.5:
            face_rotated_by_alpha, landmark_rotated = rotate(img, f_bbox, \
                bbox.reprojectLandmark(landmarkGt), 5)
            landmark_rotated = bbox.projectLandmark(landmark_rotated)
            face_rotated_by_alpha = cv2.resize(face_rotated_by_alpha, (39, 39))
            F_imgs.append(face_rotated_by_alpha.reshape((1, 39, 39)))
            F_landmarks.append(landmark_rotated.reshape(10))
            ### flip with rotation
            face_flipped, landmark_flipped = flip(face_rotated_by_alpha, landmark_rotated)
            face_flipped = cv2.resize(face_flipped, (39, 39))
            F_imgs.append(face_flipped.reshape((1, 39, 39)))
            F_landmarks.append(landmark_flipped.reshape(10))
        ### rotation
        if np.random.rand() > 0.5:
            face_rotated_by_alpha, landmark_rotated = rotate(img, f_bbox, \
                bbox.reprojectLandmark(landmarkGt), -5)
            landmark_rotated = bbox.projectLandmark(landmark_rotated)
            face_rotated_by_alpha = cv2.resize(face_rotated_by_alpha, (39, 39))
            F_imgs.append(face_rotated_by_alpha.reshape((1, 39, 39)))
            F_landmarks.append(landmark_rotated.reshape(10))
            ### flip with rotation
            face_flipped, landmark_flipped = flip(face_rotated_by_alpha, landmark_rotated)
            face_flipped = cv2.resize(face_flipped, (39, 39))
            F_imgs.append(face_flipped.reshape((1, 39, 39)))
            F_landmarks.append(landmark_flipped.reshape(10))
luoyetx commented 8 years ago

clockwise rotation and anticlockwise rotation, 0.5 is the possibility to do the rotation.

mttsky commented 8 years ago

ok ,thanks, why level2/level3 don't use rotation and flip?

luoyetx commented 8 years ago

level-2 and level-3 use random shift around the ground truth. rotation and flip can also be applied.

mttsky commented 8 years ago

thanks,because random shift ,train data result is different. the test effect has often wrong. of course sometime is goog.