2017-10-22 141 views
0

我一直在嘗試使用CoreML(Apple的機器學習庫)。我下面這些教程上手使用VNCoreMLModel和Inceptionv3.model()之間的區別?

1)https://www.appcoda.com/coreml-introduction/

2)https://www.raywenderlich.com/164213/coreml-and-vision-machine-learning-in-ios-11-tutorial

第一個教程使用一個盜夢空間V3和第二教程使用Places205-GoogLeNet模型的解釋。

畢竟基本建立步驟

的Places205-GoogLeNet教程使用下面的代碼

func detectScene(image: CIImage) { 
    answerLabel.text = "detecting scene..." 

    // Load the ML model through its generated class 
    guard let model = try? VNCoreMLModel(for: GoogLeNetPlaces().model) else { 
     fatalError("can't load Places ML model") 
    } 
    } 

和第二代碼使用此

guard let prediction = try? model.prediction(image: pixelBuffer!) else { 
    return 
} 

的是這之間的區別兩種方法,哪一種更推薦,因爲這兩種類型都可以用來傳遞像素緩衝區並顯示結果?

回答

2

在第一個教程中,您需要照顧自己調整大小爲299×299的圖像。 在第二篇教程中,他們將使用Vision框架自動完成它。 我覺得視覺方法是清潔

+0

關於Core ML與Vision框架之間的API如何相互關聯,有一篇文章[here](http://deepdojo.com/mlmodel-api)。 – otto

0

Vision框架是一套工具,幫助您設置所有的圖像處理流水線。在這些工具中,有CoreML和您提供的模型,但它不僅限於機器學習。 Vision可幫助您:預處理,重新縮放,裁剪圖像,檢測矩形,條形碼,面部等等。檢查docs獲取更多信息。除了直接在圖像上執行的工作外,它還有助於對模型執行請求,如果您有複雜的請求序列或想要將這些操作與其他處理連接起來,這非常重要。

純粹的CoreML,你必須自己實現所有這些功能,因爲CoreML責任只是設置你的模型,並獲得簡單的API。

Vision不在身邊CoreML一個純粹的包裝,因爲它確實比要求執行和初始化模式多得多,但它使用CoreML一些它的功能(具體 - 在VNCoreMLRequest)。

在您提供的鏈接中:1st(appcoda)是關於純CoreML,2nd(Ray)是關於Vision。

相關問題