Bối cảnh và vấn đề nghiên cứu

Sơ đồ khối (flowchart/diagram) là phương tiện trực quan hóa phổ biến trong hoạt động trao đổi ý tưởng tại các buổi họp, hội thảo và làm việc nhóm. Trong thực tế, các sơ đồ thảo luận thường được vẽ tay nhanh chóng trên bảng đen, bảng trắng hoặc giấy. Việc chụp ảnh thông thường chỉ giúp lưu lại dữ liệu dạng hình ảnh tĩnh mà không thể trực tiếp chỉnh sửa, tái sử dụng các thành phần hay xuất sang các định dạng tài liệu chuyên nghiệp. Ngược lại, việc vẽ lại thủ công sơ đồ trên máy tính hoặc sử dụng các thiết bị phần cứng chuyên dụng (bảng vẽ điện tử, bút cảm ứng) đòi hỏi chi phí đầu tư và tiêu tốn nhiều thời gian. Xuất phát từ thực tế đó, việc xây dựng một hệ thống số hóa sơ đồ vẽ tay ngoại tuyến (offline diagram recognition) thành cấu trúc dữ liệu số có thể chỉnh sửa là nhu cầu cấp thiết.

Khóa luận tốt nghiệp của tác giả Trần Hoàng Thịnh (Trường Đại học Bách Khoa – ĐHQG TP.HCM, chuyên ngành Khoa học Máy tính) được thực hiện nhằm giải quyết bài toán chuyển đổi hình ảnh sơ đồ vẽ tay thành định dạng cấu trúc kỹ thuật số phục vụ ứng dụng người dùng. Đề tài xác định 5 nhiệm vụ nghiên cứu cụ thể:

  1. Khảo sát các hướng tiếp cận trong bài toán nhận diện sơ đồ (Investigate approaches in diagram recognition problem).
  2. Nghiên cứu các phương pháp học máy cho bài toán (Research on machine learning approaches for the problem).
  3. Chuẩn bị và xử lý tập dữ liệu cho bài toán (Prepare data for the problem).
  4. Đề xuất và hiện thực hóa hệ thống nhận diện sơ đồ (Propose and implement the diagram recognition system).
  5. Đánh giá mô hình đề xuất (Evaluate the proposed model).

Về đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Nhận diện sơ đồ dạng ngoại tuyến từ ảnh chụp tĩnh, tập trung vào ba nhóm thực thể chính: biểu tượng hình học (symbols), đường liên kết/mũi tên (arrows/connectors) và khối văn bản (texts), đồng thời khôi phục mối quan hệ ngữ nghĩa không gian giữa các thực thể.
  • Không gian và môi trường ứng dụng: Hệ thống được thiết kế đóng vai trò tiến trình nền (backend process) trên máy chủ, nhận dữ liệu ảnh và trả về cấu trúc sơ đồ cho ứng dụng phía máy khách (chủ yếu là hệ điều hành Android).
  • Phạm vi và ràng buộc kỹ thuật:
    • Số lượng thực thể: Sơ đồ đầu vào tối đa không quá 15 biểu tượng để phù hợp với màn hình hiển thị di động (< 5.5 inch) và tối ưu thao tác chỉnh sửa của người dùng.
    • Chất lượng hình ảnh: Ảnh đầu vào là ảnh đã tiền xử lý, nét vẽ rõ ràng (bằng phấn, bút bi...), góc xoay nghiêng không vượt quá 10 độ để tránh sai lệch nhận diện hình dạng và văn bản.
    • Thời gian xử lý: Tổng thời gian suy luận của mô hình trên máy chủ được khống chế không vượt quá ngưỡng trần 8 giây.
    • Ràng buộc liên kết: Các mũi tên có thể giao nhau (intersect) nhưng không được phép chồng lấn hoàn toàn trùng khít (overlap).
    • Xử lý văn bản: Nghiên cứu dừng ở mức xác định vùng chứa chữ (bounding box), không thực hiện nhận diện ký tự quang học (OCR).

Cơ sở lý thuyết và phương pháp

