Вы предоставили мало или совсем не подробно в своем вопросе, но вот все идеи, которые у меня есть.
Что касается «глубокого обучения», то изменение размера изображения, конечно, повлияет на производительность модели.Тем не менее, размер изображения, который вы описываете, вероятно, достаточно для ваших задач.Тренировать модель в «родном» разрешении для фронтальных камер iOS - плохая идея.Тренировка для достижения лучших результатов займет значительно больше времени (вам также будет трудно получить данные о тренировках, если вы не прошли повышенную выборку).Кроме того, разные устройства iOS имеют разное фронтальное разрешение.В общем, ваша «повторная выборка» составляет отлично - это проблема конверсии.
В iOS есть несколько способов передискретизации и масштабирования изображений.Как вы устанавливаете масштабирование?Применяете ли вы imageCropAndScaleOption
к созданному запросу?
let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in
self?.processClassifications(for: request, error: error)
})
request.imageCropAndScaleOption = .centerCrop
return request
Как преобразовать модель в coreML?Что-то вроде линий ...
model = coremltools.converters.keras.convert(
'./models/best.h5',
input_names=['image'],
output_names=['output'],
image_input_names='image',
image_scale=1/255.0
)
При этом убедитесь, что представление изображения (для ввода) правильно представлено.Вы можете легко проверить, напечатав модель после преобразования.
Вдоль этих линий каналы в обученной модели (RGB
) совпадают со всеми оцениваемыми изображениями или, возможно, модель обучена в обратных каналах (BGR
) и входными даннымииз AVFoundation
в RGB
?
Если вы предоставите более подробную информацию о своей модели, о том, что она делает, как вы конвертируете ее в CoreML и как вы ее оцениваете, я могу обновить свой ответ.Но, пожалуйста, сначала обратитесь к вышеуказанному.