วิธีการจดจำลายมืออย่างง่ายดายโดยใช้ Machine Learning PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ต้องการทำ OCR ที่เขียนด้วยลายมือ? บล็อกนี้เป็นภาพรวมที่ครอบคลุมเกี่ยวกับวิธีการล่าสุดในการจดจำลายมือโดยใช้การเรียนรู้เชิงลึก เราได้ตรวจสอบงานวิจัยและเอกสารล่าสุด และได้สร้างเครื่องอ่านลายมือตั้งแต่เริ่มต้น


นาโนเน็ต OCR API มีความน่าสนใจมากมาย กรณีใช้. พูดคุยกับผู้เชี่ยวชาญ Nanonets AI เพื่อเรียนรู้เพิ่มเติม


บทนำ

ขนาดของตลาดการรู้จำอักขระด้วยแสง (OCR) คาดว่าจะอยู่ที่ 13.38 พันล้านดอลลาร์สหรัฐในปี 2025 โดยเติบโต 13.7% เมื่อเทียบเป็นรายปี การเติบโตนี้ขับเคลื่อนโดยกระบวนการทางธุรกิจแบบดิจิทัลอย่างรวดเร็วโดยใช้ OCR เพื่อลดต้นทุนแรงงานและประหยัดเวลาในการทำงานอันมีค่า แม้ว่า OCR จะได้รับการพิจารณาว่าแก้ปัญหาได้แล้ว แต่ก็มีองค์ประกอบสำคัญอย่างหนึ่งคือ การรู้จำลายมือ (Handwriting OCR) หรือการรู้จำข้อความที่เขียนด้วยลายมือ (HTR) ซึ่งยังถือว่าเป็นคำแถลงปัญหาที่ท้าทาย รูปแบบการเขียนด้วยลายมือที่แตกต่างกันในแต่ละบุคคลและข้อความที่เขียนด้วยลายมือมีคุณภาพต่ำเมื่อเทียบกับข้อความที่พิมพ์ออกมาเป็นอุปสรรคสำคัญในการแปลงเป็นข้อความที่เครื่องอ่านได้ อย่างไรก็ตาม มันเป็นปัญหาสำคัญในการแก้ปัญหาในอุตสาหกรรมต่างๆ เช่น การดูแลสุขภาพ การประกันภัย และการธนาคาร

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง
ที่มา :- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

ความก้าวหน้าล่าสุดในการเรียนรู้เชิงลึก เช่น การถือกำเนิดของสถาปัตยกรรมหม้อแปลงไฟฟ้าได้ติดตามความคืบหน้าของเราในการถอดรหัสการจดจำข้อความที่เขียนด้วยลายมืออย่างรวดเร็ว การจดจำข้อความที่เขียนด้วยลายมือเรียกว่า Intelligent Character Recognition (ICR) เนื่องจากอัลกอริธึมที่จำเป็นในการแก้ปัญหา ICR จำเป็นต้องมีสติปัญญามากกว่าการแก้ปัญหา OCR ทั่วไป

ในบทความนี้ เราจะมาเรียนรู้เกี่ยวกับงานของการรู้จำข้อความที่เขียนด้วยลายมือ ความซับซ้อน และวิธีที่เราจะแก้ปัญหาโดยใช้เทคนิคการเรียนรู้เชิงลึก


ต้องการดึงข้อมูลจากแบบฟอร์มที่เขียนด้วยลายมือ? ตรงไปที่ นาโนเน็ต และเริ่มสร้างแบบจำลอง OCR ลายมือ ฟรี!


ความท้าทายในการรู้จำลายมือ

  1. ความแปรปรวนและความคลุมเครืออย่างมากของจังหวะจากคนสู่คน
  2. สไตล์การเขียนด้วยลายมือของแต่ละคนก็แตกต่างกันไปตามกาลเวลาและไม่สอดคล้องกัน
  3. คุณภาพของเอกสาร/รูปภาพต้นทางไม่ดีเนื่องจากการเสื่อมสภาพเมื่อเวลาผ่านไป
  4. ข้อความในเอกสารที่พิมพ์ออกมาเป็นเส้นตรง ในขณะที่มนุษย์ไม่จำเป็นต้องเขียนข้อความเป็นเส้นตรงบนกระดาษขาว
  5. การเขียนด้วยลายมือทำให้การแยกและการจดจำตัวละครเป็นเรื่องที่ท้าทาย
  6. ข้อความในการเขียนด้วยลายมือสามารถหมุนตัวแปรไปทางขวาได้ ซึ่งตรงกันข้ามกับข้อความที่พิมพ์โดยที่ข้อความทั้งหมดตั้งตรง
  7. การรวบรวมชุดข้อมูลที่มีป้ายกำกับที่ดีเพื่อเรียนรู้นั้นไม่ถูกเมื่อเทียบกับข้อมูลสังเคราะห์

ใช้กรณี

การดูแลสุขภาพและยา

การแปลงใบสั่งยาของผู้ป่วยเป็นดิจิทัลเป็นจุดเจ็บปวดที่สำคัญในอุตสาหกรรมการดูแลสุขภาพ/ยา ตัวอย่างเช่น Roche กำลังจัดการไฟล์ PDF ทางการแพทย์หลายล้านเพตาไบต์ทุกวัน อีกประเด็นหนึ่งที่การตรวจจับข้อความที่เขียนด้วยลายมือมีผลกระทบสำคัญคือการลงทะเบียนผู้ป่วยและการแปลงแบบฟอร์มเป็นดิจิทัล ด้วยการเพิ่มการจดจำลายมือลงในชุดเครื่องมือของบริการ โรงพยาบาล/ยาสามารถปรับปรุงประสบการณ์ผู้ใช้ได้อย่างมาก

ประกันภัย

อุตสาหกรรมประกันภัยขนาดใหญ่ได้รับเอกสารมากกว่า 20 ล้านฉบับต่อวัน และความล่าช้าในการดำเนินการเรียกร้องอาจส่งผลกระทบอย่างมากต่อบริษัท เอกสารการอ้างสิทธิ์สามารถมีรูปแบบการเขียนด้วยลายมือที่แตกต่างกันได้หลายแบบและระบบอัตโนมัติของการประมวลผลการอ้างสิทธิ์จะทำให้ไปป์ไลน์ช้าลงโดยสิ้นเชิง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง
ที่มา :- https://www.researchgate.net/figure/mages-of-handwrite-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

การธนาคาร

ผู้คนเขียนเช็คเป็นประจำ และเช็คยังคงมีบทบาทสำคัญในการทำธุรกรรมที่ไม่ใช่เงินสดส่วนใหญ่ ในประเทศกำลังพัฒนาหลายแห่ง ขั้นตอนการประมวลผลเช็คในปัจจุบันต้องการให้พนักงานธนาคารอ่านและป้อนข้อมูลบนเช็คด้วยตนเอง และตรวจสอบรายการต่างๆ เช่น ลายเซ็นและวันที่ เนื่องจากต้องดำเนินการเช็คจำนวนมากทุกวันในธนาคาร ระบบการจดจำข้อความด้วยลายมือจึงสามารถประหยัดค่าใช้จ่ายและชั่วโมงการทำงานของมนุษย์ได้

ห้องสมุดออนไลน์

ความรู้ทางประวัติศาสตร์จำนวนมหาศาลกำลังถูกแปลงเป็นดิจิทัลโดยการอัปโหลดภาพที่สแกนเพื่อเข้าถึงคนทั้งโลก แต่ความพยายามนี้ไม่เป็นประโยชน์มากนัก จนกว่าจะสามารถระบุข้อความในรูปภาพ ซึ่งสามารถจัดทำดัชนี สืบค้น และเรียกดูได้ การรู้จำลายมือมีบทบาทสำคัญในการนำเอกสาร โปสการ์ด การศึกษาวิจัย ฯลฯ ในยุคกลางและศตวรรษที่ 20 กลับมามีชีวิตอีกครั้ง

วิธีการ

วิธีการรู้จำลายมือสามารถแบ่งออกได้เป็น XNUMX ประเภทใหญ่ๆ ดังนี้

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง
  1. วิธีการออนไลน์ :- วิธีการออนไลน์เกี่ยวข้องกับปากกาดิจิทัล/สไตลัส และสามารถเข้าถึงข้อมูลการขีดเขียน ตำแหน่งของปากกาในขณะที่กำลังเขียนข้อความดังที่เห็นในรูปด้านบน เนื่องจากมักจะมีข้อมูลจำนวนมากเกี่ยวกับการไหลของข้อความที่เขียน จึงสามารถจำแนกได้ค่อนข้างแม่นยำ และการแบ่งเขตระหว่างอักขระต่างๆ ในข้อความจะมีความชัดเจนมากขึ้น
  2. วิธีการออฟไลน์ :- วิธีการออฟไลน์เกี่ยวข้องกับการจดจำข้อความเมื่อเขียนลงไป และด้วยเหตุนี้จึงไม่มีข้อมูลของจังหวะ/ทิศทางที่เกี่ยวข้องระหว่างการเขียน โดยอาจมีเสียงรบกวนเพิ่มเติมจากแหล่งที่มา เช่น กระดาษ

ในโลกแห่งความเป็นจริง การพกพาปากกาดิจิทัลพร้อมเซ็นเซอร์เพื่อจับข้อมูลเส้นขีดนั้นเป็นไปไม่ได้/ปรับขนาดได้เสมอไป ดังนั้นงานในการจดจำข้อความแบบออฟไลน์จึงเป็นปัญหาที่เกี่ยวข้องกันมาก ดังนั้นตอนนี้เราจะพูดถึงเทคนิคต่าง ๆ ในการแก้ปัญหาการจดจำข้อความออฟไลน์

เทคนิค

วิธีการเริ่มต้นในการแก้ปัญหาการรู้จำลายมือนั้นเกี่ยวข้องกับวิธีการเรียนรู้ของเครื่อง เช่น Hidden Markov Models (HMM), SVM เป็นต้น เมื่อข้อความเริ่มต้นได้รับการประมวลผลล่วงหน้าแล้ว การแยกคุณลักษณะจะดำเนินการเพื่อระบุข้อมูลสำคัญ เช่น การวนซ้ำ จุดเปลี่ยน อัตราส่วนภาพ เป็นต้น ของตัวละครแต่ละตัว ขณะนี้คุณลักษณะที่สร้างขึ้นเหล่านี้ถูกส่งไปยังตัวแยกประเภทที่บอกว่า HMM เพื่อให้ได้ผลลัพธ์ ประสิทธิภาพของโมเดลแมชชีนเลิร์นนิงค่อนข้างจำกัดเนื่องจากขั้นตอนการแยกคุณลักษณะแบบแมนนวลและความสามารถในการเรียนรู้ที่จำกัด ขั้นตอนการแยกคุณลักษณะจะแตกต่างกันไปในแต่ละภาษา ดังนั้นจึงไม่สามารถปรับขนาดได้ ด้วยการถือกำเนิดของการเรียนรู้อย่างลึกซึ้งทำให้ความแม่นยำในการรู้จำลายมือดีขึ้นอย่างมาก มาพูดคุยกันเกี่ยวกับงานวิจัยที่โดดเด่นบางส่วนในด้านการเรียนรู้เชิงลึกเพื่อการรู้จำลายมือ

