การรู้จำอักขระด้วยแสงเพื่อสกัดข้อมูลเชิงคอลัมน์จากแคตตาล็อกสินค้าค้าปลีก
An OCR-Based Approach for Column-wise Information Extraction from Retail Catalogs
ผู้จัดทำ: นางสาวอรวรรยา นันทร์สาลี
อาจารย์ที่ปรึกษา: ผู้ช่วยศาสตราจารย์ ดร.ศรีศุภางค์ ทิ้วสุวรรณ
ที่มาและความสำคัญ
แคตตาล็อกสินค้าในธุรกิจค้าปลีกส่วนใหญ่อยู่ในรูปแบบภาพ ทำให้การนำข้อมูลไปใช้งานต่อเป็นไปได้ยากและใช้เวลามาก เนื่องจากต้องแปลงเป็นตัวอักษรและบันทึกด้วยมือ การใช้ LLM ในการแปลงข้อมูลจากภาพให้เป็นข้อมูลเชิงโครงสร้างอย่างอัตโนมัติ ช่วยลดเวลา เพิ่มความแม่นยำ และรองรับการใช้งานในระบบจัดการสินค้าและอีคอมเมิร์ซ
วัตถุประสงค์
- ศึกษาเครื่องมือ OCR และเทคนิคประมวลผลข้อความ เพื่อดึงข้อมูลราคาสินค้าและโปรโมชันจากแคตตาล็อกของคู่แข่งทางการค้า
- แปลงข้อมูลจากรูปภาพให้อยู่ในรูปแบบข้อมูลเชิงโครงสร้าง (Structured Data) เพื่อสะดวกต่อการวิเคราะห์ โดยใช้ LLM
วิธีการดำเนินงาน (Methodology)
กระบวนการพัฒนาระบบในโครงงานนี้แบ่งออกเป็น 4 ขั้นตอนหลัก เพื่อให้สามารถดึงข้อมูลจากแคตตาล็อกสินค้าและแปลงให้อยู่ในรูปแบบเชิงโครงสร้างได้อย่างมีประสิทธิภาพ
1. Input catalog — รวบรวมและเตรียมภาพข้อมูลที่ใช้ในการประมวลผล จาก E-catalog และ Go wholesale catalog
2. Product Detail Segmentation — ทำ Data Annotation บนภาพด้วย CVAT เพื่อกำหนดตำแหน่งข้อมูลที่ต้องการ นำภาพที่ได้ไปเทรน YOLO และเลือกใช้เฉพาะส่วนที่ต้องการที่จะทำไป OCR
3. OCR (Optical Character Recognition) — ประกอบด้วย 4 ขั้นตอน:
- Step 1: EasyOCR — แปลงภาพ → ข้อความ (รองรับหลายภาษา เร็ว ใช้ดึงข้อมูลเบื้องต้น)
- Step 2: LLM (Gemini) — ดึงข้อมูลสำคัญจากข้อความ เช่น ID, ชื่อสินค้า, ราคา ให้แม่นขึ้น
- Step 3: LLM Selection — เปรียบเทียบผลจากหลาย OCR แล้วเลือกข้อมูลที่ถูกต้องที่สุด
- Step 4: OCR.space — OCR เสริมผ่าน API เพื่อเพิ่มความครบถ้วนของข้อมูล
4. Data Structuring — ข้อมูลที่ได้จาก OCR ถูกจัดโครงสร้างออกเป็น 2 ส่วนหลัก:
- Product Information (ข้อมูลพื้นฐานสินค้า): product_ID, product_name, unit, normal_price, discounted_price
- Step Pricing (ข้อมูลราคาขั้นบันได): step_qty, step_price, step_avgprice รองรับหลายระดับ (step 1, step 2, step 3)
ผลการดำเนินงาน (Results)
ตารางแสดงสรุปผลการประเมินประสิทธิภาพของโมเดล YOLOv8n:
| รายการประเมิน |
ค่า |
| ระยะเวลาที่ใช้ฝึกสอนโมเดล |
23.2 นาที |
| จำนวนรอบที่ฝึกสอน |
284 รอบการฝึก |
| Precision |
0.996 |
| Recall |
0.996 |
| mAP@.5 |
0.995 |
| mAP@.5:.95 |
0.839 |
การเปรียบเทียบวิธีการ OCR:
| วิธีการ |
Avg Text Time (ms) |
Product ID Accuracy |
Product Name Accuracy |
Product Price Accuracy |
| EasyOCR |
11.0 µs/it |
99.92% |
70.92% |
46.85% |
| LLM Gemini |
8-4 µs/it (3 ครั้ง) |
100% |
88.60% |
100% |
| LLM selection |
17.2 µs/it |
100% |
88.32% |
98.79% |
| OCR.space |
89.1 µs/it (3 ครั้ง) |
100% |
97.1% (en/th) |
100% |
ผลการทดลองแสดงความแม่นยำในแต่ละขั้นตอน โดย Product ID และ Product Price มีความถูกต้องใกล้เคียง 100% ขณะที่ Product Name มีความแม่นยำ 85–91%
สรุปผล (Conclusion)
โครงงานนี้พัฒนาระบบสกัดข้อมูลจากแคตตาล็อกสินค้าโดยใช้ Computer Vision, OCR และ LLM ได้อย่างมีประสิทธิภาพ โดยโมเดล YOLO มีความแม่นยำสูง (mAP@50 = 0.995, Recall = 0.996) ช่วยเพิ่มประสิทธิภาพก่อนขั้นตอน OCR ผลการทดลองพบว่า Product ID และ Product Price มีความถูกต้องใกล้เคียง 100% ขณะที่ Product Name มีความแม่นยำ 85–91% และสามารถปรับปรุงได้ด้วย LLM นอกจากนี้ การจัดโครงสร้างข้อมูลด้วย Gemini Parsing มีความแม่นยำมากกว่า 98% แสดงให้เห็นว่าระบบสามารถนำไปประยุกต์ใช้งานจริงได้