ผลต่างระหว่างรุ่นของ "การรู้จำอักขระด้วยแสง"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
VolkovBot (คุย | ส่วนร่วม)
โรบอต เพิ่ม: da:Optical character recognition
บรรทัด 1:
{{รอการตรวจสอบ}}
{{ตรวจแก้รูปแบบ}}
{{ตรวจลิขสิทธิ์}}
 
'''โอซีอาร์''' ({{lang-en|OCR - Optical character recognition}}) หรือ '''เครื่องจำอักขระด้วยแสง''' คือ[[ซอฟต์แวร์]]อย่างหนึ่งที่ออกแบบเพื่อให้แปลความหมายที่ปรากฏใน[[ไฟล์]]รูปภาพ ไปเป็นข้อมูลที่สามารถประมวลผลได้ โดยปกติการนำเข้ารูปภาพเพื่อเข้าสู่กระบวนการแปลสามารถใช้เครื่อง[[สแกนเนอร์]]หรือ[[กล้องดิจิตัล]] หรืออุปกรณ์ที่ออกแบบมาเฉพาะทาง โอซีอาร์เริ่มมีขึ้นโดยเป็นโครงการของการตรวจสอบในระบบ[[ปัญญาประดิษฐ์]]และ[[การมองเห็นของเครื่องจักร]] และมีการวิจัยต่อไปโดยมุ่งประเด็นไปที่การใช้โอซีอาร์เป็นเครื่องมือในการพิสูจน์ เช่น พิสูจน์อักษร ลายมือ ลายนิ้วมือ ใบหน้า ดวงตา เป็นต้น
 
== ประวัติ ==
บรรทัด 8:
ระบบโอซีอาร์ไม่ใช่เรื่องใหม่สำหรับกระบวนการประมวลผลข้อมูล เนื่องจากความพยายามที่จะพัฒนาเครื่องช่วยอ่านตัวอักษรอัตโนมัติเพื่อช่วยงานมนุษย์นั้น มีการคิดค้นกันมากกว่าร้อยปีแล้ว ถ้าหากจะกล่าวถึงประวัติของโอซีอาร์ ก็น่าจะเริ่มต้นกันที่คำว่า optical ซึ่งบอกถึงหลักการทำงานของระบบที่เกี่ยวข้องกับการประมวลผลของภาพ[[อิเล็กทรอนิกส์]]ที่ได้มาจากเครื่องสแกน ซึ่งมีจุดเริ่มต้นในปี พ.ศ. 2416 โดยพนักงานโทรเลขชาวไอแลนด์ชื่อ Joseph May ได้ค้นพบคุณสมบัติทางโฟโตอิเล็กทริค (photoelectric) จาก[[ซีลีเนียม]] (selenium) โดยบังเอิญ จากนั้นในปี พ.ศ. 2418 ในประเทศสหรัฐอเมริกา George Carey ได้นำเสนอเครื่องเรทินาสแกนเนอร์ (retina scanner) ที่สามารถถ่ายทอดสัญญาณภาพจากแผงโฟโตอิเล็กทริคเซลที่รับแสงสะท้อนจากภาพแล้วแสดงผลที่แผงอีกด้านหนึ่ง
 
[[ภาพ:Nipkow.JPG|thumb|300px|right|Niokow disk [[http://www.diac.upm.es/acceso_profesores/asignaturas/television/stv/historiatv/]]]และต่อมาในปี พ.ศ. 2427 Paul Nipkow ชาวเยอรมันได้คิดค้นเครื่องสแกนภาพแบบใหม่ที่ใช้จานหมุนที่มีรูเล็กๆ เรียงกันในลักษณะเป็นก้นหอยเรียกว่านิพโกว์ดิสก์ (Nipkow disk) ในการอ่านภาพ ซึ่งถือเป็นประดิษฐ์กรรมต้นแบบของเครื่องสแกนรวมทั้งเทคโนโลยีการถ่ายทอดภาพของวงการโทรทัศน์ในปัจจุบันอีกด้วย
 
เครื่องอ่านตัวอักษรเครื่องแรกที่มีการรายงานไว้เป็นเครื่องที่ทำขึ้นเพื่อช่วยคนพิการทางตาในการอ่านหนังสือซึ่งเป็นผลงานของนักวิทยาศาสตร์ชาวรัสเซียชื่อ Tyurin สร้างขึ้นในปี พ.ศ. 2443 จากนั้นในปี พ.ศ. 2472 G. Tausheck ได้จดสิทธิบัตรระบบโอซีอาร์เป็นครั้งแรกในประเทศเยอรมนี และต่อมาปี พ.ศ. 2476 ในอเมริกา P.W. Handel ก็ได้จดสิทธิบัตรโอซีอาร์ของตนเองเช่นกัน ถึงแม้เริ่มแรกระบบโอซีอาร์ดังกล่าวจะมีลักษณะและความสามารถที่เทียบไม่ได้กับระบบโอซีอาร์ที่เราใช้กันอยู่ในปัจจุบัน แต่แนวความคิดพื้นฐานของระบบดังกล่าวก็ยังคงใช้กันอยู่จนกระทั่งถึงทุกวันนี้
บรรทัด 25:
 
'''''ยุคที่ 1'''''
ในช่วงปี พ.ศ. 2503 ถึง พ.ศ. 2508 (ต้นยุค ค.ศ. 1960) มีผลิตภัณฑ์โอซีอาร์เชิงพาณิชย์ออกสู่ตลาดมากพอสมควร โดยโอซีอาร์ในยุคนี้จะมีข้อจำกัดในเรื่องฟอนต์และจำนวนตัวอักษรที่ระบบสามารถอ่านได้ ซึ่งจะมีการกำหนดกลุ่มของฟอนต์ที่สามารถใช้กับระบบไว้ หรือไม่ก็สร้างฟอนต์ใหม่ขึ้นมาใช้โดยเฉพาะเลย และมักจะอ่านได้เฉพาะตัวเลขและอักษรเพียงไม่กี่ตัว ตัวอย่างของระบบโอซีอาร์ในกลุ่มนี้ ได้แก่ NCR 420 ซึ่งได้ออกแบบฟอนต์พิเศษชื่อ NOF ประกอบด้วยตัวเลขและสัญลักษณ์อีก 5 ตัว, Farrington 3010 เช่นเดียวกับ NCR ที่ต้องใช้กับฟอนต์พิเศษของตัวเอง และบริษัทคอมพิวเตอร์ยักษ์ใหญ่อย่าง IBM ก็เข้ามาร่วมวงด้วย เนื่องจากเห็นความสำคัญของโอซีอาร์โดยมี IBM 1418 เป็นโอซีอาร์รุ่นแรกของบริษัทที่ทำออกมาในเชิงพาณิชย์ ใช้งานกับฟอนต์ 407 ของ IBM เอง ซึ่งรูปร่างตัวอักษรของฟอนต์นี้จะมีความเป็นธรรมชาติกว่า 2 รุ่นที่กล่าวมาแล้ว และในช่วงปลายยุค พ.ศ. 2508 (ค.ศ. 1960) ในประเทศญี่ปุ่นบริษัทใหญ่ๆ หลายบริษัทได้เปิดตัวระบบโอซีอาร์ซึ่งเข้าอยู่ในกลุ่มยุคแรกเช่นกัน โดยประกอบด้วย Facom 6300A จาก Fujitsu, H-852 จาก Hitachi และ N240D-1 จาก NEC
 
'''''ยุคที่ 2'''''
บรรทัด 47:
ผลิตภัณฑ์ OCR ที่มีใช้อยู่ในขณะนี้อาศัยเทคโนโลยีที่มีขั้นตอนการทำงานที่ยุ่งยากซับซ้อนมาก กว่าเอกสารที่สแกนเข้าไปจะถูกแปลงออกมาเป็นตัวอักษรอย่างที่ต้องการ (ซึ่งบางครั้งก็ได้อะไรที่ไม่ต้องการออกมาด้วย!) รายละเอียดของขั้นตอนการทำงานเหล่านี้จะแตกต่างกันออกไปสำหรับโปรแกรมโอซีอาร์แต่ละตัว ซึ่งส่วนหนึ่งก็เป็นเรื่องรายละเอียดทางด้านเทคนิคที่เป็นกลเม็ดเคล็ดลับของแต่ละบริษัท แต่อีกส่วนก็ขึ้นกับลักษณะงานเฉพาะด้านของโปรแกรมนั้น ทั้งนี้เนื่องจากโปรแกรมประเภทโอซีอาร์อาจแบ่งออกได้เป็นหลายกลุ่ม ซึ่งมีวัตถุประสงค์เพื่อนำไปใช้กับงานที่มีลักษณะแตกต่างกัน ตัวอย่างเช่น โอซีอาร์สำหรับลายมือเขียน (Hand Written OCR) ก็มักจะใช้เทคนิคที่ต่างจากโอซีอาร์สำหรับตัวพิมพ์ (Printed Text OCR) และอื่นๆ ซึ่งเราจะกล่าวถึงรายละเอียดของโอซีอาร์แต่ละกลุ่มในลำดับต่อไป นอกจากนั้นลักษณะของภาษาก็มีอิทธิพลต่อการเลือกใช้เทคนิคด้วย เนื่องจากความยากง่ายและรูปร่างตัวอักษรของแต่ละภาษาแตกต่างกัน ดังนั้นเทคนิคที่ใช้กับภาษาไทยจึงต่างจากภาษาอื่นๆ เช่น ภาษาอังกฤษ และภาษาจีน ซึ่งเงื่อนไขต่างๆ เหล่านี้เป็นเพียงส่วนหนึ่งของความซับซ้อนที่ส่งผลต่อกระบวนการทำงานที่เกิดขึ้นภายในโปรแกรม ทั้งนี้ยังมีส่วนอื่นๆ ที่เป็นข้อกำหนดในการเลือกวิธีการที่เหมาะสมสำหรับจัดการกับปัญหาที่หลากหลาย เพื่อจะได้โปรแกรมโอซีอาร์ที่ดีที่สุด
 
ก่อนที่จะกล่าวถึงรายละเอียดทางด้านเทคนิคเราควรทำความเข้าใจกับคำว่า “Optical Character Recognition” หรือ OCR กันก่อน ซึ่งถ้าจะแปลเป็นภาษาไทยอย่างตรงไปตรงมา ก็คงจะได้ว่า “การรู้จำตัวอักษรโดยการมองเห็น (ภาพ) ” ซึ่งเห็นได้ชัดว่าถ้าจะอธิบายให้คนที่ไม่รู้จักโอซีอาร์ฟัง แล้วเข้าใจด้วยละก็ จำเป็นจะต้องมาแปลให้เป็นภาษาไทยกันอีกที แบบที่จะสามารถเข้าใจกันได้ง่ายๆกว่านี้ ฉะนั้นเราน่าจะมาลองแปลกันใหม่ดีกว่า
 
เริ่มจากคำว่า Optical ซึ่งในที่นี้หมายถึงการอ่านภาพ (ตัวอักษร) ด้วยอุปกรณ์ตรวจจับความเข้มของแสง ซึ่งก็คือเครื่องสแกนหรืออุปกรณ์ที่ทำงานในลักษณะเดียวกันนี้นั่นเอง ที่เป็นตัวรับข้อมูลเข้ามาเป็นรูปภาพ เพื่อนำไปสู่กระบวนการขั้นต่อๆ ไปของโปรแกรม การที่จะต้องมีคำนี้ประกอบอยู่ด้วยนั้น สืบเนื่องมาจากความพยายามที่จะสร้างเครื่องอ่านเอกสารอัตโนมัติในยุคแรกๆ ซึ่งนอกจากการอ่านข้อมูลแบบ Optical แล้ว ยังมีการใช้วิธีการทางด้าน Magnetic และ Mechanic ด้วย ถึงแม้ในปัจจุบันเราจะไม่ได้ใช้วิธีการทั้งสองแบบหลังนี้แล้วก็ตาม คำว่า Optical ก็ยังคงอยู่ เพราะคนส่วนใหญ่จะรู้จักคำว่า OCR ในแง่เป็นคำเฉพาะที่หมายถึงซอฟต์แวร์ประเภทนี้ไปแล้ว ดังนั้นการที่จะเอาตัว O หรือ Optical ออกนั้นคงจะสายเกินไป คำต่อมา Character ก็คือตัวอักษร เพื่อระบุว่าตัวโปรแกรมนั้นทำงานกับอะไร ซึ่งก็คือตัวอักษรที่จะถูกแปลงจากรูปตัวอักษรมาเป็นรหัสตัวอักษร ที่เราสามารถใช้เวิร์ดโปรเซสเซอร์เปลี่ยนแปลงแก้ไขได้ (และต่อจากนี้ขอใช้คำว่ารูปตัวอักษรและรหัสตัวอักษรในการอ้างอิงถึงตัวอักษรทั้งสองแบบดังกล่าว เพื่อให้เกิดความเข้าใจที่ชัดเจนในการสื่อความหมาย) นอกจากนี้ชนิดของตัวอักษรยังใช้เป็นเกณฑ์ในการแบ่งประเภทของโอซีอาร์ด้วยเช่น ตัวพิมพ์ ตัวเขียน เป็นต้น ซึ่งจะกล่าวถึงในหัวข้อถัดไป ส่วนคำสุดท้าย Recognition หมายถึงการบอกว่ารูปภาพของตัวอักษรนั้นเป็นตัวอะไร โดยแปลงให้เป็นรหัสตัวอักษรที่เครื่องคอมพิวเตอร์สามารถนำไปทำงานอื่นๆ ได้ เนื่องจากตัวอักษรตัวหนึ่งๆ สามารถเขียนได้หลากหลายลักษณะ ทำให้งานส่วนนี้กลายเป็นส่วนที่สำคัญที่สุดของระบบ และมีความยุ่งยากซับซ้อนมาก ถึงตอนนี้ลองมาสรุปความหมายของคำว่า “Optical Character Recognition” กันอีกครั้ง ซึ่งน่าจะแปลว่าโปรแกรมที่แปลงภาพตัวอักษรที่ได้จากเครื่องสแกนเนอร์ให้เป็นรหัสตัวอักษรที่เราสามารถเอาไปใช้กับเวิร์ดโปรเซสเซอร์เพื่อที่จะเปลี่ยนแปลงแก้ไขเพิ่มเติมได้
บรรทัด 81:
 
 
'''การรู้จำแบบ (Pattern Recognition) '''
 
โปรแกรมประเภทโอซีอาร์เป็นโปรแกรมที่ประยุกต์ความรู้ด้านการรู้จำแบบ (Pattern Recognition) ซึ่งต้องอาศัยเทคนิคการวิเคราะห์แยกแยะและการระบุชนิด โดยอินพุตของโปรแกรมมักจะต้องผ่านกระบวนการย่อยๆ อีกหลายขั้นขึ้นอยู่กับการประยุกต์ใช้ ได้แก่ การกรองข้อมูลแทรกซ้อน การปรับแต่งข้อมูล การเลือกตัดแบ่งพื้นที่ใช้งาน การสกัดลักษณะสำคัญ การจำแนกแยกแยะ การรู้จำ และอื่นๆ โดยในแต่ละขั้นตอนก็สามารถจะมีวิธีการได้อีกหลากหลายวิธี ขึ้นอยู่กับตัวข้อมูลและการประยุกต์ใช้
บรรทัด 95:
ซึ่งในแต่ละขั้นตอนประกอบด้วยรายละเอียดดังต่อไปนี้
 
1.''ขบวนการประมวลผลขั้นต้น (Pre-Processing) ''
 
ในการทำงานของโปรแกรมโอซีอาร์นั้น ก่อนที่โปรแกรมจะสามารถบอกได้ว่ารูปภาพที่ส่งเข้าไปประกอบด้วยตัวอักษรอะไรบ้าง จำเป็นจะต้องผ่านขั้นตอนที่สำคัญหลายขั้น ขั้นตอนดังกล่าวนี้มักถูกเรียกรวมกันว่า กระบวนการประมวลผลขั้นต้น (Pre-Processing) ซึ่งเป็นขั้นตอนในการปรับแต่งและจัดเตรียมข้อมูลให้เหมาะสมกับขั้นตอนการรู้จำต่อไป ขั้นตอนเหล่านี้มีความสำคัญต่อประสิทธิภาพโดยรวมของระบบ เพราะหากมีความผิดพลาดเกิดขึ้นในส่วนนี้ ก็จะส่งผลกระทบไปยังส่วนถัดไปของระบบด้วย
บรรทัด 113:
การสกัดลักษณะสำคัญเป็นอีกขบวนการหนึ่งที่สำคัญมาก ตำราส่วนใหญ่จะแยกส่วนนี้ออกจากการประมวลผลเบื้องต้น คือจะอยู่ระหว่างขั้นตอนการประมวลผลเบื้องต้นกับขั้นตอนการรู้จำ แต่ในที่นี้ขอรวมไว้ในตอนเดียวกัน การสกัดลักษณะสำคัญเป็นการดึงเอาโครงสร้างพื้นฐานที่สำคัญของตัวอักษรนั้นออกมา โดยโครงสร้างพื้นฐานที่ว่าจะต้องมีการกำหนดไว้ก่อนว่าจะมีอะไรบ้าง มีการนิยามอย่างไร ตัวอย่างเช่น สำหรับภาษาไทยเราอาจกำหนดว่าตัวอักษรภาษาไทยทั้งหมดประกอบด้วยโครงสร้างพื้นฐานคือ เส้นตรง (แนวตั้ง/นอน) เส้นเอียง หัว (วงกลม) ส่วนโค้ง ส่วนเว้า จุดแตกกิ่ง จุดตัด เป็นต้น เมื่อเราสามารถแยกเอาองค์ประกอบของตัวอักษรแต่ละตัวออกมาได้แล้ว จากนั้นเราก็นำเสนอรูปภาพของตัวอักษรนั้นในรูปแบบของรายการขององค์ประกอบพื้นฐานต่างๆ แทน ซึ่งจะถูกส่งต่อเป็นอินพุตสำหรับขั้นตอนการรู้จำต่อไป
 
2.''การรู้จำ (Recognition) ''
 
ขั้นตอนนี้ถือเป็นหัวใจของระบบ เพราะเป็นส่วนที่จะตัดสินว่ารูปตัวอักษรที่ส่งเข้าไปเป็นรหัสตัวอักษรอะไร เช่นเดียวกับส่วนอื่นๆ ที่มีวิธีการหลากหลายซึ่งนำมาใช้เพื่อให้ได้ผลการทำงานที่ดีที่สุด เทคนิคใหม่ๆ ได้ถูกพัฒนาขึ้นมาอย่างต่อเนื่องเพื่อรองรับกับปัญหาที่เกิดจากเอกสารที่มีความสลับซับซ้อนมากขึ้น อย่างไรก็ตามเราพอที่จะจัดแบ่งเทคนิคเหล่านี้ออกเป็นกลุ่มตามแนวทางหลักที่ใช้ในการแก้ปัญหา ถึงแม้บ่อยครั้งที่พบว่ามีความคาบเกี่ยวกันของเทคนิคที่นำมาใช้ระหว่างกลุ่มที่ว่านี้ ทั้งนี้เพราะแต่ละแนวทางก็มีข้อดีข้อเสียที่แตกต่างกัน จึงมีความพยายามที่จะรวมเอาเทคนิคเหล่านี้มาใช้ร่วมกันเพื่อเพิ่มความสามารถของระบบเท่าที่จะเป็นไปได้ ดังนั้นการแบ่งกลุ่มในที่นี้ เป็นการแบ่งที่เน้นความชัดเจนในแง่ของขอบเขตทางทฤษฎีเป็นหลัก โดยแนวทางการรู้จำสามารถแบ่งออกได้เป็น 4 กลุ่ม ดังนี้
บรรทัด 131:
 
[[ภาพ:neuralnetwork.JPG|frame|center|แสดงโครงสร้างของ Neural Network]]
3.''ขบวนการประมวลผลขั้นปลาย (Post-Processing) ''
 
หลังจากที่ผ่านขั้นตอนการรู้จำแล้ว รูปตัวอักษรที่ถูกส่งเข้าไปจะได้ผลลัพธ์ออกมาเป็นรหัสตัวอักษร ซึ่งก็ไม่ได้หมายความว่าเอาต์พุตที่ได้มาจะถูกต้องทั้งหมด ไม่มีผลิตภัณฑ์โอซีอาร์ตัวใด ไม่ว่าจะเป็นภาษาใดก็ตามที่รับรองความถูกต้อง 100 % ดังนั้นเพื่อเพิ่มความถูกต้องให้แก่โปรแกรมจึงได้มีการเสริมส่วนการตรวจสอบและแก้ไขข้อความเข้ามา โปรแกรมส่วนนี้มักจะทำงานเกี่ยวกับการตรวจสอบความถูกต้องของการสะกดคำและไวยากรณ์ภาษา โดยมักจะใช้พจนานุกรมมาช่วยในการตรวจสอบคำผิด ซึ่งอาจแก้ไขให้โดยอัตโนมัติหรือแสดงเครื่องหมายบางอย่างเพื่อบอกให้ผู้ใช้ทราบว่าคำดังกล่าวอาจไม่ถูกต้อง ซึ่งผู้ใช้อาจแก้หรือไม่แก้ก็ขึ้นกับการตัดสินใจของผู้ใช้เอง นอกเหนือไปจากการตรวจสอบความถูกต้องระดับคำแล้ว บางโปรแกรมยังมีความสามารถตรวจสอบไวยากรณ์ในระดับประโยคได้ด้วย
บรรทัด 138:
 
== เครื่องจำอักขระด้วยแสงเปรียบเทียบกับแบบดิจิตอล ==
เครื่องจำอักขระด้วยแสง (ใช้เทคนิคเกี่ยวกับแสงเช่นเดียวกับกระจกและเลนส์) และเครื่องจำอักขระแบบดิจิตอล
(ใช้เครื่องสแกนเนอร์และขั้นตอนทางคอมพิวเตอร์) ซึ่งในปัจจุบัน เครื่องจำอักขระด้วยแสงได้ถูกพัฒนาให้ครอบคลุม
การจำตัวอักษรได้ดีกว่าเดิม
 
บรรทัด 148:
ระบบที่เร่งด่วนต้องการที่จะอ่านแบบตัวอักษร หรือ [[ฟอนต์]] อย่างจำเพาะเจาะจง ในเวลานี้แม้ระบบอัจฉริยะ จะสามารถสังเกตเห็นแบบอักษรมากๆด้วยความแม่นยำในระดับสูง ระบบจึงเหมาะแก่การทำสำเนาผลลัพธ์ ที่ใกล้เคียงกับการสแกนรูปภาพ คอลัมน์และอื่นๆ ซึ่งไม่เป็นส่วนประกอบของต้นฉบับ
 
{{เรียงลำดับ|อโซีอาร์}}
[[หมวดหมู่:ซอฟต์แวร์|อ]]
{{โครงซอฟต์แวร์}}