CoreImage中有一个新的但尚未记录的CICoreMLModelFilter
。它带有两个参数:
inputImage -用作输入图像的图像。对于也使用背景图片的滤镜,这就是前景图片。
inputModel -用于在图像上施加效果的CoreML模型。
这个想法非常简单-拍摄图像,应用样式转换并吐出风格化的图像。
因此我将CoreML模型加载到测试应用程序中,并试图将此模型作为inputModel
键传递:
guard
let mlFilter = CIFilter(name: "CICoreMLModelFilter")
else {
return nil
}
let model = StarryStyle().model
mlFilter.setValue(workingImage, forKey: "inputImage")
mlFilter.setValue(model, forKey: "inputModel")
guard
let mlResult = mlFilter.outputImage
else {
return nil
}
每当我尝试运行此非常简单的代码时,都会出现以下异常:
[Espresso::handle_ex_] exception=Unsupported engine type
无论我尝试加载哪种MLModel,它总是抛出上述异常。我正在Mojave(10.14)上运行Swift 4.2。
有人尝试玩CoreImage和CoreML吗?
答案 0 :(得分:0)
我在Mac OS 10.14上遇到此错误-在适用于iOS 12 sans错误的模型上以及在较早版本的Mac OS-10.13上都遇到问题。最初,我认为这与浮点量化有关,但是我在非量化的float 32模型和不同设备上进行了尝试,并将其用于以下模型:
我不确定这是否只是内部处理的异常-在AMD上,我得到一个略有不同的错误;
[Espresso:handle_ex_] exception=<private>
我开始认为它是无害的吗?
答案 1 :(得分:0)
添加了一个有趣的答案/发现,因为错误消息是相同的,但是我没有使用与CoreML
API相关的任何内容(或者我认为如此)。
WatchKit扩展[7896:536979] [espresso] [Espresso :: handle_ex_] exception =不支持的引擎类型
我在使用文本输入控制器时收到此消息。具体是presentTextInputController
。
我相信这只是因为CoreML引擎正在模拟器上运行而出现。 至少对于text input controller
,这是此消息的明显原因。
我们免费获得的文本输入控制器,包括Scribble文本输入。显然,它是谨慎地搭载在相同的CoreML引擎上,否则它将无法识别涂鸦。
没有任何方法可以禁用涂鸦输入来实际测试该理论。默认情况下,听写和涂抹功能处于启用状态。您只能禁用emoji
和/或animatedEmoji
。但这很明显是事实。