2 Nền tảng và các cơng trình liên quan
2.22 Nhận diện các element non text bằng các kĩ thuật Computer
Ở cả 2 bước xử lý cho element dạng text và non-text, sau khi thu được các bounding box lại tiến hành thêm 1 bước nữa là gộp các box lại để kết quả cho ra chính xác hơn. Có 3 trường hợp cần phải gộp:
• Diện tích phần chồng lặp lên nhau đạt ngưỡng. Việc gộp này để lọc bớt các trường hợp nhận diện sai lệch.
• Thành phần nhận diện là text bị trùng với thành phần non-text. Lúc này thành phần text sẽ bị gộp vào non-text bởi các thành phần text trong ảnh thường rất phức tạp dẫn đến kết quả của OCR trả về khơng được tốt. Vì vậy ưu tiên xác định thành các thành phần non-text hơn. • Gộp các từ phát hiện được thành một hàng. Vì trên phương diện thiết kế UI là chỉ có 1 component chứa text nên ưu tiên gộp các từ phát hiện lại thành hàng để đúng bản chất của một GUI hơn.
Sau khi đã phân loại được các component trong ảnh, REMAUI tiến hành lọc bớt 1 lần nữa các thành phần trùng lặp và xây dựng một cây cấu trúc biểu thị cấu trúc các thành phần của ứng dụng. Với cây cấu trúc này, REMAUI sinh mã tương ứng với nền của các component được cắt tương ứng từ ảnh gốc. Kết quả cho ra là một ứng dụng mobile với layout đơn giản tương ứng với ảnh đầu vào(hình 2.23).
Hình 2.23: REMAUI
REMAUI làm rất tốt trên việc phát hiện các element dạng non-text. Tuy nhiên vì các element dạng text thường nằm trong background rất phức tạp
nên nếu dùng Tesseract sẽ rất khó phát hiện vì Tesseract được huấn luyện trên các document text.
2.2.2 Xianyu
Xianyu là một cơng cụ sinh mã từ ảnh GUI do nhóm nghiên cứu của Alibaba phát triển cho ứng dụng mua hàng Xianyu(hình 2.24). Bởi tính chất thường xuyên phải chạy khuyến mãi cũng như cải thiện giao diện để mang lại trải nghiệm người dùng tốt hơn, nhóm phát triển frontend phải mất rất nhiều thời gian để hiện thực các giao diện dựa trên bản vẽ của designer. Để gia tăng năng suất làm việc, nhóm nghiên cứu của Alibaba đã quyết định xây dựng một cơng cụ giúp phân tích bản thiết kế hay ảnh GUI và chuyển đổi sang skeleton code cho developer.
Tập dữ liệu mà Xianyu sử dụng chính là ảnh của ứng dụng Xianyu với giao diện khá đơn giản.