OCR اور ڈیپ لرننگ PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ خودکار رسید ڈیجیٹائزیشن۔ عمودی تلاش۔ عی

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

رسیدوں سے ڈیٹا نکالنا خودکار کرنا چاہتے ہیں؟ Nanonets کے پہلے سے تربیت یافتہ کو چیک کریں۔ رسید او سی آر or اپنا خود بنائیں۔ اپنی مرضی کے مطابق رسید OCR. آپ بھی ڈیمو شیڈول کریں ہمارے AP استعمال کے کیسز کے بارے میں مزید جاننے کے لیے!


رسید او سی آر یا رسید ڈیجیٹائزیشن ایک رسید سے خود بخود معلومات نکالنے کے چیلنج کو حل کرتی ہے۔ اس آرٹیکل میں، میں رسید ڈیجیٹائزیشن کے پیچھے تھیوری کا احاطہ کرتا ہوں اور OpenCV کا استعمال کرتے ہوئے اینڈ ٹو اینڈ پائپ لائن کو لاگو کرتا ہوں۔ Tesseract. میں چند اہم کاغذات کا بھی جائزہ لیتا ہوں جو ڈیپ لرننگ کا استعمال کرتے ہوئے رسید ڈیجیٹائزیشن کرتے ہیں۔

رسید ڈیجیٹائزیشن کیا ہے؟

رسیدیں کمپنیوں کے درمیان تجارت کے لیے درکار معلومات رکھتی ہیں اور اس کا زیادہ تر حصہ کاغذ پر یا نیم ساختہ فارمیٹس جیسے پی ڈی ایف اور کاغذ/ہارڈ کاپیوں کی تصاویر میں ہوتا ہے۔ اس معلومات کو مؤثر طریقے سے منظم کرنے کے لیے، کمپنیاں ان دستاویزات میں موجود متعلقہ معلومات کو نکال کر ذخیرہ کرتی ہیں۔ روایتی طور پر یہ متعلقہ معلومات کو دستی طور پر نکال کر ڈیٹا بیس میں ڈال کر حاصل کیا جاتا ہے جو کہ ایک محنت طلب اور مہنگا عمل ہے۔

رسید ڈیجیٹائزیشن ایک رسید سے معلومات کو خود بخود نکالنے کے چیلنج کو حل کرتی ہے۔

رسیدوں سے کلیدی معلومات کو نکالنا اور انہیں ساختی دستاویزات میں تبدیل کرنا بہت سی ایپلی کیشنز اور خدمات کو پیش کر سکتا ہے، جیسے کہ موثر آرکائیونگ، تیز اشاریہ سازی اور دستاویز کے تجزیات۔ وہ بہت سے مالیاتی، اکاؤنٹنگ اور ٹیکسیشن کے شعبوں میں دستاویز کے لیے بھرپور عمل اور آفس آٹومیشن کو ہموار کرنے میں اہم کردار ادا کرتے ہیں۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

ایک مضبوط کی ضرورت ہے۔ رسید OCR or رسید سکینر رسیدوں سے ڈیٹا نکالنا ہے؟ Nanonets چیک کریں۔ رسید OCR API!


رسید ڈیجیٹائزیشن کس کو مفید لگے گا؟

یہاں کچھ ایسے شعبے ہیں جہاں رسید کی ڈیجیٹلائزیشن بہت زیادہ اثر ڈال سکتی ہے:

قابل ادائیگی اکاؤنٹس اور قابل وصول آٹومیشن

قابل ادائیگی اکاؤنٹس (AP) اور اکاؤنٹس ریسیو ایبلز (ARs) کو دستی طور پر کمپیوٹنگ کرنا مہنگا، وقت طلب ہے اور مینیجرز، صارفین اور دکانداروں کے درمیان الجھن کا باعث بن سکتا ہے۔ ڈیجیٹلائزیشن کے ساتھ، کمپنیاں ان خرابیوں کو ختم کر سکتی ہیں اور مزید فوائد حاصل کر سکتی ہیں - شفافیت میں اضافہ، ڈیٹا اینالیٹکس، بہتر ورکنگ کیپیٹل اور آسان ٹریکنگ۔

سپلائی چین کی اصلاح

سپلائی چینز بہت سی کمپنی کے صحیح کام کرنے کی ریڑھ کی ہڈی ہوتی ہیں۔ کاموں، معلومات کے بہاؤ، اور مصنوعات کے بہاؤ کا انتظام سپلائی اور پیداوار کے مکمل کنٹرول کو یقینی بنانے کی کلید ہے۔ یہ ضروری ہے اگر تنظیمیں ترسیل کے اوقات کو پورا کرنا اور پیداواری لاگت کو کنٹرول کرنا چاہتی ہیں۔

وہ کمپنیاں جو ان دنوں واقعی ترقی کر رہی ہیں ان میں کچھ خاص مشترک ہے: ایک ڈیجیٹائزڈ سپلائی چین۔ کمپنیوں کے 89٪ ڈیجیٹل سپلائی چینز کے ساتھ بین الاقوامی سپلائرز سے کامل آرڈرز موصول ہوتے ہیں، بروقت ترسیل کو یقینی بناتے ہوئے اگلی نسل کے ڈیجیٹل سپلائی چین 4.0 کو حاصل کرنے کے اہم عناصر میں سے ایک، ڈیٹا کیپچرنگ اور مینجمنٹ کو خودکار بنانا ہے اور اس میں سے زیادہ تر ڈیٹا رسیدوں کی شکل ہے اور انوائس. رسیدوں کا دستی اندراج سپلائی چین میں رکاوٹ کا کام کرتا ہے اور غیر ضروری تاخیر کا باعث بنتا ہے۔ اگر اس رسید کی پروسیسنگ کو ڈیجیٹائز کیا جاتا ہے تو یہ وقت اور کارکردگی میں خاطر خواہ فائدہ اٹھا سکتا ہے۔


