Бывшие разработчики чита Visor.gg создали нейросеть на основе мемов
Нейросеть под названием PogChampNet помогает находить интересные моменты у стримеров, когда они играют.
Для создания нейронной сети разработчики использовали чат Твича
Когда на стриме происходит что-то забавное зрители начинают реагировать на это и чат заполняется словами LOL, LMAO и LUL. А если случается что-то крутое, например, стример сделал безумное тройное убийство и остался жив, то чат реагирует словами Pog, POGGERS и PogChamp.
Именно Twitch-чат помогает нейросети выбрать действительно лучший момент. Без него сеть может пропустить момент, когда игрок сделает одно, но очень крутое убийство или, например, случай когда из-за правильных действий Райнхардта, который не сделал ни одного убийства, команде удалось выиграть.
Для тестирования разработчики выбрали стримеров, которые действительно хорошо играют в Overwatch и, соответственно, у них получается огромное количество крутых моментов. А также у них активный чат, с огромным количеством людей, которые спамят PogChamp, когда что-то интересное происходит в игре. Выбор пал на xQc, Seagull, Mendokusaii и PvPTwitch.
Получение данных
Для получения записей стримов с Twitch разработчики использовали TwitchLeecher, который позволил им без проблем скачать все прошлые трансляции стримеров. А чтобы вытащить логи чата им пришлось написать свой инструмент, который они назвали Twitch Chat Downloader.
Далее разработчики написали скрипт, который парсит чат и находит моменты, когда зрители активно начинают спамить ключевыми словами, например, “PogChamp”, “Poggers”, “wow”, “holy shit” и т.д. Скрипт сопоставляет время начала этих моментов в чате со скачанной трансляцией и делает 30-секундный клип. Также разработчики определяют насколько крутым был момент по количеству найденных ключевых слов.
Но была одна проблема — только 1% (5-10 секунд) времени от 30-секундного клипа был действительно интересным. Для решения этой проблемы разработчики разбили каждый 30-секундный клип на 30 односекундных клипов. Далее написали еще один скрипт, который каждый односекундный клип оценивал по шкале интересности от 0-9.
Некоторые клипы не получали оценку, а просто были помечены, как “s” или “i”. “S” обозначало “skip” (пропустить) — так отмечались клипы, в которых не было геймплея Overwatch, а были моменты, когда, например, стример отжимался. А метка “i” обозначала “interrupted gameplay” (прерванный геймплей) — то есть, когда игрок был в игре, но находился в меню.
Благодаря системе оценок нейросеть научилась отделять действительно интересные моменты от моментов, где игрок просто бегает, участвует в не особо интересных событиях или вообще не в игре.
Интересные моменты во время тестирования
Нейросеть работает довольно точно, но иногда все-таки ошибается из-за нехватки данных. Вот несколько примеров.
Огромное количество технических особенностей можно почитать в оригинальной статье на Medium.
