API การจดจำอักขระด้วยแสงฟรีสำหรับต้นฉบับภาษาจีน

OCR C++ แบบเปิดแหล่งที่มาสำหรับทำการจดจำอักขระบนต้นฉบับภาษาจีนโดยใช้การจับคู่แบบเทมเพลต ซึ่งอักขระจะถูกเปรียบเทียบพิกเซลต่อพิกเซลกับตัวอย่างที่รู้จัก.

OCR C++ ฟรีคืออะไร?

การจดจำอักขระด้วยแสง (OCR) ในสคริปต์ที่ไม่ใช่ละติน—โดยเฉพาะภาษาจีน—มีความท้าทายเฉพาะเนื่องจากความซับซ้อนและความหลากหลายของอักขระ โชคดีที่ OCR C++ แบบโอเพ่นซอร์สโดย Sebastian Starke นำเสนอวิธีแก้ที่สะอาดและขยายได้ซึ่งออกแบบมาสำหรับการจดจำอักขระที่พิมพ์หรือเขียนด้วยมือจากแหล่งต้นฉบับ การออกแบบโดยคำนึงถึงความเรียบง่ายและความยืดหยุ่น ทำให้ API ที่มีน้ำหนักเบานี้ช่วยให้นักพัฒนาซอฟต์แวร์ทดลองการจดจำอักขระด้วยวิธีการประมวลผลภาพคลาสสิกแทนโมเดลการเรียนรู้เครื่องที่หนักหน่วง

โครงการนี้ไม่ใช่เครื่องยนต์ OCR แบบประสาทเทียมขนาดเต็มเช่น Tesseract แต่ใช้แนวทางที่ต่างออกไป: ใช้การจับคู่แบบเทมเพลต ซึ่งอักขระจะถูกเปรียบเทียบพิกเซลต่อพิกเซลกับตัวอย่างที่รู้จัก ทำให้เหมาะสำหรับการใช้ในด้านการศึกษา สภาพแวดล้อมที่ควบคุม หรือภารกิจการจดจำเฉพาะเช่นการวิเคราะห์ต้นฉบับประวัติศาสตร์ แบบอักษรจีนดั้งเดิม หรือชุดข้อมูลการเขียนมือแบบง่าย โครงการนี้เหมาะอย่างยิ่งสำหรับนักพัฒนาที่ทำงานในสภาพแวดล้อมที่มีทรัพยากรจำกัด เช่น ระบบ Linux ฝังตัว, Raspberry Pi หรืออุปกรณ์สแกนอุตสาหกรรม เนื่องจากไม่พึ่งพาขึ้นกับไลบรารีขนาดใหญ่หรือโมเดลการเรียนรู้ลึก

Previous Next

เริ่มต้นใช้งาน OCR

วิธีที่แนะนำในการติดตั้ง OCR คือการใช้ GitHub โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

Install OCR API via GitHub

Install OCR API via GitHub

 git clone https://github.com/sebastianstarke/OCR.git  

You can also install it manually; download the latest release files directly from GitHub repository.

เครื่องยนต์ OCR แบบเทมเพลต

API OCR แบบเปิดแหล่งที่มาสำหรับต้นฉบับภาษาจีนใน C++ ได้ให้การสนับสนุนเต็มรูปแบบสำหรับการใช้เครื่องยนต์ OCR แบบเทมเพลตภายในแอป C++ ใจกลางของไลบรารีนี้คือระบบเปรียบเทียบภาพคลาสสิก: ภาพอักขระจะถูกทำให้เป็นสีขาว-ดำและเปรียบเทียบกับเทมเพลตโดยใช้เมตริกระยะทาง (โดยทั่วไปคือการเปรียบเทียบพิกเซล) สำหรับภาษาจีน สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับอักษรที่สม่ำเสมอหรือต้นฉบับที่พิมพ์

How to Perform Template-Based OCR Recognition in C++ apps?

OCR::TemplateCollection templates;
templates.loadFromFolder("templates/"); // Load preprocessed characters

OCR::Recognizer recognizer(templates);
std::string recognizedText = recognizer.recognizeFromImage("scanned_page.png");

การสนับสนุนการเตรียมภาพล่วงหน้า

ไลบรารี OCR แบบเปิดแหล่งที่มามีการสนับสนุนฟังก์ชันการเตรียมภาพอย่างครบถ้วนภายในแอป C++ ไลบรารีนี้ให้การเตรียมพื้นฐานเช่นการทำ threshold และการครอปเพื่อล้างข้อมูลรบกวน ภาพต้นฉบับภาษาจีนมักเขียนบนกระดาษเก่า ดังนั้นการทำความสะอาดภาพเป็นสิ่งจำเป็นสำหรับผลลัพธ์ที่แม่นยำ ตัวอย่างต่อไปนี้แสดงให้เห็นว่า ด้วยเพียงไม่กี่บรรทัดของโค้ด C++ นักพัฒนาซอฟต์แวร์สามารถทำการเตรียมภาพได้

How to Perform Image Preprocessing before OCR Operations inside C++ APPs?

OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");

การสนับสนุนการแปลงรูปทรงมอร์โฟโลจิก

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

 ไทย