ذہن میں OCR کا مسئلہ ہے؟ ڈیجیٹلائز کرنا چاہتے ہیں۔ انوائسپی ڈی ایف یا نمبر پلیٹس؟ کی طرف بڑھیں۔ نانونٹس اور مفت میں OCR ماڈل بنائیں!


یہ ایک مشکل مسئلہ کیوں ہے؟

رسید کو ڈیجیٹائز کرنا مشکل ہے کیونکہ رسیدوں میں بہت زیادہ تغیرات ہوتے ہیں اور بعض اوقات یہ کم معیار کی ہوتی ہیں۔ اسکیننگ رسیدیں ہماری ڈیجیٹل کاپی میں متعدد نمونے بھی متعارف کرواتی ہیں۔ یہ نمونے پڑھنے کے قابل بہت سے چیلنجز پیش کرتے ہیں۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

یہاں ان چند چیزوں کی فہرست ہے جو ٹوٹنا مشکل بناتی ہیں۔

  • ہاتھ سے لکھا ہوا متن
  • چھوٹے فونٹس
  • شور مچانے والی تصاویر
  • دھندلی تصاویر
  • کیمرہ موشن اور شیک
  • واٹر مارکنگ
  • جھرریاں
  • دھندلا متن

ایک روایتی رسید ڈیجیٹائزیشن پائپ لائن

اس قسم کے اختتام سے آخر تک نقطہ نظر کے لئے ایک عام پائپ لائن میں شامل ہے:

  • پیشگی کارروائی
  • آپٹیکل کریکٹر ریکگنیشن
  • معلومات نکالنا
  • ڈیٹا ڈمپ
او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

آئیے پائپ لائن کے ہر حصے میں گہرائی میں ڈوبتے ہیں۔ عمل کا پہلا مرحلہ پری پروسیسنگ ہے۔

پیشگی کارروائی

زیادہ تر اسکین شدہ رسیدیں شور والی ہوتی ہیں اور ان میں نوادرات ہوتے ہیں اور اس طرح OCR اور معلومات نکالنے کے نظام کے بہتر کام کرنے کے لیے، رسیدوں کو پہلے سے پروسیس کرنا ضروری ہے۔ عام پری پروسیسنگ طریقوں میں شامل ہیں - گرے اسکیلنگ، تھریشولڈنگ (بائنرائزیشن) اور شور ہٹانا۔

گرے اسکیلنگ صرف آر جی بی امیج کو گرے اسکیل امیج میں تبدیل کرنا ہے۔

شور کو ہٹانے میں عام طور پر نمک اور کالی مرچ کے شور یا گاوسی شور کو ہٹانا شامل ہوتا ہے۔

زیادہ تر OCR انجن بلیک اینڈ وائٹ امیجز پر اچھی طرح کام کرتے ہیں۔ یہ تھریشولڈنگ کے ذریعے حاصل کیا جا سکتا ہے، جو کہ فراہم کردہ حد کی قیمت کے سلسلے میں پکسل ویلیو کی تفویض ہے۔ ہر پکسل ویلیو کا موازنہ حد کی قدر سے کیا جاتا ہے۔ اگر پکسل کی قیمت حد سے چھوٹی ہے، تو اسے 0 پر سیٹ کیا جاتا ہے، بصورت دیگر، یہ زیادہ سے زیادہ قدر (عام طور پر 255) پر سیٹ کیا جاتا ہے۔

اوپن سی وی مختلف حد بندی کے اختیارات فراہم کرتا ہے - سادہ حد بندی، موافقت کی حد

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

آپٹیکل کریکٹر ریکگنیشن

پائپ لائن میں اگلا مرحلہ ہے۔ OCR. اس کا استعمال تصاویر سے متن پڑھنے کے لیے کیا جاتا ہے جیسے اسکین شدہ دستاویز یا تصویر۔ یہ ٹکنالوجی عملی طور پر کسی بھی قسم کی تصاویر کو مشین کے پڑھنے کے قابل ٹیکسٹ ڈیٹا میں تحریری متن (ٹائپ شدہ، ہاتھ سے لکھی یا پرنٹ شدہ) میں تبدیل کرنے کے لیے استعمال کی جاتی ہے۔. OCR میں 2 مراحل شامل ہیں - متن کا پتہ لگانا اور متن کی شناخت۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

OCR کے لیے کئی طریقے ہیں۔ روایتی کمپیوٹر ویژن اپروچ ہے۔

  • پس منظر سے حروف کو الگ کرنے کے لیے فلٹرز کا استعمال
  • فلٹر شدہ حروف کو پہچاننے کے لیے سموچ کا پتہ لگانے کا اطلاق کریں۔
  • کرداروں کی شناخت کے لیے جادوئی درجہ بندی کا استعمال کریں۔

فلٹرز اور امیج کی درجہ بندی کا اطلاق بہت سیدھا ہے، (ایس وی این کا استعمال کرتے ہوئے MNIST کی درجہ بندی کے بارے میں سوچیں)، لیکن کنٹور میچنگ ایک بہت مشکل مسئلہ ہے اور اس کے لیے بہت زیادہ دستی کوشش کی ضرورت ہے اور یہ عام نہیں ہے۔

اگلا ڈیپ لرننگ اپروچز آتے ہیں۔ گہری تعلیم بہت اچھی طرح سے عام کرتی ہے۔ متن کا پتہ لگانے کے لئے سب سے زیادہ مقبول طریقوں میں سے ایک EAST ہے۔ EAST (موثر درست منظر ٹیکسٹ ڈیٹیکٹر) متن کا پتہ لگانے کے لیے ایک سادہ لیکن طاقتور طریقہ ہے۔ EAST نیٹ ورک دراصل معروف U-Net کا ایک ورژن ہے، جو مختلف سائز کی خصوصیات کا پتہ لگانے کے لیے اچھا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

سی آر این این اور STN-OCR (Spatial Transformer Networks) دوسرے مقبول کاغذات ہیں جو OCR انجام دیتے ہیں۔

معلومات نکالنا

