У меня есть computer-vision
проект, в котором я делаю вывод о прямой трансляции видео с USB-камеры. Несмотря на то, что камера - это камера Full HD от Logitech, но из-за проблем с установкой она установлена немного дальше, чем обычно работает человек. Приложение распознает лица человека и, если оно unrecognized
или отсутствует в базе данных, приложение начинает сохранять изображения лиц, чтобы их можно было использовать для переподготовки модели распознавания лиц.
Ниже показано, как это сделать. полный конвейер работает:
Frame -> Person detection in frame -> Person tracking starts
|-> Face detection from person image -> Face recognition
|-> If unrecognized starts saving face images
Теперь давайте возьмем изображение ниже кадра:
Как вы можете видеть, что изображение довольно ясно, и лицо хорошо видно. Теперь, запустив person detection
на этом и сохранив изображение человека, оно выглядит примерно так:
Теперь, если мы обнаружим лицо выше человека и сохраните изображение лица, оно выглядит следующим образом:
Теперь, как вы видите, размер изображения лица очень мал, и поэтому нам нужно изменить его размер так, чтобы он был правильно виден. Таким образом, после изменения размера он выглядит следующим образом:
Теперь после изменения размера он выглядит немного размытым, из-за чего иногда игнорируется распознаванием лиц или не опознано. Ниже приведен код, который я использую для сохранения и изменения размера изображения:
width = face_endX - face_startX
height = face_endY - face_startY
face_image = person_image[face_startY:face_startY + height, face_startX:face_startX + width]
scale_percent = 150
width = int(face_image.shape[1] * scale_percent / 100)
height = int(face_image.shape[0] * scale_percent / 100)
dim = (width, height)
resized_img = cv2.resize(image, dim, interpolation=cv2.INTER_LANCZOS4)
cv2.imwrite("face_image.jpg", resized_img)
Итак, в приведенном выше коде я сначала получаю ширину и высоту, а затем, используя координаты ограничивающего прямоугольник лица, создаю изображение лица. Затем я устанавливаю scale_percent
на 150, а затем изменяю размер и сохраняю изображение.
Может кто-нибудь помочь мне предложить несколько хороших способов, с помощью которых можно немного изменить размер изображения, а также сохранить качество изображения.