美文网首页
swift 加载图像mlmodel的方式

swift 加载图像mlmodel的方式

作者: 梁间 | 来源:发表于2018-09-03 16:39 被阅读0次

第一种使用Vision框架加载

lazy var classificationRequest: [VNRequest] = {
        do {
            let model = try VNCoreMLModel(for: self.model.model)
            let classificationRequest = VNCoreMLRequest(model: model, completionHandler: self.handleClassification)
            return [ classificationRequest ]
        } catch {
            fatalError("Can't load Vision ML model: \(error)")
        }
    }()
    
    func handleClassification(request: VNRequest, error: Error?) {
       ... ...
    }
    
    func runCoreML(buffer: CVImageBuffer) {
       
        let newbuffer = self.resize(pixelBuffer: buffer)
        
        let classifierRequestHandler = VNImageRequestHandler(cvPixelBuffer: newbuffer!, options: [:])
        do {
            try classifierRequestHandler.perform(self.classificationRequest)
        } catch {
            print(error)
        }

第二种直接使用model

public func predict(buffer: CVImageBuffer){
   
        let newbuffer = self.resize(pixelBuffer: buffer)
        let _input= ModelInput(image: image!.buffer!)

        if let output = try? model.prediction(from:_input) {
            let mlMultiArray = output.net_output
            ... ...
        } else {
            print("error")
            
        }
    }

class ModelInput : MLFeatureProvider {
    /// Input image of scene to be classified as color (kCVPixelFormatType_32BGRA) image buffer, 224 pixels wide by 224 pixels high
    var image: CVPixelBuffer
    
    var featureNames: Set<String> {
        get {
            return ["image"]
        }
    }
    
    func featureValue(for featureName: String) -> MLFeatureValue? {
        if (featureName == "image") {
            return MLFeatureValue(pixelBuffer: image)
        }
        return nil
    }
    
    init(image: CVPixelBuffer) {
        self.image = image
    }
}

相关文章

  • swift 加载图像mlmodel的方式

    第一种使用Vision框架加载 第二种直接使用model

  • iOS--图像加载UIImagePickerController

    一、图像加载 iOS图像加载通常有四种方式 1、相册 用户的相册资源,UIImagePickerControlle...

  • UI -- 图像加载

    一、图像加载 iOS图像加载通常有四种方式 1、相册 用户的相册资源,UIImagePickerControlle...

  • UI控件及方法大集合(续)

    (10) 一、图像加载 iOS图像加载通常有四种方式 1、相册 用户的相册资源,UIImagePick...

  • 四、Core ML模型的热更新

    关键词:Core ML,热更新,动态部署,动态加载 在《二、使用Core ML加载.mlmodel模型文件》中我们...

  • swift —— tips swift 中的懒加载实现

    objc objc 对象的懒加载 swift swift 的懒加载 方式 1lazy 保证数据在用到的时候才会被加...

  • opencv基本的图像操作

    参考opencv官方文档OpenCV: Basic Operations on Images 加载图像,常用的方式...

  • 有效加载大位图

    注意:有几个库遵循加载图像的最佳实践。 您可以在应用中使用这些库以最优化的方式加载图像。 我们建议使用Glide库...

  • 深入理解js

    延迟加载 (Lazyload) 三种实现方式 延迟加载也称为惰性加载,即在长网页中延迟加载图像。用户滚动到它们之前...

  • 懒加载和预加载

    一、懒加载 1.1、什么是懒加载  懒加载也叫延迟加载,指的是在长网页中延迟加载图像,是一种很好优化网页性能的方式...

网友评论

      本文标题:swift 加载图像mlmodel的方式

      本文链接:https://www.haomeiwen.com/subject/qfkiwftx.html