Vision: framework thị giác máy tính và hoạt động trên iOS

Tác giả: IT Sectr Đã đăng: 2026-03-26 Thời gian đọc: 8 phút

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 — framework thị giác máy tính trên thiết bị cá»§a Apple với API phát hiện khuôn mặt, văn bản và đối tượng
  • VNRequest — lớp cÆ¡ sở cho tất cả các thao tác: phát hiện, phân loại, theo dõi và nhận dạng
  • Nhận dạng văn bản hỗ trợ Latin, Cyrillic, Trung Quốc và hÆ¡n 30 ngôn ngữ
  • Phát hiện khuôn mặt xác định đến 68 điểm mốc chính với ước tính cảm xúc và xoay đầu
  • Tích hợp Core ML cho phép chạy các mô hình tùy chỉnh qua VNCoreMLRequest

Vision là gì?

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.

Các khả năng chí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.

Các API Vision chính

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 — nền tảng cá»§a tất cả các thao tác

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.

Phát hiện khuôn mặt và các mốc

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.

Nhận dạng văn bả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.

  • VNDetectFaceRectanglesRequest — phát hiện khuôn mặt trả về khung bao
  • VNDetectFaceLandmarksRequest — 68 điểm mốc khuôn mặt
  • VNRecognizeTextRequest — OCR hỗ trợ hÆ¡n 30 ngôn ngữ
  • VNDetectBarcodesRequest — quét QR, EAN, PDF417
  • VNCoreMLRequest — chạy mô hình Core ML tùy chỉnh

Tích hợp Vision trong iOS

Để 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.

Ví dụ mã Swift

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ã.

swift
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 so với Core Image

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ểmVisionCore Image
Nhiệm vụPhân tích và nhận dạngLọc và xử lý
Phát hiện khuôn mặtCó, với các mốcChỉ CIDetector
Nhận dạng văn bảnCó (OCR)Không
Bộ lọcKhôngHơn 200 bộ lọc
Tích hợp Core MLCó (VNCoreMLRequest)Không
Theo dõi đối tượngCó (VNTrackObjectRequest)Không
Hiệu suấtTối ưu cho ANEGPU (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.

Trường hợp sử dụng Vision

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.

Quét tà i liệu

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.

Theo dõi đối tượng trong video

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.

Phát hiện hình chữ nhật và đường viền

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

Vision có sẵn từ phiên bản iOS nà o?

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+.

Vision có thể hoạt động với video thời gian thực không?

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 khác gì so với OpenCV?

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.

Là m thế nà o để thêm mô hình ML tùy chỉnh và o Vision?

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.

Vision có hỗ trợ nhận dạng cảm xúc không?

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

  • Vision — framework thị giác máy tính trên thiết bị cá»§a Apple với kiến trúc thống nhất VNRequest → VNHandler → VNObservation
  • Phát hiện khuôn mặt xác định đến 68 điểm mốc chính với đánh giá chất lượng và xoay đầu
  • Nhận dạng văn bản (OCR) hỗ trợ hÆ¡n 30 ngôn ngữ trong hai chế độ: nhanh và chính xác
  • Quét mã vạch hoạt động với QR, EAN-13, Code 128, PDF417 và Aztec
  • Tích hợp Core ML qua VNCoreMLRequest cho phép chạy các mô hình tùy chỉnh
  • Theo dõi đối tượng giữa các khung hình video hoạt động thời gian thá»±c đến 60 FPS
  • Vision và Core Image bổ sung cho nhau: nhận dạng + lọc hình ảnh

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.

Thảo luận dự án

Đọc thêm