พูดคุย:การรู้จำอักขระด้วยแสง

message: == ประวัติ ==
thumb|300px|right|หลักการทำงานเครื่องเรทินาสแกนของ George Carey [http://www.diac.upm.es/acceso_profesores/asignaturas/television/stv/historiatv/] 
ระบบโอซีอาร์ไม่ใช่เรื่องใหม่สำหรับกระบวนการประมวลผลข้อมูล เนื่องจากความพยายามที่จะพัฒนาเครื่องช่วยอ่านตัวอักษรอัตโนมัติเพื่อช่วยงานมนุษย์นั้น มีการคิดค้นกันมากกว่าร้อยปีแล้ว  ถ้าหากจะกล่าวถึงประวัติของโอซีอาร์ ก็น่าจะเริ่มต้นกันที่คำว่า optical ซึ่งบอกถึงหลักการทำงานของระบบที่เกี่ยวข้องกับการประมวลผลของภาพอิเล็กทรอนิกส์ที่ได้มาจากเครื่องสแกน ซึ่งมีจุดเริ่มต้นในปี พ.ศ. 2416 โดยพนักงานโทรเลขชาวไอแลนด์ชื่อ Joseph May ได้ค้นพบคุณสมบัติทางโฟโตอิเล็กทริค (photoelectric) จากซีลีเนียม (selenium) โดยบังเอิญ จากนั้นในปี พ.ศ. 2418 ในสหรัฐอเมริกา George Carey ได้นำเสนอเครื่องสแกนเรทินา (retina scanner) ที่สามารถถ่ายทอดสัญญาณภาพจากแผงโฟโตอิเล็กทริคเซลที่รับแสงสะท้อนจากภาพแล้วแสดงผลที่แผงอีกด้านหนึ่ง
และต่อมาในปี พ.ศ. 2427 Paul Nipkow ชาวเยอรมันได้คิดค้นเครื่องสแกนภาพแบบใหม่ที่ใช้จานหมุนที่มีรูเล็กๆ เรียงกันในลักษณะเป็นก้นหอยเรียกว่านิพโกว์ดิสก์ (Nipkow disk) ในการอ่านภาพ ซึ่งถือเป็นประดิษฐ์กรรมต้นแบบของเครื่องสแกนรวมทั้งเทคโนโลยีการถ่ายทอดภาพของวงการโทรทัศน์ในปัจจุบันอีกด้วย 
เครื่องอ่านตัวอักษรเครื่องแรกที่มีการรายงานไว้เป็นเครื่องที่ทำขึ้นเพื่อช่วยคนพิการทางตาในการอ่านหนังสือซึ่งเป็นผลงานของนักวิทยาศาสตร์ชาวรัสเซียชื่อ Tyurin สร้างขึ้นในปี พ.ศ. 2443 จากนั้นในปี พ.ศ. 2472 G. Tausheck ได้จดสิทธิบัตรระบบโอซีอาร์เป็นครั้งแรกในประเทศเยอรมนี และต่อมาปี พ.ศ. 2476 ในอเมริกา P.W. Handel ก็ได้จดสิทธิบัตรโอซีอาร์ของตนเองเช่นกัน ถึงแม้เริ่มแรกระบบโอซีอาร์ดังกล่าวจะมีลักษณะและความสามารถที่เทียบไม่ได้กับระบบโอซีอาร์ที่เราใช้กันอยู่ในปัจจุบัน แต่แนวความคิดพื้นฐานของระบบดังกล่าวก็ยังคงใช้กันอยู่จนกระทั่งถึงทุกวันนี้
ความแตกต่างของระบบโอซีอาร์ในยุคแรกๆ ที่เห็นได้ชัดคือ  ลักษณะที่เป็นชุดอุปกรณ์ฮาร์ดแวร์ที่พ่วงติดกับเครื่องสแกน แทนที่จะเป็นชุดซอฟต์แวร์ที่ใช้กับเครื่องคอมพิวเตอร์แบบตั้งโต๊ะ (การกล่าวถึงชุดอุปกรณ์ฮาร์ดแวร์โอซีอาร์ผู้เขียนขอใช้คำว่า “ระบบโอซีอาร์” แทนที่จะเป็น “โปรแกรมโอซีอาร์“ ซึ่งจะหมายถึงชุดซอฟต์แวร์โอซีอาร์ที่ใช้กับเครื่องคอมพิวเตอร์ ทั้งนี้เพื่อความชัดเจนในการใช้คำ) โดยโอซีอาร์ยุคแรกๆ จะมีลักษณะออกไปทางเครื่องจักรกล ซึ่งต่อมาได้รับการพัฒนาเป็นเครื่องอิเล็กทรอนิกส์แบบอนาล็อก แล้วจึงมาเป็นระบบดิจิทัลอย่างเช่นในปัจจุบัน  ทุกวันนี้ชุดอุปกรณ์ฮาร์ดแวร์โอซีอาร์เช่นนี้ก็ยังคงมีการผลิตอยู่และมีราคาสูงมาก เพื่อใช้ในการแปลงเอกสารหรือแบบฟอร์มเฉพาะด้านที่มีปริมาณมากๆ เครื่องพวกนี้จะมีประสิทธิภาพการทำงานสูง ตัวอย่างการใช้งานโอซีอาร์แบบนี้ ได้แก่ ระบบอ่านรหัสไปรษณีย์เพื่อแยกจดหมายอัตโนมัติ และระบบสำหรับอ่านหมายเลขเช็ค เป็นต้น
การวิจัยและพัฒนาโอซีอาร์ได้ก้าวหน้าเป็นอย่างมากหลังจากที่ได้มีการประดิษฐ์คอมพิวเตอร์ขึ้นมาใช้ ศักยภาพเชิงการคำนวณและการทำงานแบบดิจิทัลมีผลต่อการออกแบบและพัฒนาโอซีอาร์ทั้งด้านฮาร์ดแวร์ และอัลกอริธึม ทำให้สามารถนำวิธีการใหม่ๆ ที่ดีกว่ามาใช้ ตัวอย่างโอซีอาร์รุ่นแรกๆ ที่นำเอาเทคนิคทางด้านดิจิทัลมาใช้ได้แก่ ERA (Electric Reading Automation) ของบริษัท Solatron Electronics Group Ltd. ซึ่งใช้ประโยชน์จากพื้นที่หน่วยความจำของคอมพิวเตอร์ที่มีลักษณะสองมิติมาช่วยในการทำงาน  ซึ่งก่อนหน้านี้ทำได้ยาก โดยส่วนใหญ่มักจะต้องแปลงภาพตัวอักษรซึ่งเป็นรูปสองมิติให้เป็นข้อมูลแบบหนึ่งมิติก่อนการประมวลผล ส่วนตัวอักษรที่ ERA อ่านได้นั้น จะเป็นเฉพาะตัวเลขเท่านั้น อีกตัวอย่างหนึ่งของเครื่องแบบดิจิทัลคือระบบโอซีอาร์ของ Electrotechnical Laboratory (ETL) ของญี่ปุ่น โดยคอมพิวเตอร์ ETLMark IV กับเทคนิคที่คล้ายกับ ERA  แต่สามารถอ่านได้ทั้งตัวเลขและตัวอักษรทั้งหมด 72 ตัวอักษร นอกจากนั้นยังมีโอซีอาร์ของบริษัท RCA ที่สามารถทำงานได้กับฟอนต์ภาษาอังกฤษและรัสเซีย โดย RCA ซึ่งเป็นผู้นำทางด้านหลอดอิเล็กตรอน (electron tube) ณ เวลานั้น ได้ใช้เทคโนโลยีด้านนี้ของตนร่วมกับเทคโนโลยีด้านอิเล็กทรอนิกส์ในการวิจัยโอซีอาร์ ซึ่งได้ผลเป็นที่น่าพอใจ แต่การวิจัยที่ว่านี้มิได้มีการสานต่อเพื่อผลิตเป็นผลิตภัณฑ์ออกสู่ตลาด  
=== ประวัติโอซีอาร์เชิงพาณิชย์ ===
เนื่องจากความต้องการของตลาดที่มีต่อโอซีอาร์เพื่อใช้ในการนำเข้าข้อมูลนั้นเพิ่มสูงขึ้นเรื่อยๆ จึงมีการผลิตระบบโอซีอาร์เป็นสินค้าออกสู่ตลาดมาอย่างต่อเนื่องมากมายหลายรุ่น ซึ่งระบบต่างๆ เหล่านี้มีคุณสมบัติและความสามารถที่แตกต่างกัน ขึ้นอยู่กับประสิทธิภาพของฮาร์ดแวร์และความก้าวหน้าทางเทคโนโลยีในแต่ละยุคสมัย ซึ่งเราอาจจะแบ่งผลิตภัณฑ์โอซีอาร์ในเชิงพาณิชย์ได้เป็นยุคๆ ตามคุณสมบัติและความสามารถของระบบโอซีอาร์ในแต่ละช่วงเวลาโดยสามารถแบ่งได้เป็น 3 ยุคได้แก่
==== ยุคที่ 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 ====
คุณลักษณะที่สำคัญของระบบโอซีอาร์ยุคนี้คือความสามารถในการรู้จำลายมือเขียน โดยในช่วงแรกๆ จะจำกัดไว้เฉพาะตัวเลขเท่านั้น ยุคนี้มีช่วงระยะเวลาอยู่ระหว่างกลางทศวรรษที่ 60 ถึงต้นทศวรรษที่ 70 ระบบโอซีอาร์ที่อยู่ในกลุ่มนี้ก็ได้แก่ IBM 1287 เป็นเครื่องที่รวมฮาร์ดแวร์แบบดิจิทัลกับอนาลอกไว้ด้วยกัน นอกจากลายมือเขียนแล้วโอซีอาร์ในยุคนี้ยังสามารถอ่านตัวอักษรที่พิมพ์มาจากเครื่องพิมพ์ปกติด้วย ซึ่งระบบที่จัดอยู่ในกลุ่มได้แก่ RETINA โดยตัวอักษรลายมือที่อ่านได้จะเป็นเฉพาะตัวเลขและตัวอักษร C, S, T, X, Z, +, - เท่านั้น ส่วนตัวอักษรจากเครื่องพิมพ์นั้นสามารถอ่านตัวอักษรพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษอีกสี่ตัว รวมเป็น 44 ตัว นอกจากนั้นผู้ใช้ยังสามารถเลือกฟอนต์ที่จะอ่านได้ด้วย  RETINA ถือเป็นโอซีอาร์ที่มีประสิทธิภาพมากระบบหนึ่งในขณะนั้น โดยสามารถอ่านตัวอักษรได้ 2,400 ตัวต่อวินาที
==== ยุคที่ 3 ====
ยุคนี้ให้ความสนใจกับเอกสารตัวพิมพ์ที่มีคุณภาพต่ำและตัวอักษรลายมือเขียนที่มีกลุ่มตัวอักษรหลากหลายมากขึ้น เช่น ตัวอักษรภาษาจีน เป็นต้น โดยที่โอซีอาร์เชิงพาณิชย์ของยุคนี้ออกสู่ท้องตลาดในช่วงประมาณ พ.ศ. 2518 ถึง พ.ศ. 2528 เราอาจจะแบ่งโอซีอาร์ยุคนี้ออกเป็นกลุ่มย่อยลงไปได้อีกดัง
# โอซีอาร์สำหรับเอกสารคุณภาพต่ำ เป็นโอซีอาร์ที่สามารถอ่านเอกสารซึ่งมีปัญหาเนื่องมาจากรอยเปื้อน (noise) และตัวอักษรที่ไม่ชัดเจน ตัวอย่างของโอซีอาร์ ในกลุ่มนี้ได้แก่ OCR-V100 ของ Toshiba และ IBM 1975 
# ระบบอ่านเอกสารลายมือเขียน โดยเน้นที่เอกสารที่มีทั้งตัวเลขและตัวอักษรเพื่อใช้ในการแปลงข้อมูลที่ได้มาจากแบบฟอร์มต่างๆ 
# ชุดซอฟต์แวร์ แทนที่จะพัฒนาระบบที่ประกอบด้วยอุปกรณ์ฮาร์ดแวร์เช่นแต่ก่อน โอซีอาร์สมัยใหม่เริ่มมีการผลิตเป็นซอฟต์แวร์สำหรับใช้กับเครื่องพีซี โดยอาจจะพ่วงมากับเครื่องสแกนแบบตั้งโต๊ะหรือมือถือ ซอฟต์แวร์เหล่านี้จะมีราคาที่ถูกลงตามลำดับ ซอฟต์แวร์โอซีอาร์ที่ค่อนข้างมีชื่อเสียง ได้แก่ Omnipage ของบริษัท  Caere Corporation , WordScan ของ Calera และ Discover ของ Xerox Image System เป็นต้น 
=== ประวัติการวิจัยและพัฒนาโอซีอาร์ภาษาไทย ===
ในประเทศไทยได้มีการวิจัยและพัฒนาโอซีอาร์สำหรับภาษาไทยมานานประมาณ 10 ปีแล้ว เนื่องจากเทคโนโลยีโอซีอาร์มีความสำคัญต่อกระบวนการประมวลผลข้อมูลในระบบคอมพิวเตอร์เป็นอย่างมาก แต่ภาษาไทยมีลักษณะเฉพาะที่ต่างออกไปจากภาษาอื่นๆ ดังนั้นจึงมีความจำเป็นอย่างมากที่ประเทศไทยจะต้องพัฒนาเทคโนโลยีด้านนี้สำหรับภาษาไทยโดยเฉพาะ การวิจัยส่วนใหญ่เป็นการวิจัยภายในสถาบันการศึกษา และมักจะถูกเลือกเป็นหัวข้อวิทยานิพนธ์ของนักศึกษาทั้งระดับปริญญาโทและปริญาเอกอยู่เสมอ แต่สถาบันศึกษาที่ให้ความสนใจในการวิจัยอย่างจริงจังและต่อเนื่องนั้น มีอยู่จำนวนจำกัด ซึ่งได้แก่ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบังโดย ดร. ชม  กิ้มปาน, สถาบันบัณฑิตพัฒนบริหารศาสตร์ โดย ดร. พิพัฒน์ หิรัญวนิชกร และ จุฬาลงกรณ์มหาวิทยาลัย โดย ดร. ชิดชนก เหลือสินทรัพย์ นอกจากสถาบันทางการศึกษาดังกล่าวแล้ว ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติซึ่งเป็นหน่วยงานทางการวิจัยภาครัฐก็เล็งเห็นความสำคัญของเทคโนโลยีโอซีอาร์ จึงได้ดำเนินโครงการวิจัยด้านนี้อย่างจริงจังภายใต้การดูแลของ ดร. ทวีศักดิ์ กออนันตกูล และ ดร. จุฬารัตน์ ตันประเสริฐ ซึ่งงานวิจัยนี้ได้รับผลสำเร็จและนำไปสู่การผลิตเป็นโปรแกรมโอซีอาร์ภาษาไทยเชิงพาณิชย์ชื่อ “อ่านไทย” ในเวลาต่อมา
การวิจัยโอซีอาร์ในประเทศไทยนั้นมีทั้งสำหรับแบบตัวพิมพ์และตัวเขียน สำหรับตัวเขียนก็มีการรู้จำทั้งแบบ ออนไลน์และออฟไลน์ ถึงแม้การวิจัยโอซีอาร์ภาษาอื่นๆ เช่น อังกฤษ และญี่ปุ่น  เป็นต้น จะมีความก้าวหน้าและได้รับความสำเร็จในการนำมาใช้งานอย่างกว้างขวางแล้วก็ตาม แต่การประยุกต์ใช้เทคนิคจากภาษาอื่นมาใช้กับภาษาไทยโดยตรงนั้นไม่สามารถทำได้ จำเป็นต้องมีการคิดค้นวิธีการใหม่ที่เหมาะสมกับภาษาไทย อย่างไรก็ตามงานวิจัยโอซีอาร์สำหรับภาษาไทยก็ประสบความสำเร็จในระดับหนึ่ง และมีซอฟต์แวร์โอซีอาร์เชิงพาณิชย์ออกมาสู่ตลาดแล้วจำนวนหนึ่ง แต่ทั้งหมดยังเน้นหนักไปที่ตัวพิมพ์ และยังมีข้อจำกัดเรื่องฟอนต์ที่สามารถอ่านได้ โดยระดับความถูกต้องของ โอซีอาร์ภาษาไทยจะอยู่ในช่วง 90 – 99 % ซึ่งยังห่างจากความสามารถของโอซีอาร์ภาษาอังกฤษและภาษาอื่นๆ ที่มีระดับความถูกต้องสูงถึง 99.9 % ทั้งนี้ส่วนหนึ่งเนื่องมาจากลักษณะของตัวอักษรภาษาไทยที่มีตัวคล้ายกันแต่ทำหน้าที่แตกต่างกันอยู่หลายตัว รวมทั้งประโยคภาษาไทยที่ประกอบไปด้วยตัวอักษร 4 ระดับ เหล่านี้เป็นปัญหาที่ยากสำหรับการพัฒนาโอซีอาร์ภาษาไทยให้ได้ความถูกต้องที่ 99.9 %
== เทคโนโลยีโอซีอาร์ ==
ผลิตภัณฑ์ OCR ที่มีใช้อยู่ในขณะนี้อาศัยเทคโนโลยีที่มีขั้นตอนการทำงานที่ยุ่งยากซับซ้อนมาก  กว่าเอกสารที่สแกนเข้าไปจะถูกแปลงออกมาเป็นตัวอักษรอย่างที่ต้องการ (ซึ่งบางครั้งก็ได้อะไรที่ไม่ต้องการออกมาด้วย!) รายละเอียดของขั้นตอนการทำงานเหล่านี้จะแตกต่างกันออกไปสำหรับโปรแกรมโอซีอาร์แต่ละตัว ซึ่งส่วนหนึ่งก็เป็นเรื่องรายละเอียดทางด้านเทคนิคที่เป็นกลเม็ดเคล็ดลับของแต่ละบริษัท แต่อีกส่วนก็ขึ้นกับลักษณะงานเฉพาะด้านของโปรแกรมนั้น ทั้งนี้เนื่องจากโปรแกรมประเภทโอซีอาร์อาจแบ่งออกได้เป็นหลายกลุ่ม ซึ่งมีวัตถุประสงค์เพื่อนำไปใช้กับงานที่มีลักษณะแตกต่างกัน ตัวอย่างเช่น โอซีอาร์สำหรับลายมือเขียน (Hand Written OCR) ก็มักจะใช้เทคนิคที่ต่างจากโอซีอาร์สำหรับตัวพิมพ์ (Printed Text OCR) และอื่นๆ ซึ่งเราจะกล่าวถึงรายละเอียดของโอซีอาร์แต่ละกลุ่มในลำดับต่อไป นอกจากนั้นลักษณะของภาษาก็มีอิทธิพลต่อการเลือกใช้เทคนิคด้วย เนื่องจากความยากง่ายและรูปร่างตัวอักษรของแต่ละภาษาแตกต่างกัน ดังนั้นเทคนิคที่ใช้กับภาษาไทยจึงต่างจากภาษาอื่นๆ เช่น ภาษาอังกฤษ และภาษาจีน ซึ่งเงื่อนไขต่างๆ เหล่านี้เป็นเพียงส่วนหนึ่งของความซับซ้อนที่ส่งผลต่อกระบวนการทำงานที่เกิดขึ้นภายในโปรแกรม ทั้งนี้ยังมีส่วนอื่นๆ ที่เป็นข้อกำหนดในการเลือกวิธีการที่เหมาะสมสำหรับจัดการกับปัญหาที่หลากหลาย เพื่อจะได้โปรแกรมโอซีอาร์ที่ดีที่สุด 
ก่อนที่จะกล่าวถึงรายละเอียดทางด้านเทคนิคเราควรทำความเข้าใจกับคำว่า “Optical Character Recognition” หรือ OCR กันก่อน ซึ่งถ้าจะแปลเป็นภาษาไทยอย่างตรงไปตรงมา ก็คงจะได้ว่า “การรู้จำตัวอักษรโดยการมองเห็น (ภาพ) ” ซึ่งเห็นได้ชัดว่าถ้าจะอธิบายให้คนที่ไม่รู้จักโอซีอาร์ฟัง แล้วเข้าใจด้วยละก็ จำเป็นจะต้องมาแปลให้เป็นภาษาไทยกันอีกที แบบที่จะสามารถเข้าใจกันได้ง่ายๆกว่านี้ ฉะนั้นเราน่าจะมาลองแปลกันใหม่ดีกว่า 
เริ่มจากคำว่า optical ซึ่งในที่นี้หมายถึงการอ่านภาพ (ตัวอักษร) ด้วยอุปกรณ์ตรวจจับความเข้มของแสง ซึ่งก็คือเครื่องสแกนหรืออุปกรณ์ที่ทำงานในลักษณะเดียวกันนี้นั่นเอง ที่เป็นตัวรับข้อมูลเข้ามาเป็นรูปภาพ เพื่อนำไปสู่กระบวนการขั้นต่อๆ ไปของโปรแกรม การที่จะต้องมีคำนี้ประกอบอยู่ด้วยนั้น สืบเนื่องมาจากความพยายามที่จะสร้างเครื่องอ่านเอกสารอัตโนมัติในยุคแรกๆ ซึ่งนอกจากการอ่านข้อมูลแบบ optical แล้ว ยังมีการใช้วิธีการทางด้านแม่เหล็กและกลไกด้วย ถึงแม้ในปัจจุบันเราจะไม่ได้ใช้วิธีการทั้งสองแบบหลังนี้แล้วก็ตาม คำว่า optical ก็ยังคงอยู่ เพราะคนส่วนใหญ่จะรู้จักคำว่า OCR ในแง่เป็นคำเฉพาะที่หมายถึงซอฟต์แวร์ประเภทนี้ไปแล้ว ดังนั้นการที่จะเอาตัว O หรือ optical ออกนั้นคงจะสายเกินไป คำต่อมา character ก็คือตัวอักษร เพื่อระบุว่าตัวโปรแกรมนั้นทำงานกับอะไร ซึ่งก็คือตัวอักษรที่จะถูกแปลงจากรูปตัวอักษรมาเป็นรหัสตัวอักษร ที่เราสามารถใช้เวิร์ดโปรเซสเซอร์เปลี่ยนแปลงแก้ไขได้ (และต่อจากนี้ขอใช้คำว่ารูปตัวอักษรและรหัสตัวอักษรในการอ้างอิงถึงตัวอักษรทั้งสองแบบดังกล่าว เพื่อให้เกิดความเข้าใจที่ชัดเจนในการสื่อความหมาย) นอกจากนี้ชนิดของตัวอักษรยังใช้เป็นเกณฑ์ในการแบ่งประเภทของโอซีอาร์ด้วยเช่น ตัวพิมพ์ ตัวเขียน เป็นต้น ซึ่งจะกล่าวถึงในหัวข้อถัดไป ส่วนคำสุดท้าย recognition หมายถึงการบอกว่ารูปภาพของตัวอักษรนั้นเป็นตัวอะไร โดยแปลงให้เป็นรหัสตัวอักษรที่เครื่องคอมพิวเตอร์สามารถนำไปทำงานอื่นๆ ได้ เนื่องจากตัวอักษรตัวหนึ่งๆ สามารถเขียนได้หลากหลายลักษณะ ทำให้งานส่วนนี้กลายเป็นส่วนที่สำคัญที่สุดของระบบ และมีความยุ่งยากซับซ้อนมาก  ถึงตอนนี้ลองมาสรุปความหมายของคำว่า “optical character recognition” กันอีกครั้ง ซึ่งน่าจะแปลว่าโปรแกรมที่แปลงภาพตัวอักษรที่ได้จากเครื่องสแกนเนอร์ให้เป็นรหัสตัวอักษรที่เราสามารถเอาไปใช้กับเวิร์ดโปรเซสเซอร์เพื่อที่จะเปลี่ยนแปลงแก้ไขเพิ่มเติมได้ 
=== ประเภทของโอซีอาร์ ===
ตามที่ได้กล่าวไว้แล้วข้างต้นเราสามารถแบ่งโปรแกรมโอซีอาร์ได้เป็นกลุ่มๆ ตามลักษณะหรือแหล่งที่มาของตัวอักษรที่ตรงกับความสามารถของโปรแกรม ซึ่งเราสามารถจะแบ่งออกเป็นกลุ่มได้ดังนี้
center|เทคโนโลยีโอซีอาร์
==== การรู้จำตัวอักษรแบบออนไลน์ (On-line Character Recognition) ====
กลุ่มนี้จะต่างจากกลุ่มอื่นๆ ในแง่ของวิธีการอินพุตข้อมูล ซึ่งจะได้มาจากดิจิไทเซอร์หรือปากกาอิเล็กทรอนิกส์ที่ใช้กับเครื่องคอมพิวเตอร์มือถือ ส่วนการวิเคราะห์ตัวอักษรจะทำในขณะที่มีการลากเส้นเพื่อเขียนตัวอักษร (ออนไลน์) ซึ่งมีวิธีการทำงานที่ต่างจากวิธีการอื่นๆ ถ้าจะเทียบความยากง่ายกับการรู้จำลายมือเขียนแบบออฟไลน์ กลุ่มนี้จะง่ายกว่าเพราะจะได้ข้อมูลเพิ่มเติมเกี่ยวกับทิศทางและลำดับการลากเส้นมาช่วยด้วย โอซีอาร์กลุ่มนี้มักมาพร้อมกับอุปกรณ์การเขียนที่จะกำหนดพื้นที่ให้อินพุตข้อมูล โดยส่วนใหญ่มักต้องเขียนทีละตัวอักษร ความก้าวหน้าของเทคโนโลยีด้านนี้จะมีผลเป็นอย่างมากต่อการเจริญเติบโตของธุรกิจในวงการเครื่องคอมพิวเตอร์มือถือที่เป็นคอมพิวเตอร์ขนาดเล็ก ซึ่งต้องอาศัยการใส่อินพุตจากปากกาอิเล็กทรอนิกส์แทนคีย์บอร์ด
==== การรู้จำตัวอักษรแบบออฟไลน์ (Off-line Character Recognition) ====
อินพุตของระบบจะเป็นภาพของตัวอักษรที่ได้จากเครื่องสแกน  อาจจะเป็นตัวอักษรแบบพิมพ์  หรือแบบเขียน และอาจเป็นตัวอักษรแบบเดี่ยวๆ หรือติดกันเป็นกลุ่มตัวอักษร
===== ตัวอักษรโดด (Single Character) =====
คือกลุ่มของโปรแกรมโอซีอาร์ที่ทำงานกับภาพตัวอักษรฉบับที่เป็นตัวเดี่ยวๆ ไม่ได้เชื่อมติดกับตัวอื่น โปรแกรมกลุ่มนี้สามารถแบ่งย่อยออกเป็น  2 กลุ่ม ได้แก่ 
# การรู้จำตัวพิมพ์แบบฟอนต์เฉพาะ (Printed Fixed-Font Character Recognition) 
เป็นกลุ่มของโปรแกรมที่ใช้ได้กับตัวอักษรประเภทตัวพิมพ์ที่มีการกำหนดกลุ่มของฟอนต์ ซึ่งถือว่าอยู่ในระดับง่ายที่สุดในด้านการพัฒนาเทคนิคในการทำงานของโปรแกรม ถึงกระนั้นก็ตาม โปรแกรมในกลุ่มนี้ก็ยังประสบกับปัญหาที่เกิดจากเอกสารคุณภาพต่ำ ซึ่งจะส่งผลให้ได้ภาพที่เปรอะเปื้อน ทำให้ภาพตัวอักษรติดกันหรือขาดออกจากกัน เหล่านี้เป็นตัวการสำคัญที่ทำให้อัตราความถูกต้องของโปรแกรมลดลง
frame|center|ตัวอักษรที่มีส่วนเชื่อมติดกันและขาดจากกัน
# การรู้จำลายมือเขียนแบบตัวโดด (Isolated Handprint Character Recognition (ICR))
ตัวอักษรของกลุ่มนี้เป็นลายมือเขียนที่มักจะถูกกำหนดให้เขียนในกรอบที่จัดไว้ โดยเขียนทีละตัวแยกออกจากกัน ตัวอย่างงานที่เข้าข่ายกลุ่มนี้ได้แก่ โปรแกรมโอซีอาร์ที่ใช้แยกจดหมายจากรหัสไปรษณีย์ซึ่งเป็นตัวเลขจากลายมือเขียนเป็นต้น การรู้จำลายมือเขียนเป็นเรื่องยากมาก เพราะตัวอักษรแต่ละตัวที่เขียนโดยคนแต่ละคนมีความหลากหลายมาก ถึงแม้บางครั้งจะเป็นการเขียนโดยคนๆ เดียว การเขียนแต่ละครั้งก็ยังแตกต่างกัน ดังนั้นโปรแกรมพวกนี้มักมีข้อกำหนดบางอย่าง เช่น สามารถอ่านได้เฉพาะตัวเลข หรือสามารถอ่านลายมือของคนที่ได้ลองเขียนตัวอักษรตัวอย่างชุดหนึ่งให้โปรแกรมรู้จักก่อนเท่านั้น
===== การรู้จำลายมือแบบเขียนต่อเนื่อง (Script recognition) =====
กลุ่มนี้ได้โจทย์ในระดับที่ยากที่สุดในจำนวนตระกูลโอซีอาร์ทั้งหลาย เพราะตัวอักษรที่โปรแกรมจะต้องอ่านเป็นตัวอักษรที่เป็นลายมือเขียนโดยไม่มีข้อกำหนดใดๆ ผู้เขียนสามารถเขียนได้ตามธรรมชาติอย่างต่อเนื่อง ดังนั้นตัวอักษรที่ได้อาจมีเส้นที่ลากเชื่อมตัวอักษรหลายๆ ตัวให้ติดกัน และประกอบกับความแตกต่างอย่างมากของลายมือของคนแต่ละคน โปรแกรมในกลุ่มนี้บางทีเรียกว่าการรู้จำลายมือเขียนแบบอิสระ (freestyle handwriting recognition) ถึงแม้จะมีผลิตภัณฑ์โอซีอาร์กลุ่มนี้ออกสู่ตลาดบ้างแล้ว แต่หัวข้อนี้ก็ยังคงต้องการการวิจัยเพิ่มเติมอีกมาก
=== การรู้จำแบบ ===
โปรแกรมประเภทโอซีอาร์เป็นโปรแกรมที่ประยุกต์ความรู้ด้านการรู้จำแบบ (pattern recognition) ซึ่งต้องอาศัยเทคนิคการวิเคราะห์แยกแยะและการระบุชนิด โดยอินพุตของโปรแกรมมักจะต้องผ่านกระบวนการย่อยๆ อีกหลายขั้นขึ้นอยู่กับการประยุกต์ใช้ ได้แก่ การกรองข้อมูลแทรกซ้อน การปรับแต่งข้อมูล การเลือกตัดแบ่งพื้นที่ใช้งาน การสกัดลักษณะสำคัญ การจำแนกแยกแยะ การรู้จำ และอื่นๆ โดยในแต่ละขั้นตอนก็สามารถจะมีวิธีการได้อีกหลากหลายวิธี ขึ้นอยู่กับตัวข้อมูลและการประยุกต์ใช้ 
นอกจากโอซีอาร์แล้ว งานประยุกต์ที่แตกแขนงออกมาจากการรู้จำแบบได้แก่ การรับรู้ภาพของคอมพิวเตอร์, การวิเคราะห์การเกิดแผ่นดินไหว, การแยกแยะและวิเคราะห์สัญญาณเรดาร์, การรู้จำใบหน้า, การรู้จำเสียงพูด, การเข้าใจเสียงพูด, การระบุลายพิมพ์นิ้วมือ, การวินิจฉัยทางการแพทย์ และอื่นๆ 
=== โครงสร้างระบบโอซีอาร์ ===
โครงสร้างของระบบโอซีอาร์โดยทั่วไปประกอบไปด้วยขั้นตอนการทำงานหลัก 3 ขั้น แต่ละขั้นตอนประกอบด้วยรายละเอียดดังนี้
==== ขบวนการประมวลผลขั้นต้น (Pre-Processing) ====
ในการทำงานของโปรแกรมโอซีอาร์นั้น ก่อนที่โปรแกรมจะสามารถบอกได้ว่ารูปภาพที่ส่งเข้าไปประกอบด้วยตัวอักษรอะไรบ้าง จำเป็นจะต้องผ่านขั้นตอนที่สำคัญหลายขั้น ขั้นตอนดังกล่าวนี้มักถูกเรียกรวมกันว่า กระบวนการประมวลผลขั้นต้น (Pre-Processing) ซึ่งเป็นขั้นตอนในการปรับแต่งและจัดเตรียมข้อมูลให้เหมาะสมกับขั้นตอนการรู้จำต่อไป ขั้นตอนเหล่านี้มีความสำคัญต่อประสิทธิภาพโดยรวมของระบบ เพราะหากมีความผิดพลาดเกิดขึ้นในส่วนนี้ ก็จะส่งผลกระทบไปยังส่วนถัดไปของระบบด้วย
ขั้นตอนการประมวลผลเบื้องต้นในโปรแกรมโอซีอาร์ที่สำคัญ ได้แก่ 
===== การกรองข้อมูลแทรกซ้อน  (Noise Filtering) =====
การกรองข้อมูลแทรกซ้อนมีจุดประสงค์เพื่อลดทอนส่วนของรูปภาพที่เป็นสิ่งแปลกปลอมอันไม่พึงประสงค์ออกไป โดยข้อมูลแทรกซ้อนที่เกิดขึ้นส่วนใหญ่มักจะมาจากคุณภาพของเอกสารต้นฉบับที่นำมาทำการอ่าน  ซึ่งเป็นต้นเหตุสำคัญที่ทำให้ความถูกต้องของโปรแกรมลดลง จึงจำเป็นที่จะต้องจัดการกับส่วนเกินเหล่านี้ออกไปให้ได้มากที่สุดเท่าที่จะเป็นไปได้ แต่เรายังไม่มีวิธีการใดที่รับรองได้ว่าสามารถจัดการกับข้อมูลแทรกซ้อนได้ โดยสมบูรณ์ ดังนั้นส่วนการรู้จำของโอซีอาร์ก็จะต้องมีความทนทานต่อการแทรกซ้อนเหล่านี้ได้พอสมควร
===== การปรับแต่งข้อมูล (Normalization) =====
การปรับแต่งข้อมูลเป็นการปรับภาพตัวอักษรให้อยู่ในรูปแบบที่ระบบต้องการเพื่อนำไปใช้ในขั้นต่อไป ตัวอย่างการปรับแต่งข้อมูลในโปรแกรมโอซีอาร์ทั่วๆ ไป อาทิเช่น การปรับขนาดรูปตัวอักษร, การปรับตัวอักษรที่เอียงให้ตรง, การแปลงรูปสีหรือเกรย์สเกลให้เป็นขาวดำ หรือในทางกลับกัน การแปลงรูปขาวดำให้เป็นสีหรือเกรย์สเกล เป็นต้น
===== การตัดแบ่งพื้นที่ใช้งาน (Cropping) =====
การตัดแบ่งพื้นที่เป็นการตัดแยกเอาเฉพาะรูปตัวอักษรออกมาจากภาพ เพื่อส่งให้ขั้นตอนการรู้จำในการระบุว่ารูปตัวอักษรนั้นเป็นรหัสอักษรอะไร หลักการพอสังเขปที่ใช้สำหรับการตัดรูปตัวอักษรโดยทั่วไปจะใช้พื้นที่สีขาว (สีพื้น) รอบรูปเป็นตัวกำหนดขอบเขตในการตัด ในขั้นตอนนี้มักจะประสบปัญหาที่ส่งผลกระทบต่ออัตราความถูกต้องของระบบโดยรวมอยู่สองปัญหา ปัญหาแรกคือปัญหาตัวติด เกิดจากรูปของตัวอักษรตั้งแต่สองตัวขึ้นไปมีส่วนที่เชื่อมติดกัน ทำให้ไม่สามารถแยกตัวอักษรออกจากกันโดยใช้พื้นที่สีขาวรอบๆ ได้ จำเป็นต้องหาอัลกอริธึมพิเศษมาช่วยในการแยกตัวอักษรออกจากกัน  ส่วนปัญหาที่สองในทางตรงกันข้าม เป็นปัญหาตัวขาดที่รูปตัวอักษรหนึ่งๆ ถูกแยกออกเป็นส่วนๆ ทำให้เวลาตัดตัวอักษรจากตัวเดียวจะได้เป็นสองตัว  ซึ่งก็ต้องหาวิธีการเฉพาะสำหรับมาจัดการอีกเช่นกัน 
===== การสกัดลักษณะสำคัญ (Feature Extraction) =====
การสกัดลักษณะสำคัญเป็นอีกขบวนการหนึ่งที่สำคัญมาก ตำราส่วนใหญ่จะแยกส่วนนี้ออกจากการประมวลผลเบื้องต้น คือจะอยู่ระหว่างขั้นตอนการประมวลผลเบื้องต้นกับขั้นตอนการรู้จำ แต่ในที่นี้ขอรวมไว้ในตอนเดียวกัน การสกัดลักษณะสำคัญเป็นการดึงเอาโครงสร้างพื้นฐานที่สำคัญของตัวอักษรนั้นออกมา โดยโครงสร้างพื้นฐานที่ว่าจะต้องมีการกำหนดไว้ก่อนว่าจะมีอะไรบ้าง มีการนิยามอย่างไร ตัวอย่างเช่น สำหรับภาษาไทยเราอาจกำหนดว่าตัวอักษรภาษาไทยทั้งหมดประกอบด้วยโครงสร้างพื้นฐานคือ เส้นตรง (แนวตั้ง/นอน) เส้นเอียง หัว (วงกลม) ส่วนโค้ง ส่วนเว้า จุดแตกกิ่ง จุดตัด เป็นต้น เมื่อเราสามารถแยกเอาองค์ประกอบของตัวอักษรแต่ละตัวออกมาได้แล้ว จากนั้นเราก็นำเสนอรูปภาพของตัวอักษรนั้นในรูปแบบของรายการขององค์ประกอบพื้นฐานต่างๆ แทน ซึ่งจะถูกส่งต่อเป็นอินพุตสำหรับขั้นตอนการรู้จำต่อไป
==== การรู้จำ (Recognition) ====
ขั้นตอนนี้ถือเป็นหัวใจของระบบ เพราะเป็นส่วนที่จะตัดสินว่ารูปตัวอักษรที่ส่งเข้าไปเป็นรหัสตัวอักษรอะไร เช่นเดียวกับส่วนอื่นๆ ที่มีวิธีการหลากหลายซึ่งนำมาใช้เพื่อให้ได้ผลการทำงานที่ดีที่สุด เทคนิคใหม่ๆ ได้ถูกพัฒนาขึ้นมาอย่างต่อเนื่องเพื่อรองรับกับปัญหาที่เกิดจากเอกสารที่มีความสลับซับซ้อนมากขึ้น อย่างไรก็ตามเราพอที่จะจัดแบ่งเทคนิคเหล่านี้ออกเป็นกลุ่มตามแนวทางหลักที่ใช้ในการแก้ปัญหา ถึงแม้บ่อยครั้งที่พบว่ามีความคาบเกี่ยวกันของเทคนิคที่นำมาใช้ระหว่างกลุ่มที่ว่านี้ ทั้งนี้เพราะแต่ละแนวทางก็มีข้อดีข้อเสียที่แตกต่างกัน จึงมีความพยายามที่จะรวมเอาเทคนิคเหล่านี้มาใช้ร่วมกันเพื่อเพิ่มความสามารถของระบบเท่าที่จะเป็นไปได้  ดังนั้นการแบ่งกลุ่มในที่นี้ เป็นการแบ่งที่เน้นความชัดเจนในแง่ของขอบเขตทางทฤษฎีเป็นหลัก โดยแนวทางการรู้จำสามารถแบ่งออกได้เป็น 4 กลุ่ม ดังนี้
===== วิธีทางการเข้าคู่รูปแบบ (Template Matching) =====
วิธีการเข้าคู่รูปแบบเป็นวิธีการแรกๆ ที่มาใช้ในการรู้จำตัวอักษร หลักการโดยทั่วไปคือ จะต้องมีรูปแบบ (template) ที่สร้างขึ้นมาสำหรับอ่านตัวอักษร โดยมีการกำหนดตำแหน่งสำคัญที่สามารถใช้แยกแยะความแตกต่างระหว่างตัวอักษรแต่ละตัว เวลาทำงานก็ให้นำรูปภาพที่ต้องการอ่านไปทาบบนแบบเพื่อวัดความคล้ายคลึงกันของภาพกับตัวแบบ จากนั้นก็ระบุว่าเป็นรหัสตัวอักษรอะไร โดยใช้ค่าผ่านระดับหรือวิธีการบางอย่างในการตัดสิน วิธีการนี้จะค่อนข้างอ่อนไหวต่อข้อมูลแทรกซ้อน ขนาด และการเอียงของตัวอักษร จึงจำเป็นต้องมีขั้นตอนการปรับแต่งข้อมูลที่ดี นอกจากนั้นขั้นตอนการเปรียบเทียบก็ไม่ใช่ว่าสามารถเทียบกันแบบจุดต่อจุดได้ เพราะในทางปฏิบัติตัวอักษรที่ส่งเข้าสามารถมีความแปรปรวนได้หลายรูปแบบ ดังนั้นวิธีการเทียบก็ต้องมีประสิทธิภาพเพียงพอที่จะรองรับกับปัญหาดังกล่าวได้
===== วิธีทางสถิติ (Statistical Approach) =====
วิธีทางสถิติเป็นวิธีการที่ใช้หลักการทางสถิติ โดยนำค่าความน่าจะเป็นและ/หรือฟังก์ชันการแจกแจงความน่าจะเป็นมาใช้ในการตัดสินใจ รูปภาพอินพุตที่ได้มาจากขั้นตอนการสกัดลักษณะสำคัญ จะถูกส่งเข้าไปในส่วนการรู้จำเฉพาะของแต่ละตัวอักษร ซึ่งได้ผลลัพธ์ออกมาเป็นค่าความน่าจะเป็นที่อินพุตเป็นตัวอักษรใด เมื่ออินพุตได้ผ่านส่วนการรู้จำครบทุกตัวแล้ว ก็นำเอาผลลัพธ์ที่ได้ทั้งหมดมาเปรียบเทียบกันว่าได้ค่าความน่าจะเป็นของตัวอักษรใดมากที่สุด ผลลัพธ์จะออกเป็นตัวอักษรนั้น 
===== วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis) =====
วิธีการวิเคราะห์ทางโครงสร้างคือการวิเคราะห์โครงสร้างตัวอักษร โดยถือว่าตัวอักษรทุกตัวประกอบด้วยองค์ประกอบพื้นฐาน ซึ่งได้มาจากการสกัดลักษณะสำคัญ เช่นเดียวกันกับวิธีการทางสถิติ ต่างกันตรงที่ลักษณะสำคัญ ที่ส่งมาให้กับขั้นตอนการรู้จำแบบการวิเคราะห์ทางโครงสร้างนี้ มักจะใช้เป็นชื่อหรือค่าที่บอกว่าลักษณะโครงสร้างสำคัญนั้นเป็นอะไร เช่น เส้นตรง วงกลม เป็นต้น แทนที่จะเป็นค่าจำนวนจริง ในขั้นตอนการรู้จำลักษณะสำคัญทั้งหลายที่ประกอบเป็นตัวอักษรนั้น จะถูกส่งเข้าไปให้กับส่วนที่ตรวจวิเคราะห์กฎการเขียนตัวอักษร เช่น ฟอร์มอลแกรมมาแมชชีน (formal grammar machine) โครงสร้างกราฟ  หรือโครงสร้างต้นไม้เป็นต้น เพื่อระบุว่าเป็นตัวอะไร  ซึ่งจะตัดสินโดยการดูที่รูปแบบการเชื่อมต่อขององค์ประกอบต่างๆ เข้าเป็นตัวอักษรนั้น วิธีการนี้มีข้อดีตรงที่มีความยืดหยุ่นต่อความหลากหลายของตัวอักษรค่อนข้างมาก อย่างไรก็ตามอัตราความถูกต้องของวิธีนี้ขึ้นอยู่กับการสร้างกฎและการวิเคราะห์กฎที่มีประสิทธิภาพ ซึ่งเป็นส่วนที่สำคัญที่สุดของวิธีการนี้  
===== วิธีทางโครงข่ายประสาทเทียม (Neural Network) =====
วิธีทางโครงข่ายประสาทเทียมเป็นแนวทางใหม่ที่ได้รับความนิยมอย่างมากในช่วงหลัง เนื่องจากประสิทธิภาพในด้านการรู้จำแบบ ซึ่งถูกนำไปใช้ในงานหลายๆ ด้าน รวมทั้งโอซีอาร์ด้วย โครงข่ายประสาทเทียมเป็นเทคนิคที่พยายามเรียนแบบการทำงานของสมองมนุษย์ ที่มีโครงข่ายเชื่อมต่อกันของหน่วยความจำย่อยๆ จำนวนมากที่สะสมความรู้เอาไว้ ความรู้เหล่านี้จะได้จากการฝึกสอนไว้ก่อน เช่นการสอนให้รู้จักตัวอักษร “ก” ถึง “ฮ” โดยการส่งภาพตัวอักษรเหล่านี้เข้าไป พร้อมกับบอกว่ามีค่าเป็นรหัสตัวอักษรอะไร โครงข่ายประสาทเทียมจะเรียนรู้ถึงรูปแบบตัวอักษรที่หลากหลายของตัวอักษรตัวนั้น เพื่อว่าเวลาทำงานจริงจะได้มีความสามารถพอที่จะรับมือกับภาพตัวอักษรในหลายๆ รูปแบบ สิ่งที่สอนให้กับโครงข่ายประสาทเทียมไม่จำเป็นต้องเป็นรูปของตัวอักษรอย่างที่เราเห็นกันก็ได้ อินพุตที่ส่งให้มักจะผ่านขั้นตอนการสกัดลักษณะสำคัญ และกระบวนการประมวลผลเบื้องต้นอื่นๆ ก่อนเสมอ
==== ขบวนการประมวลผลขั้นปลาย (Post-Processing) ====
หลังจากที่ผ่านขั้นตอนการรู้จำแล้ว รูปตัวอักษรที่ถูกส่งเข้าไปจะได้ผลลัพธ์ออกมาเป็นรหัสตัวอักษร ซึ่งก็ไม่ได้หมายความว่าเอาต์พุตที่ได้มาจะถูกต้องทั้งหมด ไม่มีผลิตภัณฑ์โอซีอาร์ตัวใด ไม่ว่าจะเป็นภาษาใดก็ตามที่รับรองความถูกต้อง 100 % ดังนั้นเพื่อเพิ่มความถูกต้องให้แก่โปรแกรมจึงได้มีการเสริมส่วนการตรวจสอบและแก้ไขข้อความเข้ามา โปรแกรมส่วนนี้มักจะทำงานเกี่ยวกับการตรวจสอบความถูกต้องของการสะกดคำและไวยากรณ์ภาษา โดยมักจะใช้พจนานุกรมมาช่วยในการตรวจสอบคำผิด ซึ่งอาจแก้ไขให้โดยอัตโนมัติหรือแสดงเครื่องหมายบางอย่างเพื่อบอกให้ผู้ใช้ทราบว่าคำดังกล่าวอาจไม่ถูกต้อง ซึ่งผู้ใช้อาจแก้หรือไม่แก้ก็ขึ้นกับการตัดสินใจของผู้ใช้เอง นอกเหนือไปจากการตรวจสอบความถูกต้องระดับคำแล้ว บางโปรแกรมยังมีความสามารถตรวจสอบไวยากรณ์ในระดับประโยคได้ด้วย 
ส่วนขบวนการประมวลผลขั้นปลายในโปรแกรมโอซีอาร์เป็นส่วนที่มีความสำคัญมาก ลำพังแต่ความสามารถของส่วนการรู้จำนั้นไม่สามารถไปถึงระดับที่ผู้ใช้ยอมรับได้ (ซึ่งที่ต้องการจริงๆ คือ 100%) ดังนั้นส่วนนี้สามารถเพิ่มอัตราความถูกต้องให้แก่โปรแกรมได้ โดยเฉพาะในส่วนที่นอกเหนือจากความสามารถของส่วนการรู้จำ เช่น ตัวอักษรที่เปรอะเปื้อนมากๆ หรือตัวอักษรที่ติดหรือขาด เป็นต้น
== เครื่องจำอักขระด้วยแสงเปรียบเทียบกับแบบดิจิทัล ==
เครื่องจำอักขระด้วยแสง (ใช้เทคนิคเกี่ยวกับแสงเช่นเดียวกับกระจกและเลนส์) และเครื่องจำอักขระแบบดิจิทัล
(ใช้เครื่องสแกนเนอร์และขั้นตอนทางคอมพิวเตอร์) ซึ่งในปัจจุบัน เครื่องจำอักขระด้วยแสงได้ถูกพัฒนาให้ครอบคลุม
การจำตัวอักษรได้ดีกว่าเดิม
== ระบบสำหรับการจดจำ การพิมพ์ลายมือ ==
ระบบสำหรับการจดจำ การพิมพ์ลายมือ บนธุรกิจการบินได้รับความสำเร็จด้วยดีในปีที่ผ่านมา    โดยนำอุปกรณ์เหล่านี้เข้ามาช่วยได้แก่  พาล์มไพลอท (Palm Pilot) และ พีดีเอ (Personal Digital Assistant) โดย Apple Newton เป็นผู้บุกเบิกเทคโนโลยีนี้ วิธีใช้อุปกรณ์เหล่านี้จะมีการเปรียบเทียบข้อเท็จจริงเกี่ยวกับคำสั่ง ความเร็ว และคำแนะนำ เมื่อข้อมูลนำได้ถูกรับทราบอีกด้วย      ผู้ใช้สามารถฝึกฝนเพื่อใช้รูปร่างจดหมายอย่างจำเพาะเจาะจงเท่านั้น
== การฝึกหัด ==
ระบบที่เร่งด่วนต้องการที่จะอ่านแบบตัวอักษร หรือ ฟอนต์ อย่างจำเพาะเจาะจง ในเวลานี้แม้ระบบอัจฉริยะ จะสามารถสังเกตเห็นแบบอักษรมากๆด้วยความแม่นยำในระดับสูง  ระบบจึงเหมาะแก่การทำสำเนาผลลัพธ์ ที่ใกล้เคียงกับการสแกนรูปภาพ   คอลัมน์และอื่นๆ  ซึ่งไม่เป็นส่วนประกอบของต้นฉบับ
thread_title:  ส่วนที่นำออกจากบทความ - ต้องการตรวจลิขสิทธิ์ 

