blinddeconv.processing.extensions package
Submodules
Module contents
Пакет расширений для фреймворка слепой деконволюции изображений.
- Модули:
base: Базовые классы и интерфейсы hyperparameter_optimization: Оптимизация гиперпараметров pareto_analysis: Анализ фронта Парето
Автор: Беззаборов А.А.
- class blinddeconv.processing.extensions.HyperparameterOptimizer(processing_instance: Any, output_folder: str = 'parameters')[исходный код]
Базовые классы:
ProcessingExtensionОптимизация гиперпараметров с использованием байесовской оптимизации.
Реализует эффективный поиск гиперпараметров для алгоритмов слепой деконволюции с использованием фреймворка Optuna.
- Поддерживаемые стратегии оптимизации:
TPE (Tree-structured Parzen Estimator)
Случайный поиск
Гауссовские процессы (при наличии BoTorch)
NSGA-II для многокритериальной оптимизации
- __init__(processing_instance: Any, output_folder: str = 'parameters')[исходный код]
Инициализация оптимизатора.
Параметры
- processing_instanceAny
Ссылка на объект Processing с изображениями.
- output_folderstr
Директория для сохранения результатов оптимизации.
- execute(algorithm_processor: DeconvolutionAlgorithm, param_ranges: Dict[str, Tuple[int | float, int | float]], n_trials: int = 50, metric: str = 'PSNR', timeout: int | None = 3600, method: OptimizationMethod = OptimizationMethod.TPE, n_jobs: int = 1, seed: int = 42, show_progress: bool = True, save_results: bool = True) OptimizationResult[исходный код]
Оптимизация гиперпараметров для заданного алгоритма.
Параметры
- algorithm_processorDeconvolutionAlgorithm
Алгоритм деконволюции для оптимизации.
- param_rangesDict[str, Tuple]
Словарь соответствия имен параметров кортежам (min, max).
- n_trialsint, по умолчанию 50
Количество испытаний оптимизации.
- metricstr, по умолчанию „PSNR“
Метрика оптимизации: „PSNR“, „SSIM“ или „SHARPNESS“.
- timeoutOptional[int], по умолчанию 3600
Максимальное время оптимизации в секундах (None без ограничения).
- methodOptimizationMethod, по умолчанию TPE
Метод оптимизации.
- n_jobsint, по умолчанию 1
Количество параллельных задач (-1 для всех ядер).
- seedint, по умолчанию 42
Seed для воспроизводимости.
- show_progressbool, по умолчанию True
Отображать индикатор прогресса.
- save_resultsbool, по умолчанию True
Сохранять лучшие параметры в JSON-файл.
Возвращает
- OptimizationResult
Контейнер с лучшими параметрами и историей оптимизации.
- class blinddeconv.processing.extensions.MetricType(value)[исходный код]
Базовые классы:
EnumМетрики качества для оценки восстановления изображений.
Для всех метрик большее значение соответствует лучшему качеству.
PSNR - пиковое отношение сигнал-шум (дБ) SSIM - индекс структурного сходства SHARPNESS - мера резкости на основе лапласиана
- PSNR = 'psnr'
- SHARPNESS = 'sharpness'
- SSIM = 'ssim'
- classmethod from_string(value: str) MetricType[исходный код]
Создание из строкового представления.
- class blinddeconv.processing.extensions.OptimizationMethod(value)[исходный код]
Базовые классы:
EnumПоддерживаемые методы оптимизации.
- TPEstr
Tree-structured Parzen Estimator (байесовская оптимизация). Рекомендуется для общей настройки гиперпараметров.
- RANDOMstr
Случайный поиск. Эффективен для многомерных пространств и параллельных вычислений.
- GPstr
Гауссовские процессы (требует BoTorch). Оптимален для дорогостоящих вычислений в малоразмерных пространствах.
- NSGA2str
Non-dominated Sorting Genetic Algorithm II. Предназначен для многокритериальной оптимизации.
- GP = 'gp'
- NSGA2 = 'nsga2'
- RANDOM = 'random'
- TPE = 'tpe'
- classmethod from_string(value: str) OptimizationMethod[исходный код]
Создание из строкового представления.
- class blinddeconv.processing.extensions.OptimizationResult(best_params: ~typing.Dict[str, ~typing.Any], best_value: float, n_trials: int, study: ~typing.Any | None = None, history: ~typing.List[~typing.Dict[str, ~typing.Any]] = <factory>, elapsed_time: float = 0.0)[исходный код]
Базовые классы:
objectКонтейнер для результатов оптимизации.
Атрибуты
- best_paramsDict[str, Any]
Лучшие найденные гиперпараметры.
- best_valuefloat
Лучшее достигнутое значение целевой функции.
- n_trialsint
Количество выполненных испытаний.
- studyOptional[Any]
Объект исследования Optuna для дальнейшего анализа.
- historyList[Dict[str, Any]]
История испытаний с параметрами и оценками.
- elapsed_timefloat
Затраченное время в секундах.
- to_dict() Dict[str, Any][исходный код]
Преобразование результатов в словарь.
- class blinddeconv.processing.extensions.ParameterRange(name: str, min_value: int | float, max_value: int | float, log_scale: bool = False, step: float | None = None)[исходный код]
Базовые классы:
objectДиапазон поиска гиперпараметра.
Атрибуты
- namestr
Имя параметра.
- min_valueUnion[int, float]
Минимальное значение диапазона.
- max_valueUnion[int, float]
Максимальное значение диапазона.
- log_scalebool
Использовать логарифмическую шкалу для параметров, охватывающих несколько порядков величины.
- stepOptional[float]
Размер дискретного шага (None для непрерывных параметров).
- validate() bool[исходный код]
Проверка корректности диапазона.
- class blinddeconv.processing.extensions.ParetoFrontAnalyzer(processing_instance: Any, output_folder: str = 'pareto_analysis')[исходный код]
Базовые классы:
ProcessingExtensionМногокритериальный анализ производительности с построением фронта Парето.
Предоставляет комплексный анализ производительности алгоритмов по нескольким конкурирующим критериям (качество vs скорость, устойчивость к шуму vs размытию).
Фронт Парето представляет множество недоминируемых решений, где ни один критерий не может быть улучшен без ухудшения другого.
- Возможности:
3D визуализация поверхности Парето (шум x размытие x качество)
2D проекции для попарного анализа критериев
Статистическое сравнение алгоритмов
Тепловые карты производительности
Точка x* является Парето-оптимальной, если не существует другой точки x, такой что f_i(x) >= f_i(x*) для всех критериев i, и f_j(x) > f_j(x*) хотя бы для одного критерия j.
- ALPHA = 0.7
- COLORMAP = 'viridis'
- FIGURE_DPI = 300
- LINE_WIDTH = 2
- MARKER_SIZE = 60
- __init__(processing_instance: Any, output_folder: str = 'pareto_analysis')[исходный код]
Инициализация анализатора Парето.
Параметры
- processing_instanceAny
Ссылка на объект Processing.
- output_folderstr
Директория для сохранения результатов анализа.
- execute(save_figures: bool = True) DataFrame[исходный код]
Выполнение комплексного анализа фронта Парето.
Параметры
- save_figuresbool, по умолчанию True
Сохранять сгенерированные графики.
Возвращает
- pd.DataFrame
DataFrame со всеми данными анализа.
- class blinddeconv.processing.extensions.ParetoPoint(objectives: ~typing.Dict[str, float], parameters: ~typing.Dict[str, ~typing.Any], metadata: ~typing.Dict[str, ~typing.Any] = <factory>, is_pareto_optimal: bool = False)[исходный код]
Базовые классы:
objectТочка в многокритериальном пространстве.
Атрибуты
- objectivesDict[str, float]
Значения целевых функций (например, {„psnr“: 25.0, „time“: 1.5}).
- parametersDict[str, Any]
Связанные гиперпараметры.
- metadataDict[str, Any]
Дополнительная информация (имя алгоритма, изображение и т.д.).
- is_pareto_optimalbool
Принадлежит ли точка фронту Парето.
- dominates(other: ParetoPoint, maximize: List[str] | None = None) bool[исходный код]
Проверка доминирования текущей точки над другой.
Параметры
- otherParetoPoint
Другая точка для сравнения.
- maximizeList[str]
Список критериев для максимизации.
Возвращает
- bool
True если текущая точка доминирует над other.
- class blinddeconv.processing.extensions.ProcessingExtension(processing_instance: Any, output_folder: str = 'output')[исходный код]
Базовые классы:
ABCАбстрактный базовый класс для расширений обработки.
Предоставляет общий функционал для расширений, дополняющих основной конвейер обработки изображений.
Атрибуты
- processingAny
Ссылка на основной экземпляр обработки.
- output_folderPath
Директория для сохранения результатов.
- loggerlogging.Logger
Логгер для данного расширения.
- __init__(processing_instance: Any, output_folder: str = 'output')[исходный код]
Инициализация расширения.
Параметры
- processing_instanceAny
Ссылка на объект Processing.
- output_folderstr
Директория для сохранения результатов.
- abstract execute(*args, **kwargs) Any[исходный код]
Выполнение основного функционала расширения.
Должен быть реализован в подклассах.