Khóa luận phân loại các hướng tiếp cận nhận diện sơ đồ thành hai nhóm chính:

  • Nhận diện trực tuyến (Online Diagram Recognition): Dữ liệu đầu vào là chuỗi tọa độ nét vẽ theo thời gian thực (stroke sequences) thu thập qua màn hình cảm ứng, thường sử dụng các kỹ thuật như Mô hình Markov ẩn (HMM), Trường ngẫu nhiên có điều kiện (CRF), Mạng nơ-ron hồi quy (RNN) hoặc ngữ pháp phân đoạn (DMOS).
  • Nhận diện ngoại tuyến (Offline Diagram Recognition): Dữ liệu đầu vào là ảnh ma trận điểm tĩnh (raster image). Hướng tiếp cận này xử lý trực tiếp không gian đặc trưng của ảnh mà không phụ thuộc vào thứ tự hay thời gian nét vẽ.

Khóa luận sử dụng khung lý thuyết thị giác máy tính và học sâu dựa trên mạng tích chập (CNN), so sánh giữa hai nhánh phát hiện đối tượng:

  • Bộ phát hiện một giai đoạn (One-stage detectors): YOLO (v1–v4), SSD, RetinaNet, RefineDet.
  • Bộ phát hiện hai giai đoạn (Two-stage detectors): R-CNN, SPP-Net, Fast R-CNN, Faster R-CNN, Mask R-CNN và biến thể Keypoint R-CNN.

Tác giả lựa chọn mô hình hai giai đoạn kết hợp giữa kiến trúc Mask R-CNN (cho phân vùng thực thể biểu tượng) và Keypoint R-CNN (cho phát hiện điểm mút mũi tên), sử dụng mạng trích xuất đặc trưng Feature Pyramid Network (FPN) kết hợp kiến trúc ResNet (ResNet50 / ResNet101). Lớp RoIAlign được sử dụng thay thế cho RoIPooling nhằm loại bỏ sai số làm tròn tọa độ số nguyên trên các tầng đặc trưng FPN.

Về nguồn dữ liệu, khóa luận khai thác tập dữ liệu mở Digital Ink Diagram Data (DiDi) của Google gồm 58.655 sơ đồ dạng nét vẽ (Ink strokes) từ 364 người tham gia. Dữ liệu nét vẽ trong định dạng NDJSON được chuyển đổi thành ảnh 2D thông qua thư viện pylab (được đảo ngược trục y để đồng bộ hệ trục tọa độ). Do tập dữ liệu gốc lưu ở dạng trực tuyến, tác giả sử dụng công cụ labelme để tự thực hiện gán nhãn thủ công cho 1.500 ảnh, sau đó chuyển đổi sang định dạng chuẩn COCO phục vụ huấn luyện mô hình phát hiện đối tượng, phân vùng thực thể và phát hiện điểm đặc trưng.

Thuộc tính dữ liệu DiDi Sơ đồ có chữ (Diagram with text) Sơ đồ không chữ (Diagram without text)
Tổng số sơ đồ 22.287 36.368
Tổng số biểu tượng (Symbols) 77.682 139.953
- Process (Hộp xử lý) 15.906 28.251
- Terminal (Bắt đầu/Kết thúc) 15.384 27.575
- Decision (Điều kiện/Rẽ nhánh) 15.360 27.886
- Input (Nhập dữ liệu) 15.412 27.126
- Others (Khác - Bát giác) 15.620 29.115
Tổng số mũi tên (Arrows) 64.361 122.535

Thiết kế và triển khai hệ thống