message: thumb|300px|right|หลักการทำงานเครื่องเรทินาสแกนของ George Carey [http://www.diac.upm.es/acceso_profesores/asignaturas/television/stv/historiatv/] 
ระบบโอซีอาร์ไม่ใช่เรื่องใหม่สำหรับกระบวนการประมวลผลข้อมูล เนื่องจากความพยายามที่จะพัฒนาเครื่องช่วยอ่านตัวอักษรอัตโนมัติเพื่อช่วยงานมนุษย์นั้น มีการคิดค้นกันมากกว่าร้อยปีแล้ว  ถ้าหากจะกล่าวถึงประวัติของโอซีอาร์ ก็น่าจะเริ่มต้นกันที่คำว่า optical ซึ่งบอกถึงหลักการทำงานของระบบที่เกี่ยวข้องกับการประมวลผลของภาพอิเล็กทรอนิกส์ที่ได้มาจากเครื่องสแกน ซึ่งมีจุดเริ่มต้นในปี พ.ศ. 2416 โดยพนักงานโทรเลขชาวไอแลนด์ชื่อ Joseph May ได้ค้นพบคุณสมบัติทางโฟโตอิเล็กทริค (photoelectric) จากซีลีเนียม (selenium) โดยบังเอิญ จากนั้นในปี พ.ศ. 2418 ในสหรัฐอเมริกา George Carey ได้นำเสนอเครื่องสแกนเรทินา (retina scanner) ที่สามารถถ่ายทอดสัญญาณภาพจากแผงโฟโตอิเล็กทริคเซลที่รับแสงสะท้อนจากภาพแล้วแสดงผลที่แผงอีกด้านหนึ่ง
และต่อมาในปี พ.ศ. 2427 Paul Nipkow ชาวเยอรมันได้คิดค้นเครื่องสแกนภาพแบบใหม่ที่ใช้จานหมุนที่มีรูเล็กๆ เรียงกันในลักษณะเป็นก้นหอยเรียกว่านิพโกว์ดิสก์ (Nipkow disk) ในการอ่านภาพ ซึ่งถือเป็นประดิษฐ์กรรมต้นแบบของเครื่องสแกนรวมทั้งเทคโนโลยีการถ่ายทอดภาพของวงการโทรทัศน์ในปัจจุบันอีกด้วย 
เครื่องอ่านตัวอักษรเครื่องแรกที่มีการรายงานไว้เป็นเครื่องที่ทำขึ้นเพื่อช่วยคนพิการทางตาในการอ่านหนังสือซึ่งเป็นผลงานของนักวิทยาศาสตร์ชาวรัสเซียชื่อ Tyurin สร้างขึ้นในปี พ.ศ. 2443 จากนั้นในปี พ.ศ. 2472 G. Tausheck ได้จดสิทธิบัตรระบบโอซีอาร์เป็นครั้งแรกในประเทศเยอรมนี และต่อมาปี พ.ศ. 2476 ในอเมริกา P.W. Handel ก็ได้จดสิทธิบัตรโอซีอาร์ของตนเองเช่นกัน ถึงแม้เริ่มแรกระบบโอซีอาร์ดังกล่าวจะมีลักษณะและความสามารถที่เทียบไม่ได้กับระบบโอซีอาร์ที่เราใช้กันอยู่ในปัจจุบัน แต่แนวความคิดพื้นฐานของระบบดังกล่าวก็ยังคงใช้กันอยู่จนกระทั่งถึงทุกวันนี้
ความแตกต่างของระบบโอซีอาร์ในยุคแรกๆ ที่เห็นได้ชัดคือ  ลักษณะที่เป็นชุดอุปกรณ์ฮาร์ดแวร์ที่พ่วงติดกับเครื่องสแกน แทนที่จะเป็นชุดซอฟต์แวร์ที่ใช้กับเครื่องคอมพิวเตอร์แบบตั้งโต๊ะ (การกล่าวถึงชุดอุปกรณ์ฮาร์ดแวร์โอซีอาร์ผู้เขียนขอใช้คำว่า “ระบบโอซีอาร์” แทนที่จะเป็น “โปรแกรมโอซีอาร์“ ซึ่งจะหมายถึงชุดซอฟต์แวร์โอซีอาร์ที่ใช้กับเครื่องคอมพิวเตอร์ ทั้งนี้เพื่อความชัดเจนในการใช้คำ) โดยโอซีอาร์ยุคแรกๆ จะมีลักษณะออกไปทางเครื่องจักรกล ซึ่งต่อมาได้รับการพัฒนาเป็นเครื่องอิเล็กทรอนิกส์แบบอนาล็อก แล้วจึงมาเป็นระบบดิจิทัลอย่างเช่นในปัจจุบัน  ทุกวันนี้ชุดอุปกรณ์ฮาร์ดแวร์โอซีอาร์เช่นนี้ก็ยังคงมีการผลิตอยู่และมีราคาสูงมาก เพื่อใช้ในการแปลงเอกสารหรือแบบฟอร์มเฉพาะด้านที่มีปริมาณมากๆ เครื่องพวกนี้จะมีประสิทธิภาพการทำงานสูง ตัวอย่างการใช้งานโอซีอาร์แบบนี้ ได้แก่ ระบบอ่านรหัสไปรษณีย์เพื่อแยกจดหมายอัตโนมัติ และระบบสำหรับอ่านหมายเลขเช็ค เป็นต้น
การวิจัยและพัฒนาโอซีอาร์ได้ก้าวหน้าเป็นอย่างมากหลังจากที่ได้มีการประดิษฐ์คอมพิวเตอร์ขึ้นมาใช้ ศักยภาพเชิงการคำนวณและการทำงานแบบดิจิทัลมีผลต่อการออกแบบและพัฒนาโอซีอาร์ทั้งด้านฮาร์ดแวร์ และอัลกอริธึม ทำให้สามารถนำวิธีการใหม่ๆ ที่ดีกว่ามาใช้ ตัวอย่างโอซีอาร์รุ่นแรกๆ ที่นำเอาเทคนิคทางด้านดิจิทัลมาใช้ได้แก่ ERA (Electric Reading Automation) ของบริษัท Solatron Electronics Group Ltd. ซึ่งใช้ประโยชน์จากพื้นที่หน่วยความจำของคอมพิวเตอร์ที่มีลักษณะสองมิติมาช่วยในการทำงาน  ซึ่งก่อนหน้านี้ทำได้ยาก โดยส่วนใหญ่มักจะต้องแปลงภาพตัวอักษรซึ่งเป็นรูปสองมิติให้เป็นข้อมูลแบบหนึ่งมิติก่อนการประมวลผล ส่วนตัวอักษรที่ ERA อ่านได้นั้น จะเป็นเฉพาะตัวเลขเท่านั้น อีกตัวอย่างหนึ่งของเครื่องแบบดิจิทัลคือระบบโอซีอาร์ของ Electrotechnical Laboratory (ETL) ของญี่ปุ่น โดยคอมพิวเตอร์ ETLMark IV กับเทคนิคที่คล้ายกับ ERA  แต่สามารถอ่านได้ทั้งตัวเลขและตัวอักษรทั้งหมด 72 ตัวอักษร นอกจากนั้นยังมีโอซีอาร์ของบริษัท RCA ที่สามารถทำงานได้กับฟอนต์ภาษาอังกฤษและรัสเซีย โดย RCA ซึ่งเป็นผู้นำทางด้านหลอดอิเล็กตรอน (electron tube) ณ เวลานั้น ได้ใช้เทคโนโลยีด้านนี้ของตนร่วมกับเทคโนโลยีด้านอิเล็กทรอนิกส์ในการวิจัยโอซีอาร์ ซึ่งได้ผลเป็นที่น่าพอใจ แต่การวิจัยที่ว่านี้มิได้มีการสานต่อเพื่อผลิตเป็นผลิตภัณฑ์ออกสู่ตลาด  
=== ประวัติโอซีอาร์เชิงพาณิชย์ ===
เนื่องจากความต้องการของตลาดที่มีต่อโอซีอาร์เพื่อใช้ในการนำเข้าข้อมูลนั้นเพิ่มสูงขึ้นเรื่อยๆ จึงมีการผลิตระบบโอซีอาร์เป็นสินค้าออกสู่ตลาดมาอย่างต่อเนื่องมากมายหลายรุ่น ซึ่งระบบต่างๆ เหล่านี้มีคุณสมบัติและความสามารถที่แตกต่างกัน ขึ้นอยู่กับประสิทธิภาพของฮาร์ดแวร์และความก้าวหน้าทางเทคโนโลยีในแต่ละยุคสมัย ซึ่งเราอาจจะแบ่งผลิตภัณฑ์โอซีอาร์ในเชิงพาณิชย์ได้เป็นยุคๆ ตามคุณสมบัติและความสามารถของระบบโอซีอาร์ในแต่ละช่วงเวลาโดยสามารถแบ่งได้เป็น 3 ยุคได้แก่
==== ยุคที่ 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 ====
คุณลักษณะที่สำคัญของระบบโอซีอาร์ยุคนี้คือความสามารถในการรู้จำลายมือเขียน โดยในช่วงแรกๆ จะจำกัดไว้เฉพาะตัวเลขเท่านั้น ยุคนี้มีช่วงระยะเวลาอยู่ระหว่างกลางทศวรรษที่ 60 ถึงต้นทศวรรษที่ 70 ระบบโอซีอาร์ที่อยู่ในกลุ่มนี้ก็ได้แก่ IBM 1287 เป็นเครื่องที่รวมฮาร์ดแวร์แบบดิจิทัลกับอนาลอกไว้ด้วยกัน นอกจากลายมือเขียนแล้วโอซีอาร์ในยุคนี้ยังสามารถอ่านตัวอักษรที่พิมพ์มาจากเครื่องพิมพ์ปกติด้วย ซึ่งระบบที่จัดอยู่ในกลุ่มได้แก่ RETINA โดยตัวอักษรลายมือที่อ่านได้จะเป็นเฉพาะตัวเลขและตัวอักษร C, S, T, X, Z, +, - เท่านั้น ส่วนตัวอักษรจากเครื่องพิมพ์นั้นสามารถอ่านตัวอักษรพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษอีกสี่ตัว รวมเป็น 44 ตัว นอกจากนั้นผู้ใช้ยังสามารถเลือกฟอนต์ที่จะอ่านได้ด้วย  RETINA ถือเป็นโอซีอาร์ที่มีประสิทธิภาพมากระบบหนึ่งในขณะนั้น โดยสามารถอ่านตัวอักษรได้ 2,400 ตัวต่อวินาที
==== ยุคที่ 3 ====
ยุคนี้ให้ความสนใจกับเอกสารตัวพิมพ์ที่มีคุณภาพต่ำและตัวอักษรลายมือเขียนที่มีกลุ่มตัวอักษรหลากหลายมากขึ้น เช่น ตัวอักษรภาษาจีน เป็นต้น โดยที่โอซีอาร์เชิงพาณิชย์ของยุคนี้ออกสู่ท้องตลาดในช่วงประมาณ พ.ศ. 2518 ถึง พ.ศ. 2528 เราอาจจะแบ่งโอซีอาร์ยุคนี้ออกเป็นกลุ่มย่อยลงไปได้อีกดัง
# โอซีอาร์สำหรับเอกสารคุณภาพต่ำ เป็นโอซีอาร์ที่สามารถอ่านเอกสารซึ่งมีปัญหาเนื่องมาจากรอยเปื้อน (noise) และตัวอักษรที่ไม่ชัดเจน ตัวอย่างของโอซีอาร์ ในกลุ่มนี้ได้แก่ OCR-V100 ของ Toshiba และ IBM 1975 
# ระบบอ่านเอกสารลายมือเขียน โดยเน้นที่เอกสารที่มีทั้งตัวเลขและตัวอักษรเพื่อใช้ในการแปลงข้อมูลที่ได้มาจากแบบฟอร์มต่างๆ 
# ชุดซอฟต์แวร์ แทนที่จะพัฒนาระบบที่ประกอบด้วยอุปกรณ์ฮาร์ดแวร์เช่นแต่ก่อน โอซีอาร์สมัยใหม่เริ่มมีการผลิตเป็นซอฟต์แวร์สำหรับใช้กับเครื่องพีซี โดยอาจจะพ่วงมากับเครื่องสแกนแบบตั้งโต๊ะหรือมือถือ ซอฟต์แวร์เหล่านี้จะมีราคาที่ถูกลงตามลำดับ ซอฟต์แวร์โอซีอาร์ที่ค่อนข้างมีชื่อเสียง ได้แก่ Omnipage ของบริษัท  Caere Corporation , WordScan ของ Calera และ Discover ของ Xerox Image System เป็นต้น 
=== ประวัติการวิจัยและพัฒนาโอซีอาร์ภาษาไทย ===
ในประเทศไทยได้มีการวิจัยและพัฒนาโอซีอาร์สำหรับภาษาไทยมานานประมาณ 10 ปีแล้ว เนื่องจากเทคโนโลยีโอซีอาร์มีความสำคัญต่อกระบวนการประมวลผลข้อมูลในระบบคอมพิวเตอร์เป็นอย่างมาก แต่ภาษาไทยมีลักษณะเฉพาะที่ต่างออกไปจากภาษาอื่นๆ ดังนั้นจึงมีความจำเป็นอย่างมากที่ประเทศไทยจะต้องพัฒนาเทคโนโลยีด้านนี้สำหรับภาษาไทยโดยเฉพาะ การวิจัยส่วนใหญ่เป็นการวิจัยภายในสถาบันการศึกษา และมักจะถูกเลือกเป็นหัวข้อวิทยานิพนธ์ของนักศึกษาทั้งระดับปริญญาโทและปริญาเอกอยู่เสมอ แต่สถาบันศึกษาที่ให้ความสนใจในการวิจัยอย่างจริงจังและต่อเนื่องนั้น มีอยู่จำนวนจำกัด ซึ่งได้แก่ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบังโดย ดร. ชม  กิ้มปาน, สถาบันบัณฑิตพัฒนบริหารศาสตร์ โดย ดร. พิพัฒน์ หิรัญวนิชกร และ จุฬาลงกรณ์มหาวิทยาลัย โดย ดร. ชิดชนก เหลือสินทรัพย์ นอกจากสถาบันทางการศึกษาดังกล่าวแล้ว ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติซึ่งเป็นหน่วยงานทางการวิจัยภาครัฐก็เล็งเห็นความสำคัญของเทคโนโลยีโอซีอาร์ จึงได้ดำเนินโครงการวิจัยด้านนี้อย่างจริงจังภายใต้การดูแลของ ดร. ทวีศักดิ์ กออนันตกูล และ ดร. จุฬารัตน์ ตันประเสริฐ ซึ่งงานวิจัยนี้ได้รับผลสำเร็จและนำไปสู่การผลิตเป็นโปรแกรมโอซีอาร์ภาษาไทยเชิงพาณิชย์ชื่อ “อ่านไทย” ในเวลาต่อมา
การวิจัยโอซีอาร์ในประเทศไทยนั้นมีทั้งสำหรับแบบตัวพิมพ์และตัวเขียน สำหรับตัวเขียนก็มีการรู้จำทั้งแบบ ออนไลน์และออฟไลน์ ถึงแม้การวิจัยโอซีอาร์ภาษาอื่นๆ เช่น อังกฤษ และญี่ปุ่น  เป็นต้น จะมีความก้าวหน้าและได้รับความสำเร็จในการนำมาใช้งานอย่างกว้างขวางแล้วก็ตาม แต่การประยุกต์ใช้เทคนิคจากภาษาอื่นมาใช้กับภาษาไทยโดยตรงนั้นไม่สามารถทำได้ จำเป็นต้องมีการคิดค้นวิธีการใหม่ที่เหมาะสมกับภาษาไทย อย่างไรก็ตามงานวิจัยโอซีอาร์สำหรับภาษาไทยก็ประสบความสำเร็จในระดับหนึ่ง และมีซอฟต์แวร์โอซีอาร์เชิงพาณิชย์ออกมาสู่ตลาดแล้วจำนวนหนึ่ง แต่ทั้งหมดยังเน้นหนักไปที่ตัวพิมพ์ และยังมีข้อจำกัดเรื่องฟอนต์ที่สามารถอ่านได้ โดยระดับความถูกต้องของ โอซีอาร์ภาษาไทยจะอยู่ในช่วง 90 – 99 % ซึ่งยังห่างจากความสามารถของโอซีอาร์ภาษาอังกฤษและภาษาอื่นๆ ที่มีระดับความถูกต้องสูงถึง 99.9 % ทั้งนี้ส่วนหนึ่งเนื่องมาจากลักษณะของตัวอักษรภาษาไทยที่มีตัวคล้ายกันแต่ทำหน้าที่แตกต่างกันอยู่หลายตัว รวมทั้งประโยคภาษาไทยที่ประกอบไปด้วยตัวอักษร 4 ระดับ เหล่านี้เป็นปัญหาที่ยากสำหรับการพัฒนาโอซีอาร์ภาษาไทยให้ได้ความถูกต้องที่ 99.9 %
thread_title:  ประวัติ 

message: เนื่องจากความต้องการของตลาดที่มีต่อโอซีอาร์เพื่อใช้ในการนำเข้าข้อมูลนั้นเพิ่มสูงขึ้นเรื่อยๆ จึงมีการผลิตระบบโอซีอาร์เป็นสินค้าออกสู่ตลาดมาอย่างต่อเนื่องมากมายหลายรุ่น ซึ่งระบบต่างๆ เหล่านี้มีคุณสมบัติและความสามารถที่แตกต่างกัน ขึ้นอยู่กับประสิทธิภาพของฮาร์ดแวร์และความก้าวหน้าทางเทคโนโลยีในแต่ละยุคสมัย ซึ่งเราอาจจะแบ่งผลิตภัณฑ์โอซีอาร์ในเชิงพาณิชย์ได้เป็นยุคๆ ตามคุณสมบัติและความสามารถของระบบโอซีอาร์ในแต่ละช่วงเวลาโดยสามารถแบ่งได้เป็น 3 ยุคได้แก่
==== ยุคที่ 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 ====
คุณลักษณะที่สำคัญของระบบโอซีอาร์ยุคนี้คือความสามารถในการรู้จำลายมือเขียน โดยในช่วงแรกๆ จะจำกัดไว้เฉพาะตัวเลขเท่านั้น ยุคนี้มีช่วงระยะเวลาอยู่ระหว่างกลางทศวรรษที่ 60 ถึงต้นทศวรรษที่ 70 ระบบโอซีอาร์ที่อยู่ในกลุ่มนี้ก็ได้แก่ IBM 1287 เป็นเครื่องที่รวมฮาร์ดแวร์แบบดิจิทัลกับอนาลอกไว้ด้วยกัน นอกจากลายมือเขียนแล้วโอซีอาร์ในยุคนี้ยังสามารถอ่านตัวอักษรที่พิมพ์มาจากเครื่องพิมพ์ปกติด้วย ซึ่งระบบที่จัดอยู่ในกลุ่มได้แก่ RETINA โดยตัวอักษรลายมือที่อ่านได้จะเป็นเฉพาะตัวเลขและตัวอักษร C, S, T, X, Z, +, - เท่านั้น ส่วนตัวอักษรจากเครื่องพิมพ์นั้นสามารถอ่านตัวอักษรพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษอีกสี่ตัว รวมเป็น 44 ตัว นอกจากนั้นผู้ใช้ยังสามารถเลือกฟอนต์ที่จะอ่านได้ด้วย  RETINA ถือเป็นโอซีอาร์ที่มีประสิทธิภาพมากระบบหนึ่งในขณะนั้น โดยสามารถอ่านตัวอักษรได้ 2,400 ตัวต่อวินาที
==== ยุคที่ 3 ====
ยุคนี้ให้ความสนใจกับเอกสารตัวพิมพ์ที่มีคุณภาพต่ำและตัวอักษรลายมือเขียนที่มีกลุ่มตัวอักษรหลากหลายมากขึ้น เช่น ตัวอักษรภาษาจีน เป็นต้น โดยที่โอซีอาร์เชิงพาณิชย์ของยุคนี้ออกสู่ท้องตลาดในช่วงประมาณ พ.ศ. 2518 ถึง พ.ศ. 2528 เราอาจจะแบ่งโอซีอาร์ยุคนี้ออกเป็นกลุ่มย่อยลงไปได้อีกดัง
# โอซีอาร์สำหรับเอกสารคุณภาพต่ำ เป็นโอซีอาร์ที่สามารถอ่านเอกสารซึ่งมีปัญหาเนื่องมาจากรอยเปื้อน (noise) และตัวอักษรที่ไม่ชัดเจน ตัวอย่างของโอซีอาร์ ในกลุ่มนี้ได้แก่ OCR-V100 ของ Toshiba และ IBM 1975 
# ระบบอ่านเอกสารลายมือเขียน โดยเน้นที่เอกสารที่มีทั้งตัวเลขและตัวอักษรเพื่อใช้ในการแปลงข้อมูลที่ได้มาจากแบบฟอร์มต่างๆ 
# ชุดซอฟต์แวร์ แทนที่จะพัฒนาระบบที่ประกอบด้วยอุปกรณ์ฮาร์ดแวร์เช่นแต่ก่อน โอซีอาร์สมัยใหม่เริ่มมีการผลิตเป็นซอฟต์แวร์สำหรับใช้กับเครื่องพีซี โดยอาจจะพ่วงมากับเครื่องสแกนแบบตั้งโต๊ะหรือมือถือ ซอฟต์แวร์เหล่านี้จะมีราคาที่ถูกลงตามลำดับ ซอฟต์แวร์โอซีอาร์ที่ค่อนข้างมีชื่อเสียง ได้แก่ Omnipage ของบริษัท  Caere Corporation , WordScan ของ Calera และ Discover ของ Xerox Image System เป็นต้น
thread_title:  ประวัติโอซีอาร์เชิงพาณิชย์ 

message: ในช่วงปี พ.ศ. 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
thread_title:  ยุคที่ 1 

message: คุณลักษณะที่สำคัญของระบบโอซีอาร์ยุคนี้คือความสามารถในการรู้จำลายมือเขียน โดยในช่วงแรกๆ จะจำกัดไว้เฉพาะตัวเลขเท่านั้น ยุคนี้มีช่วงระยะเวลาอยู่ระหว่างกลางทศวรรษที่ 60 ถึงต้นทศวรรษที่ 70 ระบบโอซีอาร์ที่อยู่ในกลุ่มนี้ก็ได้แก่ IBM 1287 เป็นเครื่องที่รวมฮาร์ดแวร์แบบดิจิทัลกับอนาลอกไว้ด้วยกัน นอกจากลายมือเขียนแล้วโอซีอาร์ในยุคนี้ยังสามารถอ่านตัวอักษรที่พิมพ์มาจากเครื่องพิมพ์ปกติด้วย ซึ่งระบบที่จัดอยู่ในกลุ่มได้แก่ RETINA โดยตัวอักษรลายมือที่อ่านได้จะเป็นเฉพาะตัวเลขและตัวอักษร C, S, T, X, Z, +, - เท่านั้น ส่วนตัวอักษรจากเครื่องพิมพ์นั้นสามารถอ่านตัวอักษรพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษอีกสี่ตัว รวมเป็น 44 ตัว นอกจากนั้นผู้ใช้ยังสามารถเลือกฟอนต์ที่จะอ่านได้ด้วย  RETINA ถือเป็นโอซีอาร์ที่มีประสิทธิภาพมากระบบหนึ่งในขณะนั้น โดยสามารถอ่านตัวอักษรได้ 2,400 ตัวต่อวินาที
thread_title:  ยุคที่ 2 

message: ยุคนี้ให้ความสนใจกับเอกสารตัวพิมพ์ที่มีคุณภาพต่ำและตัวอักษรลายมือเขียนที่มีกลุ่มตัวอักษรหลากหลายมากขึ้น เช่น ตัวอักษรภาษาจีน เป็นต้น โดยที่โอซีอาร์เชิงพาณิชย์ของยุคนี้ออกสู่ท้องตลาดในช่วงประมาณ พ.ศ. 2518 ถึง พ.ศ. 2528 เราอาจจะแบ่งโอซีอาร์ยุคนี้ออกเป็นกลุ่มย่อยลงไปได้อีกดัง
# โอซีอาร์สำหรับเอกสารคุณภาพต่ำ เป็นโอซีอาร์ที่สามารถอ่านเอกสารซึ่งมีปัญหาเนื่องมาจากรอยเปื้อน (noise) และตัวอักษรที่ไม่ชัดเจน ตัวอย่างของโอซีอาร์ ในกลุ่มนี้ได้แก่ OCR-V100 ของ Toshiba และ IBM 1975 
# ระบบอ่านเอกสารลายมือเขียน โดยเน้นที่เอกสารที่มีทั้งตัวเลขและตัวอักษรเพื่อใช้ในการแปลงข้อมูลที่ได้มาจากแบบฟอร์มต่างๆ 
# ชุดซอฟต์แวร์ แทนที่จะพัฒนาระบบที่ประกอบด้วยอุปกรณ์ฮาร์ดแวร์เช่นแต่ก่อน โอซีอาร์สมัยใหม่เริ่มมีการผลิตเป็นซอฟต์แวร์สำหรับใช้กับเครื่องพีซี โดยอาจจะพ่วงมากับเครื่องสแกนแบบตั้งโต๊ะหรือมือถือ ซอฟต์แวร์เหล่านี้จะมีราคาที่ถูกลงตามลำดับ ซอฟต์แวร์โอซีอาร์ที่ค่อนข้างมีชื่อเสียง ได้แก่ Omnipage ของบริษัท  Caere Corporation , WordScan ของ Calera และ Discover ของ Xerox Image System เป็นต้น
thread_title:  ยุคที่ 3 

message: ในประเทศไทยได้มีการวิจัยและพัฒนาโอซีอาร์สำหรับภาษาไทยมานานประมาณ 10 ปีแล้ว เนื่องจากเทคโนโลยีโอซีอาร์มีความสำคัญต่อกระบวนการประมวลผลข้อมูลในระบบคอมพิวเตอร์เป็นอย่างมาก แต่ภาษาไทยมีลักษณะเฉพาะที่ต่างออกไปจากภาษาอื่นๆ ดังนั้นจึงมีความจำเป็นอย่างมากที่ประเทศไทยจะต้องพัฒนาเทคโนโลยีด้านนี้สำหรับภาษาไทยโดยเฉพาะ การวิจัยส่วนใหญ่เป็นการวิจัยภายในสถาบันการศึกษา และมักจะถูกเลือกเป็นหัวข้อวิทยานิพนธ์ของนักศึกษาทั้งระดับปริญญาโทและปริญาเอกอยู่เสมอ แต่สถาบันศึกษาที่ให้ความสนใจในการวิจัยอย่างจริงจังและต่อเนื่องนั้น มีอยู่จำนวนจำกัด ซึ่งได้แก่ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบังโดย ดร. ชม  กิ้มปาน, สถาบันบัณฑิตพัฒนบริหารศาสตร์ โดย ดร. พิพัฒน์ หิรัญวนิชกร และ จุฬาลงกรณ์มหาวิทยาลัย โดย ดร. ชิดชนก เหลือสินทรัพย์ นอกจากสถาบันทางการศึกษาดังกล่าวแล้ว ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติซึ่งเป็นหน่วยงานทางการวิจัยภาครัฐก็เล็งเห็นความสำคัญของเทคโนโลยีโอซีอาร์ จึงได้ดำเนินโครงการวิจัยด้านนี้อย่างจริงจังภายใต้การดูแลของ ดร. ทวีศักดิ์ กออนันตกูล และ ดร. จุฬารัตน์ ตันประเสริฐ ซึ่งงานวิจัยนี้ได้รับผลสำเร็จและนำไปสู่การผลิตเป็นโปรแกรมโอซีอาร์ภาษาไทยเชิงพาณิชย์ชื่อ “อ่านไทย” ในเวลาต่อมา
การวิจัยโอซีอาร์ในประเทศไทยนั้นมีทั้งสำหรับแบบตัวพิมพ์และตัวเขียน สำหรับตัวเขียนก็มีการรู้จำทั้งแบบ ออนไลน์และออฟไลน์ ถึงแม้การวิจัยโอซีอาร์ภาษาอื่นๆ เช่น อังกฤษ และญี่ปุ่น  เป็นต้น จะมีความก้าวหน้าและได้รับความสำเร็จในการนำมาใช้งานอย่างกว้างขวางแล้วก็ตาม แต่การประยุกต์ใช้เทคนิคจากภาษาอื่นมาใช้กับภาษาไทยโดยตรงนั้นไม่สามารถทำได้ จำเป็นต้องมีการคิดค้นวิธีการใหม่ที่เหมาะสมกับภาษาไทย อย่างไรก็ตามงานวิจัยโอซีอาร์สำหรับภาษาไทยก็ประสบความสำเร็จในระดับหนึ่ง และมีซอฟต์แวร์โอซีอาร์เชิงพาณิชย์ออกมาสู่ตลาดแล้วจำนวนหนึ่ง แต่ทั้งหมดยังเน้นหนักไปที่ตัวพิมพ์ และยังมีข้อจำกัดเรื่องฟอนต์ที่สามารถอ่านได้ โดยระดับความถูกต้องของ โอซีอาร์ภาษาไทยจะอยู่ในช่วง 90 – 99 % ซึ่งยังห่างจากความสามารถของโอซีอาร์ภาษาอังกฤษและภาษาอื่นๆ ที่มีระดับความถูกต้องสูงถึง 99.9 % ทั้งนี้ส่วนหนึ่งเนื่องมาจากลักษณะของตัวอักษรภาษาไทยที่มีตัวคล้ายกันแต่ทำหน้าที่แตกต่างกันอยู่หลายตัว รวมทั้งประโยคภาษาไทยที่ประกอบไปด้วยตัวอักษร 4 ระดับ เหล่านี้เป็นปัญหาที่ยากสำหรับการพัฒนาโอซีอาร์ภาษาไทยให้ได้ความถูกต้องที่ 99.9 %
thread_title:  ประวัติการวิจัยและพัฒนาโอซีอาร์ภาษาไทย 

message: ผลิตภัณฑ์ OCR ที่มีใช้อยู่ในขณะนี้อาศัยเทคโนโลยีที่มีขั้นตอนการทำงานที่ยุ่งยากซับซ้อนมาก  กว่าเอกสารที่สแกนเข้าไปจะถูกแปลงออกมาเป็นตัวอักษรอย่างที่ต้องการ (ซึ่งบางครั้งก็ได้อะไรที่ไม่ต้องการออกมาด้วย!) รายละเอียดของขั้นตอนการทำงานเหล่านี้จะแตกต่างกันออกไปสำหรับโปรแกรมโอซีอาร์แต่ละตัว ซึ่งส่วนหนึ่งก็เป็นเรื่องรายละเอียดทางด้านเทคนิคที่เป็นกลเม็ดเคล็ดลับของแต่ละบริษัท แต่อีกส่วนก็ขึ้นกับลักษณะงานเฉพาะด้านของโปรแกรมนั้น ทั้งนี้เนื่องจากโปรแกรมประเภทโอซีอาร์อาจแบ่งออกได้เป็นหลายกลุ่ม ซึ่งมีวัตถุประสงค์เพื่อนำไปใช้กับงานที่มีลักษณะแตกต่างกัน ตัวอย่างเช่น โอซีอาร์สำหรับลายมือเขียน (Hand Written OCR) ก็มักจะใช้เทคนิคที่ต่างจากโอซีอาร์สำหรับตัวพิมพ์ (Printed Text OCR) และอื่นๆ ซึ่งเราจะกล่าวถึงรายละเอียดของโอซีอาร์แต่ละกลุ่มในลำดับต่อไป นอกจากนั้นลักษณะของภาษาก็มีอิทธิพลต่อการเลือกใช้เทคนิคด้วย เนื่องจากความยากง่ายและรูปร่างตัวอักษรของแต่ละภาษาแตกต่างกัน ดังนั้นเทคนิคที่ใช้กับภาษาไทยจึงต่างจากภาษาอื่นๆ เช่น ภาษาอังกฤษ และภาษาจีน ซึ่งเงื่อนไขต่างๆ เหล่านี้เป็นเพียงส่วนหนึ่งของความซับซ้อนที่ส่งผลต่อกระบวนการทำงานที่เกิดขึ้นภายในโปรแกรม ทั้งนี้ยังมีส่วนอื่นๆ ที่เป็นข้อกำหนดในการเลือกวิธีการที่เหมาะสมสำหรับจัดการกับปัญหาที่หลากหลาย เพื่อจะได้โปรแกรมโอซีอาร์ที่ดีที่สุด 
ก่อนที่จะกล่าวถึงรายละเอียดทางด้านเทคนิคเราควรทำความเข้าใจกับคำว่า “Optical Character Recognition” หรือ OCR กันก่อน ซึ่งถ้าจะแปลเป็นภาษาไทยอย่างตรงไปตรงมา ก็คงจะได้ว่า “การรู้จำตัวอักษรโดยการมองเห็น (ภาพ) ” ซึ่งเห็นได้ชัดว่าถ้าจะอธิบายให้คนที่ไม่รู้จักโอซีอาร์ฟัง แล้วเข้าใจด้วยละก็ จำเป็นจะต้องมาแปลให้เป็นภาษาไทยกันอีกที แบบที่จะสามารถเข้าใจกันได้ง่ายๆกว่านี้ ฉะนั้นเราน่าจะมาลองแปลกันใหม่ดีกว่า 
เริ่มจากคำว่า optical ซึ่งในที่นี้หมายถึงการอ่านภาพ (ตัวอักษร) ด้วยอุปกรณ์ตรวจจับความเข้มของแสง ซึ่งก็คือเครื่องสแกนหรืออุปกรณ์ที่ทำงานในลักษณะเดียวกันนี้นั่นเอง ที่เป็นตัวรับข้อมูลเข้ามาเป็นรูปภาพ เพื่อนำไปสู่กระบวนการขั้นต่อๆ ไปของโปรแกรม การที่จะต้องมีคำนี้ประกอบอยู่ด้วยนั้น สืบเนื่องมาจากความพยายามที่จะสร้างเครื่องอ่านเอกสารอัตโนมัติในยุคแรกๆ ซึ่งนอกจากการอ่านข้อมูลแบบ optical แล้ว ยังมีการใช้วิธีการทางด้านแม่เหล็กและกลไกด้วย ถึงแม้ในปัจจุบันเราจะไม่ได้ใช้วิธีการทั้งสองแบบหลังนี้แล้วก็ตาม คำว่า optical ก็ยังคงอยู่ เพราะคนส่วนใหญ่จะรู้จักคำว่า OCR ในแง่เป็นคำเฉพาะที่หมายถึงซอฟต์แวร์ประเภทนี้ไปแล้ว ดังนั้นการที่จะเอาตัว O หรือ optical ออกนั้นคงจะสายเกินไป คำต่อมา character ก็คือตัวอักษร เพื่อระบุว่าตัวโปรแกรมนั้นทำงานกับอะไร ซึ่งก็คือตัวอักษรที่จะถูกแปลงจากรูปตัวอักษรมาเป็นรหัสตัวอักษร ที่เราสามารถใช้เวิร์ดโปรเซสเซอร์เปลี่ยนแปลงแก้ไขได้ (และต่อจากนี้ขอใช้คำว่ารูปตัวอักษรและรหัสตัวอักษรในการอ้างอิงถึงตัวอักษรทั้งสองแบบดังกล่าว เพื่อให้เกิดความเข้าใจที่ชัดเจนในการสื่อความหมาย) นอกจากนี้ชนิดของตัวอักษรยังใช้เป็นเกณฑ์ในการแบ่งประเภทของโอซีอาร์ด้วยเช่น ตัวพิมพ์ ตัวเขียน เป็นต้น ซึ่งจะกล่าวถึงในหัวข้อถัดไป ส่วนคำสุดท้าย recognition หมายถึงการบอกว่ารูปภาพของตัวอักษรนั้นเป็นตัวอะไร โดยแปลงให้เป็นรหัสตัวอักษรที่เครื่องคอมพิวเตอร์สามารถนำไปทำงานอื่นๆ ได้ เนื่องจากตัวอักษรตัวหนึ่งๆ สามารถเขียนได้หลากหลายลักษณะ ทำให้งานส่วนนี้กลายเป็นส่วนที่สำคัญที่สุดของระบบ และมีความยุ่งยากซับซ้อนมาก  ถึงตอนนี้ลองมาสรุปความหมายของคำว่า “optical character recognition” กันอีกครั้ง ซึ่งน่าจะแปลว่าโปรแกรมที่แปลงภาพตัวอักษรที่ได้จากเครื่องสแกนเนอร์ให้เป็นรหัสตัวอักษรที่เราสามารถเอาไปใช้กับเวิร์ดโปรเซสเซอร์เพื่อที่จะเปลี่ยนแปลงแก้ไขเพิ่มเติมได้ 
=== ประเภทของโอซีอาร์ ===
ตามที่ได้กล่าวไว้แล้วข้างต้นเราสามารถแบ่งโปรแกรมโอซีอาร์ได้เป็นกลุ่มๆ ตามลักษณะหรือแหล่งที่มาของตัวอักษรที่ตรงกับความสามารถของโปรแกรม ซึ่งเราสามารถจะแบ่งออกเป็นกลุ่มได้ดังนี้
center|เทคโนโลยีโอซีอาร์
==== การรู้จำตัวอักษรแบบออนไลน์ (On-line Character Recognition) ====
กลุ่มนี้จะต่างจากกลุ่มอื่นๆ ในแง่ของวิธีการอินพุตข้อมูล ซึ่งจะได้มาจากดิจิไทเซอร์หรือปากกาอิเล็กทรอนิกส์ที่ใช้กับเครื่องคอมพิวเตอร์มือถือ ส่วนการวิเคราะห์ตัวอักษรจะทำในขณะที่มีการลากเส้นเพื่อเขียนตัวอักษร (ออนไลน์) ซึ่งมีวิธีการทำงานที่ต่างจากวิธีการอื่นๆ ถ้าจะเทียบความยากง่ายกับการรู้จำลายมือเขียนแบบออฟไลน์ กลุ่มนี้จะง่ายกว่าเพราะจะได้ข้อมูลเพิ่มเติมเกี่ยวกับทิศทางและลำดับการลากเส้นมาช่วยด้วย โอซีอาร์กลุ่มนี้มักมาพร้อมกับอุปกรณ์การเขียนที่จะกำหนดพื้นที่ให้อินพุตข้อมูล โดยส่วนใหญ่มักต้องเขียนทีละตัวอักษร ความก้าวหน้าของเทคโนโลยีด้านนี้จะมีผลเป็นอย่างมากต่อการเจริญเติบโตของธุรกิจในวงการเครื่องคอมพิวเตอร์มือถือที่เป็นคอมพิวเตอร์ขนาดเล็ก ซึ่งต้องอาศัยการใส่อินพุตจากปากกาอิเล็กทรอนิกส์แทนคีย์บอร์ด
==== การรู้จำตัวอักษรแบบออฟไลน์ (Off-line Character Recognition) ====
อินพุตของระบบจะเป็นภาพของตัวอักษรที่ได้จากเครื่องสแกน  อาจจะเป็นตัวอักษรแบบพิมพ์  หรือแบบเขียน และอาจเป็นตัวอักษรแบบเดี่ยวๆ หรือติดกันเป็นกลุ่มตัวอักษร
===== ตัวอักษรโดด (Single Character) =====
คือกลุ่มของโปรแกรมโอซีอาร์ที่ทำงานกับภาพตัวอักษรฉบับที่เป็นตัวเดี่ยวๆ ไม่ได้เชื่อมติดกับตัวอื่น โปรแกรมกลุ่มนี้สามารถแบ่งย่อยออกเป็น  2 กลุ่ม ได้แก่ 
# การรู้จำตัวพิมพ์แบบฟอนต์เฉพาะ (Printed Fixed-Font Character Recognition) 
เป็นกลุ่มของโปรแกรมที่ใช้ได้กับตัวอักษรประเภทตัวพิมพ์ที่มีการกำหนดกลุ่มของฟอนต์ ซึ่งถือว่าอยู่ในระดับง่ายที่สุดในด้านการพัฒนาเทคนิคในการทำงานของโปรแกรม ถึงกระนั้นก็ตาม โปรแกรมในกลุ่มนี้ก็ยังประสบกับปัญหาที่เกิดจากเอกสารคุณภาพต่ำ ซึ่งจะส่งผลให้ได้ภาพที่เปรอะเปื้อน ทำให้ภาพตัวอักษรติดกันหรือขาดออกจากกัน เหล่านี้เป็นตัวการสำคัญที่ทำให้อัตราความถูกต้องของโปรแกรมลดลง
frame|center|ตัวอักษรที่มีส่วนเชื่อมติดกันและขาดจากกัน
# การรู้จำลายมือเขียนแบบตัวโดด (Isolated Handprint Character Recognition (ICR))
ตัวอักษรของกลุ่มนี้เป็นลายมือเขียนที่มักจะถูกกำหนดให้เขียนในกรอบที่จัดไว้ โดยเขียนทีละตัวแยกออกจากกัน ตัวอย่างงานที่เข้าข่ายกลุ่มนี้ได้แก่ โปรแกรมโอซีอาร์ที่ใช้แยกจดหมายจากรหัสไปรษณีย์ซึ่งเป็นตัวเลขจากลายมือเขียนเป็นต้น การรู้จำลายมือเขียนเป็นเรื่องยากมาก เพราะตัวอักษรแต่ละตัวที่เขียนโดยคนแต่ละคนมีความหลากหลายมาก ถึงแม้บางครั้งจะเป็นการเขียนโดยคนๆ เดียว การเขียนแต่ละครั้งก็ยังแตกต่างกัน ดังนั้นโปรแกรมพวกนี้มักมีข้อกำหนดบางอย่าง เช่น สามารถอ่านได้เฉพาะตัวเลข หรือสามารถอ่านลายมือของคนที่ได้ลองเขียนตัวอักษรตัวอย่างชุดหนึ่งให้โปรแกรมรู้จักก่อนเท่านั้น
===== การรู้จำลายมือแบบเขียนต่อเนื่อง (Script recognition) =====
กลุ่มนี้ได้โจทย์ในระดับที่ยากที่สุดในจำนวนตระกูลโอซีอาร์ทั้งหลาย เพราะตัวอักษรที่โปรแกรมจะต้องอ่านเป็นตัวอักษรที่เป็นลายมือเขียนโดยไม่มีข้อกำหนดใดๆ ผู้เขียนสามารถเขียนได้ตามธรรมชาติอย่างต่อเนื่อง ดังนั้นตัวอักษรที่ได้อาจมีเส้นที่ลากเชื่อมตัวอักษรหลายๆ ตัวให้ติดกัน และประกอบกับความแตกต่างอย่างมากของลายมือของคนแต่ละคน โปรแกรมในกลุ่มนี้บางทีเรียกว่าการรู้จำลายมือเขียนแบบอิสระ (freestyle handwriting recognition) ถึงแม้จะมีผลิตภัณฑ์โอซีอาร์กลุ่มนี้ออกสู่ตลาดบ้างแล้ว แต่หัวข้อนี้ก็ยังคงต้องการการวิจัยเพิ่มเติมอีกมาก
=== การรู้จำแบบ ===
โปรแกรมประเภทโอซีอาร์เป็นโปรแกรมที่ประยุกต์ความรู้ด้านการรู้จำแบบ (pattern recognition) ซึ่งต้องอาศัยเทคนิคการวิเคราะห์แยกแยะและการระบุชนิด โดยอินพุตของโปรแกรมมักจะต้องผ่านกระบวนการย่อยๆ อีกหลายขั้นขึ้นอยู่กับการประยุกต์ใช้ ได้แก่ การกรองข้อมูลแทรกซ้อน การปรับแต่งข้อมูล การเลือกตัดแบ่งพื้นที่ใช้งาน การสกัดลักษณะสำคัญ การจำแนกแยกแยะ การรู้จำ และอื่นๆ โดยในแต่ละขั้นตอนก็สามารถจะมีวิธีการได้อีกหลากหลายวิธี ขึ้นอยู่กับตัวข้อมูลและการประยุกต์ใช้ 
นอกจากโอซีอาร์แล้ว งานประยุกต์ที่แตกแขนงออกมาจากการรู้จำแบบได้แก่ การรับรู้ภาพของคอมพิวเตอร์, การวิเคราะห์การเกิดแผ่นดินไหว, การแยกแยะและวิเคราะห์สัญญาณเรดาร์, การรู้จำใบหน้า, การรู้จำเสียงพูด, การเข้าใจเสียงพูด, การระบุลายพิมพ์นิ้วมือ, การวินิจฉัยทางการแพทย์ และอื่นๆ 
=== โครงสร้างระบบโอซีอาร์ ===
โครงสร้างของระบบโอซีอาร์โดยทั่วไปประกอบไปด้วยขั้นตอนการทำงานหลัก 3 ขั้น แต่ละขั้นตอนประกอบด้วยรายละเอียดดังนี้
==== ขบวนการประมวลผลขั้นต้น (Pre-Processing) ====
ในการทำงานของโปรแกรมโอซีอาร์นั้น ก่อนที่โปรแกรมจะสามารถบอกได้ว่ารูปภาพที่ส่งเข้าไปประกอบด้วยตัวอักษรอะไรบ้าง จำเป็นจะต้องผ่านขั้นตอนที่สำคัญหลายขั้น ขั้นตอนดังกล่าวนี้มักถูกเรียกรวมกันว่า กระบวนการประมวลผลขั้นต้น (Pre-Processing) ซึ่งเป็นขั้นตอนในการปรับแต่งและจัดเตรียมข้อมูลให้เหมาะสมกับขั้นตอนการรู้จำต่อไป ขั้นตอนเหล่านี้มีความสำคัญต่อประสิทธิภาพโดยรวมของระบบ เพราะหากมีความผิดพลาดเกิดขึ้นในส่วนนี้ ก็จะส่งผลกระทบไปยังส่วนถัดไปของระบบด้วย
ขั้นตอนการประมวลผลเบื้องต้นในโปรแกรมโอซีอาร์ที่สำคัญ ได้แก่ 
===== การกรองข้อมูลแทรกซ้อน  (Noise Filtering) =====
การกรองข้อมูลแทรกซ้อนมีจุดประสงค์เพื่อลดทอนส่วนของรูปภาพที่เป็นสิ่งแปลกปลอมอันไม่พึงประสงค์ออกไป โดยข้อมูลแทรกซ้อนที่เกิดขึ้นส่วนใหญ่มักจะมาจากคุณภาพของเอกสารต้นฉบับที่นำมาทำการอ่าน  ซึ่งเป็นต้นเหตุสำคัญที่ทำให้ความถูกต้องของโปรแกรมลดลง จึงจำเป็นที่จะต้องจัดการกับส่วนเกินเหล่านี้ออกไปให้ได้มากที่สุดเท่าที่จะเป็นไปได้ แต่เรายังไม่มีวิธีการใดที่รับรองได้ว่าสามารถจัดการกับข้อมูลแทรกซ้อนได้ โดยสมบูรณ์ ดังนั้นส่วนการรู้จำของโอซีอาร์ก็จะต้องมีความทนทานต่อการแทรกซ้อนเหล่านี้ได้พอสมควร
===== การปรับแต่งข้อมูล (Normalization) =====
การปรับแต่งข้อมูลเป็นการปรับภาพตัวอักษรให้อยู่ในรูปแบบที่ระบบต้องการเพื่อนำไปใช้ในขั้นต่อไป ตัวอย่างการปรับแต่งข้อมูลในโปรแกรมโอซีอาร์ทั่วๆ ไป อาทิเช่น การปรับขนาดรูปตัวอักษร, การปรับตัวอักษรที่เอียงให้ตรง, การแปลงรูปสีหรือเกรย์สเกลให้เป็นขาวดำ หรือในทางกลับกัน การแปลงรูปขาวดำให้เป็นสีหรือเกรย์สเกล เป็นต้น
===== การตัดแบ่งพื้นที่ใช้งาน (Cropping) =====
การตัดแบ่งพื้นที่เป็นการตัดแยกเอาเฉพาะรูปตัวอักษรออกมาจากภาพ เพื่อส่งให้ขั้นตอนการรู้จำในการระบุว่ารูปตัวอักษรนั้นเป็นรหัสอักษรอะไร หลักการพอสังเขปที่ใช้สำหรับการตัดรูปตัวอักษรโดยทั่วไปจะใช้พื้นที่สีขาว (สีพื้น) รอบรูปเป็นตัวกำหนดขอบเขตในการตัด ในขั้นตอนนี้มักจะประสบปัญหาที่ส่งผลกระทบต่ออัตราความถูกต้องของระบบโดยรวมอยู่สองปัญหา ปัญหาแรกคือปัญหาตัวติด เกิดจากรูปของตัวอักษรตั้งแต่สองตัวขึ้นไปมีส่วนที่เชื่อมติดกัน ทำให้ไม่สามารถแยกตัวอักษรออกจากกันโดยใช้พื้นที่สีขาวรอบๆ ได้ จำเป็นต้องหาอัลกอริธึมพิเศษมาช่วยในการแยกตัวอักษรออกจากกัน  ส่วนปัญหาที่สองในทางตรงกันข้าม เป็นปัญหาตัวขาดที่รูปตัวอักษรหนึ่งๆ ถูกแยกออกเป็นส่วนๆ ทำให้เวลาตัดตัวอักษรจากตัวเดียวจะได้เป็นสองตัว  ซึ่งก็ต้องหาวิธีการเฉพาะสำหรับมาจัดการอีกเช่นกัน 
===== การสกัดลักษณะสำคัญ (Feature Extraction) =====
การสกัดลักษณะสำคัญเป็นอีกขบวนการหนึ่งที่สำคัญมาก ตำราส่วนใหญ่จะแยกส่วนนี้ออกจากการประมวลผลเบื้องต้น คือจะอยู่ระหว่างขั้นตอนการประมวลผลเบื้องต้นกับขั้นตอนการรู้จำ แต่ในที่นี้ขอรวมไว้ในตอนเดียวกัน การสกัดลักษณะสำคัญเป็นการดึงเอาโครงสร้างพื้นฐานที่สำคัญของตัวอักษรนั้นออกมา โดยโครงสร้างพื้นฐานที่ว่าจะต้องมีการกำหนดไว้ก่อนว่าจะมีอะไรบ้าง มีการนิยามอย่างไร ตัวอย่างเช่น สำหรับภาษาไทยเราอาจกำหนดว่าตัวอักษรภาษาไทยทั้งหมดประกอบด้วยโครงสร้างพื้นฐานคือ เส้นตรง (แนวตั้ง/นอน) เส้นเอียง หัว (วงกลม) ส่วนโค้ง ส่วนเว้า จุดแตกกิ่ง จุดตัด เป็นต้น เมื่อเราสามารถแยกเอาองค์ประกอบของตัวอักษรแต่ละตัวออกมาได้แล้ว จากนั้นเราก็นำเสนอรูปภาพของตัวอักษรนั้นในรูปแบบของรายการขององค์ประกอบพื้นฐานต่างๆ แทน ซึ่งจะถูกส่งต่อเป็นอินพุตสำหรับขั้นตอนการรู้จำต่อไป
==== การรู้จำ (Recognition) ====
ขั้นตอนนี้ถือเป็นหัวใจของระบบ เพราะเป็นส่วนที่จะตัดสินว่ารูปตัวอักษรที่ส่งเข้าไปเป็นรหัสตัวอักษรอะไร เช่นเดียวกับส่วนอื่นๆ ที่มีวิธีการหลากหลายซึ่งนำมาใช้เพื่อให้ได้ผลการทำงานที่ดีที่สุด เทคนิคใหม่ๆ ได้ถูกพัฒนาขึ้นมาอย่างต่อเนื่องเพื่อรองรับกับปัญหาที่เกิดจากเอกสารที่มีความสลับซับซ้อนมากขึ้น อย่างไรก็ตามเราพอที่จะจัดแบ่งเทคนิคเหล่านี้ออกเป็นกลุ่มตามแนวทางหลักที่ใช้ในการแก้ปัญหา ถึงแม้บ่อยครั้งที่พบว่ามีความคาบเกี่ยวกันของเทคนิคที่นำมาใช้ระหว่างกลุ่มที่ว่านี้ ทั้งนี้เพราะแต่ละแนวทางก็มีข้อดีข้อเสียที่แตกต่างกัน จึงมีความพยายามที่จะรวมเอาเทคนิคเหล่านี้มาใช้ร่วมกันเพื่อเพิ่มความสามารถของระบบเท่าที่จะเป็นไปได้  ดังนั้นการแบ่งกลุ่มในที่นี้ เป็นการแบ่งที่เน้นความชัดเจนในแง่ของขอบเขตทางทฤษฎีเป็นหลัก โดยแนวทางการรู้จำสามารถแบ่งออกได้เป็น 4 กลุ่ม ดังนี้
===== วิธีทางการเข้าคู่รูปแบบ (Template Matching) =====
วิธีการเข้าคู่รูปแบบเป็นวิธีการแรกๆ ที่มาใช้ในการรู้จำตัวอักษร หลักการโดยทั่วไปคือ จะต้องมีรูปแบบ (template) ที่สร้างขึ้นมาสำหรับอ่านตัวอักษร โดยมีการกำหนดตำแหน่งสำคัญที่สามารถใช้แยกแยะความแตกต่างระหว่างตัวอักษรแต่ละตัว เวลาทำงานก็ให้นำรูปภาพที่ต้องการอ่านไปทาบบนแบบเพื่อวัดความคล้ายคลึงกันของภาพกับตัวแบบ จากนั้นก็ระบุว่าเป็นรหัสตัวอักษรอะไร โดยใช้ค่าผ่านระดับหรือวิธีการบางอย่างในการตัดสิน วิธีการนี้จะค่อนข้างอ่อนไหวต่อข้อมูลแทรกซ้อน ขนาด และการเอียงของตัวอักษร จึงจำเป็นต้องมีขั้นตอนการปรับแต่งข้อมูลที่ดี นอกจากนั้นขั้นตอนการเปรียบเทียบก็ไม่ใช่ว่าสามารถเทียบกันแบบจุดต่อจุดได้ เพราะในทางปฏิบัติตัวอักษรที่ส่งเข้าสามารถมีความแปรปรวนได้หลายรูปแบบ ดังนั้นวิธีการเทียบก็ต้องมีประสิทธิภาพเพียงพอที่จะรองรับกับปัญหาดังกล่าวได้
===== วิธีทางสถิติ (Statistical Approach) =====
วิธีทางสถิติเป็นวิธีการที่ใช้หลักการทางสถิติ โดยนำค่าความน่าจะเป็นและ/หรือฟังก์ชันการแจกแจงความน่าจะเป็นมาใช้ในการตัดสินใจ รูปภาพอินพุตที่ได้มาจากขั้นตอนการสกัดลักษณะสำคัญ จะถูกส่งเข้าไปในส่วนการรู้จำเฉพาะของแต่ละตัวอักษร ซึ่งได้ผลลัพธ์ออกมาเป็นค่าความน่าจะเป็นที่อินพุตเป็นตัวอักษรใด เมื่ออินพุตได้ผ่านส่วนการรู้จำครบทุกตัวแล้ว ก็นำเอาผลลัพธ์ที่ได้ทั้งหมดมาเปรียบเทียบกันว่าได้ค่าความน่าจะเป็นของตัวอักษรใดมากที่สุด ผลลัพธ์จะออกเป็นตัวอักษรนั้น 
===== วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis) =====
วิธีการวิเคราะห์ทางโครงสร้างคือการวิเคราะห์โครงสร้างตัวอักษร โดยถือว่าตัวอักษรทุกตัวประกอบด้วยองค์ประกอบพื้นฐาน ซึ่งได้มาจากการสกัดลักษณะสำคัญ เช่นเดียวกันกับวิธีการทางสถิติ ต่างกันตรงที่ลักษณะสำคัญ ที่ส่งมาให้กับขั้นตอนการรู้จำแบบการวิเคราะห์ทางโครงสร้างนี้ มักจะใช้เป็นชื่อหรือค่าที่บอกว่าลักษณะโครงสร้างสำคัญนั้นเป็นอะไร เช่น เส้นตรง วงกลม เป็นต้น แทนที่จะเป็นค่าจำนวนจริง ในขั้นตอนการรู้จำลักษณะสำคัญทั้งหลายที่ประกอบเป็นตัวอักษรนั้น จะถูกส่งเข้าไปให้กับส่วนที่ตรวจวิเคราะห์กฎการเขียนตัวอักษร เช่น ฟอร์มอลแกรมมาแมชชีน (formal grammar machine) โครงสร้างกราฟ  หรือโครงสร้างต้นไม้เป็นต้น เพื่อระบุว่าเป็นตัวอะไร  ซึ่งจะตัดสินโดยการดูที่รูปแบบการเชื่อมต่อขององค์ประกอบต่างๆ เข้าเป็นตัวอักษรนั้น วิธีการนี้มีข้อดีตรงที่มีความยืดหยุ่นต่อความหลากหลายของตัวอักษรค่อนข้างมาก อย่างไรก็ตามอัตราความถูกต้องของวิธีนี้ขึ้นอยู่กับการสร้างกฎและการวิเคราะห์กฎที่มีประสิทธิภาพ ซึ่งเป็นส่วนที่สำคัญที่สุดของวิธีการนี้  
===== วิธีทางโครงข่ายประสาทเทียม (Neural Network) =====
วิธีทางโครงข่ายประสาทเทียมเป็นแนวทางใหม่ที่ได้รับความนิยมอย่างมากในช่วงหลัง เนื่องจากประสิทธิภาพในด้านการรู้จำแบบ ซึ่งถูกนำไปใช้ในงานหลายๆ ด้าน รวมทั้งโอซีอาร์ด้วย โครงข่ายประสาทเทียมเป็นเทคนิคที่พยายามเรียนแบบการทำงานของสมองมนุษย์ ที่มีโครงข่ายเชื่อมต่อกันของหน่วยความจำย่อยๆ จำนวนมากที่สะสมความรู้เอาไว้ ความรู้เหล่านี้จะได้จากการฝึกสอนไว้ก่อน เช่นการสอนให้รู้จักตัวอักษร “ก” ถึง “ฮ” โดยการส่งภาพตัวอักษรเหล่านี้เข้าไป พร้อมกับบอกว่ามีค่าเป็นรหัสตัวอักษรอะไร โครงข่ายประสาทเทียมจะเรียนรู้ถึงรูปแบบตัวอักษรที่หลากหลายของตัวอักษรตัวนั้น เพื่อว่าเวลาทำงานจริงจะได้มีความสามารถพอที่จะรับมือกับภาพตัวอักษรในหลายๆ รูปแบบ สิ่งที่สอนให้กับโครงข่ายประสาทเทียมไม่จำเป็นต้องเป็นรูปของตัวอักษรอย่างที่เราเห็นกันก็ได้ อินพุตที่ส่งให้มักจะผ่านขั้นตอนการสกัดลักษณะสำคัญ และกระบวนการประมวลผลเบื้องต้นอื่นๆ ก่อนเสมอ
==== ขบวนการประมวลผลขั้นปลาย (Post-Processing) ====
หลังจากที่ผ่านขั้นตอนการรู้จำแล้ว รูปตัวอักษรที่ถูกส่งเข้าไปจะได้ผลลัพธ์ออกมาเป็นรหัสตัวอักษร ซึ่งก็ไม่ได้หมายความว่าเอาต์พุตที่ได้มาจะถูกต้องทั้งหมด ไม่มีผลิตภัณฑ์โอซีอาร์ตัวใด ไม่ว่าจะเป็นภาษาใดก็ตามที่รับรองความถูกต้อง 100 % ดังนั้นเพื่อเพิ่มความถูกต้องให้แก่โปรแกรมจึงได้มีการเสริมส่วนการตรวจสอบและแก้ไขข้อความเข้ามา โปรแกรมส่วนนี้มักจะทำงานเกี่ยวกับการตรวจสอบความถูกต้องของการสะกดคำและไวยากรณ์ภาษา โดยมักจะใช้พจนานุกรมมาช่วยในการตรวจสอบคำผิด ซึ่งอาจแก้ไขให้โดยอัตโนมัติหรือแสดงเครื่องหมายบางอย่างเพื่อบอกให้ผู้ใช้ทราบว่าคำดังกล่าวอาจไม่ถูกต้อง ซึ่งผู้ใช้อาจแก้หรือไม่แก้ก็ขึ้นกับการตัดสินใจของผู้ใช้เอง นอกเหนือไปจากการตรวจสอบความถูกต้องระดับคำแล้ว บางโปรแกรมยังมีความสามารถตรวจสอบไวยากรณ์ในระดับประโยคได้ด้วย 
ส่วนขบวนการประมวลผลขั้นปลายในโปรแกรมโอซีอาร์เป็นส่วนที่มีความสำคัญมาก ลำพังแต่ความสามารถของส่วนการรู้จำนั้นไม่สามารถไปถึงระดับที่ผู้ใช้ยอมรับได้ (ซึ่งที่ต้องการจริงๆ คือ 100%) ดังนั้นส่วนนี้สามารถเพิ่มอัตราความถูกต้องให้แก่โปรแกรมได้ โดยเฉพาะในส่วนที่นอกเหนือจากความสามารถของส่วนการรู้จำ เช่น ตัวอักษรที่เปรอะเปื้อนมากๆ หรือตัวอักษรที่ติดหรือขาด เป็นต้น
thread_title:  เทคโนโลยีโอซีอาร์ 

