PDFக்கு OCR தேவையா? PyMuPDF ஐப் பயன்படுத்தி, முழு மறு-அங்கீகாரத்திற்குப் பதிலாக பக்கம்-பக்கம்-பக்க விமானத்தை இயக்கவும்

நீங்கள் PDF ஐ OCR செய்ய விரும்பினால், முழு PDF ஐயும் மீண்டும் அங்கீகரிக்க வேண்டிய அவசியமில்லை. PyMuPDF ஐப் பயன்படுத்தி, பக்கம் பக்கமாக உரை அடுக்கு உள்ளதா மற்றும் அது முழுப் பக்கப் படமா என்பதைத் தீர்மானிக்கவும், மேலும் அங்கீகாரத்திற்குத் தேவையான பக்கங்களை மட்டும் அனுப்பவும். இயக்கக்கூடிய மாதிரிகள், சுழலும் பக்க சோதனைகள் மற்றும் கிளை எல்லை வழிமுறைகள் இணைக்கப்பட்டுள்ளன.

பல குழுக்கள் PDF மொழிபெயர்ப்பு அல்லது காப்பகத்தைக் கையாளும் போது, முழு ஆவணத்தையும் நுழைவாயிலில் "ஸ்கேன்" அல்லது "நகலெடு" என்று லேபிளிடுவது வழக்கம். 300-பக்க PDF இல் உரை அடுக்குகளுடன் முதல் 280 பக்கங்கள் இருக்கலாம், மேலும் கடைசி 20 பக்கங்கள் மட்டுமே ஸ்கேன் செய்யப்பட்ட இணைப்புகளாக இருக்கலாம். முழுப் பகுதிகளால் வகைப்படுத்தப்பட்டால், முழு OCR காத்திருப்பு நேரத்தை அதிகரிக்கும், மேலும் அசல் சரியான எண்களையும் தவறாகக் கண்டறியலாம். மறுபுறம், நீங்கள் முகப்புப் பக்கத்தில் உள்ள உரையை மட்டும் நகலெடுத்து, எல்லாப் பக்கங்களிலும் OCR ஐத் தவிர்த்துவிட்டால், அதுவும் ஆபத்தானது.

மிகவும் நம்பகமான அணுகுமுறை என்னவென்றால், ஒவ்வொரு பக்கமும் ப்ரீஃபிளைட்டின் முடிவுகளுடன் அடுத்த கட்டத்திற்கு செல்ல அனுமதிக்க வேண்டும். இந்தக் கட்டுரை ஒரு பழமைவாத மூன்று வழிப் பிரிவைச் செயல்படுத்துகிறது: நேரடி பிரித்தெடுத்தல், OCR வேட்பாளர் வரிசையில் அனுப்புதல் மற்றும் கைமுறை ஆய்வு. இது ஒரு விளக்கமான பொறியியல் ஹூரிஸ்டிக், உரையின் தரத்தை மதிப்பிடுவதற்கான உலகளாவிய வகைப்படுத்தி அல்ல. படித்த பிறகு, நீங்கள் இயக்கக்கூடிய பக்கம்-பக்கம்-பக்க விமானப் பயணத் திட்டத்தையும், திசைதிருப்பல் எல்லைகள் மற்றும் பொதுவான தவறுகளைக் கையாளும் யோசனைகளையும் பெறலாம்.

ஒரு வாக்கியத்தின் முடிவு

PDFக்கு OCR தேவையா என்பதை தீர்மானிக்க வேண்டிய அவசியமில்லை. PyMuPDF ஐப் பயன்படுத்தி பக்கம் பக்கமாக முன்கூட்டியே சரிபார்க்கவும், உண்மையில் அங்கீகரிக்கப்பட வேண்டிய பக்கங்களை மட்டுமே OCR க்கு அனுப்பவும்.