Hệ thống nhận diện sơ đồ được thiết kế theo luồng xử lý toàn diện qua 4 khối chức năng chính:

  1. Khối trích xuất đặc trưng (Feature Map Generator):

    • Sử dụng FPN kết hợp với mạng xương sống ResNet50 hoặc ResNet101.
    • ResNet được chia thành 5 tầng tương ứng: Stem conv1 (tích chập $7 \times 7$, MaxPool $3 \times 3$), conv2 (1 block tích chập, 2 block đồng nhất), conv3 (1 block tích chập, 3 block đồng nhất), conv4 (1 block tích chập, 5 block đồng nhất với ResNet50), conv5 (1 block tích chập, 2 block đồng nhất).
    • Đầu ra là tập 4 bản đồ đặc trưng đa tỉ lệ $[P_2, P_3, P_4, P_5]$. Trong giai đoạn tinh chỉnh (fine-tuning), tầng conv1 của ResNet được đóng băng.
  2. Khối tạo vùng đề xuất (Proposal Generator - RPN) và NMS cải tiến:

    • RPN sinh tập neo (anchors) với 3 tỉ lệ và 5 tỉ lệ khung hình (aspect ratios) trên các bản đồ đặc trưng.
    • Áp dụng thuật toán Non-Maximum Suppression cải tiến (Improved NMS): Bổ sung trọng số ưu tiên phân lớp ($P_{symbol} = P_{text} = 1$, $P_{arrow} = 0$). Các vùng đề xuất có độ ưu tiên cao hơn sẽ lọc bỏ các vùng đề xuất có độ ưu tiên thấp hơn nếu tỉ lệ giao nhau trên diện tích hộp ưu tiên thấp vượt ngưỡng $t_2 = 0.7$. Giới hạn tối đa 1.500 đề xuất sau NMS.
  3. Khối phân loại, phân vùng và trích xuất điểm đặc trưng (Instance Generator):

    • Các đề xuất dạng biểu tượng đi qua nhánh phân loại, hồi quy hộp bao và nhánh mặt nạ nhị phân kích thước $28 \times 28$.
    • Các đề xuất dạng mũi tên đi qua nhánh phân loại, hồi quy hộp bao và nhánh tạo bản đồ nhiệt điểm đặc trưng (keypoint heatmap) kích thước $56 \times 56$ (xác định 2 điểm: gốc mũi tên arrowtail và đầu mũi tên arrowhead).
    • Hàm mất mát tổng thể gồm 6 thành phần: $$L = L_{rpn_cls} + L_{rpn_reg} + L_{roi_cls} + L_{roi_reg} + L_{roi_mask} + L_{roi_kp}$$
  4. Khối khôi phục cấu trúc sơ đồ (Diagram Building):

    • Thuật toán tinh chỉnh mũi tên (Arrow Refinement): Hợp nhất các đoạn mũi tên bị nhận diện rời rạc nếu khoảng cách điểm mút $\min(d(t_1, h_2), d(t_2, h_1)) < \delta$ (với $\delta = 10\text{ px}$) và góc lệch hướng $\arccos(\frac{a \cdot b}{|a| |b|}) < \theta$ (với $\theta = \pi/18 = 10^\circ$).
    • Thuật toán liên kết Biểu tượng - Mũi tên (Symbol-Arrow): Sử dụng khoảng cách Euclid có trọng số (Weighted Euclidean Distance) trên hệ cơ sở trực giao mới dọc theo vector mũi tên. Trọng số trục vector mũi tên $w_i^* = 1$, trọng số trục trực giao $w_j^* = 3$ nhằm phạt nặng các biểu tượng lệch trục. Tự động loại bỏ các biểu tượng nằm ở nửa mặt phẳng ngược hướng vector mũi tên.
    • Thuật toán liên kết Văn bản - Thành phần (Text-Others): Gán văn bản vào biểu tượng nếu tâm hộp bao văn bản nằm trọn trong hộp bao biểu tượng; gán vào mũi tên nếu khoảng cách Weighted Euclidean ($w_i^* = 3, w_j^* = 1$) nhỏ hơn ngưỡng $\delta = 400$, ngược lại coi là văn bản đứng độc lập.

Nội dung chính theo từng chương

Chương 1: Giới thiệu (Introduction)

Chương mở đầu phân tích quá trình phát triển của trí tuệ nhân tạo, thị giác máy tính và ứng dụng nhận diện đối tượng trong đời sống thực tế (Google Lens, Microsoft Math...). Tác giả trình bày tổng quan sự khác biệt giữa nhận diện sơ đồ trực tuyến và ngoại tuyến, đặt ra mục tiêu xây dựng mô hình chuyển đổi hình ảnh sơ đồ vẽ tay thành cấu trúc dữ liệu ứng dụng, đồng thời xác định cụ thể phạm vi và 5 nhiệm vụ trọng tâm của đề tài.

