суббота, 18 марта 2017 г.

Начинает свою работу страница курса "Прикладная информатика: машинное обучение". Курс проводится при поддержке компании Akvelon.

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

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

Лаборатория "Дискретная и вычислительная геометрия" им. Б.Н. Делоне (ул. Комсомольская, д. 3). Занятия проводятся два раза в неделю: среда (с 18.30 до 20.30) и суббота (с 12.00 до 15.00).

Что сделать до следующего занятия?
  1. До 22.03.2017 (среда) необходимо установить программное обеспечение указанное в лекции 1.
  2. До 25.03.2017 (суббота) изучить материалы лекции № 2. Сдать решение тестового задания № 1.
  3. До 29.03.2017 (среда) сдать отчет по практическому заданию № 1.
  4. До 01.04.2017 (суббота) изучить материалы лекции № 3.
  5. До 05.04.2017 (среда) сдать отчет по практическому заданию № 2.
  6. До 08.04.2017 (суббота) изучить материалы лекции № 4. Сдать решение тестового задания № 2.
  7. До 12.04.2017 (среда) сдать отчет по практическому заданию № 3.
  8. До 15.04.2017 (суббота) изучить материалы лекции № 5.
  9. До 19.04.2017 (среда) сдать отчет по практическому заданию № 4.
  10. До 22.04.2017 (суббота) изучить материалы лекции № 6. Сдать решение тестового задания № 3.
  11. До 26.04.2017 (среда) сдать отчет по практическому заданию № 5.
  12. До 29.04.2017 (суббота) изучить материалы лекции № 7.
  13. До 03.04.2017 (среда) сдать отчет по практическому заданию № 6.
  14. До 06.05.2017 (суббота) изучить материалы лекций № 8 и № 9. Сдать решение тестового задания № 4.
  15. До 10.05.2017 (среда) сдать отчет по практическому заданию № 7.
  16. До 15.05.2017 (понедельник) заполнить и выслать форму обратной связи по курсу (ссылка).
Результаты проверки практических и тестовых заданий можно узнать здесь.

Темы лекционных занятий
  1. Введение и обзор материала курса. Линейная регрессия с одной переменной (презентация .pptx). Python 3 скачиваем здесь. Ссылки на библиотеки NumPySciPyMatplotlib и Scikit-Learn. Опционально могут быть установлены библиотеки OpenCV, Pandas и Scikit-Image. Возможной сборкой пакетов для работы с Python может служить Anaconda. Коды можно набивать в текстовом редакторе Siblime Text 3, далее выполняя их через командную строку. Как установить библиотеку OpenCV под Python 3 можно прочитать здесь. Полезным введением в язык программирования Python является следующий online-курс, а также следующий источник. Для улучшения понимания внутренней работы Python рекомендуется обратиться к Python Tutor.
  2. Линейная регрессия со множеством переменных. Классификация. Логистическая регрессия (презентация .pptx).
  3. Искусственные нейронные сети (представление) (презентация .pptx). Для работы со сверточными нейронными сетям, возможно, окажутся полезными следующие библиотеки: OpenCV, Theano, TensorFlow и Caffe.
  4. Искусственные нейронные сети (обучение) (презентация .pptx).
  5. Рекомендации по применению алгоритмов машинного обучения. Построение систем машинного обучения. Оптическое распознавание символов. Данные, данные, данные ... (презентация .pptx). Дополнительно рекомендуется ознакомиться с лекцией "Метрики качества классификации" курса "Введение в машинное обучение" от Высшей школы экономики. Ссылка на презентации из данной лекции находится здесь.
  6. Кластеризация (презентация .pptx).
  7. Анализ главных компонент (презентация .pptx). Копию оригинальной статьи К. Пирсона 1901 г., в которой было предложено описание анализа главных компонент может быть найдена здесьСсылка на статью Turk M., Pentland А. Eigenfaces for Recognition // Journal of Cognitive neuroscience. 1991. V. 3, №1. P. 73–86 может быть найдена здесь. Опционально, про применение анализа главных компонент в задаче шумоподавления на цифровых изображениях можно узнать из следующего источника. В лекции №29 курса Strang G. Linear Algebra (18.06, 1999, MIT) можно ознакомиться с темой, посвященной SVD - Singular Value Decomposition (ссылка).
  8. Детектирование лиц на основе алгоритма Виола / Джонса (презентация .pptx). Ссылка на статью Viola P., Jones M. Robust Real-time Object Detection // Int. J. Computer Vision. 2004. V. 57, 2. P. 137–154 (ссылка). Видеоролики, демонстрирующие использование алгоритма Виола / Джонса для управления мобильным роботом (ссылка 1ссылка 2). Демонстрационный программный код, показывающий работу детектора Виола / Джонса можно найти здесь. Для запуска кода потребуется установить библиотеку OpenCV по следующей ссылке.
  9. Машинное обучение на больших базах данных (презентация .pptx).
  10. Введение в глубокое обучение. Сверточные нейронные сети (презентация .pptx). Демонстрационные программные коды, показывающие работу сверточной нейронной сети можно найти здесь.
