Skip to content

Commit

Permalink
Clean up performance (#1265)
Browse files Browse the repository at this point in the history
* Fix casting warnings

* Pad upload text

* Enforce consistent styling

* Fix backward compatibility
  • Loading branch information
jrcrespoh authored Aug 26, 2021
1 parent e96e6d9 commit 31243d7
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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) }
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ struct ClassifyView: View {
List(categories, id: \.category) { category, confidence in
Text("\(category): \(confidence)")
}
.listStyle(PlainListStyle())
}
} else {
Button("Classify Image") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
Expand Down

0 comments on commit 31243d7

Please sign in to comment.