MMLab · MVP demo

Pipeline OCR chữ viết tay cho ảnh bài làm

Ba module rời rạc, ghép lại thành một luồng chấm bài tự động. Module 1 đã chạy được trực tiếp trên trình duyệt — không cần server, không upload dữ liệu đi đâu cả.

Chạy Module 1
Module 00 Sẵn sàng

Exam Config

Khai báo số trang, thứ tự câu trong từng trang và dạng câu (short text, long text, code, table). Dùng chung cho cả 3 module.

  • Input: người dùng nhập / import JSON
  • Output: exam_config dùng xuyên suốt pipeline
Module 01 Sẵn sàng

ROI Detection

Tìm các vùng học sinh điền đáp án (nét đứt & bảng biểu) trên ảnh đề mẫu, sắp xếp theo thứ tự và xuất file JSON.

  • Input: folder ảnh template
  • Output: rois.json [x1,y1,x2,y2]
Module 02 Sẵn sàng

Page Alignment & Crop

Căn chỉnh ảnh bài làm về đúng khung template, sau đó cắt từng ROI theo tọa độ của Module 1.

  • Input: ảnh bài làm + rois.json
  • Output: ảnh crop từng câu
Module 03 Sẵn sàng

Handwriting OCR

Nhận dạng chữ viết tay trong từng vùng crop theo 4 dạng câu (short text, long text, code, table) và map về đúng câu hỏi.

  • Input: folder ảnh crop
  • Output: Results.json theo từng câu

Thuật toán Module 1

  1. 01Nhị phân hóa ảnh (blur + adaptive threshold)
  2. 02Tìm các dấu chấm, gom các chấm cách đều trên một dòng
  3. 03Gộp các đoạn nét đứt cùng dòng thành một bbox
  4. 04Gộp các dòng cách đều nhau thành block lớn
  5. 05Padding vùng bao để bắt trọn chữ học sinh
  6. 06Tìm bảng bằng morphology, loại bảng thuộc đề bài
  7. 07Sắp xếp ROI theo trục Y rồi trục X
  8. 08Xuất JSON theo từng trang ảnh