PaddleOCR: OCR صنعتی برای استخراج متن چندزبانه
متن را از تصاویر و اسناد با دقت و سرعت بالا تشخیص و شناسایی کنید.
API PaddleOCR چیست؟
API پایتون PaddleOCR یک ابزار قدرتمند و کاربرپسند برای وظایف تشخیص نوری کاراکتر (OCR) است که به توسعهدهندگان کمک میکند متن را از تصاویر با دقت بالا استخراج و تحلیل کنند. این ابزار بر پایه چارچوب یادگیری عمیق PaddlePaddle ساخته شده و از طیف گستردهای از زبانها پشتیبانی میکند و شامل مدلهای از پیش آموزش دیده برای تشخیص متن، شناسایی و تحلیل چیدمان است. با رابط کاربری ساده پایتون، کاربران میتوانند به سرعت قابلیتهای OCR را در برنامههای خود ادغام کنند، چه برای دیجیتالی کردن اسناد، استخراج متن از عکسها یا پردازش خودکار دادهها. API پایتون PaddleOCR برای هر کسی که به دنبال پیادهسازی راهحلهای OCR قوی با حداقل تنظیمات و حداکثر انعطافپذیری است، ایدهآل میباشد.
مزایای کلیدی PaddleOCR:
- پشتیبانی چندزبانه: مدلهای از پیش آموزش دیده برای ۱۰۰+ زبان (شامل چینی، انگلیسی، عربی و غیره)
- دقت بالا: مدلهای سری PP-OCR به نتایج برتر در مجموعه دادههای ICDAR دست مییابند
- راهحلهای جامع: از تشخیص متن تا شناسایی و تحلیل چیدمان
- مدلهای سبکوزن: بهینهشده برای دستگاههای موبایل و لبه (مانند PP-OCRv3)
از اسناد اسکن شده تا تابلوهای خیابانی، PaddleOCR متن را با دقت پیشرو در صنعت استخراج میکند.
چرا PaddleOCR را انتخاب کنیم؟
- برتری متنباز: بیش از ۳۰,۰۰۰ ستاره در GitHub و مشارکتهای فعال جامعه
- استقرار همهجانبه: پشتیبانی از پایتون، ++C و پلتفرمهای موبایل (اندروید/iOS)
- تحلیل چیدمان: شناسایی مناطق متن، جداول و شکلها در اسناد پیچیده
- بهروزرسانیهای مستمر: انتشار منظم مدلها (مانند PP-OCRv4)
- مناسب برای کسبوکار: مجوز Apache 2.0 برای استفاده تجاری
نصب
PaddleOCR به پایتون ۳.۷+ نیاز دارد و میتواند از طریق pip نصب شود. پشتیبانی از GPU به CUDA/cuDNN نیاز دارد.
نصب پایه
pip install paddleocr paddlepaddle #نسخه CPU
برای شتابدهی GPU:
پشتیبانی GPU
pip install paddleocr paddlepaddle-gpu #نیاز به CUDA 10.2+
توجه: مدلهای از پیش آموزش دیده در اولین استفاده به صورت خودکار دانلود میشوند یا به صورت دستی از طریق paddleocr --lang en
قابل دریافت هستند.
نمونههای کد
قابلیتهای PaddleOCR را با این نمونهها کشف کنید. تمام نمونهها فرض میکنند که مدل انگلیسی را نصب کردهاید.
نمونه ۱: OCR پایه
برای استخراج متن از یک تصویر با استفاده از PaddleOCR با مدلهای پیشفرض، کافی است موتور OCR را با پیکربندی استاندارد مقداردهی اولیه کنید که شامل پشتیبانی از انگلیسی و طبقهبندی زاویه برای بهبود دقت است. PaddleOCR از مدلهای از پیش آموزش دیده برای تشخیص، شناسایی و طبقهبندی استفاده میکند تا متن را در تصویر ورودی شناسایی و تفسیر کند. پس از پردازش تصویر، موتور OCR متن تشخیص داده شده را همراه با موقعیت و نمره اطمینان برای هر نتیجه برمیگرداند. این تنظیم راهی سریع و کارآمد برای استخراج محتوای متنی از تصاویر بدون نیاز به آموزش مدلهای سفارشی یا پیکربندیهای پیچیده ارائه میدهد.
OCR تصویر
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='en') #مقداردهی اولیه
result = ocr.ocr('image.jpg', cls=True) #پردازش تصویر
# چاپ متن شناسایی شده
for line in result:
print(line[-1][0]) #محتوای متن
خروجی شامل:
- محتوای متن و نمرات اطمینان
- مختصات کادر محدودکننده
نمونه ۲: پردازش دستهای
برای پردازش کارآمد چندین تصویر با PaddleOCR، میتوانید از تکنیکهای پردازش دستهای استفاده کنید که مقداردهیهای اولیه تکراری را به حداقل میرساند و عملکرد را بهینه میکند. به جای مقداردهی اولیه موتور OCR برای هر تصویر، توصیه میشود یک نمونه واحد از مدل OCR ایجاد کرده و برای تمام تصاویر ورودی مجدداً از آن استفاده کنید. این روش زمان پردازش و مصرف منابع را به میزان قابل توجهی کاهش میدهد. با ارسال لیستی از مسیرهای تصویر به موتور OCR در یک حلقه یا با استفاده از پردازش موازی (در صورت مناسب بودن)، میتوانید به سرعت و به طور مؤثر متن را از مجموعههای بزرگ تصاویر استخراج کنید که آن را برای گردشهای کاری شامل دستههای اسناد، آرشیوهای اسکن شده یا تحلیل تصاویر انبوه ایدهآل میکند.
OCR دستهای
image_paths = ['doc1.jpg', 'doc2.png']
results = ocr.ocr(image_paths, batch_size=4) #پردازش موازی
نمونه ۳: تحلیل چیدمان
PaddleOCR را میتوان نه تنها برای شناسایی متن، بلکه برای تشخیص مناطق خاص متن و شناسایی عناصر ساختاری مانند جداول در یک تصویر استفاده کرد. سیستم ابتدا مناطق متن را از طریق مدل تشخیص خود پیدا میکند که هر منطقه متن را با یک کادر محدودکننده مشخص میکند و به کاربران اجازه میدهد بفهمند متن در کجای تصویر قرار دارد. برای چیدمانهای پیچیدهتر مانند فرمها یا اسناد حاوی جداول، PaddleOCR از تحلیل چیدمان و شناسایی ساختار جدول پشتیبانی میکند. این امکان تشخیص سطرها، ستونها و مرزهای سلول را فراهم میکند و استخراج دادههای جدولی را در قالبی سازمانیافته ممکن میسازد. چنین قابلیتهایی به ویژه برای دیجیتالی کردن اسناد اسکن شده مانند فاکتورها یا صفحهگستردهها که در آنها متن آزاد و دادههای جدولی با هم وجود دارند، مفید هستند.
تشخیص چیدمان
from paddleocr import PPStructure
structure_engine = PPStructure(table=False, ocr=False)
layout_result = structure_engine('document.pdf')
ویژگیهای پیشرفته
PaddleOCR از گردشهای کاری پیچیده پشتیبانی میکند:
- آموزش سفارشی: تنظیم مدلها روی دادههای شما:
آموزش مدل
python tools/train.py -c configs/det/det_mv3_db.yml
- ترکیب زبانها: پردازش اسناد چندزبانه:
OCR چندزبانه
ocr = PaddleOCR(lang='chinese+english')
- پشتیبانی از PDF: استخراج مستقیم متن از فایلهای PDF:
پردازش PDF
result = ocr.ocr('document.pdf', type='pdf')
نتیجهگیری
PaddleOCR راهحلهای OCR آماده تولید را با پشتیبانی بینظیر چندزبانه و مقیاسپذیری ارائه میدهد. ایدهآل برای:
- دیجیتالی کردن اسناد: فایلهای PDF اسکن شده، فاکتورها، رسیدها
- برنامههای چندزبانه: شناسایی گذرنامه، کتابهای چندزبانه
- استقرار لبه: برنامههای موبایل با OCR روی دستگاه
با پشتیبانی از اکوسیستم یادگیری عمیق PaddlePaddle، PaddleOCR به تعیین استانداردها در دقت و کارایی OCR ادامه میدهد.