{"id":3922,"url":"\/distributions\/3922\/click?bit=1&hash=8f790d6f800612f54dc3fd5cde30d7599c1d564fb43b44f4cdb5e37daa11b195","title":"\u041a\u0430\u043a \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0444\u0435\u0440\u043c\u0435\u0440\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043e\u0442 \u00ab\u043f\u0441\u0435\u0432\u0434\u043e\u0444\u0435\u0440\u043c\u0435\u0440\u0441\u043a\u0438\u0445\u00bb?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"43a94a7a-c975-5627-8453-c0ce96e38181","isPaidAndBannersEnabled":false}
Железо
Denis Shiryaev

Теория: «читерить» на консолях можно, если использовать нейронки и внешнее устройство для мыши

Всем привет, я уже несколько месяцев хожу с концепцией «аим-бота» для PS4 — хочется попробовать его собрать исключительно в рамках образовательного процесса, не для сетевой игры, а для того, чтобы доказать, что доступное машинное обучение изменит геймдев и игровой процесс довольно сильно, главное немного подождать.

Кстати, если вы пропустили, то вот классный пост на тему улучшения игровых текстур нейронкой — как раз на тему доступного машинного обучения и геймдева. А ещё я часто пишу про разные нейронки у себя в телеграм-канале, если хотите — вот он.

Так вот, почему я делаю пост с «теорией» проекта, а не сразу с результатами? Потому что нейронка в этом проекте — самая простая часть, а у меня есть ряд вопросов: надеюсь кто-то знающий сможет подсказать как быть.

Пример детекта объектов нейронкой в Rainbow Six Siege

Структура проекта

В качестве игры я выбрал Rainbow Six Siege — там есть тренировочные миссии, они как раз для offline-игры и без ограничения по времени. А ещё это довольно популярная игра.

Сам проект состоит из такой схемы:

Для солидного проекта — солидная схема

Пройдемся по каждому пункту.

Нейронка для детекта террористов в режиме реального времени

В качестве нейронной сети я выбрал Yolo v3, работающую на фреймворке darknet (точнее, на форке, но это не так важно).

Yolo как раз заточена для того, чтобы работать с «визуальным» определением объектов в режиме реального времени.

Во-первых, у меня уже есть небольшой опыт работы с этой нейронной сетью.

Во-вторых, грамотно натренированные веса способны обрабатывать 30 FPS и больше, а для игры это довольно важно. Особенно учитывая, что R6 на PS4 выдает 60 FPS.

Даже на базовых стандартных весах нейронка способна узнавать что-то в видеопотоке. Вот видео с моим небольшим тестом без каких-либо настроек.

То, что вы видите в рамках, это координаты «классов», которые распознала нейронная сеть. Они шумные, теряют объекты или не так что-то детектят, но это не проблема, а лишь вопрос датасета.

Результат неплохой, учитывая, что террористы в игре одеты в какие-то странные одежды.

Чтобы улучшить результаты детекта, я планирую скормить нейронке датасет из террористов, что-то вроде такого.

Пример такого датасета, осталось добавить 2000 картинок и на каждой разметить террориста. Мелочь.

В общем, после удачной тренировки нейронки я получу веса, которые будут возвращать мне координаты объектов в виде оси x и y. Дальше я уже смогу их обработать и попробовать навести прицел.

HDMI «ресивер»

Чтобы изображение с PS4 как-то попало в нейронку, его нужно перекинуть на компьютер. У меня MacBook, и я ума не приложу как это сделать, но думаю, что что-то должно быть простое, для того чтобы это сделать. Если ничего не получится, то придётся всё это собрать на Windows-компьютере — тут по идее должно быть всё просто.

❓Если у вас есть какие-то рекомендации, как лучше вывести изображение с PS4 на Mac или ПК, поделитесь, пожалуйста.

Venom X4 (мышь для PS4)

Существует целая категория устройств, которые позволяют вместо обычного геймпада подключить мышку. Я думаю остановиться на Venom X4: вы подключаете в него обычную USB-мышку, и он начинает работать, всё довольно просто. Также Venom поддерживает клавиатуру.

Эмулятор мыши

Собственно, идея такая — какое-то устройство, подключенное по USB к компьютеру, так же подключить по USB к Venom X4.

Задача сложная — заставить Venom поверить, что в него подключена обычная мышь, хотя на самом деле это будет ПК, который прикидывается мышкой и шлёт в Venom координаты объектов, которые он получил.

Если у вас есть какие-то рекомендации, как лучше реализовать этот пункт, подскажите пожалуйста, я почти час провел на stackoverflow и ничего дельного пока не нашел.

❓Если ничего не получится, то, думаю, придётся использовать что-то вроде Arduino для этих задач.

Огромный скрипт с шиткодом

Ну, тут все понятно, вот примерная структура скрипта – им я займусь в последнюю очередь.

Итого

Скрипт будет работать как работает «aim-bot», вы берете джойстик и куда-то идете. Как только на экране появляется изображение модели террориста, то нейронка передает координаты скрипту, который передает координаты эмулятору мыши, а тот уже передает их Venom X4 – одновременно с указанием для нажатия R2 (для стрельбы).

На данном этапе, есть два вопроса которые я уже выше обозначил эмодзи:

1) Как передать на ПК/Mac HMDI картинку с PS4 Pro?

