Как построить собственную модель компьютерного зрения? Давайте ответим на этот вопрос, разобравшись с глубоким обучением.

Как это работает?

Глубокое обучение работает, имитируя нормальные нейронные сети. В человеческом мозгу этот процесс обеспечивается небольшими электрическими токами от синапсов.
Искусственные нейронные сети также выполняют эти операции с помощью слоев, созданных путем их имитации. Модели, которые мы создаем, работают так, как их видит младенец, сохраняет в памяти, а затем узнает. Например, если мы хотим иметь процесс обработки изображения, мы сначала загружаем фотографии объекта, который хотим распознать, в нашу модель. Затем, когда мы показываем другую фотографию с тем же объектом для тестирования, мы ожидаем, что он его распознает. Я расскажу о деталях этого процесса распознавания в моей следующей статье.

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

Когда изображение передается модели, машина делит его на пиксели и преобразует в однострочный (1 * n) массив. Так как это введение, о деталях мы поговорим во второй статье.

Почему он знает неправильно?



Одна из последних новостей. Искусственный интеллект перепутал лысину судьи с мячом и следовал за лысиной судьи вместо мяча.
Как вы думаете, в чем может быть причина этого? Да, отсутствие фото мяча на фотографиях, предварительно загруженных на модель. Или отсутствие человеческих фотографий во всех смыслах и ракурсах. К сожалению, компьютеры — самое глупое существо на свете. Если вы хотите ему что-то сказать, вы должны объяснить это очень подробно.

Как создаются наборы данных?

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

https://storage.googleapis.com/openimages/web/index.html

Вы можете получить к нему доступ по ссылке. Здесь есть полезные инструменты для загрузки фотографий.
OIDv4_ToolKit, созданный EscVM с открытым исходным кодом, очень полезен для этого.
В этой серии мы будем использовать фреймворк yolo даркнета. Этот инструмент также позволяет нам загружать и конвертировать изображения в формате yolo. Прежде всего, давайте рассмотрим, как устроен этот формат.

Yolo (вы смотрите только один раз) ожидает, что текстовые файлы будут иметь то же имя, что и изображения. Например, picture1.jpg и picture1.txt. Так что же находится в этих текстовых файлах? Объект, который мы хотим ввести в модель, имеет координаты и номер класса. Номер класса может начинаться с 0 и увеличиваться до количества классов. Координаты формируются путем нормализации между [0,1]. Вроде слева, сверху, справа, снизу. OIDv4_ToolKit не дает нам файлы txt таким образом, мы создаем его, помещая код python в ту же директорию. Образец содержимого txt должен быть следующим.

«0» указывает на класс. Остальные четыре значения — это координаты объекта.

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

Шаги для клонирования и загрузки должны быть следующими:

Вы можете загрузить его, выполнив команду git clone.

Загрузите требования с помощью приведенной выше команды.

И, наконец, как и выше, вы можете использовать файл main.py для загрузки файлов и фотографий нужного вам класса. Примечание. Помните! Чем больше ваш набор данных, тем выше успех этой модели.

После запуска файла convert_annotations.py каталог будет таким, как показано выше. Это означает, что он подходит для формата йоло.

Вывод

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