Начинает свою работу страница курса-факультатива "Компьютерное зрение".

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

Место и время проведения 

Физический факультет (1-ый учебный корпус), к. 306, каждую неделю по пятницам, с 17.30 до 19.30.

Темы лекционных занятий
  1. Введение и обзор материала курса (презентация .pptx). Tiny images - "крошки картинки" (ссылка). Awesome Terminator 2 Scenes - "сцены из потрясающего фильма Терминатор 2" (ссылка). Microsoft Kinect - "гаджет для Xbox 360" (ссылка). Камера Lytro и рефокусировка после съемки (ссылка). Лекции по истории фотографии от Андрея Пелюховского смотрим здесь.
  2. Формирование изображений. Камера и ее основные характеристики  (презентация .pptx)Awareness Test - "тест на внимательность" (ссылка). Дополнительные материалы из курса Irfan Essa "Computational Photography" на www.coursera.org можно скачать здесь. Что такое дифракция света? Вспоминаем курс "Оптика" (ссылка).
  3. Обработка цифровых изображений в среде Matlab (презентация .pptx). Seam Carving Algorithm - "контурное вырезание по шву" (описаниепрезентация .pptxпример реализации .rar). Оригинальную статью и видеоролик по данному алгоритму с конференции SIGGRAPH 2007 можно найти здесь и здесь  соответственно. По аналогичной тематике интересной для прочтения может быть следующая работа (ссылка). В англоязычных статьях информацию по алгоритмам реcайзинга изображений с учетом его содержимого следует искать по ключевым словам: Seam CarvingImage RetargetingContent-Aware Image ResizingContent-Aware ScalingLiquid ResizingLiquid Rescaling. Примеры реализации простейших алгоритмов компьютерного зрения в среде Matlab (примеры реализации .rar).
  4. Фильтрация и улучшение изображений. Часть 1 (презентация .pptx). Hybrid Images - "гибридные изображения" (описание). Дополнительную информацию про Bilateral Filter (билатеральный фильтр) и Non-Local Means Algorithm (алгоритм вычисления нелокальных средних) можно найти здесь и здесь соответственно.
  5. Фильтрация и улучшение изображений. Часть 2 (презентация .pptx). Гармонические базисные функция не являются единственными для представления цифровых сигналов в области трансформант. Читаем для обзора следующую статью (ссылка). Возможный интерес могут вызвать подходы построения базисных функций адаптивных по отношению к сигналу. Читаем, например, про анализ главных компонент (ссылка на лекцию №7 из курса Волохов В. "Методы машинного обучения", 2013. Лаборатория цифровые цепи и сигналы при физическом факультете ЯрГУ).
  6. Оценка качества цифровых изображений (дополнительная лекция, презентация .pptxm-файлы .rar). Описание и Matlab-реализацию Structural SIMilarity (SSIM) index - коэффициент структурного подобия (КСП) можно найти здесь. Рекомендации ITU-R BT.500-11 Methodology for the Subjective Assessment of the Quality of Television Pictures - методология для субъективной оценки качества телевизионных изображений (ссылка). Про субъективную оценку качества можно также почитать здесь.
  7. Цвет и обработка цветных изображений (презентация .pptx). Awareness Test - "тест на внимательность" (ссылка). Tiny images - "крошки картинки" (ссылка). Смотрим визуальные иллюзии на Planet Perplex (ссылка). Про трекинг глаз читаем здесь. Так же интересно почитать следующую книгу Yarbus Alfred L. Eye Movements and Vision. Plenum Press, 1967 (ссылка). Пример законченного кода для самостоятельного исследования по методу K-средних, а также анализу главных компонент из курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка).
  8. Анализ бинарных изображений. Первое понятие о распознавании объектов (презентация .pptx).
  9. Алгоритмические и математические принципы систем автоматического распознавания номерных знаков (ссылкапрезентация .pptx). Интересный алгоритм детектирования номерных знаков (ссылка). Пример реализации простого алгоритма детектирования номерных знаков в среде Matlab (ссылка).
  10. Сегментация изображений. Часть 1 (презентация .pptx). Несколько интересных статей по теме лекции можно найти в источнике [18] (ссылка 1ссылка 2ссылка 3). Неплохая обзорная видеолекция на тему сегментации изображений и видео может быть найдена в online курсе Guillermo Sapiro "Image and video processing: From Mars to Hollywood with a stop at the hospital" (ссылка). Смотреть нужно лекцию №5, для просмотра нужна регистрация на сайте www.coursera.org. Пример законченного кода для самостоятельного исследования по методу K-средних, а также анализу главных компонент из курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка).
  11. Сегментация изображений. Часть 2 (презентация .pptx). Обзорная видеолекция на тему выделения границ и детектирования линий на изображениях может быть найдена в online курсе Guillermo Sapiro "Image and video processing: From Mars to Hollywood with a stop at the hospital" (ссылка). Смотреть нужно лекцию №5, для просмотра нужна регистрация на сайте www.coursera.org. Про детектор Кэнни читаем оригинальную статью здесь. Про детектор линейных сегментов можно найти информацию на сайте научного журнала IPOL (Image Processing On Line) по обработке и анализу изображений (ссылка). Пример заполнения аккумулятора при выполнении преобразования Хафа можно найти здесь. Примеры Matlab-кодов, демонстрирующих работу детектора Кэнни и преобразования Хафа для детектирования прямых и окружностей, можно скачать здесь. Предлагаемые коды используют функции открытой библиотеки по компьютерному зрению OpenCV (ссылка). Для подключения OpenCV в Matlab необходимо ознакомиться с источником [27] в дополнительных материалах ниже.
  12. Машинное обучение. Часть 1 (презентация .pptx). Про автономный вертолет читаем здесь. Законченная реализация алгоритма линейной регрессии с одной и несколькими переменными из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). С оригинальным Стэнфордским курсом по машинному обучению Andrew Ng можно ознакомиться здесь или здесь. Неплохо написанную книжку по машинному обучению Stephen Marsland "Machine Learning: An Algorithmic Perspective" можно скачать здесь. Эта книга хорошо подходит для понимания базовых концепций в данной области. В ней есть примеры реализации алгоритмов машинного обучения на языке Python. Рекомендую ознакомиться с книжкой написанной Александром Борисовичем Мерковым (к.т.н., сотрудник Института системного анализа РАН) "Введение в методы статистического обучения" (ссылка). Книга написана просто, доступно и дает хороший обзор современных методов распознавания. Также рекомендуется ознакомиться с отечественным профессиональным информационно-аналитическим ресурсом, который посвящен машинному обучению, распознаванию образов и интеллектуальному анализу данных (ссылка).
  13. Машинное обучение. Часть 2 (презентация .pptx). Законченная реализация алгоритма логистической регрессии с регуляризацией и без нее из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка).
  14. Машинное обучение. Часть 3 (презентация .pptx). Законченная реализация алгоритма логистической регрессии с регуляризацией и нейронной сети прямого распространения для решения задачи многоклассовой классификации на базе данных рукописных цифр MNIST из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). Обращаю внимание на то, что в предложенной реализации по умолчанию используется только 5000 тренировочных примеров (вместо изначальных 60000) из базы данных MNIST, а также на то, что тестирование рассматриваемых алгоритмов осуществляется на примерах, которые использовались на этапе обучения. Поэтому сравнить полученные результаты с уже имеющимися на аналогичной базе данных (ссылка) нельзя! Несколько баз данных для обучение, в том числе MNIST (в удобном, родном для Matlab формате mat) можно найти здесь. Интересно почитать следующую статью про сверточную нейронную сеть LeNet 5 (ссылка).
