การใช้งาน AI Player สำหรับวิดีโอเกม League of Legends โดยอาศัยการจดจำรูปภาพโดยใช้ PyTorch
วิดีโอสาธิต: https://youtu.be/iB4PoNJuXzc
ข้อควรสนใจ: เวอร์ชันเก่าที่ใช้ Tensorflow สามารถพบได้ในสาขา "LeagueAI_2017"
ข้อควรสนใจ: โปรเจ็กต์นี้ยังอยู่ระหว่างการพัฒนา ชุดข้อมูลที่ฉันสร้างและตุ้มน้ำหนักการตรวจจับวัตถุ YOLOv3 ที่ฉันฝึกฝนจะพร้อมใช้งานเร็วๆ นี้!
นี่เป็นเวอร์ชันใหม่กว่าของการใช้งานเก่า และจะต้องจัดเตรียมเฟรมเวิร์กที่ช่วยให้คุณสร้างแอปพลิเคชันของคุณเองตามการตรวจจับวัตถุในเกม ตามตัวอย่าง ฉันจะใช้บอท LeagueAI รุ่นเก่าปี 2017 บนเฟรมเวิร์กนี้ วิดีโอสาธิตการใช้งาน Tensorflow ตั้งแต่ปี 2017: https://www.youtube.com/watch?v=KRWFCaXfOTk
ภารกิจคือการสร้างตัวแทนที่สามารถเล่นเกมต่อสู้ออนไลน์หลายผู้เล่นหลายคน (MOBA) ขนาดใหญ่ในมุมมองบุคคลที่ 3 เช่น League of Legends, Dota 2 และ Heroes of the Storm โดยใช้อินพุตเดียวกันกับผู้เล่นที่เป็นมนุษย์ ซึ่งก็คือวิสัยทัศน์ เนื่องจาก League of Legends ไม่มีอินเทอร์เฟซสำหรับเกม จึงมีการใช้การตรวจจับวัตถุ ในโปรเจ็กต์นี้ ได้มีการแนะนำการใช้งาน Python ของเครื่องตรวจจับวัตถุ Yolo v3 และวิธีการสุ่มสร้างข้อมูลการฝึกจำนวนอนันต์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องตรวจจับวัตถุ โปรดดูรายงานทางเทคนิคของฉันที่: https://arxiv.org/abs/1905.13546 หรือไปที่เว็บไซต์ YOLOv3 โดยตรง [2]
สิ่งที่ต้องทำ
การสร้างชุดข้อมูลขนาดใหญ่ตั้งแต่เริ่มต้นอาจเป็นงานที่เข้มข้นมาก สำหรับการใช้งานครั้งแรกของ LeageAI มีการใช้รูปภาพที่มีป้ายกำกับด้วยมือประมาณ 700 ภาพ การติดป้ายกำกับรูปภาพ 700 รูปใช้เวลาประมาณ 4 วันและมีวัตถุในเกมเพียง 4 ชิ้นเท่านั้น (โมเดลแชมเปี้ยน 1 แบบ สมุนพันธมิตรและศัตรู และหอคอยศัตรู) ดังนั้นชุดข้อมูลใหม่จึงถูกสร้างขึ้นโดยการสร้างข้อมูลการฝึกอบรมโดยอัตโนมัติตามโมเดล 3 มิติที่ดึงมาจากเกม
pyFrameExporter.py
เพื่อแยกรูปภาพแต่ละรูปออกจากคลิป สำหรับมินเนี่ยน ฉันใช้ Adobe After Effects เพื่อเพิ่มพื้นหลังสีเขียวให้กับวิดีโอของมินเนี่ยนและหอคอย (วัตถุทั้งหมดที่ฉันไม่พบโมเดล 3 มิติ) สำหรับแต่ละเฟรมที่ส่งออกออบเจ็กต์ ฉันใช้สคริปต์ pyExportTransparentPNG.py
สคริปต์จะลบพื้นหลังสีเขียว/สีม่วงออกจากภาพหน้าจอแต่ละภาพ และทิ้ง PNG ของวัตถุที่มาสก์ไว้ให้คุณ นอกจากนี้ สคริปต์จะครอบตัดรูปภาพไปยังเนื้อหาและลบพื้นที่มองเห็นส่วนเกินออกสิ่งนี้ทำให้ฉันมีภาพมาสก์ประมาณ 1,000 ภาพของแต่ละวัตถุที่สามารถนำมาใช้เพื่อสร้างภาพหน้าจอปลอมที่มีป้ายกำกับของเกมได้ในภายหลัง
หากต้องการสร้างภาพหน้าจอที่หลากหลาย สคริปต์สามารถปรับเป็น:
เมื่อใช้วิธีการนี้ ชุดข้อมูลของภาพหน้าจอปลอมที่มีป้ายกำกับต่างๆ นับพันรายการสามารถสร้างขึ้นได้ภายในเวลาไม่กี่ชั่วโมง
คำอธิบายแบบเต็มของกระบวนการสร้างชุดข้อมูลและการประเมินเมื่อเปรียบเทียบกับข้อมูลที่กำกับด้วยมือมีอยู่ในเอกสารเผยแพร่ต่อไปนี้: https://arxiv.org/pdf/1905.13546.pdf
หากต้องการอ้างอิงโปรดใช้:
@article{leagueaidatasetgeneration,
title={LeagueAI: Improving object detector performance and flexibility through automatically generated training data and domain randomization},
author={Struckmeier, Oliver},
journal = {arXiv},
year={2019}
}
สิ่งที่ต้องทำ
[1] การใช้การตรวจจับวัตถุ Yolov3 ตั้งแต่เริ่มต้น: https://github.com/ayooshkathuria/YOLO_v3_tutorial_from_scratch
[2] สำหรับการฝึกอบรม: https://pjreddie.com/darknet/yolo/, Yolov3: การปรับปรุงที่เพิ่มขึ้น, J. Redmond และ A. Farhadi, 2018