Chương 2: Tổng quan nghiên cứu liên quan (Related Works)

Tác giả tổng hợp lịch sử phát triển của các phương pháp phát hiện đối tượng:

  • Các kỹ thuật truyền thống: Bộ phát hiện khuôn mặt của Viola-Jones (ảnh tích phân, AdaBoost, cascade detector), đặc trưng HOG.
  • Các kiến trúc CNN hai giai đoạn (R-CNN, SPP-Net, Fast R-CNN, Faster R-CNN) và một giai đoạn (YOLO, SSD, RetinaNet, RefineDet).
  • Các nghiên cứu chuyên biệt về nhận diện sơ đồ mạch điện, công thức hóa học và sơ đồ khối (như tập dữ liệu OHFCD, các phương pháp DMOS, mô hình Markov ngẫu nhiên...).

Chương 3: Kiến thức nền tảng (Background)

Chương này cung cấp cơ sở toán học và kiến trúc của ba mô hình trọng tâm:

  • Faster R-CNN: Mạng trích xuất đặc trưng ResNet (khối tích chập, khối đồng nhất), mạng đề xuất vùng (RPN) với neo đa tỉ lệ, thuật toán NMS truyền thống và hàm mất mát hồi quy Smooth L1.
  • Mask R-CNN: Cơ chế dự đoán mặt nạ nhị phân kích thước $28 \times 28$ bằng Binary Cross-Entropy, kiến trúc FPN kết hợp đường dẫn từ dưới lên (bottom-up) và từ trên xuống (top-down), cơ chế lấy mẫu RoIAlign bảo toàn tọa độ thực.
  • Keypoint R-CNN: Cơ chế ước lượng điểm mút thông qua bản đồ nhiệt $56 \times 56$ tối ưu bằng Cross-Entropy.

Chương 4: Phương pháp đề xuất (Proposed Method)

Trình bày chi tiết toàn bộ giải pháp kỹ thuật do tác giả xây dựng:

  • Quy trình tiền xử lý tập dữ liệu DiDi (chuyển đổi nét vẽ sang ảnh PNG, cấu trúc gán nhãn labelme và thuật toán sinh tệp COCO với tham số mở rộng hộp bao $\alpha = 5\text{ px}$).
  • Kiến trúc đường ống kết hợp giữa FPN-ResNet, RPN, bộ phân loại nhánh kép cho Mask R-CNN và Keypoint R-CNN.
  • Chi tiết 3 thuật toán đề xuất: Thuật toán 4 (Improved NMS), Thuật toán 5 (Arrow Refinement) và Thuật toán 6 (Weighted Euclidean Distance cho liên kết sơ đồ).
  • Định dạng xuất tệp cấu trúc JSON gồm thông tin định danh id, phân loại type, tọa độ coordinate/text, cùng các liên kết quan hệ from và to.

Chương 5: Thực nghiệm và Kết quả (Experiments and Results)

Chương này mô tả các kỹ thuật tăng cường dữ liệu (Data Augmentation) sử dụng thư viện imgaug bao gồm: Cắt ngẫu nhiên lên đến 50% diện tích ảnh, kéo dãn một chiều từ 2 đến 10 lần, xoay ảnh trong phạm vi $\pm 10^\circ$. Tác giả triển khai thực nghiệm huấn luyện và đánh giá trên hai cấu hình mô hình: mô hình chỉ nhận diện không có điểm đặc trưng và mô hình đầy đủ kết hợp trích xuất điểm mút mũi tên, từ đó thực hiện khôi phục đồ thị liên kết hoàn chỉnh.

Chương 6: Kết luận và Hướng phát triển (Conclusion and Future Works)

Tổng kết toàn bộ các mục tiêu đã hoàn thành của khóa luận, phân tích các rào cản kỹ thuật gặp phải trong quá trình thực nghiệm và vạch ra các hướng mở rộng cho hệ thống nhận diện sơ đồ ngoại tuyến trong tương lai.

Kết quả và đóng góp