message: ตามที่ได้กล่าวไว้แล้วข้างต้นเราสามารถแบ่งโปรแกรมโอซีอาร์ได้เป็นกลุ่มๆ ตามลักษณะหรือแหล่งที่มาของตัวอักษรที่ตรงกับความสามารถของโปรแกรม ซึ่งเราสามารถจะแบ่งออกเป็นกลุ่มได้ดังนี้
center|เทคโนโลยีโอซีอาร์
==== การรู้จำตัวอักษรแบบออนไลน์ (On-line Character Recognition) ====
กลุ่มนี้จะต่างจากกลุ่มอื่นๆ ในแง่ของวิธีการอินพุตข้อมูล ซึ่งจะได้มาจากดิจิไทเซอร์หรือปากกาอิเล็กทรอนิกส์ที่ใช้กับเครื่องคอมพิวเตอร์มือถือ ส่วนการวิเคราะห์ตัวอักษรจะทำในขณะที่มีการลากเส้นเพื่อเขียนตัวอักษร (ออนไลน์) ซึ่งมีวิธีการทำงานที่ต่างจากวิธีการอื่นๆ ถ้าจะเทียบความยากง่ายกับการรู้จำลายมือเขียนแบบออฟไลน์ กลุ่มนี้จะง่ายกว่าเพราะจะได้ข้อมูลเพิ่มเติมเกี่ยวกับทิศทางและลำดับการลากเส้นมาช่วยด้วย โอซีอาร์กลุ่มนี้มักมาพร้อมกับอุปกรณ์การเขียนที่จะกำหนดพื้นที่ให้อินพุตข้อมูล โดยส่วนใหญ่มักต้องเขียนทีละตัวอักษร ความก้าวหน้าของเทคโนโลยีด้านนี้จะมีผลเป็นอย่างมากต่อการเจริญเติบโตของธุรกิจในวงการเครื่องคอมพิวเตอร์มือถือที่เป็นคอมพิวเตอร์ขนาดเล็ก ซึ่งต้องอาศัยการใส่อินพุตจากปากกาอิเล็กทรอนิกส์แทนคีย์บอร์ด
==== การรู้จำตัวอักษรแบบออฟไลน์ (Off-line Character Recognition) ====
อินพุตของระบบจะเป็นภาพของตัวอักษรที่ได้จากเครื่องสแกน  อาจจะเป็นตัวอักษรแบบพิมพ์  หรือแบบเขียน และอาจเป็นตัวอักษรแบบเดี่ยวๆ หรือติดกันเป็นกลุ่มตัวอักษร
===== ตัวอักษรโดด (Single Character) =====
คือกลุ่มของโปรแกรมโอซีอาร์ที่ทำงานกับภาพตัวอักษรฉบับที่เป็นตัวเดี่ยวๆ ไม่ได้เชื่อมติดกับตัวอื่น โปรแกรมกลุ่มนี้สามารถแบ่งย่อยออกเป็น  2 กลุ่ม ได้แก่ 
# การรู้จำตัวพิมพ์แบบฟอนต์เฉพาะ (Printed Fixed-Font Character Recognition) 
เป็นกลุ่มของโปรแกรมที่ใช้ได้กับตัวอักษรประเภทตัวพิมพ์ที่มีการกำหนดกลุ่มของฟอนต์ ซึ่งถือว่าอยู่ในระดับง่ายที่สุดในด้านการพัฒนาเทคนิคในการทำงานของโปรแกรม ถึงกระนั้นก็ตาม โปรแกรมในกลุ่มนี้ก็ยังประสบกับปัญหาที่เกิดจากเอกสารคุณภาพต่ำ ซึ่งจะส่งผลให้ได้ภาพที่เปรอะเปื้อน ทำให้ภาพตัวอักษรติดกันหรือขาดออกจากกัน เหล่านี้เป็นตัวการสำคัญที่ทำให้อัตราความถูกต้องของโปรแกรมลดลง
frame|center|ตัวอักษรที่มีส่วนเชื่อมติดกันและขาดจากกัน
# การรู้จำลายมือเขียนแบบตัวโดด (Isolated Handprint Character Recognition (ICR))
ตัวอักษรของกลุ่มนี้เป็นลายมือเขียนที่มักจะถูกกำหนดให้เขียนในกรอบที่จัดไว้ โดยเขียนทีละตัวแยกออกจากกัน ตัวอย่างงานที่เข้าข่ายกลุ่มนี้ได้แก่ โปรแกรมโอซีอาร์ที่ใช้แยกจดหมายจากรหัสไปรษณีย์ซึ่งเป็นตัวเลขจากลายมือเขียนเป็นต้น การรู้จำลายมือเขียนเป็นเรื่องยากมาก เพราะตัวอักษรแต่ละตัวที่เขียนโดยคนแต่ละคนมีความหลากหลายมาก ถึงแม้บางครั้งจะเป็นการเขียนโดยคนๆ เดียว การเขียนแต่ละครั้งก็ยังแตกต่างกัน ดังนั้นโปรแกรมพวกนี้มักมีข้อกำหนดบางอย่าง เช่น สามารถอ่านได้เฉพาะตัวเลข หรือสามารถอ่านลายมือของคนที่ได้ลองเขียนตัวอักษรตัวอย่างชุดหนึ่งให้โปรแกรมรู้จักก่อนเท่านั้น
===== การรู้จำลายมือแบบเขียนต่อเนื่อง (Script recognition) =====
กลุ่มนี้ได้โจทย์ในระดับที่ยากที่สุดในจำนวนตระกูลโอซีอาร์ทั้งหลาย เพราะตัวอักษรที่โปรแกรมจะต้องอ่านเป็นตัวอักษรที่เป็นลายมือเขียนโดยไม่มีข้อกำหนดใดๆ ผู้เขียนสามารถเขียนได้ตามธรรมชาติอย่างต่อเนื่อง ดังนั้นตัวอักษรที่ได้อาจมีเส้นที่ลากเชื่อมตัวอักษรหลายๆ ตัวให้ติดกัน และประกอบกับความแตกต่างอย่างมากของลายมือของคนแต่ละคน โปรแกรมในกลุ่มนี้บางทีเรียกว่าการรู้จำลายมือเขียนแบบอิสระ (freestyle handwriting recognition) ถึงแม้จะมีผลิตภัณฑ์โอซีอาร์กลุ่มนี้ออกสู่ตลาดบ้างแล้ว แต่หัวข้อนี้ก็ยังคงต้องการการวิจัยเพิ่มเติมอีกมาก
thread_title:  ประเภทของโอซีอาร์ 

