Tôi sẽ giải thích lấy ví dụ GUI của ứng dụng Máy tính trong windows. Khi ứng dụng Máy tính này mở và tập trung, tôi cần tìm cách phát hiện tất cả các nút. Tôi chỉ có thể sử dụng các phương pháp không xâm phạm, vì vậy những thứ như id nút không nằm trong câu hỏi. Điều này dẫn tôi đến nhận dạng hình ảnh. Hay nói tốt hơn là phát hiện hình ảnh, vì tôi không muốn một hình ảnh cụ thể, mà là một bộ hình ảnh theo một mẫu nhất định. Tôi biết làm thế nào tôi có thể nhấp / nhấp chuột phải / dbl-click / etc bằng cách sử dụng một hình ảnh nút và nhận dạng hình ảnh nhất định [1]. Tôi không biết làm thế nào tôi có thể thực hiện theo cách khác: quét GUI và tìm những khu vực đáp ứng các yêu cầu là nút (hình chữ nhật, văn bản / biểu tượng / đồ họa được dán nhãn, v.v.). Một cách giải quyết lớn hơn sẽ là phát hiện các mục không có hình chữ nhật (ví dụ: biểu tượng trên màn hình nền windows)
Điều gần nhất với những gì tôi cần là phát hiện khuôn mặt trong ảnh. [2] Nhưng tôi không biết làm thế nào để áp dụng điều này trong trường hợp của tôi. Để phát hiện khuôn mặt của con người, tôi thấy rằng hàng trăm hình ảnh khuôn mặt phải được sử dụng trong thế hệ thác Haar (không biết làm thế nào tôi sẽ làm điều này chỉ với 10 - 15 nút chụp nhanh). Nếu một loại đối tượng khác phải được phát hiện như một quả táo, bạn cần phải tạo tầng Haar cho đối tượng đó một lần nữa bằng cách sử dụng nhiều hình ảnh.
Có ai trong các bạn đã từng cố gắng phát hiện các nút, vật phẩm hoặc bất cứ thứ gì trong GUI chỉ bằng cách phát hiện mẫu không? Tôi chỉ cần một cái gì đó để nói với tôi "đây là một biểu tượng / nút" để tôi có thể lấy khu vực đó trong một ảnh chụp nhanh.
[1] Tôi sử dụng SikuliX với Python để thực hiện các hành động trên các mẫu đã cho.
[2] Tôi thấy rằng điều này được thực hiện dễ dàng bằng cách sử dụng các tầng OpenCV và Haar (ở định dạng XML). Tạo ra các ca khúc Haar đòi hỏi một chút kiên nhẫn và kỹ năng.