Your AI powered learning assistant

Я сделал ИИ для Counter Strike: Global Offensive :D | Часть 1

Начало

00:00:00

Создание искусственного интеллекта для таких игр, как Geometry Dash и Google Dino, предполагает использование алгоритмов нейронной эволюции. Однако этот подход не работает повсеместно, поскольку ИИ сначала необходимо обучить игре, что сродни обучению ребенка. Как правило, копия игры модифицируется с помощью датчиков и позволяет проводить одновременное сравнение между несколькими игроками. Затем создаются поколения, в которых успешные геномы вознаграждаются, а менее успешные получают штрафы, пока не будет создан оптимальный геном.

ИИ для Counter Strike

00:00:48

Создание искусственного интеллекта для игры в Counter-Strike непосредственно в игре, а не для ее тиражирования, представляет собой уникальную задачу. Такой искусственный интеллект потенциально мог бы выигрывать матчи, не задействуя античит-системы, такие как VAC. Это позволило бы автономно собирать кейсы и вознаграждения, соблюдая при этом правила, избегая запретов, поскольку нарушений не происходит.

Права роботов! Хештег RLM

00:01:20

В 2022 году будет представлена идея о том, что роботы должны иметь право участвовать в онлайн-играх. Концепция бота, играющего от чьего-либо имени, вызывает споры об их включении и правах в цифровое пространство. Поддержка этой идеи поощряется лайками и комментариями с использованием хэштегов, таких как #robot, символизирующих принятие в киберпанковское будущее.

Принцип работы ИИ для CS:GO

00:01:40

Цель состоит в разработке нейронной сети, способной автономно играть в CS:GO. Подход фокусируется на трех основных навыках для успешного игрового процесса: восприятие игры с высокой частотой кадров, точное прицеливание и стрельба (предпочтительно в голову), а также эффективная навигация в игровой среде.

Скриншотим экран (захват картинки)

00:02:15

Вдохновленный видеороликом на YouTube, в котором кто-то обучал искусственный интеллект вождению в GTA V с помощью компьютерного зрения, процесс включал в себя захват игровых скриншотов со скоростью 10-15 кадров в секунду для анализа. Этот метод имитирует подход Tesla к использованию визуальных данных для систем автономного вождения. Чтобы повторить этот эксперимент, был написан код на Python, включающий библиотеку OpenCV для компьютерного зрения и библиотеку MSS для захвата экрана.

Многопоточный захват

00:02:55

Изначально программа фиксировала в среднем 20 кадров в секунду, что было неплохим результатом. Для повышения производительности код был переписан, чтобы включить многопоточность, разделив процессы захвата и отображения скриншотов. Эта оптимизация увеличила частоту кадров до 30 кадров в секунду, продемонстрировав значительное повышение эффективности.

Вторая задача. Прицеливание и стрельба

00:03:24

Задача заключается в обучении нейронной сети распознавать объекты и игроков на игровых изображениях, отличая союзников от врагов. Для этого требуется, чтобы модель не только идентифицировала, но и точно классифицировала эти элементы. Выбор был сделан в пользу TensorFlow, библиотеки машинного обучения Google, предназначенной для создания и обучения нейронных сетей, способных достичь качества восприятия, подобного человеческому.

Важный совет про GPU нейросети

00:04:23

Процесс настройки обучения нейронной сети с помощью графического процессора в Windows описывается как крайне сложный и сопряженный с многочисленными трудностями. Докладчик с юмором предполагает, что обсуждение деталей приведет к чрезмерному использованию ненормативной лексики и потенциальному запрету видео. Они клянутся никогда больше не тренировать нейронные сети с использованием графических процессоров в Windows из-за этих трудностей, намекая на общие трудности среди тех, кто пытался это сделать.

Учим нейросеть отличать КТ от Т

00:05:00

Чтобы обучить нейронную сеть распознавать объекты, ей сначала необходимо подробно показать эти объекты. Для этой цели в качестве обучающих данных было собрано 700 скриншотов из игры Counter-Strike. Каждое изображение было помечено вручную с помощью специализированного программного обеспечения, путем выделения определенных классов, таких как полные тела и головы, как для контртеррористов, так и для террористов. Эти аннотации преобразуются в форматы, такие как XML или CSF, перед созданием файла записи TF, необходимого для обучения модели. Кроме того, требуется сопоставление меток, поскольку нейронные сети обрабатывают числовые представления классов; наконец, конфигурационные файлы, указывающие количество классов и пути к ним, завершают настройку.

Нейросеть обучена, первый тест

00:06:15

Процесс обучения нейронной сети зависит от аппаратного обеспечения, в частности от графического процессора. При использовании RTX 2080 Ti обучение заняло примерно 2-3 часа, но для удобства его можно отложить на ночь. Первые результаты были впечатляющими; модель с высокой точностью идентифицировала врагов на игровых скриншотах, обводя их рамками, включая, по возможности, положение головы. Такого уровня детализации достаточно для обеспечения функциональности прицеливания.

Царская интеграция

00:07:15

Создатели игры "Небо из Таркова" изначально разрабатывали браузерные игры, такие как Street Wars и Contract Wars, которые привлекли миллионы благодаря своему удобству - не требовалось скачивать или покупать. Если вам интересно научиться создавать такие игры с нуля, вы можете пройти бесплатный курс на платформе Yandex Games. Этот курс обучает основам движка Unity, включая навигацию, создание объектов, написание сценариев для управления персонажами, добавление анимации, интеграцию эффектов и звуковое оформление. Это также позволяет загружать вашу игру на платформу для монетизации без необходимости саморекламы, поскольку Яндекс занимается привлечением трафика.

Тест в самой игре

00:08:49

Во время тестирования способности нейронной сети распознавать игроков в Counter-Strike возникла неожиданная проблема. Во время игрового процесса количество скриншотов резко сократилось до 10 в секунду, что сделало невозможным эффективное реагирование из-за низкой частоты кадров. Запись экрана еще больше ухудшила производительность, еще больше сократив количество кадров и сделав невозможными правильные реакции. Несмотря на такие усилия, как внедрение многопоточных решений, проблема сохранялась.

В чем причина проблемы

00:09:40

Проблема возникает, когда нейронная сеть потребляет почти все ресурсы видеокарты, оставляя недостаточную мощность для других задач, таких как игры. Это приводит к значительным задержкам при обработке кадров. Предлагается два решения: добавить еще один графический процессор для выполнения отдельных задач или использовать два компьютера — один для запуска игр, а другой для работы с нейронной сетью через разъем Wi-Fi.

Другая нейронка (YOLO)

00:10:45

Переход на библиотеку нейронных сетей YOLO дает значительное преимущество в скорости по сравнению с TensorFlow, который работает медленнее. Хотя у TensorFlow есть свои достоинства, YOLO работает как высокопроизводительное транспортное средство, идеально подходящее для задач обнаружения объектов в реальном времени. Это делает его оптимальным выбором для создания эффективных и функциональных ботов с минимальными требованиями к оборудованию.

Финал

00:11:28

Создатели успешно разработали искусственный интеллект, способный эффективно наносить удары в голову, что говорит о его впечатляющей функциональности. Они планируют выпустить вторую часть, в которой нейронная сеть будет дополнительно обучена автономной навигации по картам, если их видео наберет 20 000 лайков. Кроме того, они обещают поделиться всем исходным кодом и файлами для тех, кто заинтересован в самостоятельных экспериментах с этой технологией.