ต้องการดึงข้อมูลจากใบเสร็จโดยอัตโนมัติหรือไม่ ตรวจสอบการฝึกอบรมล่วงหน้าของ Nanonets ใบเสร็จรับเงิน OCR or สร้างของคุณเอง OCR ใบเสร็จรับเงินที่กำหนดเอง นอกจากนี้คุณยังสามารถ กำหนดเวลาการสาธิต เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับกรณีการใช้งาน AP ของเรา!
ใบเสร็จรับเงิน OCR หรือการแปลงใบเสร็จเป็นดิจิทัลจัดการกับความท้าทายในการดึงข้อมูลจากใบเสร็จโดยอัตโนมัติ ในบทความนี้ ผมจะกล่าวถึงทฤษฎีเบื้องหลังการแปลงใบเสร็จให้เป็นดิจิทัลและนำไปป์ไลน์แบบ end-to-end ไปใช้งานโดยใช้ OpenCV และ Tesseract. ฉันยังทบทวนเอกสารสำคัญสองสามฉบับที่ทำ Receipt Digitization โดยใช้ Deep Learning
ใบเสร็จรับเงินดิจิทัลคืออะไร?
ใบเสร็จจะนำข้อมูลที่จำเป็นสำหรับการค้าระหว่างบริษัทต่างๆ และส่วนใหญ่อยู่บนกระดาษหรือในรูปแบบกึ่งโครงสร้าง เช่น PDF และรูปภาพของกระดาษ/เอกสาร เพื่อจัดการข้อมูลนี้อย่างมีประสิทธิภาพ บริษัทจะดึงและจัดเก็บข้อมูลที่เกี่ยวข้องที่มีอยู่ในเอกสารเหล่านี้ ตามเนื้อผ้าสิ่งนี้ทำได้โดยการดึงข้อมูลที่เกี่ยวข้องด้วยตนเองและป้อนข้อมูลลงในฐานข้อมูลซึ่งเป็นกระบวนการที่ใช้แรงงานมากและมีราคาแพง
การแปลงใบเสร็จเป็นดิจิทัลจัดการกับความท้าทายในการดึงข้อมูลจากใบเสร็จโดยอัตโนมัติ
การดึงข้อมูลสำคัญจากใบเสร็จและแปลงเป็นเอกสารที่มีโครงสร้างสามารถให้บริการแอปพลิเคชันและบริการมากมาย เช่น การเก็บถาวรอย่างมีประสิทธิภาพ การทำดัชนีอย่างรวดเร็ว และการวิเคราะห์เอกสาร พวกเขามีบทบาทสำคัญในการปรับปรุงกระบวนการที่ใช้เอกสารมากและระบบอัตโนมัติของสำนักงานในด้านการเงิน การบัญชีและภาษีจำนวนมาก
ต้องการความแข็งแกร่ง รับ OCR or เครื่องสแกนใบเสร็จรับเงิน เพื่อดึงข้อมูลจากใบเสร็จ? ดู นาโนเน็ต ใบเสร็จรับเงิน OCR API!
ใครจะพบว่า Receipt Digitization มีประโยชน์?
ต่อไปนี้คือบางส่วนที่ Receipt Digitization สามารถสร้างผลกระทบอย่างใหญ่หลวงได้:
ระบบบัญชีเจ้าหนี้และลูกหนี้อัตโนมัติ
บัญชีเจ้าหนี้คอมพิวเตอร์ (AP) และบัญชีลูกหนี้ (AR) ด้วยตนเองมีค่าใช้จ่ายสูง ใช้เวลานาน และอาจทำให้เกิดความสับสนระหว่างผู้จัดการ ลูกค้า และผู้ขาย ด้วยการแปลงเป็นดิจิทัล บริษัทต่างๆ สามารถขจัดข้อเสียเหล่านี้และมีข้อได้เปรียบมากขึ้น – ความโปร่งใสที่เพิ่มขึ้น การวิเคราะห์ข้อมูล เงินทุนหมุนเวียนที่ได้รับการปรับปรุง และการติดตามที่ง่ายขึ้น
การเพิ่มประสิทธิภาพซัพพลายเชน
ห่วงโซ่อุปทานเป็นกระดูกสันหลังของการทำงานที่เหมาะสมของบริษัทหลายแห่ง การจัดการงาน กระแสข้อมูล และการไหลของผลิตภัณฑ์เป็นกุญแจสำคัญในการควบคุมอุปทานและการผลิตอย่างสมบูรณ์ นี่เป็นสิ่งสำคัญหากองค์กรต้องทันเวลาการส่งมอบและควบคุมต้นทุนการผลิต
บริษัทต่างๆ ที่เจริญรุ่งเรืองอย่างแท้จริงในทุกวันนี้มีบางสิ่งที่สำคัญเหมือนกัน นั่นคือ ห่วงโซ่อุปทานดิจิทัล 89% ของ บริษัท ด้วยซัพพลายเชนแบบดิจิทัลจะได้รับคำสั่งซื้อที่สมบูรณ์แบบจากซัพพลายเออร์ต่างประเทศ จึงมั่นใจได้ว่าจะส่งมอบตรงเวลา องค์ประกอบหลักประการหนึ่งของการทำให้ซัพพลายเชน 4.0 ยุคถัดไปเป็นจริง คือ การเก็บและจัดการข้อมูลโดยอัตโนมัติ ข้อมูลจำนวนมากนี้คือรูปแบบการรับและ ใบแจ้งหนี้. การป้อนใบเสร็จด้วยตนเองทำหน้าที่เป็นคอขวดในห่วงโซ่อุปทานและนำไปสู่ความล่าช้าที่ไม่จำเป็น หากการประมวลผลใบเสร็จนี้ถูกแปลงเป็นดิจิทัล อาจนำไปสู่การเพิ่มเวลาและประสิทธิภาพอย่างมาก
มีปัญหา OCR ในใจหรือไม่? ต้องการแปลงเป็นดิจิทัล ใบแจ้งหนี้, PDF หรือป้ายทะเบียนรถ ? ตรงไปที่ นาโนเน็ต และสร้างโมเดล OCR ฟรี!
ทำไมมันถึงเป็นปัญหายาก?
การแปลงใบเสร็จเป็นดิจิทัลนั้นทำได้ยากเนื่องจากใบเสร็จมีความหลากหลายและบางครั้งก็มีคุณภาพต่ำ การสแกนใบเสร็จยังแนะนำสิ่งประดิษฐ์หลายอย่างในสำเนาดิจิทัลของเรา สิ่งประดิษฐ์เหล่านี้มีความท้าทายในการอ่านง่ายมากมาย
นี่คือรายการของบางสิ่งที่ทำให้ยากต่อการถอดรหัส
- ข้อความที่เขียนด้วยลายมือ
- แบบอักษรขนาดเล็ก
- ภาพที่มีเสียงดัง
- ภาพจาง
- การเคลื่อนไหวของกล้องและการสั่นไหว
- ลายน้ำ
- ริ้วรอย
- ข้อความจาง
ท่อส่งใบเสร็จรับเงินแบบดิจิทัล
ไปป์ไลน์ทั่วไปสำหรับแนวทางแบบ end-to-end ประเภทนี้เกี่ยวข้องกับ:
- กระบวนการเตรียมการผลิต
- Optical Character ยอมรับ
- การสกัดข้อมูล
- การถ่ายโอนข้อมูล
มาดำดิ่งลึกลงไปในแต่ละส่วนของไปป์ไลน์กัน ขั้นตอนแรกของกระบวนการคือการประมวลผลล่วงหน้า
กระบวนการเตรียมการผลิต
ใบเสร็จที่สแกนส่วนใหญ่มีเสียงดังและมีสิ่งประดิษฐ์ ดังนั้นเพื่อให้ OCR และระบบดึงข้อมูลทำงานได้ดี จึงจำเป็นต้องประมวลผลใบเสร็จล่วงหน้า วิธีการทั่วไปในการประมวลผลล่วงหน้า ได้แก่ – Greyscaling, Thresholding (Binarization) และ Noise removal
ระดับสีเทาเป็นเพียงการแปลงภาพ RGB เป็นภาพระดับสีเทา
การกำจัดเสียงรบกวนมักเกี่ยวข้องกับการลบสัญญาณรบกวนของ Salt and Pepper หรือเสียงรบกวนแบบเกาส์เซียน
เอ็นจิ้น OCR ส่วนใหญ่ทำงานได้ดีกับภาพขาวดำ ซึ่งสามารถทำได้โดยการจำกัดขอบเขต ซึ่งเป็นการกำหนดค่าพิกเซลที่สัมพันธ์กับค่าเกณฑ์ที่ให้ไว้ ค่าพิกเซลแต่ละค่าจะถูกเปรียบเทียบกับค่าเกณฑ์ หากค่าพิกเซลน้อยกว่าเกณฑ์ ค่านั้นจะถูกตั้งค่าเป็น 0 มิฉะนั้น ค่าพิกเซลจะถูกตั้งค่าเป็นค่าสูงสุด (โดยทั่วไปคือ 255)
OpenCV มีตัวเลือกการจำกัดเกณฑ์ต่างๆ – เกณฑ์อย่างง่าย, เกณฑ์ที่ปรับเปลี่ยนได้
Optical Character ยอมรับ
ขั้นตอนต่อไปในไปป์ไลน์คือ OCR. ใช้สำหรับอ่านข้อความจากรูปภาพ เช่น เอกสารที่สแกนหรือรูปภาพ เทคโนโลยีนี้ใช้เพื่อแปลงรูปภาพแทบทุกประเภทที่มีข้อความเขียน (พิมพ์ เขียนด้วยลายมือ หรือพิมพ์) เป็นข้อมูลข้อความที่เครื่องอ่านได้. OCR ประกอบด้วย 2 ขั้นตอน – การตรวจจับข้อความและการจดจำข้อความ
OCR มีหลายวิธี แนวทางคอมพิวเตอร์วิชันซิสเต็มคือการ
- การใช้ฟิลเตอร์เพื่อแยกตัวละครออกจากพื้นหลัง
- ใช้การตรวจจับเส้นขอบเพื่อจดจำอักขระที่กรอง
- ใช้การจัดหมวดหมู่นักเวทย์เพื่อระบุตัวละคร
การใช้ฟิลเตอร์และการจัดประเภทรูปภาพนั้นค่อนข้างตรงไปตรงมา (คิดว่าการจัดประเภท MNIST โดยใช้ SVN) แต่การจับคู่เส้นขอบเป็นปัญหาที่ยากมาก และต้องใช้ความพยายามอย่างมากด้วยตนเองและไม่สามารถสรุปได้
ถัดมาคือแนวทางการเรียนรู้เชิงลึก Deep Learning สรุปได้ดีมาก วิธีที่นิยมใช้กันมากที่สุดในการตรวจหาข้อความคือ EAST EAST (เครื่องตรวจจับข้อความฉากที่แม่นยำอย่างมีประสิทธิภาพ) เป็นแนวทางที่เรียบง่ายแต่ทรงพลังสำหรับการตรวจจับข้อความ เครือข่าย EAST เป็นเวอร์ชันของ U-Net ที่รู้จักกันดี ซึ่งเหมาะสำหรับการตรวจจับคุณลักษณะที่มีขนาดต่างกัน
ซีอาร์เอ็น และ STN-OCR (Spatial Transformer Networks) เป็นเอกสารยอดนิยมอื่นๆ ที่ใช้ OCR
การสกัดข้อมูล
แนวทางทั่วไปที่สุดในการแก้ปัญหาการดึงข้อมูลเป็นแบบอิงตามกฎ โดยกฎจะถูกเขียนหลัง OCR เพื่อดึงข้อมูลที่จำเป็น นี่เป็นแนวทางที่ทรงพลังและแม่นยำ แต่คุณต้องเขียนกฎหรือเทมเพลตใหม่สำหรับเอกสารประเภทใหม่
ตามกฎหลายข้อ ใบกำกับสินค้า ระบบการวิเคราะห์มีอยู่ในวรรณคดี
- Intellix โดย DocuWare ต้องใช้เทมเพลตที่มีคำอธิบายประกอบพร้อมช่องที่เกี่ยวข้อง
- สมาร์ทฟิกซ์ ใช้กฎการกำหนดค่าที่ออกแบบมาโดยเฉพาะสำหรับแต่ละเทมเพลต
วิธีการที่อิงตามกฎต้องอาศัยกฎเทมเพลตที่กำหนดไว้ล่วงหน้าอย่างมากเพื่อดึงข้อมูลจากเค้าโครงใบแจ้งหนี้ที่เฉพาะเจาะจง
แนวทางหนึ่งที่กลายเป็นเรื่องธรรมดามากในช่วงไม่กี่ปีที่ผ่านมาคือการใช้เฟรมเวิร์กการตรวจจับวัตถุมาตรฐาน เช่น YOLO, Faster R-CNN เพื่อจดจำฟิลด์ ดังนั้นแทนที่จะใช้การตรวจจับข้อความล้วน การจดจำช่องและการตรวจจับข้อความจึงดำเนินการไปพร้อม ๆ กัน สิ่งนี้ทำให้ไปป์ไลน์มีขนาดเล็กลง (การตรวจจับข้อความ→การจดจำ→การแยกไปยังการตรวจจับ→การจดจำ) ไม่จำเป็นต้องเขียนกฎใดๆ เนื่องจากตัวตรวจจับวัตถุเรียนรู้ที่จะจดจำช่องเหล่านี้
การถ่ายโอนข้อมูล
เมื่อคุณดึงข้อมูลของคุณแล้ว การถ่ายโอนข้อมูลสามารถทำได้ตามที่กรณีการใช้งานของเรากำหนด บ่อยครั้งที่รูปแบบ JSON เพื่อเก็บข้อมูลฟิลด์นั้นสะดวก ไฟล์ JSON เหล่านี้สามารถแปลงเป็นไฟล์ XML, แผ่นงาน Excel, ไฟล์ 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 ขั้นสุดท้ายและได้รับการพัฒนาโดย Google ตั้งแต่ปี 2006 Tesseract (v4) รุ่นล่าสุดรองรับ OCR แบบ Deep Learning ที่มีความแม่นยำมากขึ้นอย่างมาก เอ็นจิ้น OCR พื้นฐานนั้นใช้เครือข่าย Long Short-Term Memory (LSTM)
ขั้นแรก ให้ติดตั้ง Tesseract เวอร์ชันล่าสุด
สำหรับอูบุนตู
sudo apt install tesseract-ocr
สำหรับ macOS
brew install tesseract --HEAD
สำหรับ windows คุณสามารถดาวน์โหลดไบนารีจากสิ่งนี้ หน้า
ตรวจสอบเวอร์ชัน tesseract ของคุณ
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 แล้ว เรามาเริ่มตรวจหากล่องข้อความกัน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')
นี่คือผลลัพธ์ของรหัสตรวจจับข้อความ
การรับรู้ข้อความ
เราจะ Tesseract เพื่อดำเนินการ 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' ใช้สิ่งเหล่านี้ มาเขียนชุดกฎเพื่อดึงข้อมูล กฎชุดนี้สามารถใช้กับใบเสร็จใดก็ได้จากโรงแรมนี้ เนื่องจากจะใช้รูปแบบเดียวกัน
ฉันจะแยกชื่อร้านอาหาร วันที่ทำธุรกรรม รายการที่ซื้อ ปริมาณ ต้นทุนรวมต่อรายการ และจำนวนเงินทั้งหมดโดยใช้คำสั่งหลามอย่างง่ายและนิพจน์ทั่วไป
นี่คือพจนานุกรมที่ฉันจะจัดเก็บข้อมูลที่แยกออกมา
receipt _ocr = {}
ขั้นตอนแรกคือการแยกชื่อร้านอาหาร ตำแหน่งของชื่อร้านอาหารจะคงที่ในใบเสร็จรับเงินทั้งหมด และอยู่ใน 2 บรรทัดแรก ลองใช้สิ่งนี้เพื่อสร้างกฎ
splits = extracted_text.splitlines()
restaurant_name = splits[0] + '' + splits[1]
ต่อไปเราจะแยกวันที่ของการทำธุรกรรม วันที่ regex ค่อนข้างตรงไปตรงมา
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 พลาดหนึ่งรายการเพราะตรวจพบ CH แทน CHF ฉันจะกล่าวถึงความท้าทายในระบบ 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'}
ข้อมูลสำคัญทั้งหมดได้รับการแยกและทิ้งลงในใบเสร็จ_json..
ปัญหาเกี่ยวกับแนวทางทั่วไป
แม้ว่าเราจะดึงข้อมูลออก แต่ไปป์ไลน์ด้านบนยังพลาดบางสิ่งและถือว่าเหมาะสมที่สุด สำหรับใบเสร็จใหม่แต่ละใบ เราจำเป็นต้องเขียนกฎชุดใหม่ ดังนั้นจึงไม่สามารถปรับขนาดได้
เลย์เอาต์ ขนาดฟอนต์และขนาดฟอนต์ เอกสารที่เขียนด้วยลายมืออาจมีหลากหลายรูปแบบ ความแตกต่างของเลย์เอาต์จะส่งผลต่อแนวทางตามกฎและต้องคำนึงถึงสิ่งเหล่านี้ ซึ่งกลายเป็นเรื่องน่าเบื่อหน่ายอย่างมาก ความแตกต่างของขนาดแบบอักษรและแบบอักษรทำให้ยากต่อการจดจำและดึงข้อมูล
เหตุใดไปป์ไลน์ Deep Learning แบบ end-to-end จึงดีกว่า
ปัญหาที่ใหญ่ที่สุดอย่างหนึ่งของแนวทางมาตรฐานคือการขาดลักษณะทั่วไป แนวทางตามกฎไม่สามารถสรุปได้และจำเป็นต้องเขียนกฎใหม่สำหรับเทมเพลตใหม่ นอกจากนี้ การเปลี่ยนแปลงหรือการเปลี่ยนแปลงใดๆ ในเทมเพลตที่มีอยู่ต้องนำมาพิจารณาด้วย
แนวทางการเรียนรู้เชิงลึกจะสามารถเรียนรู้กฎเหล่านี้ และจะสามารถสรุปในเค้าโครงต่างๆ ได้อย่างง่ายดาย หากเรามีกฎเหล่านี้ในชุดข้อมูลการฝึกอบรมของเรา
การเรียนรู้เชิงลึกและการดึงข้อมูล
ฉันทบทวนเอกสารสองสามฉบับที่ใช้วิธีการเรียนรู้เชิงลึกแบบ end-to-end.
น่ารัก
CUTIE: เรียนรู้ที่จะเข้าใจเอกสารด้วย Convolutional Universal Text Information Extractor
บทความนี้ขอเสนอ วิธีการดึงข้อมูลสำคัญตามการเรียนรู้ด้วยความต้องการทรัพยากรมนุษย์ที่จำกัด. เป็นการรวมข้อมูลจากทั้งความหมายเชิงความหมายและการกระจายเชิงพื้นที่ของข้อความในเอกสาร รูปแบบที่เสนอของพวกเขา Convolutional Universal Text Information Extractor (CUTIE) ใช้โครงข่ายประสาทเทียมแบบ convolutional กับข้อความแบบ gridded โดยที่ข้อความจะถูกฝังเป็นคุณลักษณะที่มีความหมายแฝง
แบบที่เสนอ, จัดการปัญหาการดึงข้อมูลที่สำคัญโดย
- ขั้นแรกให้สร้างข้อความ gridded ด้วยข้อเสนอ วิธีการทำแผนที่ตำแหน่งกริด. ในการสร้างข้อมูลกริดสำหรับโครงข่ายประสาทเทียม ภาพเอกสารที่สแกนจะถูกประมวลผลโดยเอ็นจิ้น OCR เพื่อรับข้อความและตำแหน่งสัมบูรณ์/สัมพัทธ์ ข้อความจะถูกแมปจากภาพเอกสารต้นฉบับที่สแกนไปยังตารางเป้าหมาย เพื่อให้ตารางที่แมปรักษาความสัมพันธ์เชิงพื้นที่ดั้งเดิมระหว่างข้อความ และยังเหมาะสมกว่าที่จะใช้เป็นอินพุตสำหรับโครงข่ายประสาทเทียม
- จากนั้นจึงนำโมเดล CUTIE ไปใช้กับข้อความกริด ข้อมูลเชิงความหมายที่หลากหลายถูกเข้ารหัสจากข้อความแบบกริดที่ระยะเริ่มต้นของโครงข่ายประสาทเทียมแบบคอนโวลูชันนัลพร้อมเลเยอร์การฝังคำ
CUTIE ช่วยให้สามารถค้นหาข้อมูลเชิงความหมายและข้อมูลเชิงพื้นที่ของข้อความในภาพเอกสารที่สแกนได้พร้อมกัน และสามารถเข้าถึงผลลัพธ์ที่ทันสมัยสำหรับการดึงข้อมูลสำคัญ
นางแบบน่ารัก
มี 2 รุ่น CUTIE-A และ CUTIE-B CUTIE-A ที่เสนอเป็นโครงข่ายประสาทเทียมแบบคอนโวลูชั่นความจุสูงที่หลอมรวมคุณสมบัติหลายความละเอียดโดยไม่สูญเสียคุณสมบัติที่มีความละเอียดสูง CUTIE-B เป็นเครือข่ายแบบ Convolutional ที่มีการบิดแบบรุนแรงเพื่อขยายขอบเขตการมองเห็นและโมดูล Atrous Spatial Pyramid Pooling (ASPP) เพื่อจับภาพบริบทแบบหลายสเกล ทั้ง CUTIE-A และ CUITE-B ดำเนินกระบวนการเข้ารหัสความหมายเชิงความหมายด้วยเลเยอร์การฝังคำในระยะเริ่มต้น
งานของ CUTIE มีความคล้ายคลึงกับงานการแบ่งส่วนความหมาย ตารางที่แมปมีจุดข้อมูลที่กระจัดกระจาย (โทเค็นข้อความ) ในทางตรงกันข้ามกับรูปภาพที่กระจายด้วยพิกเซล ข้อความหลักที่แมปตำแหน่งกริดอยู่ใกล้หรือไกลกันเนื่องจากรูปแบบเอกสารประเภทต่างๆ ดังนั้นการรวมความสามารถในการประมวลผลบริบทแบบหลายสเกลจะเป็นประโยชน์ต่อเครือข่าย
ชุด
วิธีการที่เสนอนี้ได้รับการประเมินจากความท้าทายในการอ่านที่แข็งแกร่งของ ICDAR 2019 บนชุดข้อมูล SROIE และยังอยู่ในชุดข้อมูลที่สร้างขึ้นเองด้วยรูปภาพเอกสารที่สแกน 3 ประเภท
พื้นที่ ชุดข้อมูล ICDAR 2019 SROIE ใช้ซึ่งมีภาพใบเสร็จรับเงินที่สแกนทั้งหมด 1000 ภาพ รูปภาพใบเสร็จแต่ละรูปประกอบด้วยช่องข้อความหลักประมาณสี่ช่อง เช่น ชื่อสินค้า ราคาต่อหน่วย วันที่ และต้นทุนรวม ข้อความที่มีคำอธิบายประกอบในชุดข้อมูลประกอบด้วยตัวเลขและอักขระภาษาอังกฤษเป็นหลัก
ชุดข้อมูลที่สร้างขึ้นเองประกอบด้วยเอกสารสแกนใบเสร็จรับเงินของสเปนที่มีคำอธิบายประกอบ 4, 484 ฉบับ ซึ่งรวมถึงใบเสร็จแท็กซี่ ใบเสร็จค่าอาหาร (ME) และใบเสร็จของโรงแรม โดยมีข้อมูลสำคัญ 9 ระดับที่แตกต่างกัน
ผลสอบ
ประสิทธิภาพโดยรวมได้รับการประเมินโดยใช้ความแม่นยำเฉลี่ย (AP – และวัดในแง่ของความแม่นยำต่อคลาสใน 9 คลาส) และความแม่นยำเฉลี่ยแบบนุ่มนวล (softAP) โดยที่การคาดการณ์ของคลาสข้อมูลสำคัญจะพิจารณาว่าถูกต้องหากความจริงพื้นๆ มีการทำนายอย่างถูกต้องแม้ว่าผลบวกที่ผิดพลาดบางอย่างจะรวมอยู่ในการทำนายขั้นสุดท้าย การวิเคราะห์ร่วมกันของ AP และ softAP ช่วยให้เข้าใจประสิทธิภาพของแบบจำลองได้ดีขึ้น
คุณสามารถดูผลลัพธ์ในตารางด้านล่าง
GCN สำหรับ VRD
กราฟ Convolution สำหรับการดึงข้อมูลหลายรูปแบบจากเอกสารที่มองเห็นได้ชัดเจน
บทความนี้จะแนะนำแบบจำลองกราฟที่ใช้การบิดเพื่อรวมข้อมูลที่เป็นข้อความและภาพที่นำเสนอในเอกสาร Visually Rich (VRD) การฝังกราฟได้รับการฝึกฝนเพื่อสรุปบริบทของเซ็กเมนต์ข้อความในเอกสาร และรวมเพิ่มเติมกับการฝังข้อความสำหรับการแยกเอนทิตี
ในเอกสารนี้พวกเขาเรียกเอกสารว่า VRD และฉันจะยึดติดกับมัน
เอกสารแต่ละฉบับถูกจำลองเป็นกราฟของส่วนข้อความ โดยที่แต่ละส่วนข้อความจะประกอบด้วยตำแหน่งของส่วนและข้อความภายในนั้น กราฟประกอบด้วยโหนดที่แสดงถึงส่วนของข้อความ และขอบที่แสดงถึงการพึ่งพาทางสายตา เช่น รูปร่างและระยะห่างที่สัมพันธ์กัน ระหว่างสองโหนด
การฝังกราฟที่สร้างโดยการบิดกราฟจะสรุปบริบทของเซ็กเมนต์ข้อความในเอกสาร ซึ่งจะรวมเพิ่มเติมกับการฝังข้อความสำหรับการแยกเอนทิตีโดยใช้โมเดล BiLSTM-CRF มาตรฐาน
รุ่น
ขั้นแรก โมเดลจะเข้ารหัสแต่ละส่วนข้อความในเอกสารลงในกราฟที่ฝัง โดยใช้การบิดกราฟหลายชั้น การฝังแสดงข้อมูลในส่วนข้อความตามบริบทที่เป็นภาพและข้อความ บริบทภาพคือเลย์เอาต์ของเอกสารและตำแหน่งสัมพันธ์ของแต่ละเซ็กเมนต์กับเซ็กเมนต์อื่น บริบทที่เป็นข้อความคือการรวมข้อมูลที่เป็นข้อความในเอกสารโดยรวม โมเดลเรียนรู้ที่จะกำหนดน้ำหนักให้กับข้อความจากกลุ่มเพื่อนบ้านที่สูงขึ้น จากนั้น กระดาษจะรวมการฝังกราฟกับการฝังข้อความ และใช้แบบจำลอง BiLSTM-CRF มาตรฐานสำหรับการแยกเอนทิตี
ชุด
ใช้ชุดข้อมูลจริงสองชุด ได้แก่ ใบกำกับภาษีมูลค่าเพิ่ม (VATI) และใบรับซื้อระหว่างประเทศ (IPR) VATI ประกอบด้วยรูปภาพที่ผู้ใช้อัปโหลด 3000 ภาพและมีหน่วยงาน 16 รายการที่แน่นอน ตัวอย่างนิติบุคคล ได้แก่ ชื่อของผู้ซื้อ/ผู้ขาย วันที่ และจำนวนภาษี ใบแจ้งหนี้เป็นภาษาจีน และมีเทมเพลตคงที่เนื่องจากเป็นใบแจ้งหนี้มาตรฐานระดับประเทศ
IPR คือชุดข้อมูลของเอกสารใบเสร็จรับเงินที่สแกนแล้ว 1500 ฉบับเป็นภาษาอังกฤษ ซึ่งมี 4 รายการให้ถูกต้อง (หมายเลขใบแจ้งหนี้ ชื่อผู้ขาย ชื่อผู้ชำระเงิน และจำนวนเงินทั้งหมด) มี 146 แม่แบบสำหรับใบเสร็จ
ผลสอบ
คะแนน F1 ใช้ในการประเมินประสิทธิภาพของแบบจำลองในการทดสอบทั้งหมด ตารางด้านล่างมีผลลัพธ์ในชุดข้อมูล 2 ชุด
ข้อมูลพื้นฐานที่ XNUMX ใช้ BiLSTM-CRF กับแต่ละส่วนของข้อความ โดยที่แต่ละส่วนของข้อความเป็นประโยคเดี่ยว
Baseline II ใช้โมเดลการติดแท็กกับเซ็กเมนต์ข้อความที่ต่อกัน
เร็วกว่า-RCNN + AED
แนวทางการเรียนรู้เชิงลึกเพื่อการรู้จำใบเสร็จ
เอกสารนี้นำเสนอแนวทางการเรียนรู้เชิงลึกสำหรับการจดจำใบเสร็จที่สแกน ระบบการรู้จำมีสองโมดูลหลัก: การตรวจหาข้อความตามเครือข่ายข้อเสนอข้อความของ Connectionist และการรู้จำข้อความตามตัวเข้ารหัส-ตัวถอดรหัสตามความสนใจ ระบบได้คะแนน F71.9 1% สำหรับงานตรวจจับและจดจำ
การตรวจจับข้อความ
โครงสร้าง CTPN นั้นคล้ายกับ Faster R-CNN ด้วยการเพิ่มเลเยอร์ LSTM โมเดลเครือข่ายส่วนใหญ่ประกอบด้วยสามส่วน: การแยกคุณลักษณะโดย VGG16, LSTM แบบสองทิศทาง และการถดถอยของขอบเขต
การรับรู้ข้อความ
ใช้ AED เพื่อจดจำบรรทัดข้อความ เครื่อง AED มีสองโมดูลหลัก: DenseNet สำหรับการดึงคุณลักษณะจากภาพข้อความและ LSTM รวมกับแบบจำลองความสนใจสำหรับการคาดคะเนข้อความที่ส่งออก
ชุด
ใช้ชุดข้อมูลจาก SROIE 2019 พวกเขาแบ่งข้อมูลการฝึกอบรมออกเป็นการฝึกอบรม การตรวจสอบ และการทดสอบ และสุ่มเลือก 80% ของรายรับสำหรับการฝึกอบรม 10% ของรายรับสำหรับการตรวจสอบ และส่วนที่เหลือสำหรับการทดสอบ ส่งผลให้ได้รับการฝึกอบรม 500 ใบ, 63 ใบรับสำหรับการตรวจสอบ และ 63 ใบสำหรับการทดสอบ
ผลสอบ
สำหรับการตรวจหาข้อความ กระดาษจะใช้Tightness-aware Intersection-over-Union (TIoU) สำหรับการจดจำข้อความ กระดาษนี้ใช้ F1 , Precision และ Recall
ตารางที่ 2 แสดงผลของ CTPN โดยมีสามเงื่อนไข: CTPN บนภาพต้นฉบับ; การประมวลผลล่วงหน้า + CTPN การประมวลผลล่วงหน้า + การตรวจสอบ CTPN + OCR ตารางที่ XNUMX แสดงผลเครือข่าย AED
แน่นอนว่ามีวิธีที่ง่ายกว่า เข้าใจง่ายกว่าในการทำเช่นนี้
ต้องการความแข็งแกร่ง รับ OCR เพื่อดึงข้อมูลจากใบเสร็จ? ดู นาโนเน็ต ใบเสร็จรับเงิน OCR API!
OCR กับ Nanonets
อัปเดต #1: เราเพิ่งเปิดตัว .ของเรา รับ OCR รุ่นก่อนการฝึกอบรม ไปที่ https://app.nanonets.com แล้วเริ่มการทดสอบได้เลย!
พื้นที่ นาโนเน็ต OCR API ช่วยให้คุณสร้างโมเดล OCR ได้อย่างง่ายดาย คุณไม่ต้องกังวลกับการประมวลผลภาพล่วงหน้าหรือกังวลเกี่ยวกับเทมเพลตที่ตรงกันหรือสร้างเอ็นจิ้นตามกฎเพื่อเพิ่มความแม่นยำของโมเดล OCR ของคุณ
คุณสามารถอัปโหลดข้อมูล ใส่คำอธิบายประกอบ ตั้งค่าโมเดลเพื่อฝึกและรอรับการคาดคะเนผ่าน UI ที่ใช้เบราว์เซอร์โดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียว กังวลเกี่ยวกับ GPU หรือค้นหาสถาปัตยกรรมที่เหมาะสมสำหรับโมเดลการเรียนรู้เชิงลึกของคุณ คุณยังสามารถรับการตอบสนอง JSON ของการคาดคะเนแต่ละรายการเพื่อรวมเข้ากับระบบของคุณเอง และสร้างแอปที่ขับเคลื่อนด้วยการเรียนรู้ของเครื่อง ซึ่งสร้างจากอัลกอริธึมล้ำสมัยและโครงสร้างพื้นฐานที่แข็งแกร่ง
การใช้ GUI: https://app.nanonets.com/
คุณยังสามารถใช้ Nanonets-OCR API ได้โดยทำตามขั้นตอนด้านล่าง:
ขั้นตอนที่ 1: โคลน Repo ติดตั้งการพึ่งพา
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: โมเดลรถไฟ
เมื่ออัปโหลดรูปภาพแล้ว ให้เริ่มฝึก Model
python ./code/train-model.py
ขั้นตอนที่ 8: รับสถานะโมเดล
โมเดลใช้เวลาฝึกประมาณ 2 ชั่วโมง คุณจะได้รับอีเมลเมื่อโมเดลได้รับการฝึกอบรม ในระหว่างนี้คุณตรวจสอบสถานะของโมเดล
python ./code/model-state.py
ขั้นตอนที่ 9: ทำการทำนาย
เมื่อนางแบบได้รับการฝึกฝน คุณสามารถทำนายโดยใช้แบบจำลอง
python ./code/prediction.py ./images/151.jpg
อ่านเพิ่มเติม
- OCR Engine เพื่อแยกรายการอาหาร, ราคา, ปริมาณ, หน่วยจากอิมเมจใบเสร็จรับเงิน, แนวทางตามกฎฮิวริสติก
- การระบุรูปภาพ การครอบตัด และการแยกวิเคราะห์ใบเสร็จอัตโนมัติ
- ขั้นตอนด่วนในการทำให้ใบเสร็จและใบกำกับสินค้าของคุณเป็นแบบดิจิทัล
ปรับปรุง:
เพิ่มเอกสารการอ่านเพิ่มเติมเกี่ยวกับความก้าวหน้าล่าสุดในการแปลงใบเสร็จให้เป็นดิจิทัลโดยอัตโนมัติโดยใช้ OCR และ Deep Learning
- "
- &
- 11
- 2019
- 39
- 67
- 7
- 9
- เกี่ยวกับเรา
- การบัญชี
- ถูกต้อง
- ประสบความสำเร็จ
- ได้รับ
- ข้าม
- ข้อได้เปรียบ
- อัลกอริทึม
- ทั้งหมด
- แล้ว
- แม้ว่า
- ในหมู่
- จำนวน
- การวิเคราะห์
- การวิเคราะห์
- API
- การใช้งาน
- การประยุกต์ใช้
- เข้าใกล้
- ปพลิเคชัน
- APT
- รอบ
- ศิลปะ
- บทความ
- อัตโนมัติ
- เฉลี่ย
- หมี
- การเริ่มต้น
- ประโยชน์ที่ได้รับ
- ที่ใหญ่ที่สุด
- Black
- ชายแดน
- กล่อง
- เบราว์เซอร์
- สร้าง
- โทรศัพท์
- ความจุ
- เมืองหลวง
- CD
- ท้าทาย
- ความท้าทาย
- ชาวจีน
- การจัดหมวดหมู่
- รหัส
- ร่วมกัน
- บริษัท
- เมื่อเทียบกับ
- องค์ประกอบ
- ความสับสน
- มี
- เนื้อหา
- ต่อ
- ควบคุม
- ค่าใช้จ่าย
- ได้
- การสร้าง
- ลูกค้า
- CVC
- ข้อมูล
- วิเคราะห์ข้อมูล
- ชุดข้อมูล
- ฐานข้อมูล
- ลึก
- ความล่าช้า
- การจัดส่ง
- ตรวจพบ
- การตรวจพบ
- พัฒนา
- ต่าง
- ดิจิตอล
- แปลง
- แปลงเป็นดิจิทัล
- ตัวเลข
- ระยะทาง
- การกระจาย
- เอกสาร
- อีเมล
- อย่างง่ายดาย
- อย่างมีประสิทธิภาพ
- อีเมล
- ภาษาอังกฤษ
- ความบันเทิง
- สิ่งแวดล้อม
- จำเป็น
- ยูโร
- ทุกอย่าง
- ตัวอย่าง
- Excel
- การทดลอง
- FAST
- เร็วขึ้น
- ลักษณะ
- คุณสมบัติ
- สาขา
- ฟิลเตอร์
- ทางการเงิน
- ชื่อจริง
- ปฏิบัติตาม
- ดังต่อไปนี้
- ฟอร์ม
- รูป
- พบ
- กรอบ
- ฟรี
- ฟังก์ชั่น
- สร้าง
- ได้รับ
- ไป
- เป้าหมาย
- ไป
- ดี
- สินค้า
- เฉดสีเทา
- ตะแกรง
- หัว
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- จุดสูง
- ส่งไปโรงแรม
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTTPS
- ใหญ่
- ความคิด
- ประจำตัว
- แยกแยะ
- ภาพ
- ส่งผลกระทบ
- การดำเนินการ
- สำคัญ
- ประกอบด้วย
- รวม
- รวมทั้ง
- เพิ่ม
- เพิ่มขึ้น
- ดัชนี
- เป็นรายบุคคล
- ข้อมูล
- โครงสร้างพื้นฐาน
- รวบรวม
- International
- ใช้งานง่าย
- IT
- คีย์
- ที่รู้จักกัน
- ภาษา
- ล่าสุด
- นำ
- เรียนรู้
- การเรียนรู้
- ห้องสมุด
- ถูก จำกัด
- Line
- LINK
- รายการ
- วรรณคดี
- ที่ตั้ง
- นาน
- ที่ต้องการหา
- เครื่อง
- เรียนรู้เครื่อง
- การทำ
- การจัดการ
- การจัดการ
- คู่มือ
- ความหมาย
- หน่วยความจำ
- ใจ
- แบบ
- โมเดล
- มากที่สุด
- เป็นที่นิยม
- ชื่อ
- แห่งชาติ
- การเดินเรือ
- เครือข่าย
- เครือข่าย
- โหนด
- สัญญาณรบกวน
- Options
- ใบสั่ง
- คำสั่งซื้อ
- องค์กร
- อื่นๆ
- มิฉะนั้น
- กระดาษ
- แบบแผน
- รูปแบบไฟล์ PDF
- การปฏิบัติ
- การแสดง
- ภาพ
- เล่น
- ยอดนิยม
- ที่มีประสิทธิภาพ
- คำทำนาย
- การคาดการณ์
- สวย
- ราคา
- ปัญหา
- กระบวนการ
- กระบวนการ
- ผลิต
- ผลิตภัณฑ์
- การผลิต
- ข้อเสนอ
- ให้
- ซื้อ
- ซื้อ
- คุณภาพ
- ดิบ
- RE
- การอ่าน
- รับ
- ปกติ
- ความสัมพันธ์
- แสดงให้เห็นถึง
- จำเป็นต้องใช้
- REST
- ร้านอาหาร
- ผลสอบ
- ทบทวน
- กฎระเบียบ
- ที่ปรับขนาดได้
- การสแกน
- การแบ่งส่วน
- เลือก
- บริการ
- ชุด
- รูปร่าง
- สำคัญ
- คล้ายคลึงกัน
- ง่าย
- So
- บางสิ่งบางอย่าง
- สเปน
- เฉพาะ
- แยก
- ระยะ
- เริ่มต้น
- สถานะ
- จัดเก็บ
- แข็งแรง
- เป็นกอบเป็นกำ
- จัดหาอุปกรณ์
- ห่วงโซ่อุปทาน
- ซัพพลายเชน
- รองรับ
- สวิสเซอร์แลนด์
- ระบบ
- ระบบ
- เป้า
- งาน
- ภาษี
- การเก็บภาษี
- เทคโนโลยี
- การทดสอบ
- ตลอด
- เวลา
- ต้องใช้เวลามาก
- ราชสกุล
- การติดตาม
- การค้า
- แบบดั้งเดิม
- การฝึกอบรม
- การทำธุกรรม
- ความโปร่งใส
- ui
- เข้าใจ
- สากล
- ใช้
- ความคุ้มค่า
- ผู้ขาย
- การตรวจสอบ
- รายละเอียด
- วิสัยทัศน์
- W
- รอ
- อะไร
- WHO
- หน้าต่าง
- ภายใน
- ไม่มี
- งาน
- การทำงาน
- การเขียน
- X
- XML
- ปี