உங்கள் நிலைமைபரிந்துரைக்கப்பட்ட நடைமுறைகள்காரணம்
ஒரு பக்கத்திலிருந்து குறைந்தது 40 ஒயிட்ஸ்பேஸ் அல்லாத எழுத்துகளைப் பிரித்தெடுக்கவும்நேரடி பிரித்தெடுத்தல் (TEXT_CANDIDATE)ஏற்கனவே போதுமான எழுத்துகள் உள்ளன, ஆனால் மறைக்கப்பட்ட மோசமான OCR லேயர்களை இன்னும் சரிபார்க்க வேண்டும்
40 க்கும் குறைவான வார்த்தைகள் மற்றும் பக்கத்தின் 70% ஐ உள்ளடக்கிய ஒரு படம்OCR வேட்பாளர் வரிசையில் அனுப்பவும்முழு பக்க ஸ்கேன்கள் அடையாளம் காண ஏற்றது, ஆனால் தூய புகைப்படங்களும் போதுமானதாக இருக்கும்.
வெற்றுப் பக்கம், திசையன் வகை, அரிதான தலைப்பு அல்லது சிக்கலான புதிர்கைமுறை ஆய்வு (விமர்சனம்)இந்த சூழ்நிலைகளை நம்பத்தகுந்த வகையில் முதல் இரண்டு வகைகளாக வகைப்படுத்த முடியாது மற்றும் தானாகவே தவிர்க்கவோ அல்லது நிராகரிக்கவோ முடியாது.
300 பக்க கலப்பின ஆவணம்ப்ரீஃப்லைட் பக்கம் பக்கமாக, முழுமையான செயலாக்கம் இல்லைசில ஸ்கேன் செய்யப்பட்ட இணைப்புகளின் காரணமாக அனைத்து பக்கங்களையும் OCR செய்வதைத் தவிர்க்கவும் அல்லது முகப்புப் பக்கத்தில் உரை இருப்பதால் அனைத்து OCR ஐத் தவிர்க்கவும்

குறிப்பு: படத்தில் உள்ள உள்ளடக்கம் கீழே உள்ள குறியீட்டின் மூலம் உருவாக்கப்பட்ட ஒருங்கிணைக்கப்பட்ட PDF இலிருந்து வருகிறது, வாடிக்கையாளர் கோப்பு அல்லது OmniDoc இடைமுகம் அல்ல. படப் பக்கத்தில் உள்ள உரை ராஸ்டர் பிக்சல்கள்; உரை பக்கத்தில் உள்ள உரை உண்மையான உரை அடுக்கு உள்ளது.

முதலில் எதைச் சரிபார்க்க வேண்டும் என்பதைத் தீர்மானிக்கவும்

இங்கே இரண்டு சிக்னல்கள் பயன்படுத்தப்படுகின்றன: இடைவெளியை அகற்றிய பின் உரை எழுத்துகளின் எண்ணிக்கை மற்றும் பக்கத்தில் உள்ள பெரிய படம் ஆக்கிரமித்துள்ள பக்க பகுதியின் விகிதம். "போதுமான எழுத்துக்கள் பிரித்தெடுக்கப்பட்டதா?" என்று முன்னாள் பதிலளிக்கிறார். மற்றும் பிந்தையது முழு பக்க ஸ்கேன் மற்றும் வெற்றுப் பக்கத்தை வேறுபடுத்த உதவுகிறது. பக்கத்தில் உள்ள பட விரிவாக்க விகிதத்தை மீறுவதைத் தவிர்க்க, படப் பகுதி முதலில் செதுக்கும் பெட்டியுடன் வெட்டும்.

கவனிப்புஇந்த கட்டுரையின் திசைதிருப்பல்இன்னும் கவனம் தேவை
குறைந்தது 40 வைட்ஸ்பேஸ் அல்லாத எழுத்துக்கள்TEXT_CANDIDATEமறைக்கப்பட்ட மோசமான OCR அடுக்குகளும் நிறைய வார்த்தைகளைக் கொண்டிருக்கலாம்
40 க்கும் குறைவான வார்த்தைகள் மற்றும் குறைந்தபட்சம் 70% உள்ளடக்கிய ஒரு படம்OCR_CANDIDATEதூய படங்களும் நிபந்தனைகளை பூர்த்தி செய்யும், OCR அர்த்தமுள்ளதாக இருக்காது
மீதமுள்ள வழக்குகள்REVIEWவெள்ளை இடம், திசையன் வகை, அரிதான தலைப்புகள் மற்றும் சிக்கலான புதிர்கள் அனைத்தும் இங்கே சாத்தியமாகும்

