Введение
Я учусь в Apple Developer Academy @BINUS, где многому научился в программировании, дизайне и совместной работе. В Apple Developer Academy мне поставили задачу создать приложение, реализующее машинное обучение. Это был интересный опыт, потому что раньше я не знал, как внедрить машинное обучение в мобильное приложение.
Как найти наборы данных?
Главное требование перед созданием приложения машинного обучения — наличие модели машинного обучения. Модель — это файл, обученный распознаванию определенных шаблонов/алгоритмов. Из-за этого нам нужно найти набор данных файла (изображение, видео или текст) из Kaggle или Roboflow, который будет обучен с помощью CreateML, чтобы он сможет распознавать закономерности. В моем случае мне нужен набор данных игральных карт, которые уже классифицированы на основе ценности карты (например, туз пик, 10 червей и т. д.).
Как обучать наборы данных с помощью CreateML?
- Сначала откройте «Создать ML», а затем нажмите «Новый документ».
2. В моем случае я хочу, чтобы моя модель могла распознавать более одного объекта одновременно. Поэтому я выбрал Обнаружение объектов. После этого нажмите Далее.
3. Введите имя проекта для вашей модели.
4. Вставьте изображения данных обучения и изображения данных тестирования. Установите итерации в зависимости от потребностей. В моем случае я использую около 7000 итераций. Оставьте размер пакета и размер сетки автоматически. Вот ссылка на набор данных, который я использовал: https://universe.roboflow.com/augmented-startups/playing-cards-ow27d/dataset/4
5. Нажмите «Старт» и позвольте модели обучиться идентифицировать предоставленные вами данные.
6. Когда тренировка будет завершена, график должен выглядеть так, как показано на рисунке ниже. В правом верхнем углу вы можете увидеть результат теста для обучения, проверки и тестирования. Данные обучения около 70% — 90% идеальны.
Как вставить модель в ваше приложение?
После того, как вы обучите свою модель, вы можете открыть меню вывода в CreateML, а затем нажать кнопку «Получить», чтобы экспортировать модель в файл с расширением «.mlmodel». Чтобы использовать модель в своем приложении, вы можете перетащить файл «.mlmodel» в менеджер проекта Xcode. Чтобы использовать модель, я создаю новый файл swift, а затем импортирую видение, как показано в фрагментах кода ниже:
import Vision import AVFoundation import UIKit
После этого создайте функцию setupDetector() для настройки и загрузки модели машинного обучения, как показано ниже:
func setupDetector() { let modelURL = Bundle.main.url(forResource: "playingCardModel2", withExtension: "mlmodelc") do { let visionModel = try VNCoreMLModel(for: MLModel(contentsOf: modelURL!)) let recognitions = VNCoreMLRequest(model: visionModel, completionHandler: detectionDidComplete) self.requests = [recognitions] } catch let error { print(error) } }
Что еще в приложении?
Я не только использовал фреймворк Vision для создания приложения, я также использую AVFoundation и UIKit для настройки камеры приложения. Я также использую SwiftUI для создания домашней и бортовой страницы, а затем объединяю ее с UIKit с помощью моих друзей из академии.
Чему я научился в этом проекте?
После завершения проекта я многое узнал о машинном обучении и о том, как реализовать эту технологию в своем приложении. Хотя у меня есть только 7 дней, чтобы закончить проект, мне удалось изучить и завершить проект с помощью моих друзей и наставников, даже без какого-либо опыта работы с машинным обучением и UIKit.