โปรเจ็กต์นี้เป็นส่วนหนึ่งของหลักสูตร VR/AR ที่มหาวิทยาลัย TU Darmstadt ของฉัน จุดมุ่งหมายของโปรเจ็กต์นี้คือการสร้างแอปพลิเคชั่นยิงลูกดอกอัตโนมัติ ซึ่งผู้เล่นสองคนสามารถเล่นเกมปาเป้าได้โดยไม่ต้องเน้นที่การนับแต้ม แอปพลิเคชันใช้ OpenCV สำหรับส่วนคอมพิวเตอร์วิทัศน์และ Pyside2 สำหรับ GUI
เราใช้เว็บแคมที่ปรับเทียบแล้วเพื่อจับภาพวิดีโอสตรีมและประมวลผลด้วย OpenCV เพื่อแยกลูกดอกบนกระดานและติดตามผู้เล่น
ไปป์ไลน์การตรวจจับที่สมบูรณ์มีลักษณะดังนี้:
ไปป์ไลน์โดยรวมสรุปไว้ในผังงานนี้ (ปัจจุบันเป็นภาษาเยอรมันเท่านั้น):
คุณจะต้องการ:
วางเครื่องหมายไว้รอบๆ กระดานปาเป้าเหมือนในภาพด้านล่าง และตรวจสอบให้แน่ใจว่ามองเห็นได้ วางเว็บแคมไว้หน้ากระดานปาเป้าห่างออกไปประมาณ 1 เมตรและหันไปทางขวาเล็กน้อย เพื่อไม่ให้ขวางทางในการปาลูกดอก
สิ่งสำคัญ: คุณต้องมีแสงสว่างที่ดีเพื่อให้ได้ผลลัพธ์ที่ดี แสงสว่างจากด้านบนกระดานปาเป้าโดยตรงเท่านั้นที่ไม่ดี วิธีที่ดีที่สุดคือไฟวงแหวนที่มีตัวกระจายดังนี้:
เราประสบปัญหาบางประการเกี่ยวกับการสั่นของบอร์ดซึ่งทำให้เกิดเสียงรบกวนในการตรวจจับ เราแก้ไขปัญหานี้ด้วยการเมาท์ที่พิมพ์แบบ 3 มิติสำหรับบอร์ด:
เพียงโคลนที่เก็บและรันคำสั่งต่อไปนี้:
pip install -r requirements.txt
ก่อนอื่นคุณต้องปรับเทียบกล้องก่อน ซึ่งสามารถทำได้ด้วยสคริปต์การปรับเทียบ จากนั้นคุณสามารถเริ่มต้น main_with_gui.py GUI มีลักษณะดังนี้: