Навчання нейромережі починається з підготовки матеріалів - розмічених зображень об'єктів, які потрібно буде розпізнавати. З їх допомогою ми навчаємо нейронну мережу розпізнавати що зображено на фото. Завдання цього проекту - створити систему, що розпізнає точну модель пульта з фотографії, зробленої на мобільний телефон. Процес ускладнюється тим, що існує велика кількість пультів, і багато з них схожі як брати-близнюки. Зараз, для того щоб людина навчилася розрізняти моделі пультів випускають спеціальні катологи або плакати, на яких показують як один пульт відрізняється від іншого.

pulti відмінності

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

Вирішити проблему нам допоміг Blender. На його основі ми створили віртуальну студію, за допомогою якої згенерували розмічені зображення (матеріал) для навчання нейромережі. Давайте розбиратися як це зробити через студію, а як руками.

Процес підготовки матеріалів за допомогою віртуальної студії

Все почалося з того, що ми зробили по одному фото кожного пульта і підібрали велику кількість різних фонових зображень. За допомогою скрипту підключеного до Blender, ми автоматично підставляємо зображення пульта на кожний фон. В розгорнутій студії є віртуальна камера (чорний трикутник на фото нижче), вона наближається, змінює положення. В процесі анімації скрипт робить рендери кожного кадру, і у нас з'являється база зображень (матеріалів) для подальшого навчання. Цей процес (отримання зображень за допомогою 3D програми) називається рендерингом.

Ось так виглядає Blender із зображенням пульта (по центру) та готовим рендером - пульт поставлений на фон і повернений вліво.

візуальна студія

Рендер - це зображення, яке виходить в результаті прорахунку тривимірної моделі в зображення.

У процесі рендеринга, наш скрипт робить автоматичну розмітку матеріалів (її називають labelling або боксинг). В результаті ми отримаємо базу рендерів (всі пульти, на всіх фонах, в різних положеннях), і відповідні кожному рендеру xml файли із зазначенням точних координат об'єкту на зображенні.

рендери пульта

Так виглядає набір рендерів одного пульта, тільки фонів і положень набагато більше.

Всі отримані матеріали наша віртуальна студія відразу ділить на дві папки test і train. Папка train буде використовуватися для навчання нейромережі, а папка test (куди потрапляє кожен п'ятий рендер) буде базою для самотестування мережі.

Під час навчання мережа робить так звані чекпоінти - перевіряє наскільки правильно йде процес. Для цього потрібен матеріал подібний тому, якого навчають, але не ідентичний. 

Такий метод навчання універсальний для будь-яких об'єктів, які повинна буде навчитися розпізнавати нейросітка і називається навчання нейронної мережі на основі синтетичних матеріалів.

Як би виглядав процес підготовки матеріалів без рендеринга "ручна розмітка"

Використання рендерів автоматизує, і істотно прискорює процес підготовки необхідних даних для навчання нейромережі. Якби не віртуальна студія на основі Blender, весь матеріал для навчання ми б готували "руками": робили велику кількість фотографій кожного пульта в різних умовах, розмічали їх кожен окремо, і вручну розподіляли на навчальний і тестовий матеріал. На це пішло б багато фінансів і часу.

розмітка пульта

Якісно підготовлені матеріали - запорука успішного навчання нейромережі

На процес навчання нейромережі впливає кількість, різноманітність матеріалів, і якість самих зображень. Якість зображення шуканого предмета при розпізнаванні має бути ідентична тій, при якій навчалась мережа. У нашому проекті пульти потрібно буде розпізнавати по фото з телефону. Тому, для навчання мережі, окрім якісних зображень ми використовуємо і фото низької якості.

Після підготовки матеріалів, ми приступили до безпосередньо навчання нейромережі. Але це вже тема наступної статті.

Якщо вас цікавить розпізнавання об'єктів - пишіть, ми допоможемо вам раціонально застосувати наші розробки для розвитку вашого бізнесу.

10.12.2018
Рейтинг: 5 / 5 (1)