Skip to main content

Framework for Image Precompensation

Project description

🌐 Эта страница также доступна на English 🇬🇧

Pyolimp

Данный проект представляет собой фреймворк на основе методов машинного обучения для предкомпенсации изображений с целью коррекции нарушений зрения — в частности, дефектов цветового зрения (ДЦЗ) и рефракционных искажений (РИЗ). Фреймворк включает в себя как нейросетевые, так и не нейросетевые модули, что позволяет эффективно решать задачу предкомпенсации различными методами.

Обзор проекта

Данный проект направлен на предкомпенсацию визуальных нарушений с использованием методов машинного обучения. Он представляет собой универсальный фреймворк, поддерживающий как нейросетевые (NN), так и не нейросетевые (non-NN) подходы для восстановления качества изображения у пользователей с различными нарушениями зрения. Направления прикладного использования следующие:

  • Предкомпенсация дефектов цветового зрения (ДЦЗ): Компенсация цветовой слепоты (например, протанопия, дейтеранопия).
  • Предкомпенсация рефракционных искажений зрения (РИЗ): Коррекция искажений, вызванных нарушениями рефракции, с улучшением чёткости и резкости изображения.
  • Предкомпенсация других типов искажений: Фреймворк может быть использован для обучения и применения обученных нейросетевых архитектур предкомпенсации искажений, отличных от ДЦЗ и РИЗ.

Требования к проекту

  • Python 3.10+
  • Pytorch 2.4+
  • Дополнительные зависимости, перечисленные в pyproject.toml

Технические характеристики ПК:

  • аппаратная платформа, на которой может быть запущена 64-разрядная ОС Ubuntu версии 22.04 LTS или выше или Windows версии 10 и выше;
  • не менее 16 ГБ оперативной памяти;
  • восьмиядерный процессор x86 2.5 ГГц и выше или аналогичный ему;
  • видеокарта с поддержкой cuda 12.+, и не менее 12 ГБ видеопамяти;
  • не менее 100 ГБ свободного места на жёстком диске;
  • клавиатура и мышь (или тачпад).

Установка

pip install olimp

или

pip install git+https://github.com/pyolimp/pyolimp.git

Использование

1. Не нейросетевые модули для предкомпенсации ДЦЗ и РИЗ

Чтобы запустить алгоритм оптимизации для предкомпенсации РИЗ с использованием метода Брегмана-Джамбо, выполните:

python3 -m olimp.precompensation.optimization.bregman_jumbo

Чтобы запустить алгоритм оптимизации для предкомпенсации РИЗ с использованием метода Монталто, выполните:

python3 -m olimp.precompensation.optimization.montalto

Чтобы запустить алгоритм оптимизации для предкомпенсации ДЦЗ с использованием метода Тенненхольца-Зачевского, выполните:

python3 -m olimp.precompensation.optimization.tennenholtz_zachevsky

Вы также можете вызывать примеры из каталога olimp.precompensation.basic и olimp.precompensation.analytics, как в приведенных примерах.

В docs/source/notebooks/precompensation.ipynb представлены дополнительные примеры запуска различных не нейросетевых методов предкомпенсации РИЗ и ДЦЗ с краткими описаниями представленных методов и примерами результатов их работы. Для запуска необходимо последовательно запустить сначала первые ячейки с импортом общих библиотек, затем ячейку с интересующим методом.

2. Нейросетевые модули для предкомпенсации ДЦЗ и РИЗ

Чтобы запустить нейросетевую модель для предкомпенсации РИЗ с использованием метода USRNET, выполните:

python3 -m olimp.precompensation.nn.models.usrnet

Чтобы запустить нейросетевую модель для предкомпенсации ДЦЗ на основе архитектуры с использованием SWIN-трансформеров, выполните

python3 -m olimp.precompensation.nn.models.cvd_swin.Generator_transformer_pathch4_844_48_3_nouplayer_server5

В docs/source/notebooks/precompensation_nn.ipynb представлены дополнительные примеры запуска различных нейросетевых методов предкомпенсации РИЗ и ДЦЗ с краткими описаниями представленных методов и примерами результатов их работы. Для запуска необходимо последовательно запустить сначала первые ячейки с импортом общих библиотек, затем ячейку с интересующим методом.

3. Обучение моделей

Для обучения нейросетевых моделей предкомпенсации используйте следующую команду:

python3 -m olimp.precompensation.nn.train.train --config ./olimp/precompensation/nn/pipeline/usrnet.json

Вы также можете обучить другие модели, см. olimp/precompensation/nn/pipeline. Также у нас есть json-схема, которую можно сгенерировать, используя следующую команду:

python3 -m olimp.precompensation.nn.train.train --update-schema

В docs/source/notebooks/pyolimp_train.ipynb представлено пошаговое описание процесса обучения нейронной сети на примере нейросети USRNET.

Examples

Демонстрационный пример ДЦЗ

Демонстрационный пример РИЗ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olimp-1.0.2.tar.gz (116.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

olimp-1.0.2-py3-none-any.whl (200.0 kB view details)

Uploaded Python 3

File details

Details for the file olimp-1.0.2.tar.gz.

File metadata

  • Download URL: olimp-1.0.2.tar.gz
  • Upload date:
  • Size: 116.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for olimp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 171affed88c7c23adf0b69bdff23188687c034032985c0cf1f3cc7aec3cc59eb
MD5 be77683db0b2633998475c2892bf0b65
BLAKE2b-256 3b2f13dae1eeacdddb9cc4deda62d4e257a2964ad93db1f3300f35f9188d0838

See more details on using hashes here.

File details

Details for the file olimp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: olimp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 200.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for olimp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 87d6191a3c7b2c61526184a8dc61ee4c5a9d2c7ee5239bfbb7c3cf184d09cf50
MD5 a6d1daf9c89e8e1183d45cce19976003
BLAKE2b-256 c5f4e7e7e0ecef705e6246bf314b8382aa11c4239ae75d6a5f0ade79ea111816

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page