Tin tức và phân tích của tất cả các thiết bị di động

iPhone: Cách sử dụng các tính năng phát hiện văn bản của iOS

Vision trong iOS 11 có mọi thứ bạn cần để xây dựng một ứng dụng có thể nhận dạng các ký tự văn bản đồng thời với quá trình triển khai. Bạn không cần kiến ​​thức kỹ thuật về mã: điều hướng chức năng khá đơn giản. Ngoài ra, việc thực hiện là liền mạch.

khung tầm nhìn

Khung tầm nhìn cho phép bạn dễ dàng thực hiện bất kỳ hoạt động nào liên quan đến các chi tiết máy tính. Việc cài đặt thực hiện việc phát hiện các dấu vết trên khuôn mặt và khuôn mặt, nhận dạng các mã của barras, ghi hình ảnh, phát hiện chức năng chung và phát hiện văn bản. Vision cũng cho phép bạn sử dụng các mô hình Core ML tùy chỉnh cho các hoạt động như phát hiện hoặc phân loại đối tượng.

VN DetectTextRectangularRequest

các VN DetectTextRectangularRequest là một yêu cầu phân tích hình ảnh để tìm các vùng văn bản có thể nhìn thấy trong một hình ảnh; Hàm trả về các ký tự văn bản dưới dạng một hộp chọn hình chữ nhật với nguồn gốc và kích thước.

Nếu bạn đã quen sử dụng Swift và đã lập trình được một thời gian, có lẽ bạn đang thắc mắc Vision đang sử dụng cái gì khi có các tính năng khác như Image và AVFoundation. Vâng, tầm nhìn chính xác hơn và đơn giản hơn. Tính năng này cũng có sẵn trên nhiều nền tảng. Tuy nhiên, việc sử dụng Vision có thể yêu cầu nhiều sức mạnh xử lý và thời gian xử lý hơn.

Để sử dụng Vision để phát hiện văn bản, cần có Xcode 9 và một thiết bị chạy iOS 11.

Tạo máy ảnh với Avcapture

Trước hết, bạn cần tạo một máy ảnh với AVCapture; Điều này được thực hiện bằng cách khởi tạo đối tượng AVcapturesession để thực hiện thu thập thời gian thực hoặc ngoại tuyến. Sau đó, đăng nhập khi thiết bị kết nối.

Để tiết kiệm thời gian tạo giao diện người dùng cho ứng dụng của bạn, hãy cân nhắc việc có một dự án khởi động trước, điều này sẽ giúp bạn có thời gian tập trung vào việc học khung công tác Vision.

  1. Mở dự án ban đầu của bạn. Các chế độ xem trên bảng phân cảnh đã sẵn sàng và được định cấu hình cho bạn.
  2. Về anh ấy ViewController.swift, tìm kiếm phần mã với các tính năng và cửa hàng.
  3. dưới lối raImageView, dkhai báo một phiên cho AVcapturesession : Được sử dụng bất cứ khi nào bạn muốn thực hiện các hành động dựa trên luồng trực tiếp.
  4. Chọn AVcapturesessionAVmediatype vào video vì nó sẽ kích hoạt máy ảnh để cho phép bạn tiếp tục quay
  5. Xác định thiết bị đầu vào và đầu ra.
  6. Đầu vào là những gì máy ảnh sẽ nhìn thấy và đầu ra là video ở định dạng loại do KCVPixelFormatType_32GRA đặt.
  7. Cuối cùng, thêm vào cấp lại chứa video để ImageView và bắt đầu phiên. Chức năng được gọi là inViewdidload. Bạn cũng cần thiết lập khung lớp.

Gọi hàm trong viewWillAppear phương pháp.

Vì các giới hạn vẫn chưa được hoàn thiện, hãy ghi đè lên viewDidLayoutSubviews () Phương pháp cập nhật các lớp liên kết.

Sau khi phát hành iOS 10, cần có một mục bổ sung trong Info.plist, mục này cung cấp lý do để sử dụng máy ảnh. Nó cũng cần thiết để thiết lập mô tả về việc sử dụng máy ảnh.

Phát hiện văn bản; Cách hoạt động của Khung tầm nhìn

