From 31243d7c5a7a92f4e86e7ac590951cd0a67f845d Mon Sep 17 00:00:00 2001 From: Jesus Crespo Date: Thu, 26 Aug 2021 15:07:19 -0500 Subject: [PATCH] Clean up performance (#1265) * Fix casting warnings * Pad upload text * Enforce consistent styling * Fix backward compatibility --- .../PerformanceExample/Shared/Process.swift | 40 +++++++++++++------ .../Shared/Views/ClassifyView.swift | 1 + .../Shared/Views/UploadView.swift | 1 + 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Process.swift b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Process.swift index 567d007da..884e1d834 100644 --- a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Process.swift +++ b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Process.swift @@ -105,7 +105,7 @@ class Process: ObservableObject { try? handler.perform([request]) trace?.stop() - guard let observations = request.results as? [VNClassificationObservation] else { + guard let observations = request.results else { print("Failed to obtain classification results.") await updateStatusAsync(to: .failure(.classify)) return @@ -133,7 +133,7 @@ class Process: ObservableObject { try? handler.perform([request]) trace?.stop() - guard let observation = request.results?.first as? VNSaliencyImageObservation else { + guard let observation = request.results?.first else { print("Failed to generate saliency map.") await updateStatusAsync(to: .failure(.saliencyMap)) return @@ -257,11 +257,19 @@ class Process: ObservableObject { try? handler.perform([request]) trace?.stop() - guard let observations = request.results as? [VNClassificationObservation] else { - print("Failed to obtain classification results.") - updateStatus(to: .failure(.classify)) - return - } + #if swift(>=5.5) + guard let observations = request.results else { + print("Failed to obtain classification results.") + updateStatus(to: .failure(.classify)) + return + } + #else + guard let observations = request.results as? [VNClassificationObservation] else { + print("Failed to obtain classification results.") + updateStatus(to: .failure(.classify)) + return + } + #endif categories = observations .filter { $0.hasMinimumRecall(0.01, forPrecision: precision) } @@ -285,11 +293,19 @@ class Process: ObservableObject { try? handler.perform([request]) trace?.stop() - guard let observation = request.results?.first as? VNSaliencyImageObservation else { - print("Failed to generate saliency map.") - updateStatus(to: .failure(.saliencyMap)) - return - } + #if swift(>=5.5) + guard let observation = request.results?.first else { + print("Failed to generate saliency map.") + updateStatus(to: .failure(.saliencyMap)) + return + } + #else + guard let observation = request.results?.first as? VNSaliencyImageObservation else { + print("Failed to generate saliency map.") + updateStatus(to: .failure(.saliencyMap)) + return + } + #endif let inputImage = CIImage(cvPixelBuffer: observation.pixelBuffer) let scale = Double(ciImage.extent.height) / Double(inputImage.extent.height) diff --git a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/ClassifyView.swift b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/ClassifyView.swift index 693c99901..89fd27b9d 100644 --- a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/ClassifyView.swift +++ b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/ClassifyView.swift @@ -32,6 +32,7 @@ struct ClassifyView: View { List(categories, id: \.category) { category, confidence in Text("\(category): \(confidence)") } + .listStyle(PlainListStyle()) } } else { Button("Classify Image") { diff --git a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/UploadView.swift b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/UploadView.swift index 80752d41f..5bdaa13b9 100644 --- a/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/UploadView.swift +++ b/performance/SwiftUIPerformanceQuickstart/PerformanceExample/Shared/Views/UploadView.swift @@ -46,6 +46,7 @@ struct UploadView: View { Image(systemName: "questionmark.square").padding(.bottom) Text("No saliency map found!\nPlease download an image and generate a saliency map first.") .multilineTextAlignment(.center) + .padding(.horizontal) } Spacer() }