Journalism&Multimedia

วันศุกร์ที่ 10 กุมภาพันธ์ พ.ศ. 2555

โครงสร้างระบบโอซีอาร์


โครงสร้างของระบบโอซีอาร์โดยทั่วๆ ไปประกอบไปด้วยขั้นตอนการทำงานหลัก 3 ขั้น

โครงสร้างทั่วไปของระบบโอซีอาร์
ซึ่งในแต่ละขั้นตอนประกอบด้วยรายละเอียดดังต่อไปนี้
1. ขบวนการประมวลผลขั้นต้น (Pre-Processing)
1.1 การกรองข้อมูลแทรกซ้อน (Noise Filtering)
1.2 การปรับแต่งข้อมูล (Normalization)
1.3 การตัดแบ่งพื้นที่ใช้งาน (Cropping)
1.4 การสกัดลักษณะสำคัญ (Feature Extraction)
2. การรู้จำ (Recognition)
2.1 วิธีทางการเข้าคู่รูปแบบ (Template Matching)
2.2 วิธีทางสถิติ (Statistical Approach)
2.3 วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis)
2.4 วิธีทางโครงข่ายประสาทเทียม (Neural Network)
3. ขบวนการประมวลผลขั้นปลาย (Post-Processing)

1.ขบวนการประมวลผลขั้นต้น (Pre-Processing)

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

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

1.2 การปรับแต่งข้อมูล (Normalization)
การปรับแต่งข้อมูลเป็นการปรับภาพตัวอักษรให้อยู่ในรูปแบบที่ระบบ ต้องการเพื่อนำไปใช้ในขั้นต่อไป ตัวอย่างการปรับแต่งข้อมูลในโปรแกรมโอซีอาร์ทั่วๆ ไป อาทิเช่น การปรับขนาดรูปตัวอักษร, การปรับตัวอักษรที่เอียงให้ตรง, การแปลงรูปสีหรือเกรย์สเกลให้เป็นขาวดำ หรือในทางกลับกัน การแปลงรูปขาวดำให้เป็นสีหรือเกรย์สเกล เป็นต้น

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

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

2.การรู้จำ (Recognition)

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

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

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

2.3 วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis)
วิธีการวิเคราะห์ทางโครงสร้างคือการวิเคราะห์โครงสร้างตัวอักษร โดยถือว่าตัวอักษรทุกตัวประกอบด้วยองค์ประกอบพื้นฐาน ซึ่งได้มาจากการสกัดลักษณะสำคัญ เช่นเดียวกันกับวิธีการทางสถิติ ต่างกันตรงที่ลักษณะสำคัญ ที่ส่งมาให้กับขั้นตอนการรู้จำแบบการวิเคราะห์ทางโครงสร้างนี้ มักจะใช้เป็นชื่อหรือค่าที่บอกว่าลักษณะโครงสร้างสำคัญนั้นเป็นอะไร เช่น เส้นตรง วงกลม เป็นต้น แทนที่จะเป็นค่าจำนวนจริง ในขั้นตอนการรู้จำลักษณะสำคัญทั้งหลายที่ประกอบเป็นตัวอักษรนั้น จะถูกส่งเข้าไปให้กับส่วนที่ตรวจวิเคราะห์กฎการเขียนตัวอักษร เช่น ฟอร์มอลแกรมมาแมชชีน (formal grammar machine) โครงสร้างกราฟ หรือโครงสร้างต้นไม้เป็นต้น เพื่อระบุว่าเป็นตัวอะไร ซึ่งจะตัดสินโดยการดูที่รูปแบบการเชื่อมต่อขององค์ประกอบต่างๆ เข้าเป็นตัวอักษรนั้น วิธีการนี้มีข้อดีตรงที่มีความยืดหยุ่นต่อความหลากหลายของตัวอักษรค่อนข้าง มาก อย่างไรก็ตามอัตราความถูกต้องของวิธีนี้ขึ้นอยู่กับการสร้างกฎและการ วิเคราะห์กฎที่มีประสิทธิภาพ ซึ่งเป็นส่วนที่สำคัญที่สุดของวิธีการนี้

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

แสดงโครงสร้างของ Neural Network

3.ขบวนการประมวลผลขั้นปลาย (Post-Processing)

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น