Практические задания
  1. Линейная регрессия (описание .rar). Подсказка для выполнения практического задания (ссылка). Срок сдачи задания - 29.03.2017. Решение практического задания №1 (ссылка).
  2. Логистическая регрессия (описание .rar). Срок сдачи задания - 05.04.2017Решение практического задания №2 (ссылка).
  3. Многоклассовая классификация и нейронные сети (описание .rar). Срок сдачи задания - 12.04.2017Решение практического задания №3 (ссылка).
  4. Обучение нейронных сетей (описание .rar). Срок сдачи задания - 19.04.2017Решение практического задания №4 (ссылка).
  5. Регуляризованная линейная регрессия. Недообучение и переобучение (описание .rar). Срок сдачи задания - 26.04.2017Решение практического задания №5 (ссылка).
  6. Кластеризация с использованием алгоритма K-средних (описание .rar). Срок сдачи задания - 03.05.2017Решение практического задания №6 (ссылка).
  7. Анализ главных компонент (описание .rar). Срок сдачи задания - 10.05.2017Решение практического задания №7 (ссылка).
  8. Итоговые проекты для защиты (презентация .pptx). Срок сдачи задания - 17.05.2017.
Тестовые задания
  1. Тест № 1 (ссылка). Срок сдачи решения - 25.03.2017.
  2. Тест № 2 (ссылка). Срок сдачи решения - 08.04.2017.
  3. Тест № 3 (ссылка). Срок сдачи решения - 22.04.2017.
  4. Тест № 4 (ссылка). Срок сдачи решения - 06.05.2017.
Дополнительные материалы
  1. Ng A. Machine Learning (CS 229), 2009. Stanford University (ссылка 1ссылка 2).
  2. Ng A. Unsupervised Feature Learning and Deep Learning. Stanford University (ссылка 1ссылка 2).
  3. Ng A. Machine Learning (Open Classroom). Stanford University (ссылка).
  4. Сайт посвященный новой области машинного обучения - глубокому обучению (Deep Learning). Глубокое обучение введено с целью смещения машинного обучения к одной из его первоначальных целей - искусственному интеллекту (Artificial Intelligence) (ссылка 1ссылка 2).
  5. Goodfellow I., Bengio Y., Courville A. Deep Learning. MIT Press, 2016 (ссылка).
  6. Li F.-F. et al. CS231n: Convolutional Neural Networks for Visual Recognition, 2017. Stanford University (ссылка).
  7. TensorFlow and Deep Learning, without PhD. Google Codelabs (ссылка).
  8. Воронцов К.В. Машинное обучение, 2012/2013. ШАД Яндекс (ссылка).
  9. Профессиональный информационно-аналитический ресурс, который затрагивает машинное обучение, а также распознавание образов и интеллектуальный анализ данных (ссылка).
  10. Анохин Н., Гулин В., Нестеров П. Data Mining. Проект Техносфера (ссылка).
  11. Szelicki R. Computer Vision: Algorithms and Applications. Springer, 2010 (ссылка).
  12. Конушин A. Семантическая классификация изображений (видеолекции), 2010. Сomputer Science клуб при ПОМИ РАН (ссылка).
  13. Ерухимов В. Компьютерное зрение и библиотека OpenCV (видеолекции), 2011. Сomputer Science клуб при ПОМИ РАН (ссылка).
  14. Конушин А. Курсы "Введение в компьютерное зрение" и "Доп. главы компьютерного зрения" (видеолекции), 2011. Лаборатория компьютерной графики при ВМК МГУ (ссылка).
  15. Efros A. Learning-Based Methods in Vision (16-721), 2009. Carnegie Mellon University (ссылка).
  16. Kemelmacher I., Rao R., Seitz S., Shapiro L. Computer Vision (CSE 455), 2003 - 2017. University of Washington (ссылка).
  17. Lazebnik S. Computer Vision (COMP 776), 2016. The University of North Carolina at Chapel Hill (ссылка).
  18. Thrun S. Computer Vision / Introduction to Computer Vision (CS 223b), 2004 - 2009. Stanford University (ссылка).
Online курсы

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

Руководитель курса: доцент кафедры инфокоммуникаций и радиофизики Волохов В.А.

вторник, 21 февраля 2017 г.

Материалы по лабораторным занятиям курса "Теория электрических цепей (Часть 2)" будут выкладываться в рамках данного поста. Для выполнения лабораторных работ допускается использовать следующие пакеты MATLABOctaveFreeMat или SciLab. Все указанные пакеты имеют схожий листинг. Последние три являются бесплатными! Перед выполнением лабораторных работ настоятельно рекомендуется ознакомиться со  следующими материалами!

Темы лабораторных работ
  1. Спектры цифровых сигналов (описание .pdf). Первая лабораторная работа выполняется в рамках учебного пособия Брюханов Ю.А. Лабораторный практикум по курсу "Цифровые цепи и сигналы", стр. 18-43. Пример проигрывания сигнала с разной частотой дискретизации (ссылка).
  2. Исследование цифровых цепей первого порядка (описание .pdf). Вторая лабораторная работа выполняется в рамках учебного пособия Брюханов Ю.А. Лабораторный практикум по курсу "Цифровые цепи и сигналы", стр. 44-68.
  3. Исследование цифровых цепей второго порядка (описание .pdf). Третья лабораторная работа выполняется в рамках учебного пособия Брюханов Ю.А. Лабораторный практикум по курсу "Цифровые цепи и сигналы", стр. 69-105. При выполнении лабораторной работы разрешается выбрать одну из двух цепей для составления отчета (либо нерекурсивную, либо рекурсивную)!
  4. Дискретизация сигналов (описание .pdf).
  5. Квантование сигналов (описание .pdf).
  6. Многоскоростная цифровая обработка сигналов (описание .pdfm-файлы .rar).
