Κοινή χρήση τεχνολογίας

Ξεκινήστε με την αναγνώριση εικόνας και κειμένου με μηδενική δυσκολία ~ Απλή ocr και μετατροπή pdf σε txt με βάση το Feipian

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Εισαγάγετε την περιγραφή της εικόνας εδώ

Πρόλογος

Αυτό το pdf είναι κατάλληλο για καθαρά αρχάριους χρήστες Windows που έχουν μηδενικές βασικές γνώσεις οπτικής αναγνώρισης. Αφεντικό, κάνε μια παράκαμψη~~
Ειδοποίηση:
Το OCR του PDF αυτού του έργου δεν κάνει τίποτα για την αντιμετώπιση παρεμβολών, όπως πίνακες, κείμενο σχεδίασης, υδατογραφήματα κ.λπ. Επομένως, ελπίζουμε ότι τα PDF που χρησιμοποιείτε αυτήν τη λειτουργία δεν θα περιέχουν αυτά τα στοιχεία παρεμβολής όσο το δυνατόν περισσότερο, ώστε να μην επηρεαστεί η μεταφραστικό αποτέλεσμα.

επεξεργάζομαι, διαδικασία

1. Δημιουργία περιβάλλοντος

Δημιουργήστε ένα εικονικό περιβάλλον python χρησιμοποιώντας το conda

conda crate -n pp python==3.11

2. Πακέτο εγκατάστασης

Εγκαταστήστε το paddle και το paddleocr
έκδοση gpu

pip install paddlepaddle-gpu paddleocr

έκδοση cpu

pip install paddlepaddle paddleocr

Εργαλείο από pdf σε εικόνα

https://github.com/oschwartz10612/poppler-windows/releases

pip εγκατάσταση pdf2image

3. Συγκεκριμένος κωδικός

Ας υποθέσουμε ότι έχουμε ένα σωρό αρχεία pdf στο φάκελο pdfs και πρέπει να μετατρέψουμε κάθε αρχείο pdf σε ένα αντίστοιχο αρχείο txt.Μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα


from pdf2image import convert_from_path
import cv2
import numpy as np
from PIL import Image
import os
# 将 PDF 文件转换为图片列表
files = os.listdir('pdf')

for file in files:
    if not file.endswith('.pdf'):
        print(file)
        continue
    txt = file.replace('.pdf', '.txt')
    if os.path.exists('txt/' txt):
        continue
    txt_writer = open('txt/' txt, 'w',encoding='utf-8')
    images = convert_from_path('pdf/' file)
    # print(type(images))
    # print(images[0])
    # image = cv2.cvtColor(np.array(images[0]), cv2.COLOR_RGB2BGR)


    from paddleocr import PaddleOCR, draw_ocr

    # 创建 PaddleOCR 实例
    ocr = PaddleOCR(use_angle_cls=True, lang='ch',use_gpu=True)  # 默认使用英文模型,可以通过 lang 参数切换到中文模型

    # 遍历每一张图片并识别文字
    for i, image in enumerate(images):
        print('第{}张图片'.format(i 1))
        # 转换图片为可用于识别的格式
        # source = image.convert('RGB')
        image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)        # image.save(f'page_{i}.jpg')

        # 识别图片中的文字
        result = ocr.ocr(image, cls=True)

        # 打印识别结果
        try:
            for lines in result:
                for line in lines:
                    # print(line[1][0])
                    txt_writer.write(line[1][0] 'n')
        except:
            print(file '识别失败')
    txt_writer.close()


4.Προσοχή

Δεδομένου ότι αυτός ο κώδικας μπορεί απλώς να εξαγάγει το κείμενο του PDF, μόλις δημιουργηθούν εικόνες ή πίνακες, το αποτέλεσμα αναγνώρισης της σελίδας θα επιδεινωθεί