成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

告別「復制+粘貼」,基于深度學習的OCR,實現PDF轉文本

新聞 深度學習
最近,來自 K1 Digital 的高級機器學習工程師 Lucas Soares 一直在嘗試通過使用 OCR(光學字符識別)自動轉錄 pdf 幻燈片,以便直接在 markdown 文件中操作它們的內容,從而避免手動復制和粘貼 pdf 內容,實現這一過程的自動化。

[[403226]]

傳統的講座通常伴隨著一組 pdf 幻燈片。一般來說,想要對此類講座做筆記,需要從 pdf 復制、粘貼很多內容。

最近,來自 K1 Digital 的高級機器學習工程師 Lucas Soares 一直在嘗試通過使用 OCR(光學字符識別)自動轉錄 pdf 幻燈片,以便直接在 markdown 文件中操作它們的內容,從而避免手動復制和粘貼 pdf 內容,實現這一過程的自動化。

告別「復制+粘貼」,基于深度學習的OCR,實現PDF轉文本

左為項目作者 Lucas Soares。

項目地址:https://github.com/EnkrateiaLucca/ocr_for_transcribing_pdf_slides

為什么不使用傳統的 pdf 轉文本工具呢?

Lucas Soares 發現傳統工具往往會帶來更多的問題,需要花時間解決。他曾經嘗試使用傳統的 Python 軟件包,但是遇到了很多問題(例如必須使用復雜的正則表達式模式解析最終輸出等),因此決定嘗試使用目標檢測和 OCR 來解決。

基本過程可分為以下步驟:

  • 將 pdf 轉換為圖片;
  • 檢測和識別圖像中的文本;
  • 展示示例輸出。

基于深度學習的 OCR 將 pdf 轉錄為文本

將 pdf 轉換為圖像

Soares 使用的 pdf 幻燈片來自于 David Silver 的增強學習(參見以下 pdf 幻燈片地址)。使用「pdf2image」包將每張幻燈片轉換為 png 圖像格式。

告別「復制+粘貼」,基于深度學習的OCR,實現PDF轉文本

pdf 幻燈片示例。

地址:https://www.davidsilver.uk/wp-content/uploads/2020/03/intro_RL.pdf