message: กลุ่มนี้จะต่างจากกลุ่มอื่นๆ ในแง่ของวิธีการอินพุตข้อมูล ซึ่งจะได้มาจากดิจิไทเซอร์หรือปากกาอิเล็กทรอนิกส์ที่ใช้กับเครื่องคอมพิวเตอร์มือถือ ส่วนการวิเคราะห์ตัวอักษรจะทำในขณะที่มีการลากเส้นเพื่อเขียนตัวอักษร (ออนไลน์) ซึ่งมีวิธีการทำงานที่ต่างจากวิธีการอื่นๆ ถ้าจะเทียบความยากง่ายกับการรู้จำลายมือเขียนแบบออฟไลน์ กลุ่มนี้จะง่ายกว่าเพราะจะได้ข้อมูลเพิ่มเติมเกี่ยวกับทิศทางและลำดับการลากเส้นมาช่วยด้วย โอซีอาร์กลุ่มนี้มักมาพร้อมกับอุปกรณ์การเขียนที่จะกำหนดพื้นที่ให้อินพุตข้อมูล โดยส่วนใหญ่มักต้องเขียนทีละตัวอักษร ความก้าวหน้าของเทคโนโลยีด้านนี้จะมีผลเป็นอย่างมากต่อการเจริญเติบโตของธุรกิจในวงการเครื่องคอมพิวเตอร์มือถือที่เป็นคอมพิวเตอร์ขนาดเล็ก ซึ่งต้องอาศัยการใส่อินพุตจากปากกาอิเล็กทรอนิกส์แทนคีย์บอร์ด
thread_title:  การรู้จำตัวอักษรแบบออนไลน์ (On-line Character Recognition) 

