Vision là framework thá» giác máy tÃnh cá»§a Apple, tÃch hợp trong iOS, macOS và iPadOS, cung cấp API sẵn sà ng Äá» phân tÃch hình ảnh, video và dữ liá»u thá»i gian thá»±c. Nó bao gá»m phát hiá»n khuôn mặt, nháºn dạng vÄn bản, mã vạch, ÄÆ°á»ng viá»n Äá»i tượng và theo dõi chuyá»n Äá»ng — tất cả trên thiết bá» mà không gá»i dữ liá»u lên máy chá»§. Theo Apple Vision Documentation (2026), framework xá» lý Äến 60 khung hình má»t giây trên các thiết bá» có chip A14 trá» lên.
Các Äiá»m chÃnh
Vision là framework thá» giác máy tÃnh cấp cao ÄÆ°á»£c Apple giá»i thiá»u tại WWDC 2017. Nó cung cấp cho nhà phát triá»n giao diá»n thá»ng nhất Äá» thá»±c hiá»n các tác vụ phân tÃch hình ảnh và video khác nhau mà không cần Äi sâu và toán há»c thá» giác máy tÃnh hay tá»i ưu hóa cho bá» xá» lý thần kinh cụ thá». Vision tá»± Äá»ng sá» dụng Apple Neural Engine trên các thiết bá» có chip A12+.
Không giá»ng các thư viá»n cấp thấp như OpenCV, Vision trừu tượng hóa sá»± phức tạp: nhà phát triá»n tạo má»t Äá»i tượng VNRequest, cấu hình tham sá» và chạy xá» lý qua VNImageRequestHandler. Framework tá»± quyết Äá»nh sá» dụng ÄÆ¡n vá» tÃnh toán nà o — CPU, GPU hay ANE — và trả vá» kết quả có cấu trúc. Theo Apple (WWDC 2025), Vision ÄÆ°á»£c sá» dụng trong 40% ứng dụng App Store là m viá»c vá»i hình ảnh.
Vision bao gá»m API phát hiá»n khuôn mặt và các má»c (Äến 68 Äiá»m), nháºn dạng vÄn bản (OCR) há» trợ hÆ¡n 30 ngôn ngữ, quét mã vạch QR và EAN, theo dõi Äá»i tượng giữa các khung hình, phát hiá»n hình chữ nháºt vÃ ÄÆ°á»ng viá»n, phân loại hình ảnh qua Core ML, ưá»c tÃnh chuyá»n Äá»ng và luá»ng quang, và phát hiá»n ngưá»i vá»i phân Äoạn. Má»i thao tác ÄÆ°á»£c Äại diá»n bá»i má»t lá»p con riêng cá»§a VNRequest.
Vision ÄÆ°á»£c xây dá»±ng trên kiến trúc Request → Handler → Results, trong Äó má»i yêu cầu là má»t tác vụ cụ thá»: tìm khuôn mặt, nháºn dạng vÄn bản, theo dõi Äá»i tượng. Hãy xem các API ÄÆ°á»£c sá» dụng nhiá»u nhất.
VNRequest là lá»p cÆ¡ sá» trừu tượng mà tất cả các yêu cầu Vision cụ thá» kế thừa. Má»i yêu cầu có completionHandler, tham sá» cấu hình và regionOfInterest Äá» xá» lý má»t phần hình ảnh. Sau khi tạo yêu cầu, nó ÄÆ°á»£c truyá»n Äến VNImageRequestHandler (cho hình ảnh tÄ©nh) hoặc VNSequenceRequestHandler (cho luá»ng video). Kết quả ÄÆ°á»£c trả vá» dưá»i dạng mảng các quan sát — các lá»p con cá»§a VNObservation.
VNDetectFaceRectanglesRequest tìm tất cả khuôn mặt trong ảnh và trả vá» khung bao cá»§a chúng. VNDetectFaceLandmarksRequest xác Äá»nh thêm 68 Äiá»m má»c chÃnh: ÄÆ°á»ng viá»n mắt, lông mà y, mÅ©i, môi và hà m. VNDetectFaceCaptureQualityRequest Äánh giá chất lượng chụp khuôn mặt — từ 0 Äến 1 — hữu Ãch cho sinh trắc há»c. Theo Apple, Äá» chÃnh xác phát hiá»n khuôn mặt trên thiết bá» có Neural Engine Äạt 99% á» góc chụp chÃnh diá»n.
VNRecognizeTextRequest là API nháºn dạng ký tá»± quang há»c (OCR) trên hình ảnh. Nó há» trợ vÄn bản in bằng Latin, Cyrillic, Trung Quá»c, Nháºt Bản, Hà n Quá»c và các ngôn ngữ khác. Kết quả là mảng các Äá»i tượng VNRecognizedTextObservation, má»i Äá»i tượng chứa chuá»i vÄn bản, khung bao và mức Äá» tin cáºy. Hai chế Äá» có sẵn: Nhanh (Fast) Äá» quét tà i liá»u và ChÃnh xác (Accurate) cho phông chữ phức tạp.
Äá» sá» dụng Vision, chá» cần import framework, tạo má»t Äá»i tượng VNRequest và truyá»n nó Äến VNImageRequestHandler. Hãy xem và dụ vá» nháºn dạng vÄn bản trên má»t hình ảnh.
Mã tạo má»t VNRecognizeTextRequest vá»i chế Äá» nháºn dạng chÃnh xác, chạy nó trên hình ảnh và xuất vÄn bản Äã nháºn dạng ra bảng Äiá»u khiá»n. Và dụ ÄÆ¡n giản nà y minh há»a tÃch hợp Vision tá»i thiá»u trong má»t dá»± án Swift sá» dụng VNImageRequestHandler chá» trong và i dòng mã.
import Vision
// 1. Tạo yêu cầu nháºn dạng vÄn bản
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results
as? [VNRecognizedTextObservation]
else { return }
for observation in observations {
let topCandidate = observation
.topCandidates(1)
.first
print("VÄn bản: \(topCandidate?.string ?? "")")
}
}
// 2. Báºt chế Äá» chÃnh xác
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. Chạy handler
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Mã Swift cấu hình má»t VNRecognizeTextRequest vá»i mức nháºn dạng chÃnh xác và hiá»u chá»nh ngôn ngữ ÄÆ°á»£c báºt. VNImageRequestHandler tải hình ảnh từ URL và thá»±c thi yêu cầu. Kết quả chứa các chuá»i vÄn bản Äã nháºn dạng vá»i khung bao và Äiá»m tin cáºy cho má»i token. Mảng VNRecognizedTextObservation có thá» ÄÆ°á»£c hiá»n thá» thuáºn tiá»n trên mà n hình.
Äá» xá» lý video thá»i gian thá»±c, hãy sá» dụng VNSequenceRequestHandler thay vì VNImageRequestHandler. Nó chấp nháºn mảng các hình ảnh (khung hình) và thá»±c thi cùng má»t yêu cầu tuần tá»±, duy trì trạng thái giữa các khung hình — cần thiết cho viá»c theo dõi Äá»i tượng. VNSequenceRequestHandler tá»± Äá»ng quản lý bá» nhá»: các quan sát cÅ© bá» xóa khi Äá»i tượng rá»i khung hình. Hiá»u suất thá»i gian thá»±c phụ thuá»c và o Äá» phức tạp cá»§a yêu cầu: phát hiá»n khuôn mặt chạy á» 60 FPS, trong khi nháºn dạng vÄn bản chạy á» 15–30 FPS trên thiết bá» có chip A16.
Vision và Core Image là hai framework cá»§a Apple Äá» là m viá»c vá»i hình ảnh, nhưng chúng giải quyết các nhiá»m vụ cÆ¡ bản khác nhau. Core Image là framework Äá» lá»c và biến Äá»i hình ảnh (áp dụng bá» lá»c, hiá»u chá»nh mà u sắc, là m má»). Vision là framework Äá» hiá»u ná»i dung hình ảnh: những gì ÄÆ°á»£c thá» hiá»n trong Äó.
| Äặc Äiá»m | Vision | Core Image |
|---|---|---|
| Nhiá»m vụ | Phân tÃch và nháºn dạng | Lá»c và xá» lý |
| Phát hiá»n khuôn mặt | Có, vá»i các má»c | Chá» CIDetector |
| Nháºn dạng vÄn bản | Có (OCR) | Không |
| Bá» lá»c | Không | HÆ¡n 200 bá» lá»c |
| TÃch hợp Core ML | Có (VNCoreMLRequest) | Không |
| Theo dõi Äá»i tượng | Có (VNTrackObjectRequest) | Không |
| Hiá»u suất | Tá»i ưu cho ANE | GPU (Metal) |
Sá» dụng Vision khi bạn cần hiá»u những gì có trong hình ảnh: khuôn mặt, vÄn bản, mã QR, Äá»i tượng. Sá» dụng Core Image khi bạn cần sá»a Äá»i hình ảnh: áp dụng bá» lá»c, Äiá»u chá»nh mà u sắc, cắt. Thông thưá»ng hai framework nà y ÄÆ°á»£c kết hợp: Äầu tiên Core Image cải thiá»n chất lượng hình ảnh, sau Äó Vision nháºn dạng vÄn bản trên Äó.
Trong thá»±c tế, Vision và Core Image ÄÆ°á»£c sá» dụng cùng nhau trong các ứng dụng quét tà i liá»u. Core Image tá»± Äá»ng tÄng Äá» tương phản và loại bá» bóng (CIFilter vá»i CIPhotoEffectNoir), trong khi Vision nháºn dạng vÄn bản trên hình ảnh Äã cải thiá»n. Theo Apple (WWDC 2025), Äá» chÃnh xác OCR tÄng 15–20% khi tiá»n xá» lý hình ảnh qua Core Image so vá»i khung hình thô từ máy ảnh.
Má»t trưá»ng hợp sá» dụng quan trá»ng khác cho viá»c sá» dụng kết hợp là phân tÃch khuôn mặt thá»i gian thá»±c cho các ứng dụng thá»±c tế tÄng cưá»ng. Vision phát hiá»n khuôn mặt và xác Äá»nh 68 Äiá»m má»c, trong khi Core Image áp dụng các bá» lá»c lên các vùng ÄÆ°á»£c phát hiá»n. ARKit sá» dụng Vision Äá» theo dõi khuôn mặt và Core Image Äá» hiá»n thá» hiá»u ứng, mang lại Äá» trá» dưá»i 16 ms trên các thiết bá» có chip A15+.
Khi phát triá»n trong SwiftUI Äá» tÃch hợp Vision, giao thức Representable ÄÆ°á»£c sá» dụng, bá»c AVCaptureSession và VNImageRequestHandler trong UIViewRepresentable. Máy ảnh ÄÆ°á»£c hiá»n thá» qua PreviewView, má»i khung hình ÄÆ°á»£c truyá»n Äến VisionRequestHandler qua AVCaptureVideoDataOutputSampleBufferDelegate. Cách tiếp cáºn kiến trúc nà y bảo toà n tÃnh phản ứng cá»§a SwiftUI và cung cấp kết quả phân tÃch Vision dưá»i dạng thuá»c tÃnh @Published Äá» cáºp nháºt giao diá»n ngay láºp tức.
Vision ÄÆ°á»£c sá» dụng trong nhiá»u ứng dụng iOS: từ máy quét tà i liá»u Äến ứng dụng thá»±c tế tÄng cưá»ng. Hãy xem ba ká»ch bản Äiá»n hình.
VNDetectDocumentSegmentationRequest (có sẵn từ iOS 17+) tá»± Äá»ng phát hiá»n ranh giá»i tà i liá»u trong hình ảnh, hiá»u chá»nh góc nhìn và trả vá» hình ảnh Äã là m thẳng. Kết hợp vá»i VNRecognizeTextRequest, nó tạo má»t máy quét OCR Äầy Äá»§ chức nÄng có thá» nháºn dạng hóa ÄÆ¡n, danh thiếp và trang sách. Theo Apple, phân Äoạn tà i liá»u mất 30–80 ms trên thiết bá» có chip A15.
VNTrackObjectRequest theo dõi chuyá»n Äá»ng cá»§a má»t Äá»i tượng ÄÆ°á»£c chá»n giữa các khung hình video theo thá»i gian thá»±c. Nhà phát triá»n chá» Äá»nh khung bao cá»§a Äá»i tượng trên khung Äầu tiên, và Vision tá»± Äá»ng tÃnh toán vá» trà má»i cá»§a nó trên các khung tiếp theo. Viá»c theo dõi ÄÆ°á»£c sá» dụng trong các ứng dụng phân tÃch video, trò chÆ¡i AR và há» thá»ng giáám sát. Äá» chÃnh xác theo dõi trên chip A16 là 95% á» tá»c Äá» di chuyá»n cá»§a Äá»i tượng lên Äến 30 pixel má»i khung hình.
VNDetectRectanglesRequest tìm các vùng hình chữ nháºt trong ảnh: mà n hình, tá» giấy, biá»n hiá»u, tà i liá»u. API trả vá» tá»a Äá» góc vá»i hiá»u chá»nh góc nhìn. Kết hợp hình chữ nháºt vá»i VNDetectContoursRequest có thá» trÃch xuất các ÄÆ°á»ng viá»n chÃnh xác cá»§a Äá»i tượng — hữu Ãch cho các ứng dụng thá»±c tế tÄng cưá»ng và trình biên táºp Äá» há»a. VNDetectContoursRequest trả vá» mảng các Äiá»m Äiá»u khiá»n ÄÆ°á»ng viá»n có thá» ÄÆ°á»£c chuyá»n Äá»i thà nh UIBezierPath Äá» hiá»n thá».
Câu há»i thưá»ng gặp
iOS 11+ cho các API cÆ¡ bản, iOS 13+ cho nháºn dạng vÄn bản (VNRecognizeTextRequest), iOS 17+ cho phân Äoạn tà i liá»u. Vision cÅ©ng có sẵn trên macOS 10.13+ và iPadOS 13+.
Có, Vision xá» lý luá»ng video qua VNSequenceRequestHandler và AVFoundation. Framework há» trợ Äến 60 FPS trên thiết bá» có chip A14+ khi sá» dụng các yêu cầu nhanh.
Vision — framework gá»c cá»§a Apple vá»i tá»i ưu hóa tá»± Äá»ng cho ANE và GPU. OpenCV — thư viá»n Äa ná»n tảng vá»i khả nÄng rá»ng hÆ¡n nhưng yêu cầu tá»i ưu hóa thá»§ công và không há» trợ Neural Engine.
Qua VNCoreMLRequest: tạo mô hình Core ML, khá»i tạo VNCoreMLModel, truyá»n nó Äến VNCoreMLRequest và chạy qua VNImageRequestHandler. Xcode sẽ tá»± Äá»ng tạo má»t lá»p Swift cho mô hình.
Gián tiếp — VNDetectFaceLandmarksRequest xác Äá»nh vá» trà các Äiá»m chÃnh trên khuôn mặt, và VNDetectFaceExpressionsRequest (iOS 17+) Äánh giá nụ cưá»i và nháy mắt qua mắt nhắm.
Tá»ng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm