Тема: CNN, Автономное вождение, Распознавание лиц, Преобразование искусства

Чтение

На этой неделе я продолжаю следить за Dr. Эндрю Нг Сверточные нейронные сети на Coursera Специализация глубокого обучения. Потратив две недели, мне наконец удалось пройти все викторины и задания по программированию.

Что касается чтения, доктор Нг представил четкую схему того, как мы можем использовать CNN для различных задач компьютерного зрения, таких как обнаружение объектов, распознавание лиц, преобразование художественного стиля и т. д. Несколько ключевых методов кратко представлены в его видео:

  • Ограничивающие рамки
  • Раздвижные окна
  • IOU (пересечение над союзом)
  • Немаксимальное подавление
  • Якорные ящики
  • Алгоритмы YOLO
  • Однократное обучение
  • Сиамская сеть
  • Тройная потеря
  • Передача нейронного стиля

Вышеупомянутые темы во второй половине материала курса в основном основаны на следующих документах:

  1. Сермане, Пьер и др. «Overfeat: интегрированное распознавание, локализация и обнаружение с использованием сверточных сетей. препринт arXiv arXiv:1312.6229 (2013 г.)»
  2. Редмон, Джозеф и др. «Вы смотрите только один раз: унифицированное обнаружение объектов в реальном времени. Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2016.»
  3. Гиршик, Росс и др. «Богатые иерархии функций для точного обнаружения объектов и семантической сегментации. Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2014.»
  4. Тайгман, Янив и др. «Deepface: преодоление разрыва с производительностью на уровне человека при проверке лица. Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2014.»
  5. Шрофф, Флориан, Дмитрий Калениченко и Джеймс Филбин. «Facenet: унифицированное встраивание для распознавания лиц и кластеризации. Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2015.»

Я еще не нашел достаточно времени, чтобы просмотреть этот документ (вероятно, это будет задание по чтению на следующей неделе с реализацией документа VDCNN). На этой неделе я больше сосредоточился на реализации этих ключевых компонентов в материалах курса.

Кодирование

Во второй половине курса «Сверточные нейронные сети» на Coursera были представлены три задания по программированию: 1) Обнаружение автомобилей с помощью YOLO, 2) Генерация изображений с помощью Neural Style Transfer и 3) Распознавание лиц для Happy House.

Я использовал Google Colab в качестве основного рабочего пространства. Вот тетради:

  1. Car_Detection_YOLO.ipynb
  2. ArtGenerationwithNeuralStyleTransfer.ipynb
  3. Распознавание лиц для HappyHouse.ipynb

Как вы можете видеть в коде, я внес некоторые изменения, чтобы ноутбуки соответствовали среде Google Colab. Это включает в себя импорт других полезных функций извне вручную. Это была не лучшая практика, но она сэкономила мне много времени.

В этих заданиях это одна из вещей, которые мне не очень нравятся: команда преподавателей инкапсулировала множество деталей в настраиваемые функции, поместила их в util.py или другие файлы Python и импортировала их в настоящие блокноты. Это усилие, хотя я полностью понимаю, почему они вообще хотят это сделать, создало для меня некоторые трудности с пониманием фактических деталей того, как работает каждая функция. На самом деле я потратил больше времени на очистку и импорт внешних функций, чем на кодирование самого задания.

Итак, сами блокноты будут все для моей работы на этой неделе. На следующей неделе я начну работать над реализацией некоторых классических исследовательских работ с использованием Keras и Tensorflow. Я действительно не думаю, что у меня будет время работать над повторяемостью этих исследовательских работ, но я постараюсь, по крайней мере, попробовать до определенного уровня в одной статье.