dlib shape_predictor возвращает ориентиры со значениями, выходящими за пределы диапазона входного изображения

#dlib

Вопрос:

Я использую dlib shape_predictor для определения ориентиров на лице с помощью меток shape_predictor_68_face_land.

мое входное изображение имеет размер 32*32 пикселя 255 в сером масштабе.

я использую dlib.get_frontal_face_detector со шкалой x3 для удовлетворения минимальных требований к размеру лица для детектора фронтального лица dlib, а затем передаю изображение с прямоугольником, ограничивающим лицо, в dlib.shape_predictor

проблема в том, что иногда я получаю отрицательные значения или значения, превышающие 31, в качестве индексов лицевых отметок.

 detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
rect = detector(image,3 )    #the 2nd argument indicates resizing argument
if rect:
    bb = rect_to_bb(rect)
else:
    bb = None
if bb != None
    rect1 = dlib.rectangle(int(rect[0]), int(rect[1]), int(rect[2]), int(rect[3]))
    land_marks=DLIB_Facial_LandMarks.findLandMarks(q1, rect1)
 

Как избежать этой проблемы и почему это происходит ?