代碼如下: 

  1. from pdf2image import convert_from_path 
  2. from pdf2image.exceptions import ( 
  3.  PDFInfoNotInstalledError, 
  4.  PDFPageCountError, 
  5.  PDFSyntaxError 
  6.  
  7. pdf_path = "path/to/file/intro_RL_Lecture1.pdf" 
  8. images = convert_from_path(pdf_path) 
  9. for i, image in enumerate(images): 
  10.     fname = "image" + str(i) + ".png" 
  11.     image.save(fname, "PNG"

經過處理后,所有的 pdf 幻燈片都轉換成 png 格式的圖像:

告別「復制+粘貼」,基于深度學習的OCR,實現PDF轉文本

檢測和識別圖像中的文本

為了檢測和識別 png 圖像中的文本,Soares 使用 ocr.pytorch 庫中的文本檢測器。按照說明下載模型并將模型保存在 checkpoints 文件夾中。

ocr.pytorch 庫地址:https://github.com/courao/ocr.pytorch

代碼如下: 

  1. # adapted from this source: https://github.com/courao/ocr.pytorch 
  2. %load_ext autoreload 
  3. %autoreload 2 
  4. import os 
  5. from ocr import ocr 
  6. import time 
  7. import shutil 
  8. import numpy as np 
  9. import pathlib 
  10. from PIL import Image 
  11. from glob import glob 
  12. import matplotlib.pyplot as plt 
  13. import seaborn as sns 
  14. sns.set() 
  15. import pytesseract 
  16.  
  17. def single_pic_proc(image_file): 
  18.     image = np.array(Image.open(image_file).convert('RGB')) 
  19.     result, image_framed = ocr(image) 
  20.     return result,image_framed 
  21.  
  22. image_files = glob('./input_images/*.*'
  23. result_dir = './output_images_with_boxes/' 
  24.  
  25. # If the output folder exists we will remove it and redo it. 
  26. if os.path.exists(result_dir): 
  27.     shutil.rmtree(result_dir) 
  28. os.mkdir(result_dir) 
  29.  
  30. for image_file in sorted(image_files): 
  31.     result, image_framed = single_pic_proc(image_file) # detecting and recognizing the text 
  32.     filename = pathlib.Path(image_file).name 
  33.     output_file = os.path.join(result_dir, image_file.split('/')[-1]) 
  34.     txt_file = os.path.join(result_dir, image_file.split('/')[-1].split('.')[0]+'.txt'
  35.     txt_f = open(txt_file, 'w'
  36.     Image.fromarray(image_framed).save(output_file) 
  37.     for key in result: 
  38.         txt_f.write(result[key][1]+'\n'
  39.     txt_f.close() 

設置輸入和輸出文件夾,接著遍歷所有輸入圖像(轉換后的 pdf 幻燈片),然后通過 single_pic_proc() 函數運行 OCR 模塊中的檢測和識別模型,最后將輸出保存到輸出文件夾。

其中檢測繼承(inherit)了 Pytorch CTPN 模型,識別繼承了 Pytorch CRNN 模型,兩者都存在于 OCR 模塊中。

示例輸出

代碼如下: 

  1. import cv2 as cv 
  2.  
  3. output_dir = pathlib.Path("./output_images_with_boxes"
  4.  
  5. # image = cv.imread(str(np.random.choice(list(output_dir.iterdir()),1)[0])) 
  6. image = cv.imread(f"{output_dir}/image7.png"
  7. size_reshaped = (int(image.shape[1]),int(image.shape[0])) 
  8. image = cv.resize(image, size_reshaped) 
  9. cv.imshow("image", image) 
  10. cv.waitKey(0
  11. cv.destroyAllWindows() 

下圖左為原始 pdf 幻燈片,圖右為轉錄后的輸出文本,轉錄后的準確率非常高。

告別「復制+粘貼」,基于深度學習的OCR,實現PDF轉文本

文本識別輸出如下: 

  1. filename = f"{output_dir}/image7.txt" 
  2. with open(filename, "r") as text: 
  3.     for line in text.readlines(): 
  4.         print(line.strip("\n")) 

通過上述方法,最終你可以得到一個非常強大的工具來轉錄各種文檔,從檢測和識別手寫筆記到檢測和識別照片中的隨機文本。擁有自己的 OCR 工具來處理一些文本內容,這比依賴外部軟件來轉錄文檔要好的多。

 

責任編輯:張燕妮 來源: 機器之心Pro
相關推薦

2021-09-24 09:59:59

復制粘貼PythonPDF

2020-09-14 17:10:16

微信搜索移動應用

2024-10-25 11:56:33

OCRVisRAGRAG

2017-05-22 13:15:45

TensorFlow深度學習

2024-08-29 08:23:22

EasyOCRSpring文字識別

2018-07-19 15:13:15

深度學習圖像

2017-05-12 16:25:44

深度學習圖像補全tensorflow

2023-05-22 08:00:00

深度學習機器學習人工智能

2023-09-26 07:39:21

2018-08-03 09:42:01

人工智能深度學習人臉識別

2019-05-22 14:28:08

AI人工智能深度學習

2021-11-03 09:00:00

深度學習自然語言機器學習

2022-10-26 15:41:38

深度學習Deepfake機器學習

2024-11-04 08:14:48

2024-12-03 09:59:00

2017-09-21 15:43:02

深度序列學習

2017-08-03 16:20:42

深度學習文本摘要遞歸神經網絡

2023-11-12 23:01:44

PaddleOCR深度學習

2017-07-06 15:02:53

OpenGL ES架構GPU

2020-10-17 09:03:06

使用JS創建復制&粘貼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品亚洲一区二区三区在线 | 亚洲男人网 | 日韩高清不卡 | 中文字幕一区二区三区四区不卡 | 久久久久久999 | 国产电影一区二区在线观看 | 奇米视频777 | 一区视频在线免费观看 | 国产成人免费在线观看 | 中文在线www | 精品熟人一区二区三区四区 | 亚洲国产情侣自拍 | 日本福利在线 | 九九免费在线视频 | 黄色毛片免费看 | 亚洲精品一区二区三区蜜桃久 | 久久久成人网 | 51ⅴ精品国产91久久久久久 | 日韩精品在线免费观看 | 国产日韩欧美一区 | 日韩不卡一区二区 | 亚洲高清在线观看 | 成人小视频在线观看 | 国产精品入口久久 | 天堂精品| 国产精品视频久久久久 | 亚洲成人黄色 | 91精品国产91久久综合桃花 | 91精品国产综合久久婷婷香蕉 | 国精日本亚洲欧州国产中文久久 | 99久久精品免费看国产高清 | 久久亚洲欧美日韩精品专区 | 每日更新av | 岛国av在线免费观看 | 交专区videossex农村 | 亚洲综合久久网 | 国产一区二区电影 | 欧美日韩网站 | 中文字幕一区二区三区精彩视频 | 日韩精品一区二区三区第95 | 日韩在线看片 |