message: อินพุตของระบบจะเป็นภาพของตัวอักษรที่ได้จากเครื่องสแกน  อาจจะเป็นตัวอักษรแบบพิมพ์  หรือแบบเขียน และอาจเป็นตัวอักษรแบบเดี่ยวๆ หรือติดกันเป็นกลุ่มตัวอักษร
===== ตัวอักษรโดด (Single Character) =====
คือกลุ่มของโปรแกรมโอซีอาร์ที่ทำงานกับภาพตัวอักษรฉบับที่เป็นตัวเดี่ยวๆ ไม่ได้เชื่อมติดกับตัวอื่น โปรแกรมกลุ่มนี้สามารถแบ่งย่อยออกเป็น  2 กลุ่ม ได้แก่ 
# การรู้จำตัวพิมพ์แบบฟอนต์เฉพาะ (Printed Fixed-Font Character Recognition) 
เป็นกลุ่มของโปรแกรมที่ใช้ได้กับตัวอักษรประเภทตัวพิมพ์ที่มีการกำหนดกลุ่มของฟอนต์ ซึ่งถือว่าอยู่ในระดับง่ายที่สุดในด้านการพัฒนาเทคนิคในการทำงานของโปรแกรม ถึงกระนั้นก็ตาม โปรแกรมในกลุ่มนี้ก็ยังประสบกับปัญหาที่เกิดจากเอกสารคุณภาพต่ำ ซึ่งจะส่งผลให้ได้ภาพที่เปรอะเปื้อน ทำให้ภาพตัวอักษรติดกันหรือขาดออกจากกัน เหล่านี้เป็นตัวการสำคัญที่ทำให้อัตราความถูกต้องของโปรแกรมลดลง
frame|center|ตัวอักษรที่มีส่วนเชื่อมติดกันและขาดจากกัน
# การรู้จำลายมือเขียนแบบตัวโดด (Isolated Handprint Character Recognition (ICR))
ตัวอักษรของกลุ่มนี้เป็นลายมือเขียนที่มักจะถูกกำหนดให้เขียนในกรอบที่จัดไว้ โดยเขียนทีละตัวแยกออกจากกัน ตัวอย่างงานที่เข้าข่ายกลุ่มนี้ได้แก่ โปรแกรมโอซีอาร์ที่ใช้แยกจดหมายจากรหัสไปรษณีย์ซึ่งเป็นตัวเลขจากลายมือเขียนเป็นต้น การรู้จำลายมือเขียนเป็นเรื่องยากมาก เพราะตัวอักษรแต่ละตัวที่เขียนโดยคนแต่ละคนมีความหลากหลายมาก ถึงแม้บางครั้งจะเป็นการเขียนโดยคนๆ เดียว การเขียนแต่ละครั้งก็ยังแตกต่างกัน ดังนั้นโปรแกรมพวกนี้มักมีข้อกำหนดบางอย่าง เช่น สามารถอ่านได้เฉพาะตัวเลข หรือสามารถอ่านลายมือของคนที่ได้ลองเขียนตัวอักษรตัวอย่างชุดหนึ่งให้โปรแกรมรู้จักก่อนเท่านั้น
===== การรู้จำลายมือแบบเขียนต่อเนื่อง (Script recognition) =====
กลุ่มนี้ได้โจทย์ในระดับที่ยากที่สุดในจำนวนตระกูลโอซีอาร์ทั้งหลาย เพราะตัวอักษรที่โปรแกรมจะต้องอ่านเป็นตัวอักษรที่เป็นลายมือเขียนโดยไม่มีข้อกำหนดใดๆ ผู้เขียนสามารถเขียนได้ตามธรรมชาติอย่างต่อเนื่อง ดังนั้นตัวอักษรที่ได้อาจมีเส้นที่ลากเชื่อมตัวอักษรหลายๆ ตัวให้ติดกัน และประกอบกับความแตกต่างอย่างมากของลายมือของคนแต่ละคน โปรแกรมในกลุ่มนี้บางทีเรียกว่าการรู้จำลายมือเขียนแบบอิสระ (freestyle handwriting recognition) ถึงแม้จะมีผลิตภัณฑ์โอซีอาร์กลุ่มนี้ออกสู่ตลาดบ้างแล้ว แต่หัวข้อนี้ก็ยังคงต้องการการวิจัยเพิ่มเติมอีกมาก
thread_title:  การรู้จำตัวอักษรแบบออฟไลน์ (Off-line Character Recognition) 