โครงข่ายประสาทที่เกิดซ้ำหลายมิติ

RNN/LSTM ตามที่เราทราบสามารถจัดการกับข้อมูลตามลำดับเพื่อระบุรูปแบบชั่วคราวและสร้างผลลัพธ์ได้ แต่จำกัดเฉพาะการจัดการกับข้อมูล 1D ดังนั้นจึงไม่สามารถใช้กับข้อมูลภาพได้โดยตรง เพื่อแก้ปัญหานี้ ผู้เขียนในบทความนี้ได้เสนอโครงสร้าง RNN/LSTM แบบหลายมิติดังรูปด้านล่าง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ต่อไปนี้เป็นข้อแตกต่างระหว่าง RNN ทั่วไปและ RNN แบบหลายมิติ ใน RNN ทั่วไป เลเยอร์ที่ซ่อนอยู่บอกว่าฉันได้รับสถานะจากเลเยอร์ที่ซ่อนอยู่ก่อนหน้าในเวลา i-1 ใน RNN หลายมิติ เช่น RNN 2 มิติ เลเยอร์ที่ซ่อนอยู่ (i, j) รับสถานะจากหลายเลเยอร์ที่ซ่อนอยู่ก่อนหน้านี้ เช่น (i-1, j) และ (i, j-1) และจับบริบทจากทั้งสอง ความสูงและความกว้างของรูปภาพซึ่งเป็นส่วนสำคัญในการทำความเข้าใจภูมิภาคท้องถิ่นโดยเครือข่ายอย่างชัดเจน สิ่งนี้ขยายเพิ่มเติมเพื่อรับข้อมูล ไม่เพียงแต่จากเลเยอร์ก่อนหน้า แต่ยังจากเลเยอร์ในอนาคตที่คล้ายกับที่ BI-LSTM รับข้อมูลจาก t-1 และ t+1 ในทำนองเดียวกัน 2D MDRNN เลเยอร์ที่ซ่อนอยู่ ตอนนี้ฉันสามารถรับข้อมูล (i-1, j), (i, j-1), (i+1, j), (i, j+1) จึงจับบริบทในทุกทิศทาง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

โครงสร้างเครือข่ายทั้งหมดแสดงไว้ด้านบน ใช้ MDLSTM ซึ่งไม่มีอะไรเลยนอกจากการแทนที่บล็อก RNN ด้วยบล็อก LSTM จากการสนทนาข้างต้นของ MDRNN อินพุตถูกแบ่งออกเป็นบล็อกขนาด 3×4 ซึ่งขณะนี้ถูกป้อนลงในเลเยอร์ MDSTM เครือข่ายมีโครงสร้างแบบลำดับชั้นของเลเยอร์ MDLSTM ตามด้วยเลเยอร์ feed-forward(ANN) ตามลำดับ จากนั้นเอาต์พุตสุดท้ายจะถูกแปลงเป็นเวกเตอร์ 1D และกำหนดให้กับฟังก์ชัน CTC เพื่อสร้างเอาต์พุต

การจำแนกประเภทชั่วคราวของ Connectionist (CTC) เป็นอัลกอริธึมที่ใช้จัดการกับงานต่างๆ เช่น การรู้จำคำพูด การรู้จำลายมือ เป็นต้น ซึ่งมีเพียงข้อมูลอินพุตและการถอดความเอาท์พุตเท่านั้น แต่ไม่มีรายละเอียดการจัดตำแหน่ง เช่น ขอบเขตเสียงเฉพาะสำหรับคำพูดหรือพื้นที่เฉพาะในรูปภาพสำหรับการเขียนด้วยลายมือ อยู่ในแนวเดียวกับอักขระเฉพาะ การวิเคราะห์พฤติกรรมอย่างง่าย เช่น การให้อักขระแต่ละตัวมีพื้นที่เดียวกันจะไม่ทำงาน เนื่องจากจำนวนพื้นที่ที่อักขระแต่ละตัวใช้นั้นแตกต่างกันไปในการเขียนด้วยลายมือในแต่ละคน และในบางครั้ง

สำหรับกรณีการใช้งานการรู้จำลายมือของเรา ให้พิจารณาขอบเขตรูปภาพที่ป้อนสำหรับประโยคเฉพาะเป็นอินพุต X=[x1,x2,…,x**เ] ในขณะที่ผลลัพธ์ที่คาดหวังเป็น Y=[y1,y2,…,ห**คุณ] . ให้ X เราควรจะหา Y ได้อย่างแม่นยำ อัลกอริธึม CTC ทำงานโดยรับอินพุต X และให้การกระจายของ Y ที่เป็นไปได้ทั้งหมดโดยใช้ซึ่งเราสามารถคาดการณ์ผลลัพธ์สุดท้ายได้

CTC ใช้อักขระพื้นฐานเพื่อแยกความแตกต่างระหว่างอักขระที่ซ้ำกันและอักขระที่ซ้ำกันในพื้นที่ป้อนข้อมูล ตัวอย่างเช่น อักขระหนึ่งตัวสามารถขยายพื้นที่อินพุตได้หลายส่วน ดังนั้น CTC จะส่งออกอักขระตัวเดียวกันอย่างต่อเนื่อง ตัวอย่าง:- อินพุต james และเอาต์พุตของ CTC คือ jjammmees ผลลัพธ์สุดท้ายได้มาจากการยุบเอาต์พุตซ้ำๆ ดังนั้นเราจึงได้ james แต่ตอนนี้ เพื่อแสดงอักขระที่ซ้ำกันโดยพูดว่า 'l' ในสวัสดี เราจำเป็นต้องมีการแยกออก ดังนั้นเอาต์พุตทั้งหมดจะถูกคั่นด้วยยัติภังค์ (-) ตอนนี้ผลลัพธ์สำหรับสวัสดีอาจเป็น h-ee-ll-lll-oo ซึ่งถ้ายุบจะกลายเป็นสวัสดีและไม่ใช่เฮโล ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของ CTC ได้ที่นี่ CTC.

ในขณะที่ถอดรหัสผลลัพธ์ของ CTC ตามฮิวริสติกอย่างง่ายของความน่าจะเป็นสูงสุดสำหรับแต่ละตำแหน่ง เราอาจได้ผลลัพธ์ที่อาจไม่สมเหตุสมผลในโลกแห่งความเป็นจริง เพื่อแก้ปัญหานี้ เราอาจใช้ตัวถอดรหัสอื่นเพื่อปรับปรุงผลลัพธ์ มาคุยกันเรื่องการถอดรหัสประเภทต่างๆ

  1. การถอดรหัสเส้นทางที่ดีที่สุด :- นี่คือการถอดรหัสทั่วไปที่เราได้กล่าวถึงไปแล้ว ในแต่ละตำแหน่ง เราจะเอาผลลัพธ์ของแบบจำลองและค้นหาผลลัพธ์ที่มีความน่าจะเป็นสูงสุด
  2. การถอดรหัสการค้นหาบีม :- แทนที่จะรับเอาต์พุตเดียวจากเครือข่ายทุกครั้งที่ค้นหาด้วยลำแสงแนะนำให้รักษาเส้นทางเอาต์พุตหลาย ๆ อันด้วยความน่าจะเป็นสูงสุดและขยายห่วงโซ่ด้วยเอาต์พุตใหม่และเส้นทางวางที่มีความน่าจะเป็นน้อยกว่าเพื่อรักษาขนาดลำแสงให้คงที่ ผลลัพธ์ที่ได้จากวิธีนี้แม่นยำกว่าการใช้วิธีการโลภ
  3. ค้นหาบีมด้วย Language Model :- การค้นหาบีมให้ผลลัพธ์ที่แม่นยำกว่าการค้นหากริด แต่ก็ยังไม่สามารถแก้ปัญหาการมีผลลัพธ์ที่มีความหมายได้ ในการแก้ปัญหานี้ เราสามารถใช้แบบจำลองภาษาร่วมกับการค้นหาแบบบีมโดยใช้ทั้งความน่าจะเป็นจากแบบจำลองและแบบจำลองภาษาเพื่อสร้างผลลัพธ์ขั้นสุดท้าย

รายละเอียดเพิ่มเติมในการสร้างผลลัพธ์การถอดรหัสที่ถูกต้องสามารถดูได้ในนี้ บทความ

Encoder-Decoder และ Attention Networks

โมเดล Seq2Seq ที่มีเครือข่ายตัวเข้ารหัส-ตัวถอดรหัสเพิ่งได้รับความนิยมในการแก้ปัญหาการรู้จำคำพูด การแปลด้วยเครื่อง ฯลฯ และด้วยเหตุนี้จึงได้มีการขยายขอบเขตเพื่อแก้ปัญหากรณีการใช้งานของการรู้จำลายมือโดยปรับใช้กลไกความสนใจเพิ่มเติม มาอภิปรายการวิจัยเชิงลึกในพื้นที่นี้กันเถอะ

สแกน เข้าร่วม และอ่าน

ในงาน Scan, Attend and Read (SAR) ที่เข้มข้นนี้ ผู้เขียนเสนอการใช้โมเดลที่เน้นความสนใจสำหรับการรู้จำลายมือตั้งแต่ต้นจนจบ ผลงานหลักของการวิจัยคือการถอดความข้อความโดยอัตโนมัติโดยไม่ต้องแบ่งบรรทัดเป็นขั้นตอนก่อนการประมวลผล จึงสามารถสแกนทั้งหน้าและให้ผลลัพธ์ได้

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

SAR ใช้สถาปัตยกรรมที่ใช้ MDLSTM คล้ายกับที่เรากล่าวถึงข้างต้น โดยมีการเปลี่ยนแปลงเล็กน้อยที่เลเยอร์สุดท้าย หลังจากเลเยอร์เชิงเส้นสุดท้าย เช่น บล็อกผลรวมสุดท้ายในรูปภาพด้านบน แผนที่คุณลักษณะจะยุบลงในมิติแนวตั้งและใช้ฟังก์ชัน softmax สุดท้ายเพื่อให้ได้ผลลัพธ์

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

สถาปัตยกรรม SAR ประกอบด้วยสถาปัตยกรรม MDLSTM ซึ่งทำหน้าที่เป็นตัวแยกคุณลักษณะ โมดูลยุบสุดท้ายที่มีเอาต์พุต softmax และการสูญเสีย CTC จะถูกแทนที่ด้วยโมดูลความสนใจและตัวถอดรหัส LSTM รูปแบบความสนใจที่ใช้คือการผสมผสานระหว่างความสนใจตามเนื้อหาและความสนใจตามสถานที่แบบผสม ซึ่งจะอธิบายรายละเอียดเพิ่มเติมในบทความหน้า โมดูล LSTM ตัวถอดรหัสใช้สถานะก่อนหน้า แผนผังความสนใจก่อนหน้า และคุณสมบัติของตัวเข้ารหัสเพื่อสร้างอักขระเอาต์พุตสุดท้ายและเวกเตอร์สถานะสำหรับการทำนายครั้งต่อไป

Convolve เข้าร่วมและสะกด

