1.機(jī)器學(xué)習(xí)
CoreML是今天蘋果在WWDC上推出的一款面向開發(fā)者的機(jī)器學(xué)習(xí)技術(shù)框架颅夺,這也充分說明了蘋果公司在未來人工智能領(lǐng)域早已提前布局骨饿。
什么是機(jī)器學(xué)習(xí)?
機(jī)器學(xué)習(xí)是 智能的 一個(gè)分支 贫途,他的目的在于吸收任何的數(shù)據(jù)比如說(圖像峦椰,文本盐欺,語言 泊柬,統(tǒng)計(jì)數(shù)據(jù)) 然后作出預(yù)測數(shù)據(jù)當(dāng)中所隱藏的特征或是行為。
我們來看看 ML 現(xiàn)在都可以做些什么?
面部識別
部特征識別
特征檢測和替換
機(jī)器是怎么學(xué)習(xí)的?
我們使用海量的圖片來訓(xùn)練他們識別面部特征杂曲,最終被訓(xùn)練出來的結(jié)果就叫做 『訓(xùn)練好的模型』
訓(xùn)練好的模型有什么用?
有什么用庶艾?看看大家的想象力吧
接下來介紹的CoreML專門用于處理圖像
2.我們先來看看蘋果官網(wǎng)對CoreML的介紹:
??經(jīng)過訓(xùn)練的模型是將機(jī)器學(xué)習(xí)算法應(yīng)用于一組訓(xùn)練數(shù)據(jù)的結(jié)果。該模型基于新的輸入數(shù)據(jù)進(jìn)行預(yù)測解阅。例如落竹,一個(gè)接受過地區(qū)歷史房價(jià)的模型泌霍,當(dāng)考慮到臥室和浴室的數(shù)量時(shí)货抄,可能能夠預(yù)測出房子的價(jià)格。
??CoreML是特定于領(lǐng)域的框架和功能的基礎(chǔ)朱转。CoreML支持圖像分析的遠(yuǎn)景蟹地,自然語言處理的基礎(chǔ)(例如,NSLinguisticTagger類)藤为,以及用于評估學(xué)習(xí)決策樹的GameplayKit怪与。CoreML本身構(gòu)建在底層的基礎(chǔ)上,比如Accelerate和BNNS缅疟,以及Metal Performance Shaders.
??CoreML針對設(shè)備的性能進(jìn)行了優(yōu)化分别,從而減少了內(nèi)存占用和功耗。嚴(yán)格地在設(shè)備上運(yùn)行可以確保用戶數(shù)據(jù)的隱私存淫,并保證當(dāng)網(wǎng)絡(luò)連接不可用時(shí)耘斩,您的應(yīng)用程序仍然具有功能性和響應(yīng)性。
3.案例展示(物體識別)
功能實(shí)現(xiàn):點(diǎn)擊手機(jī)屏幕中心位置桅咆,識別手機(jī)攝像頭所檢測到的物體括授,在AR里并用3D效果展示結(jié)果。
原理分析:通過手勢可以截取當(dāng)前屏幕的畫面岩饼,把當(dāng)前的畫面丟給已經(jīng)訓(xùn)練好的模型荚虚,再把當(dāng)前識別的結(jié)果包裝成SCNNode節(jié)點(diǎn)加到當(dāng)前sceneView中。
項(xiàng)目用到了蘋果官方一個(gè)已經(jīng)訓(xùn)練好的模型籍茧,把識別到的結(jié)果用ARKit的3D文字顯示出來版述。模型下載地址,
核心代碼:
func perfomVisionRequest(pixelBuffer:CVPixelBuffer) {
let visionModel = try! VNCoreMLModel(for: self.resentModel.model)
let request = VNCoreMLRequest(model: visionModel) { (response, error) in
if error != nil{return}
guard let observations = response.results else{return}
//把結(jié)果中的第一位拿出來進(jìn)行分析
let observation = observations.first as! VNClassificationObservation
print("name \(observation.identifier) and confidence is \(observation.confidence)")
DispatchQueue.main.async {
self.displayPredictions(text: observation.identifier)
}
}