人脸识别变量(google-cloud-vision)

问题描述 投票:0回答:2

我正在努力将人脸识别实现到iOS应用程序中。我收到许多标签,如'眼镜'或'微笑',但没有看到一个实际的变量告诉我它是一个人脸(以及有多大程度的自信)。

我错过了什么变量,我们如何使用该功能?

google-cloud-vision
2个回答
0
投票

我认为您可能没有使用正确的功能类型,因为您似乎正在获取标签而不是面部属性。

我建议您查看Detecting FacesFace Detection Tutorial文档,您可以在其中找到详细信息和一些有用的示例,您可以将其用作参考,以了解有关使用Vision API的detecting faces过程的更多信息。


0
投票

您可以按照几个步骤检测图像中的面部。

  1. 创建您的URLRequest func createRequest() -> URLRequest? { // Create your request URL if let url = URL(string: "YOUR_API_KEY") { var request = URLRequest(url: url) request.httpMethod = "POST" request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue(Bundle.main.bundleIdentifier ?? "", forHTTPHeaderField: "X- Ios-Bundle-Identifier") let jsonRequest = [ "requests": [ "features": [ [ "type": "FACE_DETECTION", "maxResults": 10 //change as per your requirement ] ] ] ] let jsonData = try? JSONSerialization.data(withJSONObject: jsonRequest) request.httpBody = jsonData return request } return nil }
  2. 在后台线程中运行请求 let task: URLSessionDataTask = URLSession.shared.dataTask(with: request) { (data, response, error) in guard let data = data, error == nil else { print(error?.localizedDescription ?? "") return } print(data)// Analyze with this data } task.resume()
  3. 分析数据(如果要更新任何UI组件,则在主线程上)
    DispatchQueue.main.async(execute: {
            do {
                guard let json =
                    try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else { return }
                guard let responses = json["responses"] as? NSArray else { return }
                if responses.count > 0 {
                    guard let response = responses.firstObject as? [String: Any] else { return }
                    guard let faceAnnotations = response["faceAnnotations"] as? NSArray else {
                        print(false, "No face detected, please try another photo.")
                        return
                    }
                    if faceAnnotations.count > 0 {
                        print("Face successfully detected: \(faceAnnotations.count)")
                    }  else {
                        print("No face detected, please try another photo.")
                    }
                } else {
                    print("Error while face detection process, please try again.")
                }
            } catch {
                print("Error while face detection process, please try again.")
            }            
        })
© www.soinside.com 2019 - 2024. All rights reserved.