Классифицировать программу из скриншота - PullRequest
2 голосов
/ 16 июня 2011

Мне нужно написать и алгоритм, который может определить, в каком состоянии находится приложение (используется для заполнения форм), на основе снимков экрана.
Он имеет 2 входа:
A: Приблизительно 2-10 скриншотов из приложения с выбранными различными вкладками.Они сделаны пользователем, поэтому я могу проинструктировать его о таких вещах, как «выбрать верхнюю область программы» или «выбрать все окно», но я не могу ожидать точности до пикселя.
B: скриншот одного из этих состояний.Формы заполнены различными данными.

Цель состоит в том, чтобы определить, какой снимок экрана с «A» находится в том же состоянии, что и «B».

Пример снимка экрана: example screenshot

Пример, основанный на этом снимке экрана:
Вход: 10 снимков экрана этой программы с выбранными вкладками «Меню», «Заказ на продажу», «Заказ на покупку», ...
B input: снимок экрана выше.

Задача состоит в том, чтобы определить, какой из 10 снимков экрана соответствует этому изображению.

Я попытался использовать алгоритм дескриптора изображения,( SURF ), но он имеет очень высокий коэффициент ошибок, поскольку он не предназначен для таких задач.

У кого-нибудь есть идеи, как сделать такую ​​классификацию?Должен ли я использовать какой-то фильтр (например, медиану или размытие) на скриншотах, а затем запустить какой-нибудь алгоритм классификации?Или извлечь какую-то другую функцию для классификации (БПФ, гистограмма, ..)?

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Полагаю, вы можете использовать ширину вкладки вместо метки вкладки, что намного проще рассчитать.Например, {"Меню", "Заказ на продажу", "Заказ на покупку"} имеют разную ширину.

Если вам нужно заглянуть внутрь вкладки, вы можете попробовать сопоставление шаблона .

1 голос
/ 16 июня 2011

Определите текст каждой вкладки, затем посмотрите на цвет фона. В качестве альтернативы найдите один из значков меню для регистрации на уровне пикселей, затем выполните точечную выборку, чтобы определить, какая вкладка выбрана.

...