A Project on Gesture Recognition with Neural Networks
for "Introduction to Artificial Intelligence" Classes

Xiaoming Zheng, Sven Koenig
Department of Computer Science
University of Southern California

{xiaominz,skoenig}@ usc.edu

Summary

This standalone neural network project for an undergraduate or graduate artificial intelligence class is part of our effort to motivate students via computer games. This project allows students to implement computer game technologies without having to use complex game engines. Neural networks are among the most widely used machine learning techniques and thus are good candidates for artificial intelligence projects. In this project, the students need to understand and extend an existing implementation of the back-propagation algorithm and use it to recognize static hand gestures in images. This project requires that students develop a thorough understanding of neural networks and the back-propagation algorithm. It extends a project from Tom Mitchell's "Machine Learning" book and builds on ideas, text and code from that project (courtesy of Tom Mitchell). The project is versatile since it allows for both theoretical and implementation questions. We list a variety of possible project choices, including easy and hard questions. The project text and additional support material (such as code and image data sets) can be found at http://idm-lab.org/gameai.

Topics

Machine Learning; Neural Networks; Computer Games; Gesture Recognition

Audience The intended audience of this assignment is students in an undergraduate or graduate artificial intelligence class.
Difficulty

This project is versatile since it allows for both theoretical and implementation questions. The difficulty level of the implementation questions is relatively easy as students only need to understand the starter source code and make modifications to it. The difficulty level of the theoretical questions varies from easy to hard. We recommend that instructors give the students at least one week to complete the assignment.

Strengths
  • Instructors can easily incorporate this assignment in their course syllabus since it extends a commonly taught machine learning technique, namely neural networks.
  • Instructors can tailor the difficulty of this assignment by choosing questions from a pool of questions with varying levels of difficulty.
  • This assignment is inspired by computer games, which we believe motivate and interest students.
Weaknesses
  • Some of the implementation questions of the assignment are esssential to the project, and thus instructors unfortunately cannot tailor their difficulty.
  • No sample solutions are available.
Dependencies
  • This assignment requires that the students understand neural networks. The assignment only describes the design decisions for neural networks.
  • This assignment requires that the students be familiar with the C programming language since the starter source code is written in C.
Variants Instructors can vary the assignment as follows:
  • Choose different questions from a pool of questions with varying levels of difficulty.
  • Create and use different input files.
  • Extend the assignment by choosing one of the two extra credit questions.
Links