บทความนี้จะเสนอรูปแบบการเรียงตามลำดับความน่าสนใจสำหรับการรู้จำคำที่เขียนด้วยลายมือ สถาปัตยกรรมที่เสนอมีสามส่วนหลัก: ตัวเข้ารหัสซึ่งประกอบด้วย CNN และ GRU แบบสองทิศทาง ซึ่งเป็นกลไกความสนใจที่เน้นไปที่คุณสมบัติที่เกี่ยวข้องและตัวถอดรหัสที่สร้างโดย GRU แบบทิศทางเดียว สามารถสะกดคำที่เกี่ยวข้องได้ ทีละตัวอักษร

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ตัวเข้ารหัสใช้ CNN เพื่อดึงคุณสมบัติภาพ สถาปัตยกรรม VGG-19-BN ที่ผ่านการฝึกอบรมล่วงหน้าถูกใช้เป็นตัวแยกคุณลักษณะ รูปภาพที่ป้อนจะถูกแปลงเป็นแผนที่คุณลักษณะ X ซึ่งจะเปลี่ยนรูปร่างเป็น X โดยแยกคอลัมน์ของช่องทั้งหมดออกและรวมเข้าด้วยกันเพื่อรับข้อมูลตามลำดับ X' จะถูกแปลงเพิ่มเติมเป็น H โดยใช้ GRU แบบสองทิศทาง GRU เป็นโครงข่ายประสาทเทียมที่มีลักษณะคล้ายกับ LSTM และสามารถเก็บข้อมูลชั่วคราวได้

นอกจากนี้ยังมีการใช้โมเดลความสนใจในขณะที่คาดการณ์ผลลัพธ์จากตัวถอดรหัส บทความนี้กล่าวถึงกลไกความสนใจสองประเภทที่สำรวจ

  1. ความสนใจตามเนื้อหา :- แนวคิดเบื้องหลังนี้คือการค้นหาความคล้ายคลึงกันระหว่างสถานะที่ซ่อนอยู่ในปัจจุบันของตัวถอดรหัสกับแผนที่คุณลักษณะจากตัวเข้ารหัส เราสามารถค้นหาเวกเตอร์ของจุดสนใจที่สัมพันธ์กันมากที่สุดในแผนผังคุณสมบัติของตัวเข้ารหัส ซึ่งสามารถใช้เพื่อคาดเดาอักขระปัจจุบันที่ขั้นตอนเวลาปัจจุบัน สามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของกลไกความสนใจได้จากที่นี่ ความสนใจ
  2. ความสนใจตามสถานที่ :- ข้อเสียเปรียบหลักของกลไกตำแหน่งตามเนื้อหาคือมีการสันนิษฐานโดยปริยายว่าข้อมูลตำแหน่งถูกฝังอยู่ในผลลัพธ์ของตัวเข้ารหัส มิฉะนั้นจะไม่มีทางแยกความแตกต่างระหว่างเอาต์พุตอักขระที่ทำซ้ำจากตัวถอดรหัส ตัวอย่างเช่น พิจารณาคำ Charmander อักขระ a จะซ้ำกันสองครั้ง และไม่มีข้อมูลตำแหน่ง ตัวถอดรหัสจะไม่สามารถคาดเดาว่าเป็นอักขระที่แยกจากกันได้ เพื่อบรรเทาปัญหานี้ อักขระปัจจุบันและการจัดตำแหน่งจะถูกคาดการณ์โดยใช้ทั้งเอาต์พุตของตัวเข้ารหัสและการจัดตำแหน่งก่อนหน้า รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการเข้าร่วมงานที่สามารถดูได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

ตัวถอดรหัสเป็น GRU แบบหลายชั้นแบบทิศทางเดียว ในแต่ละขั้นตอนเวลา t จะได้รับอินพุตจากขั้นตอนเวลาก่อนหน้าและเวกเตอร์บริบทจากโมดูลความสนใจ มีการสำรวจการถอดรหัสพหุนามและการปรับฉลากให้เรียบในการฝึกอบรมเพื่อปรับปรุงความสามารถในการอธิบายลักษณะทั่วไป

แบบจำลองหม้อแปลง

แม้ว่าเครือข่ายตัวเข้ารหัส-ตัวถอดรหัสจะค่อนข้างดีในการบรรลุผลสำหรับการรู้จำลายมือ แต่ก็มีคอขวดในการฝึกอบรมเนื่องจากเลเยอร์ LSTM ที่เกี่ยวข้องและด้วยเหตุนี้จึงไม่สามารถขนานกันได้ เมื่อเร็ว ๆ นี้ Transformers ค่อนข้างประสบความสำเร็จและแทนที่ LSTM ในการแก้ปัญหาที่เกี่ยวข้องกับภาษาต่างๆ มาพูดคุยกันถึงวิธีการนำโมเดลที่ใช้หม้อแปลงมาใช้กับการรู้จำลายมือได้อย่างไร

ใส่ใจกับสิ่งที่คุณอ่าน

ในงานนี้ ผู้เขียนได้เสนอการใช้สถาปัตยกรรมที่ใช้หม้อแปลงไฟฟ้าโดยใช้เลเยอร์การเอาใจใส่ตนเองแบบหลายหัวที่ระยะการมองเห็นและข้อความ จึงสามารถเรียนรู้ทั้งการรู้จำอักขระและการขึ้นต่อกันที่เกี่ยวข้องกับภาษาของลำดับอักขระที่จะถอดรหัส เนื่องจากความรู้ภาษาถูกฝังอยู่ในตัวแบบจำลอง ไม่จำเป็นต้องใช้ขั้นตอนหลังการประมวลผลเพิ่มเติมใดๆ โดยใช้แบบจำลองภาษา และด้วยเหตุนี้จึงมีความสามารถในการทำนายผลลัพธ์ซึ่งไม่ใช่ส่วนหนึ่งของคำศัพท์ เพื่อให้บรรลุการเข้ารหัสข้อความนี้จะเกิดขึ้นที่ระดับอักขระไม่ใช่ระดับคำ เนื่องจากสถาปัตยกรรมของหม้อแปลงไฟฟ้าช่วยให้สามารถฝึกแบบจำลองได้พร้อมกันในทุกภูมิภาคหรือทุกลักษณะ กระบวนการฝึกอบรมจึงง่ายขึ้นมาก

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

