Средствами CV удается автоматически преобразовать фото- и видеоданные в информацию, что с успехом удалось сделать Ыну с коллегам в вышеописанном эксперименте с кошками с использованием технологий самообучения ANN. Еще в 2007 году группа авторов под руководством того же Эндрю Ына опубликовала статью «Обучение с самообучением: Трансферное обучение на неразмеченных данных» (
• Supervised Classification – Обучение с учителем
• Semi-supervised Learning – Обучение с частичным участием учителя
• Transfer Learning – Трансфертное обучение
• Self-taught Learning – Обучение без учителя
Эти виды обучения отличаются по степени использования заранее помеченных данных. В случае обучения с учителем она максимальна и, напротив, в случае обучения без учителя минимальна. Идея последнего проста, можно на некотором тестовом наборе научить саму сеть самостоятельно учиться, а после этого она получит возможность накапливать внутри себя необходимый ей комплекс метаданных, чтобы решать поставленную перед ней задачу распознавания. Но в отличие от человека, использующего при обучении творческие способности, ассоциации и т. п., машина по определению тупа, поэтому процесс ее обучения требует затрат большой вычислительной мощности, к тому же эта мощность при использовании фон-неймановских CPU на задачах машинного обучения используется нерационально.
Основным инструментом для разработчиков CV служат библиотеки функций, позволяющие решать стоящие перед ними задачи с использование нейронных сетей и методы машинного обучения. Библиотеки позволяют аккумулировать опыт и небольшими силами создавать серьезные работающие системы из готовых блоков. Почти все библиотеки относятся к открытому ПО, в числе наиболее популярных: OpenCV, TensorFlow, CUDA, YOLO, MATLAB, Keras, SimpleCV, BoofCV, CAFFE, OpenVINO и DeepFace, но ими список не ограничивается, поскольку по своим возможностям они заметно различаются, выбор зависит от решаемой задачи.
В подавляющим большинстве рейтингов лидирует библиотека OpenCV, что заслуживает особого внимания. Хотя она относится к открытым продуктам и она развивается силами большого числа добровольцев, но у нее, что случается нечасто, российские корни. История OpenCV с создания сотрудниками Саровским ВНИИЭФ, работавшими по контракту с Intel, Нижегородской программной технологической лаборатории (NSTL, Nizhny Software Technology Lab). Одним из ее основателей стал Валерий Федорович Курякин, первыми разработчиками были Вадим Писаревский и Виктор Ерухимов, а американский участник проекта Гари Брадски инициировал развите в виде свободно распространяемой продукта с открытым исходным кодом. В 2000 году библиотека получила название OpenCV. Дальнейший путь развития OpenCV был непрост, однако он привел к успеху, библиотека скачана более 20 млн раз и ее элементы использовались при разработке Android и iOS.
Проблема умного железа
Используя метафору «души и тела» в приложении к AI, можно сказать, что в CV – это проблема «души», она решается давно и успешно, но проблема «тела» остается далека от решения, несмотря на кажущееся благополучие, обеспечиваемое графическими процессорами GPU и собранными из них кластерами с рекордными показателями производительности, измеренной в петафлопах, то есть в единицах, не имеющих непосредственного отношения к нагрузке, создаваемой AI-приложениями. История специализированных аппаратных технологий для CV и вообще задач машинного обучения только начинается.
Приходится признать, что для такого класса задач используемые ныне GPU и намного реже специализированные микросхемы (ASCI) и матричные массивы (FPGA) служат тем, что по-английски называют stopgap measures, то есть средствами, обеспечивающими временное решение, не более того. О степени несовершенства можно судить по тому, что мозг потребляет порядка 40 ватт, а если бы удалось создать компьютер, моделирующий равное число нейронов современными технологиями, его мощность оценивалась бы тысячами мегаватт, но есть на 7–9 порядков больше. Поэтому нынешнее положение можно сравнить с тем, что было в первые годы существования компьютеров, когда в ход шли любые доступные радиодетали – лампы, транзисторы, конденсаторы, сопротивления, магнитные сердечники. Это происходило до семидесятых, до тех пор пока не появились интегральные микросхемы, а позже и микропроцессоры.