2017-10-30 7 views
0

私はcoreMLから来る配列の最初の要素を出力しようとしていますか?しかし、それは完全な配列を与えるだけのようです。Swift 4 CoreMLは配列の最初の値を取得しません

guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return } 

guard let model = try? VNCoreMLModel(for: Inceptionv3().model) else { return } 
let request = VNCoreMLRequest(model: model) { (finishedReq, err) in 
    guard let results = finishedReq.results as? [VNClassificationObservation] else { return } 

    guard let firstObservation = results.first else { return } 

    print(firstObservation.identifier, firstObservation.confidence) 

    DispatchQueue.main.async { 
     self.identifierLabel.text = "\(firstObservation.identifier) \(firstObservation.confidence * 100)" 
    } 
+0

出力を提供できますか?このコードは私には正しいと思われます。 – jpetrichsr

答えて

0

出力を提供すると、コードがうまく見えるので理解しやすくなります - 最初の要素を印刷することになっています。

実際のコードスニペットを複数回実行していて、コンソール出力のように表示され、配列が印刷されている可能性があります。より具体的には、実際にはモデルとそのすべてと一緒に何度も何度もあなたのrequestを開始して実行することができます。

ようになり、印刷や配列とは対照的に
request number 1 output first element 
request number 2 output first element 
request number 3 output first element 
request number 4 output first element 

:出力は、次のようになり

["request number 1 output first element", "request number 2 output first element", "request number 3 output first element", "request number 4 output first element"] 

が、それはただの推測である、あなたのコンソール出力を投稿してください。

関連する問題