สถาปัตยกรรมเครือข่ายประกอบด้วยส่วนประกอบดังต่อไปนี้

  1. ตัวเข้ารหัสภาพ :- เพื่อแยกคุณสมบัติที่เกี่ยวข้องและใช้การสังเกตตนเองด้วยภาพหลายหัวกับตำแหน่งของตัวละครต่างๆ
  2. ตัวถอดเสียงข้อความ :- ทำหน้าที่ในการป้อนข้อความ เข้ารหัส ใช้การเอาใจใส่ตนเองของภาษาแบบหลายหัว และให้ความสนใจร่วมกันทั้งกับคุณลักษณะภาพและข้อความ
ตัวเข้ารหัสภาพ

แบ็คโบน Resnet50 ใช้เพื่อเสริมคุณสมบัติดังที่เห็นในรูปด้านบน เอาต์พุตแผนที่คุณสมบัติ 3 มิติจาก Resnet50 Fc ถูกส่งไปยังโมดูล Temporal Encoding ซึ่งปรับรูปร่างเป็น 2d โดยคงความกว้างเท่ากันและด้วยเหตุนี้รูปร่างของ (fxh, w) สิ่งนี้ถูกป้อนเข้าไปในเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์เพื่อลดรูปร่างเป็น (f, w) และผลลัพธ์ที่ได้คือ Fc' นอกจากนี้ การเข้ารหัสตำแหน่ง TE ถูกเพิ่มลงใน Fc' เพื่อคงข้อมูลตำแหน่งตามที่กล่าวไว้ในกระดาษ Transformer โดย Vaswani สามารถดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบสถาปัตยกรรมหม้อแปลงไฟฟ้าได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม. ผลลัพธ์จะถูกส่งผ่านเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์เพื่อรับฟีเจอร์แมปสุดท้ายที่มีรูปร่าง (f , w) ผลลัพธ์สุดท้ายจะถูกส่งผ่านโมดูลความสนใจแบบหลายหัวที่มี 8 หัวเพื่อให้ได้แผนที่คุณลักษณะที่มีภาพมากมาย

ตัวถอดเสียงข้อความ

ข้อความอินพุตจะถูกส่งผ่านตัวเข้ารหัสซึ่งสร้างการฝังระดับอักขระ การฝังเหล่านี้จะรวมกับตำแหน่งชั่วคราวที่คล้ายกับวิธีใน Visual Encoder โดยใช้โมดูล Temporal Encoder ผลลัพธ์นี้จะถูกส่งไปยังโมดูล Multi-Head Language Self-Attention ซึ่งคล้ายกับโมดูล Attention ใน Visual encoder คุณลักษณะข้อความที่สร้างขึ้นตามคุณลักษณะที่มองเห็นได้จากตัวเข้ารหัสภาพจะถูกส่งไปยังโมดูลความสนใจร่วมกัน ซึ่งมีหน้าที่ในการจัดแนวและรวมคุณลักษณะที่เรียนรู้จากทั้งรูปภาพและอินพุตข้อความ ผลลัพธ์จะถูกส่งผ่านฟังก์ชัน softmax เพื่อให้ได้ผลลัพธ์สุดท้าย

เมื่อประเมินข้อมูลการทดสอบ จะไม่มีการถอดเสียงเป็นคำ ดังนั้นเฉพาะโทเค็นเริ่มต้น < S > เท่านั้นที่จะถูกส่งผ่านเป็นอินพุต และอักขระที่คาดการณ์ตัวแรกจะถูกส่งกลับไปยังระบบ ซึ่งจะส่งออกอักขระที่คาดการณ์ตัวที่สอง กระบวนการอนุมานนี้ทำซ้ำในลูปจนกระทั่งสิ้นสุดสัญลักษณ์ลำดับ < E > หรือเมื่อถึงความยาวเอาต์พุตสูงสุด N

การสร้างข้อความลายมือ

การสร้างข้อความเขียนด้วยลายมือเป็นงานในการสร้างข้อความที่เขียนด้วยลายมือที่ดูสมจริง และสามารถใช้เพื่อเพิ่มชุดข้อมูลที่มีอยู่ได้ อย่างที่เราทราบดีว่าการเรียนรู้เชิงลึกนั้นต้องใช้ข้อมูลจำนวนมากในการฝึกอบรม ในขณะที่การได้มาซึ่งคลังรูปภาพที่เขียนด้วยลายมือจำนวนมากสำหรับภาษาต่างๆ นั้นเป็นงานที่ยุ่งยาก เพื่อแก้ปัญหานี้ เราสามารถใช้ Generative Adversarial Networks เพื่อสร้างข้อมูลการฝึกอบรม มาพูดถึงสถาปัตยกรรมดังกล่าวกันที่นี่

สแครบเบิลGAN

ScrabbleGAN ใช้วิธีการกึ่งควบคุมเพื่อสังเคราะห์รูปภาพข้อความที่เขียนด้วยลายมือซึ่งมีประโยชน์หลากหลายทั้งในรูปแบบและพจนานุกรม มีความสามารถในการสร้างภาพที่มีความยาวต่างกัน ตัวสร้างยังสามารถจัดการรูปแบบข้อความที่ได้ ซึ่งช่วยให้เราตัดสินใจว่าข้อความจะต้องเป็นตัวสะกดหรือบอกว่าเส้นขีดควรหนา/บางแค่ไหน

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

