Практичний курс про те, як застосовувати класичні методи machine learning та deep learning для розв’язання завдань комп’ютерного зору: від балансу кольору на зображенні — до тренування згорткових нейронних мереж для розпізнавання об’єктів у відео.
*мова курсу - eng
Після курсу ви систематизуєте знання у сфері machine learning та deep learning. Розберетеся в сучасних підходах до детекції об’єктів, здобудете досвід у розв’язанні задач класифікації та сегментації, навчитеся будувати та тренувати нейромережі.
Курс дасть overview завдань computer vision та основних інструментів, які необхідні для їхніх розв’язань. Ви навчитеся обробляти зображення та відео, розробляти та запускати моделі за допомогою TensorFlow.
Завдання спеціаліста з комп’ютерного зору — навчити алгоритми впевнено орієнтуватися в навколишньому світі та звести до мінімуму системні баги. Завдання robot_dreams — допомогти розібратися в інструментах та підходах, які застосовують для реалізації CV-проєктів.
Ми почнемо з піксельних операцій та створення програм для обробки цифрових фото. Потім навчимося проводити базові маніпуляції із зображенням та відео: фільтрація та виділення кордонів, кодування та компресія, класифікація, детекція, трекінг та сегментація. А після — будуватимемо і тренуватимемо нейронні мережі.
Навчитеся розв’язувати базові завдання комп’ютерного зору: фільтрація, виділення кордонів, кодування, компресія, класифікація, детекція, трекінг та сегментація. Будуватимете і тренуватимете нейромережі.
Навчання дасть вам необхідні компетенції для відгуку на вакансію Computer Vision Engineer та відкриє нові горизонти.
Ознайомитеся із завданнями, які допомагає вирішити Computer Vision. Отримайте загальну інформацію про те, як працює зорова система. Дізнаєтесь, які є колірні простори. Встановите бібліотеки NymPy, Matplotlib та OpenCV. Навчитеся виконувати прості операції за допомогою цих бібліотек.
Дізнаєтеся, що таке операції на рівні пікселів, і навчитеся читати гістограми. Створите найпростішу програму обробки цифрових зображень, наприклад, програму балансу білого кольору.
Вивчите принцип роботи згортки. Навчитеся імплементувати фільтрацію та маніпулювати зображенням, використовуючи різні типи фільтрації.
Дізнаєтеся, у чому сенс градієнтів зображень. Навчитеся імплементувати фільтри виділення меж. Опануєте алгоритм виділення контурів та фільтри в Canny.
Вивчите різницю між форматами зображень [raw, png, jpeg]. Розберете різницю між форматами H264 та H265. Дізнаєтеся, як працює стиснення із втратами, і навчитеся працювати із зображеннями в перетвореній формі. Спробуєте покращити якість зображення за допомогою інтелектуального квантування.
Дізнаєтеся, що таке візуальні ознаки, та ознайомитеся з типовими завданнями, які можна розв’язати з їхньою допомогою. Навчитеся виділяти кути за допомогою детектора Харріса. Вивчите алгоритми виявлення та опису ознак. Навчитеся застосовувати масштабно-інваріантну трансформацію ознак (SIFT).
Ознайомитеся із завданнями, які розв’язує image matching. Вивчите принцип афінного перетворення та однорідних координат. Навчитеся використовувати гомографію для зображень. Розробите ректифікатор фотографій документів.
Ознайомитеся з основними принципами роботи з моделями даних. Розберете різницю між класичною обробкою даних та машинним навчанням. Навчитеся будувати прості моделі з нуля та проводити їхню оптимізацію. Визначите різницю між machine learning та deep learning.
Визначите, чим візуальні ознаки для детекції осіб відрізняються від інших об’єктів. Ознайомитеся з методом детекції Віоли-Джонса та методом бустингу. Навчитеся працювати із зображеннями, які містять обличчя, та здійснювати детекцію за допомогою OpenCV.
Вивчите основи роботи трекінгу та принципи роботи з цифровим відео. Розберете різницю між трекінгом та детекцією на практиці, реалізовуючи реальне робоче завдання.
Вивчите принципи роботи нейронних мереж. Отримаєте overview відкритих бібліотек TensorFlow та Keras. Навчитеся будувати та тренувати прості нейронні мережі. Спробуєте покращити модель нейронної мережі для класичної проблеми house pricing.
Дізнаєтеся, як прискорити тренування нейронних мереж у кілька разів за допомогою GPU, та ознайомитеся з іншими перевагами графічного процесора. Ознайомитеся з хмарним сервісом Google Colaboratory та навчитеся будувати та тренувати моделі в ньому. Дізнаєтесь, навіщо проводити інспекцію баз даних.
Вивчите принципи роботи згорткових нейронних мереж. Вивчите операції згортки та пулінгу. Навчитеся будувати та тренувати згорткові нейронні мережі.
Ознайомитеся з проблемою перенавчання [overfitting]. Навчитеся розпізнавати проблеми в процесі навчання та застосовувати data augmentation у процесі тренування.
Навчитеся розв’язувати задачу сегментації цифрових зображень. Вивчите принцип bottleneck. Побудуєте простий автоматичний енкодер для очищення зображень від шуму.
Вивчите концепт детекції та bounding box. Навчитеся розпізнавати об’єкти в режимі реального часу, використовуючи принцип YOLO [You Only Look Once]. Ознайомитеся з алгоритмом NMS [Non-Maximum Suppression] та іншими архітектурами мереж для розпізнавання об’єктів [SSD, TinyYOLO, SqueezeDet]. Застосуєте YOLO, щоби розпізнати об’єкти на власному відео.
Ознайомитеся з популярними моделями згорткових нейронних мереж. Вивчите процес fine tuning та навчитеся працювати з model zoo. Дізнаєтеся, які проблеми виникають при тренуванні згорткових нейронних мереж. Отримаєте рецепт успішного розв’язання проблем із використанням нейронних мереж.