Có ba bước để triển khai Vision trong ứng dụng.

  1. Người quản lý – Đây là khi bạn muốn khung làm việc gì đó sau khi yêu cầu đã được gọi.
  2. Quan sát đây là những gì bạn muốn làm với dữ liệu do bạn cung cấp từ một yêu cầu
  3. Kiến nghị – đây là khi bạn yêu cầu khung Phát hiện

Tốt nhất, hãy tạo một yêu cầu văn bản như VNdetecttextrectariesrequest. Đây là một loại VNrequest xung quanh văn bản. Khi khuôn khổ đã hoàn thành ứng dụng, chúng tôi tiến hành gọi dettexthandler hàm số. Bạn cũng sẽ cần biết chính xác khuôn khổ đã được công nhận, hãy đặt điều này thành hộp báo cáo= true

Tiếp theo, xác định các quan sát chứa tất cả các kết quả của VNdetecttextrectariesrequest, hãy nhớ thêm Vision vào camera đầu ra. Vì Vision tiết lộ các API cấp cao nên việc làm việc với nó rất an toàn.

Hàm kiểm tra xem cmsamplebuffer tồn tại và đưa ra nắm bắt đầu ra. Sau đó, bạn nên tiến hành tạo một biến yêu cầu Gì 1 loại từ điển VNimageoption. các VNmage Tùy chọn là một loại cấu trúc chứa các thuộc tính và dữ liệu của máy ảnh. Vì vậy, bạn cần tạo tệp VNimagerequesthandler và chạy yêu cầu văn bản.

Vẽ các đường viền xung quanh văn bản được phát hiện

Bạn có thể bắt đầu bằng cách để khung vẽ hai hộp, một hộp cho mỗi chữ cái mà nó phát hiện và hộp kia cho mỗi từ. Các bảng là sự kết hợp của tất cả các ô ký tự sẽ tìm thấy yêu cầu của bạn.

  • Xác định các điểm trên chế độ xem của bạn để giúp bạn định vị các hộp.
  • Sau đó, tạo một CALayer; sử dụng V Quan sát leobservation để xác định các hạn chế của nó, tạo điều kiện thuận lợi cho quá trình xác định bảng.

Bây giờ bạn đã xác định tất cả các chức năng của mình.

Để kết nối các dấu chấm của bạn, hãy bắt đầu bằng cách thực thi mã của bạn không đồng bộ. Vì vậy, bạn cần kiểm tra xem có vùng nào trong kết quả của bạn VNTextObservation.

Bây giờ bạn có thể gọi hàm của mình, hàm này sẽ vẽ một hộp bên trong khu vực. Kiểm tra các hộp ký tự trong khu vực, sau đó gọi dịch vụ có hộp xung quanh mỗi chữ cái.

Sau đó, tạo một biến RequestOptions. Bây giờ bạn có thể tạo một VNImageRequestHandler đối tượng và thực hiện yêu cầu văn bản đã tạo.

Cuối cùng, bước cuối cùng là chạy mã hiển thị với tính năng phát trực tiếp. Bạn sẽ cần lấy đầu ra video và chuyển đổi nó thành bộ đệm cmsamplebuffer.

Mẹo bổ sung

  1. Luôn cố gắng cắt hình ảnh và chỉ xử lý phần bạn cần. Điều này sẽ làm giảm thời gian xử lý và dung lượng bộ nhớ
  2. Bật sửa ngôn ngữ khi làm việc với các ký tự không phải số, sau đó tắt tính năng này khi làm việc với ký tự số
  3. Bao gồm xác thực các chuỗi số được công nhận để xác nhận độ chính xác và loại bỏ việc hiển thị giá trị sai cho người dùng.
  4. Trình điều khiển máy ảnh tài liệu là đối tác tốt nhất để nhận dạng văn bản vì chất lượng hình ảnh đóng một vai trò quan trọng trong nhận dạng văn bản.
  5. Cân nhắc đặt chiều cao văn bản tối thiểu để tăng hiệu suất.

Với Vision, bạn có mọi thứ bạn cần để nhận dạng văn bản. Vì Vision dễ sử dụng và tốn ít thời gian để thực hiện, việc sử dụng nó gần như tương đương với chơi với Legos. Hãy thử kiểm tra ứng dụng của bạn trên các đối tượng, phông chữ, ánh sáng và kích thước khác nhau. Bạn cũng có thể ngạc nhiên khi kết hợp Vision với Core ML.