ГЛОССАРИЙ 3
ВВЕДЕНИЕ 5
1 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ 7
2 ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ 9
2.1 Python 9
2.2 TensorFlow 9
2.3 Keras 10
3 ПРИНЦИП РАБОТЫ ПРОГРАММНОГО ИНСТРУМЕНТА 11
3.1 Основная логика 11
3.2 HTML версия 15
3.2.1 Кодировщик 18
3.2.2 Признаки разметки 18
3.2.3 Признаки изображения 19
3.2.4 Объединение признаков изображения и разметки 20
3.2.5. Декодер 20
3.2.6 Понимание временных шагов в LSTM 23
4 ТЕСТИРОВАНИЕ 27
ЗАКЛЮЧЕНИЕ 30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 31
ПРИЛОЖЕНИЕ 1
Процесс реализации клиентского программного обеспечения на основе макета графического интерфейса пользователя (GUI), созданного дизайнером, является обязанностью разработчиков. Однако реализация кода GUI отнимает много времени и мешает разработчикам посвятить большую часть своего времени реализации функциональной части и логики создаваемого ими программного обеспечения. Кроме того, компьютерные языки, используемые для реализации таких графических интерфейсов, специфичны для каждой целевой системы; что приводит к утомительной и повторяющейся работе, когда предполагается, что создаваемое программное обеспечение будет работать на нескольких платформах с использованием собственных технологий.
На данный момент существует множество решений разработки кроссплатформенных мобильных приложений. Преимущество данной разработки, заключается в том, что большая часть кода, может быть написана одним специалистом, что сокращает затраты на разработку. Согласно статистике enlyft процент создаваемых продуктов среди всех мобильных приложений с использованием JavaScript, HTML и CSS технологий составляет 45,36% [11]. Так же, если мобильное приложение имеет веб-версию, использование элементов HTML - разметки выигрышно сократит время разработки.
Для процесса автоматизации верстки могут быть использованы нейронные сети. В наши дни нейронные сети замещают множество процессов, используются для вычисления больших объемов данных, классификации и прогнозирования. Высокая производительность нейронных сетей обусловлена прежде всего отсутствием ошибки, связанной с человеческим фактором, а также всегда стабильным качеством экспертной системы. Кроме того, искусственная нейронная сеть способна извлекать и применять ранее неизвестные знания. Использование нейронной сети для генерации верстки существенно сократит процесс разработки итогового продукта. Так же нейронную сеть можно обучать на разных наборах данных для более точного результата на имеющихся макетах.
Актуальность данной работы обусловлена тем, что процесс создания разметки можно будет автоматизировать, что в свою очередь сократит время создание продукта и позволит избежать затрат на его разработку.
Объектом дипломной работы является анализ существующих решений автоматизации верстки и создание собственного решения. Разрабатываемый механизм сможет сверстать HTML - разметку использую изображение макета.
Предметом дипломной работы является готовый механизм способный сверстать HTML - разметку с изображения.
Целью дипломной работы является разработка и обучение нейронной сети, которая сможет, используя изображение сверстать HTML - разметку.
Для достижения поставленной цели необходимо решить следующие задачи:
• Изучение существующих решений;
• Изучение способов обучения нейронной сети наиболее эффективных в данной работе;
• Выбор технологий для разработки решения;
• Разработка решения на выбранных технологиях;
• Обучение нейронной сети;
• Тестирование эффективности.
В результате выполнения данной дипломной работы было разработано программное решение для генерации кода пользовательского интерфейса кроссплатформенных мобильных приложений на базе Javascript, HTML и CSS. Разработанная и обученная нейронная сеть обладает возможностью генерации пользовательских интерфейсов по изображению макета графического интерфейса.
Задачи, выполненные в рамках работы:
• Изучение существующих решений;
• Изучение способов обучения нейронной сети наиболее эффективных в данной работе;
• Выбор технологий для разработки решения;
• Разработка решения на выбранных технологиях;
• Обучение нейронной сети;
• Тестирование эффективности.
Разработанная нейронная сеть позволит разработчикам сократить время на создание пользовательских интерфейсов по макетам, что, в свою очередь, сократит общее время разработки мобильного приложения.