最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

iOS App 實作(20) Face Detection

XAMPP下载 admin 850浏览 0评论

QQ截图20180919081747

 Description:
Apple 在 WWDC 2017 中發佈了 Vision 這個新的 framework,本篇來實作裡面的臉部偵測功能。

Component:

UIImageView
Highlight function:
在實作 Vision framework 中物件偵測時基本上分成三個步驟,分別是:

Requests – 是要求 Framework 為你進行偵測。
Handlers – 是要 Framework 在 Request 產生後執行一些東西或處理這個 Request。
Observations – 是得到你想偵測之物件。
Requests 及 Handlers 實作方法如下:

let detectRequest = VNDetectFaceRectanglesRequest(completionHandler: self.handleFaces)
let detectRequestHandler = VNImageRequestHandler(cgImage: (testImg?.cgImage)!, options: [ : ])
宣告好 handler 後讓 handler 開始進行偵測的方式是呼叫該物件之 perform method。

try detectRequestHandler.perform([detectRequest])
執行完 handler 後會得到 observations 在這邊也就是人臉。

因之前已在宣告在執行完 Request 後就呼叫 handleFaces()。此 function 的功能為判斷是否有偵測到人臉,如果有就標示出人臉沒有的話就無動作。

func handleFaces(request: VNRequest, error: Error?) {
guard let faceDetectResults = request.results as? [VNFaceObservation] else {
fatalError(“Unexpected result type from VNDetectFaceRetanglesRequest.”)
}

if faceDetectResults.count == 0 {
print(“No face detect.”)
return
}

self.addSharpToFace(forObservations: faceDetectResults)
}
Additional:
在取得偵測結果時,每個 Observations 裡面會有 boundingBox property, 此 property 是指該偵測結果在原始圖片中的相對百分比位置,因此在繪製標示用的圖層時需額外進行座標轉換。

转载请注明:XAMPP中文组官网 » iOS App 實作(20) Face Detection

您必须 登录 才能发表评论!