معلومات نکالنے کے مسئلے کا سب سے عام طریقہ اصول پر مبنی ہے، جہاں مطلوبہ معلومات کو نکالنے کے لیے OCR کے بعد قواعد لکھے جاتے ہیں۔ یہ ایک طاقتور اور درست طریقہ ہے، لیکن اس کے لیے آپ کو ایک نئی قسم کی دستاویز کے لیے نئے اصول یا ٹیمپلیٹس لکھنے کی ضرورت ہے۔

کئی اصولوں پر مبنی انوائس ادب میں تجزیہ کا نظام موجود ہے۔

  • Intellix بذریعہ DocuWare متعلقہ فیلڈز کے ساتھ تشریح شدہ ٹیمپلیٹ کی ضرورت ہے۔
  • اسمارٹ فکس۔ ہر ٹیمپلیٹ کے لیے خاص طور پر ڈیزائن کردہ کنفیگریشن رولز کو ملازمت دیتا ہے۔

اصول پر مبنی طریقے مخصوص انوائس لے آؤٹ سے معلومات نکالنے کے لیے پہلے سے طے شدہ ٹیمپلیٹ کے اصولوں پر بہت زیادہ انحصار کرتے ہیں۔

ایک نقطہ نظر جو پچھلے کچھ سالوں میں بہت عام ہو گیا ہے وہ ہے فیلڈز کو پہچاننے کے لیے YOLO، Faster R-CNN جیسے معیاری آبجیکٹ ڈیٹیکشن فریم ورک کا استعمال کرنا۔ لہذا خالص متن کا پتہ لگانے کے بجائے، فیلڈ کی شناخت اور متن کا پتہ لگانے کے ساتھ ساتھ کارکردگی کا مظاہرہ کیا جاتا ہے. یہ پائپ لائن کو چھوٹا بناتا ہے (ٹیکسٹ ڈیٹیکشن → ریکوگنیشن → ایکسٹریکشن ٹو ڈیٹیکشن → ریکوگنیشن)۔ کوئی اصول لکھنے کی ضرورت نہیں ہے کیونکہ آبجیکٹ ڈیٹیکٹر ان فیلڈز کو پہچاننا سیکھتا ہے۔

ڈیٹا ڈمپ

ایک بار جب آپ اپنی معلومات نکال لیتے ہیں، تو ڈیٹا ڈمپ کیا جا سکتا ہے جیسا کہ ہمارے استعمال کے معاملے کی ضرورت ہے۔ کھیتوں کی معلومات کو ذخیرہ کرنے کے لیے اکثر JSON فارمیٹ آسان ہوتا ہے۔ ان JSON فائلوں کو آسانی سے XML فائلوں، ایکسل شیٹس، CSV فائلوں یا سادہ متن فائلوں میں تبدیل کیا جا سکتا ہے اس پر منحصر ہے کہ کون ڈیٹا کے ساتھ کام کرنا چاہتا ہے اور کیسے۔

رسید ڈیجیٹائزیشن کا استعمال کرتے ہوئے Tesseract

اب جب کہ ہمیں پائپ لائن کا اندازہ ہے، آئیے اسے ایک مثال کی رسید پر لاگو کرتے ہیں۔. یہ وہ رسید ہے جس کے ساتھ ہم کام کریں گے۔ اس کے آخر میں ہمارا مقصد ریسٹورنٹ کا نام، ان کی مقدار اور قیمت کے ساتھ خریدی گئی اشیاء، خریداری کی تاریخ اور کل کو نکالنا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

پیشگی کارروائی

چونکہ ہماری رسید پہلے سے ہی گرے اسکیل میں ہے اور بہت زیادہ شور نہیں ہے، میں صرف 210 کی حد لگا کر تھریشولڈنگ کرنے جا رہا ہوں۔ آپ صحیح آؤٹ پٹ حاصل کرنے کے لیے قدر کو تبدیل کر سکتے ہیں۔ بہت کم اور آپ بہت کچھ کھو دیں گے۔ 255 کے قریب ہونے سے ہر چیز کالا ہو جائے گی۔

ہمیں پہلے OpenCV انسٹال کرنے کی ضرورت ہوگی۔

pip install opencv-python

یہ ہے حد بندی کا کوڈ۔

import cv2
import numpy as np
from matplotlib import pyplot as plt # Read the image
img = cv2.imread('receipt.jpg',0)
# Simple thresholding
ret,thresh1 = cv2.threshold(img,210,255,cv2.THRESH_BINARY)
cv2.imshow(thresh1,’gray’)

یہ آؤٹ پٹ کی طرح لگتا ہے.

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

متن کا پتہ لگانا

متن کا پتہ لگانے کے لیے میں ایک اوپن سورس لائبریری کا استعمال کروں گا جسے کہتے ہیں۔ Tesseract. یہ حتمی OCR لائبریری ہے اور اسے گوگل نے 2006 سے تیار کیا ہے۔ Tesseract (v4) کی تازہ ترین ریلیز گہری سیکھنے پر مبنی OCR کو سپورٹ کرتی ہے جو نمایاں طور پر زیادہ درست ہے۔ بنیادی OCR انجن خود ایک طویل شارٹ ٹرم میموری (LSTM) نیٹ ورک کا استعمال کرتا ہے۔

پہلے Tesseract کا تازہ ترین ورژن انسٹال کرتے ہیں۔

اوبنٹو کے لیے

sudo apt install tesseract-ocr

میکوس کیلئے

brew install tesseract --HEAD

ونڈوز کے لیے، آپ اس سے بائنریز ڈاؤن لوڈ کر سکتے ہیں۔ صفحہ

اپنے ٹیسریکٹ ورژن کی تصدیق کریں۔

tesseract -v

آؤٹ پٹ -

tesseract 4.0.0-beta.3
leptonica-1.76.0
libjpeg 9c : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
Found AVX512BW
Found AVX512F
Found AVX2
Found AVX
Found SSE

اپنے Tesseract + Python بائنڈنگز انسٹال کریں۔

