iPhone:如何使用 iOS 文本檢測功能

iOS 11 中的 Vision 擁有創建應用程序所需的一切,該應用程序可以識別文本字符並同時實現。您不需要技術編碼知識 - 導航該功能非常簡單。更重要的是,實施是無縫的。

願景框架

視覺框架使您能夠輕鬆實施任何涉及計算機細節的任務。該結構執行人臉和人臉地標檢測、條形碼識別、圖像配準、一般特徵跟踪和文本檢測。Vision 還允許您將自定義 Core ML 模型用於分類或對象檢測等任務。

VN DetectTextRectanglesRequest

該 VN DetectTextRectanglesRequest 是查找一個圖像中可見的文本的區域的圖像分析請求; 該功能將文本字符作為具有原點和大小的矩形邊界框返回。

如果您習慣使用 swift 並且已經編程了一段時間,那麼您可能想知道 Vision 在有其他功能(例如圖像和 AVFoundation)時有什麼用途。嗯,Vision 更準確,更直接。該功能也可在各種平台上使用。但是,使用 Vision 可能需要更多的處理能力和處理時間。

要使用 Vision 進行文本檢測,您需要 Xcode 9 和運行 iOS 11 的設備。

使用 Avcapture 創建相機

首先,您需要使用AVCapture創建一個相機 ;這是通過初始化一個對象 AVcapturesession 來執行實時或離線捕獲。之後,建立與設備連接的會話。

為了節省您構建應用程序 UI 的時間,請考慮擁有一個入門項目,首先,這將使您有時間專注於學習 Vision 框架。

打開您的入門項目。故事板中的視圖應該已經準備好並為您設置好了。

在 ViewController.swift 上, 查找帶有函數和出口的代碼部分。

outlet  - ImageView 下,AVcapturesession聲明一個會話 ——只要您希望基於實時流執行操作,就可以使用它。

將 AVcapturesession 和 AVmediatype 設置 為視頻,因為您將執行相機拍攝以使其能夠連續運行

定義輸出和輸入設備

輸入是相機將看到的,輸出是 KCVPixelFormatType_32GRA 設置類型格式的視頻。

最後,將 包含視頻的子層添加 到 imageView 並啟動會話。該函數稱為 inViewdidload。 您還需要設置圖層的框架。

viewWillAppear 方法中調用該函數 。

由於邊界尚未最終確定,請覆蓋 viewDidLayoutSubviews ( ) 方法以更新綁定的層。

iOS 10 發布後,需要在 Info.plist 中增加一個條目,這提供了使用相機的原因。您還應該設置隱私-相機使用說明。

文本檢測;視覺框架的工作原理

在應用程序上實現 Vision 需要三個步驟。

處理程序—— 這是你希望框架在請求被調用後做一些事情的時候。

觀察—— 這是你想要對你提供的數據做的事情,從一個請求開始

請求—— 這是你要求檢測框架的時候

理想情況下,您可以創建一個文本請求作為 VNdetecttextrectanglesrequest。這是一種 圍繞文本的 VNrequest。框架完成應用程序後,您將繼續調用 Dettexthandler 函數。您還想知道被識別的確切幀,將其設置為 Reportcharacterboxes =True。

之後,定義包含VNdetecttextrectanglesrequest 的所有結果的 觀察,記得將 Vision 添加到輸出相機。由於 Vision 公開了高級 API,因此使用它是安全的。

該函數檢查 Cmsamplebuffer 是否 存在和 PutOut  Avcaptureoutput。然後,您應該著手建立一個變量 Requestoptions 為1詞典類型 VNimageoption。所述 VNmage 選項是一個類型的結構,它包含從相機屬性和數據。然後您應該創建 VNimagerequesthandler 並執行文本請求。

在檢測到的文本周圍繪製邊框

您可以首先讓框架繪製兩個框,一個用於檢測到的每個字母,另一個用於每個單詞。表格是您的請求會找到的所有字符框的組合。

  • 定義視圖上的點以幫助您定位框。
  • 之後,創建一個 CALaye r;使用 VNrectangleobservation 來定義您的約束,使勾勒框的過程更容易。

您現在已經佈置了所有功能。

要連接您的點,首先讓您的代碼異步運行。然後,您應該檢查VNTextObservation的結果中是否存在區域 。

