27 августа, 2018в Мобильная разработка, Разработка веб-приложений, Веб-сервисы
Основная структура машинного обучения:
Core ML — это платформа машинного обучения Apple, которую можно использовать для
интеграции модели машинного обучения в ваше приложение, что делает его более интеллектуальным. Расширение файла
для Core ML должно быть .mlmodel.
Что такое машинное обучение?
Машинное обучение — это приложение, дающее компьютерам возможность учиться
без явного программирования. Получайте доступ к данным и используйте их для самостоятельного изучения.
Методы машинного обучения:
Контролируемое обучение: все данные помечены, и алгоритмы учатся прогнозировать выходные данные на основе
входных данных. Например, если мы захватываем изображение кошки, это означает, что имя кошки уже помечено.
Обучение без учителя: Все данные не помечены. Изучите информацию из входных данных.
Обучение с подкреплением: алгоритм глубокого машинного обучения. Взаимодействуйте с системой и
проверяйте каждое движение.
Основная модель машинного обучения:
Доступны следующие типы моделей для доступа к Core ML для вашего приложения IOS
Мобильная сеть:
На основе оптимизации архитектуры. Используется для создания облегченной глубокой нейронной
сети. Доступно 1000 категорий, таких как деревья, животные, еда, транспорт, люди и
многое другое.
SqueezeNet:
идентификация изображений на основе его следов
Places205-GoogLeNet:
обнаружить изображения из набора аэропорт, лес, побережье.
Начальная версия 3:
Эта модель обнаруживает и доминирует присутствие на изображении набора из 1000 категорий.
Внедрение базовой модели ML Inception v3 в приложения IOS:
1. Загрузка модели Core ML:
В ядре ML доступно множество различных моделей. мы используем
модель Inception v3. Загрузите фреймворк по следующей ссылке:
https://developer.apple.com/machine-learning/build-run-models/
2. Создайте новый проект Xcode:
Используя шаблон приложения с одним представлением, мы создаем проект.
3. Интеграция Core ML в приложение IOS:
Загруженная начальная модель V3 добавлена в каталог проекта IOS и включена в
рабочее пространство вашего проекта. Он содержит классы моделей для обработки базовой модели ML. Импортируйте
фреймворк CoreML и Vision f во ViewController.
4. Включение UIImagePickerController:
Мы используем UIImagePickerController для захвата изображения с камеры устройства и
анализа этого изображения для базовой модели ML и получения имени и описания в формате json
.
В файле info.plist вашего приложения необходимо добавить ключ NS CameraUsageDescription. Этот ключ используется
для доступа камеры устройства к вашему приложению.
Следующая строка используется для идентификации выбора камеры
imagePicker.sourceType = .камера
Следующая функция используется для доступа к захваченному изображению в ваше приложение.
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [String: Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.image = изображение
imagePicker.dismiss (анимация: правда, завершение: ноль)
guard let ciImage = CIImage(image: image) else {
fatalError("не удалось преобразовать uiimage в CIImage")
}
обнаружить(image: ciImage)
}
}
5. Получение результата распознавания изображений из модели CoreML V3:
* Загрузите модель машинного обучения через сгенерированный класс
guard let model = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("невозможно загрузить модель ML")
}
* отправить запрос и получить имя и описание изображения
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results as? [VNClassificationObservation],
let topResult = results.first
else {
fatalError («неожиданный тип результата от VNCoreMLRequest»)
}
}
do { попробуйте handler.perform([запрос]) }
catch { print(error) }
6. Разработайте пользовательский интерфейс для отображения захваченного изображения и отображения имени
Используя UIImage , UILabel спроектируйте пользовательский интерфейс в раскадровке.
let topResult = results.first
let name = topResult.identifier
Получите имя идентификатора и отобразите его в UILabel.