EXPERIENCES USING AN OPEN SOURCE SOFTWARE LIBRARY TO TEACH A COMPUTER VISION SUBJECT
University of Alicante (SPAIN)
About this paper:
Appears in: INTED2010 Proceedings
Publication year: 2010
Conference name: 4th International Technology, Education and Development Conference
Dates: 8-10 March, 2010
Location: Valencia, Spain
Abstract:Computer vision is an important subject in computer science and engineering degrees. For laboratory lectures, we need a tool that is complete and easy to use. In this work we present a Java library which is oriented to teaching. This means that we have designed and built the library thinking in readability and understanding instead of efficiency.
In this paper we present the open source project JavaVis, oriented to Computer Vision teaching. It consists of a framework with several features that make it useful for that purpose. Some of them are: a) image format, supporting frames and bands for sequence processing, b) code with many state-of-the-art algorithms available, it contains implementations of some of the most widely used algorithms in computer vision, c) 3D data support, with points, lines, planes and so on, d) a visual desktop for visualizing partial results. It was designed to be easy to use: the user does not have to deal with internal structures and graphical interface, and adding a new algorithm is a simple task.
We have developed three different modules, based on three different needs we have noticed in our subjects. The first one is a basic library for image processing. Besides the previously commented features, it supports geometrical data (edges, segments, points, etc.). The second module is based on the same working schema as the first one, but applied to 3D data. These two modules are enough for testing many well-known algorithms. They also suit the programming needs of students and teachers, as they can easily develop their own algorithms for the JavaVis framework. All JavaVis functions can be launched both from command line, as well as with the JavaVis Graphical User Interface. Finally we have extended JavaVis with a third module consisting of a visual desktop where different Computer Vision functions can be easily placed and connected. Its purpose is to visualize intermediate results in processes involving several functions, helping their better understanding.
Once the library is presented, we focus on the experience using this library in several computer science courses. JavaVis has let us work at two different levels. First of all, using some of the most useful and used computer vision algorithms, as many of them are already implemented in JavaVis. At this level, students can observe what happens when the algorithm explained in theory is applied. Furthermore, the student can take a look at the implementation, thus obtaining a deeper understanding. However, only using algorithms is not a good way to learn the complexity of the implementation, i.e. how much time it takes to implement. So, a second level is available. The student can develop his/her own algorithm. At this level we looked for simplicity. The student has to know almost nothing about the library. He/she must know the classes and methods for manipulating an image, but nothing about graphical classes or file structure. We have taken questionaries during two years in order to know the improvement the students have gotten using the library. Results are shown and conclusions are drawn
Keywords: Computer vision software, experiences using software.