bekommen ein Problem mit bekommen von VNClassificationObservation
.Wie man Objekt rect/Koordinaten von VNClassificationObservation
Meine Ziel-ID, um das Objekt zu erkennen und Popup mit dem Objektnamen anzuzeigen, ich bin in der Lage, Name zu bekommen, aber ich kann nicht Objektkoordinaten oder Rahmen erhalten.
Hier Code:
let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: requestOptions)
do {
try handler.perform([classificationRequest, detectFaceRequest])
} catch {
print(error)
}
Dann ich mit
func handleClassification(request: VNRequest, error: Error?) {
guard let observations = request.results as? [VNClassificationObservation] else {
fatalError("unexpected result type from VNCoreMLRequest")
}
// Filter observation
let filteredOservations = observations[0...10].filter({ $0.confidence > 0.1 })
// Update UI
DispatchQueue.main.async { [weak self] in
for observation in filteredOservations {
print("observation: ",observation.identifier)
//HERE: I need to display popup with observation name
}
}
}
AKTUALISIERT:
lazy var classificationRequest: VNCoreMLRequest = {
// Load the ML model through its generated class and create a Vision request for it.
do {
let model = try VNCoreMLModel(for: Inceptionv3().model)
let request = VNCoreMLRequest(model: model, completionHandler: self.handleClassification)
request.imageCropAndScaleOption = VNImageCropAndScaleOptionCenterCrop
return request
} catch {
fatalError("can't load Vision ML model: \(error)")
}
}()
Ich benutze Inceptionv3() .model und es sieht so aus, dass ich keine Koordinaten bekommen kann. – Svitlana
Das liegt daran, dass Inception-v3 keine Koordinaten liefert, sondern nur ein Wörterbuch mit Klassennamen und die Wahrscheinlichkeiten für diese Klassen. –
Ok vielen Dank, suchen Sie nach einem anderen Modell – Svitlana