Темы практических занятий
  1. Введение в Matlab. Материалы практического занятия от 21.11.14 (ссылка). Замечание. Обратите внимание на использование Matlab-команды cd, которая позволяет изменять текущую директорию, а также эффективно прописать путь до папки с изображениями. Напоминаю, что для нормальной работы с файлами в Matlab вам необходимо либо все файлы скинуть в одну текущую директорию (подход для дилетантов :)),  либо произвести сортировку файлов в папках и прописать пути до этих папок, используя команду addpath.
  2. Реализация операции двумерной свертки в Matlab. Материалы практического занятия от 28.11.14 (ссылка). Замечание. В коде, который был написан на занятии действительно содержал небольшую ошибка! Это было видно из последнего результата, в котором расширение границы с краю происходило с точностью до наоборот. Ошибка была в строчках 21 и 22 (см. выложенный код). В строчке 21 нужно было заменить n_r на n_c, а в строчке 22 - наоборот. Обращаю ваше внимание на то, что написанный и запускающийся код еще не есть успех! Обязательно придумывайте систему тестов, которая позволит выявить проблемные участки в коде, в первую очередь смысловые! В приложенных кодах обратите внимание на оформление функции в Matlab (см. my_conv2.m) и ее вызов из файла problem_2_2.m.
  3. Реализация алгоритма цифровой хроматографии в Matlab. Материалы практического занятия от 19.12.14 (ссылка).
  4. Реализация простейших алгоритмов анализа бинарных изображений в среде Matlab. Материалы практического занятия от 27.02.15 (ссылка).
  5. Смешивание изображений. Материалы практического занятия от (13, 20, 27).03.15 (ссылка). Дополнительные материалы (для лучшего понимания процесса смешивания) из курса Irfan Essa "Computational Photography" на www.coursera.org можно скачать здесь.