2) Встречал ли кто-то эмуляторы мышек?

P.S. Я не знаю, выйдет ли когда-нибудь вторая часть этого поста, учитывая что я не погромист, и какие-то вещи мне сложно ковырять (кроме нейронок), поэтому заранее спасибо всем кто попробует помочь, я буду стараться довести до конца

0
109 комментариев
Написать комментарий...
REM1X

Ну вот, только вроде подумал, что Денис нормальный парень, а оно вона как повернулось все...

Ответить
Развернуть ветку
Denis Shiryaev
Автор

"не для сетевой игры" выделено даже цветом!

Ответить
Развернуть ветку
10 комментариев

Комментарий удален модератором

Развернуть ветку
Denis K.

Может хоть тогда Sony решит что-то сделать с засилием мышек на консолях и закроют возможность подрубать левые манипуляторы.

Ответить
Развернуть ветку
Gee Sve

Возможно, примерно такая же статья на хабре сможет дать бОльший результат? Хотя я с хабра вышел пару-тройку лет назад и может там в атмосфере/модерировании что-то поменялось за это время.
А идея интересная и жалко, что ничем помочь не могу. Я сам тоже не кодер, но за развитием нейросетей интересно наблюдать и даже как-то удивился твои словам "я не кодер, но с нейросетями дружусь"... Если получится хоть какой-то результат и будешь делать статью, может сделай бОльший упор на нейросетях? Чтоб заодно может и развеять некоторые мнимые мифы о них.

Ответить
Развернуть ветку
Sasha Chabakauri

не уверен можно ли вставлять ссылки на хабр, но вот 2 отличные простые статьи про нейросети:
1)https://habr.com/post/143129/
2)https://habr.com/post/144881/

Ответить
Развернуть ветку
1 комментарий
Petrucce

Консольных клавомышей (даймондов) надо закрывать в отдельной резервации с такими же.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Согласен, надеюсь ps5 будет нативно поддерживать мышь и клаву, чтобы все юзеры мышей и клав попадали к таким же

Ответить
Развернуть ветку
10 комментариев
Andrey Nepomnyaschev

Вот ейбогу, лучше бы MS и Сони запилили нейронку для детекта kb/m и начали уже за такое баны раздавать. Хотя там и нейросетей наверное не надо, было бы желание у платформодержателей :(

Ответить
Развернуть ветку
Производственный Артем
2) Встречал ли кто-то эмуляторы мышек?

Возможно я не понял вопроса но есть такая штука - ReaSnow Cross Hair. Это эмулятор на ps4 всего подряд, от любых мышек до рулей, геймпада от бокса и т.п. По сути это похоже на Venom X4 но не привязано к одному устройству и не нужно обманывать его прикидываясь конкретной мышкой. Там отдельно один провод идёт к консоли и 2 usb порта под девайсы (обычно клавиатура + мышь).

Скорее всего при должном умении можно в порт девайса напрямую воткнуть пк, это проще чем с ардуино пытаться собрать что-то.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
solawind

Платой видеозахвата передать.. а еще проще (если это проект для обучения) просто найти запись нескольких часов игры и делать распознование на ней, вам ведь не нужна инетрактивность. А так смысла кроме самому поучиться в этом нет.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Тестировать я буду на видео конечно, но без подключения к PS4 формально не будет пруфа, что можно «читерить» на консоли. Я думаю, что это лишь вопрос времени, когда читов станет больше – я именно в качестве доказательства факта читерства хотел бы сделать этот проект.

Ответить
Развернуть ветку
Легендарный украинец

В смысле нет?

Ответить
Развернуть ветку
17 комментариев

Комментарий удален модератором

Развернуть ветку
Dmitry Namynnuz

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

Ответить
Развернуть ветку
2 комментария
Denis Shiryaev
Автор

Не получил бы, так как это как писать вирусы — все нормально пока это не покидает локальную среду

Ответить
Развернуть ветку
5 комментариев
No Gravity