message: คือกลุ่มของโปรแกรมโอซีอาร์ที่ทำงานกับภาพตัวอักษรฉบับที่เป็นตัวเดี่ยวๆ ไม่ได้เชื่อมติดกับตัวอื่น โปรแกรมกลุ่มนี้สามารถแบ่งย่อยออกเป็น  2 กลุ่ม ได้แก่ 
# การรู้จำตัวพิมพ์แบบฟอนต์เฉพาะ (Printed Fixed-Font Character Recognition) 
เป็นกลุ่มของโปรแกรมที่ใช้ได้กับตัวอักษรประเภทตัวพิมพ์ที่มีการกำหนดกลุ่มของฟอนต์ ซึ่งถือว่าอยู่ในระดับง่ายที่สุดในด้านการพัฒนาเทคนิคในการทำงานของโปรแกรม ถึงกระนั้นก็ตาม โปรแกรมในกลุ่มนี้ก็ยังประสบกับปัญหาที่เกิดจากเอกสารคุณภาพต่ำ ซึ่งจะส่งผลให้ได้ภาพที่เปรอะเปื้อน ทำให้ภาพตัวอักษรติดกันหรือขาดออกจากกัน เหล่านี้เป็นตัวการสำคัญที่ทำให้อัตราความถูกต้องของโปรแกรมลดลง
frame|center|ตัวอักษรที่มีส่วนเชื่อมติดกันและขาดจากกัน
# การรู้จำลายมือเขียนแบบตัวโดด (Isolated Handprint Character Recognition (ICR))
ตัวอักษรของกลุ่มนี้เป็นลายมือเขียนที่มักจะถูกกำหนดให้เขียนในกรอบที่จัดไว้ โดยเขียนทีละตัวแยกออกจากกัน ตัวอย่างงานที่เข้าข่ายกลุ่มนี้ได้แก่ โปรแกรมโอซีอาร์ที่ใช้แยกจดหมายจากรหัสไปรษณีย์ซึ่งเป็นตัวเลขจากลายมือเขียนเป็นต้น การรู้จำลายมือเขียนเป็นเรื่องยากมาก เพราะตัวอักษรแต่ละตัวที่เขียนโดยคนแต่ละคนมีความหลากหลายมาก ถึงแม้บางครั้งจะเป็นการเขียนโดยคนๆ เดียว การเขียนแต่ละครั้งก็ยังแตกต่างกัน ดังนั้นโปรแกรมพวกนี้มักมีข้อกำหนดบางอย่าง เช่น สามารถอ่านได้เฉพาะตัวเลข หรือสามารถอ่านลายมือของคนที่ได้ลองเขียนตัวอักษรตัวอย่างชุดหนึ่งให้โปรแกรมรู้จักก่อนเท่านั้น
thread_title:  ตัวอักษรโดด (Single Character) 

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

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

