BAZILEVS

BAZILEVS 

Медиатворец

10subscribers

18posts

Нейро-AIMбот Aimmy: использование и обучение

Шалом, уважаемые базозавры. Речь пойдёт об Aimmy, свободном AIM-боте с открытым исходным кодом, работающем на нейросети (сайт, GitHub).
Работает бот следующим образом: на обученной модели под конкретную игру бот наводит прицел на скин противника, опционально ещё и стреляет. Под каждую игру надо обучать модель, но это не сложно, хоть и займёт время. Список готовых моделей большой, есть много популярных игр. Так как нет инжекта в процесс игры, то бан маловероятен, однако не невозможен. В Fortnite и Valorant бот палится точно, в остальных играх баны за использование пока не замечены. Также Aimmy не работает в фулл-скрине, так как инжекта в процесс нет. Используйте на свой страх и риск с твинковых аккаунтов и только в образовательно-исследовательских целях, хех. 
Установка
1. Ставим x64 зависимости: .NET 7 и VCRedist.
2. Качаем последний стабильный релиз. На момент написания это была версия 1.5.1. Нужен именно архив с именем вида "AimmyX.X.X.zip", исходники под названием "source.zip" не требуются.
3. Распаковываем архив в любое удобное место и запускаем AimmyLauncher.exe с правами администратора.
Настройки
Aim Aligner - настройки аима.
Enable AI Aim Aligner - включение и выключение аима.
Change Keybind - кнопка, по зажатию которой аим будет активироваться.
Aim Align Always On - постоянно работающий аим без зажатия кнопки.
Enable Predictions - "предсказание" движения противников. Я не тестировал, но в дискорде проекта люди пишут, что чаще мешает.
Show FOV - показывает круг радиуса действия аима на экране, лучше включать.
FOV Color - настройка цвета круга радиуса на экране.
FOV Size - размер круга радиуса, не держите большим, а то слишком заметно.
Mouse Sensitivty - чувствительность. Чем она меньше, тем быстрее наводка, но не держите слишком маленькой, а то прицел подёргивается.
Mouse Jitter - подёргивания курсора для имитации человека. Лучше включать на средние значения, так как на низких и высоких выглядит слишком искусственно.
Y Offset (Up/Down) - контроль отдачи. Положительное значение - поднятие прицела, отрицательное - опускание. 
X Offset (Left/Right) - контроль отдачи. Положительное значение - движение прицела вправо, отрицательное - движение прицела влево.
Auto Triggerавтоматическая стрельба.
Enable Auto Trigger - включить или выключить триггер-бот.
Auto Trigger Delay - выбор времени задержки от наведения на скин и стрельбы.
Model Selector - выбор моделей.
Local Models - модели, установленные на вашем устройстве.
Local Configs - конфиги, установленные на вашем устройстве.
Downloadable Models - меню выбора и скачивания моделей под разные игры. Вы можете посмотреть на них на GitHub. Их обучают пользователи, а не разработчики.
Downloadable Configs - загружаемые конфиги. Их тоже делают юзеры и их тоже можно посмотреть на GitHub.
Settings - прочие настройки.
Collect Data While Playing - создание скринов во время игры, которые вы будете использовать для обучения своих моделей. Включать надо только, когда вы собираете данные для обучения модели. 
AI Minimum Confidence - скорость работы софта. Чем ниже, тем быстрее. Рекомендуемое значение 25-30%.
Каких-либо прям универсальных настроек нет. В любом случае надо настраивать всё под себя и под конкретную игру. Также после скачки модели через софт надо перезапускать программу, чтобы была возможность выбрать модель.
Обучение модели
Если вам легче смотреть видео, то разработчик софта подготовил его. Однако я всё же опишу текстом, так как видео на английском и кому-то может быть непонятно.
1. Включаем в настройках "Collect Data While Playing" и играем самостоятельно, так как модели ещё нет. Так мы собираем данные для обучения модели. Чем больше играем, тем лучше, так как у нас будет больше данных для обучения. Впрочем, не увлекайтесь слишком сильно сбором, так как нам ещё потом размечать картинки и обучать модель. Собранные скрины лежат по пути "Aimmy\bin\images".
2. Выкачиваем отсюда каждый файл и собираем все файлы в одну папку. Это дефолтная YOLO-модель для обучения.
3. Заходим сюда, нажимаем "Get Started" и загружаем на сайт все сделанные софтом скрины. Загружаем за один раз, выделив все скрины сразу, это очень важно.
4. Нажимаем "Object Detection". Жмём по "Your label list is empty". Открывается окно создания label, где мы создаём label с названием "Enemy". Справа от поля ввода названия для будущего label есть квадратик с цветом. Щёлкаем по нему, пока не найдём красный цвет. Затем жмём "Start project".
5. Открываем все скрины по очереди. Если на скрине есть противник или его часть, то выделяем это. Важно выделять именно противника, так как на это будет триггериться потом бот. Когда выделили, то нажмите на "Select label" в верхнем правом углу и выберите "Enemy". Это разметка данных для обучения. Чем больше размеченных скринов, тем лучше будет работать аим.
6. После того, как все скрины будут размечены, жмём "Actions" - "Run AI locally". Выбираем YOLOv5 и кликаем по "Use model". Затем загружаем на сайт все файлы модели, скачанные в пункте 2. После загрузки снова жмём "Use model". 
7. Идём по пути "Actions" - "Export Annotations". Ставим галочку на "zip package containing files in YOLO format", затем жмём "Export". Автоматически скачивается архив с label'ами.
8. Готовим окружение для тренировки. Ставим Python, если его нет. После открываем командную строку ("Win+R", пишем "cmd") и вводим в неё по очереди команды:
⁡⁡pip install torch==1.11.0+cu113
⁡⁡⁡pip install torchvision==0.12.0+cu113
⁡⁡pip install ultralytics
9. Качаем тренер YOLO. Распаковываем скачанный архив в любую пустую папку. Открываем файл "CustomCharacterPath.yaml" и прописываем полный путь к "\YOLOtrainer\modeltraining\images\train" и "\YOLOtrainer\modeltraining\images\val". Как это должно выглядеть, указано в самом файле. Сохраняем изменения и закрываем.
10. Часть ранее сделанных скринов переносим в "\YOLOtrainer\modeltraining\images\train", другую часть в "\YOLOtrainer\modeltraining\images\val". Train - данные для тренировки, val - данные для валидации, то есть проверки. В папке train должно быть больше скринов, чем в val.
11. Открываем архив с label'ами, скачанный в 7 пункте. Большую часть оттуда переносим в "\YOLOtrainer\modeltraining\labels\train", меньшую в "\YOLOtrainer\modeltraining\labels\val".
12. Открываем командную строку и переходим в ней в папку с YOLOTrainer. Можно сделать двумя способами: открываем cmd, как в 8 пункте и пишем команду cd путь или в открытой в проводнике папке жмём на путь, удаляем всё, что там написано, вводим cmd и жмём Enter. Затем открываем файл StartTraining.txt из папки YOLOTrainer. Там написана команда: yolo task=detect mode=train imgsz=640 data=CustomCharacterPath.yaml epochs=300 batch=16 device=cpu name=newhead
В принципе, всё можно оставить и так, как есть, только нужно поменять название на своё в параметре Name и можно поиграться с эпохами (epochs). Допустимы значения от 100 до 1000, выше будет переобучаться. Как по мне, 500 - самое оптимальное.
Вставляем команду в командную строку и нажимаем Enter. Обучение модели началось. Это достаточно долго, так как обучение идёт на процессоре. На видеокарте я не тестил, должно быть быстрее, для этого в параметре device вместо cpu укажите gpu. Ставьте лучше на ночь или в облако.
13. После окончания обучения идём по пути "\YOLOTrainer\runs\detect\название\weights" и проверяем, появились ли там файлы "best.pt" и "last.pt". Если они есть, то обучение прошло успешно. Открываем в этой же папке cmd, как открывали в 12 пункте, и вводим команду из файла "Export.txt": yolo export model=best.pt format=onnx
Тут ничего менять не надо. Этим действием мы конвертируем модель в формат .onnx.
14. По пути "\YOLOTrainer\runs\detect\название\weights" у нас появился файл "best.onnx" Это уже готовая модель. Переименовываем файл, как угодно, и вставляем по пути "Aimmy\bin\models". Открываем Aimmy, идём в вкладку "Model Selector" и выбираем модель, которую только что вставили. 
15. Включаем игру и играем с уже созданной и выбранной моделью.

Спасибо за прочтение!
Отдельная благодарность бустерам Kheolhea, Тот Ещё Михаил и Герундий Люботворец.
Пожалуйста, подпишитесь на мой Telegram @bazilevs_based и поддержите меня подпиской на Boosty, чтобы я смог делать видео качественнее, так как ваша поддержка напрямую влияет на мои видео.
У меня не получается установить эти команды ⁡⁡pip install torch==1.11.0+cu113⁡⁡⁡ pip install torchvision==0.12.0+cu113 ⁡⁡pip install ultralytics
Subscription levels3

Базозавр-котёнок

$1.36 per month
Маленькая поддержка

Базозавр-слон

$3.4 per month
Поддержка побольше

Гигабазозавр

$6.8 per month
Жесть какая большая поддержка
Go up