สถาปัตยกรรมประกอบด้วยเครื่องกำเนิดแบบหมุนตาม BigGAN สำหรับแต่ละอักขระในอินพุต ตัวกรองที่เกี่ยวข้องจะถูกเลือก และค่าทั้งหมดจะถูกต่อเข้าด้วยกัน จากนั้นคูณด้วยเวกเตอร์สัญญาณรบกวน z ซึ่งควบคุมรูปแบบข้อความที่สร้างขึ้น ดังที่เห็นด้านบน พื้นที่ที่สร้างขึ้นสำหรับอักขระแต่ละตัวทับซ้อนกัน จึงช่วยในการสร้างข้อความแบบเรียกซ้ำที่เชื่อมต่อตลอดจนความยืดหยุ่นของขนาดอักขระที่แตกต่างกัน ตัวอย่างเช่น m ใช้พื้นที่มากในขณะที่ e และ t ใช้พื้นที่จำกัด เพื่อรักษาสไตล์เดียวกันสำหรับทั้งคำหรือประโยค สไตล์เวกเตอร์ z จะคงที่สำหรับอักขระทั้งหมด

Convolutional discriminator ตามสถาปัตยกรรม BigGAN ใช้เพื่อจำแนกว่ารูปแบบการสร้างภาพดูเป็นของปลอมหรือของจริง ตัวแบ่งแยกไม่อาศัยคำอธิบายประกอบระดับอักขระและด้วยเหตุนี้ไม่ได้ยึดตาม GAN แบบมีเงื่อนไขของคลาส ข้อดีของการที่สิ่งนี้ไม่ต้องการข้อมูลที่มีป้ายกำกับ ดังนั้นข้อมูลจากคลังข้อมูลที่มองไม่เห็นซึ่งไม่ใช่ส่วนหนึ่งของข้อมูลการฝึกอบรมจึงสามารถนำมาใช้สำหรับการฝึกอบรมผู้แยกแยะได้ นอกจากตัวจำแนกข้อความแล้ว ตัวจำแนกข้อความ R ยังได้รับการฝึกฝนให้จัดประเภทว่าข้อความที่สร้างขึ้นนั้นมีเหตุผลในโลกแห่งความเป็นจริงหรือเป็นคำที่ไม่มีความหมาย ตัวจำแนกลายมือนั้นใช้สถาปัตยกรรม CRNN โดยเอาส่วนหัวที่เกิดซ้ำออกเพื่อทำให้ตัวจำแนกลายมืออ่อนลงเล็กน้อยและไม่รู้จักข้อความแม้ว่าจะไม่ชัดเจนก็ตาม ข้อความที่สร้างในเอาต์พุตของ R จะถูกเปรียบเทียบกับข้อความอินพุตที่กำหนดให้กับตัวสร้าง และค่าปรับที่เกี่ยวข้องจะถูกเพิ่มไปยังฟังก์ชันการสูญเสีย

ผลลัพธ์ที่สร้างโดย ScrabbleGAN แสดงอยู่ด้านล่าง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ชุดข้อมูล :-

  1. AMI :- ชุดข้อมูล IAM มีรูปภาพคำประมาณ 100k จากภาษาอังกฤษพร้อมคำที่เขียนโดยผู้เขียนที่แตกต่างกัน 657 คน ชุดฝึก การทดสอบ และการตรวจสอบประกอบด้วยคำที่เขียนโดยผู้เขียนที่ไม่เกิดร่วมกันLink :- http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. ซีวีแอล :- ชุดข้อมูล CVL ประกอบด้วยเอกสารที่เขียนด้วยลายมือเจ็ดฉบับที่เขียนโดยผู้เข้าร่วมประมาณ 310 คน ส่งผลให้มีการตัดคำประมาณ 83k แบ่งเป็นชุดฝึกและชุดทดสอบLink :- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIME :- ประกอบด้วยคำจากภาษาฝรั่งเศสประมาณ 60k ภาพและเขียนโดยผู้เขียน 1300 คนที่เกี่ยวข้องกับอีเมลประมาณ 5 ฉบับที่เขียนโดยแต่ละคนลิงก์ :- http://www.a2ialab.com/doku.php?id=rimes_database:start

ตัวชี้วัด :-

อัตราความผิดพลาดของตัวละคร :- คำนวณตามระยะทาง Levenshtein ซึ่งเป็นผลรวมของการแทนที่อักขระ (Sc), การแทรก (Ic) และการลบ (Dc) ที่จำเป็นในการแปลงสตริงหนึ่งเป็นอีกอันหนึ่ง หารด้วยจำนวนอักขระทั้งหมดใน กราวด์ทรูธ (Nc)

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

อัตราข้อผิดพลาดของคำ :- คำนวณเป็นผลรวมของการแทนที่คำ (Sw), การแทรก (Iw) และการลบ (Dw) ที่จำเป็นในการแปลงสตริงหนึ่งเป็นอีกสตริงหนึ่งหารด้วยจำนวนคำทั้งหมดใน groundtruth (Nw)

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ฝึกรูปแบบการรู้จำลายมือของคุณเอง

ตอนนี้เรามาดูกันว่าเราจะสามารถฝึกรูปแบบการรู้จำข้อความที่เขียนด้วยลายมือของเราเองได้อย่างไร เราจะทำการฝึกอบรมเกี่ยวกับชุดข้อมูล IAM แต่คุณสามารถฝึกโมเดลด้วยชุดข้อมูลของคุณเองได้เช่นกัน มาพูดคุยถึงขั้นตอนที่เกี่ยวข้องกับการตั้งค่านี้กัน

