|
|
  |
Помогите освоить LUA |
|
|
sutra |
30.12.2018, 12:21
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Вот ещё какая возникла мысль (поможет однозначно найти прицел). Скажем предусмотреть отключать анализ фона образа, если его задаёт юзер. Задал юзер значение -1, значит фон образа исключаем из обработки. А так как прицел достаточно уникален и другой такой комбинации значимых пикселей нет, то он будет однозначно найден. То есть мы не обращаем внимания на типа лишние найденные красные пиксели, главное найти требуемые.
В общем надо просто давать возможность юзеру задавать параметры поиска, соответственно им выбирать алгоритм поиска. А сделать функцию, которая будет думать сама (тупо и МЕДЛЕННО перебирать все алгоритмы) можно только если поставлена задача НАЙТИ, возможно можно и такой параметр задавать, ну то есть различать найти / искать.
Если не надо искать несколько картинок или время не критично, или область поиска адекватна, в принципе можно действительно перебирать алгоритмы поиска.
Ну и для "умного" поиска естественно задавать относительную погрешность. В случае прицела по красному каналу будет достаточно широкий диапазон поиска, а колебания остальных каналов будут сведены к минимуму. Вот только и здесь есть "подводный" камень. Если прога сама будет определять базовое значение красного канала, тоже могут быть ложные срабатывания. А вот если это сделает юзер, то проблем не будет. Иначе, например, колебания красного канала находятся в диапазоне 150-250. Значит базовое значение должно быть 200, тогда +- будут в нужном диапазоне. Конечно можно просмотреть эталонную картинку и определить минимум и максимум канала, но это будет естественно дольше. В таком случае можно задавать погрешность (намного меньшую) по отношению к максимальным/минимальным найденным значениям каналов в эталонной картинке.
|
|
|
|
DarkMaster |
30.12.2018, 17:36
|
          
Модератор UOPilot
Сообщений: 9.764
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29941
Пользователь №: 11.279

