I am doing a project in which I have to control the computer mouse through eye movement. In my project, I will have the co-ordinates from the images of the eye position taken through a camera which are to be used to control the mouse movement. Other mouse operations like clicking and double clicking are to be controlled through blinking, which can be modelled as some time period for which the image obtained is a white screen from the camera. I want to know the modification necessary in the program given above for implementing the cotrol I desire.
Dear guest, you must be logged-in to participate on CrazyEngineers. We would love to have you as a
member of our community. Consider creating an
account or login.
Yes, we have to take the head movements into consideration, otherwise it would be very difficult for the user to control the mouse. I am thinking about a differential approach, where I would take the difference of the centre of the eye and the cornea and use this difference as the coordinates for mouse movement. In this way if the user moves his/her head, keeping the eyes at the centre, the mouse will remain at the centre as the input to the mouse driver is (0,0).
This is one design approach.
In another design, which seems to be a bit more sophisticated, I was thinking of using a camera mounted very close to the eye. In this method, the user has to constantly wear a gadget on his/her head, with an IR emitter radiating rays on one of the eyes. Additional sensors have to be used in this case to take into account the head movements, but the advantage here is that only the eye is photographed in the image and hence less filtering and processing is required as compared to the previous method.
I see, those are interesting approaches. What kind of camera would you use to capture the eyes?
I'm thinking you'll need a really high resolution video, because you are talking about really precise movements of the eyes. At the moment, I can only think of those CCD cameras with a Firewire output to the computer. Normal webcams would definitely not work in this case.
Sorry for replying so late. How about zooming the image, filtering or thresholding it and then using morphological techniques to track the eye. The normal webcams have a frame rate of about 30. Can that work?
Its better you put the camera close to the eyes. I would not recommend zooming, unless the webcam has very high resolution.
Thresholding might work, but you'll risk losing some details. You'll need to perform some trial and error I suppose. What about edge detection?
If you already have a webcam, use the free image processing software by RoboRealm to test the threshold out and see if it still retains the required details.