@@lll11l1lll1l2-p, система 50% может лишь замедлить перелив рейтинга. То что есть в играх валв, это конечно бесит, но остановить рост/спад рейтинга полностью не получится. Ты можешь откровенно руинить и тебе будут закидывать мужиков, которые 4 в 5 будут раскатывать, но в таком случае для замедления падения рейтинга одного придётся жертвовать редакцией рейтинга более одного чела на чём и строится тот небольшой дисбаланс, поэтому обычно 50% придерживается смеси, где руинеры и тащеры наименьшим образом отрываются друг от друга в обеих командах, если разрыв большой, то суммарный рейтинг начнёт меняться.
Для решения твоей проблемы достаточно использовать сферические системы координат. Коротко говоря это ответ на вопрос о том, как x y z перевести в угол по вертикали, угол по горизонтали. Гугли, там все просто. Вот как ни крути, а от синусов и косинусов избавиться не сможешь)
Я и не пытался, просто никогда не сталкивался с такой задачей. В движках я это делал через встроенные методы по типу WorldToScreen. А тут нет доступа к движку ) p.s. Спасибо за совет, обязательно чекну
Вроде как задача регрессии. Собрать попадания и расстояния промахов в табличку и уменьшать промахи классическим обучением, ну или нейронкой в "три слоя" (Теорема Цыбенко, Универсальная теорема аппроксимации), раз уж формат такой. Потом предиктить по модельке.
В игры не играю, но предположу, что зависимость угла от перемещения мыши не линейная. В таких случаях лучше построить график зависимости смещения мыши в экселе (или его аналоге), желательно точек 20-50 использовать. Потом на этом графике правой кнопкой построить линию тренда и ее уравнение. И вот перемещение мыши по этому уравнению будет более точным, чем линейная формула с пикселями.
Кстати можно сделать плавность движения за счёт интерполяции траектории + добавить парочку производных и 2ных производных и вуаля, античит сможет блокнуть только по детекту процесса захвата экрана, но это можно перебросить через какие нибудь стриминговые программы типа OBS
Можна сделать для прицеливания в игре: 1. Сделать сетку для бота, узнать сколько нужно поверуть мышку для преодаления 1 квадрата, считать квадраты, повторять цикл например по range() 2. Найти прицел, найти куда надо двигать прицел для попадания в цель, двигать прицел (например: по 5 пикселей) Заметка для Хауди Хо: есть модули Taichi, Numba или numpy, они для ускорения бота пойдут!
Привет Хоуди. Я сейчас тружусь над проектом дронов с ИИ на борту, который бы мог во первых снимать видео и после само обучатся для полного беспилотного пилотирования. То есть На борту стоит ИИ с натренированной сеткой, а обучение происходит на риге с карт RX3070. И после обновляется через консоль обратно в дрон. Задач очень много, от распознавания деревьев, рощ, лесопосадок, одиночных кустарников и деревьев, ориентироваться в пространстве. Сохранять маршрут и распознавать где летал и как возвращаться. Также понимать что в зависимости от высоты, карта также меняется (так как те объекты что становятся за пределами карты или камер мы чисто физически не видим). Я думаю ты уже понял то за тематика.
ну хотяб в этот раз без нейронных сетей обошлись. А насчёт корректного наведения, нужно учитывать не только позицию шарика на экране, а ещё угол поворота самой камеры. Т.к. все мишени появляются в одной плоскости, то спокойно можно вычислить всё, включая дистанцию до цели (в глубину), относительные повороты и т.п.
@@nekit-scyth, ну ты прям совсем в танке видно. Это обычный алгоритм, даже не обучающийся. А нейросеть, это конкретная топология обучаемых алгоритмов. Калибровка и адаптирование тоже далеко не всегда являются обучаемыми алгоритмами, т.е. вполне строго описанными.
@@ATtiny13a-PU нейросети это конкретные структуры эмулирующие биологические нейронные сети, нейросети не обязательно должны быть обучаема, если уже известны необходимые веса. И слово алгоритм не совсем подходит к нейронкам. И, насколько я знаю, учитывая специфику компьютерного зрения, нейросети справляются с такой задачей намного эффективней обычных алгоритмов, поэтому, я допускаю предположение, что сейчас компьютерное зрение основывается на нейронках, но если это не так, это не значит, что я в танке. Это просто говорит о том, что я не занимаюсь компьютерным зрением
0:45 - Сплошные читеры Тот самый WhoIsAqua, потом сражающийся с ними реальным скиллом. Кстати это правда, у него есть канал кому интересно почекайте какие вещи он ставит рукой. И высказывание что обычный человек не может набить больше 100к очков, опровержима. Хотя, может он не обычный человек? Видос получился очень познавательным!
HelloWorld Хауди! Контент крутой, но когда начнешь коменты писать по коду? ))) кстати спасибо за открытую репу, интересно повторить, увидемся в топе ))
@@amidl нет, тогда он прав. Возьмём, например, для составления маршрута взвешенный полносвязный граф, если веса одинаковы, а они в таком случае одинаковы, то как бы мы его не обходили - путь всех маршрутов будет одинаков.
Человек способен набить на этой карте больше 100.000 очков)) У меня рекорд 115.000, хотя я не то чтобы часто её играю (но у меня в контре 12.000 часов, и в аим лабе 400). И я могу гораздо больше и лучше, нужно просто тренироваться В остальном топовый и интересный видос
Блин начал изучать Пайтон после всех твои аргументов в его пользу, но насмотревшись роликов где говорят, что Пайтон хорош для вспомогательных задач но не годится для основы проекта, это побуждало меня перепрыгнуть с Пайтона на с++ или другой язык, но смотрю, что реально можно сделать, что то полезное и годное и на Пайтоне используя его исключительно как основу в проекте, в любом случае я думаю что Пайтон пригодится в будущем + даст лёгкий старт для понимания структуры и скелета кода, думаю разные языки строят одинаковый скелет для решения задач, но детали(команды) для вывода нужного результата разные. Твой формат подачи информации живой и "простолюдинский" по сравнению с другими влогерами есть одна годная идея, можно вести стрим как ты пишешь простенький проект игры или приложухи с разъяснениями деталей например, что делает и для чего нужна это команда, и т.п, а чтобы это не было благотворительностью, можно создать донат сбор ВК или в другом месте, когда нужная сумма накопиться начать заниматься этим проектом. *Изучая пайтон я уже придумал парочку интересных проектов для мобилы, это ещё сильнее мотивирует узнать как же все таки их реализовать.
Есть 1 прикольная идейка, которая будет универсальная для всех стрелялок сразу. Игрок нажимает кнопку на объекте когда он на прицеле, а ИИ отслеживает перемещение и наводит прицел на объект по цвету например. Как слежение по маркеру.
Используй функцию dot (произведение векторов) для того, чтобы узнать насколько вектор цвета в HSV или RGB похож на другой цветовой вектор, значения нормализуй заранее от 0 до 1 желательно, выходное будет от -1 до 1. Так можно сравнить вектора любой размерности с любым содержанием.
@@iforand, для HSV тоже норм, будут попадаться цвета с похожим оттенком, яркостью и насыщенностью, будет просто некоторое одно число релевантности. Можно конечно ещё и через матрицу поворота всё это провести, чтобы деформировать область пересечения, или просто находить расстояние до точки в цветовом пространстве, но тут и этого достаточно.
@@ATtiny13a-PU да у него проблема в том, что даже при непохожих насыщенности и яркости сферы не полностью маскируются, как я понял. :) Хотя, может действительно скалярное произведение в RGB пространстве может даст лучше результат, но не факт.
@@iforand, сейчас сгонял на шейдер той и проверил на практике, лучше всего работает расстояние от точки в HSV. У RGB проблема с перепадами яркости, но тоже работает. Тестил на блевотных камнях, в шейдер тое это самая первая по списку дефолд текстура, выискивал только бирюзовые, находит успешно.
Тут ВАЖНО то, что 0 и 360 градусы цвета (или 0 и 1 в нормализованном диапазоне) равны, т.е. расстояние нужно искать относительно зацикленного пространства. Достаточно лишь вычислить расстояние между 3-мя точками в текущем и двух +макс - макс отдельными компонентами и взять минимальные по модулю, а потом запихнуть в функцию вычисления расстояния. Это особенно важно для красного например, т.к. он находится прям на разделении.
Слушай затея с развитием и понимаем ИИ это очень-очень круто! Мне очень сильно зашла такая тематика особенно на твоем канале! Круто делай по чаще видосики по такой теме Да понимаю трудно! Но буду ждать новых видосиков! Красиво и качественно делаешь
Предлагаю определять x,y мишени и смешать курсор сначала в верх до достижения оси Х потом до Y, или посложнее делить расстояние до Х,Y мишени на "шаги" и перемещать курсор на них пока мишень не будет в прицеле. Подробно в клиенте ниже:
Тебе просто нужны пропорции шага для перемещения, к примеру x,y мишени = 4, 6, ты делишь их на 10 шагов и получаешь х=0.4 y=6 и смещаешь курсор пока мишень не окажется в прицеле.
Судя по видео шары находятся на одной (или почти на одной, если обратить внимание на тени) плоскости. А значит мы можем рассчитать координаты из уравнения пересечения прямой с этой плоскостью. Прийдётся всё равно немного пошаманить методом тыка, но это может исправить ложные наведения. Отстреляв тогда цели с первого снимка надо делать новый для поиска целей в момент наведения на последнюю цель.
Обалдеть ты сделал это , открыл новую страницу искусственного интеллекта . Даже не представляю что будет если такую машину посадить за реальный пулемет .
Хауди, есть простая идея сокращения времени отстрела мишеней: я заметил, что ии стреляет в центр красного шарика в бирюзовом шаре, но прохождение от края синего шара до центра красного хоть и мало, Но занимает карды/время, чтобы поразить цель достаточно попасть в минимальную границу синего шара, совпадающей с центром курсора, попробуй запрограммировать так: Создай красное кольцо, которое чуть чуть меньше диаметра синего шара, в результате при пересечении курсора этой границы происходит выстрел, не доводя до центра, после чего курсор перемещается к следующей цели. Следовательно, время перемещения до выстрела сократится. Если это глупо или невозможно или не дает результата, прокомментируй пж. Спасибо
Я так понимаю, судя по кадрам, даже поворот на 180° происходит мгновенно, поэтому это не должно сработать. Тут скорее сама проблема в скорости распознавания цвета самой программы, плюс, нужно убедиться второй раз, что под прицелом именно тот цвет. И если эту задержку сократить, то останется только скорость самого пистолета, насколько он может быстро стрелять. И ещё, можно сократить количество распознаваний до минимума, чтобы один раз сканировать, расстрелять имеющиеся шарики и заново сканировать. В общем, нужно найти скорость всех четырёх составляющих, количество сканирований в секунду, количество перемещений в секунду, выстрелов в секунду (самое важное) и сканирования цвета под прицелом в секунду, и тогда уже прорабатывать проблемную зону.
И пока из самого банального до цели можно перемещаться за два шага. Причём после первого шага замеры проводить... Ёмаё дайте мне пейнт... И где скачать этот ваш аим лаб..)
Как вариант для улучшения результата, нужно сделать чтобы бот попадал не в центр шара, а в край шара, который ближе к прицелу. Тогда затратится еще меньше время на наведение)
Можно сделать подобного бота в ксго.Нужно взять головы моделек сделать картинки с разных сторон и углов, и заставить ИИ считывать это.Можно также написать чтобы ИИ определяло головы противника через определение команды.(По спавну, по бомбе в команде, по никам через таб)
А я помню как то делал для CS 1.6 бота, ставил там скины с желтыми головами и точно так же маской отфильтровывал картинку с экрана, и каким то образом наводился на голову. Радиус поиска бошки был ограничен определенной область вокруг прицела, типа чтоб наводило только когда достаточно близко поднесешь. И я тогда вообще даже не думал про какие то там углы, взял навел и все. Вспомнить бы как. UPD: Короче проснулся в 4 утра и вспомнил. Я находил координаты этой головы на экране, и тупо мувал туда курсор, с помощью какого то там модуля. И это работало на все 100%, причем я даже не думая сразу пришел к этому и все, а щас вот в шоке что оказывается можно было углы какие то, матрицы. В общем находишь координаты шара и муваешь на них курсор. Залайкайте чтоб хауди увидел
Короче, смотри. Положение линии визирования (прицела) и его перемещение может определяться по разному от игре к игре. Т.е. в CS это простое "карусельное" управление, а в космосиме при управлении кораблём это уже полноценное свободное управление вне зависимости от текущего положения прицела. Но в любом случае придётся работать с искажениями координат. Так вот дело в том, что в космосиме управлять прицелом было бы проще, т.к. нет зависимости от его текущего положения. А в CS положение линии визирования задаётся простыми сферическими координатами: phi - азимут (по горизонту); theta - угол места (по вертикали). По сути здесь горизонтальное движение мыши влияет только на координату phi, а вертикальное перемещение мыши только на координату theta, а смещение мыши просто прибавляется к этим углам с некоторым коэффициентом "чувствительности". Потому, если задрать ствол вертикально вверх он, во-первых, не будет "подыматься" через верх за спину, а во-вторых, если в таком положении двинуть мышку вбок по горизонтали, то прицел не сдвинется на самом деле в бок, а останется на месте, но вместо этого начнёт вращаться сам персонаж вокруг своей вертикальной оси. Так вот, для правильного перевода прицела проблема заключается в том. что нужно знать текущий угол "задирания" ствола, т.е. угол theta. И есть два пути, как это обойти: это всегда принимать его равным нулю и ловить ошибки наведения тем большие, чем сильнее задран ствол; параллельно пытаться рассчитывать текущий угол места прицела последовательным складыванием сдвигов прицела по вертикали и ловить накопительные ошибки вычислений. Я сделал несколько расчётов и привёл в маткадовском файле (с сохранением в RTF и HTML) с примером расчёта. Если здесь используется та же схема представления угла прицела, то должно "получиться" с поправкой на то, что угол места прицела неизвестен (может натренировать нейросеть для определения этого угла? :) ). Вот ссылка на архив, если ютуб её не грохнет drive.google.com/file/d/1ofGOxX6sZlN7VzwAsjTnmP3aRYEqnLbS/view?usp=sharing
Если бы не было задачи передвинуть прицел за один кадр, то по мне логичнее было бы сделать простую следящую систему: просто "сдвигать" курсор мыши в сторону цели на каждом кадре пропорционально расстоянию до этой цели в пикселях. Если добавить ещё инерции (т.е. переменную скорости мыши), то тогда бы перемещение было бы похоже на человеческое. И проблем бы не было с определением угла theta.
Кстати, ещё, думаю, возможен вариант коррекции оценки угла theta, который высчитывается параллельно. Просто нужно измерять ошибку наведения и по неё оценить, на сколько мы ошибаемся в этом угле и корректировать его каждый раз. Тогда по идее всё должно работать отлично. Но нужно ещё немного подзаморочиться с выводом формулы, если решение "установить theta в ноль" не будет удовлетворительным.
Я смотрю ты запарился не хуже меня ) Спасибо, обязательно всё посмотрю! По поводу задачи сдвинуть за один кадр это да, один из путей решения проблемы - это постоянный сдвиг и проверка что цель под курсором. Но умение сдвигать за один кадр открывает много других преимуществ, не говоря уже об элементарной скорости.
След.этап - занять 1 место. Судя по стате, бот совершил 397 выстрелов за минуту (60/0.151мс). Я совсем далек от программирования, поэтому есть вопросы: 1. возможно ли сделать так, чтобы бот не тратил время на перемещение между целями, а каждый кадр находил цель? Как будто телепортировался на цель, а не передвигался между ними. Может как-то заранее прописывать карту (или трек, лог, координаты) перемещений. 2. Если первое не возможно, то может возможно перемещаться от крайней координаты цели к крейней координате другой цели. Условно, цель (Ц) весгда имеет форму круга. Возьмем шесть Ц, центры которых являются вершинами равностороннего шестиугольника (Ш1). Проведем из вершин прямые к цетру самого Ш1. Точка пересечения окружности Ц с этой прямой и будет крайней координатой Ц. Теперь если соединить крайние точки всех шести Ц, то получится шестиугольник (Ш2), вписанный в Ш1. А значит, Ш2 имеет меньший периметр, чем Ш1 и, соответственно, перемещение по периметру Ш2 быстрее, чем Ш1. Т.е. перемещение между Ц будет занимать меньшее время. 3. Может имеет смысл строить карту заранее между крайними точками целей. И перестраивать ее при появлении ближайшей новой цели. Если я запутал объяснениями, но заитересовал, то в тг @XopBoHuxoTbunycT0 могу прислать рисунок того, что имею ввиду
Скажу сразу я тоже не программист. Но вот моё мнение по вашему вопросу. 1 у хауди цель в том что бот играл вместо него имитирует движения мыши и нажатия на кнопку. А что вы предлагаете противоречит механики самой игры. 2 Даже в видео можно было увидеть что бот чистенко промахивался даже целям по центру шара. Это случается Иза того что в игре есть функция отдачи. И часто Иза это быстрых комбо бот промахивается. А целится по краям это уже усложняет и так сложную задачу. 3 И да я вашу идею не правильно понял. И зделал неправильные выводы.
Хауди, привет! Насчет проблемы думаю поможет основы линейной алгебры. Предлагаю прочитать RayCasting, там только на один FOV, но думаю принцип станет яснее. Успехов✊
А что бы разрабы не запалили в игрушке. Ставишь напротив монитора камеру и подключаешь её к второму компу с аим-ботом и делаешь usb имитатор мыши для основного пк. И ты самый быстрый и меткий ТОП игрок !!!
Сделай мне тиммейтов пожалуйста 😫🙏🙏
На второй комп тимейта профессионала
помни, матч мейкинг закидывает людей рандомно. Будут попадаться сильные игроки в команде? значит и у врагов не будет зевак.
@@ATtiny13a-PU обычно у тебя зеваки а противники нет
@@lll11l1lll1l2-p, система 50% может лишь замедлить перелив рейтинга. То что есть в играх валв, это конечно бесит, но остановить рост/спад рейтинга полностью не получится. Ты можешь откровенно руинить и тебе будут закидывать мужиков, которые 4 в 5 будут раскатывать, но в таком случае для замедления падения рейтинга одного придётся жертвовать редакцией рейтинга более одного чела на чём и строится тот небольшой дисбаланс, поэтому обычно 50% придерживается смеси, где руинеры и тащеры наименьшим образом отрываются друг от друга в обеих командах, если разрыв большой, то суммарный рейтинг начнёт меняться.
Хм а я думал, что нас ждёт уже частично готовый код ИИ для кс :)
Для того что бы ты себе его скопировал и апнул глобола)
сразу бан влетит
@@ovum_ordinarium так это не читы)
@@ovum_ordinariumа кто заметит?
@@mr_faild но твой то скилл не прокачается)
Для решения твоей проблемы достаточно использовать сферические системы координат. Коротко говоря это ответ на вопрос о том, как x y z перевести в угол по вертикали, угол по горизонтали. Гугли, там все просто. Вот как ни крути, а от синусов и косинусов избавиться не сможешь)
Я и не пытался, просто никогда не сталкивался с такой задачей.
В движках я это делал через встроенные методы по типу WorldToScreen.
А тут нет доступа к движку )
p.s. Спасибо за совет, обязательно чекну
научи меня своим знаниям
Открывал школьные учебники, делал через синусы и косинусы, плохая идея. В интернете есть решение смещения курсора по по относительным координатам.
аа как всё было просто
интересно насколько большими будут проблемы вызванные тем, что шары расположены не по сфере, а в одной плоскости...
Можешь попробовать сделать голосового ассистента, который произносит слова твоим голосом? Я смотрел предыдущие видосы )
он делал такого ассистента посмотри на канале хауди правда там не его голос но всё же
@@3_4a , да, я видел. Но голос криповый у них был
Бред
Так мы уже его слышим! Разве не похоже? 🤣
А потом он заменит его и будет пилить видосы
Вроде как задача регрессии. Собрать попадания и расстояния промахов в табличку и уменьшать промахи классическим обучением, ну или нейронкой в "три слоя" (Теорема Цыбенко, Универсальная теорема аппроксимации), раз уж формат такой. Потом предиктить по модельке.
В игры не играю, но предположу, что зависимость угла от перемещения мыши не линейная. В таких случаях лучше построить график зависимости смещения мыши в экселе (или его аналоге), желательно точек 20-50 использовать. Потом на этом графике правой кнопкой построить линию тренда и ее уравнение. И вот перемещение мыши по этому уравнению будет более точным, чем линейная формула с пикселями.
Это лучший сериал)) Пили следующую серию очень жду. Спасибо
Твои фразы в конце - САМЫЕ ЛУЧШИЕ!!!
fake af
Я тебя много где вижу.Неужели у нас интересы почти все одинаковы? То тут вижу то у SJbody и т.д.
@@flimo_6768 Рад :)
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Вот это не легко делается, но я постараюсь )
Кстати можно сделать плавность движения за счёт интерполяции траектории + добавить парочку производных и 2ных производных и вуаля, античит сможет блокнуть только по детекту процесса захвата экрана, но это можно перебросить через какие нибудь стриминговые программы типа OBS
Ты делаешь хорошие поучительные видео
Спасибо❤️
На счёт перевода движения курсора в вращение в теории нужно делить движение на определенное значение, которое с бОльшим наклоном увеличивается
Спасибо за видео очень ждал вышло очень интересно
Хауди: Правила? Хаха, не знаю что это, делаю что хочу.
Ты топ!)
О, новый видос! Сразу лайк не глядя, потому что знаю, что годнота подъехала 😎🔥
Спасибо тебе огромное за урок информатики 😘😘😘
Абрахам, сними видос про то, как ты изучал ML и начинал писать нейронки.
Я начинаю писать на питоне, и с такими видео я офигиваю от его функционала
Можна сделать для прицеливания в игре:
1. Сделать сетку для бота, узнать сколько нужно поверуть мышку для преодаления 1 квадрата, считать квадраты, повторять цикл например по range()
2. Найти прицел, найти куда надо двигать прицел для попадания в цель, двигать прицел (например: по 5 пикселей)
Заметка для Хауди Хо: есть модули Taichi, Numba или numpy, они для ускорения бота пойдут!
Привет Хоуди. Я сейчас тружусь над проектом дронов с ИИ на борту, который бы мог во первых снимать видео и после само обучатся для полного беспилотного пилотирования. То есть На борту стоит ИИ с натренированной сеткой, а обучение происходит на риге с карт RX3070. И после обновляется через консоль обратно в дрон. Задач очень много, от распознавания деревьев, рощ, лесопосадок, одиночных кустарников и деревьев, ориентироваться в пространстве. Сохранять маршрут и распознавать где летал и как возвращаться. Также понимать что в зависимости от высоты, карта также меняется (так как те объекты что становятся за пределами карты или камер мы чисто физически не видим). Я думаю ты уже понял то за тематика.
Приветствую! Рой дронов на самообучающейся нейронной сетке, вот круто, наверное!
@@ДневникПрикамья Естественно это очень крутая штука, и тут уже не игры на компьютере.
Ты реально с другой планеты))
С Наступающим!
ты крутой разработчик 🔥
продолжай таким темпом
Эх завариваю чаёк и смотрю видосик.
ну хотяб в этот раз без нейронных сетей обошлись. А насчёт корректного наведения, нужно учитывать не только позицию шарика на экране, а ещё угол поворота самой камеры. Т.к. все мишени появляются в одной плоскости, то спокойно можно вычислить всё, включая дистанцию до цели (в глубину), относительные повороты и т.п.
Ну так то распознавание мишеней это и есть нейронка
@@nekit-scyth, ну ты прям совсем в танке видно. Это обычный алгоритм, даже не обучающийся. А нейросеть, это конкретная топология обучаемых алгоритмов. Калибровка и адаптирование тоже далеко не всегда являются обучаемыми алгоритмами, т.е. вполне строго описанными.
@@ATtiny13a-PU нейросети это конкретные структуры эмулирующие биологические нейронные сети, нейросети не обязательно должны быть обучаема, если уже известны необходимые веса. И слово алгоритм не совсем подходит к нейронкам. И, насколько я знаю, учитывая специфику компьютерного зрения, нейросети справляются с такой задачей намного эффективней обычных алгоритмов, поэтому, я допускаю предположение, что сейчас компьютерное зрение основывается на нейронках, но если это не так, это не значит, что я в танке. Это просто говорит о том, что я не занимаюсь компьютерным зрением
0:45 - Сплошные читеры
Тот самый WhoIsAqua, потом сражающийся с ними реальным скиллом.
Кстати это правда, у него есть канал кому интересно почекайте какие вещи он ставит рукой.
И высказывание что обычный человек не может набить больше 100к очков, опровержима. Хотя, может он не обычный человек?
Видос получился очень познавательным!
Мне нравится автор этого видео, по моему мнению он учится и выпускает видео, получает двойную выгоду сам обучается так еще и развивает бизнес в ютубе
хауди ты топ, мне всегда интересно смотреть твои ролики, после рекламы я даже как то сам захотел стать программистом как ты xD
от программирования я далёк, но с радостью слушаю твои логические рассуждения)
Хауди, ты просто красавчик, слов нет. Я года три как подписан на твой канал и безумно рад что узнал о твоём канале. Желаю успехов.
Жиза, самый лучший IT ютубер который умеет привлекать внимание интересным контентом )
HelloWorld Хауди! Контент крутой, но когда начнешь коменты писать по коду? ))) кстати спасибо за открытую репу, интересно повторить, увидемся в топе ))
Та там вроде итак всё максимально понятно )
@@HowdyhoNet Согласен! )) Спасибо за интересные проекты, так держать!
Все круто, путь правильный и интересный!
Спасибо большое за видео! Ты лучший!
Только читал различные про ИИ и думал когда у тебя новый ролик)
Круто! Спасибо! Было интересно!
хауди спасибо за такой интересный контент! снимай больше видео по машинному обучению!!
Мне кажется ты мог бы сделать быстрее, если оптимизировал маршрут курсора. Реши задачу коммивояжера.
p. s. Согласен, глупость сказал.
Тем более точек немного, даже с лоб посчитается быстро
у него курсор мгновенно перемещается за 1 кадр, ему не нужно вычислять кротчайшее расстояние
@@ATtiny13a-PU Не кратчайшее расстояние, а кратчайший маршрут. Да и один кадр - тоже время
@@ATtiny13a-PU Аа, ну если так, то да, вы правы.
@@amidl нет, тогда он прав. Возьмём, например, для составления маршрута взвешенный полносвязный граф, если веса одинаковы, а они в таком случае одинаковы, то как бы мы его не обходили - путь всех маршрутов будет одинаков.
Ты делаешь вещь )) ждём 4 часть
хабуди хабудай выпустил ролик🥵🥵🥵🥶🥶🥶🥶🔥🔥🔥🔥💯💯💯
Словил кринж
@@aler4354 пон
Если вы ничего не поняли, то не беспокойтесь, ведь я тоже ничего не понял, но главное, что поставил лайк
Человек способен набить на этой карте больше 100.000 очков))
У меня рекорд 115.000, хотя я не то чтобы часто её играю (но у меня в контре 12.000 часов, и в аим лабе 400). И я могу гораздо больше и лучше, нужно просто тренироваться
В остальном топовый и интересный видос
Ура-а-а хоуди начал делать видео чаще
Блин начал изучать Пайтон после всех твои аргументов в его пользу, но насмотревшись роликов где говорят, что Пайтон хорош для вспомогательных задач но не годится для основы проекта, это побуждало меня перепрыгнуть с Пайтона на с++ или другой язык, но смотрю, что реально можно сделать, что то полезное и годное и на Пайтоне используя его исключительно как основу в проекте, в любом случае я думаю что Пайтон пригодится в будущем + даст лёгкий старт для понимания структуры и скелета кода, думаю разные языки строят одинаковый скелет для решения задач, но детали(команды) для вывода нужного результата разные.
Твой формат подачи информации живой и "простолюдинский" по сравнению с другими влогерами есть одна годная идея, можно вести стрим как ты пишешь простенький проект игры или приложухи с разъяснениями деталей например, что делает и для чего нужна это команда, и т.п, а чтобы это не было благотворительностью, можно создать донат сбор ВК или в другом месте, когда нужная сумма накопиться начать заниматься этим проектом.
*Изучая пайтон я уже придумал парочку интересных проектов для мобилы, это ещё сильнее мотивирует узнать как же все таки их реализовать.
Я знал! Я чувствовал что видосу быть)
Классный формат. Делай еще
Есть 1 прикольная идейка, которая будет универсальная для всех стрелялок сразу.
Игрок нажимает кнопку на объекте когда он на прицеле, а ИИ отслеживает перемещение и наводит прицел на объект по цвету например. Как слежение по маркеру.
Читы...
Ждём "НЕЙРОСЕТЬ ИГРАЕТ В quake 3 arena И РАЗНОСИТ ВСЕХ!!!"
Используй функцию dot (произведение векторов) для того, чтобы узнать насколько вектор цвета в HSV или RGB похож на другой цветовой вектор, значения нормализуй заранее от 0 до 1 желательно, выходное будет от -1 до 1. Так можно сравнить вектора любой размерности с любым содержанием.
Нет смысла для HSV схемы. Для RGB да, можно.
@@iforand, для HSV тоже норм, будут попадаться цвета с похожим оттенком, яркостью и насыщенностью, будет просто некоторое одно число релевантности. Можно конечно ещё и через матрицу поворота всё это провести, чтобы деформировать область пересечения, или просто находить расстояние до точки в цветовом пространстве, но тут и этого достаточно.
@@ATtiny13a-PU да у него проблема в том, что даже при непохожих насыщенности и яркости сферы не полностью маскируются, как я понял. :) Хотя, может действительно скалярное произведение в RGB пространстве может даст лучше результат, но не факт.
@@iforand, сейчас сгонял на шейдер той и проверил на практике, лучше всего работает расстояние от точки в HSV. У RGB проблема с перепадами яркости, но тоже работает.
Тестил на блевотных камнях, в шейдер тое это самая первая по списку дефолд текстура, выискивал только бирюзовые, находит успешно.
Тут ВАЖНО то, что 0 и 360 градусы цвета (или 0 и 1 в нормализованном диапазоне) равны, т.е. расстояние нужно искать относительно зацикленного пространства. Достаточно лишь вычислить расстояние между 3-мя точками в текущем и двух +макс - макс отдельными компонентами и взять минимальные по модулю, а потом запихнуть в функцию вычисления расстояния. Это особенно важно для красного например, т.к. он находится прям на разделении.
Слушай затея с развитием и понимаем ИИ это очень-очень круто! Мне очень сильно зашла такая тематика особенно на твоем канале!
Круто делай по чаще видосики по такой теме
Да понимаю трудно! Но буду ждать новых видосиков!
Красиво и качественно делаешь
Предлагаю определять x,y мишени и смешать курсор сначала в верх до достижения оси Х потом до Y, или посложнее делить расстояние до Х,Y мишени на "шаги" и перемещать курсор на них пока мишень не будет в прицеле. Подробно в клиенте ниже:
Тебе просто нужны пропорции шага для перемещения, к примеру x,y мишени = 4, 6, ты делишь их на 10 шагов и получаешь х=0.4 y=6 и смещаешь курсор пока мишень не окажется в прицеле.
Охринеть ) у меня взорвался мозг , но блин видос крутой очень !
3:04 ну так посмотри на максимальное значение. Самые популярные, это 100 180 и 360, есть ещё float 1.
Юхууу!!!! Новый видосик)
Сделай и для змейки, думаю это ооочень интересная тема :)
Сложно бот должен будет рассчитывать данные двигаться по времени тропе
Судя по видео шары находятся на одной (или почти на одной, если обратить внимание на тени) плоскости. А значит мы можем рассчитать координаты из уравнения пересечения прямой с этой плоскостью. Прийдётся всё равно немного пошаманить методом тыка, но это может исправить ложные наведения. Отстреляв тогда цели с первого снимка надо делать новый для поиска целей в момент наведения на последнюю цель.
Теперь ждём видео с ботом который будет трекать мишени а не фликать в них!!!
Обалдеть ты сделал это , открыл новую страницу искусственного интеллекта . Даже не представляю что будет если такую машину посадить за реальный пулемет .
Её открыли задолго до меня )
Я просто показываю свои эксперименты.
Хей, сделай ИИ играющего в шахматы, будет интересно посмотреть как они работают. А сам видос классный.
Лови комментарий, я хз че написать, но продвинуть видео хочу иииии, и видео крутое.
Ты чёртов гений!
Делаем ИИ для веселья ! мне понравилось видео, но жалко что ты про компьютерное зрение говорил и по сути это пример его использования :3
Ты лучший братан удачи !!!
Хауди, есть простая идея сокращения времени отстрела мишеней: я заметил, что ии стреляет в центр красного шарика в бирюзовом шаре, но прохождение от края синего шара до центра красного хоть и мало, Но занимает карды/время, чтобы поразить цель достаточно попасть в минимальную границу синего шара, совпадающей с центром курсора, попробуй запрограммировать так:
Создай красное кольцо, которое чуть чуть меньше диаметра синего шара, в результате при пересечении курсора этой границы происходит выстрел, не доводя до центра, после чего курсор перемещается к следующей цели. Следовательно, время перемещения до выстрела сократится.
Если это глупо или невозможно или не дает результата, прокомментируй пж. Спасибо
Я так понимаю, судя по кадрам, даже поворот на 180° происходит мгновенно, поэтому это не должно сработать. Тут скорее сама проблема в скорости распознавания цвета самой программы, плюс, нужно убедиться второй раз, что под прицелом именно тот цвет. И если эту задержку сократить, то останется только скорость самого пистолета, насколько он может быстро стрелять.
И ещё, можно сократить количество распознаваний до минимума, чтобы один раз сканировать, расстрелять имеющиеся шарики и заново сканировать.
В общем, нужно найти скорость всех четырёх составляющих, количество сканирований в секунду, количество перемещений в секунду, выстрелов в секунду (самое важное) и сканирования цвета под прицелом в секунду, и тогда уже прорабатывать проблемную зону.
Как обычно топ видео
И пока из самого банального до цели можно перемещаться за два шага.
Причём после первого шага замеры проводить... Ёмаё дайте мне пейнт... И где скачать этот ваш аим лаб..)
@@leprechauns5815в стиме
уже скачал) теперь пересматривать видос ибо не уверен в том откуда взялось 2420
А еще я вспомнил про десмос..
Желаю удачи :)
Ну тут грех на пол пути останавливаться, давай Топ1!
Твои ролики очень крутые.
Как вариант для улучшения результата, нужно сделать чтобы бот попадал не в центр шара, а в край шара, который ближе к прицелу. Тогда затратится еще меньше время на наведение)
в это время я как раз смотрел твой видос
Вау, просто супер!
TenZ: "Подержите моё пиво..."
Можно сделать подобного бота в ксго.Нужно взять головы моделек сделать картинки с разных сторон и углов, и заставить ИИ считывать это.Можно также написать чтобы ИИ определяло головы противника через определение команды.(По спавну, по бомбе в команде, по никам через таб)
И словить бан в стиме за создание читов
Спасибо за интересности:3
Жду новое видео "css за час" !
16:40
если ты правда это читаешь поставь сердце
Можно ещё попробовать сделать так:
Ты двигаешь курсор, а оружие само должно стрелять. Мне кажется это будет намного лучше. Думаю вы меня поняли
Не все поймут что значит прицел != курсор)
Только зашел, а уже есть комменты:D
А я помню как то делал для CS 1.6 бота, ставил там скины с желтыми головами и точно так же маской отфильтровывал картинку с экрана, и каким то образом наводился на голову. Радиус поиска бошки был ограничен определенной область вокруг прицела, типа чтоб наводило только когда достаточно близко поднесешь. И я тогда вообще даже не думал про какие то там углы, взял навел и все. Вспомнить бы как.
UPD: Короче проснулся в 4 утра и вспомнил. Я находил координаты этой головы на экране, и тупо мувал туда курсор, с помощью какого то там модуля. И это работало на все 100%, причем я даже не думая сразу пришел к этому и все, а щас вот в шоке что оказывается можно было углы какие то, матрицы. В общем находишь координаты шара и муваешь на них курсор. Залайкайте чтоб хауди увидел
Я всю жизнь думал что это бирюзовый цвет, а не синий. Ты у меня вылечил дальтонизм ))
Прикольно будет, если Хадио Хо сделает нейронную сеть, которая играет Майнкрафт.🤩
Короче, смотри. Положение линии визирования (прицела) и его перемещение может определяться по разному от игре к игре. Т.е. в CS это простое "карусельное" управление, а в космосиме при управлении кораблём это уже полноценное свободное управление вне зависимости от текущего положения прицела. Но в любом случае придётся работать с искажениями координат. Так вот дело в том, что в космосиме управлять прицелом было бы проще, т.к. нет зависимости от его текущего положения. А в CS положение линии визирования задаётся простыми сферическими координатами: phi - азимут (по горизонту); theta - угол места (по вертикали). По сути здесь горизонтальное движение мыши влияет только на координату phi, а вертикальное перемещение мыши только на координату theta, а смещение мыши просто прибавляется к этим углам с некоторым коэффициентом "чувствительности". Потому, если задрать ствол вертикально вверх он, во-первых, не будет "подыматься" через верх за спину, а во-вторых, если в таком положении двинуть мышку вбок по горизонтали, то прицел не сдвинется на самом деле в бок, а останется на месте, но вместо этого начнёт вращаться сам персонаж вокруг своей вертикальной оси.
Так вот, для правильного перевода прицела проблема заключается в том. что нужно знать текущий угол "задирания" ствола, т.е. угол theta. И есть два пути, как это обойти: это всегда принимать его равным нулю и ловить ошибки наведения тем большие, чем сильнее задран ствол; параллельно пытаться рассчитывать текущий угол места прицела последовательным складыванием сдвигов прицела по вертикали и ловить накопительные ошибки вычислений. Я сделал несколько расчётов и привёл в маткадовском файле (с сохранением в RTF и HTML) с примером расчёта. Если здесь используется та же схема представления угла прицела, то должно "получиться" с поправкой на то, что угол места прицела неизвестен (может натренировать нейросеть для определения этого угла? :) ). Вот ссылка на архив, если ютуб её не грохнет
drive.google.com/file/d/1ofGOxX6sZlN7VzwAsjTnmP3aRYEqnLbS/view?usp=sharing
Если бы не было задачи передвинуть прицел за один кадр, то по мне логичнее было бы сделать простую следящую систему: просто "сдвигать" курсор мыши в сторону цели на каждом кадре пропорционально расстоянию до этой цели в пикселях. Если добавить ещё инерции (т.е. переменную скорости мыши), то тогда бы перемещение было бы похоже на человеческое. И проблем бы не было с определением угла theta.
Кстати, ещё, думаю, возможен вариант коррекции оценки угла theta, который высчитывается параллельно. Просто нужно измерять ошибку наведения и по неё оценить, на сколько мы ошибаемся в этом угле и корректировать его каждый раз. Тогда по идее всё должно работать отлично. Но нужно ещё немного подзаморочиться с выводом формулы, если решение "установить theta в ноль" не будет удовлетворительным.
Я смотрю ты запарился не хуже меня )
Спасибо, обязательно всё посмотрю!
По поводу задачи сдвинуть за один кадр это да, один из путей решения проблемы - это постоянный сдвиг и проверка что цель под курсором.
Но умение сдвигать за один кадр открывает много других преимуществ, не говоря уже об элементарной скорости.
След.этап - занять 1 место.
Судя по стате, бот совершил 397 выстрелов за минуту (60/0.151мс). Я совсем далек от программирования, поэтому есть вопросы:
1. возможно ли сделать так, чтобы бот не тратил время на перемещение между целями, а каждый кадр находил цель? Как будто телепортировался на цель, а не передвигался между ними. Может как-то заранее прописывать карту (или трек, лог, координаты) перемещений.
2. Если первое не возможно, то может возможно перемещаться от крайней координаты цели к крейней координате другой цели. Условно, цель (Ц) весгда имеет форму круга. Возьмем шесть Ц, центры которых являются вершинами равностороннего шестиугольника (Ш1). Проведем из вершин прямые к цетру самого Ш1. Точка пересечения окружности Ц с этой прямой и будет крайней координатой Ц. Теперь если соединить крайние точки всех шести Ц, то получится шестиугольник (Ш2), вписанный в Ш1. А значит, Ш2 имеет меньший периметр, чем Ш1 и, соответственно, перемещение по периметру Ш2 быстрее, чем Ш1. Т.е. перемещение между Ц будет занимать меньшее время.
3. Может имеет смысл строить карту заранее между крайними точками целей. И перестраивать ее при появлении ближайшей новой цели.
Если я запутал объяснениями, но заитересовал, то в тг @XopBoHuxoTbunycT0 могу прислать рисунок того, что имею ввиду
Скажу сразу я тоже не программист. Но вот моё мнение по вашему вопросу.
1 у хауди цель в том что бот играл вместо него имитирует движения мыши и нажатия на кнопку. А что вы предлагаете противоречит механики самой игры.
2 Даже в видео можно было увидеть что бот чистенко промахивался даже целям по центру шара. Это случается Иза того что в игре есть функция отдачи. И часто Иза это быстрых комбо бот промахивается. А целится по краям это уже усложняет и так сложную задачу.
3 И да я вашу идею не правильно понял. И зделал неправильные выводы.
Хауди говорит же что Аим Лаб блокирует любое перемещение(телепотрирование) мыши.
@@opp_587 понятно. Пропустил этот момент
@@opp_587 так... А вот тот разворот на 180 градусов что было?
Хауди, привет! Насчет проблемы думаю поможет основы линейной алгебры. Предлагаю прочитать RayCasting, там только на один FOV, но думаю принцип станет яснее. Успехов✊
Вообще, для перевода перемещения мыши в углы можно воспользоваться переводом прямоугольных координат в полярные
Молодец)))) Вот бы мне так научиться программировать)
Начинай учиться, это не сложно 🙂
#RLM
будущее за искусственным интеллектом, нет робо рассизму
Этот прицел просто имба!
Это единственный гений планеты, который делает нейронам для игр, не доросли еще нейронки для замены игрока
Определять цель по одному уникальному пикселю и использовать системные переменные для определения положения курсора мыши в игре эффективнее.
Итерировать все пиксели долго.
Про передвижение курсора не понял :3
Лайк поставил, хотя я так далёк от всего этого...
Больше сотни в этом режиме делается, и, если натренироваться, то даже легко🙃
А что бы разрабы не запалили в игрушке. Ставишь напротив монитора камеру и подключаешь её к второму компу с аим-ботом и делаешь usb имитатор мыши для основного пк.
И ты самый быстрый и меткий ТОП игрок !!!
Хауди сделай ИИ по распознаванию капчи на картинке
Всем приятного аппетита кто кушает и приятного просмотра! :)
Попробуй теперь написать бота для кибергринда в ultrakill
Сможешь сделать бота для доты? Будет интересно посмотреть
Ты крут, чувак.
Ну что, пора работать на пентагон?) делаем турели с автонаводкой) и запускаем дрона.
Хауди, ты говорил что бот на кс не видит через дым, но люди умеют слышать:
Дай боту на кс уши с ними он узнает когда бомбу заплентили по звуку