С уважением, Владимир Волохов.

среда, 8 февраля 2017 г.

Начинает свою работу страница курса-факультатива "Системы технического зрения".

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

Обращаю ваше внимание на то, что данный курс является прямым продолжением дисциплины "Цифровая обработка изображений" 2016 (ссылка)!

Темы лекционных занятий
  1. Введение и обзор материала курса (презентация .pptx). Tiny images - "крошки картинки" (ссылка). "Терминатор 2: Судный день. Как снимали фильм" (ссылка). Microsoft Kinect - "гаджет для Xbox 360" (ссылка). Камера Lytro и рефокусировка после съемки (ссылка). Лекции по истории фотографии от Андрея Пелюховского смотрим здесь.
  2. Анализ бинарных изображений. Первое понятие о распознавании объектов (презентация .pptx).
  3. Алгоритмические и математические принципы систем автоматического распознавания номерных знаков (ссылкапрезентация .pptx). Интересный алгоритм детектирования номерных знаков (ссылка). Пример реализации простого алгоритма детектирования номерных знаков в среде Matlab (ссылка).
  4. Сегментация изображений. Часть 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 (ссылка).
  5. Сегментация изображений. Часть 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] в дополнительных материалах ниже.
  6. Машинное обучение. Часть 1 (презентация .pptx). Про автономный вертолет читаем здесь. Законченная реализация алгоритма линейной регрессии с одной и несколькими переменными из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). С оригинальным Стэнфордским курсом по машинному обучению Andrew Ng можно ознакомиться здесь или здесь. Неплохо написанную книжку по машинному обучению Stephen Marsland "Machine Learning: An Algorithmic Perspective" можно скачать здесь. Эта книга хорошо подходит для понимания базовых концепций в данной области. В ней есть примеры реализации алгоритмов машинного обучения на языке Python. Рекомендую ознакомиться с книжкой, написанной Александром Борисовичем Мерковым (к.т.н., сотрудник Института системного анализа РАН) "Введение в методы статистического обучения" (ссылка). Книга написана просто, доступно и дает хороший обзор современных методов распознавания. Так же рекомендуется ознакомиться с отечественным профессиональным информационно-аналитическим ресурсом, который посвящен машинному обучению, распознаванию образов и интеллектуальному анализу данных (ссылка).
  7. Машинное обучение. Часть 2 (презентация .pptx). Законченная реализация алгоритма логистической регрессии с регуляризацией и без нее из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка).
  8. Машинное обучение. Часть 3 (презентация .pptx). Законченная реализация алгоритма логистической регрессии с регуляризацией и нейронной сети прямого распространения для решения задачи многоклассовой классификации на базе данных рукописных цифр MNIST из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). Обращаю внимание на то, что в предложенной реализации по умолчанию используется только 5000 тренировочных примеров (вместо изначальных 60000) из базы данных MNIST, а также на то, что тестирование рассматриваемых алгоритмов осуществляется на примерах, которые использовались на этапе обучения. Поэтому сравнить полученные результаты с уже имеющимися на аналогичной базе данных (ссылка) нельзя! Несколько баз данных для обучение, в том числе MNIST (в удобном, родном для Matlab формате mat) можно найти здесь. Интересно почитать следующую статью про сверточную нейронную сеть LeNet 5 (ссылка).
  9. Машинное обучение. Часть 4 (презентация .pptx). Законченная реализация алгоритма обучения нейронной сети прямого распространения для решения задачи многоклассовой классификации на базе данных рукописных цифр MNIST из online курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). Автономное вождение / проект ALVINN (видео позаимствовано из курса Andrew Ng "Machine Learning" на www.coursera.org).
  10. Машинное обучение. Часть 5 (презентация .pptx). Пример законченного кода для самостоятельного исследования по регуляризованной линейной регрессии, а также таких понятий как смещение и дисперсия из курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка).
  11. Детектирование лиц на основе алгоритма Виола / Джонса (презентация .pptx). Ссылка на статью Viola P., Jones M. Robust Real-time Object Detection // Int. J. Computer Vision. 2004. V. 57, 2. P. 137–154 (ссылка). Демонстрационные программные коды, которые использовались в лекции можно найти здесь. Для запуска кодов требуется установить библиотеку OpenCV по ссылке [27] в дополнительных материалах ниже. Видеоролики, демонстрирующие использование алгоритма Виола / Джонса для управления мобильным роботом (ссылка 1ссылка 2).
  12. Анализ главных компонент. Распознавание лиц (презентация .pptx). Ссылка на статью Turk M., Pentland А. Eigenfaces for Recognition // Journal of Cognitive neuroscience. 1991. V. 3, №1. P. 73–86 (ссылка). Ссылка на копию оригинальной статьи К. Пирсона 1901 г., в которой был предложен анализ главных компонент (ссылка). Хорошее введение в анализ главных компонент представлено в следующей статьеПример законченного кода для самостоятельного исследования по анализу главных компонент, а также метода K-средних из курса Andrew Ng "Machine Learning" на www.coursera.org (ссылка). Дополнительно про анализ главных компонент и другие методы сокращения размерности можно почитать в книге Stephen Marsland "Machine Learning: An Algorithmic Perspective" (ссылка). Про применение анализа главных компонент в других задачах обработки цифровых изображений можно прочитать здесь.
  13. Детектирование номерных знаков транспортных средств с использованием алгоритма детектирования аномалий (презентация .pptx). Пример реализации алгоритма детектирования номерных знаков в среде Matlab (ссылка).
  14. Основы видеонаблюдения. Основой настоящей лекции является следующий источник. При изучении данной темы следующая книга может оказаться полезной. Лекция выносится на самостоятельное изучение!
  15. Трехмерное зрение и формирование структуры из движения (презентация .pptx). Про пространственное-временное стерео читаем здесь. Формирование структуры из движения (ссылка).
  16. Системы технического зрения в задаче управления автономными мобильными роботами (презентация .pptx). Примеры решения задач следования по черной линии (видео), контроля скорости вращения двигателя (видео), контроля угла (видео), перемещения в целевую точку (видео), локализации на основе гистограммного фильтра (видео) и системы технического зрения (видео). Интересный источник по мини- и микроробототехнике (ссылка). Презентация к докладу Альберта Ефимова (руководитель робототехнического центра Фонда "Сколково") "Состояние и перспективы отечественной робототехники" (ссылка).
  17. Вопросы к зачету (ссылка).
