Всем привет.

В этой статье мы узнаем, как использовать функцию пользовательской модели Huawei Machine Learning Kit в приложении электронной коммерции. Целью использования этой функции будет категоризация продуктов с помощью машинного обучения в приложениях электронной коммерции. Мы сделаем по нему демонстрационный проект и протестируем результаты. Особенно в приложениях электронной коммерции очень важно классифицировать продукты по правильным категориям. Причина этого в том, что приложения электронной коммерции анализируют категории, представляющие интерес для пользователя, и хотят увеличить продажи, показывая нам продукты из аналогичных категорий на разных экранах приложения.

С помощью пользовательской модели Huawei ML Kit вы можете легко использовать сверточную нейронную сеть (CNN), один из важных алгоритмов глубокого обучения. С помощью алгоритма CNN изображения можно классифицировать с высокой вероятностью успеха. Например, когда вы тренируете изображения кошек и собак с помощью CNN, если вы использовали достаточно данных, они смогут различать новую картинку - кошку или собаку.

С моделью HMS Custom мы будем обучать модель без использования кода. Затем мы разработаем проект на языке Kotlin. Я не буду использовать в проекте какую-либо стороннюю библиотеку и архитектуру, кроме Пикассо. Написав коды на простейшем уровне, я постараюсь сделать так, чтобы вы могли легко использовать их в соответствии с желаемой архитектурой.

MindSpore Lite - это платформа, созданная для пользовательских моделей, предоставляемых HMS ML Kit, для упрощения интеграции и разработки. С MindSpore Lite мы можем создавать и тренировать нашу собственную модель.

Комплект HMS ML Kit обеспечивает функциональность обучения передачи. С помощью глубокого обучения и обучения моделей вы можете быстро обучать и создавать новые модели в своем приложении. В настоящее время поддерживается только классификация изображений.

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

1 - Зарегистрируйтесь на сайте разработчиков Huawei

2 - Загрузите подключаемый модуль HMS ToolKit
Этот подключаемый модуль IDE предоставляет все инструменты, необходимые для разработки собственного приложения, интегрированного с HMS Core ( создание, кодирование, отладка и тестирование) и выпустите его в HUAWEI AppGallery.

Я открыл настройки Android Studio и щелкнул вкладку плагинов. Затем я установил плагин, который появился, когда я набрал HMS Toolkit на торговой площадке. После этого мне нужно перезапустить студию android.

3 - Если Python 3.7.5 ранее не устанавливался, загрузите и установите Python на свой компьютер. (На данный момент поддерживается только версия 3.7.5)
Официальная ссылка для скачивания.

Если вы получите этот результат, когда запустите команду, которую я написал ниже. Вы правильно установили Python.

4. Прежде чем приступить к реальным процессам, которые нам нужно выполнить, мы готовим набор изображений, которые будут обучать машинное обучение. Я буду тренировать машинное обучение с изображениями из категорий пальто, футболки, джинсы и обувь.
Чтобы лучше понять, как выглядит мой набор данных, вы можете увидеть снимок экрана ниже. Вы также можете использовать эту ссылку, если хотите скачать мой набор данных.

После этих шагов мы будем готовы использовать функцию AI Create в HMS ToolKit. С AI Create мы сможем классифицировать изображения без использования кода.
Чтобы классифицировать изображения:
Изображения должны быть высокого качества и разделены на соответствующие классы. Путь и имена классов изображений содержат только буквы, цифры или символ подчеркивания (_). Пробелы и другие символы не допускаются.
Нижний предел классификационного числа набора обучающих данных равен 2, а верхний предел - 1000.
Каждый класс в наборе обучающих данных должен содержать не менее 10 изображений .
Поддерживаемые форматы изображений: .bmp, .jpg, .jpeg, .png или.gif.

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

Приступим к построению модели.

5- Мы можем сделать этот шаг, когда любой проект открыт в Android Studio. В студии Android выбираем Codding Assistant на вкладке HMS, как показано на рисунке ниже.

Он может произвести процесс аутентификации на появившемся экране. После этого процесса мы должны выбрать опцию AI Create, как на картинке.

Затем мы продолжаем шаги, выбирая классификацию изображений и нажимая «Подтвердить» на следующем экране. Если после нажатия кнопки «Подтвердить» появляется всплывающее окно с предупреждением о php, это может быть связано с тем, что вы не можете установить PHP 3.7.5.

После выполнения этих шагов и нажатия кнопки «Подтвердить» мы увидим экран, подобный показанному ниже.

На этом этапе мы должны выбрать папку с нашим набором данных, щелкнув «Пожалуйста, выберите папку с изображениями поезда».
Вы можете использовать раздел «Дополнительно», если хотите. В этом разделе вы можете проверить количество и скорость учебного процесса. Если вы выберете слишком много, процесс обучения займет больше времени, если ваш набор данных большой. Вы также можете столкнуться с ситуацией переобучения.
После выбора обучающего набора вы можете щелкнуть для создания модели. Когда вы нажимаете эту кнопку, начинается процесс обучения.

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

