diff --git a/src/hope_dedup_engine/apps/faces/services/image_processor.py b/src/hope_dedup_engine/apps/faces/services/image_processor.py index 7e3a0bad..fa744276 100644 --- a/src/hope_dedup_engine/apps/faces/services/image_processor.py +++ b/src/hope_dedup_engine/apps/faces/services/image_processor.py @@ -97,19 +97,18 @@ def _get_face_detections_dnn( # Decode image from binary buffer to 3D numpy array (height, width, channels of BlueGreeRed color space) image = cv2.imdecode(img_array, cv2.IMREAD_COLOR) (h, w) = image.shape[:2] + _h, _w = ( + self.blob_from_image_cfg.shape["height"], + self.blob_from_image_cfg.shape["width"], + ) + if h < _h or w < _w: + raise ValueError( + f"Image {filename} too small: '{h}x{w}'. It needs to be at least '{_h}x{_w}'." + ) # Create a blob (4D tensor) from the image blob = cv2.dnn.blobFromImage( - image=cv2.resize( - image, - dsize=( - self.blob_from_image_cfg.shape["height"], - self.blob_from_image_cfg.shape["width"], - ), - ), - size=( - self.blob_from_image_cfg.shape["height"], - self.blob_from_image_cfg.shape["width"], - ), + image=cv2.resize(image, dsize=(_h, _w)), + size=(_h, _w), scalefactor=self.blob_from_image_cfg.scale_factor, mean=self.blob_from_image_cfg.mean_values, ) diff --git a/src/hope_dedup_engine/config/fragments/constance.py b/src/hope_dedup_engine/config/fragments/constance.py index 32fe0b38..0abde749 100644 --- a/src/hope_dedup_engine/config/fragments/constance.py +++ b/src/hope_dedup_engine/config/fragments/constance.py @@ -67,7 +67,7 @@ int, ), "FACE_ENCODINGS_MODEL": ( - "small", + "large", """ Specifies the model type used for encoding face landmarks. It can be either 'small' which is faster and detects only 5 key facial landmarks, or 'large' which is more precise and identifies 68 key facial landmarks diff --git a/tests/extras/demoapp/demo_images/818x1232.jpg b/tests/extras/demoapp/demo_images/818x1232.jpg new file mode 100644 index 00000000..43bcfd76 Binary files /dev/null and b/tests/extras/demoapp/demo_images/818x1232.jpg differ diff --git a/tests/extras/demoapp/demo_images/Aaron_Eckhart_0001.jpg b/tests/extras/demoapp/demo_images/Aaron_Eckhart_0001.jpg index 4d2fb8db..3da86181 100644 Binary files a/tests/extras/demoapp/demo_images/Aaron_Eckhart_0001.jpg and b/tests/extras/demoapp/demo_images/Aaron_Eckhart_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/Aaron_Guiel_0001.jpg b/tests/extras/demoapp/demo_images/Aaron_Guiel_0001.jpg index c2fb5d0f..bac4a9f8 100644 Binary files a/tests/extras/demoapp/demo_images/Aaron_Guiel_0001.jpg and b/tests/extras/demoapp/demo_images/Aaron_Guiel_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/Aaron_Peirsol_0001.jpg b/tests/extras/demoapp/demo_images/Aaron_Peirsol_0001.jpg index b1cc3287..df2b0923 100644 Binary files a/tests/extras/demoapp/demo_images/Aaron_Peirsol_0001.jpg and b/tests/extras/demoapp/demo_images/Aaron_Peirsol_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/Aaron_Peirsol_0002.jpg b/tests/extras/demoapp/demo_images/Aaron_Peirsol_0002.jpg index cf561ab4..d934ad0e 100644 Binary files a/tests/extras/demoapp/demo_images/Aaron_Peirsol_0002.jpg and b/tests/extras/demoapp/demo_images/Aaron_Peirsol_0002.jpg differ diff --git a/tests/extras/demoapp/demo_images/Cathy_Freeman_0001.jpg b/tests/extras/demoapp/demo_images/Cathy_Freeman_0001.jpg index f2d6b5d8..c3921aea 100644 Binary files a/tests/extras/demoapp/demo_images/Cathy_Freeman_0001.jpg and b/tests/extras/demoapp/demo_images/Cathy_Freeman_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/Cathy_Freeman_0002.jpg b/tests/extras/demoapp/demo_images/Cathy_Freeman_0002.jpg index e4f8f62c..233d3f1c 100644 Binary files a/tests/extras/demoapp/demo_images/Cathy_Freeman_0002.jpg and b/tests/extras/demoapp/demo_images/Cathy_Freeman_0002.jpg differ diff --git a/tests/extras/demoapp/demo_images/Ziwang_Xu_0001.jpg b/tests/extras/demoapp/demo_images/Ziwang_Xu_0001.jpg index 2665ebc0..b8495b82 100644 Binary files a/tests/extras/demoapp/demo_images/Ziwang_Xu_0001.jpg and b/tests/extras/demoapp/demo_images/Ziwang_Xu_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/Zoe_Ball_0001.jpg b/tests/extras/demoapp/demo_images/Zoe_Ball_0001.jpg index f26223d2..c41d655f 100644 Binary files a/tests/extras/demoapp/demo_images/Zoe_Ball_0001.jpg and b/tests/extras/demoapp/demo_images/Zoe_Ball_0001.jpg differ diff --git a/tests/extras/demoapp/demo_images/too_small.jpg b/tests/extras/demoapp/demo_images/too_small.jpg new file mode 100644 index 00000000..60fca585 Binary files /dev/null and b/tests/extras/demoapp/demo_images/too_small.jpg differ diff --git a/tests/extras/demoapp/demo_images/without_face.jpg b/tests/extras/demoapp/demo_images/without_face.jpg index e3b70996..d870b9ba 100644 Binary files a/tests/extras/demoapp/demo_images/without_face.jpg and b/tests/extras/demoapp/demo_images/without_face.jpg differ