message: โครงสร้างของระบบโอซีอาร์โดยทั่วไปประกอบไปด้วยขั้นตอนการทำงานหลัก 3 ขั้น แต่ละขั้นตอนประกอบด้วยรายละเอียดดังนี้
==== ขบวนการประมวลผลขั้นต้น (Pre-Processing) ====
ในการทำงานของโปรแกรมโอซีอาร์นั้น ก่อนที่โปรแกรมจะสามารถบอกได้ว่ารูปภาพที่ส่งเข้าไปประกอบด้วยตัวอักษรอะไรบ้าง จำเป็นจะต้องผ่านขั้นตอนที่สำคัญหลายขั้น ขั้นตอนดังกล่าวนี้มักถูกเรียกรวมกันว่า กระบวนการประมวลผลขั้นต้น (Pre-Processing) ซึ่งเป็นขั้นตอนในการปรับแต่งและจัดเตรียมข้อมูลให้เหมาะสมกับขั้นตอนการรู้จำต่อไป ขั้นตอนเหล่านี้มีความสำคัญต่อประสิทธิภาพโดยรวมของระบบ เพราะหากมีความผิดพลาดเกิดขึ้นในส่วนนี้ ก็จะส่งผลกระทบไปยังส่วนถัดไปของระบบด้วย
ขั้นตอนการประมวลผลเบื้องต้นในโปรแกรมโอซีอาร์ที่สำคัญ ได้แก่ 
===== การกรองข้อมูลแทรกซ้อน  (Noise Filtering) =====
การกรองข้อมูลแทรกซ้อนมีจุดประสงค์เพื่อลดทอนส่วนของรูปภาพที่เป็นสิ่งแปลกปลอมอันไม่พึงประสงค์ออกไป โดยข้อมูลแทรกซ้อนที่เกิดขึ้นส่วนใหญ่มักจะมาจากคุณภาพของเอกสารต้นฉบับที่นำมาทำการอ่าน  ซึ่งเป็นต้นเหตุสำคัญที่ทำให้ความถูกต้องของโปรแกรมลดลง จึงจำเป็นที่จะต้องจัดการกับส่วนเกินเหล่านี้ออกไปให้ได้มากที่สุดเท่าที่จะเป็นไปได้ แต่เรายังไม่มีวิธีการใดที่รับรองได้ว่าสามารถจัดการกับข้อมูลแทรกซ้อนได้ โดยสมบูรณ์ ดังนั้นส่วนการรู้จำของโอซีอาร์ก็จะต้องมีความทนทานต่อการแทรกซ้อนเหล่านี้ได้พอสมควร
===== การปรับแต่งข้อมูล (Normalization) =====
การปรับแต่งข้อมูลเป็นการปรับภาพตัวอักษรให้อยู่ในรูปแบบที่ระบบต้องการเพื่อนำไปใช้ในขั้นต่อไป ตัวอย่างการปรับแต่งข้อมูลในโปรแกรมโอซีอาร์ทั่วๆ ไป อาทิเช่น การปรับขนาดรูปตัวอักษร, การปรับตัวอักษรที่เอียงให้ตรง, การแปลงรูปสีหรือเกรย์สเกลให้เป็นขาวดำ หรือในทางกลับกัน การแปลงรูปขาวดำให้เป็นสีหรือเกรย์สเกล เป็นต้น
===== การตัดแบ่งพื้นที่ใช้งาน (Cropping) =====
การตัดแบ่งพื้นที่เป็นการตัดแยกเอาเฉพาะรูปตัวอักษรออกมาจากภาพ เพื่อส่งให้ขั้นตอนการรู้จำในการระบุว่ารูปตัวอักษรนั้นเป็นรหัสอักษรอะไร หลักการพอสังเขปที่ใช้สำหรับการตัดรูปตัวอักษรโดยทั่วไปจะใช้พื้นที่สีขาว (สีพื้น) รอบรูปเป็นตัวกำหนดขอบเขตในการตัด ในขั้นตอนนี้มักจะประสบปัญหาที่ส่งผลกระทบต่ออัตราความถูกต้องของระบบโดยรวมอยู่สองปัญหา ปัญหาแรกคือปัญหาตัวติด เกิดจากรูปของตัวอักษรตั้งแต่สองตัวขึ้นไปมีส่วนที่เชื่อมติดกัน ทำให้ไม่สามารถแยกตัวอักษรออกจากกันโดยใช้พื้นที่สีขาวรอบๆ ได้ จำเป็นต้องหาอัลกอริธึมพิเศษมาช่วยในการแยกตัวอักษรออกจากกัน  ส่วนปัญหาที่สองในทางตรงกันข้าม เป็นปัญหาตัวขาดที่รูปตัวอักษรหนึ่งๆ ถูกแยกออกเป็นส่วนๆ ทำให้เวลาตัดตัวอักษรจากตัวเดียวจะได้เป็นสองตัว  ซึ่งก็ต้องหาวิธีการเฉพาะสำหรับมาจัดการอีกเช่นกัน 
===== การสกัดลักษณะสำคัญ (Feature Extraction) =====
การสกัดลักษณะสำคัญเป็นอีกขบวนการหนึ่งที่สำคัญมาก ตำราส่วนใหญ่จะแยกส่วนนี้ออกจากการประมวลผลเบื้องต้น คือจะอยู่ระหว่างขั้นตอนการประมวลผลเบื้องต้นกับขั้นตอนการรู้จำ แต่ในที่นี้ขอรวมไว้ในตอนเดียวกัน การสกัดลักษณะสำคัญเป็นการดึงเอาโครงสร้างพื้นฐานที่สำคัญของตัวอักษรนั้นออกมา โดยโครงสร้างพื้นฐานที่ว่าจะต้องมีการกำหนดไว้ก่อนว่าจะมีอะไรบ้าง มีการนิยามอย่างไร ตัวอย่างเช่น สำหรับภาษาไทยเราอาจกำหนดว่าตัวอักษรภาษาไทยทั้งหมดประกอบด้วยโครงสร้างพื้นฐานคือ เส้นตรง (แนวตั้ง/นอน) เส้นเอียง หัว (วงกลม) ส่วนโค้ง ส่วนเว้า จุดแตกกิ่ง จุดตัด เป็นต้น เมื่อเราสามารถแยกเอาองค์ประกอบของตัวอักษรแต่ละตัวออกมาได้แล้ว จากนั้นเราก็นำเสนอรูปภาพของตัวอักษรนั้นในรูปแบบของรายการขององค์ประกอบพื้นฐานต่างๆ แทน ซึ่งจะถูกส่งต่อเป็นอินพุตสำหรับขั้นตอนการรู้จำต่อไป
==== การรู้จำ (Recognition) ====
ขั้นตอนนี้ถือเป็นหัวใจของระบบ เพราะเป็นส่วนที่จะตัดสินว่ารูปตัวอักษรที่ส่งเข้าไปเป็นรหัสตัวอักษรอะไร เช่นเดียวกับส่วนอื่นๆ ที่มีวิธีการหลากหลายซึ่งนำมาใช้เพื่อให้ได้ผลการทำงานที่ดีที่สุด เทคนิคใหม่ๆ ได้ถูกพัฒนาขึ้นมาอย่างต่อเนื่องเพื่อรองรับกับปัญหาที่เกิดจากเอกสารที่มีความสลับซับซ้อนมากขึ้น อย่างไรก็ตามเราพอที่จะจัดแบ่งเทคนิคเหล่านี้ออกเป็นกลุ่มตามแนวทางหลักที่ใช้ในการแก้ปัญหา ถึงแม้บ่อยครั้งที่พบว่ามีความคาบเกี่ยวกันของเทคนิคที่นำมาใช้ระหว่างกลุ่มที่ว่านี้ ทั้งนี้เพราะแต่ละแนวทางก็มีข้อดีข้อเสียที่แตกต่างกัน จึงมีความพยายามที่จะรวมเอาเทคนิคเหล่านี้มาใช้ร่วมกันเพื่อเพิ่มความสามารถของระบบเท่าที่จะเป็นไปได้  ดังนั้นการแบ่งกลุ่มในที่นี้ เป็นการแบ่งที่เน้นความชัดเจนในแง่ของขอบเขตทางทฤษฎีเป็นหลัก โดยแนวทางการรู้จำสามารถแบ่งออกได้เป็น 4 กลุ่ม ดังนี้
===== วิธีทางการเข้าคู่รูปแบบ (Template Matching) =====
วิธีการเข้าคู่รูปแบบเป็นวิธีการแรกๆ ที่มาใช้ในการรู้จำตัวอักษร หลักการโดยทั่วไปคือ จะต้องมีรูปแบบ (template) ที่สร้างขึ้นมาสำหรับอ่านตัวอักษร โดยมีการกำหนดตำแหน่งสำคัญที่สามารถใช้แยกแยะความแตกต่างระหว่างตัวอักษรแต่ละตัว เวลาทำงานก็ให้นำรูปภาพที่ต้องการอ่านไปทาบบนแบบเพื่อวัดความคล้ายคลึงกันของภาพกับตัวแบบ จากนั้นก็ระบุว่าเป็นรหัสตัวอักษรอะไร โดยใช้ค่าผ่านระดับหรือวิธีการบางอย่างในการตัดสิน วิธีการนี้จะค่อนข้างอ่อนไหวต่อข้อมูลแทรกซ้อน ขนาด และการเอียงของตัวอักษร จึงจำเป็นต้องมีขั้นตอนการปรับแต่งข้อมูลที่ดี นอกจากนั้นขั้นตอนการเปรียบเทียบก็ไม่ใช่ว่าสามารถเทียบกันแบบจุดต่อจุดได้ เพราะในทางปฏิบัติตัวอักษรที่ส่งเข้าสามารถมีความแปรปรวนได้หลายรูปแบบ ดังนั้นวิธีการเทียบก็ต้องมีประสิทธิภาพเพียงพอที่จะรองรับกับปัญหาดังกล่าวได้
===== วิธีทางสถิติ (Statistical Approach) =====
วิธีทางสถิติเป็นวิธีการที่ใช้หลักการทางสถิติ โดยนำค่าความน่าจะเป็นและ/หรือฟังก์ชันการแจกแจงความน่าจะเป็นมาใช้ในการตัดสินใจ รูปภาพอินพุตที่ได้มาจากขั้นตอนการสกัดลักษณะสำคัญ จะถูกส่งเข้าไปในส่วนการรู้จำเฉพาะของแต่ละตัวอักษร ซึ่งได้ผลลัพธ์ออกมาเป็นค่าความน่าจะเป็นที่อินพุตเป็นตัวอักษรใด เมื่ออินพุตได้ผ่านส่วนการรู้จำครบทุกตัวแล้ว ก็นำเอาผลลัพธ์ที่ได้ทั้งหมดมาเปรียบเทียบกันว่าได้ค่าความน่าจะเป็นของตัวอักษรใดมากที่สุด ผลลัพธ์จะออกเป็นตัวอักษรนั้น 
===== วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis) =====
วิธีการวิเคราะห์ทางโครงสร้างคือการวิเคราะห์โครงสร้างตัวอักษร โดยถือว่าตัวอักษรทุกตัวประกอบด้วยองค์ประกอบพื้นฐาน ซึ่งได้มาจากการสกัดลักษณะสำคัญ เช่นเดียวกันกับวิธีการทางสถิติ ต่างกันตรงที่ลักษณะสำคัญ ที่ส่งมาให้กับขั้นตอนการรู้จำแบบการวิเคราะห์ทางโครงสร้างนี้ มักจะใช้เป็นชื่อหรือค่าที่บอกว่าลักษณะโครงสร้างสำคัญนั้นเป็นอะไร เช่น เส้นตรง วงกลม เป็นต้น แทนที่จะเป็นค่าจำนวนจริง ในขั้นตอนการรู้จำลักษณะสำคัญทั้งหลายที่ประกอบเป็นตัวอักษรนั้น จะถูกส่งเข้าไปให้กับส่วนที่ตรวจวิเคราะห์กฎการเขียนตัวอักษร เช่น ฟอร์มอลแกรมมาแมชชีน (formal grammar machine) โครงสร้างกราฟ  หรือโครงสร้างต้นไม้เป็นต้น เพื่อระบุว่าเป็นตัวอะไร  ซึ่งจะตัดสินโดยการดูที่รูปแบบการเชื่อมต่อขององค์ประกอบต่างๆ เข้าเป็นตัวอักษรนั้น วิธีการนี้มีข้อดีตรงที่มีความยืดหยุ่นต่อความหลากหลายของตัวอักษรค่อนข้างมาก อย่างไรก็ตามอัตราความถูกต้องของวิธีนี้ขึ้นอยู่กับการสร้างกฎและการวิเคราะห์กฎที่มีประสิทธิภาพ ซึ่งเป็นส่วนที่สำคัญที่สุดของวิธีการนี้  
===== วิธีทางโครงข่ายประสาทเทียม (Neural Network) =====
วิธีทางโครงข่ายประสาทเทียมเป็นแนวทางใหม่ที่ได้รับความนิยมอย่างมากในช่วงหลัง เนื่องจากประสิทธิภาพในด้านการรู้จำแบบ ซึ่งถูกนำไปใช้ในงานหลายๆ ด้าน รวมทั้งโอซีอาร์ด้วย โครงข่ายประสาทเทียมเป็นเทคนิคที่พยายามเรียนแบบการทำงานของสมองมนุษย์ ที่มีโครงข่ายเชื่อมต่อกันของหน่วยความจำย่อยๆ จำนวนมากที่สะสมความรู้เอาไว้ ความรู้เหล่านี้จะได้จากการฝึกสอนไว้ก่อน เช่นการสอนให้รู้จักตัวอักษร “ก” ถึง “ฮ” โดยการส่งภาพตัวอักษรเหล่านี้เข้าไป พร้อมกับบอกว่ามีค่าเป็นรหัสตัวอักษรอะไร โครงข่ายประสาทเทียมจะเรียนรู้ถึงรูปแบบตัวอักษรที่หลากหลายของตัวอักษรตัวนั้น เพื่อว่าเวลาทำงานจริงจะได้มีความสามารถพอที่จะรับมือกับภาพตัวอักษรในหลายๆ รูปแบบ สิ่งที่สอนให้กับโครงข่ายประสาทเทียมไม่จำเป็นต้องเป็นรูปของตัวอักษรอย่างที่เราเห็นกันก็ได้ อินพุตที่ส่งให้มักจะผ่านขั้นตอนการสกัดลักษณะสำคัญ และกระบวนการประมวลผลเบื้องต้นอื่นๆ ก่อนเสมอ
==== ขบวนการประมวลผลขั้นปลาย (Post-Processing) ====
หลังจากที่ผ่านขั้นตอนการรู้จำแล้ว รูปตัวอักษรที่ถูกส่งเข้าไปจะได้ผลลัพธ์ออกมาเป็นรหัสตัวอักษร ซึ่งก็ไม่ได้หมายความว่าเอาต์พุตที่ได้มาจะถูกต้องทั้งหมด ไม่มีผลิตภัณฑ์โอซีอาร์ตัวใด ไม่ว่าจะเป็นภาษาใดก็ตามที่รับรองความถูกต้อง 100 % ดังนั้นเพื่อเพิ่มความถูกต้องให้แก่โปรแกรมจึงได้มีการเสริมส่วนการตรวจสอบและแก้ไขข้อความเข้ามา โปรแกรมส่วนนี้มักจะทำงานเกี่ยวกับการตรวจสอบความถูกต้องของการสะกดคำและไวยากรณ์ภาษา โดยมักจะใช้พจนานุกรมมาช่วยในการตรวจสอบคำผิด ซึ่งอาจแก้ไขให้โดยอัตโนมัติหรือแสดงเครื่องหมายบางอย่างเพื่อบอกให้ผู้ใช้ทราบว่าคำดังกล่าวอาจไม่ถูกต้อง ซึ่งผู้ใช้อาจแก้หรือไม่แก้ก็ขึ้นกับการตัดสินใจของผู้ใช้เอง นอกเหนือไปจากการตรวจสอบความถูกต้องระดับคำแล้ว บางโปรแกรมยังมีความสามารถตรวจสอบไวยากรณ์ในระดับประโยคได้ด้วย 
ส่วนขบวนการประมวลผลขั้นปลายในโปรแกรมโอซีอาร์เป็นส่วนที่มีความสำคัญมาก ลำพังแต่ความสามารถของส่วนการรู้จำนั้นไม่สามารถไปถึงระดับที่ผู้ใช้ยอมรับได้ (ซึ่งที่ต้องการจริงๆ คือ 100%) ดังนั้นส่วนนี้สามารถเพิ่มอัตราความถูกต้องให้แก่โปรแกรมได้ โดยเฉพาะในส่วนที่นอกเหนือจากความสามารถของส่วนการรู้จำ เช่น ตัวอักษรที่เปรอะเปื้อนมากๆ หรือตัวอักษรที่ติดหรือขาด เป็นต้น
thread_title:  โครงสร้างระบบโอซีอาร์ 