40 மற்றும் 0.70 வரம்புகள், இந்த சோதனைகளின் தொகுப்பை தணிக்கை செய்வதை எளிதாக்கும் நோக்கம் கொண்டவை மற்றும் அவை மொழிக்கு இடையேயான தரநிலைகள் அல்ல. சீன, ஃபார்முலா, கவர் மற்றும் குறுகிய வடிவங்கள் தனித்தனியாக அளவீடு செய்யப்பட வேண்டும். இங்கே, ஒன்றுடன் ஒன்று படங்களின் பகுதிகளைச் சேர்ப்பதற்குப் பதிலாக, மிகப்பெரிய பரப்பளவைக் கொண்ட படம் எடுக்கப்பட்டது, எனவே பல படங்களைக் கொண்ட ஸ்கேன் செய்யப்பட்ட பக்கம் மதிப்பாய்வுக்குள் வரலாம். இது வேண்டுமென்றே ஒதுக்கப்பட்ட எல்லை.

முழுமையான இயங்கக்கூடிய உதாரணம்

மாதிரி PyMuPDF==1.28.0 ஐப் பயன்படுத்துகிறது, Tesseract ஐ நம்பவில்லை மற்றும் எந்த ஆன்லைன் OCR அல்லது மொழிபெயர்ப்பு சேவைகளையும் அழைக்காது. அதை example.py ஆக சேமித்து வெற்று கோப்பகத்தில் இயக்கவும். இது உருவாக்கும் கோப்பு பெயர் routing-fixture.pdf என சரி செய்யப்பட்டது. உள்ளீட்டு கோப்பை உண்மையான திட்டங்களில் மேலெழுத வேண்டாம்.

import json
import pymupdf

def inspect_page(page):
    chars = len("".join(page.get_text().split()))
    bounds = page.cropbox
    # 图片坐标与文本坐标都是未旋转坐标;不要混用旋转后的 page.rect。
    bounds = pymupdf.Rect(0, 0, bounds.width, bounds.height)
    ratios = []
    for image in page.get_image_info():
        rect = pymupdf.Rect(image["bbox"]) & bounds
        ratios.append(max(0, rect.get_area()) / bounds.get_area())
    largest = max(ratios, default=0.0)
    route = ("TEXT_CANDIDATE" if chars >= 40 else
             "OCR_CANDIDATE" if largest >= 0.70 else "REVIEW")
    return {"page": page.number + 1, "chars": chars,
            "largest_image_ratio": round(largest, 3), "route": route}

with pymupdf.open() as source:
    page = source.new_page(width=360, height=480)
    page.insert_text((28, 60), "Sample invoice 2026-09-26", fontsize=16)
    page.insert_text((28, 100), "Quantity 12   Unit price USD 15.00", fontsize=12)
    page.insert_text((28, 132), "Amount USD 180.00   Checked manually", fontsize=12)
    scan = page.get_pixmap(matrix=pymupdf.Matrix(2, 2)).tobytes("png")
    page = source.new_page(width=360, height=480)
    page.insert_image(page.rect, stream=scan)
    source.new_page(width=360, height=480)
    source.save("routing-fixture.pdf")

with pymupdf.open("routing-fixture.pdf") as pdf:
    result = [inspect_page(page) for page in pdf]
    assert [r["route"] for r in result] == [
        "TEXT_CANDIDATE", "OCR_CANDIDATE", "REVIEW"]
    assert result[1]["chars"] == 0
    assert result[1]["largest_image_ratio"] == 1.0
    pdf[1].set_rotation(90)
    assert inspect_page(pdf[1])["route"] == "OCR_CANDIDATE"
print(json.dumps(result, indent=2))

OCR ஐ அணுகும் போது, TextPage வெற்றிக் குறிக்கு பதிலாக தற்காலிகமாக சேமிக்கப்படும்.

