2 Nền tảng và các cơng trình liên quan
4.3 Sample GUI images
tiếp theo của quá trình tạo mẫu. Giai đoạn này, có 2 phương pháp tiếp cận được đưa ra: (i) Phân tích trực tiếp từ meta-data của bản vẽ thiết kế, hoặc (ii) sử dụng các kỹ thuật Computer Vision để nhận biết Gui-components (xem hình 3.1). Trong luận văn này, nhóm chọn phương pháp (ii) để tiếp cận
bài toán nhận biết GUI-components.
Nhận biết GUI-component sử dụng Computer Vision
Mặc dù nhóm khơng đề cập đến phương pháp (i), nhưng có thể nhận ra một vài hạn chế của phương pháp này. Chẳng hạn như, trong nhiều trường hợp bản thiết kế khơng đến tay lập trình viên dưới dạng có chứa các meta-
data mà chỉ ở dạng hình ảnh trực quan. Trong trường hợp này, kỹ thuật Computer Vision tỏ ra vượt trội bởi nó chỉ cần một tấm ảnh trực quan của GUI-component để thực hiện cơng việc của nó.
Nhóm dựa theo Ui2code [21] cho việc hiện thực mơ hình nhận biết GUI- component (GUI-component detector). Ý tưởng của bài nghiên cứu này là sử dụng các kỹ thuật Image Processing truyền thống để đề xuất các vùng GUI-component. Chia mơ hình thành hai phần chính: Non-Text Element Detection vàText Element Detection.
1. Non-Text Element Detection
Có một lý do mà nhóm khơng sử dụng các kỹ thuật Deep learning đang phổ biến hiện nay. Đầu tiên, những kỹ thuật này yêu cầu lượng dữ liệu lớn trong quá trình huấn luyện, muốn tiếp cận được mục đích phổ thơng thì cần một lượng dữ liệu rất lớn. Ngoài ra, bản chất của các phương pháp thống kê dùng trong các mơ hình học sâu chưa đủ đáp ứng yêu cầu độ chính xác cao của GUI-component detection. Khơng như các mạng Deep Learning phổ thơng, nơi mà việc nhận biết chính xác vật thể được định nghĩa lỏng lẽo (ví dụ, IoU > 0.5), nhận biết GUI-component là sự nhận biết chính xác từng chi tiết (fine-grained recognition), u cầu mơ hình khơng những nhận diện được phân vùng nào thuộc về GUI-component mà phải nhân diện luôn được vùng không phải hoặc gần giống nhưng không phải GUI-component. Và thực tế là, các mơ hình nhận dạng vật thể hiện nay, kể cả anchor-based hay anchor-free đều không đáp ứng được yêu cầu này bởi vì chúng hoặc là quá cứng nhắc hoặc là quá mềm mỏng khi đối mặt với sự nội khác biệt trong lớp đối tượng (in-class variance) hay sự tương đồng giữa các lớp đối tượng (cross-class similarity).
Khơng như các mơ hình deep learning, các phương pháp truyền thống không địi hỏi bất cứ sự huấn luyện nào. Ngồi ra, khi ứng dụng các kỹ thuật này trên việc nhận dạng GUI-component, kết quả cho ra lại tương đối đáp ứng mong đợi. Vì vậy, nhóm quyết định áp dụng các kỹ thuật truyền thống cho việc nhận dạng non-text GUI-component.
Tuy nhiên, một thực tế là, các phương pháp đương thời tuân theo chiến lược bottom-up là đa số, tức là chúng tổng hợp các chi tiết nhỏ của từng đối tượng (edge or contour). Chiến lược bottom-up này không mấy khả quan, đặc biệt trên các tấm ảnh có nền phức tạp hoặc các đối tượng chứa trong các GUI-component. Như trong hình 4.4, chiến lược của nhóm sử dụng chiến lược hồn toàn khác biệt: hướng tiếp cận từ trên xuống, từ thô đến chi tiết (top-down coarse-to-fine).