اب جب کہ ہمارے پاس Tesseract بائنری انسٹال ہے، ہمیں اب Tesseract + Python بائنڈنگز انسٹال کرنے کی ضرورت ہے تاکہ ہماری Python اسکرپٹس Tesseract کے ساتھ بات چیت کر سکیں۔ ہمیں جرمن زبان کا پیک بھی انسٹال کرنے کی ضرورت ہے کیونکہ رسید جرمن میں ہے۔

pip install pytesseract
sudo apt-get install tesseract-ocr-deu

اب جب کہ ہم نے ٹیسریکٹ انسٹال کر لیا ہے آئیے ٹیکسٹ بکس کا پتہ لگانا شروع کریں۔Tesseract ٹیکسٹ باکسز کا پتہ لگانے کے لیے بلٹ فنکشنلٹی ہے۔

import pytesseract
from pytesseract import Output
import cv2 img = cv2.imread('receipt.jpg')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
n_boxes = len(d['level'])
for i in range(n_boxes): (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i]) img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.imshow(img,'img')

ٹیکسٹ ڈیٹیکشن کوڈ کا آؤٹ پٹ یہ ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

متن کی پہچان۔

ہم OCR انجام دینے کے لیے ٹیسریکٹ کریں گے۔ Tesseract 4 ایک گہری سیکھنے کا طریقہ استعمال کرتا ہے جو دوسرے اوپن سورس کے نفاذ سے نمایاں طور پر بہتر کارکردگی کا مظاہرہ کرتا ہے۔

متن کی شناخت کا کوڈ یہ ہے۔ اگرچہ یہ ایک بہت ہی آسان ون لائنر ہے، لیکن اس میں بہت کچھ شامل ہے۔

extracted_text = pytesseract.image_to_string(img, lang = 'deu')

یہاں خام پیداوار ہے.

'BerghotelnGrosse Scheideggn3818 GrindelwaldnFamilie R.MüllernnRech.Nr. 4572 30.07.2007/13:29: 17nBar Tisch 7/01n2xLatte Macchiato &ä 4.50 CHF 9,00n1xGloki a 5.00 CH 5.00n1xSchweinschnitzel ä 22.00 CHF 22.00nIxChässpätz 1 a 18.50 CHF 18.50nnTotal: CHF 54.50nnIncl. 7.6% MwSt 54.50 CHF: 3.85nnEntspricht in Euro 36.33 EURnEs bediente Sie: UrsulannMwSt Nr. : 430 234nTel.: 033 853 67 16nFax.: 033 853 67 19nE-mail: grossescheidegs@b luewin. ch'

یہاں فارمیٹ شدہ آؤٹ پٹ ہے۔

Berghotel
Grosse Scheidegg
3818 Grindelwald
Familie R.Müller Rech.Nr. 4572 30.07.2007/13:29: 17
Bar Tisch 7/01
2xLatte Macchiato &ä 4.50 CHF 9,00
1xGloki a 5.00 CH 5.00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50 Total: CHF 54.50 Incl. 7.6% MwSt 54.50 CHF: 3.85 Entspricht in Euro 36.33 EUR
Es bediente Sie: Ursula MwSt Nr. : 430 234
Tel.: 033 853 67 16
Fax.: 033 853 67 19
E-mail: grossescheidegs@b luewin. ch

دستاویزات، رسیدوں یا کو ڈیجیٹائز کرنے کی ضرورت ہے۔ انوائس لیکن کوڈ کرنے میں بہت سست؟ کی طرف بڑھیں۔ نانونٹس اور مفت میں OCR ماڈل بنائیں!


معلومات نکالنا

جیسا کہ میں نے پہلے ذکر کیا ہے کہ معلومات نکالنے کا سب سے عام طریقہ اصول پر مبنی طریقہ ہے۔

اس ہوٹل کی تمام رسیدیں ایک مقررہ ڈھانچے کی پیروی کریں گی اور معلومات مختلف خطوط پر ظاہر ہوں گی۔ یہ OCR آؤٹ پٹ میں ظاہر ہوتا ہے جہاں نئی ​​لائنوں کی نمائندگی 'n' سے ہوتی ہے۔ ان کا استعمال کرتے ہوئے آئیے معلومات کو نکالنے کے لیے قواعد کا ایک سیٹ لکھیں۔ قواعد کا یہ مجموعہ اس ہوٹل کی کسی بھی رسید پر لاگو کیا جا سکتا ہے کیونکہ وہ اسی فارمیٹ کی پیروی کریں گے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

میں ریسٹورنٹ کا نام، لین دین کی تاریخ، خریدی گئی اشیاء، ان کی مقدار، فی آئٹم کی کل لاگت اور سادہ python کمانڈز اور ریگولر ایکسپریشنز کا استعمال کرتے ہوئے کل رقم نکالوں گا۔

یہ ایک لغت ہے جہاں میں نکالی گئی معلومات کو ذخیرہ کروں گا۔

receipt _ocr = {}

پہلا قدم ریستوراں کا نام نکالنا ہے۔ ریستوراں کے نام کا مقام تمام رسیدوں میں مستقل رہے گا اور وہ پہلی 2 لائنوں میں ہے۔ آئیے اسے ایک اصول بنانے کے لیے استعمال کریں۔

splits = extracted_text.splitlines()
restaurant_name = splits[0] + '' + splits[1]

اگلا، ہم لین دین کی تاریخ نکالتے ہیں۔ ڈیٹ ریجیکس کافی سیدھا ہے۔


import re
# regex for date. The pattern in the receipt is in 30.07.2007 in DD:MM:YYYY date_pattern = r'(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)dd'
date = re.search(date_pattern, extracted_text).group()
receipt_ocr['date'] = date
print(date)

آؤٹ پٹ -

‘30.10.2007’

اگلا ہم اشیاء اور قیمت سے متعلق تمام معلومات نکالتے ہیں۔