Практические задания
  1. Простой алгоритм распознавания номерных знаков (описаниетестовые изображения .rarизображения эталонов цифр .rar). Срок сдачи задания произвольный.
Тестовые задания
  1. Тест № 1 (ссылка).
  2. Тест № 2 (ссылка).
  3. Тест № 3 (ссылка).
  4. Тест № 4 (ссылка).
  5. Тест № 5 (ссылка).
  6. Тест № 6 (ссылка).
  7. Тест № 7 (ссылка).
  8. Тест № 8 (ссылка).
  9. Тест № 9 (ссылка).
Лабораторные работы
  1. Анализ бинарных изображений и первое понятие о распознавании образов (ссылка).
  2. Алгоритмы сегментации цифровых изображений (ссылка).
  3. Классификация рукописных символов на основе методов машинного обучения (ссылка).
  4. Алгоритм детектирования дорожных знаков (архив .rar). Настоящая лабораторная работа является опциональной и представляет собой пример исследования некоторого частного алгоритма компьютерного зрения и пример написания технического отчета, полученного на основе данного исследования.
  5. Обработка цифровых изображений с использованием анализа главных компонент (ссылка).
  6. Детектирование объектов интереса на основе метода вычитания фона и цветовых меток (ссылка).
Дополнительные материалы
  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 лекции по курсу "Машинное обучение", читаемые сотрудниками ШАД (Школы анализа данных Яндекс). Ссылка на курс здесь.

Руководитель курса: доц. кафедры инфокоммуникаций и радиофизики Волохов В.А.

среда, 25 января 2017 г.

Правила оформления курсовых работ для студентов 3 курса лаборатории "Цифровые цепи и сигналы" при физическом факультете ЯрГУ (ссылка). Дипломные работы могут быть оформлены по аналогичным требованиям. При сдаче курсового (дипломного) проекта при себе необходимо иметь ее (его) текстовый и электронный варианты, сопроводительные документы, а также презентацию. Электронный вариант курсовой (дипломной), сопроводительных документов и презентации необходимо записать на диск в редактируемом формате (doc, ppt), а также в pdf и сдать научному руководителю. Формы для курсовых и дипломных проектов можно скачать здесь. При оформлении документов необходимо обратить внимание на то, что кафедра динамики электронных систем и кафедра радиофизики объединены в одну. Поэтому во всех документах к курсовому и дипломному проекту необходимо указывать новое название объединенной кафедры, а, именно, кафедра инфокоммуникаций и радиофизики.

Материалы практических занятий
  1. Дубов М.А. - Общие рекомендации по созданию и оформлению курсового проекта (ссылка).
  2. Дубов М.А. - Общие рекомендации по созданию и оформлению презентации (ссылка).
О результатах проведения практических занятий можно узнать здесь.

Дополнительные материалы
  1. Скачать конвертер из doc/ppt в pdf можно здесь.
  2. Делаем pdf-файл легко (ссылка)!
  3. Плохая презентация это!
  4. Несколько ссылок на темы оформления презентаций (ссылка 1ссылка 2ссылка 3).
  5. Chicken, Chicken, Chiken :) (ссылка).
P.S. Вопросы, затрагивающие оформление работ, могут быть заданы в комментариях настоящего раздела или присланы по электронной почте.

вторник, 3 января 2017 г.

Здравствуйте. Сообщаю информацию по времени, когда можно будет отчитаться по долгам по соответствующим курсам.

1. Курсы "Цифровая обработка изображений" и "Стат. теория РТС", РТ-41БО. Сдача зачета и лабораторных  работ состоится 05.01.2017 в ауд. 306 (первый уч. корпус) с 12.00 до 13.30.
2. Курс "Основы цифровой обработки сигналов", ИТС-31БО. Сдача лабораторных  работ и зачета состоится 05.01.2017 в ауд. 306 (первый уч. корпус) с 13.30 до 16.00.
3. Курс "Основы цифровой обработки сигналов", РТ-31БО. Сдача лабораторных  работ и зачета состоится 05.01.2017 в ауд. 306 (первый уч. корпус) с 16.00 до 19.00.
4. Курс "Инженерная и компьютерная графика", ИТС-11БО и РТ-11БО. Сдача лабораторных  работ и зачета состоится 06.01.2017 в ауд. 306 (первый уч. корпус) с 12.00 до 15.00.

