Використовуємо CNN для обробки зображень. Частина перша

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Привіт усім! Мене звуть Олексій, я Machine Learning Engineer у компанії Svitla Systems. В останній час тема штучного інтелекту, його алгоритмів та можливостей, особливо у сфері GenAI, стала вельми актуальною. Незалежно від новизни генеративних ШІ-інструментів, всі вони досі ґрунтуються на базових концепціях та деталях, які залишатимуться актуальними протягом десятиліть. Саме про одну з таких концепцій, а саме згорткові нейронні мережі, йтиметься у цій статті.

Вступ

Згорткові нейронні мережі, або Convolutional Neural Networks (далі CNN), є різновидом нейронних мереж для обробки зображень. CNN використовуються в завданнях комп’ютерного зору: генерації і класифікації зображень, розпізнавання об’єктів і поз тощо. Ці завдання раніше намагались вирішити як за допомогою класичних нейронних мереж, тобто багатошарового персептрона Multilayer Perceptron (MLP), так і різними евристичними методами.

На зображенні показана різниця між різними задачами в комп’ютерному зорі, як для поодиноких, так і для багатьох об’єктів.
Джерело: AIM

Що стосується евристичних методів, тут варто згадати алгоритми SIFT (Scale-Invariant Feature Transform) і SURF (Speeded Up Robust Features). Вони широко використовувались для виявлення й опису локальних особливостей на зображеннях, таких як лінії, краї ліній, розпізнавання об’єктів та визначення ключових точок. Ці алгоритми виявляли особливості, що відрізняються від навколишнього оточення, і допомагали в розпізнаванні об’єктів незалежно від масштабу, орієнтації та освітлення. Однак ці методи мають свої обмеження, особливо при роботі зі складнішими зображеннями та задачами розпізнавання образів. Це призвело до пошуку нових підходів, зокрема розробки згорткових нейронних мереж.

До того ж CNN використовуються для обробки не тільки двовимірних сигналів, але й одновимірних, чи навіть тривимірних. Наприклад, одновимірними зображеннями виступають сигнали з мікрофона, які згорткові нейронні мережі можуть використовувати для розпізнавання тексту. Прикладом такої моделі може слугувати модель Jasper від Nvidia. А тривимірними зображеннями — відео, де час стає третім виміром:

Приклад згортки одновимірного та тривимірного сигналу.
Джерела: All About Circuits, Math Works

Щоб краще зрозуміти суть CNN, спочатку зануримось у світ класичних алгоритмів обробки зображень. Ми зосередимося на задачі фільтрації зображень, яка є одним з ключових аспектів обробки зображень.

Ми всі користувались фільтрами чи то в редакторах на телефоні, чи то в додатках на кшталт Instagram. Вони використовуються для виділення або, навпаки, приховування певних характеристик зображення. Наприклад, фільтр може допомогти підкреслити контури об’єктів або зробити зображення більш розмитим.

Приклад роботи Canny-фільтрів для виділення контурів та Гаусс-фільтру для розмиття зображення.

Про принцип їх роботи і яку роль вони відіграють у CNN я розповім у наступному розділі. Єдине, що вам поки що потрібно розуміти: згорткові нейронні мережі, про які далі піде мова, у своїй основі мають подібні фільтри (і як правило не один, а одразу набір різних фільтрів). Накладаючись один за одним на зображення, вони дозволяють отримувати різні ознаки, такі як вертикальні лінії, горизонтальні лінії, різні криві тощо.

Приклад того, як виглядають різні фільтри в згорткових нейронних мережах для отримання візуальних ознак або складових частин зображення.
Джерело: Medium

Мотивація розробки CNN та історія виникнення

Згорткові нейронні мережі в мозку

