machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Изучение параметров 3D моделирования

Дата публикации Oct 3, 2019

У меня был этот краткий обзор некоторых данных, предоставленныхhttp://ailivesim.com/,AIliveSimпостроил инструмент моделирования для обучения и тестирования агентов в очень реалистичной трехмерной среде.

Я был действительно впечатлен некоторыми из их морских симуляций. Снимки из их смоделированных трехмерных сред выглядят действительно реальными. Это включает реалистично выглядящие морские поверхности с волнами, а также отражения и возможные брызги воды на объективе камеры.

Снимок моделирования, сделанного в дневное время.
Снимок моделирования, снятый в сумерках.

Прогнозирование параметров вне изображения

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

[SeasonDefaultSettings]
FoliageDensity = 1.707774
Сезон = Лето
EnableRain = ложь
Randomize = TRUE
Дождь = NoRain
EnableLeaves = ложь
GroundWetnessType = Dry
...

Среди этих параметров существуют числовые, такие как: время дня, количество тумана, количество дождя, яркость солнца и т. Д. Я решил проанализировать, возможно ли вообще прогнозирование какого-либо параметра из одного изображения. Это может быть полезно для оценки параметров нового моделирования излюбая реальная картина, Я начал спредсказывать, сколько времени из одной картины,

Мне предоставили набор данных изображений, взятых из симуляций, установленных в разное время:с 5 утра до 6 вечера, Для каждого времени есть примерно одинаковое количество фотографий. Другими словами, целевая метка распределена равномерно. Это может упростить обучение классификатору.

Передача обучения на изображениях

Я нашел этот удобный урок длятрансферное обучениес помощьюKerasа такжеTensorflow 2.0:https://www.tensorflow.org/tutorials/images/transfer_learning, В этом уроке трансферное обучение используется для настройки моделипредварительно подготовленныхнаImageNet, Их целевая задача - провести различие между «картинками кошек» и «картинками собак». Точно так же я использовал предварительно обученную модель, чтобы различать снимки, сделанные днем, и снимки, сделанные на рассвете или в сумерках. Мой прокси для дневного времени - «снимки, сделанные с 11 утра до 3 вечера». Более конкретно, моя проблема двоичной классификации имеет два класса:

  • Класс 1: фотографии, сделанные с 11 до 15 часов;
  • Класс 0: снимки, сделанные с 5 до 11, а также снимки с 15 до 18.

Основная модификация ноутбука выше состояла взагрузка моих собственных изображений с Google Drive.Для этого я сделал скриптизменение размераизображения до 160x160 пикселей, а такжедобавить свой ярлыкк имени файла. Например,d4321a23_raw_13.0.pngвывод изображения с измененным размером, полученного в 13:00. Я сделал сценарий доступным здесь:https://github.com/simoroma/PythonMLUtils, После того, как размеры изображений уменьшены до 160x160, они не занимают много места и могут быть удобно перенесены на Google Drive. Я также модифицировал записную книжку выше, чтобы загружать изображения прямо с диска Google. Это доступно здесь:https://github.com/simoroma/TransferLearningOnImages, Вы можете попробовать это наGoogle Colab(просто нажмите Открыть в Colab), если вы предоставляете свои собственные изображения. Google Colab предлагает также базовые графические процессоры для этого типа экспериментов.

Я использовал 1000 изображений для обучения и 500 изображений для проверки. Изображения в обучающем наборе получаются из других моделей, чем проверочный набор. Проверка результатов на другом наборе симуляций должна быть лучшей оценкой обобщающей способности классификатора.

Начальные результаты

Tон сюжет на верхних шоуточность обучения и проверкиза каждую эпоху.

Результаты первых эпох получены с использованием предварительно обученной сети дляфункция извлечения,вторая часть графика показывает вместо этого результаты стонкая настройка.

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

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

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

Insights

Это только отправная точка для анализа. У меня есть несколько начальных идей, которыми я хочу поделиться, прежде чем продолжить углубленный анализ:

  • Определение класса 1 как «снимки, сделанные между 11:00 и 15:00», кажется, помогает. Другие настройки заключаются в выборе другого временного диапазона. Тем не менее, модель, кажется, работает хуже;
  • Я также протестировал другой набор изображений с меньшим количеством тумана и цветом моря, установленным на постоянное значение. Похоже, это на самом деле не улучшает модель;
  • Конечно, было бы лучше отнестись к этой задаче как к проблеме регрессии. Сеть может узнать время дня в виде числового значения. Для этого не так уж сложно поменять ноутбук;
  • Как говорилось ранее, моделирование в наборе проверки не совпадает с моделированием в обучающем наборе. Использование той же симуляции не очень помогло;
  • Существует довольно высокая вариабельность в точности результатов между различными прогонами на одном ноутбуке. Я не ожидал такой большой изменчивости, и это определенно кое-что, чтобы рассмотреть;
  • Мы можем использоватьmodel.evaluateчтобы дважды проверить производительность нашей модели на разных комплектах. Результаты не соответствуют выходнымmodel.fitхотя. Я не копался в этом, но в Керасе это все еще остается открытым вопросом:https://github.com/keras-team/keras/issues/6977,

Резюме

Я показал предварительный анализ извлечения параметров из одной картинки. Изображения были получены из 3D моделированияAIliveSim, Кажется, определенно возможно узнать параметры из картинок, еслитрансферное обучениеиспользуется.

Следующие сценарии также могут быть хорошей отправной точкой для применения этих методов к вашим собственным изображениям:

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map