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
Обновление фреймворка до последней версии
pip install -U olimp
или
pip install -U 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.
Примеры
📖 См. также Примеры использования
Демонстрационный пример ДЦЗ
Демонстрационный пример РИЗ
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file olimp-1.0.6.tar.gz.
File metadata
- Download URL: olimp-1.0.6.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8b6b06692e61d6e43ba129b38265cbdd565d8ce31b4caf4d6001c9709c9bd37
|
|
| MD5 |
224df7816895246a11a07996f5b57219
|
|
| BLAKE2b-256 |
9df73b241343d3175fc4e3bfdb1c9727f3bf656250cef100b71c10ce6e2e8ed9
|
File details
Details for the file olimp-1.0.6-py3-none-any.whl.
File metadata
- Download URL: olimp-1.0.6-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89507037a64dcecc2aa4e499a900a3b8815cb1b97dcb02c7c6159da4fe51652b
|
|
| MD5 |
db5d52d66306cf3f5c8d2b5b2b1b33c5
|
|
| BLAKE2b-256 |
bccb0c6db39a4d7e79179b6bf6c94c7fc8f0a8ae21847755c8ea944b7fca4e3a
|