Штучні нейрони, запропоновані в 1943 році вченими Варреном Маккаллоком та Уолтером Піттсом, були натхненні структурою та функціональністю природних нейронів. Вони стали основою для штучних нейронних мереж, які могли виконувати прості задачі класифікації, наприклад, визначення геометричної фігури. Згодом, з появою складніших алгоритмів, як-от згорткові нейронні мережі, штучні нейрони почали використовуватися для розв’язання складніших задач, таких як розпізнавання образів та генерація зображень.

Модель штучного нейрона на базі морфології справжнього нейрона.
Джерело: Medium

Дослідження, яке стало основою для згорткових нейронних мереж, було роботою Губеля та Візеля у 1950-1960-х роках. Ця робота виявила два базових типи візуальних клітин в кортексі мозку кішки: прості та комплексні. Вони також запропонували модель цих клітин для використання в задачах розпізнавання патернів в зображеннях. Ці відкриття стали основою для створення згорткових нейронних мереж.

На цьому зображенні показано експеримент, де кішка бачить різні образи, або стимули. Ці стимули сприймаються простими клітинами, через орієнтацію світла клітини захоплюють маленьку область зображення. Захоплене зображення для складних клітин є чіткішим через виділення (максимізацію) країв образу. Складні клітини сприймають не тільки орієнтацію, але й рух стимулу, і вони передають інформацію про позицію стимулу на зображенні. Гіперскладні клітини, своєю чергою, отримують інформацію про позицію стимулу і її рух до якоїсь кінцевої точки.
Джерело: Medium

Робота Neocognitron, вперше представлена Куніхіко Фукушимою в 1980 році, була натхненна роботою Губеля та Візеля. В цій публікації було запроваджено два базових типи шарів у згорткових нейронних мережах: згортковий шар та шар зменшення розміру. Ці два типи шарів відображають прості та комплексні клітини, які виявили Губель та Візель.

Зокрема, згортковий шар включає нейрони, чиї рецептивні поля покривають ділянку попереднього шару, а шар зменшення розміру містить нейрони, чиї рецептивні поля покривають ділянки попередніх згорткових шарів. Іншими словами, перший шар генерує ознаки, які отримують фільтри, які ми розглянули вище, а другий шар зменшує розмір цих «відфільтрованих» зображень. Таким чином, наведені роботи Губеля та Візеля надали теоретичну основу для створення архітектури згорткових нейронних мереж.

Як бачимо, процес розпізнавання патернів спершу відбувається простішими клітинами з виділенням країв образу. З кожним новим шаром нейронів образ стає все більш цілісним, меншого розміру, але з коректною в ньому позицією образу та його елементів.
Джерело: Neocognitron: A Hierarchical Neural Network Capable of Visual Pattern Recognition

Операція згортки

Чому згорткові нейронні мережі мають саме таку назву, а не «неокогнітронні» мережі за роботою Фукушимо? Відповідь в тому, що описаний процес виявлення країв, з менших локальних ознак зображення до більш загальних, математично описується операцією, що називається згорткою. Виглядає він так:

Операція згортки у двовимірному просторі.

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

Приклад операції згортки, де на вхідне зображення (Input) накладається фільтр (Kernel). Це означає, що їхні значення перемножуються та складаються разом, утворюючи нові значення для наступного зображення (Output).
Джерело: Medium

В прикладі вище, Input — це будь-яке зображення. Для простоти, будемо вважати його чорно-білим. Kernel — це фільтр або ядро, значення з котрого помножуються з такою ж 3×3-частинкою вхідного зображення (Input), і такий добуток відбувається для кожної частинки на кожному рядку та стовпчику. Після добутку числа складаються і їх сума утворює нове зображення, яке ми бачимо в Output. Нижче показана анімована візуалізація того, як цей процес відбувається для всього зображення.

Джерело: Medium

Операція пулінгу в згорткових нейронних мережах

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

На цьому зображенні операція пулінгу виконується фільтром 2×2 з кроком два. Як бачимо, для кожної області, яку обробляє фільтр, обирається найбільше значення як результат роботи пулінг-фільтру.
Джерело: Papers With Code

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

Приклад того, як влаштований шар згорткової нейронної мережі. Спершу зображення Image проходить згортку фільтром Kernel, в результаті чого отримується нове зображення Feature Map. Після операції згортки, до Feature Map зображення застосовується операція Max Pooling, де обирається максимальне значення для кожної кольорової області, що і є результатом роботи згорткового шару, тобтоOutput.
Джерело: Medium

Якщо виходи з одного шару такої мережі передати на вхід до іншої, то ми отримаємо складніші патерни. І шар за шаром, дуже прості лінії та точки перетворяться в повноцінні прототипи об’єктів, які бачить людина.

Приклади того, як згорткові нейронні мережі бачать різні об’єкти в процесі тренування. Знизу розташовані зображення з простих, вище складних і гіперскладних клітин.
Джерело: Medium

Різновиди CNN

Згорткові нейронні мережі поділяють за типом виміру на 1D, 2D та 3D, і за типом задач, які вони вирішують, їх можна розділити на такі:

1D CNN

Обробка сигналів: 1D CNN часто використовуються для обробки часових рядів або аудіосигналів, коли потрібно виявити важливі події або зміни в сигналі.

2D CNN

  • Класифікація зображень: 2D CNN є стандартним вибором для задач класифікації зображень, вони вміють виявляти ключові особливості на зображенні та використовувати їх для визначення класу зображення.
  • Розпізнавання образів: CNN використовуються для розпізнавання конкретних об’єктів на зображеннях, від облич до автомобілів.
  • Сегментація зображень: CNN можуть визначати, до якого сегмента належить кожен піксель зображення, що дозволяє виділяти конкретні об’єкти та області.

3D CNN

Класифікація відео: 3D CNN використовуються для аналізу відеоданих, вони можуть враховувати як просторову, так і часову інформацію.

Поговоримо про кожен тип детальніше.

Одновимірні згорткові мережі

1D CNN — це варіант нейронної мережі, де згортка виконується лише за одним виміром. Тобто вона обробляє вхідні дані як одновимірну послідовність, що робить її ідеальною для аналізу часових рядів або одновимірних сигналів, таких як звукові записи.

На зображені показана послідовність частотних хвиль в аудіозаписі.
Джерело: Gaussian Waves

1D CNN складаються з трьох основних типів шарів:

  • згорткових шарів, які працюють з вхідними даними, що містять набір навчених фільтрів;
  • шарів пулінгу, які зменшують просторовий розмір вхідних даних;
  • повнозв’язних шарів, які виконують класифікацію або регресію на основі вивчених характеристик.

Приклад згортки одновимірного сигналу.
Джерело: Brandon Rohrer

Детекція аномалій в часових рядах

Виробничі процеси часто моніторяться за допомогою сенсорів, які збирають дані в режимі реального часу. Ці дані можуть бути проаналізовані за допомогою 1D CNN для виявлення таких аномалій, як несподівані зміни в температурі, вологості, тиску або інших важливих параметрах. Раннє виявлення таких аномалій допомагає вчасно виявити та усунути проблеми, збільшуючи ефективність виробництва і знижуючи втрати.

Приклад моделі на основі одношарових нейронних мереж для виявлення несправності в моторах на виробництві.
Джерело: Researchgate

Прогнозування в використанні енергії

1D згорткові нейронні мережі можуть бути використані для прогнозування споживання енергії. Наприклад, на основі часових рядів даних про попереднє споживання енергії, 1D CNN можуть виявляти патерни та тенденції, що дозволяють прогнозувати майбутнє споживання. Це може бути корисним для енергетичних компаній для оптимізації виробництва та розподілу енергії. Нижче ви можете побачити приклад того, як виглядають дані для таких задач та архітектуру, яка була використана для розв’язання подібного завдання.

Джерело: MDPI

Розпізнавання мови й аудіоаналіз

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

Архітектура нейронної мережі Jasper для завдань перетворення мовлення в текст (speech-to-text).
Джерело: Nvidia GitHub

Двовимірні згорткові мережі

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

Класифікація зображень

2D CNN є стандартним вибором для задач класифікації зображень. Класифікація зображень — це процес визначення категорії, до якої належить зображення. Наприклад, класифікація зображень може включати визначення, чи зображено на фотографії кішку, собаку, людину або автомобіль. Це важливе завдання в комп’ютерному зорі та машинному навчанні, оскільки моделі, які демонструють найкращі результати тут, цілком ймовірно будуть кращими й в інших завданнях комп’ютерного зору.

Згорткові нейронні мережі (CNN) використовуються для розв’язання завдання класифікації зображень, оскільки вони ефективно виявляють локальні та просторові патерни в даних шляхом застосування відповідних фільтрів. Робота CNN для класифікації зображень складається, як у випадку роботи з сигналами, з двох основних частин:

  1. Етап виявлення ознак. Під час цього етапу, CNN виконує операції згортки, нелінійної активації (наприклад, ReLU) та пулінгу (або субдискретизації) на вхідному зображенні, щоб виявити просторові ієрархічні шаблони, такі як краї, текстури, форми тощо.
  2. Етап класифікації. Після етапу виявлення ознак, CNN використовує повнозв’язні шари для класифікації зображень на основі виявлених ознак. Повнозв’язні шари аналогічні тим, що використовуються у звичайних нейронних мережах.

Варто зазначити, що для ефективної роботи CNN потребують великої кількості даних для тренування і значний обсяг обчислювальних ресурсів.

Приклад архітектури згорткової нейронної мережі, для класифікації зображень, яка складається зі згорткових шарів та повнозв’язних шарів класичних штучних нейронів.
Джерело: LinkedIn

Виявлення об’єктів

Виявлення об’єктів — це процес ідентифікації та визначення місця об’єктів на зображенні. Завдання полягає не лише у визначенні класу об’єкта, але і в отриманні точних координат його локації.

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

Приклад того, як задача класифікації відрізняється від задачі знаходження об’єктів.
Джерело: Ambolt AI

Як приклади архітектур нейронних мереж, які розв’язують ці задачі, можна зазначити YOLO та Faster R-CNN.

YOLO (You Only Look Once). Відрізняється тим, що виконує виявлення об’єктів і класифікацію в один прохід, що робить його надзвичайно швидким. YOLO ділить зображення на сітку і для кожної комірки передбачає рамки обмеження та ймовірності класів.

Приклад принципу роботи YOLO алгоритму.
Джерело: analyticsvidhya.com

Faster R-CNN. Ця модель використовує два модулі — регіональну згорткову нейронну мережу для генерації областей інтересу (Region of Interests, RoIs) та повністю з’єднану мережу для класифікації й уточнення цих областей.

Архітектура нейронної мережі Faster R-CNN.
Джерело: Researchgate

Обидві моделі широко використовуються для вирішення подібних завдань, або є основою для їх розв’язання.

Семантична сегментація зображень

Семантична сегментація — це процес визначення кожного пікселя на зображенні належним до певного класу. Вона не лише визначає клас об’єктів на зображенні, але і точно визначає їх межі на піксельному рівні.

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

Приклад того, як відрізняються між собою задачі сегментації від задач класифікації та детекції.
Джерело: Medium

Як приклади для розв’язання цього завдання розглянемо кілька популярних архітектур, а саме U-Net та FCN.

U-Net. Ця архітектура складається з частин «стискання» (encoder) і «розширення» (decoder), що формують форму U. Encoder використовується для визначення ознак зображення, тоді як decoder використовує ці ознаки для побудови сегментованого зображення, тобто передбачає клас для кожного пікселя на зображенні. Особливістю U-Net є наявність «мостів» між encoder і decoder, що дозволяє передавати контекстну інформацію в decoder.

Згорткові шари в U-Net передають інформацію не тільки для всіх наступних шарів, але й для тих шарів, які знаходяться на протилежному «кінці» моделі. Тобто перший шар передає інформацію останньому, другий — передостанньому тощо.
Джерело: UNI Freiburg

FCN (Fully Convolutional Network). На відміну від традиційних CNN, які використовують повністю з’єднані шари для класифікації, FCN перетворює ці шари в згорткові, що дозволяє обробляти зображення будь-якого розміру і виводити семантичну мапу, яка відповідає розміру вхідного зображення.

FCN в ролі передостаннього шару використовує фільтри, що за розміром зіставні з розміром оригінального зображення.
Джерело: Papers With Code

Тривимірні згорткові мережі

Отже, ми поговорили про одновимірні та двовимірні нейронні мережі, тепер залишилось розглянути тривимірні. Давайте коротко нагадаємо які ми вже пройшли, щоб краще розуміти новий тип згорткових мереж.

Одновимірні згорткові операції використовуються для аналізу послідовностей даних, як-от часові ряди. Вони проходять за даними в одному напрямку, визначаючи ознаки в межах визначеної «віконної» області.

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

Тривимірні згорткові операції використовуються для аналізу тривимірних даних, таких як відео- або 3D-сканування. Вони проходять за даними в трьох напрямках (ширина, висота і глибина), визначаючи ознаки в межах визначеної «кубічної» області.

Джерело: YouTube
Приклади застосування тривимірних нейронних мереж, як правило, дуже специфічні, але в деяких випадках незамінні.

Brain Disease Classification

Тривимірні згорткові нейронні мережі можуть бути використані для аналізу 3D-сканувань головного мозку для класифікації хвороб. Вони можуть визначати ознаки в тривимірному просторі для виявлення аномалій на кшталт пухлин.

Джерело: Nature.com

Action recognition

Розпізнавання дій — це завдання комп’ютерного зору, яке полягає в ідентифікації конкретних дій, які виконуються на відео. Наприклад, це може бути розпізнавання ходьби, бігу, стрибків, плавання, кидання предмета тощо.

3D CNN ідеально підходять для цього, оскільки вони можуть аналізувати відео в часі, враховуючи не тільки просторові, але й часові відмінності між кадрами. Це дозволяє моделям вчити та розпізнавати складні дії, які розташовані в часі.

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

Приклад обмеженої кількості кадрів, що потрапляють до тривимірної нейронної мережі для подальшого передбачення дії, яка відбувається на відео.
Джерело: MDPI

Сучасний стан CNN

Світ штучного інтелекту та глибокого навчання вражає своєю динамікою та новизною, особливо коли мова йде про використання згорткових нейронних мереж. Одним з найбільш захопливих застосувань CNN є генерація зображень, які використовуються для генерації нових, реалістичних зображень на основі навчання з великих наборів даних. Цей процес охоплює все: від створення оригінального вмісту до модифікації наявних зображень.

Генерація зображень

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

Цей процес є ітеративним, і з кожним новим кроком модель вносить все більше деталей, що відображають реальність, в початковий шум. Це надзвичайно потужний інструмент, який відкриває нові можливості для генерації реалістичних зображень та інших видів вмісту. Цей процес відбувається завдяки використанню нейронної мережі на базі U-Net, яка побудована за допомогою двовимірних CNN.

Зображення, яке попадає в дифузну модель, зменшується в розмірах, переходячи в так званий latent space, після чого до нього додається шум певною кількістю кроків. Маючи текстову вказівку, або запит, з блоку «Conditioning» шум видаляється, формуючи матрицю, яка потім, виходячи з latent space, перетворюється в повноцінне зображення.
Джерело: Medium

Найяскравішими представниками цього типу алгоритмів є алгоритми Stable Diffusion, DALL-E та Midjourney. Ці моделі поєднують в собі як текстове представлення інформації, що дозволяють розробити великі мовні моделі (LLMs), так і здатність згорткових шарів знаходити та локалізувати деталі на зображеннях.

