Хобрук: Ваш путь к мастерству в программировании

Можно ли использовать сеть глубокого обучения для коллекции неподвижных изображений?

У меня есть коллекция из примерно тысячи коллекционных карточек с разными картинками. У меня также есть база данных сканов в высоком разрешении каждой из этих коллекционных карточек, которые когда-либо были напечатаны. Я хотел бы передать отсканированные изображения в сеть глубокого обучения, чтобы, если бы я держал одну или несколько своих карточек перед камерой, она могла бы определить, какие из них я держу.

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

Наконец, я собираюсь реализовать это в системе Raspberry Pi 2, которую я объединил в сеть для параллельной работы. Я не уверен, что Jetpac явно может поддерживать распределенные вычисления, но я полагаю, что смогу разделить видеопоток на несколько каналов и запускать каждый канал в отдельном экземпляре Jetpac на отдельном RPi.

Правильно ли я думаю об этой проблеме? Был бы другой подход более практичным? Спасибо за любую помощь!!

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


Ответы:


1

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

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

13.09.2015

2

На момент написания этой статьи сверточная нейронная сеть Яна Лекуна (глубокое обучение) была самой современной для распознавания изображений. Если вы знакомы с Lua, вы можете попробовать Facebook Torch @ http://torch.ch/ (скорее всего Янн в некоторой степени связан с этой библиотекой глубокого обучения, так как он возглавляет группу искусственного интеллекта в Facebook). Однако документация несколько ограничена, и я слышал, что есть кривая обучения...

Если вы ищете платформу глубокого обучения с открытым исходным кодом на основе Python, управляемую сообществом, я рекомендую Theano. Вот учебник по сверточной нейронной сети: @ http://deeplearning.net/tutorial/lenet.html . Я использовал его в исследовательском проекте (многозадачное глубокое обучение). Откровенно говоря, кривая обучения Theano жестока (у него странный синтаксис), но он работает хорошо, а учебные пособия — самые обширные, которые моя исследовательская группа смогла найти в Интернете.

Если вы решите, что хотите, чтобы все работало быстрее, и у вас есть деньги, вы можете инвестировать в видеокарту, совместимую с Nvidia Cuda. Theano может хорошо масштабироваться на мощной карте Nvidia с несколькими тысячами ядер Cuda. В моем случае (для исследовательских целей) я просто запустил Theano на процессорах в системе HTCondor в UWMadison (он достаточно хорошо справился с пирамидальной задачей глубокого обучения с 40 гигабайтами данных).

Еще одна мысль: текущая версия учебника Theano, на который я ссылался, использует сигмовидные активации - для этого требуется этап предварительной подготовки (из-за проблемы с исчезающим/взрывающимся градиентом). Однако, если вы переключитесь на ректифицированные линейные единицы (ReLU), вы можете пропустить этап предварительной подготовки (ReLU не страдает от этого ограничения, поэтому в настоящее время он популярен в исследованиях). Однако, если вы новичок в Theano, вы можете просто начать с сигмоидов, поскольку система уже построена правильно (проще просто изменить учебник, если вы пытаетесь быстро заставить что-то работать)

18.09.2015
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..