Как ты уже, наверное, слышал, мозг человека состоит из особых клеток – нейронов. Эти клетки чувствительны к электрическим импульсам, поступающим извне. Нейрон способен обрабатывать, хранить, передавать информацию с помощью электрических и химических сигналов.
Число нейронов в мозге человека составляет, по разным оценкам, от 80 до 100 миллиардов. А в мозге котика – до 1 миллиарда нейронов.
Один ученый (точнее, два!) – американский нейрофизиолог Уоррен МакКаллок и нейролингвист, логик и математик Уолтер Питтс – придумали нейросети в далеком 1943, решив по аналогии с мозгом создать электронную схему для анализа данных и принятия решений.
Суть ее в том, что большое число заранее “обученных” нейронов, связанных между собой, могут действовать подобно мозгу человека, принимая решение на основе ранее полученной информации.
Высказывалось даже мнение, что достаточно лишь соединить между собой очень большое число нейронов, чтобы получить полное подобие мозга человека или другого животного. Конечно же, это не так.
Компьютеры в то время только появились, представляли собой огромные установки, занимавшие целые этажи или даже здания. О том, чтобы развернуть на таком компьютере подобие современной нейросети, не могло быть и речи.
Но это не значит, что нейросети сидели и ждали появления быстрых компов, ничего не делая. На следующем рисунке показаны важные события в истории развития нейросетей.
Сейчас нейросети уже достаточно широко применяются, например:
– распознавание номеров автомобилей для выявления нарушителей правил движения;
– распознавание лиц людей (поиск преступников);
– использование биометрических данных для предоставления услуг;
– повышение качества фотографий и видео;
– интеллектуальное редактирование видео (например, замена лиц);
– синтез изображений (например, фотографий людей);
– синтез текстов;
– многое другое.
Поскольку ты пока начинающий разработчик, мы создадим один из простейших, но, в то же время, вполне работоспособный проект, демонстрирующий возможности нейронных сетей.
Что же нам потребуется?
Оборудование:
– компьютер (обычный настольный, либо ноутбук, либо планшет) – подойдет практически любой, главное, чтобы можно было установить софт (об этом чуть ниже);
– веб-камера (если используешь обычный комп, потому что в ноутах и планшетах камера обычно встроена).
Программы:
– дистрибутив Python;
– библиотеки imutils, cv2.
Итак, мы считаем, что у тебя есть комп, и он работает под управлением Windows. Это довольно логично, так как если у тебя на компе Linux, то с установкой Python ты и без меня справишься))) (на всякий далее будет описана установка Python и библиотек на Linux, а пока вернемся к родному Биллу Гейтсу):
1) переходим по ссылке [1] в конце книги и скачиваем последнюю версию Python (на момент написания книги – 3.9.4) вместе со средой разработки IDLE. Python (по-русски читается “Пайтон”) – язык программирования, ставший в последнее время очень популярным, одна из причин – легкость установки и использования, мы с тобой убедимся в этом. К сожалению, за удобства приходится платить – программы на Python работают медленнее аналогичных программ, к примеру, на языке С++, иногда – намного медленнее, раз в 10 и даже больше. Для нас с тобой это пока не проблема.
2) запускаем установщик и соглашаемся с настройками по умолчанию;
3) в результате в меню “Пуск” должны появиться новые программы (если ты скачивал более новую версию, то в названиях будет номер этой версии):
4) запустим среду IDLE. Отобразится окно, в котором можно писать на языке Pyhton. Команды будут выполняться по нажатию кнопки Enter:
5) в принципе, уже можно писать код/кот. Так и напишем:
print ("Привет, Кот!")
и нажмем Enter, должно получиться так:
Если есть ошибки, они будут выделены красным. Например, можно забыть кавычки;
6) как видим, наш первый код(т) жив. Так что начало положено.
Конечно, мало кто выполняет текст программы по одной строчке. Исходный текст программы представляет собой файл или несколько файлов, которые можно хранить, редактировать, передавать другим разработчикам. Даже в такой простой среде как IDLE можно создавать файлы программ – выбери в меню File пункт New File. После нажатия на него откроется новое окно для ввода программы. Введи туда следующие строки:
a = 1
b = 2
print (a + b)
Теперь можно запустить эту простейшую программу – выбери в верхнем меню Run пункт Run Module. IDLE спросит, куда сохранить файл программы, введи имя файла и выбери папку для сохранения. Сразу после этого программа запустится, и результат ее работы – число “3” – будет выведено в нижнее окно (с заголовком IDLE Shell).
И это прекрасно, но нам нужно нечто большее, чем просто вывод на экран цифр и жизнеутверждающих фраз про кота – мы, кажется, хотели что-то делать с нейросетью. Как и в большинстве языков, в Python для использования тех или иных нужных для конкретной программы возможностей нужно “подключить библиотеки”, то есть сообщить среде разработки, где живет функция, которую собираешься вызвать.
Но прежде, чем подключать библиотеку, ее нужно установить, то есть скачать ее из сети на свой комп в то место, где среда разработки их хранит. Нам понадобится установить три библиотеки:
OpenCV – это библиотека компьютерного зрения (Computer Vision – CV), именно в ней “живут” нужные нам функции опознавания объектов и огромное множество других возможностей, которые мы точно не успеем рассмотреть в нашей книге;
imutils – библиотека для работы с изображениями (Image Utilities – imutils), которая помогает получать фото и видео от разных источников, изменять размер, вращать и выполнять прочие нужные в быту операции;
NumPy – очень мощная математическая библиотека.
Итак, собственно установка. Обрати внимание, что для скачивания библиотек требуется доступ в интернет. Нам необходимо вызвать так называемую консоль, то есть окно ввода текстовых команд. Для этого нажимаем комбинацию клавиш