PyMuPDF இன் OCR இடைமுகம் page.get_textpage_ocr(...) ஆகும். டெசராக்ட் மற்றும் தொடர்புடைய மொழித் தரவுகள் தனித்தனியாகத் தயாரிக்கப்பட வேண்டும். TextPage கிடைத்த பிறகு, அதே பக்கத்தை மீண்டும் மீண்டும் அங்கீகரிப்பதைத் தவிர்க்க, அடுத்தடுத்த பிரித்தெடுக்கும் போது textpage அளவுருவாக அனுப்பப்பட வேண்டும். குறிப்பிட்ட நிறுவல் முறைகள் மற்றும் அளவுருக்களுக்கு PyMuPDF OCR ஆவணங்கள் ஐப் பார்க்கவும்.

இந்தக் கட்டுரை OCR இன்ஜினை இயக்கவில்லை, எனவே சோதனை முடிவுகள் திசைதிருப்பல் தர்க்கம் மற்றும் ஒருங்கிணைப்புகள் சரியாகப் பயன்படுத்தப்படுகின்றன என்பதை மட்டுமே நிரூபிக்க முடியும், மேலும் சீன அங்கீகார விகிதம், அட்டவணை மீட்பு விகிதம் அல்லது மொழிபெயர்ப்புத் தரம் ஆகியவற்றைக் குறிக்கவில்லை. OCR இன்ஜின் பதிப்பு, மொழி தொகுப்பு, பக்க எண், உள்ளீட்டு கோப்பு சுருக்கம் மற்றும் கைமுறை ஆய்வு முடிவுகள் ஆகியவை உற்பத்தி சூழலில் பதிவு செய்யப்பட வேண்டும். இறுதி சரத்தை மட்டும் வைத்துக் கொள்ளாதீர்கள், இல்லையெனில் குறிப்பிட்ட எண் எந்தப் பக்கத்திலிருந்து வருகிறது என்பதை விளக்குவது கடினமாக இருக்கும்.

மிக எளிதாக தவறவிடப்படும் மூன்று வகையான தோஷங்கள்

மறைக்கப்பட்ட உரை அடுக்கு சிதைந்திருக்கலாம். எழுத்துகளின் எண்ணிக்கை தரநிலையை அடைந்தால், "நீங்கள் தொடர்ந்து பிரித்தெடுக்க முயற்சி செய்யலாம்" என்று மட்டுமே அர்த்தம். மாற்று எழுத்துகள், மீண்டும் மீண்டும் வரும் கோடுகள் மற்றும் முக்கிய புலங்கள் ரெண்டரிங் உடன் ஒத்துப்போகின்றனவா என்பதையும் நீங்கள் சரிபார்க்க வேண்டும். ஒப்பந்த எண் மற்றும் தொகை போன்ற முக்கிய உள்ளடக்கங்கள் தோராயமாக சரிபார்க்கப்பட வேண்டும்.

வெக்டார் பாதைகளால் வரையப்பட்ட வார்த்தைகள் உரை அல்லது படங்கள் அல்ல. அவர்கள் REVIEW ஐ உள்ளிடுவார்கள். தானாக அவற்றை காலியாகக் குறிக்க வேண்டாம், பக்கங்களை அமைதியாக கைவிட வேண்டாம்.

ஆவணத்தை மூடிவிட்டு, பக்கத்தைப் பயன்படுத்துவது தவறான பொருள்களை உருவாக்கும். தயவுசெய்து with pymupdf.open(...) இன் நோக்கத்தை வைத்து, கோப்பை வெளியிடுவதற்கு முன், ப்ரீஃப்லைட், ரெண்டரிங் மற்றும் பிரித்தெடுத்தல் ஆகியவற்றை முடிக்கவும். ஒருங்கிணைப்புகள், படத் தகவல் மற்றும் பக்க வாழ்க்கைச் சுழற்சி பற்றிய கூடுதல் விவரங்களுக்கு, PyMuPDF Page API ஐப் பார்க்கவும்.

