Tôi đang sử dụng CoreImage
trên IOS để phát hiện các khuôn mặt trong một hình ảnh. Nó hoạt động tốt khi có nhiều khuôn mặt, nhưng không làm việc cho khuôn mặt đơn giản như thế này:Phát hiện khuôn mặt IOS CoreImage tại tất cả các hướng
Khuôn mặt là thực sự lớn và rõ ràng, nhưng CoreImage
không thể phát hiện nó. Tôi nghĩ rằng đó có thể là do số kCGImagePropertyOrientation
của tôi.
Tôi đặt nó thành 5, đơn giản vì đó là những gì một hướng dẫn trực tuyến đã làm. Tuy nhiên, hình ảnh tôi đang xử lý là do người dùng tải lên, vì vậy tôi không biết định hướng khuôn mặt trước đó. Có cách nào để thử tất cả các hướng? Cách thích hợp để thực hiện phát hiện khuôn mặt CoreImage
là những hình ảnh nào không biết trước bàn tay?
Đây là mã của tôi:
var imageOptions = Dictionary<String,Any>()
imageOptions[CIDetectorImageOrientation] = 5
imageOptions[CIDetectorSmile] = true
let image = CIImage(cgImage: imageView.image!.cgImage!)
let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy)
let faces = faceDetector?.features(in: image, options: imageOptions as? [String : AnyObject])
Các nhận diện khuôn mặt sẽ chỉ làm việc cho các định hướng cụ thể, nếu bạn muốn cho phép bất kỳ loại định hướng đến được đã xử lý, bạn có thể phải đọc hướng từ chính siêu dữ liệu hình ảnh, sau đó chuyển hướng đó tới bộ lọc của bạn. – Pochi