uMouse
(version 1.1)

 

Note: This project is currently on hold and download links are currently disabled as I will have to fix some problems (restore a previous version and recover parts of the code I lost due to a hard disk failure). I will be returning to finish this as soon as I will have released the alpha version for UniMap Project which for the moment takes priority. Meanwhile, if you whish to test the current version please drop me an email. I apologize for the inconvenience.


Get uMouse:

 

Supported hardware:

   Currently, any USB camera or capture card is supported.


What is uMouse and why use it?

 

   With the uMouse application and any USB video camera you can now replace the ordinary mouse, keyboard functionality and have hands free computer control. You can now control the cursor and do the clicks just by slight movements of your head, hand or finger. The software provides real-time visual tracking and translates this into mouse controls. In addition the software is capable to interpret gestures as well as map these actions in keyboard events.

 

 

 

(Snapshot of the uMouse interface at work)

 

 

 

Get started:

 

   Download the binary installation package from here and install it. Currently supported platforms are windows 2000 and XP. After you completed the installation, plug in your camera and start the application.

 

Running uMouse:

 

   After you uMouse application was started, check to see if you have video feed from your camera, otherwise check your camera and/or refer to the configuration chapter bellow. Now click the first button on the toolbar to start control of you mouse cursor. Alternatively you can use a keyboard shortcut CTRL-ALT-G to toggle on and off the control.

 

 

   Working with the camera in higher resolutions will provide a finer tracking control, however that might prove overhauling for your CPU. To make sure of that doesn’t happen check how many frames per second you process in the down-left corner of the status bar. A reasonable value for FPS should is above ten. I would recommend, for most cases, to work with the camera at a resolution of 320x240, which provides enough tracking accuracy and low CPU usage. To change the camera resolution go in the top menu at Camera->Format option. You can also apply filters on the video stream by selecting one from Camera->Filter menu. This could help on better tracking under certain conditions of image or light quality.

 

 

  If you whish to change the function to which the tracking control applies, you can select that from within toolbar “Run as” option. There are five different methods listed there, however in this version only the first was implemented.

 

 

   The “tune” panel found in between the camera window and gesture is used for quick adjustment of the cursor motion and action, gesture controls. You can also control the sliders with keyboard shortcuts. You need first to type the shortcut letter to select the slider you want and then us the left-right arrow keys to adjust the value.  Here is a sort description of the meaning of these sliders.

 

·         In order the first to sliders define de velocity and the acceleration of the cursor – note that these two parameters differ from the mouse parameters used by the system.  The keyboard shortcut for velocity is “s” and for acceleration is “a”.

·         Focus ticks defines how long before your cursor change state in focus mode when it would either wait for a gesture to action or popup the menu for selection. The keyboard shortcut for this slider is “f”.

·         Release ticks mark how quick the cursor should get out of the focus state if no action was selected. The keyboard shortcut for this slider is “r”.

·         The gesture trail is used in gesture recognition by defining the length of the trail left by the cursor in order to achieve a certain mark within a time frame. The keyboard shortcut for this slider is “g”.

 

 

 

   By right-clicking in the video widow you will get a menu from where you can define the active area to be processed or you can set the aspect ration for the video window. Defining custom areas can be beneficial in reducing the CPU usage or either to restrict movements from the background from being processed. In order to do that you need first select to “Add Area” then adjust the area by dragging it by the corners and then select “Set Area”.

 

 

 

   In the gesture widow you also have a popup menu from where you can either add a new gesture pattern or also set the aspect ration for that windows as well. The functionality for gesture editing isn’t currently implemented.

 

 

   On minimization the program will dock in the taskbar icon area. Right click on the icon to access the menu from where you will also be able to stop or start the tracking. With the application minimized the CPU usage will be reduced.  

 

 

 

Configuration:

 

1.      The main configuration options you will find under in File->Config. There in the first tab (Action) you can configure the following parameters:

 

 

 

 

   Under the mouse tab the user can adjust the default mouse parameters as these are defined in windows.  Note that this will only apply for the uMouse control and will not impact on your desktop mouse settings.

 

 

   In the camera panel you can set your camera id, in case your system has more then one camera. The second entry refers to how many frames per second the camera should handle. However this parameter represents a maximum allowed not the actual value, which could well exceed your hardware capabilities. The last parameter specifies if either the system should draw or not the camera stream on the screen – this could be useful if your system is low on resources.

 

 

  Under the application you can set if you either want or not uMouse to run on windows start-up. If you also set the option to enable then the mouse control will be started as well on start-up.

 

 

  In the gesture panel you can fine-tune all the parameters related to gesture recognition and their mappings to controls. The minimum score and distance parameters are for the advanced so you should handle with care. For the moment the method used for gesture recognition is the default and that is based on a neural network approach.

 

 

 

 

 

 

Manual configuration:

 

   Alternatively you can edit by hand the configuration file found in the application installation folder, ex. "C:\Program Files\uMouse\umouse.ini".

 

-          " umouse.ini" has all options you found under File->Config, tune panel and other settings

 

[Action]

FocusTicks=5

ReleaseTicks=33

Selection=0

IncAcc=0.650000

AccDiv=10

Type=0

 

[Mouse]

MouseSpeed=20

MouseAccThresholdOne=8

MouseAccThresholdTwo=9

MouseAccMultiplyFactor=2

 

[Camera]

View=1

State=1

Filter=0

 

[Runtime]

RunOnStartup=0

EnableOnStartup=0

 

[Gesture]

PatternDisableControl=5

PatternMouseLeftClick=4

PatternMinScore=0.250000

PatternMinDistance=0.250000

View=1

 

[Gui]

Width=542

Height=337

ViewLogs=1

 

 

Known bugs:

 

   There are no known bugs at the moment. However, if you find any please send them to me at i@larryo.org. Any suggestions on how to improve this application are also welcome.

 

 

Main -> Work -> Information