Пункт номер один - достаточно захватывать изображение и каким-либо образом куда-то передавать, в таком случае могут подойти устройства захвата и стриминга, дальше уже можешь подрубаться к потоку.
Пункт номер два - тебе нужно расчитывать смещение до объекта по осям, т.е. насколько сильно должен быть отклонен стик и как долго, и это с учетом того, что цель не движется. А тебе еще нужно перемещаться в пространстве, плюс цель тоже не статична. Опять же тебе не достаточно координат правого верхнего угла, тебе в голову ж стрелять поди еще надо.
По поводу usb - тебе нужно передавать на устройства команды смещения и нажатие кнопок, предварительно получая их из расчетов нейронки, тут уже опять же может сыграть свою роль input-lag.
В общем, подумай, надо ли оно тебе так заморачиваться.

Ответить
Развернуть ветку
No Gravity

Для захвата, что-нибудь типа ezcap 284, погугли. Либо аналоги. Хорош тем что умеет в open broadcast. Можешь еще что поискать на тему.
Для эмуляции usb - пример решения https://www.microchip.com/forums/m407943.aspx
Можешь еще попробовать пособирать опыт чуваков, которые делали такие штуки для nes.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Denis Shiryaev
Автор

Я всегда был консольщиком :)

Ответить
Развернуть ветку
6 комментариев
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Они ее оставили для тренировок, так что формально – существующая и я даже знаю как попасть в подвал :)

Ответить
Развернуть ветку
shortcat

По поводу ввода есть свободный проект gimx который позволяет отправлять с пк ввод на пс4 через блютус или через спецаильный usb адаптер.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Изучу, спасибо

Ответить
Развернуть ветку
Артемий Фролов

Мне кажется, если добавиь кроп-ротейт, то можно не 2000 сэмплов террористов добавлять, а даже 500 может хватить.
Еще желательно добавить картинки, на которых видно сразу несколько террористов, и тоже их кроп-ротейтить, тогда качество у ЙОЛО заметно улучшается.

Ответить
Развернуть ветку
Павел Рыжов

Думаю, что ты упрешься в огромный лаг между появлением противника на экране и отправкой команды на наведение и стрельбу по нему, по сути, игра в шутер у тебя превратится в командование экипажем танка.

Ответить
Развернуть ветку
Dekin Tim

Похоже, у Дениса очень много свободного времени :) Где тема, чтобы как твоя душа? И списки темноты невиданной? :)

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Я же не программист :) А еще я заканчиваю работать в 19:00, полно времени для себя!

Ответить
Развернуть ветку
2 комментария
REM1X
Если ничего не получится, то придётся всё это собрать на Windows-компьютере

Ну тут очевидно, обычная плата захвата, для макбука видимо подойдет только внешняя, с усб3.0.

Чтобы улучшить результаты детекта, я планирую скормить нейронке датасет

Не лучше ли выделить во внешности ботов определенные контрольные точки, с помощью которых можно было точно определить цель, вместо того чтобы обучать нейронку?
Например на плечах, торсе и голове.

Ответить
Развернуть ветку
Denis Shiryaev
Автор
Не лучше ли выделить во внешности ботов определенные контрольные точки, с помощью которых моно было точно определить цель, вместо того чтобы обучать нейронку?

Мне кажется результат будет хуже, да и я просто не умею это делать каким-нибудь Open CV, а вот Yolo довольно просто тренируется, да и разметка всех 2 000 картинок не нужна, достаточно пары сотен и этот скрипт: https://github.com/aleju/imgaug

Ответить
Развернуть ветку
2 комментария
Конь Геннадий

Cлышал краем уха, что XIM APEX умеет автоаимиться на консолях.
Хотя на самом деле пользуюсь их конкурентом, там такой функции нет.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Serhiy Dmytriv
Если у вас есть какие-то рекомендации, как лучше вывести изображение с PS4 на Mac или ПК, поделитесь, пожалуйста.

PS4 Remote Play (оффициальное приложение для трансляции и игры с пс4 на пк/мак).
Вместе с PS4 Remote Play можно использовать (наверно, не пробовал) эмулятор геймпада вместо мышки.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Я пробовал как-то это https://github.com/daeken/ShockEmu, но там есть задержка на ввод – хотя тоже хорошая идея, спасибо

Ответить
Развернуть ветку
5 комментариев
Dark[Ol(U23)leneri] .

То чувство, когда не ты играешь в игру, а нейросеть. Эх, тебе бы бустинговып сервисы на пс4 открывать

Ответить
Развернуть ветку
sgz00861

