2019年10月16日

圖片和PDF文件的文字辨識 Part 2

我們透過 NVDA 協助得以瀏覽網頁、閱讀文件,但你是否遇到過一個難題,有些資料可能是以圖片方式呈現的,這樣一來 NBDA 就沒辦法讀取圖片內容了,先前曾提過利用 Google 雲端硬碟的 OCR (光學文字辨識) 功能便能將圖片上的文字轉換為可被編輯的文字,如此就能以 NVDA 閱讀內容。
現在 Windows 10 已內建了 OCR 功能,不過並沒有提供什麼應用程式可以用來辨識圖片,既然沒有那麼 NVDA 就來當個媒人牽起良緣吧!

NVDA 的 OCR 功能和一般 OCR 軟體一樣在辨識前要先選擇辨識的目標為何種語言,從 NVDA 功能表 > [偏好] > [設定] 開啟對話方塊,在 [Windows OCR] 類別中的 [辨識語言] 下拉式方塊選定語言,由於 Windows 10 能借由安裝不同語言的方式來增加辨識語言的種類,若所需的語言不在辨識語言的清單中,可在 [設定] 視窗 > [時間與語言] > [語言] 來新增,祥情請參考文末延伸閱讀的文章。

瀏覽網頁時遇到網頁上的圖片例如有一張利用手機拍照的餐廳菜單,想知道菜單裡就竟有哪些菜色與價位,我們便可嘗試透過 OCR 來看看能否獲取菜單上的資訊,至於要怎麼知道哪一個圖片是要辨識的菜單圖片呢?理想的情況是圖片有明確的替代文字說明或圖片上/下方有圖說文字就能輕易得知,若沒有的話則要從圖片的前後文敘述來判斷,再不行只好在多個圖片中逐一辨識找尋了。
當瀏覽位置移至要辨識的圖片後,按 NVDA +R 便會啟動 Windows 10 的 OCR 功能進行辨識,完成後在結果文件顯示辨識的結果,按方向鍵即可讀取辨識出來的文字內容,也可複製文字內容,按 Esc 可關閉結果文件。
除了在結果文件中讀取文字外,比較特別的是當辨識的目標為帶有連結的圖片或以圖片呈現的按鈕時,可以直接在文字上按 Enter 或 空格鍵 來點選,無需回到網頁上執行,如果無法讀出任何文字,可能的原因包括圖片裡並無文字、圖片裡的文字難以辨識、辨識語言沒有正確選擇等,為了提高辨識的成功率,請將瀏覽器的視窗最大化,避免縮放網頁。

由於網頁上的圖片特別是照片基於版面編排、網頁載入速度的考量,呈現在網頁上的圖片大小或解析度往往低於原始圖片,使得辨識效果打折,如果圖片的辨識結果不甚理想的時候,或許可以嘗試以下的方法。

  1. 圖片也是一個連結,以新分頁方式開啟連結,若分頁中只有該圖片,則圖片為原始大小或符合可見範圍大小,在 Firefox 及 Google Chrome 的視窗標題列會顯示圖片的大小蚇寸,此時再重新辨識一次結果應該會較理想。
  2. 圖片不是一個連結,將滑鼠指標移到圖片上,按數字鍵盤乘號開啟快顯功能表,若為 Chrome 則選擇 [在新分頁中開啟圖片],若為 Firefox 則選擇 [複製圖片網址] 後另開新分頁貼上 Enter,一樣只會顯示該圖片且為原始大小或符合可見範圍大小,此時再重新辨識一次結果應該會較理想。
  3. 圖片也是一個連結,以新分頁方式開啟連結,若分頁呈現的是另一個網頁內容,則處理方式同第 2 點。

另一個會遇到以圖片呈現的資料為 PDF 文件,例如以 Acrobat Reader DC 開啟後,提示可能是需要 OCR 處理的掃描影像,按 NVDA +R 即可對當前頁進行辨識,為了提高辨識的成功率,同樣請將 Acrobat Reader DC 視窗最大化,並將 [頁面顯視] 設為 [單頁檢視],[縮放] 設為 [實際大小] 或 [符合寬度]。

電腦上的圖檔若需要辨識,直接在檔案上 Enter 會以 [相片] App 開啟,在有提示檔案名稱的位置按 NVDA +R 即可辨識,圖片方向不正確時需旋轉圖片以免影響辨識結果。

NVDA 的 OCR 功能與螢幕的解析度有關,目前大部份的寬螢幕解析度為 1920 (寬) X 1080 (高),當要辨識的圖片尺寸不論是寬度或高度超過時皆會縮小以符合可見範圍的大小,而可見範圍的大小扣除程式介面所佔用的部份後比螢幕解析度還要更小一些,非以實際大小而以縮放方式呈現時會導致辨識結果變差,如果圖片的蚇寸超過螢幕解析度的寬度或高度使得辨識結果不甚理想的時候,或許可以嘗試以下的方法。

  1. 將瀏覽器/Acrobat Reader DC/相片 App 以全螢幕的方式來顯示圖片,如此一來可見範圍就是螢幕解析度大小的範圍,此時再重新辨識一次結果應該會較理想。

    附註:
    以全螢幕方式檢視和將視窗最大化兩者並不相同,以全螢幕方式檢視時程式的相關介面與螢幕下方的工作列將會隱藏。

  2. 圖片內容需以寬度小於高度的直向圖片呈現,而螢幕則是寬度大於高度的橫向顯示,在 [設定] 視窗 > [系統] > [顯示器] 中將 [顯示方向] 設為 [直向],即為 1080 (寬) X 1920 (高),如此一來直向圖片就有可能以原蚇寸呈現或降低縮小的程度,配合全螢幕顯示可獲得最大的可見範圍,此時再重新辨識一次結果應該會較理想。

Windows 10 下的 NVDA 文字辨識功能使用上算是方便,無需上傳檔案與操作 Google 文件的步驟,但兩者的辨識效果有差別嗎?就等各位親自動手比較了。

附註:
圖片的解析度、顏色對比、明暗等因素皆會影響辨識正確率,辨識結果可能無法完全正確,只要錯誤率不高仍然可掌握圖片資料內容。

延伸閱讀