Практические задания
  1. Фильтрация изображений (описание .pdfизображения .rar). Сроки решения произвольные.
  2. Цифровая хроматография изображений Российской Империи, полученных С.М. Прокудиным-Горским (описание .pdfизображения .rar). Сроки решения произвольные.
  3. Смешивание изображений (описание .rarизображения .rar). Сроки решения произвольные.
  4. Простой алгоритм распознавания номерных знаков (описаниетестовые изображения .rarизображения эталонов цифр .rar). Сроки решения произвольные.
Тестовые задания
  1. Тест № 1 (ссылка). Сроки решения произвольные.
  2. Тест № 2 (ссылка). Сроки решения произвольные.
  3. Тест № 3 (ссылка). Сроки решения произвольные.
  4. Тест № 4 (ссылка). Сроки решения произвольные.
  5. Тест № 5 (ссылка). Сроки решения произвольные.
  6. Тест № 6 (ссылка). Сроки решения произвольные.
  7. Тест № 7 (ссылка). Сроки решения произвольные.
  8. Тест № 8 (ссылка). Сроки решения произвольные.
  9. Тест № 9 (ссылка). Сроки решения произвольные.
  10. Тест № 10 (ссылка). Сроки решения произвольные.
Дополнительные материалы
  1. Szelicki R. Computer Vision: Algorithms and Applications. Springer, 2010 (ссылка).
  2. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer, 2009 (ссылка).
  3. Конушин А. и др. Курс "Введение в компьютерное зрение", 2010. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  4. Конушин А. и др. Курс "Введение в компьютерное зрение", 2011. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  5. Конушин А. и др. Курс "Введение в компьютерное зрение", 2012. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  6. Конушин А. и др. Курс "Введение в компьютерное зрение", 2013. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  7. Конушин А. и др. Курс "Доп. главы компьютерного зрения", 2013. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  8. Kemelmacher I., Rao R., Seitz S., Shapiro L. Computer Vision (CSE 455), 2003 - 2010. University of Washington (ссылка).
  9. Lazebnik S. Computer Vision (COMP 776), 2008 - 2011. The University of North Carolina at Chapel Hill (ссылка).
  10. Thrun S. Computer Vision / Introduction to Computer Vision (CS 223b), 2004 - 2009. Stanford University (ссылка).
  11. Darrell T. Computer Vision (CS 280), 2009. University of California, Berkeley (ссылка).
  12. Duraiswami R. Fundamentals of Computer Vision (CMSC 828d), 2000 / Computer Vision (CMSC 426), 2005. UMIACS (ссылка). 
  13. Torralba A. Advances in Computer Vision (6.869), 2010. Massachusetts Institute of Technology (ссылка).
  14. Ng A. Machine Learning (CS 229), 2009. Stanford University (ссылка 1ссылка 2).
  15. Конушин A. Семантическая классификация изображений (видеолекции), 2010. Сomputer Science клуб при ПОМИ РАН (ссылка).
  16. Ерухимов В. Компьютерное зрение и библиотека OpenCV (видеолекции), 2011. Сomputer Science клуб при ПОМИ РАН (ссылка).
  17. Конушин А. Курсы "Введение в компьютерное зрение" и "Доп. главы компьютерного зрения" (видеолекции), 2011. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  18. Сетевой журнал "Компьютерная графика и мультимедиа" (ссылка).
  19. Efros A. Learning-Based Methods in Vision (16-721), 2009. Carnegie Mellon University (ссылка).
  20. Efros A. Computational Photography (15-463 / 15-862), 2010. Carnegie Mellon University (ссылка).
  21. Сайт научного журнала IPOL (Image Processing On Line) по обработке и анализу изображений (ссылка).
  22. Pattern Analysis, Statistical Modeling and Computational Learning Visual Object Classes Challenge (ссылка).
  23. Сайт Российской ассоциации искусственного интеллекта (ссылка).
  24. Конушин А. и др. Курс "Введение в компьютерное зрение", 2015. Лаборатория компьютерной графики при ВМК МГУ (ссылка 1ссылка 2).
  25. Васильева Н. Анализ изображений и видео (видеолекции), 2012. Сomputer Science Center (ссылка).
  26. Подключение открытой библиотеки по компьютерному зрению VLFeat в Matlab (ссылка).
  27. Подключение открытой библиотеки по компьютерному зрению OpenCV в Matlab (ссылка).
Online курсы

Информация по наиболее интересным online курсам приведена в первой презентации. Напоминаю, что с 2011 года ряд западных университетов начал практику создания online курсов (www.coursera.orgwww.udacity.org) по различным дисциплинам. Например, "Искусственный интеллект", "Машинное обучение", "Компьютерное зрение" и т.д. Для ознакомления с материалами курсов (видеолекциями, практическими заданиями и т.д.) нужна регистрация! Дополнительно необходимо отметить, что появились online лекции по курсу "Машинное обучение", читаемые сотрудниками ШАД (Школы анализа данных Яндекс). Ссылка на курс здесь.

Руководитель курса: доц. каф. ДЭС Волохов В.А.