Поиск по изображению / тексту / цвету / AI
Поиск по изображению, тексту, цвету и с помощью AI.
Захват и анализ изображения
Эта группа триггеров предназначена для захвата изображения приложения или экрана с его последующим анализом.
Настройка
- Mouse Cursor — для некоторых методов захвата эта опция позволяет включать или исключать курсор мыши из итогового изображения.
- Settings => Max Capture FPS — это не настройка конкретного триггера, а общий параметр в настройках приложения, который жестко ограничивает максимальный FPS захвата.
- Max FPS — задает желаемое количество кадров в секунду, которое EyeAuras будет пытаться захватывать и анализировать. Чем выше FPS, тем больше ресурсов потребляет триггер. Во многих случаях фактический FPS, отображаемый в программе, будет ниже целевого, потому что сама обработка кадров тоже занимает заметное время.
- Min FPS — изменяет поведение триггера, если фактический FPS оказывается ниже ожидаемого. Это может происходить, когда системе не хватает ресурсов для достижения выбранного FPS и/или вычисления слишком сложные, как, например, при поиске текста. По сути,
Min FPSдобавляет время жизни для каждого отдельного кадра, и когда кадр считается устаревшим, триггер переключается в состояние Unknown, что вызывает OnExits у всех связанных аур, если триггер до этого был в состоянии Active.- Например,
MaxFPS(он же Target FPS) = 30 (FrameTime is 1000/ 30 = 33ms), фактический FPS = 30 — всё в порядке, система справляется с нагрузкой. MaxFPS= 30 (33ms), фактический FPS = 10 (100ms) — это уже плохо: системе не хватает ресурсов, чтобы держать нужный FPS. В таком случае стоит попробовать применить эффекты изображения или уменьшить размер/разрешение изображения, чтобы приблизиться к целевому FPS.MinFPS= 15 (66ms),MaxFPS= 30 (33ms), фактический FPS = 30 — всё в порядке, работает точно так же, как и приMinFPS = 0, потому что реальный FPS значительно вышеMinFPS.MinFPS= 15 (66ms),MaxFPS= 30 (33ms), фактический FPS = 10 (100ms) — в этом случае триггер определит, что обработка/захват каждого отдельного кадра занимает слишком много времени, и периодически будет переходить в состояние Unknown. Точнее, после 66ms триггер переключится в Unknown на 34ms. Точное время будет отличаться от кадра к кадру. Например, если вычисления для конкретного кадра заняли 200ms (то есть это соответствует 5 FPS), триггер перейдет в Unknown через 66ms и останется в этом состоянии на 134ms, пока не получит результат вычислений, после чего вернется либо в состояние Active, либо Inactive.
- Например,
Методы захвата
В целом два лучших метода — Windows Graphics и Shared Surface. Это самые быстрые варианты, и в большинстве случаев они работают лучше всего.
- Windows Graphics — этот метод использует официальный Windows API и недоступен на версиях ОС ниже 10.0.19041.0
- Shared Surface — GPU-ориентированный метод захвата, который работает напрямую с памятью видеокарты
- Desktop Duplication — GPU-ориентированный метод захвата, который работает напрямую с памятью видеокарты
- Print Window — использует довольно старый, но стабильный Windows API для захвата изображения. Этот метод не умеет захватывать некоторые окна, например браузеры, и считается Legacy
- Copy Device Context — использует legacy Windows API для захвата контекста окна
- Copy From Screen — использует legacy Windows API для копирования всего экрана и крайне неэффективен по ресурсам
Методы захвата по производительности
(1-е место — самый быстрый метод)
Windows Graphics ~= Shared Surface > Desktop Duplication > Print Window > Copy Device Context
Методы захвата по потреблению памяти
(1-е место — наименьшее потребление памяти)
Print Window > Windows Graphics > Shared Surface > Copy Device Context > Desktop Duplication > Copy From Screen