நம்பத்தகாத PDFகளில் கோப்பு அளவு, பக்க எண்ணிக்கை, ரெண்டர் செய்யப்பட்ட பிக்சல்கள், நேரம் மற்றும் நினைவக தொப்பிகள் ஆகியவை தனித்தனி செயல்பாட்டில் அமைக்கப்பட வேண்டும். எடுத்துக்காட்டு சிறிய கோப்புகளை மட்டுமே சோதிக்கிறது மற்றும் தீங்கிழைக்கும் கோப்பு சாண்ட்பாக்ஸை வழங்காது. தயாரிப்பில் PyMuPDF ஐப் பயன்படுத்துவதற்கு முன், அதன் உரிம நிபந்தனைகளையும் உங்கள் விநியோக முறையையும் நீங்கள் சரிபார்க்க வேண்டும்.

திசைதிருப்பலில் இருந்து மொழிபெயர்ப்பு பணிப்பாய்வுகளை உள்ளிடவும்

தகுதிவாய்ந்த வெளியீடு என்பது உரையின் சரம் அல்ல, ஆனால் பக்க எண்கள் மற்றும் முடிவிற்கான காரணங்களைக் கொண்ட பதிவு. மொழிபெயர்ப்பதற்கு முன், எந்தப் பக்கங்களை நம்பகத்தன்மையுடன் பிரித்தெடுக்க முடியும் என்பதை உறுதிப்படுத்தவும்; மொழிபெயர்ப்புக்குப் பிறகு உள்ளடக்கம், எண்கள் மற்றும் தளவமைப்பைச் சரிபார்த்து ஏற்கவும். OmniDoc தயாரிப்பு போர்டல் இல் ஆவணச் செயலாக்க சேவைகளைப் பார்க்கலாம். இந்தக் கட்டுரையில் உள்ள உள்ளூர் நிரல் சுயாதீனமாக இயங்குகிறது மற்றும் OmniDoc கணக்கை நம்பியிருக்காது, மேலும் இது தயாரிப்பின் உள்ளே இருக்கும் அல்காரிதம் என்று அர்த்தமில்லை.

📊 முக்கிய ஒப்பீடு

பாதைதூண்டுதல் நிலைபொருத்தமான பக்கம்முக்கிய அபாயங்கள்
நேரடி பிரித்தெடுத்தல் (TEXT_CANDIDATE)குறைந்தது 40 வைட்ஸ்பேஸ் அல்லாத எழுத்துக்கள்ஏற்கனவே உள்ள உரை அடுக்குடன் உரைப் பக்கம்மறைக்கப்பட்ட மோசமான OCR லேயரில் சிதைந்த எழுத்துக்கள் இருக்கலாம்
OCR வேட்பாளர் (OCR_CANDIDATE)40 க்கும் குறைவான வார்த்தைகள் மற்றும் குறைந்தபட்சம் 70% உள்ளடக்கிய ஒரு படம்முழு பக்க ஸ்கேன்தூய படங்களும் நிபந்தனைகளைப் பூர்த்தி செய்யும், ஆனால் OCR முடிவுகள் அர்த்தமுள்ளதாக இருக்காது.
கைமுறை ஆய்வு (விமர்சனம்)மேலே உள்ள இரண்டு வகைகளையும் சந்திக்கவில்லைவெற்றுப் பக்கம், திசையன் வகை, அரிதான தலைப்பு, சிக்கலான புதிர்கைமுறையான தீர்ப்பு தேவை, தானாகவே தவிர்க்கவோ அல்லது நிராகரிக்கவோ முடியாது.

🎯 எந்த முறை உங்களுக்கு ஏற்றது?

நீங்கள் என்றால்....

  • நாங்கள் கலப்பு ஆவணங்களைக் கையாளுகிறோம், முன் மற்றும் பின் பக்கங்களின் தரம் மிகவும் வித்தியாசமானது: பக்கத்தின் பக்கத்தை முன்கூட்டியே சரிபார்த்து, முறையே வெவ்வேறு வழிகளை உள்ளிடவும்.
  • ஒப்பந்தங்கள் மற்றும் நிதிகள் போன்ற முக்கிய புள்ளிவிவரங்களைக் கொண்ட ஆவணங்களை முக்கியமாகக் கையாளவும்: TEXT_CANDIDATE பக்கமும் எண்கள் மற்றும் ரெண்டரிங்களுக்கு இடையே உள்ள கடிதத் தொடர்புக்காகத் தோராயமாகச் சரிபார்க்கப்பட வேண்டும்.
  • பேட்ச்களில் ஸ்கேன்களைச் செயல்படுத்த வேண்டும்: பதிவு இயந்திரப் பதிப்பு, மொழிப் பொதி மற்றும் OCR முடிவுகளுக்கான பக்க எண் ஆகியவற்றை எளிதாகப் பின்தொடர வேண்டும்.
  • அறியப்படாத மூலங்களிலிருந்து PDFகளைப் பெறுதல்: ஒரு தனிச் செயல்பாட்டில் ஆதார வரம்புகளை அமைக்கவும், அவற்றை நேரடியாக முதன்மை நிரலில் செயல்படுத்த வேண்டாம்.

