Эквализация гистограмм

В этой статье мы расскажем вам о том, как можно своими руками реализовать один из методов улучшения качества изображений с помощью усиления контраста отдельных областей. Данный метод называется эквализацией (выравниванием) гистограммы и его реализацию мы покажем далее.

Читать далее →

Подробнее

По следам неудачного примера из vectorflow. Часть II. Обучаем нейросеть на 60 000 PPM-файлах

В предыдущей части, мы показали как можно использовать D в качестве скриптового языка, который помог перевести множество изображений из базы данных MNIST в более удобный для разбора формат PPM P6. Несмотря на то, что использовалась одна внешняя библиотека (а именно, разработанная нами ppmformats), код по большей части задействует ресурсы стандартной библиотеки языка и остается простым.

Если вы помните, результатом работы программы из Части I являлась папка со множеством файлов формата PPM P6, а в этой статье, мы покажем, как их подать на вход нейронной сети.

Читать далее →

Подробнее

По следам неудачного примера из vectorflow. Часть I: конверсия датасетов в удобный формат

Порой я, в поисках идей, просматриваю рабочую папку на предмет неудавшихся или провалившихся идей программ, и иногда из отчаяния и безысходности я выбираю то, что перерастет в последствии в нечто захватывающее и интересное…Если говорить более конкретно, то мне попался на глаза наш неудачный эксперимент с нейросетями в библиотеке от Netflix, который закончился весьма плохо, а именно с ошибкой около 41%.

Подобный ход событий меня очень расстроил, но у меня была идея, как это можно было бы исправить: мне казалось, что все упирается в тот формат датасетов, который использовался во многих программах по распознаванию рукописных цифр, и соответственно, вся проблема была в парсерах форматов, за что я решил взяться на полной занятости…

Читать далее →

Подробнее

Библиотека ppmformats. Чему я научился создавая обработчики PortablePixmap форматов

Недавно, я понял, что довольно часто я работаю с D не с домашнего компьютера, а с обычного смартфона. На смартфоне у меня стоит почти та же среда, что и на компьютере (я имею в виду, что на компьютере и смартфоне одинаковый комплект консольных утилит и их настройки так же одинаковы), а это значит, что хочется единообразной работы кода на столь разных платформах. Добившись успеха с некоторыми из примеров блога, я решил попытать счастья с обработкой изображений на смартфоне, поскольку довольно часто источником графических данных является именно смартфон…

Но, тут меня ждала неудача: dlib отказался работать на смартфоне (что привело к моему первому pull request в репозиторий dlib), а остальные библиотеки не так удобны и точно также отказываются работать в Termux на смартфоне. При этом срочно нужно организовать работу с изображениями и сделать это так, чтобы удобство было на уровне dlib, а весь остальной функционал мог бы работать с минимальным рабочим окружением и не требовал бы сторонних библиотек.

Исходя из этого, получаем техническую задачу на разработку новой и минимальной библиотеки для работы с изображениями…

Читать далее →

Подробнее