آئٹمز میں ایک CHF ہے جو سوئس فرانک ہے۔ آئیے CHF کے تمام واقعات کا پتہ لگائیں۔ اب ہم 2 n کے درمیان حروف کو پہچان کر اور CHF پر مشتمل لائنوں کا پتہ لگا سکتے ہیں۔ میں یہاں بھی کل کا پتہ لگا رہا ہوں۔

# get lines with chf
lines_with_chf = []
for line in splits: if re.search(r'CHF',line): lines_with_chf.append(line) print(lines_with_chf)

آؤٹ پٹ -

2xLatte Macchiato &ä 4.50 CHF 9,00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50
Total: CHF 54.50
Incl. 7.6% MwSt 54.50 CHF: 3.85

اگر آپ نے دیکھا، تو Tesseract نے ایک آئٹم چھوڑ دیا کیونکہ اس نے CHF کے بجائے CH کا پتہ لگایا۔ میں اگلے حصے میں روایتی OCR سسٹمز میں چیلنجوں کا احاطہ کروں گا۔

# get items, total, ignore Incl
items = []
for line in lines_with_chf: print(line) if re.search(r'Incl',line): continue if re.search(r'Total', line): total = line else: items.append(line) # Get Name, quantity and cost all_items = {}
for item in items: details = item.split() quantity_name = details[0] quantity = quantity_name.split('x')[0] name = quantity_name.split('x')[1] cost = details[-1] all_items[name] = {'quantity':quantity, 'cost':cost} total = total.split('CHF')[-1] # Store the results in the dict
receipt_ocr['items'] = all_items
receipt_ocr[‘total’] = total import json receipt_json = json.dumps(receipt_ocr)
print(receipt_json)

ہمارے JSON آؤٹ پٹ کو پرنٹ کرنا -

{'date': '30.07.2007', 'items': {'Chässpätz': {'cost': '18.50', 'quantity': 'I'}, 'Latte': {'cost': '9,00', 'quantity': '2'}, 'Schweinschnitzel': {'cost': '22.00', 'quantity': '1'}}, 'total': ' 54.50'}

تمام اہم معلومات کو نکال کر receipt_json میں ڈال دیا گیا ہے۔

روایتی نقطہ نظر کے ساتھ مسائل

اگرچہ ہم نے معلومات نکالی ہیں، لیکن مندرجہ بالا پائپ لائن کچھ چیزوں سے محروم ہے اور سب سے بہترین ہے۔ ہر نئی رسید کے لیے ہمیں اصولوں کا ایک نیا سیٹ لکھنے کی ضرورت ہے اور اس طرح یہ قابل توسیع نہیں ہے۔

لے آؤٹس، فونٹ اور فونٹ کے سائز، ہاتھ سے لکھی ہوئی دستاویزات وغیرہ میں بہت سی تبدیلیاں ہوسکتی ہیں۔ ترتیب میں فرق اصول پر مبنی نقطہ نظر کو متاثر کرے گا اور ان کا حساب کتاب کرنے کی ضرورت ہے، جو بہت تکلیف دہ ہو جاتا ہے۔ فونٹ اور فونٹ کے سائز میں فرق معلومات کو پہچاننا اور نکالنا مشکل بناتا ہے۔

آخر سے آخر تک ڈیپ لرننگ پائپ لائن کیوں بہتر ہے؟

معیاری اپروچ کے ساتھ سب سے بڑا مسئلہ عمومیت کی کمی ہے۔ اصول پر مبنی نقطہ نظر کو عام نہیں کیا جا سکتا اور کسی بھی نئے سانچے کے لیے نئے اصول لکھنے کی ضرورت ہے۔ نیز موجودہ ٹیمپلیٹ میں کسی قسم کی تبدیلی یا تغیرات کا بھی حساب لیا جانا ضروری ہے۔

ڈیپ لرننگ اپروچ ان اصولوں کو سیکھنے کے قابل ہو جائے گا، اور مختلف ترتیبوں کو آسانی سے عام کرنے کے قابل ہو جائے گا، بشرطیکہ وہ ہمارے تربیتی ڈیٹاسیٹ میں موجود ہوں۔

گہری سیکھنے اور معلومات نکالنا

یہاں میں چند کاغذات کا جائزہ لیتا ہوں جو اختتام سے آخر تک گہری سیکھنے کے طریقوں کا استعمال کرتے ہیں۔.

پیاری

CUTIE: Convolutional Universal Text Information Extractor کے ساتھ دستاویزات کو سمجھنا سیکھنا

یہ کاغذ تجویز کرتا ہے۔ انسانی وسائل کی محدود ضرورت کے ساتھ سیکھنے پر مبنی کلیدی معلومات نکالنے کا طریقہ. یہ دستاویزات میں لفظی معنی اور متن کی مقامی تقسیم دونوں سے معلومات کو یکجا کرتا ہے۔ ان کا مجوزہ ماڈل، Convolutional Universal Text Information Extractor (CUTIE)، convolutional عصبی نیٹ ورکس کو گرڈڈ ٹیکسٹس پر لاگو کرتا ہے جہاں متن کو سیمنٹیکل مفہوم کے ساتھ خصوصیات کے طور پر ایمبیڈ کیا جاتا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

مجوزہ ماڈل, کے ذریعے اہم معلومات نکالنے کے مسئلے سے نمٹتا ہے۔

  • پہلے مجوزہ کے ساتھ گرڈڈ ٹیکسٹس بنانا گرڈ پوزیشنل میپنگ کا طریقہ. convolutional عصبی نیٹ ورک کے لیے گرڈ ڈیٹا بنانے کے لیے، اسکین شدہ دستاویز کی تصویر کو OCR انجن کے ذریعے پروسیس کیا جاتا ہے تاکہ متن اور ان کی مطلق/متعلقہ پوزیشن حاصل کی جا سکے۔ متن کو اصل اسکین شدہ دستاویز کی تصویر سے ٹارگٹ گرڈ میں میپ کیا جاتا ہے، اس طرح کہ میپ شدہ گرڈ متن کے درمیان اصل مقامی تعلق کو محفوظ رکھتا ہے لیکن یہ کنوولوشنل نیورل نیٹ ورک کے لیے ان پٹ کے طور پر استعمال ہونے کے لیے زیادہ موزوں ہے۔
  • پھر CUTIE ماڈل کو گرڈڈ ٹیکسٹس پر لاگو کیا جاتا ہے۔ بھرپور معنوی معلومات کو گریڈڈ ٹیکسٹ سے انکوڈ کیا جاتا ہے جو کہ کنوولوشنل نیورل نیٹ ورک کے بالکل ابتدائی مرحلے میں لفظ ایمبیڈنگ پرت کے ساتھ ہوتا ہے۔