❓ அடிக்கடி கேட்கப்படும் கேள்விகள் (FAQ)

1. முகப்புப்பக்கத்தில் உரையை நகலெடுக்கலாம். முழு PDF இன் OCR ஐ தவிர்க்க முடியுமா?

முடியாது. முகப்புப் பக்கத்தில் உரை அடுக்கு இருப்பதால், அடுத்தடுத்த பக்கங்கள் அதைக் கொண்டிருக்கும் என்று அர்த்தம் இல்லை, மேலும் பக்கம் வாரியாக மதிப்பிடப்பட வேண்டும்.

2. படப் பகுதிகளை நேரடியாக ஏன் சேர்க்கக்கூடாது?

ஒன்றுடன் ஒன்று படங்களின் பகுதிகளைச் சேர்ப்பது கவரேஜை மிகையாக மதிப்பிடும். இந்தக் கட்டுரை மிகப் பெரிய படத்தைப் பயன்படுத்துகிறது, எனவே ஸ்கேன் செய்யப்பட்ட பக்கம் பல படங்கள் ஒன்றாக தைக்கப்பட்டிருந்தால், அது வேண்டுமென்றே தக்கவைக்கப்பட்ட ஒரு எல்லையான மதிப்பாய்வில் விழலாம்.

3. எழுத்துகளின் எண்ணிக்கை 40ஐ எட்டினால், உரையின் தரத்தில் எந்தப் பிரச்சனையும் இல்லை என்று அர்த்தமா?

அப்படி முடிவு செய்ய முடியாது. மறைக்கப்பட்ட மோசமான OCR லேயர்களில் நிறைய வார்த்தைகள் இருக்கலாம், எனவே மாற்று எழுத்துகள், நகல் கோடுகள் மற்றும் ஸ்பாட் செக் கீ புலங்கள் ஆகியவற்றைச் சரிபார்க்கவும்.

4. திசையன் பாதையால் வரையப்பட்ட உரை எவ்வாறு செயலாக்கப்பட வேண்டும்?

அவை உரையோ படங்களோ அல்ல, மதிப்பாய்வை உள்ளிடவும், மனிதர்களால் தீர்மானிக்கப்படுகின்றன, மேலும் அவை தானாகவே காலியாகவோ அல்லது அமைதியாக கைவிடப்படவோ கூடாது.

5. உள்ளூர் நிரல் OmniDoc கணக்கைச் சார்ந்ததா?

சார்ந்து இல்லை. இந்த கட்டுரைக்கான உள்ளூர் நிரல் சுயாதீனமாக இயங்குகிறது மற்றும் எந்த ஆன்லைன் OCR அல்லது மொழிபெயர்ப்பு சேவைகளையும் அழைக்காது.

📝 சுருக்கம்

முதலில் பக்கம் பக்கமாக ஆதாரங்களை விட்டுவிட்டு, பிறகு OCR செய்யலாமா என்பதை முடிவு செய்யுங்கள். நிச்சயமற்ற முடிவுகளை வெற்றி என்று மறைப்பதை விட, நிச்சயமற்ற பக்கங்களை வரிசையில் விடுவது மிகவும் பயனுள்ளதாக இருக்கும்.

இப்போது முயற்சிக்கவும்: அசல் தளவமைப்பைத் தக்கவைத்து, மொழிபெயர்ப்பைத் தொடங்க ஆவணத்தைப் பதிவேற்றவும்

புதுப்பிக்கப்பட்டது 2026-11-15