Файл: Разработка приложений для мобильных устройств (C#, Java) с использованием.pdf
Добавлен: 16.02.2024
Просмотров: 133
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1 Изучение предметной области
1.1 Описание разрабатываемого приложения
1.2 Моделирование разрабатываемого приложения
1.2.1 Моделирование приложения с использованием UML
1.2.2 Модель сценариев использования
1.3 Анализ существующих приложений для составления списка покупок
1.4 Обзор и обоснование выбора инструментария для разработки приложения
1.5 Обоснование необходимости разработки приложения
Глава 2. Реализация мобильного приложения
2.1 Сбор данных для создания базы данных
2.3 Основные функции программы
2.3.1. Предоставление списка рецептов и выбор рецепта для составления списка покупок
2.3.2. Добавление имеющихся продуктов
2.3.3. Составление списка покупок
2.4.1. Распознавание по виду продуктов
2.4.2. Распознавание по тексту на продукте
2.6. Основные трудности разработки приложения
В ходе работы были замечены различные трудности, которые препятствовали разработке и которые нужно упомянуть для анализа возможностей по улучшению работы приложения и его последующей разработке.
Одной из таких трудностей является отсутствие достаточно большой базы данных с маркированными изображениями для тренировки моделей нейронной сети. Так как составление таких баз данных на данный момент имеет ручной характер, то такая возможность существует только у некоторых компанию. Данная трудность была преодолена вводом дополнительных способов распознавания товаров, а также составлением алгоритма тренировки базы данных на основе относительно небольшого количества маркированных вручную фотографий.
Следующим препятствие в разработке описываемого приложения является отсутствие бесплатного API для получения информации о продукте по EAN-13 коду, так как не многие компании, у которых в распоряжении находятся базы данных товаров, готовы предоставить такую возможность.
Также существуют некоторые трудности по имплементации машинного обучения в Android приложение, написанное на языке программирования Java, так как большинство наиболее удобных решений использует язык Python.
2.7. Варианты модернизации приложения
Так как большинство современных приложений сопровождаются поддержкой и постоянным введением нового функционала, то стоит отметить функции, которые могут быть добавлены в разрабатываемое приложение в будущем.
В эпоху Интернета очевидным развитием любого приложения является использование функций предоставляющим различные возможности по взаимодействию с другими людьми, поэтому в приложение для составления списка покупок можно добавить возможность совместной работы некоторых пользователей над составлением списка покупок. Данная функция не только повысит эффективность приложения, но и повысит его актуальность текущим трендами.
Кроме того, добавление удобной кастомизации приложения позволит подстроить функционал приложения под нужды конкретного пользователя, не нагружая при этом его излишним интерфейсом.
И наконец, скорость и точность распознавания продуктов будет постоянно расти в зависимости от количества информации в тренировочном наборе данных нейронных сетей и развитием машинного обучения в мире, что положительно скажется на работе мобильного приложения.
В результате работы над проектом было разработано мобильное приложение для составления списка покупок, соответствующее поставленным требованиям. В приложении были реализована работа с базой данных рецептов, а также добавление продуктов через различные методы распознавания продуктов.
Так как распознавание продуктов по виду работает в основном на продуктах без штрих-кода, например с овощами и фруктами, а распознавание по тексту и штрих-коду получает информацию непосредственно с упаковки или базы данных, то представляется некоторая сложность сравнения точности распознавания данных методов. Однако можно с уверенностью сравнить количество продуктов, для которых могут быть применены данные методы. Метод распознавания продукта по штрих-коду может распознать наибольшее количество продуктов, так как штрих-код имеют практически все товары на прилавках магазинов. Чуть меньше охват продуктов имеет метод распознавания по тексту, однако данное количество будет все равно больше, чем количество продуктов, которое сможет распознать приложение по внешнему виду товара, что связано с количеством изображений и требуемым временем тренировки модели нейронной сети для сопоставимых результатов.
Обратная ситуация получается при сравнении скорости методов. Время засекалось от момента того, как тестовый пользователь нажал на соответствующую кнопку в меню добавления продукта до появления этого продукта в списке. По скорости работы алгоритма наибольшие показатели принадлежат методу распознавания по внешнему виду продукта с помощью машинного обучения (среднее время распознавания – 6 секунд), что связано со скоростью обработки информации моделью нейронной сети. Результат работы метода распознавания продукта по тексту и штрих-коду оказался ниже – в среднем 14 и 15 секунд соответственно.
Данная глава посвящена реализации мобильного приложение на базе операционной системы Android. В главе описана реализация таких методов распознавания продуктов, как:
- Распознавание по виду продуктов с использованием машинного обучения
- Распознавание по тексту на продукте с использованием машинного обучения
- Распознавание продукта по информации полученной с штрих-кода продукта
Наиболее быстрым методом распознавания продукта оказался метод распознавания продукта по внешнему виду, для которого среднее время распознавания составило 6 секунд. Однако данный метод уступает распознаванию по тексту и штрих-коду количеством продуктов, поддающимся распознаванию. Несмотря на это, очевиден потенциал в использовании машинного обучения, при наличии достаточного количество изображений, используемых для тренировки нейронных сети.
Кроме того, в второй главе описана реализация таких компонентов приложения как, список рецептов с поиском нужно рецепта, страница детальной информации о рецепте, а также составление списка покупок на основании всей информации, полученной от пользователя.
Заключение
В данной работе была рассмотрена и проанализирована разработка мобильного приложения, которое поможет составить список продуктов для определенных рецептов на основе информации об имеющихся продуктах, которые могут быть распознаны с помощью возможностей машинного обучения.
В теоретической части была рассмотрена и проанализирована актуальность разрабатываемого приложения, смоделирован основной функционал приложения, а также были исследованы различные аналоги разрабатываемого проекта.
В практической части работы была описан разработка приложения для составления списка имеющихся продуктов. Были реализованы и проанализированы различные методы распознавания продуктов.
Использование приложения для составления списка покупок принесет следующие преимущества:
- Снижение затрат на покупку товаров
- Экономия времени на составление списка покупок
- Учет имеющихся продуктов
Результаты работы показали эффективность использования машинного обучения для распознавания продуктов и потенциале интеграции машинного обучения в мобильные приложения.
Список литературы
- Berndt, A. (2015). Generation Y: the development and use of shopping lists.
- Bossard, L. G. (2014). Food‐101‐Mining discriminative components with random forests. В Computer Vision – ECCV 2014 (стр. 446-461).
- (2018). Brand New World: Exploring the Critical Issues Facing Today's Brands. Field Agent. Получено из https://blog.fieldagent.net/the-science-of-shopping-lists-10-insights-from-a-survey-of-2500
- Felix Heinrichs, D. S. (2011). The hybrid shopping list: Bridging the gap between physical and digital shopping lists.
- Harsha Jayawilal, S. P. (2017). The smart shopping list: An effective mobile solution for grocery list-creation process.
- Inman, J. (2009). The interplay among category characteristics,customer characteristics and customer activities.
- J.R.R. Uijlings, K. v. (2012). Selective Search for Object Recognition. University of Amsterdam, the Netherlands.
- Kollat, W. (1967). Customer Impulse Purchasing Behavior.
- Nancy M. Childs, P. D. (2015). The Digital Grocery Commerce: Insights for Enhancing Consumer Connection with Grocery Shopping Apps.
- Norman, D. (2013). The Design of Everyday Things: Revised and Expanded Edition. Basic Books; Revised edition.
- Thomas, A. G. (2004). Groceryshopping: list and non-list usage. Marketing, Intelligence & Planning.
- UhttBarcodeReference. (20 Май 2020 г.). Получено из GitHub: https://github.com/papyrussolution/UhttBarcodeReference
Диаграмма классов приложения
Рис. 1. Диаграмма классов разрабатываемого приложения