import Vision import CoreML import CoreGraphics // MARK: - STAMP DETECTOR (Promos) class StampDetector { static var model: VNCoreMLModel? = { guard AppConfig.enableStampDetection else { return nil } return ModelManager.shared.getModel(name: "IYmtgStampClassifier") }() static func hasStamp(image: CGImage, orientation: CGImagePropertyOrientation = .up) -> Bool { guard let model = model else { return false } let request = VNCoreMLRequest(model: model) request.imageCropAndScaleOption = .scaleFill let handler = VNImageRequestHandler(cgImage: image, orientation: orientation, options: [:]) try? handler.perform([request]) guard let results = request.results as? [VNClassificationObservation], let top = results.first else { return false } return top.identifier == "Stamped" && top.confidence > 0.8 } }