您現在可以調用您的函數,它將在該區域內繪製一個框。檢查區域內是否有字符框,然後調用在每個字母周圍帶框的服務。

之後,創建一個變量 RequestOptions。 您現在可以創建一個 VNImageRequestHandler 對象並執行您創建的文本請求。

最後,最後一步是使用實時流運行您的視覺代碼。您需要獲取視頻輸出並將其轉換為 Cmsamplebuffer。

附加提示

始終嘗試裁剪圖像並僅處理您需要的部分。這將減少處理時間和內存佔用

在處理非數字字符時打開語言校正,然後在處理數字字符時將其關閉

包括對已識別數字字符串的驗證以確認准確性並消除向用戶顯示錯誤值。

文檔相機控制器是文本識別的最佳伴侶,因為圖像質量在文本識別中起著重要作用。

考慮設置最小文本高度以提高性能。

使用 Vision,您擁有文本識別所需的一切。由於 Vision 易於使用且實施時間短,因此使用它幾乎等同於玩樂高積木。嘗試在不同的對象、字體、光照和大小上測試您的應用。您還可以通過將 Vision 與 Core ML 結合來給自己留下深刻印象。



Leave a Comment

修復 iPhone 時鐘小工具顯示錯誤時間的 6 種方法

修復 iPhone 時鐘小工具顯示錯誤時間的 6 種方法

您的 iOS 時鐘小工具是否顯示不正確的時間或未更新?了解如何修復 iPhone 上顯示錯誤時間的時鐘小工具。

如何使用或不使用 iTunes 將音樂從電腦傳輸到 iPhone

如何使用或不使用 iTunes 將音樂從電腦傳輸到 iPhone

您的 Windows PC 上儲存著一些美妙的音樂嗎?以下是如何使用或不使用 iTunes 將音樂從電腦傳輸到 iPhone。

如何解決 iPhone 上 Apple Music 中的「您所在地區無法播放這首歌曲」的問題

如何解決 iPhone 上 Apple Music 中的「您所在地區無法播放這首歌曲」的問題

Apple Music 是否顯示一條錯誤訊息:此歌曲目前無法在您所在的國家或地區播放?這是修復錯誤的指南!

在 iPhone 和 iPad 上將 Word 轉換為 PDF 的 4 種簡單快速方法

在 iPhone 和 iPad 上將 Word 轉換為 PDF 的 4 種簡單快速方法

如果您擁有 iPhone 或 iPad,則可以輕鬆將 Word 文件轉換為 PDF,請繼續閱讀以發現多種方法。

修復 iPhone 上接收遲到簡訊的 9 種方法

修復 iPhone 上接收遲到簡訊的 9 種方法

您在 iPhone 上接收簡訊時是否遇到延遲?以下是解決 iPhone 接收簡訊延遲問題的最佳方法。

如何在 iPhone 上輕鬆將 JPG 轉換為 HEIC 影像

如何在 iPhone 上輕鬆將 JPG 轉換為 HEIC 影像

想要節省一些���間並將 JPEG 影像轉換為 iPhone 上的 HEIC?看看這篇文章,了解三種簡單的方法!

如何修復即時活動在 iPhone 上無法運作的問題(iOS 16 已更新)

如何修復即時活動在 iPhone 上無法運作的問題(iOS 16 已更新)

如果即時活動功能在您的 iPhone 上無法運作,這裡有一些有效的解決方案可以幫助您修復問題。

如何在 iOS 上自動開啟或關閉飛航模式

如何在 iOS 上自動開啟或關閉飛航模式

想要充分利用 iPhone 的飛航模式嗎?這是一個使用 iPhone 自動化來安排飛行模式的巧妙技巧。

iPhone 郵件應用程式中圖片無法載入的 6 大修復

iPhone 郵件應用程式中圖片無法載入的 6 大修復

iPhone 上的 Apple Mail 應用程式是否未載入電子郵件中的圖像?以下是一些有助於快速解決問題的提示。

如何在 iPhone 上將 WEBP 影像轉換為 JPG/PNG

如何在 iPhone 上將 WEBP 影像轉換為 JPG/PNG

從 iPhone 傳輸 WEBP 影像後無法查看它們?以下是如何將 WEBP 影像轉換為 JPG/PNG 以避免問題。