После завершения процесса обучения файл MindSpore будет создан по пути, который мы выбрали на предыдущем шаге. В примере мы видим, что точность составляет 91,67%. Мы прогнозируем, что наша модель будет работать успешно. Вы можете значительно увеличить этот коэффициент в зависимости от качества и четкости используемого изображения.

6- В разделе «Выберите папку с тестовым изображением» я выбрал тестовые данные, которые были готовы ранее. Моя модель, 26 из 28 изображений, знали, к какой категории она принадлежит.

После этого этапа вы можете продолжить процесс, используя наш файл MindSpore в созданном вами проекте. Если вы хотите, вы можете создать демонстрационное приложение с нашим файлом MindSpore, нажав кнопку «Создать демо» внизу экрана. Я создам проект для обеих возможностей. Так что вы можете продолжить с того, что хотите.

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

7- После этого этапа мы продолжим создание нового проекта. Во-первых, давайте начнем с внесения необходимых дополнений в наши файлы gradle и manifest. Наш файл манифеста и градиента будет следующим. Нам нужно только добавить в Manifest разрешение на доступ в Интернет. Мы добавили библиотеки, которые будем использовать, и необходимый блок кода в Gradle, поскольку мы будем использовать файл в формате .ms.

8- Мы добавляем MindSpore и labels.txt в файл ресурсов, который мы создали ранее. Файлы ресурсов и label.txt должны выглядеть следующим образом.

9- Теперь приступим к кодированию. Во-первых, давайте начнем с создания необходимых xml-файлов.
Мы использовали только одно представление ресайклера в файле activity_main.xml.

Я создал элементы RecyclerView следующим образом.

10- Я создал модель продукта, которую мы будем использовать в приложении.

11- Прежде всего, я создал класс объекта под названием LabelUtils. В этом классе давайте напишем функцию, в которой мы читаем метку, на которой написаны категории, которые мы используем в нашей модели. Затем давайте отправим запрос нашей модели и напишем еще одну функцию, которая даст результат.
С помощью параметра, который мы отправили в функцию readLabels, мы создали фрагмент кода, в котором мы читаем содержимое метки.
В функции processResult, мы отправляем вероятность и список, к какой категории он принадлежит. В результате мы возвращаем наиболее вероятную категорию. Если вы хотите вернуть весь список и возможности, вам нужно активировать часть со строкой комментария.

Мы увидим, где вызывать эти функции, при написании следующих классов.

12- Я создал абстрактный класс под названием ModelOperator. Сюда входят такие функции, как функции ввода-вывода. Мы будем использовать их при запросе нашей модели, а также при получении результатов и управлении ими.

Затем мы создали класс под названием ImageLabelModel. В этом классе мы управляем типом ввода, вводом и результатом вывода. Важный момент заключается в том, что modelName и modelLabelFile должны иметь те же имена, что и в вашем файле ресурсов.

13- Класс, который мы создали с именем InterpreterManager, очень важен. Мы создали класс, в котором мы сделали все запросы и настройки, сделанные для ML.

В этом классе мы сначала получаем всю информацию о нашей модели с помощью класса, который я написал ранее. Затем мы создаем объекты MLCustomLocalModel и MLModelExecutorSettings. Затем мы устанавливаем входы. После этого процесса мы, наконец, отправляем запрос в нашу MLCustomModel, устанавливаем результат в hashmap и возвращаем hashmap нашему адаптеру - мы напишем следующий шаг - с обратным вызовом.

14- Мы создали адаптер recyclerview. После того, как каждое изображение продукта было загружено с помощью Picasso, мы конвертируем изображение в растровое изображение и отправляем это растровое изображение в нашу модель для анализа. После получения результата с помощью hashmap мы устанавливаем его в product_category (TextView).

15- Наконец, давайте закодируем MainActivity. Мы вручную установили 4 продукта на адаптер recyclerview. Как вы, возможно, заметили, в поле категории сейчас указано «». Потому что эту информацию мы получим в ML после загрузки картинки.

Теперь наше приложение готово. Теперь о том, какое приложение нас ждет, покажем несколько скриншотов. Давай проверим.

Как вы можете видеть на видео, разделы категорий не появляются перед отправкой запроса в ML. Затем, когда результат возвращается из запроса, мы устанавливаем Textview. Вы можете увидеть результаты по категориям 4 различных продуктов на экране.

В результате мы успешно использовали пользовательскую модель Huawei ML Kit для автоматической категоризации продуктов для приложений электронной коммерции. Мы сосредоточились на этом варианте использования только в этой статье. Тем не менее, особенность пользовательской модели Huawei ML Kit - это успешная функция, которую можно использовать во многих различных сценариях использования. Он может использовать эту функцию с очень высоким процентом успеха.

Вы можете найти исходные коды проекта здесь.



Большое спасибо за то, что прочитали мою статью!

использованная литература