|
Цитата значит фон образа исключаем из обработки Этот фон еще нужно как-то задать. В данном случае, боюсь, кроме уже существуеющей раскраски ничего не придумать. Ну по крайней мере я вариантов особо не вижу. Цитата В общем надо просто давать возможность юзеру задавать параметры поиска, соответственно им выбирать алгоритм поиска.
Так она и должна по заданным параметрам искать. Я никогда и не предлагал, чтобы функция сама выбрала, какие параметры ей нужны. Хотя было бы неплохо иметь формочку в кторой было бы видно, что происходит с изображением при различных параметрах поиска, что самому оценить, как было бы поступить логичнее в плане выбора параметров. Глянь еще раз предлагаемый мной вызов функции. Мы немного не поняли друг друга походу и я не хочу, чтобы второй раз по этим граблям 10 лет спустя. Это должен быть не АИ, а именно набор комбинированных параметров с четкой логикой. Функция ни коем образом не должна сама прикидывать какие из параметров использовать и делать допущения о неточности заданных параметров. Типов погрешностей много, но они заданы жестко пользователем, не заданные считаются параметрами по умолчанию и не учитываются, сохраняется жесткий порядок применения фильтров. Нейросетей тут нам не надо.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
sutra |
31.12.2018, 1:23
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Цитата Глянь еще раз предлагаемый мной вызов функции. Хорошо, гляну, но однозначно не сегодня, пивка уже принял. И тебе, Дарк, проще будет понять меня, чем мне (с моим начальным образованием) понять тебя. Буду писАть трактат... Начнём с параметров. Итак, основные - у нас есть приоритет - эталон картинки у которой есть фон и есть значимые пиксели (обзову как цвет). Возникает 3 варианта: 1) используем и фон и цвет; 2) используем только цвет; 3) используем только фон... Как задавать параметры, что определять по умолчанию - вопрос вторичный, тут точно не я буду решать, хотя я предлагал заявлять например фон не только первым пикселем картинки, но и явно заявленным параметром (не придётся красить первый пиксель в редакторе). В общем пока это неважно... Далее, есть ещё 2 параметра фон и цвет образа экрана. Какие могут быть варианты поиска: 1) Используем только фон при анализе. Просто смотрим чтобы фон картинки совпадал с фоном в образе - это вариант поиска например символов текста, не учитывая цвет символов. 2) Используем только цвет при анализе - это вариант поиска прицела (когда фон идентифицировать нет смысла). 3) Понятно без объяснений, смотрим всё... Итого ... до 4-х параметров (2 фона и 2 цвета) и никуда тут не денешься, их придётся определять, наверное надо отдельным параметром определять тип поиска (1,2,3), а может и не надо, просто смотреть сколько основных параметров поиска задано... Теперь погрешность (deviation). Для универсальности получается, что для каждого из 4-х возможных параметров нужно задавать свою погрешность, но не факт, тут надо ещё подумать. Ну и оставить аккуратность, если при поиске она нужна. Считать только её надо похитрее, кроме общего числа пикселей, смотреть локальное число найденных пикселей в строке просмотренных пикселей.
|
|
|
|
sutra |
31.12.2018, 1:47
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Если кратко и концептуально, то собственно всё. Реализация всех этих вариантов не вызывает вопросов, вот только запихнуть всё это красиво в один алгоритм наверное слишком сложно. Просто смотреть какие параметры заданы и вызывать из внешней функции одну из 3-х локальных функций поиска. Цитата Допустим фон белый Только один фон? Не будет найдено ни одной, если задан хоть один пиксель, а если искать фон на фоне, то их должно найти миллион. Чего ищем, то и получаем. Есть символ О, он белым по чёрному. На экране О чёрным по белому. Есть фон 1 = 0 есть фон 2 =255,255,255 Какие проблемы понять (отдельно для картинки и образа) где фон, а где нет? Абсолютно не вижу никакой разницы между фоном и цветом. Я могу определять цвет как фон и фон как цвет. При сравнении фонов я буду считать пиксели фона1 0,0,0 идентичными фону2 255,255,255 Не знаю как ещё понятнее объяснить. Я найду и прицел и символ. Для меня проблема одна, как грамотно посчитать достоверность, используя аккуратность, учитывая что всё может плавать, но реализовать точно можно, я даже намекал, что можно считать и промежуточные (спорные) пиксели, так сказать считать точное совпадение и спорное совпадение и исходя из этого считать аккуратность. Спорные пиксели можно считать как 0,5 найденных. Спорные - это которые отрендерены так, что очень слабо отличаются от фона. Как уже говорил, есть буковка Н - могут быть варианты 2 чётких вертикальных линии или одна чёткая и 2 слегка подсвечены. Вот эти 2 и будут равняться одной тёмной 0,5+0,5=1
|
|
|
|
sutra |
31.12.2018, 2:05
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Вроде всё уже не раз объяснил, наверное на этом ставим точку. Извиняйте если что не так сказал. Цитата то искомой картинки может вообще не быть на экране А я уже говорил, надо различать найти и искать. Если поискать ... ну и поищет. Определять должен юзер. Я за всех определить не смогу. Цитата которые образуют искомый объект даже не проверяются Искомый объект задаёт фон, Ну как объяснить не знаю - негатив, так понятнее. Будем искать прицел наоборот. Наоборот, будем считать пиксели прицела фоном. Ну про что я толкую относится конечно не к прицелу, а к символам, это уж просто пытаюсь объяснить суть. Прицел наоборот надо искать игнорируя фон. Потому что такой комбинации значимых символов на экране нет и значит он будет однозначно найден. Ну то же самое, что я бы искал колором, только этот алгоритм будет выполняться в функции поиска картинок. Цитата Если на экране появится красный квадрат, то X будет найден Если просто считать количество пикселей, то конечно не найдёт, а позицию поиска, что? совсем учитывать не будем? Нашли пиксель, далее должно быть 3 пикселя фона, а не 10, как для квадрата. Я не знаю как ещё понятнее объяснить ... Извините... Блин, да даже если считать просто количество, то как можно перепутать квадрат с крестом? У квадрата уже на первой строке пикселей будет 5-ти кратное превышение значимых пикселей.
|
|
|
|
sutra |
31.12.2018, 2:32
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Теперь про наоборот. Да пусть твой прицел всей своей верхней половиной заедет на красный квадрат, низ то прицела будет идентифицирован. Не найдём ничего только если весь прицел заедет на большой красный квадрат, что судя по твоему скрину ИСКЛЮЧЕНО. Это поиск без использования фона. Что тут непонятно? Цитата По форме может и будет напоминать символ, по факту не будет им являться Это как? Если форма будет совпадать, значит это символ. Что значит напоминать? Напоминать регулируется аккуратностью. Смотреть надо сравниваемую позицию, а не абстрактное совпадение. Я уже говорил, построчно по пикселям надо смотреть. Покажите конкретный пример, чего не ищется... Я вам найду. Пусть не универсальным (пока, хотя мне это не надо), но локальным алгоритмом запросто. Принцип поиска таков: фон,фон,цвет,цвет, фон,фон. Какие тут могут быть разночтения? Основная проблема отличить фон от цвета, для этого и нужна относительная погрешность и грамотное задание параметров цвета и фона.
|
|
|
|
sutra |
31.12.2018, 2:50
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Цитата остсутствие на данный момент необходимых параметров в функции Дарк, так я про них самых и толкую. Я так и сказал, что для 100% поиска необходимо задавать 5 параметров (это не считая погрешностей, возможно даже 4 параметра этой погрешности для обоих фонов и цветов). Пусть не за день, может убью неделю или 2 но я однозначно могу сделать этот поиск. И могу гарантировать только одно, не найдёт мой алгоритм, не найдёт никто, без включения адаптивного IQ. Пусть я буду перебирать ВСЕ возможные комбинации этих параметров, но найду. Вопрос, а это надо? Искать такие извращения. Если в 90% случаев ищет - уже неплохо. 99% - отличный результат. А 1% извращенцев пусть ищет сам. Вот если я не знаю синтаксис, не понимаю суть - это меня напрягает и расстраивает. В данном вопросе у меня нет белых пятен. Вопрос упирается во время реализации, а в моём случае ещё и в мотивацию. Это не задача, так задачка. Во всяком случае в игре у меня на 2 порядка сложнее алгоритмы. Там ещё подумаешь с какой стороны подъехать. Это вот как если бы твоим прицелом за 1 секунду поразить и проанализировать попадания 10 целей. Там никаких картинок, там максимальная скорость реакции нужна. Исключительно индивидуальный подход. Я цвет то нужный для поиска определял неделями, собирая детальнейшую статистику. Приходится учитывать и время и место и позицию экрана и ещё хрень разную.
|
|
|
|
sutra |
31.12.2018, 3:15
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Цитата Исключительно индивидуальный подход Включая прогнозирование местоположения объектов. И кстати, ещё и на таком фоне ... , что ещё надумаешься, где фон, а где уже нет. Даже специальный скрипт делал, для сканирования вариантов фона и его влияния на объекты. А тут буковки найти, вот проблема ... , ну возможен конечно вариант, когда одной картинки символа действительно может быть недостаточно, так в чём проблема? В функции поиска? Нет конечно. Что мешает добавить картинку? Понимать надо чего ищем. Цитата что ещё надумаешься, где фон, а где уже нет Да ещё и с градиентами во многих местах. Вот и поди ... найди.
|
|
|
|
sutra |
31.12.2018, 4:03
|
      
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007

