Перейти к содержимому
Compvision.ru
boriso

С чего проще начать DL на лицах?

Recommended Posts

Здравствуйте!

Загорелся идеей DL. Скачал word2vec и готовые вектора - масса впечатлений. С подготовленным набором можно экспериментировать сразу же, да и со скриптами для обучения проблем нет - компилируются и запускаются.

Теперь хочу попробовать с изображениями. Представляется следующий подход:

  1. Беру большое количество изображений.
  2. Выделяю на них лица.
  3. Запускаю DL на лицах сеть для получения матрицы W с выходом на вектор длины 300-500-1000.
  4. Беру некоторую выборку изображений и сопоставляю им в качестве результата вектор длины 2-5-10. Например, будет возраст, наличие улыбки и подмигивание правым глазом.
  5. Теперь запускаю новую сеть на обучение и получаю матрицу F, преобразующую 300-500-1000 вектора в 2-5-10.
  6. Проверяю на новых изображениях, применяя последовательно W и F.

Сейчас предполагаю, что можно получить хорошую матрицу W, на основе которой будет достигаться хорошее обучение и F. Более того, матрица W вообще не зависит от целевого вектора. Например, если завтра решу добавить ещё признак открытого рта, то будет достаточно найти матрицу F' с одним выходом и 300-500-1000 входами. Думаю, что матрицу F будет проще получить, чем сразу произведение W и F. Насколько подобный подход правильный?

На чём проще всего начать обучение (аналог word2vec)? Может быть есть готовые решения / вектора (матрицы) для лиц?

Спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык CAFFE :)

http://caffe.berkeleyvision.org/

Torch 7

http://torch.ch/

Theano

http://deeplearning.net/software/theano/

 

Изменено пользователем Smorodov
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На чистом theano может и не стоит, т.к. есть Lasagne и Blocks которые на базе theano.

А так выбрать лучше то, что легче собирается и настраивается, а так же у чего есть документация и туторы от которых можно плясать.

 

Предлагаю использовать Caffe, т.к. на этом форуме к нему сошлись вроде как.

Под ubuntu 14.04 собирается с поддержкой python без проблем.

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

Спасибо за советы. Начал разбираться с caffe, установил, запустил первую пару примеров.

Работу с лицами удалось проверить на Age and Gender Classification Using CNN. Сейчас буду конвертировать код VGG-Face CNN descriptor с Matlab на Python.

Общий подход к созданию моделей понятен, на следующей неделе пойду GTX970 покупать (осталось только производителя выбрать).

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

Если посмотреть на prototxt-файлы из Age&Gender, то они отличаются лишь значением num_output в предпоследнем слое (2 и 8). При этом один из предыдущих слоёв возвращал 512. В VGG-Face аналогичная ситуация, только результат 2622 (количество определяемых имён), а на одном из предыдущих слоёв - 4096 выходов.

Предполагаю, что коэффициенты в моделях уже так выстроились, что "определяют" различные характеристики лица. Это было сделано довольно хорошо благодаря большому исходному объёму данных. В ходе обучения была задача вполне определённой классификации, поэтому и появилось соответствующее количество выходов.

У меня есть задача, например, определения улыбки на лицах. Вместо обучения с нуля хочу доучить готовую модель. Подготовить две папки с фотографиями (smile и nosmile), после чего воспользоваться подобранными коэффициентами и слоями (caffemodel + prototxt), но переучить самый последний слой, чтобы скорректировать переход из 512 или 4096 в 2.

Можно ли так сделать?

Есть ли готовые подобные примеры? Подскажите, пожалуйста, куда копать.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это называется fine tuning

http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html

Но проще всего взять выход 4096 как фичи и использовать его как вход для любого классификатора для регрессии или классификации.

https://github.com/coreylynch/vgg-19-feature-extractor

попытаюсь в ближайшее время сделать такой пример, хочу попробовать на для cifar или для классификации текстур.

Изменено пользователем mrgloom
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
On 04.12.2015, 11:02:18, mrgloom said:

Пока нет GPU попробовал на небольшом количестве фоток. Что-то не очень оказались результаты, сопоставимы с исходными. Но подход с тренировкой существующей модели в caffe оказался простым.

Решил натренировать VGG-Face на лицах для определения пола и сравнить с Age&Gender моделью. Выкачал 6к разных портретных фоток, запустил crop и resize на основе определения лица - материал для обучения и теста почти готов. Только надо провести классификацию этих 6к изображений.

Может быть подскажите удобный инструмент, чтобы классифицировать фотографии? (Вариант с drag&drop по папкам, либо ctrl+c/v мне не понравился. Идеал - мышью отщёлкал некоторое количество изображений, потом нажал на класс - они пропали, продолжил.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 hours ago, boriso said:

Пока нет GPU попробовал на небольшом количестве фоток. Что-то не очень оказались результаты, сопоставимы с исходными. Но подход с тренировкой существующей модели в caffe оказался простым.

Решил натренировать VGG-Face на лицах для определения пола и сравнить с Age&Gender моделью. Выкачал 6к разных портретных фоток, запустил crop и resize на основе определения лица - материал для обучения и теста почти готов. Только надо провести классификацию этих 6к изображений.

Может быть подскажите удобный инструмент, чтобы классифицировать фотографии? (Вариант с drag&drop по папкам, либо ctrl+c/v мне не понравился. Идеал - мышью отщёлкал некоторое количество изображений, потом нажал на класс - они пропали, продолжил.)

Лично я для таких вещей обычно пишу простой скрипт opencv'шный с imshow и imwrite. Тупо подряд отображаю все картинки и делаю бинд на какие-нибудь кнопки для сохранения в нужную папку...при некоторой сноровке получается довольно бсытро сортировать базу.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×