Как получить конкретную информацию об изображении с помощью Firebase-CloudVision (ML) - PullRequest
0 голосов
/ 09 апреля 2019

Я использую API Firebase cloudVision (ML) для чтения изображений.Я могу получить информацию об изображении обратно, но она не является конкретной.

Пример: когда я беру и загружаю изображение MacBook, оно выдает вывод как «ноутбук, ноутбук, электронное устройство».и т.д. ".

Но я хочу получить его фирменный знак, как Apple MacBook, я видел несколько приложений, делающих это.Я не мог найти какую-либо информацию по этому поводу, поэтому здесь я публикую.Пожалуйста, предложите или руководство, если кто-нибудь сталкивался с этим

Мой код:

    func pickedImage(image: UIImage) {
    imageView.image = image
    imageView.contentMode = .scaleAspectFit
    guard let image = imageView.image else { return }
    // let onCloudLabeler = 
        Vision.vision().cloudImageLabeler(options: options)

    let onCloudLabeler = Vision.vision().cloudImageLabeler()


    // Define the metadata for the image.
    let imageMetadata = VisionImageMetadata()


    imageMetadata.orientation = .topLeft

    // Initialize a VisionImage object with the given UIImage.
    let visionImage = VisionImage(image: image)
    visionImage.metadata = imageMetadata

    onCloudLabeler.process(visionImage) { labels, error in
        guard error == nil, let labels = labels, !labels.isEmpty 
   else {
            // [START_EXCLUDE]
            let errorString = error?.localizedDescription ?? "No results returned."
            print("Label detection failed with error: \(errorString)")
            //self.showResults()
            // [END_EXCLUDE]
            return
        }

        // [START_EXCLUDE]
        var results = [String]()
        let resultsText = labels.map { label -> String in
            results.append(label.text)
            return "Label: \(label.text), " +
                "Confidence: \(label.confidence ?? 0), " +
            "EntityID: \(label.entityID ?? "")"
            }.joined(separator: "\n")
        //self.showResults()
        // [END_EXCLUDE]
        print(results.count)
        print(resultsText)

        self.labelTxt.text = results.joined(separator: ",")
        results.removeAll()

    }


}

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Как сказал Пуф, приложения, которые вы видели, вероятно, используют свою собственную модель ML.ML Kit теперь поддерживает создание пользовательских моделей классификации изображений из ваших собственных данных тренировок.Проверьте функциональность AutoML Vision Edge здесь: https://firebase.google.com/docs/ml-kit/automl-vision-edge

0 голосов
/ 09 апреля 2019

Если вы видели, как другие приложения делают то, чего не делает ваше приложение, скорее всего, эти другие приложения используют модель ML, отличную от той, которую вы используете.

Если вы хотите выполнитьтак же, используя ML Kit для Firebase, вы можете использовать пользовательскую модель , которую вы либо обучали сами, либо получали из другого источника.

...