Рецепт приготовления нейронных сетей

Года три назад в своих Записках я опубликовал историю из научно-популярной лекции «ШАМАНСТВО» В АНАЛИЗЕ ДАННЫХ доцента ВМК МГУ имени М.В. Ломоносова, д.ф.-м.н. А.Г. Дьяконова. В ней внятно объясняется слово «шаманство» по отношении к обработке больших данных и необходимость наличия у исследователя некоторого эмпирического опыта, а не только знания строгостей математики. Вопрос соотношения детерминизма и хаоса в любых природных процессах волновал меня ещё со студенческой скамьи, а что-бы преодалеть хаос в нейронных сетях и заставить их работать должным образом творец должен их одухотворить.

С тех пор много воды утекло и накопился некоторый опыт по поводу эксплуатации и приготовления нейронных сетей, а на глаза случайно попалось эссе A Recipe for Training Neural Networks Andrej Karpathy, мысли которого с некоторыми дополнениями и комментариями созвучны моим, а выпускница магистратуры пожаловалась на низкую вероятность прогноза дефектов керамических изоляторов высоковольтных линий электропередач и всё сложилось в кучку. Так и появилась эта записка с рецептом практического приготовления нейронных сетей. Начинаем… Вперёд и вниз ↓

Есть пара фактов, которые подвигли написать этот рецепт.
Читать далее «Рецепт приготовления нейронных сетей»

Вспомни молодость или как раскрасить черно‑белое фото из прошлого века

В жаркую последнюю субботу весны 2021 года, когда на улице за 30°С, природа с озёрами и горами далеко, а кондиционер вместе с увлажнителем создаёт в квартире комфортную обстановку и совершать телодвижения лениво, посмотрел юношеские чёрно‑белые фотографии. В то время, когда я учился в школе, у меня по наследству было три фотоаппарата — ФЭД (Феликс Эдмундович Дзержинский), собранный бывшими малолетними беспризорниками в колонии, которой командовал Макаренко А.С. в начале 30-х годов прошлого века, найденный в деревне, но исправно выполнявший свою работу в 70-х; Зенит-Е, один из первых зеркальных фотоаппаратов СССР образца 1966 года и моя любимая Смена-8М, как говорили раньше «мыльница», не отличающаяся качеством оптики и соответственно качественной фотографий, но свободно помещающаяся в карман. В нашем классе мало у кого не было своего фотоаппарата. В конце этих записок вы увидите галерею старых раскрашенных фотографий, большинство из которых сделаны именно «мыльницами».

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

Этот проект целью своей имеет автоматическое преобразование старых черно-белых фотографий в цветные с помощью Python, используя библиотеки OpenCV, DNN и Caffe. Написанный и отлаженный скрипт Python bw2c-ru.py принимает черно-белое изображение на входе и автоматически возвращает цветное изображение на выходе.
Читать далее «Вспомни молодость или как раскрасить черно‑белое фото из прошлого века»

Урок 1. Распознавание изображений и обнаружение объектов

Начинаю серию уроков (мини-курс) о распознавании изображений и обнаружении объектов.

В первой части краткое объяснение понятий распознавание изображений с использованием традиционных методов компьютерного зрения. Я называю методы, не основанные на глубоком обучении, традиционными методами компьютерного зрения, потому что они быстро заменяются методами, основанными на глубоком обучении. Тем не менее, традиционные подходы к компьютерному зрению используются по-прежнему во многих приложениях. Многие из этих алгоритмов также доступны в библиотеках компьютерного зрения, таких как OpenCV, и очень хорошо работают «из коробки».
Читать далее «Урок 1. Распознавание изображений и обнаружение объектов»

Чтение и запись видео с использованием OpenCV

Чтение и запись видео в OpenCV очень похоже на чтение и запись изображений. Видео — это не что иное, как серия изображений, которые часто называют кадрами. Итак, все, что вам нужно сделать, это перебрать все кадры в видеопоследовательности, а затем обрабатывать по одному кадру за раз. В этом посте мы покажем, как читать, отображать и записывать видео из файла, последовательности изображений и веб-камеры. Мы также рассмотрим некоторые ошибки, которые могут возникнуть в процессе, и поможем понять, как их исправить.

Читать далее «Чтение и запись видео с использованием OpenCV»

Как воспроизводить и записывать аудио на Python

Масса приложений записывает голос и воспроизводит звуки, если вы тоже этого хотите, то попали в нужное место и в нужное время. В этом уроке мы будем использовать разные библиотеки Python для воспроизведения и записи звука на Python.

Давайте установим необходимые библиотеки для этого урока:

pip3 install playsound pyaudio pydub ffmpeg-python

Читать далее «Как воспроизводить и записывать аудио на Python»

Как обнаруживать объекты, используя YOLO, OpenCV и PyTorch в Python

Обнаружение объектов — это задача компьютерного зрения и обработки изображений, которая связана с обнаружением объектов на изображениях или видео. Сейчас решения подобного рода задач актуальны в самых разных реальных приложениях, включая видеонаблюдение, беспилотные автомобили, отслеживание объектов и т. д.

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

В этом уроке вы узнаете, как найти и обнаружить объекты с помощью современной техники YOLO v3 с OpenCV или PyTorch в Python.
Читать далее «Как обнаруживать объекты, используя YOLO, OpenCV и PyTorch в Python»

Как с помощью Python распознать текст в изображениях

Мы легко понимаем текст на картинке, просто на неё взглянув. Однако, с компьютерам всё как‑то не так. Им нужна какая‑то мето́да или алгоритм. Здесь на помощь приходит Optical Character Recognition (OCR) или оптическое распознавание символов. Оптическое распознавание символов — это процесс обнаружения текстового содержимого на изображениях и преобразование его в машинно-кодированный текст, к которому мы можем получить доступ и манипулировать в Python (или любом другом языке программирования) как со строковой переменной. Для этого в нашем уроке мы будем использовать библиотеку Tesseract.
Читать далее «Как с помощью Python распознать текст в изображениях»