Kết quả định lượng

  • Độ chính xác nhận diện: Mô hình đạt độ chính xác xấp xỉ 90% (~90%) trong tác vụ nhận diện sơ đồ ngoại tuyến.
  • Hiệu năng xử lý: Thời gian suy luận đạt dưới 2 giây (< 2s) cho mỗi sơ đồ, đáp ứng tốt yêu cầu thời gian thực tế và vượt xa ngưỡng trần yêu cầu (8 giây).
  • Quy mô dữ liệu đóng góp: Đã xử lý, chuẩn hóa và tự thực hiện gán nhãn chi tiết cho 1.500 hình ảnh sơ đồ theo định dạng COCO đa tác vụ (hộp bao, phân vùng mặt nạ và 2 điểm mút mũi tên).
  • Kết quả đánh giá học thuật: Khóa luận được cả cán bộ hướng dẫn (TS. Nguyễn Đức Dũng) và cán bộ phản biện (TS. Nguyễn An Khương) đánh giá điểm 9/10 (xếp loại Giỏi / Excellent).

Đóng góp kỹ thuật chính

  • Đề xuất kiến trúc đường ống tích hợp linh hoạt giữa Mask R-CNN và Keypoint R-CNN trên nền tảng mạng xương sống FPN-ResNet, cho phép đồng thời phân vùng chính xác hình dạng biểu tượng và xác định đúng hướng của các liên kết mũi tên.
  • Xây dựng thuật toán NMS cải tiến (Improved NMS) với cơ chế gán độ ưu tiên phân lớp, giải quyết triệt để hiện tượng mũi tên bị nhận diện đè hoặc lọc nhầm bởi các biểu tượng lớn xung quanh.
  • Đề xuất phương pháp tính khoảng cách Euclid có trọng số (Weighted Euclidean Distance) trên hệ cơ sở trực giao mới, giúp giải quyết chính xác bài toán ghép nối quan hệ ngữ nghĩa Biểu tượng – Mũi tên và Văn bản – Biểu tượng/Mũi tên.
  • Xây dựng định dạng chuẩn đầu ra JSON gọn nhẹ, dễ dàng tương thích với các ứng dụng di động để tái tạo và cho phép người dùng biên tập lại sơ đồ trực tiếp.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận và phiếu nhận xét của hội đồng chỉ ra các hạn chế thực tế:

  • Tập dữ liệu tự gán nhãn còn nhỏ: Quy mô 1.500 ảnh đã gán nhãn còn khiêm tốn so với tổng thể hơn 58.000 mẫu của tập DiDi gốc; số lượng chủng loại thành phần nhận diện còn giới hạn ở các biểu tượng sơ đồ khối cơ bản.
  • Điều kiện thực nghiệm chưa đa dạng: Các thử nghiệm chủ yếu tiến hành trên ảnh vẽ đã tiền xử lý, chưa đánh giá đầy đủ trên ảnh chụp thực tế có độ phức tạp cao (bị đổ bóng, độ tương phản thấp, nét vẽ quá mảnh hoặc mờ).
  • Chưa tích hợp nhận diện chữ thực thụ: Module xử lý văn bản mới dừng lại ở việc phát hiện vị trí vùng chứa chữ (bounding box), chưa tích hợp công cụ OCR để đọc và xuất nội dung chuỗi ký tự.
  • Hạn chế về tài liệu thuyết minh: Báo cáo khóa luận còn ngắn (35 trang) và một số nội dung đóng góp của tác giả chưa được trình bày chi tiết.

Hướng phát triển tiếp theo được đề xuất:

  • Mở rộng quy mô tập dữ liệu gán nhãn và tăng số lượng lớp biểu tượng nhận diện.
  • Tích hợp thêm mô hình OCR chuyên dụng để nhận diện trực tiếp chuỗi văn bản bên trong sơ đồ.
  • Tối ưu hóa mô hình sang C++ hoặc ONNX nhằm tăng tốc độ xử lý trên máy chủ và thử nghiệm trực tiếp trên môi trường ảnh chụp di động thực tế.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho:

  • Sinh viên và học viên chuyên ngành Khoa học Máy tính / Trí tuệ nhân tạo: Làm tài liệu tham khảo về phương pháp kết hợp đa nhiệm (Multi-task learning) giữa Object Detection, Instance Segmentation và Keypoint Estimation trong cùng một khung mạng hai giai đoạn.
  • Kỹ sư thị giác máy tính và phát triển phần mềm: Tham khảo giải thuật xử lý hậu kỳ hữu ích (thuật toán Improved NMS theo độ ưu tiên, giải thuật Weighted Euclidean để ghép nối liên kết đồ thị từ các dự đoán rời rạc).
  • Các nhóm nghiên cứu về số hóa tài liệu: Cung cấp quy trình chi tiết chuyển đổi dữ liệu nét vẽ trực tuyến (Ink strokes) sang dữ liệu ảnh 2D và tạo nhãn định dạng chuẩn COCO phục vụ huấn luyện mô hình học sâu.