|
Цитата Кстати есть мысль, как обычный deviation ускорить. Дабы не просчитывать каждый раз отклонения математикой, можно создать 2 копии изображения в крайних положениях и сравнивать с ними Логично, в пылу дискуссии как-то проскочил твою реплику. Вот это и есть алгоритмирование - это мысль - это идея. Проверить эту идею однозначно нужно. Да, нужен маломальский код, а уж потом тестировать. Я и говорю, найти не проблема, упирается чисто в скорость, в эффективный код, исключающий паразитные действия. С картинкой проще, её в принципе можно правильно подготовить, хотя и тут вопросы ... а будет юзер их готовить? Поймёт как это делать? Поймёт зачем? А вот поработать с копией образа - в принципе можно, я тоже в голове крутил эту мысль, но у меня не сформировался пока в голове код. Я выложил свой базовый вариант для чего? Я показал как зависит скорость даже при обычном сравнении от количества анализируемых каналов. Вопрос то в чём? Тут может 2 копий не хватить. Туго пока соображаю. 2 варианта фона, но и 2 варианта цвета. Итого 4 копии, но даже 4 копии наверное отработаются быстрее, чем хитрую математику в циклах крутить. Хотя нет хватит и 2 копий. В одну всё по минимуму, в другую всё по максимуму. Отличная идея Дарк. Реально будет работать быстро.
|
|
|
|
|
  |
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0
|
|