Stable Diffusion v3
Джерело: Stability.ai

Midjourney v6
Джерело: Dataconomy

DALL-E 3
Джерело: Improving Image Generation with Better Captions

Генерація відео

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

Процес ітерується, доки модель не згенерує відео, за допомогою тих же CNN на базі U-Net, яке відповідає реальному розподілу даних. Це відкриває нові можливості для створення реалістичних відео з нуля. На момент написання цієї статті (лютий 2024) вийшло багато моделей з такими можливостями, найвідоміші з них — Stable Video, SORA, EMO.

Перші дві просто генерують німі кадри високої якості за текстовими запитами, причому можливості Sora дозволяють робити відео будь-якої розмірності без втрати якості. Приклади Stable Video та SORA.

Модель EMO за вхідні значення приймає людське зображення та аудіо, яке людина повинна озвучити. Приклад — ЕМО.

Мультимодальні моделі

Важливим кроком вперед в генеративних моделях є мультимодальні моделі, які використовують CNN для обробки декількох типів вхідних даних, таких як текст, зображення та звук. Мультимодальні моделі відкривають нові можливості для створення складніших та гнучких систем AI.

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

Приклад застосування мультимодальних моделей для передбачення ціни на нерухомість. Як вхідні до нейронної мережі надають дані в трьох модальностях: зображення нерухомості, текстовий опис нерухомості та структуровану інформацію у таблицях про цю нерухомість.
Джерело: Medium

Мультимодальні моделі можуть включати переведення однієї модальності в іншу, наприклад, переведення тексту в зображення, або використання комбінацій модальностей для покращення розуміння контексту або задачі. Прикладами можуть виступати всі попередні моделі для генерації зображень і відео, які на вхід можуть отримувати не тільки текст, але й зображення. Однією з найцікавіших мультимодальних моделей є ImageBind. Вона здатна перетворювати текстовий запит в зображення, аудіо, відео в текстовий опис, аудіо, теплову карту та карту глибин. Також ця модель пропонує різні комбінації подібних перетворень з однієї модальності в іншу.

Джерело: Meta

Автономні транспортні засоби

Світ автономних транспортних засобів теж не залишився поза впливом CNN. Вони стали ключовим інструментом у розробці систем самокерування для автомобілів, дронів та інших засобів пересування, адже вони можуть розпізнавати та інтерпретувати візуальну інформацію в реальному часі. Вони обробляють тривимірні дані, зокрема відео з камер та інших сенсорів для визначення об’єктів у просторі та часі.

Такі алгоритми включають ідентифікацію інших автомобілів, пішоходів, дорожніх знаків та ліній доріжки. Крім того, 3D-CNN можуть бути використані для аналізу послідовностей відео, що дозволяє визначати динаміку об’єктів і прогнозувати їх майбутню поведінку. Це важливо для безпечного руху автономних транспортних засобів, оскільки вони повинні вміти передбачати дії інших учасників дорожнього руху.

Як бачимо, машина вирішує одночасно декілька завдань, що стосуються комп’ютерного зору. Алгоритм автопілота отримує дані з камер та сенсорів руху (лідарів) і визначає положення авто на смузі, розпізнає 3D-об’єкти, які знаходяться навколо машини. Маючи цю інформацію, система вирішує, яким чином поводитися автопілоту.
Джерело: Researchgate

Висновок

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

Однак, можливості CNN не обмежуються цими кейсами. Вони також можуть бути використані в комбінації з іншими моделями для створення мультимодальних систем, які опрацьовують декілька типів даних одночасно. Це відкриває нові можливості для створення складніших та інтелектуальних систем обробки інформації.

Також варто відзначити, що CNN все ще продовжують розвиватися. Прориви в глибокому навчанні та комп’ютерному зорі, такі як дифузні моделі, надають нові можливості для покращення точності, швидкості та ефективності CNN в обробці зображень.