CUTIE اسکین شدہ دستاویز کی تصویر میں متن کی معنوی معلومات اور مقامی معلومات دونوں کو بیک وقت دیکھنے کی اجازت دیتا ہے اور کلیدی معلومات نکالنے کے لیے ایک نئی حالت تک پہنچ سکتا ہے۔

CUTIE ماڈل

ان کے پاس 2 ماڈل CUTIE-A اور CUTIE-B ہیں۔ مجوزہ CUTIE-A ایک اعلیٰ صلاحیت کا کنولوشنل نیورل نیٹ ورک ہے جو ہائی ریزولوشن خصوصیات کو کھوئے بغیر ملٹی ریزولوشن فیچرز کو فیوز کرتا ہے۔ CUTIE-B ایک ارتعاشی نیٹ ورک ہے جس میں منظر کے میدان کو وسعت دینے کے لیے atrous convolution اور Atrous Spatial Pyramid Pooling (ASPP) ماڈیول ہے تاکہ کثیر پیمانے کے سیاق و سباق کو حاصل کیا جا سکے۔ CUTIE-A اور CUITE-B دونوں ہی ابتدائی مرحلے میں لفظ ایمبیڈنگ پرت کے ساتھ سیمینٹیکل معنی انکوڈنگ کا عمل کرتے ہیں۔

CUTIE کا کام سیمنٹک سیگمنٹیشن ٹاسک سے مشابہت رکھتا ہے۔ میپ شدہ گرڈ میں بکھرے ہوئے ڈیٹا پوائنٹس (ٹیکسٹ ٹوکنز) پکسلز کے ساتھ پھیلی ہوئی تصاویر کے برعکس ہوتے ہیں۔ گرڈ پوزیشنل میپ شدہ کلیدی متن یا تو ایک دوسرے کے قریب ہیں یا مختلف قسم کے دستاویزات کے لے آؤٹ کی وجہ سے دور ہیں۔ لہذا، کثیر پیمانے پر سیاق و سباق کی پروسیسنگ کی صلاحیت کو شامل کرنے سے نیٹ ورک کو فائدہ ہوتا ہے۔

ڈیٹا بیس

مجوزہ طریقہ کا جائزہ SROIE ڈیٹاسیٹ پر ICDAR 2019 مضبوط پڑھنے کے چیلنج پر کیا جاتا ہے اور یہ 3 قسم کی اسکین شدہ دستاویز کی تصاویر کے ساتھ خود ساختہ ڈیٹاسیٹ پر بھی ہے۔

۔ ICDAR 2019 SROIE ڈیٹا سیٹ استعمال کیا جاتا ہے جس میں 1000 پوری اسکین شدہ رسید کی تصاویر شامل ہیں۔ ہر رسید کی تصویر میں تقریباً چار کلیدی ٹیکسٹ فیلڈز ہوتے ہیں، جیسے سامان کا نام، یونٹ کی قیمت، تاریخ، اور کل لاگت۔ ڈیٹاسیٹ میں تشریح کردہ متن بنیادی طور پر ہندسوں اور انگریزی حروف پر مشتمل ہوتا ہے۔

خود ساختہ ڈیٹاسیٹ میں 4 تشریح شدہ اسکین شدہ ہسپانوی رسید دستاویزات شامل ہیں، بشمول ٹیکسی کی رسیدیں، کھانے کی تفریح ​​(ME) رسیدیں، اور ہوٹل کی رسیدیں، 484 مختلف کلیدی معلوماتی کلاسوں کے ساتھ۔

نتائج کی نمائش

مجموعی کارکردگی کا اندازہ اوسط درستگی (AP – اور 9 کلاسوں میں فی کلاس درستگی کے لحاظ سے ماپا جاتا ہے،.) اور نرم اوسط درستگی (softAP) کا استعمال کرتے ہوئے کیا جاتا ہے جہاں کلیدی معلوماتی کلاس کی پیشین گوئی درست ثابت ہوتی ہے اگر مثبت زمینی سچائیاں ہوں۔ درست پیشین گوئی کی جاتی ہے یہاں تک کہ اگر حتمی پیشین گوئی میں کچھ غلط مثبتات شامل ہوں۔ AP اور softAP کا مشترکہ تجزیہ ماڈل کی کارکردگی کی بہتر تفہیم فراہم کرتا ہے۔

آپ نیچے دی گئی جدول میں نتائج دیکھ سکتے ہیں۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

VRDs کے لیے GCNs

بصری طور پر بھرپور دستاویزات سے ملٹی موڈل معلومات کے اخراج کے لیے گراف کنولوشن

یہ کاغذ بصری امیر دستاویزات (VRDs) میں پیش کردہ متنی اور بصری معلومات کو یکجا کرنے کے لیے ایک گراف کنولوشن پر مبنی ماڈل متعارف کرایا گیا ہے۔ گراف ایمبیڈنگز کو دستاویز میں ٹیکسٹ سیگمنٹ کے سیاق و سباق کا خلاصہ کرنے کے لیے تربیت دی جاتی ہے، اور مزید ہستی نکالنے کے لیے ٹیکسٹ ایمبیڈنگز کے ساتھ جوڑ دی جاتی ہے۔