еще можно читерить макросами
во многих играх есть "примагничивание" если траектория совпадает
см fortnite ( https://youtu.be/0gxZc7woST0?t=279 )

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Офигеть, а что это за девайс?

Ответить
Развернуть ветку
ChitO-Kun

Ох уж эти нейронки в 2019, я похожую ерунду писал еще для пс3 на ависинте без "ИИ". Не аймбота, но генератор субтитров для ВН-подобной игры, распознающий ситуации на экране и записывающий тайминг и персонажа в файл. В разработке еще была возможность ставить игру на паузу в моменты, когда требовалось принятие решения за ограниченное время, но не нашёл эмулятора джойстика для отправки сигнала.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Это можно все и на OpenCV писать, без нейронок, с чем-то вроде Haar Cascades, но зачем :) Нейронки проще, пару тренировок и готово

Ответить
Развернуть ветку
Dmitry Namynnuz
Как передать на ПК/Mac HMDI картинку с PS4 Pro?

Через карту захвата. Их достаточно навалом. В итоге будет у тебя в системе некое устройство-источник видео, которое можно будет программно обрабатывать. Кури сорсы OBS, например.

Встречал ли кто-то эмуляторы мышек?

Ну, если ты правда хочешь «чистой игры», то придётся разобрать мышку и с паяльником врезаться с ардуинкой или чем-то таким в качестве сенсора. Кстати, многие китайские и не очень ардуинки воспринимаются как HID-девайсы на PC.

Ответить
Развернуть ветку
Святослав Малинкин

У ней внутре нейронка

Ответить
Развернуть ветку
Никита Ольховик

Ну так тут ничего сложного/интересного, я думал ты будешь обучать на играх профессиональных игроков, чтоб сеть круто играла и не палилась. И мышка не нужна была бы. Но задача, конечно, сложнее простого распознавания образов и наведение прицела на голову противника.

Ответить
Развернуть ветку
Правильный динозавр

Экрерименты это конечно хорошо, но нахуй читы

Ответить
Развернуть ветку
Вирусный динозавр

Я понимаю, что не для сетевой игры, но интересно дальше порассуждать, ибо столько вопросов родилось. Ну, типа
1) Если на оперов настраивать, это надо все варианты посадок всех скинов добавлять?
2) А если вот из-за угла голова там торчит, или пятка - уже не будет работать?
3) Возможно ли как-то эту систему настроить на то, что бы не было тимкиллов?
4) А вот я иногда стреляю и должен вроде убивать, из модельки чувака куча крови вылетает, но в итоге он меня убивает и на киллкаме у него фуллхп, это сука нормально?
5) Можно ли в качестве объекта обнаружения замутить необычную вещь, например, руку блитца, а не его целиком? Но при этом если он целится, то детект уже переключался бы на голову?

Ответить
Развернуть ветку
REM1X

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

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Это нормально, классы ведь вообще из реального мира, со своим датасетом такого не будет

Ответить
Развернуть ветку
3 комментария
Павел Рыжов

Касательно захвата уже писали, через карту захвата и OBS вполне можно это делать, но я не знаю, насколько это увеличит инпутлаг, так некоторые стримеры умудряются играть.

Ответить
Развернуть ветку
Виталий Рабош

Скоро война ИИ начнется, одни делают ботов на основе ИИ, а создатели делают ИИ, чтобы определить этих ботов.

Ответить
Развернуть ветку
shellshock

Я не ищу ведьм и заговоров. Но как по мне разработка чита в современных условиях - возможность получения хороших денег. Безусловно это отличный опыт, но лично у меня, это вызывает чувство уныния и огорчения за людей которые разрабатывают этот буллшит и за тех, кто использует читы, принципиально постоянно. Читы могут принести лишь негативный опыт.. Джон Кармак, как то сказал, что , - без мышки и клавиатуры в шутер нормально вы не поиграете. Соответственно если на PS4 есть шутер, то и на мышки обижаться не стоит, это более логично, чем использование чита.

Ответить
Развернуть ветку
Wong Fei

все это и даже больше давно уже в продакшене (почитай unknowncheats me)

Ответить
Развернуть ветку
Олег Котов

Как человек, который плотнячком учится в эти ваши нейросети, могу сказать что ето работать не буит.
В основном из-за быстродействия. Хотя возможно, у меня такое мнение потому, что я быдлокодер и не могу в оптимизацию.
Допустим, экранчик FullHD(хотя чаще это будет 4К разрешение). Тогда на экране будет 2 073 600 пикселей. Размер кадра в среднем 2 Мб, но колеблется в зависимости от количества деталей на нём.
При 60FPS это 120Мб в секунду. 7 ГБ в минуту. Чтобы это обработать понадобится машина, при которой плойка вообще не нужна. А ещё нужно выполнять соответствующие скрипты исходя из положения оппонента.
В общем, это я к чему. Если у игрока HEDT, то он сможет поиграть себе с читами. Если нет - возникают определённого рода сложности.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Ну, 4К отдавать туда смысла нет, достаточно качества "картошечки" :)

Ответить
Развернуть ветку
1 комментарий
Читать все 109 комментариев
null