Object Detection Model Preview and Model on App having varying results on the image despite it being the same model

Hello, I have an object detection model that I integrated into an app. When I put an image on the preview for the Object Detection File, it classifies the image correctly. However, if I put the same image onto the app, it classifies it differently with different values. I am confused as to how this is happening. Here is my code:

import UIKit import CoreML import Vision import ImageIO

class SecondViewController: UIViewController, UINavigationControllerDelegate {

@IBOutlet weak var photoImageView: UIImageView!



lazy var detectionRequest: VNCoreMLRequest = {
  
    do {
        let model = try VNCoreMLModel(for: EarDetection2().model)
        
        let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in
            self?.processDetections(for: request, error: error)
        })
        request.imageCropAndScaleOption = .scaleFit
        return request
    } catch {
        fatalError("Failed to load Vision ML model: \(error)")
    }
}()


@IBAction func testPhoto(_ sender: UIButton) {
    let vc = UIImagePickerController()
    vc.sourceType = .photoLibrary
    vc.delegate = self
    present(vc, animated: true)


}






@IBOutlet weak var results: UILabel!


func updateDetections(for image: UIImage) {

    let orientation = CGImagePropertyOrientation(rawValue: UInt32(image.imageOrientation.rawValue))
    guard let ciImage = CIImage(image: image) else { fatalError("Unable to create \(CIImage.self) from \(image).") }
    
    DispatchQueue.global(qos: .userInitiated).async {
        let handler = VNImageRequestHandler(ciImage: ciImage, orientation: orientation!)
        do {
            try handler.perform([self.detectionRequest])
        } catch {
            print("Failed to perform detection.\n\(error.localizedDescription)")
        }
    }
}

func processDetections(for request: VNRequest, error: Error?) {
    DispatchQueue.main.async {
        guard let results = request.results else {
            print("Unable to detect anything.\n\(error!.localizedDescription)")
            return
        }
    
        let detections = results as! [VNRecognizedObjectObservation]
        self.drawDetectionsOnPreview(detections: detections)
    }
}

func drawDetectionsOnPreview(detections: [VNRecognizedObjectObservation]) {
    guard let image = self.photoImageView?.image else {
        return
    }
    
    let imageSize = image.size
    let scale: CGFloat = 0
    UIGraphicsBeginImageContextWithOptions(imageSize, false, scale)

    
    
    for detection in detections {
        
        image.draw(at: CGPoint.zero)
        
        print(detection.labels.map({"\($0.identifier) confidence: \($0.confidence)"}).joined(separator: "\n"))
        print("------------")
        
        results.text  = (detection.labels.map({"\($0.identifier) confidence: \($0.confidence)"}).joined(separator: "\n"))
        
        
        
        //            The coordinates are normalized to the dimensions of the processed image, with the origin at the image's lower-left corner.
                    let boundingBox = detection.boundingBox
                    let rectangle = CGRect(x: boundingBox.minX*image.size.width, y: (1-boundingBox.minY-boundingBox.height)*image.size.height, width: boundingBox.width*image.size.width, height: boundingBox.height*image.size.height)
                    UIColor(red: 0, green: 1, blue: 0, alpha: 0.4).setFill()
                    UIRectFillUsingBlendMode(rectangle, CGBlendMode.normal)
                }
                
                let newImage = UIGraphicsGetImageFromCurrentImageContext()
                UIGraphicsEndImageContext()
                self.photoImageView?.image = newImage
            }
        }

        extension SecondViewController: UIImagePickerControllerDelegate {
            func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
                picker.dismiss(animated: true)

                guard let image = info[.originalImage] as? UIImage else {
                    return
                }

                self.photoImageView?.image = image
                updateDetections(for: image)
            }
        }

I attached pictures of the model preview and the app preview (it may be hard to tell but they are the same image). I have also attached pictures of my files and storyboard. Any help would be great!

Thanks in advance!

Object Detection Model Preview and Model on App having varying results on the image despite it being the same model
 
 
Q