اس کاغذ میں وہ ایک دستاویز کو VRD کہتے ہیں اور میں اس پر قائم رہوں گا۔

ہر دستاویز کو ٹیکسٹ سیگمنٹس کے گراف کے طور پر بنایا گیا ہے، جہاں ہر ٹیکسٹ سیگمنٹ سیگمنٹ کی پوزیشن اور اس کے اندر موجود متن پر مشتمل ہے۔ گراف نوڈس پر مشتمل ہے جو متن کے حصوں کی نمائندگی کرتے ہیں، اور کناروں پر مشتمل ہے جو بصری انحصار کی نمائندگی کرتے ہیں، جیسے کہ دو نوڈس کے درمیان رشتہ دار شکلیں اور فاصلہ۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

گراف کنوولوشن کے ذریعے تیار کردہ گراف ایمبیڈنگز دستاویز میں ٹیکسٹ سیگمنٹ کے سیاق و سباق کا خلاصہ کرتی ہیں، جنہیں معیاری BiLSTM-CRF ماڈل کا استعمال کرتے ہوئے ہستی نکالنے کے لیے ٹیکسٹ ایمبیڈنگز کے ساتھ مزید ملایا جاتا ہے۔

ماڈل

ماڈل سب سے پہلے دستاویز میں ہر ٹیکسٹ سیگمنٹ کو گراف ایمبیڈنگ میں انکوڈ کرتا ہے، گراف کنولوشن کی متعدد پرتوں کا استعمال کرتے ہوئے۔ ایمبیڈنگ متن کے حصے میں موجود معلومات کو اس کے بصری اور متنی سیاق و سباق کے پیش نظر ظاہر کرتی ہے۔ بصری سیاق و سباق دستاویز کی ترتیب اور انفرادی طبقے کی دیگر طبقات سے متعلقہ پوزیشن ہے۔ متنی سیاق و سباق مجموعی طور پر دستاویز میں متن کی معلومات کا مجموعہ ہے۔ ماڈل پڑوسی طبقات سے متن پر زیادہ وزن تفویض کرنا سیکھتا ہے۔ پھر کاغذ گراف ایمبیڈنگز کو ٹیکسٹ ایمبیڈنگ کے ساتھ جوڑتا ہے اور ہستی نکالنے کے لیے ایک معیاری BiLSTM-CRF ماڈل کا اطلاق کرتا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

ڈیٹا بیس

دو حقیقی دنیا کے ڈیٹاسیٹ استعمال کیے جاتے ہیں۔ وہ ویلیو ایڈڈ ٹیکس انوائس (VATI) اور بین الاقوامی خریداری رسیدیں (IPR) ہیں۔ VATI 3000 صارف کی اپ لوڈ کردہ تصاویر پر مشتمل ہے اور اس میں 16 ہستی ہیں۔ مثال کے طور پر ہستیوں میں خریدار/بیچنے والے کے نام، تاریخ اور ٹیکس کی رقم ہیں۔ رسیدیں چینی زبان میں ہیں، اور اس کا ایک طے شدہ سانچہ ہے کیونکہ یہ قومی معیاری رسید ہے۔

آئی پی آر انگریزی میں 1500 اسکین شدہ رسید دستاویزات کا ایک ڈیٹا سیٹ ہے جس میں 4 ادارے ہیں (انوائس نمبر، وینڈر کا نام، ادا کرنے والے کا نام اور کل رقم)۔ رسیدوں کے لیے 146 ٹیمپلیٹس موجود ہیں۔

نتائج کی نمائش

F1 سکور تمام تجربے میں ماڈل کی کارکردگی کا جائزہ لینے کے لیے استعمال کیا جاتا ہے۔ نیچے دی گئی جدول میں thr 2 ڈیٹا سیٹس کے نتائج ہیں۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

بیس لائن I ہر ٹیکسٹ سیگمنٹ پر BiLSTM-CRF لاگو کرتا ہے، جہاں ہر ٹیکسٹ سیگمنٹ ایک انفرادی جملہ ہے۔

بیس لائن II ٹیگنگ ماڈل کو مربوط ٹیکسٹ سیگمنٹس پر لاگو کرتا ہے۔

تیز-RCNN + AED

رسید کی شناخت کے لیے گہری سیکھنے کا نقطہ نظر

یہ مقالہ سکین شدہ رسیدوں کو پہچاننے کے لیے ایک گہری سیکھنے کا طریقہ پیش کرتا ہے۔ شناخت کے نظام میں دو اہم ماڈیولز ہیں: کنکشنسٹ ٹیکسٹ پروپوزل نیٹ ورک پر مبنی ٹیکسٹ کا پتہ لگانا اور توجہ پر مبنی انکوڈر-ڈیکوڈر پر مبنی متن کی شناخت۔ سسٹم نے پتہ لگانے اور پہچاننے کے کام کے لیے F71.9 سکور کا 1% حاصل کیا۔

متن کا پتہ لگانا

LSTM پرت کے اضافے کے ساتھ CTPN کا ڈھانچہ Faster R-CNN کی طرح ہے۔ نیٹ ورک ماڈل بنیادی طور پر تین حصوں پر مشتمل ہے: وی جی جی 16 کے ذریعے فیچر نکالنا، دو طرفہ ایل ایس ٹی ایم، اور باؤنڈنگ باکس ریگریشن

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

متن کی پہچان۔

AED ٹیکسٹ لائنوں کو پہچانتے ہوئے استعمال کیا جاتا ہے۔ AED کے دو اہم ماڈیولز ہیں: متن کی تصویر سے خصوصیات نکالنے کے لیے DenseNet اور آؤٹ پٹ ٹیکسٹ کی پیشن گوئی کرنے کے لیے ایک توجہ ماڈل کے ساتھ مل کر ایک LSTM۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

ڈیٹا بیس

