Попробуйте новые функции WWDC2020

Перенос стиля был добавлен в Create ML. Это первая модель вывода изображения, созданная Create ML.
Я рекомендую всем, кто работал с переносом стилей, попробовать этот удобный инструмент.
Потому что в нем есть несколько замечательных удобств!

Добавлена ​​быстрая модель для передачи стиля видео.

Процедура проста.

Подготовить

・Одно стильное изображение
・Одно проверочное изображение для проверки хода обучения
・Несколько изображений контента

Начните обучение с помощью кнопки «Поезд» и завершите обучение за несколько минут.

удобства

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

・Количество итераций… По умолчанию 500. Думаю, этого количества достаточно для обычных случаев.
И потеря стиля, и потеря контента будут завершены до 100 итераций, но большее количество итераций даст лучшие результаты (мне так кажется). Каждый образец GIF имел 1200 итераций. Хотя на это нужно всего 10 минут.
・Если увеличить силу, эффект изображения стиля на цвете и кромке усилится.
・При увеличении плотности рисунок применяется тонкая область изображения стиля, а когда она ослаблена, применяется узор широкой области.

Первые образцы GIF были применены по умолчанию.

Вы можете проверить результат промежуточного изображения.

Промежуточное изображение отображается каждые 5 итераций во время обучения.

Промежуточные модели можно сохранять.

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

Есть предустановленные изображения контента

Вы можете скачать 600 пейзажных изображений под названием Natural Content Datasets.
Я тренировался на нем.

это облегченная модель

Модель видео – 595 КБ
Модель изображения – 6,5 МБ.

Разница между моделью видео и моделью изображения.

Образу требуется около 10 раз сходимости обучения (хотя это занимает около 100 минут, так что это занимает несколько минут).
Я не понял разницы в результате. (Google Диск: правая модель изображения)

・Когда я делал флип-видео с помощью UIView, видео по-прежнему было более плавным.
Использование ЦП при использовании Capture Output составляет 10–20 % для видео и менее 10 % для изображения.
Использование памяти составило 60 МБ для видео. , 250 МБ для изображения и в 4 раза больше для изображения.
(при использовании iPod Touch)

Впечатление

С графическим интерфейсом легко работать, и вы можете сразу увидеть результаты, поэтому независимо от того, сколько раз вы тренировались, настраивая параметры и меняя изображения, вы не испытывали стресса. Интересно пробовать разные стили. Я думаю, что такие пробы и ошибки важны при создании приложений с моделями на основе изображений.

Используйте модели в проектах iOS

Входные и выходные данные модели представляют собой цветное изображение размером 512 пикселей.
Оно может быть обработано с помощью Vision VNCoreMLRequest как обычно.
Вы можете применить выходные данные захвата AVFoundation к модели как CVPixelBuffer(CMSampleBufferGetImageBuffer).

lazy var coreMLRequest:VNCoreMLRequest = {
        let model = try! VNCoreMLModel(for: windStyle().model)
        let request = VNCoreMLRequest(model: model, completionHandler: self.coreMLCompletionHandler0)
        return request
    }()
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
            guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
                return
            }
            currentBuffer = pixelBuffer

            let exifOrientation = exifOrientationFromDeviceOrientation()
            let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer:currentBuffer!, orientation: exifOrientation, options: [:])
            do {
                try imageRequestHandler.perform([self.coreMLRequest])
            } catch {
                print(error)
            }
    }

Результат будет возвращен в PixelBuffer.

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

Металл я не изучал, а сделал флип-видео в UIView.
Даже если весь Capture Output съел, загрузка процессора составила 10%, так что считаю обработку модели легковесной.

Подпишись на меня в Твиттере. Пожалуйста.
https://twitter.com/JackdeS11

Я создаю приложения, использующие Core ML, Create ML и Vision.
Если вы хотите использовать модель машинного обучения на периферийном устройстве (iOS), свяжитесь с нами по электронной почте.
rockyshikoku@ gmail.com

И хлопайте в ладоши.

Чао!