ข้อมูล

ในการดาวน์โหลดการลงทะเบียนชุดข้อมูล IAM จาก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม. เมื่อลงทะเบียนแล้ว ดาวน์โหลด word.tgz จาก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม. ประกอบด้วยชุดข้อมูลภาพคำที่เขียนด้วยลายมือ ดาวน์โหลดไฟล์คำอธิบายประกอบ word.txt จาก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

หากคุณต้องการใช้ชุดข้อมูลของคุณเอง คุณต้องทำตามโครงสร้างข้อมูลของชุดข้อมูล IAM

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ด้านบนแสดงให้เห็นว่าโครงสร้างโฟลเดอร์ชุดข้อมูล AIM มีลักษณะอย่างไร ที่นี่ a01, a02 ฯลฯ แสดงถึงโฟลเดอร์หลักซึ่งแต่ละโฟลเดอร์มีโฟลเดอร์ย่อยของข้อมูล แต่ละโฟลเดอร์ย่อยมีชุดรูปภาพที่มีชื่อของโฟลเดอร์เพิ่มเป็นคำนำหน้าชื่อไฟล์

นอกจากนี้ เราจำเป็นต้องมีไฟล์คำอธิบายประกอบเพื่อระบุพาธไปยังไฟล์รูปภาพและการถอดเสียงเป็นคำที่เกี่ยวข้อง ลองพิจารณาตัวอย่างภาพด้านบนที่มีข้อความเสนอชื่อ ด้านล่างจะเป็นการแสดงในไฟล์คำอธิบายประกอบ word.txt

a01-000u-01-00 ตกลง 156 395 932 441 100 VBG เสนอชื่อ

  1. a01-000u-01-00 -> รหัสคำสำหรับบรรทัดในรูปแบบ a01-000u
  2. ok/err -> ตัวบ่งชี้คุณภาพของเอาต์พุตการแบ่งส่วน
  3. 156 -> ระดับสีเทาเพื่อแยกบรรทัดที่มีคำนี้
  4. 395 932 441 100 -> กรอบล้อมรอบคำนี้ในรูปแบบ x,y,w,h
  5. VBG -> แท็กไวยากรณ์สำหรับคำนี้ นี่คือ Verb Gerund
  6. การเสนอชื่อ -> การถอดความสำหรับคำนี้

สถาปัตยกรรม :-

เราจะฝึกอบรมสถาปัตยกรรมตาม CRNN ที่มีการสูญเสีย CTC CNN ใช้เพื่อแยกคุณสมบัติภาพที่ส่งผ่านไปยัง RNN และการสูญเสีย CTC ถูกนำไปใช้กับส่วนท้ายด้วยตัวถอดรหัสที่โลภเพื่อให้ได้ผลลัพธ์

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

การฝึกอบรม

เราจะใช้รหัส CRNN จาก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม เพื่อฝึกโมเดลของเรา ทำตามขั้นตอนด้านล่างเพื่อเตรียมข้อมูล

python checkDirs.py

เรียกใช้คำสั่งด้านบนและคุณจะเห็นผลลัพธ์ดังนี้

[ตกลง] คำ/
[ตกลง] คำ/a01/a01-000u/
[ตกลง] word.txt
[ตกลง] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

ตอนนี้คุณพร้อมที่จะเริ่มการฝึกแล้ว

ไปที่ไดเรกทอรีรากและดำเนินการ

python main.py --train

ผลสอบ

หลังจากการฝึกอบรมประมาณ 50 ยุค อัตราข้อผิดพลาดของอักขระ (CER) คือ 10.72% ในขณะที่อัตราข้อผิดพลาดของคำ (WER) คือ 26.45 % และความแม่นยำของคำคือ 73.55% การคาดคะเนบางส่วนสามารถดูได้ในรูปด้านล่าง

วิธีการจดจำลายมืออย่างง่ายดายโดยใช้การเรียนรู้ของเครื่อง

ตัวแบบสามารถทำนายตัวละครได้อย่างแม่นยำในระดับที่ดี แต่ก็มีความทุกข์ในบางกรณี เช่น มีการทำนายอย่างน่ากลัวว่าด้วยการวิเคราะห์เรื่องราว ปัญหาเหล่านี้สามารถแก้ไขได้โดยใช้แบบจำลองภาษาเป็นขั้นตอนหลังการประมวลผลร่วมกับตัวถอดรหัส ซึ่งสามารถสร้างคำที่มีความหมายและแก้ไขข้อผิดพลาดง่ายๆ ได้

สรุป

แม้ว่าจะมีการพัฒนาที่สำคัญในด้านเทคโนโลยีซึ่งช่วยในการจดจำข้อความที่เขียนด้วยลายมือได้ดีขึ้น แต่ HTR นั้นยังห่างไกลจากปัญหาที่แก้ไขได้เมื่อเทียบกับ OCR และด้วยเหตุนี้จึงยังไม่มีการนำไปใช้อย่างแพร่หลายในอุตสาหกรรม อย่างไรก็ตาม ด้วยความก้าวหน้าของเทคโนโลยีและการแนะนำรุ่นต่างๆ เช่น หม้อแปลงไฟฟ้า เราสามารถคาดหวังให้รุ่น HTR กลายเป็นเรื่องธรรมดาในเร็วๆ นี้

หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ คุณสามารถเริ่มต้นได้จาก โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม

อ่านเพิ่มเติม

ประทับเวลา:

เพิ่มเติมจาก AI และการเรียนรู้ของเครื่อง