Câu hỏi thường gặp

1. Tại sao mô hình phát hiện đối tượng chỉ trả về bounding box thông thường không giải quyết được bài toán liên kết sơ đồ?
Nếu chỉ dùng bounding box, hệ thống chỉ biết được vị trí bao quanh của mũi tên mà không xác định được hướng trỏ của đầu mũi tên (arrowhead) và gốc mũi tên (arrowtail). Khóa luận giải quyết việc này bằng cách tích hợp nhánh Keypoint R-CNN để xác định chính xác tọa độ hai điểm mút, từ đó xác định hướng vector của liên kết.

2. Điểm cải tiến cốt lõi của thuật toán Improved NMS so với NMS truyền thống là gì?
NMS truyền thống chỉ tính IoU giữa các hộp cùng lớp hoặc đối xử bình đẳng giữa các lớp, dễ khiến mũi tên (có dạng đường thẳng mảnh) bị lọc nhầm hoặc chia cắt bởi các biểu tượng lớn. Improved NMS gán độ ưu tiên lớp (biểu tượng/chữ = 1, mũi tên = 0) và tính toán độ phủ trên diện tích của hộp có độ ưu tiên thấp hơn để loại bỏ chính xác các đề xuất dư thừa.

3. Nguyên lý của phương pháp Weighted Euclidean Distance trong việc kết nối Biểu tượng và Mũi tên là gì?
Phương pháp chuyển đổi tọa độ sang hệ cơ sở trực giao mới tạo bởi vector mũi tên. Trọng số dọc theo hướng mũi tên được đặt nhỏ ($w_i^* = 1$) và trọng số theo hướng trực giao vuông góc bị phạt nặng ($w_j^* = 3$), kết hợp loại bỏ các biểu tượng ở nửa mặt phẳng ngược hướng, giúp mũi tên chỉ kết nối chính xác với biểu tượng nằm thẳng hàng trên hướng trỏ của nó.

4. Dữ liệu huấn luyện của đề tài được xây dựng như thế nào từ tập dữ liệu gốc của Google?
Dữ liệu gốc là tập DiDi gồm các nét vẽ thời gian thực dạng NDJSON. Tác giả đã dùng thư viện pylab để vẽ lại thành ảnh PNG 2D (đảo ngược trục y cho đúng quy chuẩn), dùng công cụ labelme gán nhãn thủ công cho 1.500 ảnh với các kiểu nhãn polygon (cho symbol), line strip (cho arrow) và rectangle (cho text), sau đó chuyển đổi sang định dạng COCO JSON chuẩn.

Kết luận

Khóa luận tốt nghiệp của tác giả Trần Hoàng Thịnh đã xây dựng thành công giải pháp toàn diện cho bài toán số hóa sơ đồ vẽ tay ngoại tuyến bằng thị giác máy tính. Bằng cách kết hợp linh hoạt kiến trúc Mask R-CNN và Keypoint R-CNN cùng các thuật toán hậu xử lý đặc thù (Improved NMS, Weighted Euclidean Distance), hệ thống đạt độ chính xác nhận diện khoảng 90% với thời gian xử lý nhanh dưới 2 giây mỗi sơ đồ. Công trình đã hoàn thành đầy đủ các mục tiêu đề ra và được hội đồng chuyên môn Khoa Khoa học & Kỹ thuật Máy tính (Trường ĐH Bách Khoa – ĐHQG TP.HCM) đánh giá xuất sắc với điểm số 9/10.