Ця стаття не є вичерпною, бо існують різні варіації CNN, включаючи depthwise convolution, upscale convolution, convolution in GNNs та інші, які не були розглянуті. Ці підходи — модифікації згорткових нейронних мереж, які оптимізовані для конкретних завдань або типів даних.

Освоєння цих спеціалізованих варіантів CNN може дати можливість розробити ефективніші та точніші моделі для обробки зображень та інших типів даних. Тому, якщо ви зацікавлені в глибокому навчанні та обробці зображень, ці теми можуть бути дуже корисними для подальшого вивчення.

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

👍ПодобаєтьсяСподобалось28
До обраногоВ обраному15
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Буквально нещодавно продививсь курс. Це практично вступна лекція там) Але не більше, об’єм щоб реально зрозуміти от такий десь як там треба, ще 20 таких.

Круті матеріали, молодець

Якість викладення, глибина зануреності та шир огляду статті вражають. Якщо вельмишановний пан автор візьмуть на себе працю по написанню череди статей штибу «Як написати нейромережу з нічого» або «Як написати LLM з нічого», то це створе базу для суттєвого пришвидшення нарощування конкурентоспроможності української AI спільноти.

Дуже дякую за таку оцінку і пропозиції, це безумовно цікаві топіки, особливо в межах українського АІ. Доречі, в наступній частині буде детальний розгляд, по-частинках, згорткових нейроних мереж, як з точки зору логіки/математики, так і з точки зору реалізації на Python. Вона вже повинна вийти незабаром.)

«Як написати нейромережу з нічого» або «Як написати LLM з нічого»

Є дуже цікава серія лекцій, яка якраз розкриває ці теми: www.youtube.com/@AndrejKarpathy

Вдалось розробити алгоритм на GPTs який дозволяє добиватись ще складнішої взаємодії через аналіз фото і трансформаційного поєднання. Сенс полягає в тому що через змішування можна отримувати новий набір даних. А це вже відповідає рівню OpenAI такий підхід. Більш того, в мому випадку система ще намагається імітувати процес творчого мислення з обмеженого набору даних, це стало для мене справжнім відкриттям. Тут дуже потужно використовується комп’ютерний зір для отримання таких результатів

Дуже крута стаття, давайте ще!

Будуть ще і дуже скоро :)

Як саме відбувається навчання моделей?
Це треба підготувати мільйон картинок на яких людина позначить контури «собаки» , закинути ці всі картинки в нейронку і вона буде знати де собака на іншому зображенні?
Вам доводилося робити таке навчання? Чи ви лише з вже готовими навченими нейронками працюєте?

Добрий день. Навчання відбувається по-різному в залежності від задачі. В прикладі, який ви навели, це задача сегментації і нейронки «з нуля» приблизно так і тренуються. На практиці, коли потрібно розпізнати клас об’єктів якого не було на тренуванні, використовуються готові рішення для їхнього дотренування(transfer learning). І коли вам потрібно сегментувати собак, наприклад, чього модель раніше не робила, то через досвід моделі розпізнавати інші об’єкти вам вже не потрібно заготовлювати мільйони зображень собак а достатьно декількох тисяч, щоб нейромережа почала виконувати потрібну вам задачу. Це ефективно по часу і по витратам ресурсів. І такий досвід в мене був, так

Взагалі-то, в AI науці transfer learning це трошечки інше
У випадку з CNN навіть не так важливо, на чому саме тренувалась мережа, скільки об’єми датасетів. Якщо це великі мережі треновані на мільйонах картинок, то там матеріалу достатньо, щоб дотреновувати під будь що. І чисто технічно фото собак потрібно навіть не тисяча, а пару сотень, які препроцесінгом, аугментаціє та штічною генерацією можна догнати до тисячі, і цього вистачить. Звісно, в дотренуванні є свої мінуси.

Так, щодо термінів то transfer learning це меньш доречний термін для мого прикладу, fine tuning більш доречний і його я мав на увазі. Дякую за зауваження

Підписатись на коментарі