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

Затраченное время в секундах.

best_params: Dict[str, Any]
best_value: float
elapsed_time: float = 0.0
history: List[Dict[str, Any]]
n_trials: int
study: Any | None = None
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 для непрерывных параметров).

property is_integer: bool

Проверка, является ли параметр целочисленным.

log_scale: bool = False
max_value: int | float
min_value: int | float
name: str
step: float | None = 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.

is_pareto_optimal: bool = False
metadata: Dict[str, Any]
objectives: Dict[str, float]
parameters: Dict[str, Any]
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[исходный код]

Выполнение основного функционала расширения.

Должен быть реализован в подклассах.