Сегодня завершается финальный проект, который я делал в группе, ссылка на проект следующая: https://github.com/alexanderchen6/ajak-final-project.

Проект представляет собой приложение для машинного обучения, в котором ИИ распознает рисунок, который пользователь нарисовал на холсте. Холст находится на веб-странице.

  • Затем пользователь может получить доступ, если ИИ правильно угадал.
  • % показывает, сколько правильных догадок сделал ИИ
  • Существует обратный отсчет часов, когда пользователь должен рисовать в течение 20 секунд.

Размышления:

  • Машинное обучение включает в себя много обработки данных. Я попытался преобразовать данные, которые были загружены из google quickdraw (в формате растрового изображения npy), в данные, которые получают x_train и y_train. Это был процесс, который включал в себя такие вещи, как изменение формы, нормализация, установка лимита и т. д. После этого мы подогнали модель (model.fit(np.array(x_train), np.array(Y_train)).
  • Такие предметы, как машинное обучение, могут включать в себя множество исследований, и в Интернете есть много информации. Тем не менее, очень легко увлечься этим и потерять контроль над проектом. В этом аспекте мы справились довольно хорошо, и это было связано с тем, что мы время от времени проводили экспертную проверку. Исследование, которое мы провели, было следующим:
  • - Проверьте другие репозитории на github, которые выполняли аналогичные проекты.
  • - Понимать общую картину машинного обучения и тензорного потока
  • - посмотрите обучающие видео на CNN и tensorflow, чтобы понять процесс.
  • Проблемы у нас были следующие:
  • - Другие примеры распознавания изображений были слишком сложными. Мы преодолели это, сначала выполнив руководство на простом примере (например, hello world). И затем мы действовали шаг за шагом, чтобы 1) мы могли обучать модель (включая загрузку данных из google quickdraw 2) мы могли загружать изображение и предсказывать 3) мы могли подключаться к внешнему интерфейсу, чтобы холст отправлял изображение на бэкэнд. 4) мы преобразуем полученное изображение так, чтобы оно сохраняло изображение «output.png» 5) мы инициируем объект рисования и объект предсказания на основе этого.
  • У нас возникла проблема, когда прогноз не был точным. Это может быть связано с тем, что изображение с холста отличается от изображения из набора данных Google. Мы открыли одно из изображений из набора данных Google Quickdraw и обнаружили, что фон был белым, и сделали наш рисунок белым, отформатировав его на стороне сервера перед началом рисования. Чтобы сделать прогноз более точным, мы также сделали изображение ярче в методе изменения формы в классе рисования.