message: ในการทำงานของโปรแกรมโอซีอาร์นั้น ก่อนที่โปรแกรมจะสามารถบอกได้ว่ารูปภาพที่ส่งเข้าไปประกอบด้วยตัวอักษรอะไรบ้าง จำเป็นจะต้องผ่านขั้นตอนที่สำคัญหลายขั้น ขั้นตอนดังกล่าวนี้มักถูกเรียกรวมกันว่า กระบวนการประมวลผลขั้นต้น (Pre-Processing) ซึ่งเป็นขั้นตอนในการปรับแต่งและจัดเตรียมข้อมูลให้เหมาะสมกับขั้นตอนการรู้จำต่อไป ขั้นตอนเหล่านี้มีความสำคัญต่อประสิทธิภาพโดยรวมของระบบ เพราะหากมีความผิดพลาดเกิดขึ้นในส่วนนี้ ก็จะส่งผลกระทบไปยังส่วนถัดไปของระบบด้วย
ขั้นตอนการประมวลผลเบื้องต้นในโปรแกรมโอซีอาร์ที่สำคัญ ได้แก่ 
===== การกรองข้อมูลแทรกซ้อน  (Noise Filtering) =====
การกรองข้อมูลแทรกซ้อนมีจุดประสงค์เพื่อลดทอนส่วนของรูปภาพที่เป็นสิ่งแปลกปลอมอันไม่พึงประสงค์ออกไป โดยข้อมูลแทรกซ้อนที่เกิดขึ้นส่วนใหญ่มักจะมาจากคุณภาพของเอกสารต้นฉบับที่นำมาทำการอ่าน  ซึ่งเป็นต้นเหตุสำคัญที่ทำให้ความถูกต้องของโปรแกรมลดลง จึงจำเป็นที่จะต้องจัดการกับส่วนเกินเหล่านี้ออกไปให้ได้มากที่สุดเท่าที่จะเป็นไปได้ แต่เรายังไม่มีวิธีการใดที่รับรองได้ว่าสามารถจัดการกับข้อมูลแทรกซ้อนได้ โดยสมบูรณ์ ดังนั้นส่วนการรู้จำของโอซีอาร์ก็จะต้องมีความทนทานต่อการแทรกซ้อนเหล่านี้ได้พอสมควร
===== การปรับแต่งข้อมูล (Normalization) =====
การปรับแต่งข้อมูลเป็นการปรับภาพตัวอักษรให้อยู่ในรูปแบบที่ระบบต้องการเพื่อนำไปใช้ในขั้นต่อไป ตัวอย่างการปรับแต่งข้อมูลในโปรแกรมโอซีอาร์ทั่วๆ ไป อาทิเช่น การปรับขนาดรูปตัวอักษร, การปรับตัวอักษรที่เอียงให้ตรง, การแปลงรูปสีหรือเกรย์สเกลให้เป็นขาวดำ หรือในทางกลับกัน การแปลงรูปขาวดำให้เป็นสีหรือเกรย์สเกล เป็นต้น
===== การตัดแบ่งพื้นที่ใช้งาน (Cropping) =====
การตัดแบ่งพื้นที่เป็นการตัดแยกเอาเฉพาะรูปตัวอักษรออกมาจากภาพ เพื่อส่งให้ขั้นตอนการรู้จำในการระบุว่ารูปตัวอักษรนั้นเป็นรหัสอักษรอะไร หลักการพอสังเขปที่ใช้สำหรับการตัดรูปตัวอักษรโดยทั่วไปจะใช้พื้นที่สีขาว (สีพื้น) รอบรูปเป็นตัวกำหนดขอบเขตในการตัด ในขั้นตอนนี้มักจะประสบปัญหาที่ส่งผลกระทบต่ออัตราความถูกต้องของระบบโดยรวมอยู่สองปัญหา ปัญหาแรกคือปัญหาตัวติด เกิดจากรูปของตัวอักษรตั้งแต่สองตัวขึ้นไปมีส่วนที่เชื่อมติดกัน ทำให้ไม่สามารถแยกตัวอักษรออกจากกันโดยใช้พื้นที่สีขาวรอบๆ ได้ จำเป็นต้องหาอัลกอริธึมพิเศษมาช่วยในการแยกตัวอักษรออกจากกัน  ส่วนปัญหาที่สองในทางตรงกันข้าม เป็นปัญหาตัวขาดที่รูปตัวอักษรหนึ่งๆ ถูกแยกออกเป็นส่วนๆ ทำให้เวลาตัดตัวอักษรจากตัวเดียวจะได้เป็นสองตัว  ซึ่งก็ต้องหาวิธีการเฉพาะสำหรับมาจัดการอีกเช่นกัน 
===== การสกัดลักษณะสำคัญ (Feature Extraction) =====
การสกัดลักษณะสำคัญเป็นอีกขบวนการหนึ่งที่สำคัญมาก ตำราส่วนใหญ่จะแยกส่วนนี้ออกจากการประมวลผลเบื้องต้น คือจะอยู่ระหว่างขั้นตอนการประมวลผลเบื้องต้นกับขั้นตอนการรู้จำ แต่ในที่นี้ขอรวมไว้ในตอนเดียวกัน การสกัดลักษณะสำคัญเป็นการดึงเอาโครงสร้างพื้นฐานที่สำคัญของตัวอักษรนั้นออกมา โดยโครงสร้างพื้นฐานที่ว่าจะต้องมีการกำหนดไว้ก่อนว่าจะมีอะไรบ้าง มีการนิยามอย่างไร ตัวอย่างเช่น สำหรับภาษาไทยเราอาจกำหนดว่าตัวอักษรภาษาไทยทั้งหมดประกอบด้วยโครงสร้างพื้นฐานคือ เส้นตรง (แนวตั้ง/นอน) เส้นเอียง หัว (วงกลม) ส่วนโค้ง ส่วนเว้า จุดแตกกิ่ง จุดตัด เป็นต้น เมื่อเราสามารถแยกเอาองค์ประกอบของตัวอักษรแต่ละตัวออกมาได้แล้ว จากนั้นเราก็นำเสนอรูปภาพของตัวอักษรนั้นในรูปแบบของรายการขององค์ประกอบพื้นฐานต่างๆ แทน ซึ่งจะถูกส่งต่อเป็นอินพุตสำหรับขั้นตอนการรู้จำต่อไป
thread_title:  ขบวนการประมวลผลขั้นต้น (Pre-Processing) 

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

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

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

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

message: ขั้นตอนนี้ถือเป็นหัวใจของระบบ เพราะเป็นส่วนที่จะตัดสินว่ารูปตัวอักษรที่ส่งเข้าไปเป็นรหัสตัวอักษรอะไร เช่นเดียวกับส่วนอื่นๆ ที่มีวิธีการหลากหลายซึ่งนำมาใช้เพื่อให้ได้ผลการทำงานที่ดีที่สุด เทคนิคใหม่ๆ ได้ถูกพัฒนาขึ้นมาอย่างต่อเนื่องเพื่อรองรับกับปัญหาที่เกิดจากเอกสารที่มีความสลับซับซ้อนมากขึ้น อย่างไรก็ตามเราพอที่จะจัดแบ่งเทคนิคเหล่านี้ออกเป็นกลุ่มตามแนวทางหลักที่ใช้ในการแก้ปัญหา ถึงแม้บ่อยครั้งที่พบว่ามีความคาบเกี่ยวกันของเทคนิคที่นำมาใช้ระหว่างกลุ่มที่ว่านี้ ทั้งนี้เพราะแต่ละแนวทางก็มีข้อดีข้อเสียที่แตกต่างกัน จึงมีความพยายามที่จะรวมเอาเทคนิคเหล่านี้มาใช้ร่วมกันเพื่อเพิ่มความสามารถของระบบเท่าที่จะเป็นไปได้  ดังนั้นการแบ่งกลุ่มในที่นี้ เป็นการแบ่งที่เน้นความชัดเจนในแง่ของขอบเขตทางทฤษฎีเป็นหลัก โดยแนวทางการรู้จำสามารถแบ่งออกได้เป็น 4 กลุ่ม ดังนี้
===== วิธีทางการเข้าคู่รูปแบบ (Template Matching) =====
วิธีการเข้าคู่รูปแบบเป็นวิธีการแรกๆ ที่มาใช้ในการรู้จำตัวอักษร หลักการโดยทั่วไปคือ จะต้องมีรูปแบบ (template) ที่สร้างขึ้นมาสำหรับอ่านตัวอักษร โดยมีการกำหนดตำแหน่งสำคัญที่สามารถใช้แยกแยะความแตกต่างระหว่างตัวอักษรแต่ละตัว เวลาทำงานก็ให้นำรูปภาพที่ต้องการอ่านไปทาบบนแบบเพื่อวัดความคล้ายคลึงกันของภาพกับตัวแบบ จากนั้นก็ระบุว่าเป็นรหัสตัวอักษรอะไร โดยใช้ค่าผ่านระดับหรือวิธีการบางอย่างในการตัดสิน วิธีการนี้จะค่อนข้างอ่อนไหวต่อข้อมูลแทรกซ้อน ขนาด และการเอียงของตัวอักษร จึงจำเป็นต้องมีขั้นตอนการปรับแต่งข้อมูลที่ดี นอกจากนั้นขั้นตอนการเปรียบเทียบก็ไม่ใช่ว่าสามารถเทียบกันแบบจุดต่อจุดได้ เพราะในทางปฏิบัติตัวอักษรที่ส่งเข้าสามารถมีความแปรปรวนได้หลายรูปแบบ ดังนั้นวิธีการเทียบก็ต้องมีประสิทธิภาพเพียงพอที่จะรองรับกับปัญหาดังกล่าวได้
===== วิธีทางสถิติ (Statistical Approach) =====
วิธีทางสถิติเป็นวิธีการที่ใช้หลักการทางสถิติ โดยนำค่าความน่าจะเป็นและ/หรือฟังก์ชันการแจกแจงความน่าจะเป็นมาใช้ในการตัดสินใจ รูปภาพอินพุตที่ได้มาจากขั้นตอนการสกัดลักษณะสำคัญ จะถูกส่งเข้าไปในส่วนการรู้จำเฉพาะของแต่ละตัวอักษร ซึ่งได้ผลลัพธ์ออกมาเป็นค่าความน่าจะเป็นที่อินพุตเป็นตัวอักษรใด เมื่ออินพุตได้ผ่านส่วนการรู้จำครบทุกตัวแล้ว ก็นำเอาผลลัพธ์ที่ได้ทั้งหมดมาเปรียบเทียบกันว่าได้ค่าความน่าจะเป็นของตัวอักษรใดมากที่สุด ผลลัพธ์จะออกเป็นตัวอักษรนั้น 
===== วิธีการวิเคราะห์ทางโครงสร้าง (Structural Analysis) =====
วิธีการวิเคราะห์ทางโครงสร้างคือการวิเคราะห์โครงสร้างตัวอักษร โดยถือว่าตัวอักษรทุกตัวประกอบด้วยองค์ประกอบพื้นฐาน ซึ่งได้มาจากการสกัดลักษณะสำคัญ เช่นเดียวกันกับวิธีการทางสถิติ ต่างกันตรงที่ลักษณะสำคัญ ที่ส่งมาให้กับขั้นตอนการรู้จำแบบการวิเคราะห์ทางโครงสร้างนี้ มักจะใช้เป็นชื่อหรือค่าที่บอกว่าลักษณะโครงสร้างสำคัญนั้นเป็นอะไร เช่น เส้นตรง วงกลม เป็นต้น แทนที่จะเป็นค่าจำนวนจริง ในขั้นตอนการรู้จำลักษณะสำคัญทั้งหลายที่ประกอบเป็นตัวอักษรนั้น จะถูกส่งเข้าไปให้กับส่วนที่ตรวจวิเคราะห์กฎการเขียนตัวอักษร เช่น ฟอร์มอลแกรมมาแมชชีน (formal grammar machine) โครงสร้างกราฟ  หรือโครงสร้างต้นไม้เป็นต้น เพื่อระบุว่าเป็นตัวอะไร  ซึ่งจะตัดสินโดยการดูที่รูปแบบการเชื่อมต่อขององค์ประกอบต่างๆ เข้าเป็นตัวอักษรนั้น วิธีการนี้มีข้อดีตรงที่มีความยืดหยุ่นต่อความหลากหลายของตัวอักษรค่อนข้างมาก อย่างไรก็ตามอัตราความถูกต้องของวิธีนี้ขึ้นอยู่กับการสร้างกฎและการวิเคราะห์กฎที่มีประสิทธิภาพ ซึ่งเป็นส่วนที่สำคัญที่สุดของวิธีการนี้  
===== วิธีทางโครงข่ายประสาทเทียม (Neural Network) =====
วิธีทางโครงข่ายประสาทเทียมเป็นแนวทางใหม่ที่ได้รับความนิยมอย่างมากในช่วงหลัง เนื่องจากประสิทธิภาพในด้านการรู้จำแบบ ซึ่งถูกนำไปใช้ในงานหลายๆ ด้าน รวมทั้งโอซีอาร์ด้วย โครงข่ายประสาทเทียมเป็นเทคนิคที่พยายามเรียนแบบการทำงานของสมองมนุษย์ ที่มีโครงข่ายเชื่อมต่อกันของหน่วยความจำย่อยๆ จำนวนมากที่สะสมความรู้เอาไว้ ความรู้เหล่านี้จะได้จากการฝึกสอนไว้ก่อน เช่นการสอนให้รู้จักตัวอักษร “ก” ถึง “ฮ” โดยการส่งภาพตัวอักษรเหล่านี้เข้าไป พร้อมกับบอกว่ามีค่าเป็นรหัสตัวอักษรอะไร โครงข่ายประสาทเทียมจะเรียนรู้ถึงรูปแบบตัวอักษรที่หลากหลายของตัวอักษรตัวนั้น เพื่อว่าเวลาทำงานจริงจะได้มีความสามารถพอที่จะรับมือกับภาพตัวอักษรในหลายๆ รูปแบบ สิ่งที่สอนให้กับโครงข่ายประสาทเทียมไม่จำเป็นต้องเป็นรูปของตัวอักษรอย่างที่เราเห็นกันก็ได้ อินพุตที่ส่งให้มักจะผ่านขั้นตอนการสกัดลักษณะสำคัญ และกระบวนการประมวลผลเบื้องต้นอื่นๆ ก่อนเสมอ
thread_title:  การรู้จำ (Recognition) 

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

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

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

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

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

message: เครื่องจำอักขระด้วยแสง (ใช้เทคนิคเกี่ยวกับแสงเช่นเดียวกับกระจกและเลนส์) และเครื่องจำอักขระแบบดิจิทัล
(ใช้เครื่องสแกนเนอร์และขั้นตอนทางคอมพิวเตอร์) ซึ่งในปัจจุบัน เครื่องจำอักขระด้วยแสงได้ถูกพัฒนาให้ครอบคลุม
การจำตัวอักษรได้ดีกว่าเดิม
thread_title:  เครื่องจำอักขระด้วยแสงเปรียบเทียบกับแบบดิจิทัล 

message: ระบบสำหรับการจดจำ การพิมพ์ลายมือ บนธุรกิจการบินได้รับความสำเร็จด้วยดีในปีที่ผ่านมา    โดยนำอุปกรณ์เหล่านี้เข้ามาช่วยได้แก่  พาล์มไพลอท (Palm Pilot) และ พีดีเอ (Personal Digital Assistant) โดย Apple Newton เป็นผู้บุกเบิกเทคโนโลยีนี้ วิธีใช้อุปกรณ์เหล่านี้จะมีการเปรียบเทียบข้อเท็จจริงเกี่ยวกับคำสั่ง ความเร็ว และคำแนะนำ เมื่อข้อมูลนำได้ถูกรับทราบอีกด้วย      ผู้ใช้สามารถฝึกฝนเพื่อใช้รูปร่างจดหมายอย่างจำเพาะเจาะจงเท่านั้น
thread_title:  ระบบสำหรับการจดจำ การพิมพ์ลายมือ 

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