С уважением, Владимир Волохов.

среда, 14 сентября 2016 г.

Начинает свою работу единая страница курса "Основы цифровой обработки сигналов" направлений "Инфокоммуникационные технологии и системы связи" и "Радиотехника".

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

Место проведения: Физический факультет, к. 306 (309), 1-ый учебный корпус (лабораторный практикум), к. 218, 2-ой учебный корпус (ИТС-31БОРТ-31БО(лекционные занятия).

Время
  1. Направление "Инфокоммуникационные технологии и системы связи" (группа ИТС-31БО) лабораторный практикум раз в две недели по понедельникам, с 8.30 до 10.05 (числитель/знаменатель разделение на подгруппы), лекции каждую неделю по четвергам, с 14.15 до 15.50.
  2. Направление "Радиотехника" (группа РТ-31БО) лабораторный практикум раз в две недели по четвергам, с 10.15 до 11.50 (числитель), лекции каждую неделю по четвергам, с 14.15 до 15.50.
Темы лекционных занятий
    1. Введение в курс "Основы цифровой обработки сигналов" ("Цифровая фильтрация"). Работу C.E. Shannon "A Mathematical Theory of Communication", написанную в 1948 г., можно найти здесь или здесь. Книгу P. Prandony, M. Vetterly "Signal Processing for Communications" можно найти здесь (версия в html) или здесь (версия в pdf). При решении задач по курсу рекомендуется использовать источник [15] в дополнительных материалах ниже. Пример проигрывания звукового фрагмента с разной частотой дискретизации (ссылка). Пример генерации звукового колебания на основе алгоритма Карплуса-Стронга (ссылка). Материалы курса P. Prandony, M. Vetterly "Digital Signal Processing" на www.coursera.org  можно найти здесь (для доступа к материалам нужна регистрация). "Машина для генерации значений комплексной экспоненты" (ссылка).
    2. Дискретное преобразование Фурье. Быстрое преобразование Фурье. Теория и задачи по настоящему занятию могут быть найдены в главе 7 источника [15] в дополнительных материалах ниже, а также в главе 6 книги Брюханов Ю.А., Приоров А.Л., Джиган В.И., Хрящев В.В. "Основы цифровой обработки сигналов". Книга доступна в печатном виде в библиотеке ЯрГУ. Пример вычисления дискретного преобразования Фурье (ДПФ) для изображения, демонстрирующий преимущество ДПФ перед каноническим базисом при передаче данных (ссылка). Про работу с платой Arduino можно почитать здесь. Про интеграцию платы Arduino и Matlab можно узнать на следующем сайте. Пример интеграции платы Arduino c Matlab, рассмотренный на лекции, можно найти здесь. Машина для предсказания приливов (ссылка).
    3. Оконное преобразование Фурье. Лекция посвящается Дню космических войск России. 4 октября 1957 г. в СССР был запущен первый искусственный спутник "Спутник-1", который вращался на орбите 3 месяца и издавал "бип-бип" звуковой сигнал не несущий какой-либо информации. Звуковой сигнал первого спутника, записанный с использованием аналогового магнитофона, не отличался особым качеством. Однако, существование этого сигнала было захватывающим (сигнал первого спутника). Факт, что спутник может быть размещен на орбите и способен посылать сигналы на Землю, продемонстрировал возможность использования спутников связи для радио, телевидения, передачи телефонных разговоров через океаны! Это был революционный прорыв в то время. Понадобилось еще одно десятилетие, чтобы то, что казалось когда-то фантастическим, стало реальностью, в то время как передача сигналов со спутников на сегодняшний день является обычным делом. Запуск первого спутника продемонстрировал возможность освоения космоса и способствовал гонке между СССР и США, связанной с запуском первого человека (космонавта / астронавта) в космос. Это произошло в апреле 1961 г. (Гагарин Ю.А.) и в мая 1961 г. (Шеппард А.). В июле 1969 г. экипаж корабля "Апполон-11" высадился на поверхность Луны. В заключении необходимо отметить, что запуск первого спутника привел к возникновению "Спутникового кризиса", который способствовал срочности финансирования правительством США области естественных наук, чтобы не отставать от СССР в математике и инженерных науках, которые имели решающее значение в холодной войне. 
      Гордитесь своей страной и помните о том, что у каждого человека есть свое место в жизни! Пример практического использования оконного преобразования Фурье к обработке сигнала первого спутника и двухтонального многочастотного сигнала в Matlab можно скачать здесь.
    4. Введение в цифровые фильтры. Цифровые фильтры могут использоваться для решения разнообразных задач. Рассмотрим одну из них на примере ЛИС-системы. Представим себе, что в качестве импульсной характеристики такой системы выступает импульсный отклик помещения. Этот отклик можно получить с использованием микрофона, который записывает звук, представляющий рассеивание импульсного источника звука. Примером подобного отклика может выступать импульсный отклик Лозаннского собора, который измерил Докманич И. (Dokmanic I.) и его коллеги, записав звук лопнувшего в соборе воздушного шарика. Скачать эту запись можно здесь. Выполнение операции свертки этой записи (импульсной характеристики собора), например, с записью музыкального фрагмента, полученного с использованием виолончели, позволяет искусственно пересоздать акустику большого пространства собора. Пример Matlab-кода, выполняющего подобную операцию, можно скачать здесь.
    5. КИХ-фильтры с линейной фазочастотной характеристикой (ФЧХ). Иногда, когда читаешь книжки по ЦОС встречаешься с такой фразой: "КИХ-фильтры с линейной ФЧХ не искажают фазовые соотношения между гармониками сигнала". Так же в книжках указано, что линейная ФЧХ у фильтров является хорошим свойством этих фильтров. Почему это так? Почему отсутствие искажений фазовых соотношений между гармониками сигнала настолько значимо? Давайте проведем некоторый эксперимент. Возьмем два изображения. Вычислим от каждого из них двумерное дискретное преобразование Фурье (ДПФ), а также амплитудные и фазовые спектры этих изображений. Поменяем фазовые спектры изображений местами, а амплитудные спектры оставим без изменений. Выполним обратное преобразование Фурье. Получим результат, представленный ниже.
      Два верхних изображения  - это исходные картинки, то есть до обработки. Два нижних изображения - это картинки, полученные после указанной выше процедуры. Видно, что, поменяв фазовые спектры местами, мы получили изменение структуры первой и второй картинок. Они поменялись местами. Отметим, что истинное распределение интенсивностей пикселей на изображениях изменилось, но структура сигнала находится именно в фазе. Фазовый спектр сигнала несет больше информации, чем амплитудный! Поэтому искажение фазовых соотношений между гармониками должно приводить к искажению структуры сигнала. Matlab-код, который позволяет повторить эксперимент, проведенный выше, можно скачать здесь.
    6. Всепропускающие фильтры. Хорошо описанный теоретический материал с примерами и задачами по данной теме можно найти в источнике [15] в дополнительных материалах ниже. Анализировать нужно стр. 193-194, 209-212. Дополнительно рекомендуется обратиться к источнику [16] (стр. 89-91).
    7. Минимально-фазовые системы. Хорошо описанный теоретический материал с примерами и задачами по данной теме можно найти в источнике [15] в дополнительных материалах ниже. Анализировать нужно стр. 194-195, 212-216. Дополнительно рекомендуется обратиться к источнику [16] (стр. 91-93).
    8. Системы с обратной связью. Хорошо описанный теоретический материал с примерами и задачами по данной теме можно найти в источнике [15] в дополнительных материалах ниже. Анализировать нужно стр. 195-196, 216-217. Дополнительно рекомендуется обратиться к источнику [16] (стр. 94-95).
      Видеоролики, которые использовались для лекционной демонстрации систем управления с обратной связью мобильными роботизированными платформами, можно найти на сайте Всероссийского молодежного турнира "Робоштурм" в разделе "Робототехника, теория управления и компьютерное зрение".
    9. Оживляем цифровую обработку сигналов! Этот материал на лекции выноситься не будет. Да и, наверное, рассказывать "online" про то, что описано ниже, было бы глуповато. Ведь этот курс не является кружком "Умелый руки" :) Некоторое время тому назад я решил задуматься над задачкой, которую, наверное, нужно было бы решать классе в седьмом. Но на тот момент времени у меня не было ни знаний, ни денег, ни подходящей элементной базы и, возможно, желания заняться сборкой простенького мобильного робота. Хотя, я с детства мечтал о машинке на пульте управления с привинченной камерой для наблюдения за окружающим пространством. И вот много лет спустя эта мечта сбылась. В настоящей теме я оставлю несколько ссылок и замечаний о том, с чего может начинаться элементарная робототехника и цифровая обработка сигналов. И так, цель состояла в том, чтобы собрать малогабаритного робота, который бы управлялся с использованием оператора по беспроводному каналу связи при использовании собранной своими руками управляющей платы. Для достижения указанной цели решались следующие задачи :) Знакомая фраза, не правда ли? Во-первых, поиск возможных решений (примеры роботов, принципиальных схем и т.п.). Прототипом для создания платформы послужил робот Pololu 3 pi, а для создания управляющей платы - всем известная плата Arduino.  Огромное количество видеороликов про Pololu 3 pi можно найти здесь . Правда, то, что получилось у меня, едва ли на него похоже :) Принципиальные схемы для сборки простейших управляющих плат оказались до боли однотипными. Использовал это (для сборки управляющей части) и это (для сборки схемы драйвера моторов) решения, как самые простые. Управляющая часть - это "мозг" робота, схема драйвера моторов - это промежуточное звено, которое позволяет связать электродвигатели и управляющую схему. Про сборку и прошивку управляющей части можно посмотреть следующие видеоролики тут и тут. Во-вторых, нужно было "раздобыть" элементную базу. "Шопинг" по радиодеталям не заставил себя долго ждать :) В г. Ярославле все необходимые компоненты можно было купить здесь. Я не буду описывать процесс сборки и необходимую элементную базу. Про это вы можете почитать в ссылках, означенных выше. Кратко скажу, что на одной макетной плате я разместил управляющую часть, построенную на базе микроконтроллера  ATMega 328P-PU, и схему драйвера моторов, построенную на базе микросхемы L298N MULTIWATT15. Дополнительно для работы с итоговой платой я купил USB-UART адаптер, который был приобретен в тех же радиодеталях. Последний позволяет взаимодействовать с платой через обычный ПК ("заливать" программный код и т.п.). В-третьих, собрать все вместе. Процесс пайки был долгим, но забавным :) Подробности я упущу. В-четвертых, нужно было разместить управляющую плату на чем-то. Основанием послужил не очень прочный пластик, который был найден в лаборатории и растрескался после первого заезда робота :) Колеса, электродвигатели, повышающий DC-DC преобразователь (для поднятия уровня входного напряжения) были заказаны на сайте amperka.ru. Четыре AAA аккумулятора я купил в ближайшем магазине цифровой техники, а боксы для них снова в "родных" радиодеталях. В-пятых, нужно было собрать все вместе. Здесь опять монтаж, как при создании кинофильма :) Итоговый результат моей работы представлен на рисунке ниже. 
      Как видно из фотографий, поверх управляющей платы расположено большое количество соединительных проводков, которые позволяют связать несколько частей платы воедино (схему питания, модуль беспроводной связи Bluethooth, заказанный на сайте amperka.ru, ультразвуковой дальномер, купленный в радиодеталях, управляющую часть и драйвер моторов). Рядом с каждой из ключевых частей платы напаяны контактные колодки, которые позволяют выполнить необходимые соединения элементов  по соответствующим принципиальным схемам. Дополнительной идеей, которую я преследовал, являлось создание маленького конструктора для школьников, который бы наглядно показывал основные составляющие управляющей платы и позволял их связать воедино самостоятельно. Напоминаю, что "мозгом" описанного робота является микроконтроллер, то есть микросхема, сочетающая в себе функции процессора, ОЗУ и т.п., которая позволяет выполнять цифровую обработку сигналов, поступающих на робота либо с ПК, либо с периферии, например, ультразвукового дальномера. Дополнительно отмечу, что серьезный подход к робототехнике требует не просто создания мобильного робота по чертежам и схемам. Серьезный подход требует создания алгоритмов, которые позволят "наделить" робота искусственным интеллектом. Про то как это делается, можно узнать, например, здесьздесь или здесь. Простенький код, который можно залить на плату через Arduino IDE, позволяющий выполнить удаленное управление роботом через Bluetooth, можно скачать здесь. Как-то так. Не бойтесь реализовать свою мечту и вы обязательно победите! Спасибо за внимание и удачи!
    10. Обработка сигналов в режиме реального времени на ПК. Материал настоящей лекции был рассмотрен в рамках лекции № 5 online курса Prandony, M. Vetterly "Digital Signal Processing" на www.coursera.org.
    Задания для самостоятельного выполнения
    1. Тест № 1 (ссылка). Выполненное задание должно быть сдано не позднее 22.09.2016.
    2. Тест № 2 (ссылка). Выполненное задание должно быть сдано не позднее 20.10.2016. Обращаю внимание на то, что время сдачи теста № 2 сдвинуто на неделю позднее!
    3. Задачи для самостоятельного решения по теме "Дискретное преобразование Фурье. Быстрое преобразование Фурье" (ссылка). Задачи должны быть сданы на проверку в письменном виде не позднее 03.11.2016. При решении задач рекомендуется использовать источник [15] в дополнительных материалах ниже, а также вторую главу задачника Хрящев В.В., Приоров А.Л., Волохов В.А. "Основы теории цепей. Сборник задач" (ссылка). Последний источник можно найти в печатном виде в библиотеке ЯрГУ.
    4. Тест № 3 (ссылка). Выполненное задание должно быть сдано не позднее 10.11.2016Замечание. В задаче № 20 Matlab может выдать такую фразу: Error using imread (line 349). File "cameraman.tif" does not exist. Пугаться не нужно. Фраза означает, что изображение cameraman.tif не существует. Видимо, это зависит от версии пакета. Если такая проблема возникает, то скачайте это изображение здесь. Поместите его в текущую папку Matlab и вызовите в файле image_filtering.m такой командой: I = double(imread('Cameraman256.png'))/255; Удачи!
    5. Тест № 4 (ссылка). Выполненное задание должно быть сдано не позднее 17.11.2016.
    6. Тест № 5 (ссылка). Выполненное задание должно быть сдано не позднее 01.12.2016. При ответе на вопросы теста рекомендуется воспользоваться источниками [2, 15, 16] в дополнительных материалах ниже. Про операцию свертки в частотной и во временной области читаем, например, на стр. 64 источника [15]. Про каскадное и параллельное соединение ЛИС-систем читаем, например, на стр. 294-296 источника [15]. Замечание. При решении разностного уравнения из задачи № 8 во второй части задачи постарайтесь разбить решение на три случая: 1) решение при n < 0. Тут ответ очевиден, y(n) = 0; 2) решение при n = 0. Здесь просто подставляем значение n = 0 в исходное разностное уравнение, учитывая нулевые начальные условия, и считаем y(0); 3) решение при n > 0. Это самый сложный случай! Здесь мы сталкиваемся с неоднородным разностным уравнением вида: y(n) – y(n–1) + 0.25*y(n–2) = (0.5^n)*0.5*u(n–1), где u(n– это единичный скачок, про который можно забыть, помня о том, что n > 0. В правой части стоит неоднородность, которая была получена прямой подстановкой выражения для x(n) в исходное разностное уравнение. Для решения неоднородного уравнения используем источник [2] в дополнительных материалах ниже! Решаем через общее решение однородного и частное решение неоднородного уравнений. При поиске общее решение однородного уравнения учитываем то, что корень характеристического уравнения имеет кратность 2 (см. стр. 4 источника [2], пункт (б), внизу). Полученное решение будет содержать две константы, которые ищутся в самом конце задачи с учетом начальных условий для n > 0. При поиске частного решения неоднородного уравнения используем теорему 1.4 (см. стр. 5 источника [2], внизу). Объединяем общее решение однородного уравнения и частное решение неоднородного уравнения в итоговое решение исходного разностного уравнения путем суммирования. Дальше ищем константы, используя начальные условия. Здесь важное замечание! По условию задачи начальные условия нулевые, то есть y(–1) = y(–2) = 0. Но эти начальные условия использовать нельзя, так как решение разностного уравнения записано для n > 0. Пересчитываем начальные условия через исходного разностное уравнение, которое было задано в самом начале задачи. Получаем пересчитанные начальные условия y(1) = 5/4 и y(2) = 9/8. Для этих начальных условий составляем систему линейных уравнений на константы. Решаем ее любым известным методом, например, прямой подстановкой, Гаусса, Крамера, графически, а для "лентяев" в Matlab (Octave, FreeMat). Пример похожей задачи разбирается на стр. 8-10 источника [2]. Как-то так. Удачи!
    7. Тест № 6 (ссылка). Выполненное задание должно быть сдано не позднее 15.12.2016.
    Темы лабораторных работ
    1. Синтез цифровых КИХ-фильтров методом окон (описание .pdfприложение .pdf, m-файлы .rar).
    2. Синтез цифровых БИХ-фильтров методом билинейного z-преобразования (описание .pdfприложение .pdf, m-файлы .rar). Замечание. При реализации полосового или режекторного фильтра в качестве функции zmapping используйте следующую.
    3. Синтез оптимальных по Чебышёву КИХ-фильтров (описание .pdfприложение .pdf, m-файлы .rarмодель simulink .rar).
    4. Многоскоростная цифровая обработка сигналов (описание .pdf, m-файлы .rar).
    5. Обработка сигналов на основе вейвлет-преобразования (описание .pdf, приложение .pdfm-файлы .rar).
    6. Применение адаптивной фильтрации в обработке цифровых сигналов (описание .pdfm-файлы .rar).
    7. Список опечаток в книге Приоров А.Л., Волохов В.А., Лаврентьев А.М. Основы цифровой обработки сигналов. Лабораторный практикум.  Ярославль: ВУНЦ ВВС «ВВА им. профессора Н.Е. Жуковского и Ю.А. Гагарина» (филиал г. Ярославль), 2012 (список .pdf). Замечание: пожалуйста, в случае нахождения опечаток или неточностей в вышеозначенной книге, сообщите о них мне в комментах здесь или на электронную почту. Заранее спасибо!
    Дополнительные материалы
    1. Список рекомендуемой литературы (список .pdf).
    2. Волохов В.А. Лекция по разностным уравнениям. ЯрГУ, 2010 (описание .djvu).
    3. Хрящев В.В., Приоров А.Л., Волохов В.А. Основы теории цепей. Сборник задач. Глава 4. ЯрГУ, 2008 (описание .pdf).
    4. Волохов В.А. Синтез цифровых КИХ-фильтров методом окон. Сборник задач. ЯрГУ, 2010 (описание .pdf).
    5. Волохов В.А. Синтез цифровых БИХ-фильтров методом билинейного z-преобразования. Сборник задач. ЯрГУ, 2011 (описание .pdf).
    6. Лукин А.С., Крылов А.С. "Интегральные преобразования в обработке изображений, введение в цифровую обработку мультимедийной информации" 2011 (ссылка).
    7. Freeman D. Signal and Systems (6.003), 2010. Massachusetts Institute of Technology (ссылка).
    8. Lustig M. Digital Signal Processing (EE123), 2011. University of California, Berkeley (ссылка).
    9. Lustig M. Digital Signal Processing (EE123), 2012. University of California, Berkeley (ссылка).
    10. Kundur D. Real-Time Digital Signal Processing (ECEN448), 2011. Texas A&M University (ссылка).
    11. Gilbert S. Wavelets, Filter Banks and Application (18.327 / 1.130), 2003. Massachusetts Institute of Technology (ссылка).
    12. Gilbert S. Wavelets, Filter Banks and Application (18.327 / 1.130), 2004. Massachusetts Institute of Technology (ссылка). Примечание: здесь можно найти примеры Matlab-кодов по теме связанной с вейвлетами и вейвлет-преобразованием.
    13. Oppenheim A.V. Signals and Systems (6.007), 2011. Massachusetts Institute of Technology (ссылка).  Примечание: здесь можно найти видеолекции одного из ведущих специалистов в области "Цифровой обработки сигналов" - Алана Оппенгейма.
    14. Грибунин В.Г. Глоссарий по цифровой обработке сигналов (ссылка).
    15. Hayes M.H. Schaum’s Ouline of Theory and Problems of Digital Signal Processing. McGraw-Hill, 1999 (ссылка).
    16. Хрящев В.В., Приоров А.Л., Волохов В.А. "Основы теории цепей. Сборник задач".  Ярославль: ЯрГУ, 2008 (ссылка).
    Замечание: Вопросы, затрагивающие решение задач, описание лабораторного практикума, трудности возникающие при написании программной части лабораторных работ, разбор листинга языка пакета Matlab и т.п., могут быть заданы в комментариях настоящего раздела или присланы по электронной почте.

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