Here you'll find information on some of the projects I have worked on while at the University of Guelph, as well as some of my other computer science related interests.

My main areas of interest are the following:

  • Artificial Neural Networks
  • Pattern Recognition (image and speech processing)
  • Operating Systems (OS/2, Linux, etc.)

  • Artificial Neural Networks

    If you are not familiar with the methodology behind Artificial Neural Networks (ANNs), you should check out some of these very good sources of information, starting with the Natural Selection Research Group at the University of Guelph Computer Science Department, and the Neural Networks at Pacific Northwest National Laboratory.

    I've studied neural nets as an undergraduate, with Dr. Deborah Stacey as my suprevisor. What really interested me was the ability of the nets to train without supervision, and how closely would such a behaviour mimic the actual processes occuring in the brains of living animals.

    But since I was just starting out in this field and had no previous theoretical knowledge of any of the innerworkings of even the most basic neural nets, I decided to start off with something a little easier to comprehend. To this end I decided to use the backpropagation neural network model to perform some of the experiments.

    During the course of the two semesters I spent learning and studying the backpropagation neural network I developed an object oriented implementation of the net, and used that tool to perform image analysis as well as speaker verification. Here's the source code (9.5K) for the object oriented backpropagation neural network simulator. It is a ZIP file which contains the three files which make up the program and a short documentation describing how to use the program. The code is fully ANSI C++ compatible, and should be compilable with any C++ compiler. It has been tested with Borland C++ v4.5, Borland C++ for OS/2 v1.0, and EMX09b (OS/2 port of GCC v2.72).

    For my part I learned that even though the nets are very powerful in their learning abilities, they still lack the speed which is necessary in order to make them applicable to solving realtime problems. This is not so much of a concern with supervised neural nets, such as backprop net (where the learning times can be very long, but the recall is almost immediate), but rather with the unsupervised nets where both the learning and recall times are long.

    Pattern Recognition

    The problems I worked on (i.e. the above described tasks) were those of image processing (specifically edge detection), and speaker verification (verifying the identity of a speaker). To perform the anaysis I used a backpropagation model of a neural network system.

    First problem involved the determination of edges in an image. This could be solved using traditional methods by applying specific image filters (i.e. masks). I used a neural net, which was first taught the recognize lines, or rather changes in the intensity of the pixels in the given image segment. A number of varying patterns representing lines were presented to the net for training. The network simply learned to associate the given pattern with a specifc level of pixel intensity change (i.e. the gradient). The result was quite good, with the network being capable of automatically extracting the object outline from a given image of the object and some kind of background. If you want to know more, get this project report (14.5K, in a Word for Windows v6.0 format).

    The second problem involved a speaker verification task. The network was presented with a number of speech samples. These samples were pre-processed and normalized before being presented to the network. The actual samples were first recorded as 16 bit, 8KHz voice samples, and then compressed using the GSM compression algorithm. The network was than trained to recognize a particular speaker based on the previously learned characteristics of the speech for that particular person.

    The results of this experiment were somewhat dissapointing in that the verification rate was only around 40%, with an error tolerance of 10%. The largest speaker pool was of size 4 (i.e. the network was learning to recognize 4 speakers at a once). The results were also very dependent on the network architecture. For example, multiple hidden layers seemed to work better than single hidden layered network. As one can easily imagine, the training times were very long, the average being around 20 hours (this ran on an AMD 486DX4/120 CPU system, under OS/2). If you want to know more, get this project report (43K, in a Word for Windows v6.0 format).

    Operating Systems

    I have worked with a few operating systems. Up to date, the most favourite one being OS/2 by far...Currently I'm at the beginning stages of OS/2 Presentation Manager programming. Since OS/2 is a multitasking and multithreaded operating system there are same major differences in a way one writes programs. So far I'm having a great time learning all these new programming methods such as windows and tasks management. Following are a few books I would recommend:

    1. "OS/2 Presentation Manager Programming" by Charles Petzold, Ziff-Davis Press
    2. "Real-World Programming for OS/2 2.11" by D.R. Blain, K.R. Delimon, W.J. English, SAMS Publishing
    3. "The Art of OS/2 Warp Programming" by K. Panov, L. Salamon, A. Panov, John Wily & Sons, Inc.

    The only other operating system that I also found to be powerful and flexible is Linux (a shareware, or is it public domain, implementation of the Unix operating system). Most of my use for this os came from the fact that many bigger companies or academic institutions use Unix as the basic os, thus I developed an opinion that familiarity with such a system is very important. I have written a few programs under Unix which make use of the MOTIF and X11 user interfaces, as well as some SGI oriented programs which use the OpenGL graphics libraries. Currently since the OpenGL libraries are available for OS/2 I decided to concentrate on that particular os as the os of my choice.

    That's about it for my computing interests, if you want to know more or need some help with anything don't hesitate to email me.


    Back to MY HOME PAGE