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

iOS 16 照片摳圖不起作用?如何用 8 種方法修復

iOS 16 照片摳圖不起作用?如何用 8 種方法修復

iOS 16 照片摳圖不起作用?了解如何透過 8 種方法修復這個問題,從確保設備和文件格式兼容性開始。

關閉 iPhone 相機聲音的 6 種方法

關閉 iPhone 相機聲音的 6 種方法

厭倦了拍照時的快門噪音?您可以使用以下 6 種簡單方法來關閉 iPhone 上的相機聲音。

如何將“照片”同步到 iPhone

如何將“照片”同步到 iPhone

了解如何將“照片”同步到iPhone的最新方法,確保您的照片安全有序。

如何在 iOS 13 中使用、讀取和寫入 NFC 標籤

如何在 iOS 13 中使用、讀取和寫入 NFC 標籤

使用 iPhone 上的 NFC 標籤以無線方式輕鬆傳輸數據。了解如何使用 NFC 標籤讀取器和 NFC 標籤寫入器。

如何在 iPhone、iPad 和 Mac 上退出家庭共享

如何在 iPhone、iPad 和 Mac 上退出家庭共享

離開家庭共享並獨自一人。了解如何在 iPhone、iPad 和 Mac 上的「家人共享」中離開或刪除某人。

Microsoft Authenticator 應用程序無法運行?針對 iPhone 和 Android 的 6 項修復

Microsoft Authenticator 應用程序無法運行?針對 iPhone 和 Android 的 6 項修復

解決使用 Microsoft Authenticator 應用程式時遇到的問題,包括生成雙因素身份驗證代碼的故障,提供有效的解決方案。

什麼是 iPhone Analytics 資料以及如何啟用或停用它

什麼是 iPhone Analytics 資料以及如何啟用或停用它

了解您的 iPhone 如何收集分析資料,以及如何停用這些功能以保護您的隱私。

您的帳戶已在 App Store 和 iTunes 中被禁用(已修復)

您的帳戶已在 App Store 和 iTunes 中被禁用(已修復)

“您的帳戶已在 App Store 和 iTunes 中被禁用”,教您如何重新訪問您的 Apple 帳戶,提供有效的修復方法。

如何在 iPhone 上用聲音屏幕錄製 FaceTime

如何在 iPhone 上用聲音屏幕錄製 FaceTime

正在尋找以某種方式錄製 FaceTime 通話的方法?閱讀文章,通過簡單的步驟在 iPhone 上用聲音屏幕錄製 FaceTime。

Google 地圖:如何刪除地圖位置 Pin 圖

Google 地圖:如何刪除地圖位置 Pin 圖

在 Google 地圖中快速放置圖釘以獲取與朋友分享的確切位置及刪除圖釘的步驟。了解如何在iPadOS 14、Android和桌面設備上放置Google地圖圖釘。