SROIE 2019 کا ڈیٹاسیٹ استعمال کیا جاتا ہے۔ انہوں نے تربیتی ڈیٹا کو تربیت، توثیق اور جانچ میں تقسیم کیا اور تصادفی طور پر تربیت کے لیے 80% رسیدیں، تصدیق کے لیے 10% رسیدیں، اور باقی جانچ کے لیے منتخب کیں۔ تربیت کے لیے 500 رسیدیں، تصدیق کے لیے 63 رسیدیں، اور جانچ کے لیے 63 رسیدیں

نتائج کی نمائش

متن کا پتہ لگانے کے لیے، کاغذ Tightness-Aware Intersection-over-Union (TIoU) متن کی شناخت کے لیے استعمال کرتا ہے، کاغذ F1، Precision اور Recall کا استعمال کرتا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

جدول I تین شرائط کے ساتھ CTPN کا نتیجہ دکھاتا ہے: اصل تصاویر پر CTPN؛ پری پروسیسنگ + CTPN، پری پروسیسنگ + CTPN + OCR تصدیق۔ جدول 2 AED نیٹ ورک کے نتائج دکھاتا ہے۔

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

یقیناً ایسا کرنے کا ایک آسان، زیادہ بدیہی طریقہ ہے۔


ایک مضبوط کی ضرورت ہے۔ رسید OCR رسیدوں سے ڈیٹا نکالنا ہے؟ Nanonets چیک کریں۔ رسید OCR API!


Nanonets کے ساتھ OCR

اپ ڈیٹ نمبر 1: ہم نے ابھی اپنا جاری کیا۔ رسید OCR پہلے سے تربیت یافتہ ماڈل۔ https://app.nanonets.com پر جائیں اور جانچ شروع کریں!

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

۔ Nanonets OCR API آپ کو آسانی سے OCR ماڈل بنانے کی اجازت دیتا ہے۔ آپ کو اپنی تصاویر کو پہلے سے پروسیس کرنے کے بارے میں فکر کرنے کی ضرورت نہیں ہے یا آپ کے OCR ماڈل کی درستگی کو بڑھانے کے لیے ٹیمپلیٹس کو ملانے یا اصول پر مبنی انجن بنانے کی فکر کرنے کی ضرورت نہیں ہے۔

آپ اپنا ڈیٹا اپ لوڈ کر سکتے ہیں، اس کی تشریح کر سکتے ہیں، ماڈل کو ٹریننگ کے لیے سیٹ کر سکتے ہیں اور براؤزر پر مبنی UI کے ذریعے کوڈ کی ایک لائن لکھے بغیر، GPUs کے بارے میں فکر کیے بغیر یا اپنے گہرے سیکھنے کے ماڈلز کے لیے صحیح آرکیٹیکچرز تلاش کیے بغیر پیشین گوئیاں حاصل کرنے کا انتظار کر سکتے ہیں۔ آپ ہر پیشین گوئی کے JSON جوابات بھی حاصل کر سکتے ہیں تاکہ اسے اپنے سسٹمز کے ساتھ ضم کر سکیں اور جدید ترین الگورتھم اور مضبوط انفراسٹرکچر پر تیار کردہ مشین لرننگ پاورڈ ایپس بنا سکیں۔

GUI کا استعمال کرتے ہوئے: https://app.nanonets.com/

آپ نیچے دیے گئے مراحل پر عمل کر کے Nanonets-OCR API بھی استعمال کر سکتے ہیں۔

مرحلہ 1: ریپو کو کلون کریں، انحصار انسٹال کریں۔

git clone https://github.com/NanoNets/nanonets-ocr-sample-python.git
cd nanonets-ocr-sample-python
sudo pip install requests tqdm

مرحلہ 2: اپنی مفت API کلید حاصل کریں۔
سے اپنی مفت API کلید حاصل کریں۔ http://app.nanonets.com/#/keys

او سی آر اور ڈیپ لرننگ کے ساتھ خودکار رسید ڈیجیٹائزیشن

مرحلہ 3: API کلید کو ماحولیاتی متغیر کے طور پر سیٹ کریں۔

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

مرحلہ 4: ایک نیا ماڈل بنائیں

python ./code/create-model.py

نوٹ: یہ ایک MODEL_ID تیار کرتا ہے جس کی آپ کو اگلے مرحلے کے لیے ضرورت ہے۔

مرحلہ 5: ماڈل آئی ڈی کو ماحولیاتی متغیر کے طور پر شامل کریں۔

export NANONETS_MODEL_ID=YOUR_MODEL_ID

نوٹ: آپ کو پچھلے مرحلے سے YOUR_MODEL_ID ملے گا۔

مرحلہ 6: ٹریننگ ڈیٹا اپ لوڈ کریں۔
تربیتی ڈیٹا میں پایا جاتا ہے۔ images (تصویری فائلیں) اور annotations (تصویری فائلوں کے لیے تشریحات)

python ./code/upload-training.py

مرحلہ 7: ٹرین ماڈل
امیجز اپ لوڈ ہونے کے بعد، ماڈل کی تربیت شروع کریں۔

python ./code/train-model.py

مرحلہ 8: ماڈل اسٹیٹ حاصل کریں۔
ماڈل کو تربیت دینے میں ~2 گھنٹے لگتے ہیں۔ ماڈل کی تربیت کے بعد آپ کو ایک ای میل موصول ہوگی۔ اس دوران آپ ماڈل کی حالت چیک کرتے ہیں۔

python ./code/model-state.py

مرحلہ 9: پیشن گوئی کریں
ایک بار جب ماڈل کو تربیت دی جاتی ہے۔ آپ ماڈل کا استعمال کرتے ہوئے پیشین گوئیاں کر سکتے ہیں۔

python ./code/prediction.py ./images/151.jpg

مزید پڑھنا

: اپ ڈیٹ کریں
او سی آر اور ڈیپ لرننگ کا استعمال کرتے ہوئے خودکار رسید ڈیجیٹائزیشن میں تازہ ترین پیشرفت کے بارے میں مزید پڑھنے کا مواد شامل کیا گیا۔

ٹائم اسٹیمپ:

سے زیادہ اے آئی اور مشین لرننگ