From 4ac17f111758252cf83346207bd088ecf368e6d4 Mon Sep 17 00:00:00 2001 From: appleb_m Date: Tue, 28 Apr 2026 14:13:06 +0200 Subject: [PATCH] facedetection - catch warning if doesnt tend towards a fit --- src/aare/common/face_detection.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/aare/common/face_detection.py b/src/aare/common/face_detection.py index 363977bf..a3543ced 100644 --- a/src/aare/common/face_detection.py +++ b/src/aare/common/face_detection.py @@ -2,7 +2,8 @@ import json import time from typing import Tuple, Dict, List, Optional import numpy as np -from scipy.optimize import curve_fit +from scipy.optimize import curve_fit, OptimizeWarning +import warnings import statistics import math from aare.common.logger_config import setup_logger @@ -86,7 +87,11 @@ def fit_cosine(samples: List[Tuple[float, float]]) -> dict: bounds = ([-np.inf, 0.0, -math.pi, -np.inf], [np.inf, B_max, math.pi, np.inf]) try: - popt, _ = curve_fit(cos_model, degs, ys, p0=[A0, B0, phi0, C0], bounds=bounds, maxfev=10000) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always", OptimizeWarning) + popt, _ = curve_fit(cos_model, degs, ys, p0=[A0, B0, phi0, C0], bounds=bounds, maxfev=10000) + if w: + logger.debug(f"curve_fit OptimizeWarning: {w[-1].message}") logger.info(f"fit cosine: {popt}") A, B, phi, C = map(float, popt) B = max(0.0, B)