CoreML не может проверить входные данные - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема с CoreML, потому что, когда я хочу, чтобы программа проверила изображение, появляется ошибка:

[coreml] Error Domain = com.apple.CoreML Code = 1 "Inputизображение элемента изображения не соответствует описанию модели "UserInfo = {NSLocalizedDescription = изображение элемента входного изображения не соответствует описанию модели, NSUnderlyingError = 0x2807c0cf0 {Ошибка домена = com.apple.CoreML Code = 1" Изображение не ожидается типа OneComponent8, вместо этого 32ARGB"UserInfo = {NSLocalizedDescription = Изображение не ожидается, тип OneComponent8, вместо этого 32ARGB}}} 2018-10-24 06: 47: 53.975118 + 0200 признатьMyFood [25848: 7075048] [coreml] Ошибка при проверке входных данных.

Ниже приведен код, где я конвертирую изображение:

UIGraphicsBeginImageContextWithOptions(CGSize(width: 343, height: 447), true, 2.0)
image.draw(in: CGRect(x: 0, y: 0, width: 343, height: 447))
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

let attrs = [kCVPixelBufferCGImageCompatibilityKey: kCFBooleanTrue, kCVPixelBufferCGBitmapContextCompatibilityKey: kCFBooleanTrue] as CFDictionary
var pixelBuffer : CVPixelBuffer?
let status = CVPixelBufferCreate(kCFAllocatorDefault, Int(newImage.size.width), Int(newImage.size.height), kCVPixelFormatType_32ARGB, attrs, &pixelBuffer)
guard (status == kCVReturnSuccess) else {
    return
}

Буду благодарен, если кто-нибудь сможет мне помочь!

1 Ответ

0 голосов
/ 24 октября 2018

Ключ в сообщении об ошибке: «Изображение не ожидается, тип OneComponent8, вместо 32ARGB»

Вы предоставляете ему цветное изображение (kCVPixelFormatType_32ARGB), но модель ожидает оттенки серогоизображение (kCVPixelFormatType_OneComponent8).

...