Видео продолжает разработку нейронной сети с искусственным интеллектом, предназначенной для автономной игры в Counter-Strike. Несмотря на то, что предыдущее видео набрало 20 тысяч лайков, Valve не предложила никаких стимулов для прекращения этого проекта. Создатель по-прежнему привержен продвижению этой инновационной игровой технологии.
В предыдущем видео нейронная сеть была обучена распознавать контртеррористов и террористов на изображениях из Global Offensive. Однако запуск TensorFlow параллельно с игрой вызвал серьезные проблемы с производительностью из—за ограниченной мощности графического процессора, что привело к получению всего пяти кадров в секунду - слишком низкой для практического использования. Для эффективного решения этой проблемы было разработано стратегическое решение.
Изучение комментариев привело к интересному предложению: стандартизировать и уменьшить разрешение исходных изображений для обучения нейронной сети. Вдохновленные этой идеей, было принято решение продолжить эксперименты с ней. Выражаем благодарность сторонникам, которые поддерживали нас лайками и содержательными комментариями.
Был создан простой скрипт на Python для анализа входных изображений нейронной сети и получения визуальной статистики. Выяснилось, что более 85% изображений имеют разрешение более 1366x768 пикселей, что неэффективно для оптимальной работы нейронной сети. Для эффективной работы достаточно меньшего разрешения.
Изображения были изменены до одинакового разрешения, например, 400x400 пикселей или меньше. Однако соответствующие XML-файлы, содержащие данные о метках, нуждались в обновлении, поскольку в них хранятся координаты, характерные для размеров исходного изображения, а не проценты. Это потребовало пересчета и перезаписи позиций метаданных в соответствии с новыми разрешениями с использованием формата Pascal VOC — метода, который критиковали за его неэффективность по сравнению с хранилищем, основанным на процентах. Несмотря на эти трудности, были успешно внесены коррективы перед переобучением нейронной сети на обновленных изображениях.
Процесс унификации занял примерно 3-4 часа на видеокарте RTX 2080 Ti. К сожалению, эти усилия не привели к заметному улучшению FPS. Нейронная сеть продолжала работать плохо, со значительным отставанием при работе только на одном графическом процессоре.
Была рассмотрена идея одновременного использования двух видеокарт, когда одна из них предназначена для рендеринга игры, а другая выполняет дополнительные задачи. Однако этот подход не привел к каким-либо заметным улучшениям или выгодам в производительности.
Для оптимизации работы нейронной сети был активирован и очищен второй компьютер. Был добавлен третий монитор, чтобы создать эффективную систему с двумя компьютерами, в которой уже были доступны две клавиатуры и мыши. Вместо того чтобы переносить видеокарту из одной системы в другую, было проще запустить оба компьютера одновременно и написать быстрый скрипт для передачи данных.
Пользователь описывает настройку второй мыши, подключенной к другому компьютеру, подчеркивая ее уникальную функцию, при которой колесо прокрутки вращается как вертушка. Эта функция особенно понравилась ему. Они также упоминают, что эта мощная мышь, известная на YouTube, вращалась с помощью сжатого воздуха.
Распределение задач между двумя графическими процессорами повысило производительность, достигнув 15 кадров в секунду при использовании медленной модели TensorFlow, такой как Fast R-CNN. Это улучшение по сравнению с предыдущими 5 кадрами в секунду, но его по-прежнему недостаточно для эффективного таргетинга нейронной сети в играх. В играх, требующих не менее 60 кадров в секунду, более низкая частота кадров нейронной сети оставляет промежутки, в которых происходят непредсказуемые события, часто позволяя врагам перемещаться до того, как они станут мишенью.
Текущее состояние нейронной сети требует улучшения, в частности, для эффективной работы на одной видеокарте. Эта оптимизация имеет решающее значение, поскольку у большинства пользователей есть только один графический процессор, что обеспечивает более широкий доступ. Создатель планирует поделиться оптимизированным кодом вместе с обучающими файлами и предоставить руководство по установке через свой Telegram-канал, как только наберется 90 000 подписчиков.
Переход на архитектуру нейронной сети YOLOv7 обусловлен ее более высокой производительностью по сравнению с традиционными CNN. Традиционные CNN на основе тензора описываются как медленные и неэффективные, что сродни попыткам превратить обычный автомобиль в высокопроизводительный - этого просто не произойдет. Учитывая эти ограничения, внедрение передовых архитектур, таких как YOLOv7, становится необходимым для достижения лучших результатов в задачах, требующих скорости и точности.
Автор начинает свой путь с YOLO версии 7, инструмента, которым он никогда раньше не пользовался. Чтобы понять его назначение и функциональность, он углубляется в чтение на английском языке, несмотря на трудности. Это первый шаг к освоению этой передовой технологии.
Пользователь установил YOLOv7 на систему Windows, несмотря на то, что планировал вскоре перейти на Linux. После установки были проведены тесты, подтверждающие функциональность нейронной сети в быстром распознавании объектов по тестовым изображениям. Им пришлось переписать код для захвата и обработки изображений из-за различий между более быстрыми реализациями на базе TensorFlow R-CNN и PyTorch, но они справились с этим без существенных задержек. Многопроцессорная обработка была удалена из-за сбоя при настройке; теперь все выполняется в одном процессе для упрощения начальной настройки.
Был проведен тест, чтобы определить частоту кадров в секунду (FPS), достижимую на одной видеокарте. Результаты показали более 25 кадров в секунду без многопроцессорной обработки и около 20 кадров в секунду при одновременном запуске игры. Эта производительность впечатляет, учитывая, что оптимизация еще не применялась, и демонстрирует приемлемую частоту кадров для воспроизведения в этих условиях.
Новая нейронная сеть обучается распознавать игроков в играх, в частности, контр-террористов. В отличие от предыдущей модели, в которой для надписей использовался формат Pascal VOC, для этой модели требуется форматирование надписей YOLO. XML-файлы, которые использовались ранее, больше бесполезны; их необходимо воссоздать с использованием другого метода. К счастью, существующий конвертер, доступный на GitHub, упрощает процесс, автоматизируя преобразование меток.
Возникла дискуссия о правах роботов, вызванная разногласиями в чате Telegram. Спор разгорелся вокруг того, можно ли считать систему искусственного интеллекта, используемую для игры в CS, мошенничеством, поскольку она воспринимает только то, что люди видят во время игрового процесса, без доступа к игровой памяти. Несмотря на это объяснение, некоторые назвали нейронную сеть недобросовестной помощью или "обманом". Это привело к размышлениям о потенциальной дискриминации роботов из-за их превосходящих возможностей по сравнению с людьми, подчеркнув, что подобные предубеждения могут возникать по мере развития технологий.
Искусственный интеллект, используемый в играх, таких как нейронные сети в CS:GO, принципиально отличается от читов. В отличие от аймботов, которые всегда поражают цели даже сквозь дым или светошумовые шашки, ИИ не может видеть сквозь эти препятствия и действует в рамках правил игры. Это отличие подчеркивает его роль как умного игрока, а не инструмента для получения несправедливых преимуществ.
YOLO был протестирован в игровой среде и показал в среднем 20-25 кадров в секунду и точное обнаружение объектов. Однако нейронной сети не хватало возможностей автономного прицеливания. Чтобы устранить это ограничение, был разработан специальный код для автоматического прицеливания. Функция съемки остается полуавтоматической; она активируется только при нажатии клавиши Caps Lock во время тестирования.
Производительность нейронной сети была протестирована в игре, продемонстрировав ее способность эффективно распознавать тени. Несмотря на то, что это была ранняя и рудиментарная версия, разработанная всего за несколько вечеров, результаты были впечатляющими. Кроме того, улучшения включали создание сценариев для более плавного прицеливания с использованием незначительных корректировок.
Обсуждение вращается вокруг определения того, выполняется ли действие человеком или имитируется нейронной сетью. Конкретный пример включает в себя имитацию движения человеческой руки, что поднимает вопросы о подлинности и точности воспроизведения. Предлагаются методы анализа записей, позволяющие выявить тонкие различия между подлинными и искусственными движениями.
Бесплатный выпуск кода для нейронной сети для 90 000 подписчиков Код для нейронной сети и руководство по установке будут доступны бесплатно на Telegram-канале, как только он наберет 90 000 подписчиков. Несмотря на предложения о продаже кода, на данный момент достаточно поддержки через лайки и подписки. Ссылки доступны в описании видео.
Будущие улучшения с поддержкой просмотра Третья часть этого проекта может включать в себя значительные улучшения, такие как оптимизация качества или включение автономной навигации по карте, если это видео наберет 20 000 лайков у зрителей. Создатель подчеркивает, что нейронные сети - невероятно захватывающая технология.