WO2002093465A1 - Method for controlling a cursor, a computer program for using same and a cursor control system - Google Patents

Method for controlling a cursor, a computer program for using same and a cursor control system Download PDF

Info

Publication number
WO2002093465A1
WO2002093465A1 PCT/FR2002/001562 FR0201562W WO02093465A1 WO 2002093465 A1 WO2002093465 A1 WO 2002093465A1 FR 0201562 W FR0201562 W FR 0201562W WO 02093465 A1 WO02093465 A1 WO 02093465A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
cursor
point
reference point
detected
Prior art date
Application number
PCT/FR2002/001562
Other languages
French (fr)
Inventor
Martin Lefebure
Fabrice Laplanche
Carel Wijngaards
Original Assignee
Martin Lefebure
Fabrice Laplanche
Carel Wijngaards
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Martin Lefebure, Fabrice Laplanche, Carel Wijngaards filed Critical Martin Lefebure
Publication of WO2002093465A1 publication Critical patent/WO2002093465A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected

Definitions

  • the present invention relates to a method for controlling a cursor on a graphical interface of a computer, a computer program for implementing this method and a system for controlling a cursor on a graphical command interface.
  • a data processing system or computer such as a microcomputer, a workstation, a personal digital assistant or the like
  • a graphical command interface which allows a user to exchange data.
  • data with the data processing system, in particular to generate control signals intended for the operating system and / or application software executable by the data processing system.
  • a graphical interface consists of an image comprising distinctive graphical elements, such as icons, windows, drop-down menus or the like, software means making it possible to associate one or more particular functions with each graphical element and a moving cursor in the image. This cursor allows a user to select a graphic element by positioning the cursor on it, then activate a function associated with the graphic element by generating a command signal.
  • control signal is then interpreted by the operating system as a function of the position of the cursor and of the graphic element on which the latter is positioned.
  • the image is displayed on a display means of the data processing system, such as a monitor, a screen projector or the like.
  • a graphic element can have several forms depending on whether the associated function is available or not, selected or activated.
  • buttons are known, such as the mouse, which consists of a housing comprising a motion detector such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor, the touch pad, the induction table, the control lever, the control sphere, or the autographic systems.
  • a motion detector such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor
  • the touch pad such as a rotation sensor
  • Operating systems which have a graphical interface in which a press of the right button of a mouse generates a selection signal which causes the display of a drop-down menu making it possible to select one or more associated secondary functions (s ) to a graphic element on which the cursor is positioned, a simple press on the left button leads to the selection of the graphic element and a double press on the left button generates an activation signal which leads to the execution of a function main associated with said graphic element.
  • 5,617,312 discloses a system in which the movements of the user's hand or the tip of an object held by it are detected directly, using a video camera, and the the computer is controlled to move the cursor and select an icon according to the video signals.
  • all of these systems have drawbacks: they require unintuitive gestural efforts to be made with the hand, fingers or face and eyes.
  • they include a camera placed on the top of a monitor or screen and oriented directly towards the user, they oblige the latter to carry out movements of body parts or objects in the field of the camera, without any spatial reference.
  • Such movements cannot be precisely controlled, in particular because of the tremors and involuntary movements of fatigue or nervousness that a common use of such a control system would not fail to cause in the user.
  • the invention aims to allow the control of a cursor of a graphical interface of a data processing system using a camera by overcoming the aforementioned drawbacks. More particularly, the invention aims to allow precise control of the movements of a cursor, as well as to allow the implementation of such cursor control on a system having limited performance and memory capacity, such than a personal digital assistant.
  • the invention proposes a method for controlling a cursor on a graphical interface of a computer, comprising the steps consisting in: - predefine the properties of a pointed object to be detected and store them in a memory of said computer,
  • the step of acquiring the digitized images consists in filming a work surface on which, in service, one moves a tip of said pointed object, said tip retaining an axial orientation situated in a predetermined solid angle
  • the step of locating the reference point comprising an operation of locating an extreme point of said image part in a predetermined direction of the plane images, so as to locate a contact zone between said tip and said work surface, said reference point being defined as a function of said extremal point.
  • the pointed object is independent and free to be moved relative to the work surface.
  • the pointed object can be chosen by the user to be at the same time fine, precise and handy.
  • the predefined pointed object can be an end part of a writing instrument such as a pencil, a stylograph or a felt-tip pen.
  • the work surface is, for example, the surface of a desk, a wall board, a freestanding board, a rear projection wall screen or the like.
  • Controlling the movements of a writing instrument on such a surface is usual for anyone who can write and / or draw, so that the control of a cursor by the method according to the invention requires no additional learning.
  • the user's possibilities of expression are not limited compared to those obtained by using a pencil on a sheet of paper because no non-intuitive movement is required from the user.
  • the predefined properties of the pointed object can be properties of shape and / or size and / or color.
  • the method according to the invention does not employ shape recognition techniques, image segmentation into areas of uniform color or motion detection, which are costly in computation time.
  • the location of an extremal point in an image part can be implemented with very little computation and memory, which allows a real-time implementation of the method according to the invention on computer platforms little powerful and with little memory, like personal digital assistants.
  • the placement of the camera is not limited.
  • the camera can be mounted in a ceiling or wall, above the work surface, or even mounted on a support placed on the work surface. Its viewing angle relative to the work surface can be perpendicular or oblique.
  • the orientation of the point must be maintained, in service, at a predetermined solid angle included in a half vector space delimited by a plane containing the line of sight of the camera.
  • the extremal point is defined as the point of said image part located lowest in said image or as the point of said image part located lowest on an interpolation line of said image part , said solid angle being included in a half vector space delimited by the plane containing the line of sight of said camera and said horizontal direction of the images.
  • the camera is preferably placed on the side of the work surface opposite the user, so that the object tip is generally oriented towards the camera.
  • said reference point is chosen on a segment between said extremal point and a barycenter of said image part. This choice further increases the stability of the reference point even if the extreme point of the detected image part is noisy or is not always the same, for example due to the resolution of the camera, the detection limits inherent in this, selected detection thresholds or variations in illumination.
  • the step of controlling said cursor comprises, for each image in which said part of the image is detected, an update of the position of said cursor on the graphical interface as a function of the position of said reference point in said image.
  • the step of controlling said cursor comprises a step of detecting a predetermined trajectory of the position of said reference point in successive images and the generation of a control signal when said predetermined trajectory is detected. This step of detecting a predetermined trajectory can be, for example, a step of detecting a trajectory in a loop, in W or in the absence of substantial movement of said pointed object during a predetermined period.
  • the method comprises, for each digitized image acquired, a step consisting in storing said image in replacement of the digitized image acquired previously, so that at most one digitized image remains stored simultaneously in said memory.
  • the method according to the invention comprises, for each image in which said image part is detected, a step consisting in detecting the presence of a contact between said pointed object and said working surface, said step of controlling the cursor comprising a selection of an operating mode of said cursor as a function of the result of said contact detection.
  • the detection of the presence of a contact between the pointed object and the work surface can be carried out by means of a magnification measurement of said image part, of a detection from the shadow of the point object on the work surface, a detection of the existence of a trace on the work surface at the location of the previous positions of the point or in another way.
  • the subject of the invention is also a computer program containing instruction codes suitable for being read or stored on a medium, said codes being executable by a computer provided with a graphical interface having a cursor and displayed by a means of display, of a memory and of a camera, for carrying out the operations consisting in: - memorizing in said memory predefined properties of a pointed object to be detected,
  • determining the coordinates of a reference point of said image part comprises an operation consisting in determining the coordinates of an extremal point of said image part in a predetermined direction, so as to locate a point of contact between said pointed object and a work surface which, in use, is targeted by said camera and on which a point of said pointed object is moved while maintaining an axial orientation of said point in a predetermined solid angle, and a determination of the coordinates of the reference point as a function of those from said extremal point.
  • a computer program consists of one or more dependent or independent modules written in one or more appropriate languages of any level.
  • the operation of controlling said cursor comprises, for each image in which said image part is detected, an update of the position of said cursor on the graphical interface as a function of the coordinates of said reference point in said image.
  • said cursor control operation includes a step of detecting an absence of substantial movement of said pointed object for a predetermined period and the generation of a control signal when an absence of substantial movement is detected.
  • said instruction codes are executable to perform an operation consisting, for each acquired digital image, of storing said image in said memory in replacement of the previously acquired digital image, so that at most one digital image remains memorized simultaneously.
  • said instruction codes are executable for carrying out, for each image in which said image part is detected, an operation consisting in detecting the presence of a contact between said pointed object and said work surface by means of a measuring the magnification of said image part, said cursor control operation comprising a selection of an operating mode of said cursor according to the result of said contact detection.
  • the invention also relates to a data processing system comprising storage means, display means displaying, in use, a graphical command interface having a cursor, a camera, a pointed object of which at least one point is placed, in service, in the field of said camera, and a central processing unit capable of performing the operations consisting in:
  • said camera aims at a work surface on which said point is moved while keeping an axial orientation situated in a predetermined solid angle, said determination of the coordinates of the reference point comprising an operation of locating an extreme point of said image part in a predetermined direction of the plane of the images, and a determination of the coordinates of the reference point as a function of the position of said extremal point identified.
  • the objects of the invention make it possible to replace a means of mechanical control of the cursor, such as a mouse, a tactile tablet or a graphic tablet and to control a cursor with any pointed object, preferably a writing instrument whose user is familiar.
  • the cursor control makes it possible to generate control signals intended to be executed by an operating system and / or application software for carrying out digital drawing, writing, word processing or other applications.
  • FIG. 1 is a block diagram of a data processing system according to the invention
  • FIG. 2 is a perspective view of the data processing system of Figure 1 in use;
  • - Figure 3 is a perspective view of the camera of the system of Figure 1 and the orientation of a pencil relative thereto;
  • - Figure 4 shows an image acquired by the camera of Figure 2;
  • - Figure 5 is a block diagram of a method implemented by the system of Figure 2;
  • - Figure 6 is a more detailed diagram of the third step of the method of Figure 5;
  • - Figure 7 is a more detailed diagram of the fourth step of the method of Figure 5;
  • FIG. 8 is a more detailed diagram of the fifth step of the method of Figure 5;
  • FIG. 9 represents another image acquired by the camera of FIG. 2.
  • a computer system 1 comprises a central unit 2 comprising a central memory 3 and a processor 4, a display device 5 and a digital image acquisition device 6. The latter targets a surface of work 7 on which, in service, a pointed object is moved 8.
  • the computer system 1 is a microcomputer, the work surface 7 is the desk top on which the central unit 2 is placed.
  • the display device is a monitor 5 placed on central unity.
  • the digital image acquisition device is a digital camera 6 mounted on a tripod 9 placed on the plate 7.
  • the central unit 2 also includes mass storage means, not shown, in which a storage system is stored. operating and / or application software having a graphical command interface 10 whose cursor 11 is represented in the form of a cross displayed on the monitor 5.
  • the digital camera 6 is connected to the central unit 2 by a link of data transmission 12 for transmitting to the central unit 2 digitized images.
  • the computer system 1 is also provided with a keyboard 13.
  • the tripod 9 is positioned to the right of the central unit 2.
  • the lens of the camera 6 is tilted downward at approximately 45 ° to target the plate 7 and is oriented towards the user 14, who is seated opposite the monitor 5 in the natural working position of a person at a desk and of whom only the right hand 15 is shown.
  • the pointed object 8 is a pencil held by the user 14 so that its point 16 is in the field of the camera 6 and in contact with the plate 7 or with a sheet of paper, not shown, placed on it.
  • the aiming axis of the camera 6 is represented by the X axis.
  • the camera 6 comprises a two-dimensional array of point sensors, for example of the CCD charge coupling type, which define a horizontal direction Y images and a vertical direction of Z images, both perpendicular to the X axis.
  • the contact point C between the tip 16 of the pencil 8 and the working surface 7, that is to say say the end of the tip 16 is on the axis X; but point C can of course be offset from this axis.
  • the arrow 17 represents the axial orientation in the space of the tip 16 relative to the camera 6, this orientation being defined by convention by a vector originating from the end C.
  • the central processing unit 2 also includes, in the memory 3, a control program 18, visible in FIG. 1, executable for implementing a method for controlling the cursor 11 of the graphical command interface 10.
  • the command program 18 includes a detection module, a calculation module and a cursor and display management module. This control method will now be described with reference to FIGS. 4 to 8.
  • the color of the point object 8 which is used to control the cursor is stored in memory to serve as a reference.
  • the reference color is stored in RGB coding in the form of a reference color vector comprising a red value Rs, a green value Vs and a value of blue Bs.
  • the user also chooses an operating mode for left-handed or right-handed.
  • a digitized image 21 is acquired by the camera 6, under the control of the central unit 2, transmitted by the link 12 to the central unit 2 and stored in the memory 3.
  • each digitized image acquired by the camera 6 is a table of pixels having a direction parallel to the Y axis and a direction parallel to the Z axis. The pixels are not individually represented in FIG. 4. It can be seen that a scanned image contains a portion 22 of the working surface 7 and an end portion of the pencil 8 whose tip 16 is in contact with the latter.
  • a third step 24 the presence of the tip 16 in the image 21 is detected. This step is controlled by the execution of the detection module.
  • the detection step 24 comprises the following elementary steps:
  • the pixel is marked as conforming to the reference color; otherwise, the pixel is not marked.
  • the above operation is performed for all pixels in the image. All the pixels marked as conforming to the reference color at the end of this operation are grouped into groups of pixels having a distance gradually nearer than a predetermined maximum distance Ds, for example between 0 and 5 pixel widths.
  • step 242 for each group of marked pixels formed at the end of step 241, the number N of pixels contained in the group is counted. This number of pixels is compared to a predetermined minimum threshold Nmin. If N ⁇ Nmin, the pixel marking of the group is canceled, so that these pixels are not recognized as being part of the pointed object to be detected.
  • step 243 for each group of pixels remaining marked at the end of step 242, the number of pixels N is compared to a predetermined maximum threshold Nmax. If N> Nmax, the marking of the pixels of the group is canceled, so that these pixels are not recognized to be part of the object to be identified. Thus, pixels marked out have eliminated all those forming groups too small or too large to be part of the pointed object to be detected.
  • Step 244 we test if there remains a group of pixels marked as conforming to the reference color. If this is not the case, the sharp object is not detected in image 21. A message is then sent to the cursor and display management module to report the absence of the sharp object .
  • the execution of the control program 18 is interrupted and an error message is displayed on the screen asking the user to check whether he has correctly initialized the reference color, positioned and activated the camera, etc.
  • the sending of the error message can be preceded by one or more iteration (s) of the detection step 24 in an attempt to detect the pointed object in a new image. If there remains a group of pixels marked as conforming to the reference color, for example the group 27 formed from the image of the pencil 8 in FIG. 4, the program proceeds to step 25, as represented by the arrow 246 If there are more than one group of pixels marked as conforming to the reference color, these are merged into one group.
  • the step of locating the reference point P comprises the following elementary steps:
  • step 251 the coordinates of the barycenter G of the group of pixels 27 are calculated. These coordinates are, on each Y and Z axis, the arithmetic mean of the coordinates of all the pixels in group 27.
  • step 252 the coordinates of the pixel belonging to the group 27 and located lowest in the image 21 are determined. To do this, we compare the coordinates along Z of all the pixels in group 27 and we choose the one with the smallest Z coordinate. If there are several pixels having the smallest coordinate according to Z, we choose by convention the one which has the coordinate according to Y the smallest for a left-handed person or the largest for a right-handed person, according to the adjustment chosen in the step of initialization 19. The lowest pixel is considered to represent the contact point C.
  • step 253 the coordinates of the reference point P, defined as the pixel located on the segment S whose ends are the lowest point C and the barycenter G of the group 27 of pixels and such as the distance ratio CP, are determined / CG is equal to a fixed parameter Ps, adjustable during the initialization step 19, between 0 and 1, preferably between 1% and 50%, so that the reference point P is effectively in the part low point object.
  • step 254 the coordinates Yp, Zp of the reference pixel P are sent to the module for managing the cursor and the display.
  • the cursor 11 is controlled as a function of the coordinates of the reference point P of the pointed object 8.
  • the step of controlling the cursor comprises the following elementary steps:
  • step 261 the coordinates Yp, Zp of the reference pixel P are converted into coordinates CoorY, CoorZ which can be used by the display system as a function of its resolution.
  • MaxY is the maximum value of the coordinate Yp along Y which can be transmitted by the calculation module.
  • IgnoreY is the width, positive or zero, of a side image band which is not taken into account for the detection of the point object.
  • Ysortie is the maximum value of the coordinates according to Y of the pixels that can be displayed by the monitor 5. The latter depends on the resolution of the monitor 5.
  • step 262 the cursor 11 is positioned on the screen of the monitor 5 at the coordinates CoorY, CoorZ.
  • Step 263 the evolution of the cursor position between the previous positions and the new position is compared to a predetermined evolution.
  • a control signal is generated.
  • the predetermined evolution to be detected is an absence of substantial movement for a predetermined duration T.
  • a substantial movement threshold Ms is predetermined, in number of pixels. If the new position CoorY, CoorZ of the cursor 11 is distant from the previous position by a distance value greater than Ms, a time counter is initialized to zero and triggered and the counter remains triggered as long as any new position is distant from the previous position with a distance value less than Ms. As soon as the time counter reaches the value T, for example 1 second, a control signal is generated.
  • the predetermined evolution may be other, for example a back and forth movement repeated three times, a loop or W trajectory.
  • the control signal is generated as a function of the position of cursor 11.
  • step 264 the command signal generated is interpreted by the display management module as the signal that the user wishes to perform an action, for example activating a function associated with the graphic element on which the cursor is positioned.
  • the cursor and display management module displays a graphic selection element to the right of the cursor, for example a drop-down menu, a button, an activatable window, or signals to the user in any other possible way, for example by an audible and luminous signal, the different functions available depending on the position of the cursor, for example the functions equivalent to those that would activate a right click or a double click on a mouse.
  • the user is thus invited to enter a choice of action.
  • step 265 the choice of the user is entered by conventional means such as a keyboard call, or the determination of a new position of the cursor 11, for example to determine in which line of a drop-down menu the user placed the cursor 11.
  • the selected function is then activated by sending appropriate commands to the operating system of the microcomputer 1.
  • the entire process described above is carried out in a periodic loop, the frequency of acquisition of the images being chosen to allow precise monitoring of the movements of the cursor without monopolizing the processing capacities of the processor. For example, this frequency is between 5 and 500 cycles per second, preferably between 10 and 50 cycles per second.
  • the detection step 24 includes a final elementary step in which it is detected whether the tip 16 is in contact with the working surface 7. For this, one or more dimension (s) of the group of pixels 27 , for example width, height, number of pixels, are measured with each scanned image.
  • Another way of carrying out the elementary contact detection step is to detect a trace left by the pencil 8 on the surface 7 behind its passage. If such a trace is detected, a contact is detected; otherwise, an absence of contact is detected.
  • To detect a trace it is possible to store several successive images in memory and to compare the color value of a given group of pixels before and after passing the tip.
  • Another way to perform the basic step of detecting contact is to detect the presence of a shadow of the pencil 8 on the work surface 7.
  • the cursor control method of the invention can be used to control drawing software, of a type known elsewhere, executed by the microcomputer 1.
  • drawing software it is possible to mark on the screen or store in an image file a trace conforming to the path of the cursor 11.
  • the cursor has a tracing mode of operation, in which its movements produce a trace, and a mode of non-tracing operation, in which the cursor does not produce a trace and can then be used to generate control signals.
  • the tracing operating mode is activated by the presence of a detected contact and the non-tracing operating mode is activated by the absence of detected contact.
  • the reference pixel P is defined relative to the lowest point C of the group of pixels 27, that is to say to the point of the group of pixels 27 of minimum coordinate according to the direction Z.
  • FIG. 9 schematically represents an image 121 acquired by the camera 6, in which the tip 116 of the pencil 108 is detected in the form of the group of pixels 127 conforming to the reference color. As the end of the tip 116 is rounded, the contact point C is distinct from the actual end of the tip, and this is all the more the case since the pencil 108 is inclined.
  • the barycenter G of the group of pixels 127 is a principal component analysis of the group of pixels 127 is carried out and an interpolation line 128 of the group of pixels 127. is determined.
  • the interpolation line 128 is the line passing through the barycenter G and such that the sum of the squares of the distances of each pixel of group 127 from the line 128 is minimum. Its determination is carried out by known statistical analysis methods. We then locate the extremal point E defined as the lowest point of the group of pixels 127 on the straight line of interpolation 128.
  • Each pixel of group 127 is assigned a value of abscissa s on the axis [GE).
  • the abscissa s is normalized to 1 for point E.
  • the reference point P is defined as a barycenter of the pixels of group 127 having a positive abscissa s, said pixels being weighted by an increasing weight with the abscissa s of the pixel.
  • the pixel weighting coefficient is the abscissa s.
  • the reference point P is then a point on the axis (GE) located near point E.
  • the interpolation line 128 corresponds substantially with its axis of revolution.
  • This variant of the method makes it possible to define the reference point P precisely in the axial direction of the pointed object, which further increases the ease and precision with which the position of the cursor can be controlled, the user having greater ease to anticipate the movements of point E located strictly in the extension of the point than of point C which can be offset.
  • the reference pixel P can be defined with respect to an extreme pixel of the group of pixels 27 along any predetermined direction of the images. For example, if the camera 6 is suspended vertically from the surface 7, the bottom of the images being on the side of a user, it is preferred to choose as pixel at the extremal the pixel of the group 27 of maximum coordinate in the direction Z, or the extreme pixel in the + Y or -Y direction, or an extreme pixel in a predetermined oblique direction.
  • the direction in which the contact point C is sought can also be determined according to the choice of operating mode for right-handed or left-handed made by the user.
  • the orientation of the point 16 must be maintained in a half space such that its point of contact with the surface 7 effectively represents an extremal point in the direction predetermined.
  • the solid angle of orientation of the tip 16 is determined as a function of the orientation of the camera and of the predetermined direction in which the extreme pixel C is sought. This solid angle is preferably limited to a half cone in order to avoid situations in which the axial direction of the tip is almost tangent to the direction in which an extremum is sought, which would adversely affect the detection accuracy of such an extremum.

Abstract

The invention relates to a method for controlling a cursor (11) on a graphical interface (10) of a computer (1), comprising the following steps, consisting in: - pre-defining the properties of a pointing object (8); - acquiring successive digital images; detecting, in each digital image, the presence of the pointing object in the form of a part of the image presenting said pre-defined properties; - when one such image part is detected, marking a reference point for said image part; - controlling said cursor on the graphical interface. The inventive method is characterised in that the digital image acquisition step consists in filming a work surface (7) on which, in service, a point (16) of said pointing object is moved. The reference point marking step comprises an operation involving the marking of a bend point of said image part according to a predetermined direction, said reference point being defined according to said bend point.

Description

PROCEDE DE COMMANDE D'UN CURSEUR, PROGRAMME D'ORDINATEUR POUR SA MISE EN ŒUVRE ET SYSTEME DE COMMANDE D'UN CURSEURMETHOD FOR CONTROLLING A CURSOR, COMPUTER PROGRAM FOR IMPLEMENTING SAME, AND SYSTEM FOR CONTROLLING A CURSOR
La présente invention concerne un procédé de commande d'un curseur sur une interface graphique d'un ordinateur, un programme d'ordinateur pour la mise en œuvre de ce procédé et un système de commande d'un curseur sur une interface graphique de commande.The present invention relates to a method for controlling a cursor on a graphical interface of a computer, a computer program for implementing this method and a system for controlling a cursor on a graphical command interface.
Il est connu de munir un système de traitement de données ou ordinateur, tel qu'un micro-ordinateur, une station de travail, un assistant numérique personnel ou autre, d'une interface graphique de commande qui permet à un utilisateur d'échanger de données avec le système de traitement de données, en particulier de générer des signaux de commande à destination du système d'exploitation et/ou des logiciels d'application exécutables par le système de traitement de données. Une telle interface graphique consiste en une image comportant des éléments graphiques distinctifs, tels que des icônes, fenêtres, menus déroulant ou autres, des moyens logiciels permettant d'associer une ou plusieurs fonctions particulière(s) à chaque élément graphique et un curseur mobile dans l'image. Ce curseur permet à un utilisateur de sélectionner un élément graphique en positionnant le curseur dessus, puis d'activer une fonction associée à l'élément graphique en générant un signal de commande. Le signal de commande est alors interprété par le système d'exploitation en fonction de la position du curseur et de l'élément graphique sur lequel ce dernier est positionné. L'image est affichée sur un moyen d'affichage du système de traitement de données, tel qu'un moniteur, un projecteur d'écran ou autre. Il est à noter qu'un élément graphique peut présenter plusieurs formes selon que la fonction associée est disponible ou non, sélectionnée, ou activée.It is known to provide a data processing system or computer, such as a microcomputer, a workstation, a personal digital assistant or the like, with a graphical command interface which allows a user to exchange data. data with the data processing system, in particular to generate control signals intended for the operating system and / or application software executable by the data processing system. Such a graphical interface consists of an image comprising distinctive graphical elements, such as icons, windows, drop-down menus or the like, software means making it possible to associate one or more particular functions with each graphical element and a moving cursor in the image. This cursor allows a user to select a graphic element by positioning the cursor on it, then activate a function associated with the graphic element by generating a command signal. The control signal is then interpreted by the operating system as a function of the position of the cursor and of the graphic element on which the latter is positioned. The image is displayed on a display means of the data processing system, such as a monitor, a screen projector or the like. It should be noted that a graphic element can have several forms depending on whether the associated function is available or not, selected or activated.
Pour commander le curseur d'une telle interface, plusieurs moyens de commande mécaniques sont connus, comme la souris, qui consiste en un boîtier comportant un détecteur de mouvement tel qu'un capteur de rotation d'une sphère de roulement montée sous le boîtier ou un capteur optique, la tablette tactile, la table à induction, le levier de commande, la sphère de commande, ou les systèmes autographiques. Ces moyens mécaniques permettent de générer des commandes de déplacement du curseur et sont également classiquement munis de boutons d'activation pour générer des signaux de commande, encore appelés événements. Par exemple, une souris est classiquement munie de deux boutons. On connaît des systèmes d'exploitation munis d'une interface graphique dans lesquels une pression du bouton droit d'une souris génère un signal de sélection qui entraîne l'affichage d'un menu déroulant permettant de sélectionner une ou plusieurs fonctions secondaires associée(s) à un élément graphique sur lequel le curseur est positionné, une simple pression sur le bouton gauche entraîne la sélection de l'élément graphique et une double pression sur le bouton gauche génère un signal d'activation qui entraîne l'exécution d'une fonction principale associée audit élément graphique.To control the cursor of such an interface, several mechanical control means are known, such as the mouse, which consists of a housing comprising a motion detector such as a rotation sensor of a rolling sphere mounted under the housing or an optical sensor, the touch pad, the induction table, the control lever, the control sphere, or the autographic systems. These mechanical means make it possible to generate commands for moving the cursor and are also conventionally provided with activation buttons to generate control signals, also called events. For example, a mouse is conventionally provided with two buttons. Operating systems are known which have a graphical interface in which a press of the right button of a mouse generates a selection signal which causes the display of a drop-down menu making it possible to select one or more associated secondary functions (s ) to a graphic element on which the cursor is positioned, a simple press on the left button leads to the selection of the graphic element and a double press on the left button generates an activation signal which leads to the execution of a function main associated with said graphic element.
Ces moyens mécaniques de commande présentent des inconvénients : ils comportent des capteurs électromécaniques susceptibles d'usure et de dysfonctionnement. Une souris requiert un espace de mouvement, lequel n'est pas toujours disponible sur un bureau. Un tel moyen de commande requiert qu'une main de l'utilisateur soit fréquemment en contact exclusif avec lui pour effectuer des mouvement peu naturels, ce qui entraîne des contraintes d'ergonomie, des problèmes musculaires ou articulaires et, finalement, limite les possibilités d'expression de l'utilisateur par l'intermédiaire du moyen de commande.These mechanical control means have drawbacks: they include electromechanical sensors liable to wear and malfunction. A mouse requires movement space, which is not always available on a desk. Such a control means requires that a hand of the user is frequently in exclusive contact with him to perform unnatural movements, which leads to ergonomic constraints, muscle or joint problems and, ultimately, limits the possibilities of expression of the user via the control means.
Pour remédier à ces problèmes, il est connu d'employer une caméra numérique reliée à un ordinateur. L'art antérieur s'est notamment attaché à repérer des parties du corps de l'utilisateur et des gestes prédéterminés pour commander un curseur. Ainsi, le document US 6 215 471 propose de commander le curseur à l'aide de mouvement des yeux et du visage. Les documents WO 00/21023 et US 6 088 018 prévoient d'acquérir des données vidéo à l'aide d'une caméra vidéo, d'analyser ces données vidéo à l'aide de procédé de reconnaissance de forme pour détecter les mouvements d'un doigt de l'utilisateur et d'envoyer des instructions à l'ordinateur en fonction des mouvements de doigt détectés. Le document US 5 617 312 divulgue un système dans lequel on détecte directement les mouvements de la main de l'utilisateur ou de la pointe d'un objet tenu par celle-ci, à l'aide d'une caméra vidéo, et l'on commande l'ordinateur pour déplacer le curseur et sélectionner une icône en fonction des signaux vidéo. Cependant, tous ces systèmes présentent des inconvénients : ils demandent d'effectuer des efforts gestuels peu intuitifs avec la main, les doigts ou le visage et les yeux. En particulier, comme ils comportent une caméra placée sur le sommet d'un moniteur ou d'un écran et orientée directement vers l'utilisateur, ils obligent celui-ci à effectuer des mouvements de parties du corps ou d'objets dans le champ de la caméra, sans aucun repère spatial. De tels mouvements ne peuvent pas être maîtrisés précisément, en particulier à causes des tremblements et des mouvements involontaires de fatigue ou de nervosité qu'une utilisation courante d'un tel système de commande ne manquerait pas d'occasionner chez l'utilisateur. Ainsi, ces systèmes connus ne permettent pas d'obtenir des déplacements du curseur précisément contrôlés, ce qui est particulièrement gênant dans les applications graphiques, comme par exemple pour la commande d'un logiciel de dessin ou dans les interfaces de commande ayant des menus déroulants. De plus, les mouvements qui se font en se rapprochant ou en s 'éloignant de la caméra parallèlement à son axe de visée ne sont pas ou très difficilement discernables par cette caméra, de sorte qu'une partie des mouvements effectués par l'utilisateur a de forte chance de ne pas être détectée et interprétée correctement par ces systèmes.To remedy these problems, it is known to employ a digital camera connected to a computer. The prior art has in particular endeavored to identify parts of the user's body and predetermined gestures to control a cursor. Thus, document US Pat. No. 6,215,471 proposes to control the cursor by means of movement of the eyes and of the face. Documents WO 00/21023 and US 6,088,018 provide for acquiring video data using a video camera, for analyzing this video data using a pattern recognition method for detecting the movements of a user's finger and send instructions to the computer based on detected finger movements. Document US Pat. No. 5,617,312 discloses a system in which the movements of the user's hand or the tip of an object held by it are detected directly, using a video camera, and the the computer is controlled to move the cursor and select an icon according to the video signals. However, all of these systems have drawbacks: they require unintuitive gestural efforts to be made with the hand, fingers or face and eyes. In particular, as they include a camera placed on the top of a monitor or screen and oriented directly towards the user, they oblige the latter to carry out movements of body parts or objects in the field of the camera, without any spatial reference. Such movements cannot be precisely controlled, in particular because of the tremors and involuntary movements of fatigue or nervousness that a common use of such a control system would not fail to cause in the user. Thus, these known systems do not make it possible to obtain precisely controlled movements of the cursor, which is particularly troublesome in graphic applications, such as for example for controlling drawing software or in command interfaces having drop-down menus. . In addition, the movements which are made while approaching or moving away from the camera parallel to its line of sight are not or very difficult to discern by this camera, so that part of the movements carried out by the user has high chance of not being detected and interpreted correctly by these systems.
En outre, les procédés de reconnaissance de forme employés dans ces systèmes connus sont coûteux en temps de traitement et nécessitent l'emploi de systèmes de traitement de données aux performances élevées. L'invention a pour but de permettre la commande d'un curseur d'une interface graphique d'un système de traitement de données à l'aide d'une caméra en remédiant aux inconvénients précités. Plus particulièrement, l'invention a pour but de permettre un contrôle précis des déplacements d'un curseur, ainsi que de permettre la mise en œuvre d'un tel contrôle de curseur sur un système ayant des performances et une capacité de mémoire limitées, tel qu'un assistant numérique personnel.In addition, the pattern recognition methods employed in these known systems are costly in processing time and require the use of high performance data processing systems. The invention aims to allow the control of a cursor of a graphical interface of a data processing system using a camera by overcoming the aforementioned drawbacks. More particularly, the invention aims to allow precise control of the movements of a cursor, as well as to allow the implementation of such cursor control on a system having limited performance and memory capacity, such than a personal digital assistant.
Pour cela, l'invention propose un procédé de commande d'un curseur sur une interface graphique d'un ordinateur, comportant les étapes consistant à : - prédéfinir des propriétés d'un objet pointu à détecter et les mémoriser dans une mémoire dudit ordinateur,For this, the invention proposes a method for controlling a cursor on a graphical interface of a computer, comprising the steps consisting in: - predefine the properties of a pointed object to be detected and store them in a memory of said computer,
- acquérir des images numérisées successives au moyen d'une caméra reliée audit ordinateur, les images numérisées présentant une direction horizontale et une direction verticale,- acquire successive digitized images by means of a camera connected to said computer, the digitized images having a horizontal direction and a vertical direction,
- détecter, dans chaque image numérisée, la présence dudit objet pointu sous la forme d'une partie de ladite image présentant lesdites propriétés prédéfinies,- detecting, in each digitized image, the presence of said pointed object in the form of a part of said image having said predefined properties,
- lorsqu'une telle partie d'image est détectée, repérer un point de référence de ladite partie d'image,- when such an image part is detected, locate a reference point of said image part,
- commander ledit curseur sur ladite interface graphique en fonction des positions dudit point de référence dans lesdites images successives, caractérisé par le fait que l'étape d'acquisition des images numérisées consiste à filmer une surface de travail sur laquelle, en service, on déplace une pointe dudit objet pointu, ladite pointe gardant une orientation axiale située dans un angle solide prédéterminé, l'étape de repérage du point de référence comportant une opération de repérage d'un point extrémal de ladite partie d'image suivant une direction prédéterminée du plan des images, de manière à localiser une zone de contact entre ladite pointe et ladite surface de travail, ledit point de référence étant défini en fonction dudit point extrémal.- controlling said cursor on said graphical interface as a function of the positions of said reference point in said successive images, characterized in that the step of acquiring the digitized images consists in filming a work surface on which, in service, one moves a tip of said pointed object, said tip retaining an axial orientation situated in a predetermined solid angle, the step of locating the reference point comprising an operation of locating an extreme point of said image part in a predetermined direction of the plane images, so as to locate a contact zone between said tip and said work surface, said reference point being defined as a function of said extremal point.
Grâce à la mise en contact de la pointe avec la surface de travail, les déplacements de l'objet pointu, et donc du point de référence en fonction duquel le curseur est commandé, sont aisément contrôlables. De préférence, l'objet pointu est indépendant et libre d'être déplacé par rapport à la surface de travail. L'objet pointu peut être choisi par l'utilisateur pour être à la fois fin, précis et maniable. En particulier, l'objet pointu prédéfini peut être une partie d'extrémité d'un instrument d'écriture comme un crayon, un stylographe ou un feutre. La surface de travail est, par exemple, la surface d'un bureau, un tableau mural, un tableau sur pied, un écran mural de rétroprojection ou autre.By bringing the point into contact with the work surface, the movements of the pointed object, and therefore of the reference point as a function of which the cursor is controlled, are easily controllable. Preferably, the pointed object is independent and free to be moved relative to the work surface. The pointed object can be chosen by the user to be at the same time fine, precise and handy. In particular, the predefined pointed object can be an end part of a writing instrument such as a pencil, a stylograph or a felt-tip pen. The work surface is, for example, the surface of a desk, a wall board, a freestanding board, a rear projection wall screen or the like.
Le contrôle des déplacements d'un instrument d'écriture sur une telle surface est habituel pour toute personne sachant écrire et/ou dessiner, de sorte que la commande d'un curseur par le procédé selon l'invention ne demande aucun apprentissage supplémentaire. Les possibilités d'expression de l'utilisateur ne sont pas limitées par rapport à celles obtenues par l'utilisation d'un crayon sur une feuille de papier car aucun mouvement non intuitif n'est requis de l'utilisateur.Controlling the movements of a writing instrument on such a surface is usual for anyone who can write and / or draw, so that the control of a cursor by the method according to the invention requires no additional learning. The The user's possibilities of expression are not limited compared to those obtained by using a pencil on a sheet of paper because no non-intuitive movement is required from the user.
Comme la caméra vise la surface de travail, toutes les directions de mouvement de la pointe sur celle-ci sont détectables et aucun mouvement parallèle à l'axe de visée de la caméra, indécelable pour celle-ci, ne risque d'être involontairement produit. Finalement, tous les mouvements intentionnels de l'objet pointu sont exploitables pour positionner et commander le curseur sur l'interface graphique, ce qui garantit une grande fidélité du mouvement du curseur au mouvement de la pointe.As the camera aims at the work surface, all the directions of movement of the point on it are detectable and no movement parallel to the line of sight of the camera, undetectable for the latter, is likely to be involuntarily produced . Finally, all intentional movements of the pointed object can be used to position and control the cursor on the graphic interface, which guarantees great fidelity of the cursor movement to the movement of the tip.
Les propriétés prédéfinies de l'objet pointu peuvent être des propriétés de forme et/ou de taille et/ou de couleur. Le procédé selon l'invention n'emploie pas des techniques de reconnaissance de forme, de segmentation d'image en zones de couleur homogène ou de détection de mouvement, qui sont coûteuses en temps de calcul. Le repérage d'un point extrémal dans une partie d'image peut être mis en œuvre avec très peu de calcul et de mémoire, ce qui permet une mise en œuvre en temps réel du procédé selon l'invention sur des plates-formes informatiques peu puissantes et dotées de peu de mémoire, comme les assistants numériques personnels.The predefined properties of the pointed object can be properties of shape and / or size and / or color. The method according to the invention does not employ shape recognition techniques, image segmentation into areas of uniform color or motion detection, which are costly in computation time. The location of an extremal point in an image part can be implemented with very little computation and memory, which allows a real-time implementation of the method according to the invention on computer platforms little powerful and with little memory, like personal digital assistants.
Le placement de la caméra n'est pas limité. Par exemple, la caméra peut être montée dans un plafond ou un mur, au-dessus de la surface de travail, ou encore montée sur un support posé sur la surface de travail. Son angle de visée par rapport à la surface de travail peut être perpendiculaire ou oblique. Dans chaque cas, l'orientation de la pointe doit être maintenue, en service, dans un angle solide prédéterminé inclus dans un demi espace vectoriel délimité par un plan contenant l'axe de visée de la caméra. De préférence, le point extrémal est défini comme le point de ladite partie d'image situé le plus bas dans ladite image ou comme le point de ladite partie d'image situé le plus bas sur une droite d'interpolation de ladite partie d'image, ledit angle solide étant inclus dans un demi espace vectoriel délimité par le plan contenant l'axe de visée de ladite caméra et ladite direction horizontale des images. Dans ce cas, on place de préférence la caméra du côté de la surface de travail opposé à l'utilisateur, de sorte que la pointe d'objet soit globalement orientée vers la caméra.The placement of the camera is not limited. For example, the camera can be mounted in a ceiling or wall, above the work surface, or even mounted on a support placed on the work surface. Its viewing angle relative to the work surface can be perpendicular or oblique. In each case, the orientation of the point must be maintained, in service, at a predetermined solid angle included in a half vector space delimited by a plane containing the line of sight of the camera. Preferably, the extremal point is defined as the point of said image part located lowest in said image or as the point of said image part located lowest on an interpolation line of said image part , said solid angle being included in a half vector space delimited by the plane containing the line of sight of said camera and said horizontal direction of the images. In this case, the camera is preferably placed on the side of the work surface opposite the user, so that the object tip is generally oriented towards the camera.
Avantageusement, ledit point de référence est choisi sur un segment entre ledit point extrémal et un barycentre de ladite partie d'image. Ce choix accroît encore la stabilité du point de référence même si le point extrémal de la partie d'image détectée est bruité ou n'est pas toujours le même, par exemple en raison de la résolution de la caméra, des limites de détection inhérentes à celle-ci, de seuils de détection choisis ou de variations de l'éclairement. De préférence, l'étape de commande dudit curseur comporte, pour chaque image dans laquelle ladite partie d'image est détectée, une actualisation de la position dudit curseur sur l'interface graphique en fonction de la position dudit point de référence dans ladite image. Avantageusement, l'étape de commande dudit curseur comporte une étape de détection d'une trajectoire prédéterminée de la position dudit point de référence dans des images successives et la génération d'un signal de commande lorsque ladite trajectoire prédéterminée est détectée. Cette étape de détection d'une trajectoire prédéterminée peut être, par exemple, une étape de détection d'une trajectoire en boucle, en W ou d'une absence de mouvement substantiel dudit objet pointu pendant une période prédéterminée.Advantageously, said reference point is chosen on a segment between said extremal point and a barycenter of said image part. This choice further increases the stability of the reference point even if the extreme point of the detected image part is noisy or is not always the same, for example due to the resolution of the camera, the detection limits inherent in this, selected detection thresholds or variations in illumination. Preferably, the step of controlling said cursor comprises, for each image in which said part of the image is detected, an update of the position of said cursor on the graphical interface as a function of the position of said reference point in said image. Advantageously, the step of controlling said cursor comprises a step of detecting a predetermined trajectory of the position of said reference point in successive images and the generation of a control signal when said predetermined trajectory is detected. This step of detecting a predetermined trajectory can be, for example, a step of detecting a trajectory in a loop, in W or in the absence of substantial movement of said pointed object during a predetermined period.
Selon une autre caractéristique du procédé selon l'invention, il comporte, pour chaque image numérisée acquise, une étape consistant à mémoriser ladite image en remplacement de l'image numérisée acquise précédemment, de manière qu'au plus une seule image numérisée reste mémorisée simultanément dans ladite mémoire.According to another characteristic of the method according to the invention, it comprises, for each digitized image acquired, a step consisting in storing said image in replacement of the digitized image acquired previously, so that at most one digitized image remains stored simultaneously in said memory.
Avantageusement, le procédé selon l'invention comporte, pour chaque image dans laquelle ladite partie d'image est détectée, une étape consistant à détecter la présence d'un contact entre ledit objet pointu et ladite surface de travail, ladite étape de commande du curseur comportant une sélection d'un mode de fonctionnement dudit curseur en fonction du résultat de ladite détection de contact.Advantageously, the method according to the invention comprises, for each image in which said image part is detected, a step consisting in detecting the presence of a contact between said pointed object and said working surface, said step of controlling the cursor comprising a selection of an operating mode of said cursor as a function of the result of said contact detection.
Selon l'invention, la détection de présence d'un contact entre l'objet pointu et la surface de travail peut être effectuée au moyen d'une mesure de grossissement de ladite partie d'image, d'une détection de l'ombre de l'objet point sur la surface de travail, d'une détection de l'existence d'une trace sur la surface de travail à l'endroit des positions précédentes de la pointe ou d'une autre manière.According to the invention, the detection of the presence of a contact between the pointed object and the work surface can be carried out by means of a magnification measurement of said image part, of a detection from the shadow of the point object on the work surface, a detection of the existence of a trace on the work surface at the location of the previous positions of the point or in another way.
L'invention a aussi pour objet un programme d'ordinateur contenant des codes d'instructions propres à être lus ou stockés sur un support, lesdits codes étant exécutables par un ordinateur muni d'une interface graphique ayant un curseur et affichée par un moyen d'affichage, d'une mémoire et d'une caméra, pour effectuer les opérations consistant à : - mémoriser dans ladite mémoire des propriétés prédéfinies d'un objet pointu à détecter,The subject of the invention is also a computer program containing instruction codes suitable for being read or stored on a medium, said codes being executable by a computer provided with a graphical interface having a cursor and displayed by a means of display, of a memory and of a camera, for carrying out the operations consisting in: - memorizing in said memory predefined properties of a pointed object to be detected,
- acquérir des images numérisées successives au moyen de ladite caméra, chaque image numérisée présentant une direction verticale et une direction horizontale, - détecter, dans chaque image numérisée, la présence dudit objet pointu sous la forme d'une partie d'image présentant lesdites propriétés prédéfinies,- acquire successive digitized images by means of said camera, each digitized image having a vertical direction and a horizontal direction, - detecting, in each digitized image, the presence of said pointed object in the form of an image part having said properties predefined,
- lorsqu'une telle partie d'image est détectée, déterminer des coordonnées d'un point de référence de ladite partie d'image, - commander ledit curseur sur ladite interface graphique en fonction des coordonnées dudit point de référence dans lesdites images successives, caractérisé par le fait que ladite détermination des coordonnées du point de référence comprend une opération consistant à déterminer des coordonnées d'un point extrémal de ladite partie d'image suivant une direction prédéterminée, de manière à repérer un point de contact entre ledit objet pointu et une surface de travail qui, en service, est visée par ladite caméra et sur laquelle on déplace une pointe dudit objet pointu en maintenant une orientation axiale de ladite pointe dans un angle solide prédéterminé, et une détermination des coordonnées du point de référence en fonction de celles dudit point extrémal.- when such an image part is detected, determining the coordinates of a reference point of said image part, - controlling said cursor on said graphical interface as a function of the coordinates of said reference point in said successive images, characterized in that said determining the coordinates of the reference point comprises an operation consisting in determining the coordinates of an extremal point of said image part in a predetermined direction, so as to locate a point of contact between said pointed object and a work surface which, in use, is targeted by said camera and on which a point of said pointed object is moved while maintaining an axial orientation of said point in a predetermined solid angle, and a determination of the coordinates of the reference point as a function of those from said extremal point.
Au sens de l'invention, un programme d'ordinateur consiste en un ou plusieurs modules dépendants ou indépendants écrits dans un ou plusieurs langages appropriés de niveau quelconque. De préférence, l'opération de commande dudit curseur comporte, pour chaque image dans laquelle ladite partie d'image est détectée, une actualisation de la position dudit curseur sur l'interface graphique en fonction des coordonnées dudit point de référence dans ladite image.Within the meaning of the invention, a computer program consists of one or more dependent or independent modules written in one or more appropriate languages of any level. Preferably, the operation of controlling said cursor comprises, for each image in which said image part is detected, an update of the position of said cursor on the graphical interface as a function of the coordinates of said reference point in said image.
Avantageusement, ladite opération de commande du curseur comporte une étape de détection d'une absence de mouvement substantiel dudit objet pointu pendant une période prédéterminée et la génération d'un signal de commande lorsqu'une absence de mouvement substantiel est détectée.Advantageously, said cursor control operation includes a step of detecting an absence of substantial movement of said pointed object for a predetermined period and the generation of a control signal when an absence of substantial movement is detected.
De préférence, lesdits codes d'instructions sont exécutables pour effectuer une opération consistant, pour chaque image numérisée acquise, à mémoriser ladite image dans ladite mémoire en remplacement de l'image numérisée acquise précédemment, de manière qu'au plus une seule image numérisée reste mémorisée simultanément.Preferably, said instruction codes are executable to perform an operation consisting, for each acquired digital image, of storing said image in said memory in replacement of the previously acquired digital image, so that at most one digital image remains memorized simultaneously.
Avantageusement, lesdits codes d'instructions sont exécutables pour effectuer, pour chaque image dans laquelle ladite partie d'image est détectée, une opération consistant à détecter la présence d'un contact entre ledit objet pointu et ladite surface de travail au moyen d'une mesure de grossissement de ladite partie d'image, ladite opération de commande du curseur comportant une sélection d'un mode de fonctionnement dudit curseur en fonction du résultat de ladite détection de contact.Advantageously, said instruction codes are executable for carrying out, for each image in which said image part is detected, an operation consisting in detecting the presence of a contact between said pointed object and said work surface by means of a measuring the magnification of said image part, said cursor control operation comprising a selection of an operating mode of said cursor according to the result of said contact detection.
L'invention a également pour objet un système de traitement de données comportant des moyens de mémorisation, des moyens d'affichage affichant, en service, une interface graphique de commande ayant un curseur, une caméra, un objet pointu dont au moins une pointe est placée, en service, dans le champ de ladite caméra, et une unité centrale de traitement apte à effectuer les opérations consistant à :The invention also relates to a data processing system comprising storage means, display means displaying, in use, a graphical command interface having a cursor, a camera, a pointed object of which at least one point is placed, in service, in the field of said camera, and a central processing unit capable of performing the operations consisting in:
- mémoriser dans lesdits moyens de mémorisation des propriétés prédéfinies dudit objet pointu, - acquérir des images numérisées successives au moyen de ladite caméra, chaque image numérisée présentant une direction verticale et une direction horizontale,- store in said storage means predefined properties of said pointed object, - acquire successive digitized images by means of said camera, each digitized image having a vertical direction and a horizontal direction,
- détecter, dans chaque image numérisée, la présence dudit objet pointu sous la forme d'une partie d'image présentant lesdites propriétés prédéfinies, - lorsqu'une telle partie d'image est détectée, déterminer des coordonnées d'un point de référence de ladite partie d'image,- detect, in each digitized image, the presence of said pointed object in the form of an image part having said predefined properties, - when such an image part is detected, determining coordinates of a reference point of said image part,
- commander ledit curseur sur ladite interface graphique en fonction des coordonnées dudit point de référence dans lesdites images successives, caractérisé par le fait que, en service, ladite caméra vise une surface de travail sur laquelle ladite pointe est déplacée en gardant une orientation axiale située dans un angle solide prédéterminé, ladite détermination des coordonnées du point de référence comprenant une opération de repérage d'un point extrémal de ladite partie d'image suivant une direction prédéterminée du plan des images, et une détermination des coordonnées du point de référence en fonction de la position dudit point extrémal repéré.- controlling said cursor on said graphical interface as a function of the coordinates of said reference point in said successive images, characterized in that, in service, said camera aims at a work surface on which said point is moved while keeping an axial orientation situated in a predetermined solid angle, said determination of the coordinates of the reference point comprising an operation of locating an extreme point of said image part in a predetermined direction of the plane of the images, and a determination of the coordinates of the reference point as a function of the position of said extremal point identified.
Les objets de l'invention permettent de remplacer un moyen de commande mécanique du curseur, comme une souris, une tablette tactile ou une tablette graphique et de commander un curseur avec un objet pointu quelconque, de préférence un instrument d'écriture dont l'utilisateur est familier. La commande du curseur permet de générer des signaux de commande destinés à être exécutés par un système d'exploitation et/ou des logiciels d'application pour réaliser des applications de dessin numérique, d'écriture, de traitement de texte ou autres.The objects of the invention make it possible to replace a means of mechanical control of the cursor, such as a mouse, a tactile tablet or a graphic tablet and to control a cursor with any pointed object, preferably a writing instrument whose user is familiar. The cursor control makes it possible to generate control signals intended to be executed by an operating system and / or application software for carrying out digital drawing, writing, word processing or other applications.
L'invention sera mieux comprise, et d'autres buts, détails, caractéristiques et avantages de celle-ci apparaîtront plus clairement au cours de la description suivante d'un mode de réalisation particulier de l'invention, donné uniquement à titre illustratif et non limitatif, en référence au dessin annexé. Sur ce dessin :The invention will be better understood, and other objects, details, characteristics and advantages thereof will appear more clearly during the following description of a particular embodiment of the invention, given solely by way of illustration and not limiting, with reference to the attached drawing. On this drawing :
- la figure 1 est un schéma bloc d'un système de traitement de données selon l'invention, - la figure 2 est une vue en perspective du système de traitement de données de la figure 1 en service ;- Figure 1 is a block diagram of a data processing system according to the invention, - Figure 2 is a perspective view of the data processing system of Figure 1 in use;
- la figure 3 est une vue en perspective de la caméra du système de la figure 1 et de l'orientation d'un crayon par rapport à celle-ci ; - la figure 4 représente une image acquise par la caméra de la figure 2 ; - la figure 5 est un schéma de principe d'un procédé mis en œuvre par le système de la figure 2 ;- Figure 3 is a perspective view of the camera of the system of Figure 1 and the orientation of a pencil relative thereto; - Figure 4 shows an image acquired by the camera of Figure 2; - Figure 5 is a block diagram of a method implemented by the system of Figure 2;
- la figure 6 est un schéma plus détaillé de la troisième étape du procédé de la figure 5 ; - la figure 7 est un schéma plus détaillé de la quatrième étape du procédé de la figure 5 ;- Figure 6 is a more detailed diagram of the third step of the method of Figure 5; - Figure 7 is a more detailed diagram of the fourth step of the method of Figure 5;
- la figure 8 est un schéma plus détaillé de la cinquième étape du procédé de la figure 5 ;- Figure 8 is a more detailed diagram of the fifth step of the method of Figure 5;
- la figure 9 représente une autre image acquise par la caméra de la figure 2.FIG. 9 represents another image acquired by the camera of FIG. 2.
En référence à la figure 1, un système informatique 1 comporte une unité centrale 2 comprenant une mémoire centrale 3 et un processeur 4, un périphérique d'affichage 5 et un périphérique d'acquisition d'images numérisées 6. Ce dernier vise une surface de travail 7 sur laquelle, en service, on déplace un objet pointu 8.With reference to FIG. 1, a computer system 1 comprises a central unit 2 comprising a central memory 3 and a processor 4, a display device 5 and a digital image acquisition device 6. The latter targets a surface of work 7 on which, in service, a pointed object is moved 8.
En référence à la figure 2, le système informatique 1 est un micro-ordinateur, la surface de travail 7 est le plateau d'un bureau sur lequel est posé l'unité centrale 2. Le périphérique d'affichage est un moniteur 5 posé sur l'unité centrale. Le périphérique d'acquisition d'images numérisées est une caméra numérique 6 montée sur un trépied 9 posé sur le plateau 7. L'unité centrale 2 comporte également des moyens de stockage de masse, non représentés, dans lesquels sont stockés un système d'exploitation et/ou des logiciels d'application ayant une interface graphique de commande 10 dont le curseur 11 est représenté sous la forme d'une croix affichée sur le moniteur 5. La caméra numérique 6 est reliée à l'unité centrale 2 par une liaison de transmission de données 12 pour transmettre à l'unité centrale 2 des images numérisées. Le système informatique 1 est également muni d'un clavier 13. Un utilisateur 14 étant supposé droitier, le trépied 9 est positionné à la droite de l'unité centrale 2. L'objectif de la caméra 6 est incliné vers le bas à environ 45° pour viser le plateau 7 et est orienté vers l'utilisateur 14, qui est assis en face du moniteur 5 dans la position naturelle de travail d'une personne à un bureau et dont seule la main droite 15 est représentée. L'objet pointu 8 est un crayon tenu par l'utilisateur 14 de manière que sa pointe 16 soit dans le champ de la caméra 6 et en contact avec le plateau 7 ou avec une feuille de papier, non représentée, posée dessus.With reference to FIG. 2, the computer system 1 is a microcomputer, the work surface 7 is the desk top on which the central unit 2 is placed. The display device is a monitor 5 placed on central unity. The digital image acquisition device is a digital camera 6 mounted on a tripod 9 placed on the plate 7. The central unit 2 also includes mass storage means, not shown, in which a storage system is stored. operating and / or application software having a graphical command interface 10 whose cursor 11 is represented in the form of a cross displayed on the monitor 5. The digital camera 6 is connected to the central unit 2 by a link of data transmission 12 for transmitting to the central unit 2 digitized images. The computer system 1 is also provided with a keyboard 13. A user 14 being assumed to be right-handed, the tripod 9 is positioned to the right of the central unit 2. The lens of the camera 6 is tilted downward at approximately 45 ° to target the plate 7 and is oriented towards the user 14, who is seated opposite the monitor 5 in the natural working position of a person at a desk and of whom only the right hand 15 is shown. The pointed object 8 is a pencil held by the user 14 so that its point 16 is in the field of the camera 6 and in contact with the plate 7 or with a sheet of paper, not shown, placed on it.
En référence à la figure 3, l'axe de visée de la caméra 6 est représenté par l'axe X. La caméra 6 comporte un tableau bidimensionnel de capteurs ponctuels, par exemple du type à couplage de charge CCD, qui définissent une direction horizontale des images Y et une direction verticale des images Z, toutes deux perpendiculaires à l'axe X. Dans la configuration représentée, le point de contact C entre la pointe 16 du crayon 8 et la surface de travail 7, c'est-à-dire l'extrémité de la pointe 16, est sur l'axe X ; mais le point C peut bien sûr être décalé par rapport à cet axe. La flèche 17 représente l'orientation axiale dans l'espace de la pointe 16 par rapport à la caméra 6, cette orientation étant définie par convention par un vecteur ayant pour origine l'extrémité C. En service, l'utilisateur 14 maintient cette orientation dans un angle solide inclus dans le demi espace vectoriel Z>0, c'est-à-dire dans le demi espace situé au-dessus du plan contenant l'axe X et l'axe Y. En d'autres termes, la composante du vecteur 17 sur l'axe Z doit rester positive. De cette manière, le point de contact C est toujours le point le plus bas du crayon considéré en projection sur l'axe Z. Au vu de l'agencement de la caméra 6, cette condition est toujours satisfaite lorsque l'utilisateur est en train d'écrire ou de dessiner, et l'on ne voit pas quel geste technique lui demanderait d'incliner son crayon vers le demi espace Z<0. La contrainte d'orientation n'est donc pas gênante pour l'utilisateur et ne limite pas sensiblement ses possibilités d'expression. L'unité centrale 2 comporte également, dans la mémoire 3, un programme de commande 18, visible à la figure 1, exécutable pour mettre en œuvre un procédé de commande du curseur 11 de l'interface graphique de commande 10. Le programme de commande 18 comprend un module de détection, un module de calcul et un module de gestion du curseur et de l'affichage. Ce procédé de commande va maintenant être décrit en référence aux figures 4 à 8.With reference to FIG. 3, the aiming axis of the camera 6 is represented by the X axis. The camera 6 comprises a two-dimensional array of point sensors, for example of the CCD charge coupling type, which define a horizontal direction Y images and a vertical direction of Z images, both perpendicular to the X axis. In the configuration shown, the contact point C between the tip 16 of the pencil 8 and the working surface 7, that is to say say the end of the tip 16, is on the axis X; but point C can of course be offset from this axis. The arrow 17 represents the axial orientation in the space of the tip 16 relative to the camera 6, this orientation being defined by convention by a vector originating from the end C. In service, the user 14 maintains this orientation in a solid angle included in the half vector space Z> 0, that is to say in the half space located above the plane containing the X axis and the Y axis. In other words, the component of vector 17 on the Z axis must remain positive. In this way, the contact point C is always the lowest point of the pencil considered in projection on the axis Z. In view of the arrangement of the camera 6, this condition is always satisfied when the user is in the process of to write or draw, and we don't see what technical gesture would ask him to tilt his pencil towards the half space Z <0. The orientation constraint is therefore not annoying for the user and does not significantly limit his possibilities of expression. The central processing unit 2 also includes, in the memory 3, a control program 18, visible in FIG. 1, executable for implementing a method for controlling the cursor 11 of the graphical command interface 10. The command program 18 includes a detection module, a calculation module and a cursor and display management module. This control method will now be described with reference to FIGS. 4 to 8.
En référence à la figure 5, dans une étape 19 d'initialisation, la couleur de l'objet à pointe 8 qui est utilisé pour commander le curseur est mise en mémoire pour servir de référence. La couleur de référence est mémorisée en codage RVB sous la forme d'un vecteur de couleur de référence comprenant une valeur de rouge Rs, une valeur de vert Vs et une valeur de bleu Bs. L'utilisateur choisit également un mode de fonctionnement pour gaucher ou pour droitier.With reference to FIG. 5, in an initialization step 19, the color of the point object 8 which is used to control the cursor is stored in memory to serve as a reference. The reference color is stored in RGB coding in the form of a reference color vector comprising a red value Rs, a green value Vs and a value of blue Bs. The user also chooses an operating mode for left-handed or right-handed.
Dans une deuxième étape 20, une image numérisée 21 est acquise par la caméra 6, sous la commande de l'unité centrale 2, transmise par la liaison 12 à l'unité centrale 2 et mémorisée dans la mémoire 3. En référence à la figure 4, chaque image numérisée acquise par la caméra 6 est un tableau de pixels présentant une direction parallèle à l'axe Y et une direction parallèle à l'axe Z. Les pixels ne sont pas individuellement représentés à la figure 4. On voit qu'une image numérisée contient une portion 22 de la surface de travail 7 et une partie d'extrémité du crayon 8 dont la pointe 16 est en contact avec celle-ci.In a second step 20, a digitized image 21 is acquired by the camera 6, under the control of the central unit 2, transmitted by the link 12 to the central unit 2 and stored in the memory 3. With reference to the figure 4, each digitized image acquired by the camera 6 is a table of pixels having a direction parallel to the Y axis and a direction parallel to the Z axis. The pixels are not individually represented in FIG. 4. It can be seen that a scanned image contains a portion 22 of the working surface 7 and an end portion of the pencil 8 whose tip 16 is in contact with the latter.
Dans une troisième étape 24, la présence de la pointe 16 dans l'image 21 est détectée. Cette étape est pilotée par l'exécution du module de détection. En référence à la figure 6, l'étape de détection 24 comprend les étapes élémentaires suivantes :In a third step 24, the presence of the tip 16 in the image 21 is detected. This step is controlled by the execution of the detection module. With reference to FIG. 6, the detection step 24 comprises the following elementary steps:
- étape 241 : pour chaque pixel de l'image, on détermine le vecteur de couleur du pixel, ledit vecteur comprenant une valeur de rouge R, une valeur de vert V et une valeur de bleu B. Puis on calcule un coefficient colorimétrique CO égal au produit scalaire du vecteur de couleur du pixel par le vecteur de couleur de référence divisé par le produit des normes quadratiques des deux vecteurs, selon la formule : CO=(R.Rs+V.Vs+B.Bs)/[(R2+V2+B2)1/2.(Rs2+Vs2+Bs2)1/2] On compare ensuite le coefficient CO du pixel à un seuil prédéterminé COs compris entre 0 et 1, par exemple COs=0,9. Si CO>COs, le pixel est marqué comme conforme à la couleur de référence ; sinon, le pixel n'est pas marqué. L'opération ci-dessus est effectuée pour tous les pixels de l'image. Tous les pixels marqués comme conforme à la couleur de référence à l'issue de cette opération sont regroupés en groupes de pixels ayant une distance de proche en proche inférieure à une distance maximale prédéterminée Ds, par exemple comprise entre 0 et 5 largeurs de pixels.step 241: for each pixel of the image, the color vector of the pixel is determined, said vector comprising a value of red R, a value of green V and a value of blue B. Then a colorimetric coefficient CO is calculated equal to the dot product of the pixel color vector by the reference color vector divided by the product of the quadratic norms of the two vectors, according to the formula: CO = (R.Rs + V.Vs + B.Bs) / [(R 2 + V 2 + B 2 ) 1/2 . (Rs 2 + Vs 2 + Bs 2 ) 1/2 ] The CO coefficient of the pixel is then compared to a predetermined threshold COs between 0 and 1, for example COs = 0 9. If CO> COs, the pixel is marked as conforming to the reference color; otherwise, the pixel is not marked. The above operation is performed for all pixels in the image. All the pixels marked as conforming to the reference color at the end of this operation are grouped into groups of pixels having a distance gradually nearer than a predetermined maximum distance Ds, for example between 0 and 5 pixel widths.
- étape 242 : pour chaque groupe de pixels marqués formé à l'issue de l'étape 241, on compte le nombre N de pixels contenu dans le groupe. On compare ce nombre de pixels à un seuil minimal prédéterminé Nmin. Si N<Nmin, le marquage des pixels du groupe est annulé, de sorte que ces pixels ne sont pas reconnus faire partie de l'objet pointu à détecter.step 242: for each group of marked pixels formed at the end of step 241, the number N of pixels contained in the group is counted. This number of pixels is compared to a predetermined minimum threshold Nmin. If N <Nmin, the pixel marking of the group is canceled, so that these pixels are not recognized as being part of the pointed object to be detected.
- étape 243 : pour chaque groupe de pixels restant marqués à l'issue de l'étape 242, on compare le nombre de pixels N à un seuil maximal prédéterminé Nmax. Si N>Nmax, le marquage des pixels du groupe est annulé, de sorte que ces pixels ne sont pas reconnus faire partie de l'objet à identifier. Ainsi, on a éliminé des pixels marqués tous ceux formant des groupes trop petits ou trop grands pour faire partie de l'objet pointu à détecter. - étape 244 : on teste s'il reste un groupe de pixels marqués comme conformes à la couleur de référence. Si ce n'est pas le cas, l'objet pointu n'est pas détecté dans l'image 21. Un message est alors envoyé au module de gestion du curseur et de l'affichage pour signaler l'absence de l'objet pointu. L'exécution du programme de commande 18 est interrompue et un message d'erreur est affiché à l'écran pour demander à l'utilisateur de vérifier s'il a correctement initialisé la couleur de référence, positionné et activé la caméra, etc. L'envoi du message d'erreur peut être précédé d'une ou plusieurs itération(s) de l'étape 24 de détection pour tenter de détecter l'objet pointu dans une nouvelle image. S'il reste un groupe de pixels marqués comme conformes à la couleur de référence, par exemple le groupe 27 formé de l'image du crayon 8 à la figure 4, le programme passe à l'étape 25, comme représenté par la flèche 246. S'il reste plusieurs groupes de pixels marqués comme conformes à la couleur de référence, ceux-ci sont fusionnés en un seul groupe.step 243: for each group of pixels remaining marked at the end of step 242, the number of pixels N is compared to a predetermined maximum threshold Nmax. If N> Nmax, the marking of the pixels of the group is canceled, so that these pixels are not recognized to be part of the object to be identified. Thus, pixels marked out have eliminated all those forming groups too small or too large to be part of the pointed object to be detected. - Step 244: we test if there remains a group of pixels marked as conforming to the reference color. If this is not the case, the sharp object is not detected in image 21. A message is then sent to the cursor and display management module to report the absence of the sharp object . The execution of the control program 18 is interrupted and an error message is displayed on the screen asking the user to check whether he has correctly initialized the reference color, positioned and activated the camera, etc. The sending of the error message can be preceded by one or more iteration (s) of the detection step 24 in an attempt to detect the pointed object in a new image. If there remains a group of pixels marked as conforming to the reference color, for example the group 27 formed from the image of the pencil 8 in FIG. 4, the program proceeds to step 25, as represented by the arrow 246 If there are more than one group of pixels marked as conforming to the reference color, these are merged into one group.
Dans la quatrième étape 25, les coordonnées d'un point de référence P de l'objet pointu 8 sont déterminées. Cette étape est pilotée par l'exécution du module de calcul. En référence à la figure 7, l'étape de repérage du point de référence P comprend les étapes élémentaires suivantes :In the fourth step 25, the coordinates of a reference point P of the pointed object 8 are determined. This step is controlled by the execution of the calculation module. With reference to FIG. 7, the step of locating the reference point P comprises the following elementary steps:
- étape 251 : les coordonnées du barycentre G du groupe de pixels 27 sont calculées. Ces coordonnées sont, sur chaque axe Y et Z, la moyenne arithmétique des coordonnées de tous les pixels du groupe 27.step 251: the coordinates of the barycenter G of the group of pixels 27 are calculated. These coordinates are, on each Y and Z axis, the arithmetic mean of the coordinates of all the pixels in group 27.
- étape 252 : les coordonnées du pixel appartenant au groupe 27 et situé le plus bas dans l'image 21 sont déterminées. Pour cela, on compare les coordonnées selon Z de tous les pixels du groupe 27 et on choisit celui qui a la coordonnée selon Z la plus petite. S'il y a plusieurs pixels ayant la plus petite coordonnée selon Z, on choisit par convention celui qui a la coordonnée selon Y la plus petite pour un gaucher ou la plus grande pour un droitier, selon le réglage choisi à l'étape d'initialisation 19. Le pixel le plus bas est considéré comme représentant le point de contact C.step 252: the coordinates of the pixel belonging to the group 27 and located lowest in the image 21 are determined. To do this, we compare the coordinates along Z of all the pixels in group 27 and we choose the one with the smallest Z coordinate. If there are several pixels having the smallest coordinate according to Z, we choose by convention the one which has the coordinate according to Y the smallest for a left-handed person or the largest for a right-handed person, according to the adjustment chosen in the step of initialization 19. The lowest pixel is considered to represent the contact point C.
- étape 253 : on détermine les coordonnées du point de référence P, défini comme le pixel situé sur le segment S dont les extrémités sont le point le plus bas C et le barycentre G du groupe 27 de pixels et tel que le rapport de distances CP/CG soit égal à un paramètre Ps fixé, réglable lors de l'étape d'initialisation 19, compris entre 0 et 1, de préférence compris entre 1% et 50%, de sorte que le point de référence P soit effectivement dans la partie basse de l'objet à pointe.step 253: the coordinates of the reference point P, defined as the pixel located on the segment S whose ends are the lowest point C and the barycenter G of the group 27 of pixels and such as the distance ratio CP, are determined / CG is equal to a fixed parameter Ps, adjustable during the initialization step 19, between 0 and 1, preferably between 1% and 50%, so that the reference point P is effectively in the part low point object.
- étape 254 : les coordonnées Yp, Zp du pixel de référence P sont envoyées au module de gestion du curseur et de l'affichage.step 254: the coordinates Yp, Zp of the reference pixel P are sent to the module for managing the cursor and the display.
Dans la cinquième étape 26, le curseur 11 est commandé en fonction des coordonnées du point de référence P de l'objet pointu 8.In the fifth step 26, the cursor 11 is controlled as a function of the coordinates of the reference point P of the pointed object 8.
Cette étape est pilotée par l'exécution du module de gestion du curseur et de l'affichage. En référence à la figure 8, l'étape de commande du curseur comprend les étapes élémentaires suivantes :This step is controlled by the execution of the cursor and display management module. With reference to FIG. 8, the step of controlling the cursor comprises the following elementary steps:
- étape 261 : les coordonnées Yp, Zp du pixel de référence P sont converties en coordonnées CoorY, CoorZ exploitables par le système d'affichage en fonction de sa résolution. Pour cela, plusieurs paramètres réglables sont utilisés : MaxY est la valeur maximale de la coordonnée Yp suivant Y qui peut être transmise par le module de calcul. IgnoreY est la largeur, positive ou nulle, d'une bande latérale d'image dont il n'est pas tenu compte pour effectuer la détection de l'objet à pointe. Ysortie est la valeur maximale de la cordonnée selon Y des pixels pouvant être affichés par le moniteur 5. Cette dernière dépend de la résolution du moniteur 5. La coordonnée convertie CoorY selon Y est calculée selon l'algorithme suivant : CoorY=Ysortie.(Yp-IgnoreY)/(MaxY-2.IgnoreY), si CoorY> Ysortie, alors CoorY=Ysortie, arrondir CoorY à zéro décimale, si CoorY<0, alors CoorY=0. La coordonnée CoorZ selon Z est calculée de manière analogue à l'aide de paramètres correspondants MaxZ, IgnoreZ et Zsortie.step 261: the coordinates Yp, Zp of the reference pixel P are converted into coordinates CoorY, CoorZ which can be used by the display system as a function of its resolution. For this, several adjustable parameters are used: MaxY is the maximum value of the coordinate Yp along Y which can be transmitted by the calculation module. IgnoreY is the width, positive or zero, of a side image band which is not taken into account for the detection of the point object. Ysortie is the maximum value of the coordinates according to Y of the pixels that can be displayed by the monitor 5. The latter depends on the resolution of the monitor 5. The converted coordinate CoorY according to Y is calculated according to the following algorithm: CoorY = Ysortie. (Yp -IgnoreY) / (MaxY-2.IgnoreY), if CoorY> Ysortie, then CoorY = Ysortie, round CoorY to zero decimal, if CoorY <0, then CoorY = 0. The CoorZ coordinate according to Z is calculated in an analogous way using corresponding parameters MaxZ, IgnoreZ and Zsortie.
- étape 262 : le curseur 11 est positionné sur l'écran du moniteur 5 aux coordonnées CoorY, CoorZ.step 262: the cursor 11 is positioned on the screen of the monitor 5 at the coordinates CoorY, CoorZ.
- étape 263 : l'évolution de la position du curseur entre les positions précédentes et la nouvelle position est comparée à une évolution prédéterminée. Lorsqu'une évolution semblable à l'évolution prédéterminée est détectée, un signal de commande est généré. Par exemple, l'évolution prédéterminée à détecter est une absence de mouvement substantiel pendant une durée T prédéterminée. Dans ce cas, un seuil de mouvement substantiel Ms est prédéterminé, en nombre de pixels. Si la nouvelle position CoorY, CoorZ du curseur 11 est distante de la position précédente d'une valeur de distance supérieure à Ms, un compteur de temps est initialisé à zéro et déclenché et le compteur reste déclenché tant que toute nouvelle position est distante de la position précédente d'une valeur de distance inférieure à Ms. Dès que le compteur de temps atteint la valeur T, par exemple de 1 seconde, un signal de commande est généré. En variante, l'évolution prédéterminée peut être autre, par exemple un mouvement de va et vient répété trois fois, une trajectoire en boucle ou en W. Lorsque l'évolution prédéterminée est détectée, le signal de commande est généré en fonction de la position du curseur 11.- Step 263: the evolution of the cursor position between the previous positions and the new position is compared to a predetermined evolution. When an evolution similar to the predetermined evolution is detected, a control signal is generated. For example, the predetermined evolution to be detected is an absence of substantial movement for a predetermined duration T. In this case, a substantial movement threshold Ms is predetermined, in number of pixels. If the new position CoorY, CoorZ of the cursor 11 is distant from the previous position by a distance value greater than Ms, a time counter is initialized to zero and triggered and the counter remains triggered as long as any new position is distant from the previous position with a distance value less than Ms. As soon as the time counter reaches the value T, for example 1 second, a control signal is generated. As a variant, the predetermined evolution may be other, for example a back and forth movement repeated three times, a loop or W trajectory. When the predetermined evolution is detected, the control signal is generated as a function of the position of cursor 11.
- étape 264 : le signal de commande généré est interprété par le module de gestion de l'affichage comme le signal que l'utilisateur désire effectuer une action, par exemple activer une fonction associée à l'élément graphique sur lequel le curseur est positionné. Le module de gestion du curseur et de l'affichage affiche alors un élément graphique de sélection à droite du curseur, par exemple un menu déroulant, un bouton, une fenêtre activable, ou signale à l'utilisateur de toute autre façon possible, par exemple par un signal sonore, lumineux, les différentes fonctions disponibles en fonction de la position du curseur, par exemple les fonctions équivalentes à celles qu'activerait un clic droit ou un double clic sur une souris. L'utilisateur est ainsi invité à saisir un choix d'action. - étape 265 : le choix de l'utilisateur est saisi par des moyens classiques comme une f appe au clavier, ou la détermination d'une nouvelle position du curseur 11, par exemple pour déterminer dans quelle ligne d'un menu déroulant l'utilisateur a placé le curseur 11. La fonction choisie est alors activée par l'envoi de commandes appropriées au système d'exploitation du micro-ordinateur 1.step 264: the command signal generated is interpreted by the display management module as the signal that the user wishes to perform an action, for example activating a function associated with the graphic element on which the cursor is positioned. The cursor and display management module then displays a graphic selection element to the right of the cursor, for example a drop-down menu, a button, an activatable window, or signals to the user in any other possible way, for example by an audible and luminous signal, the different functions available depending on the position of the cursor, for example the functions equivalent to those that would activate a right click or a double click on a mouse. The user is thus invited to enter a choice of action. step 265: the choice of the user is entered by conventional means such as a keyboard call, or the determination of a new position of the cursor 11, for example to determine in which line of a drop-down menu the user placed the cursor 11. The selected function is then activated by sending appropriate commands to the operating system of the microcomputer 1.
L'ensemble du procédé décrit ci-dessus est effectué en boucle périodique, la fréquence d'acquisition des images étant choisie pour permettre un suivi précis des déplacements du curseur sans monopoliser les capacités de traitement du processeur. Par exemple, cette fréquence est comprise entre 5 et 500 cycles par secondes, de préférence entre 10 et 50 cycles par secondes. Chaque fois qu'une nouvelle image est acquise, elle est mémorisée dans la mémoire 3 à la place de l'image précédente. Dans une variante de réalisation, l'étape de détection 24 comporte une étape élémentaire finale dans laquelle on détecte si la pointe 16 est en contact avec la surface de travail 7. Pour cela, une ou plusieurs dimension(s) du groupe de pixels 27, par exemple largeur, hauteur, nombre de pixels, sont mesurées à chaque image numérisée. S'il est détecté un accroissement de cette ou ces dimensions dans les images successives, la caméra étant située au-dessus de la surface de travail, une levée de la pointe 16 est détectée et celle-ci est considérée comme n'étant plus en contact avec la surface de travail 7. Si-, au contraire, il est détecté une diminution de cette ou ces dimensions dans les images successives, une mise en contact de la pointe 16 avec la surface de travail 7 est détectée. Ainsi, à chaque image, un paramètre de contact ou d'absence de contact est actualisé et un mode fonctionnement du curseur peut être sélectionné en fonction de ce paramètre.The entire process described above is carried out in a periodic loop, the frequency of acquisition of the images being chosen to allow precise monitoring of the movements of the cursor without monopolizing the processing capacities of the processor. For example, this frequency is between 5 and 500 cycles per second, preferably between 10 and 50 cycles per second. Each time a new image is acquired, it is stored in memory 3 in place of the previous image. In an alternative embodiment, the detection step 24 includes a final elementary step in which it is detected whether the tip 16 is in contact with the working surface 7. For this, one or more dimension (s) of the group of pixels 27 , for example width, height, number of pixels, are measured with each scanned image. If an increase in this or these dimensions is detected in the successive images, the camera being located above the work surface, a lifting of the tip 16 is detected and this is considered to be no longer in contact with the work surface 7. If, on the contrary, a decrease in this or these dimensions is detected in the successive images, a contact of the tip 16 with the work surface 7 is detected. Thus, for each image, a contact or absence of contact parameter is updated and a mode of operation of the cursor can be selected according to this parameter.
Une autre manière de réaliser l'étape élémentaire de détection de contact est de détecter une trace laissée par le crayon 8 sur la surface 7 derrière son passage. Si une telle trace est détectée, un contact est détecté ; sinon, une absence de contact est détectée. Pour effectuer la détection d'une trace, il est possible de conserver en mémoire plusieurs images successives et de comparer la valeur de couleur d'un groupe de pixels donné avant et après le passage de la pointe. Une autre manière de réaliser l'étape élémentaire de détection de contact est de détecter la présence d'une ombre du crayon 8 sur la surface de travail 7.Another way of carrying out the elementary contact detection step is to detect a trace left by the pencil 8 on the surface 7 behind its passage. If such a trace is detected, a contact is detected; otherwise, an absence of contact is detected. To detect a trace, it is possible to store several successive images in memory and to compare the color value of a given group of pixels before and after passing the tip. Another way to perform the basic step of detecting contact is to detect the presence of a shadow of the pencil 8 on the work surface 7.
Par exemple, le procédé de commande du curseur de l'invention peut être utilisé pour commander un logiciel de dessin, d'un type connu par ailleurs, exécuté par le micro-ordinateur 1. Grâce à un logiciel de dessin, il est possible de marquer à l'écran ou de stocker dans un fichier d'image un tracé conforme à la trajectoire du curseur 11. Dans un tel logiciel, le curseur a un mode de fonctionnement traçant, dans lequel ses mouvements produisent un tracé, et un mode de fonctionnement non traçant, dans lequel le curseur ne produit pas de tracé et peut alors être utilisé pour générer des signaux de commande. Avantageusement, dans l'utilisation de la variante du procédé de commande décrite ci-dessus, le mode de fonctionnement traçant est activé par la présence d'un contact détecté et le mode de fonctionnement non traçant est activé par l'absence de contact détecté.For example, the cursor control method of the invention can be used to control drawing software, of a type known elsewhere, executed by the microcomputer 1. With drawing software, it is possible to mark on the screen or store in an image file a trace conforming to the path of the cursor 11. In such software, the cursor has a tracing mode of operation, in which its movements produce a trace, and a mode of non-tracing operation, in which the cursor does not produce a trace and can then be used to generate control signals. Advantageously, in the use of the variant of the control method described above, the tracing operating mode is activated by the presence of a detected contact and the non-tracing operating mode is activated by the absence of detected contact.
Dans le mode de réalisation décrit ci-dessus, le pixel de référence P est défini par rapport au point le plus bas C du groupe de pixels 27, c'est-à-dire au point du groupe de pixels 27 de coordonnée minimale selon la direction Z. En référence à la figure 9, on décrit maintenant une autre variante de réalisation du procédé de commande selon l'invention. Les éléments analogues à ceux décrits ci-dessus portent le même chiffre de référence augmenté de 100. Dans cette variante, seule la définition du pixel de référence P est modifiée. La figure 9 représente schématiquement une image 121 acquises par la caméra 6, dans laquelle la pointe 116 du crayon 108 est détectée sous la forme du groupe de pixels 127 conformes à la couleur de référence. Comme l'extrémité de la pointe 116 est arrondie, le point de contact C est distinct de l'extrémité proprement dite de la pointe, et ce, d'autant plus que le crayon 108 est incliné. Pour déterminer les coordonnées du point de référence P, on commence par repérer le barycentre G du groupe de pixels 127, comme susmentionné. Puis on effectue une analyse en composantes principales du groupe de pixels 127 et on détermine une droite d'interpolation 128 du groupe de pixels 127. La droite d'interpolation 128 est la droite passant par le barycentre G et telle que la somme des carrés des distances de chaque pixel du groupe 127 par rapport à la droite 128 est minimale. Sa détermination est effectuée par des méthodes d'analyse statistique connues. On repère ensuite le point extrémal E défini comme le point le plus bas du groupe de pixels 127 sur la droite d'interpolation 128. On attribue à chaque pixel du groupe 127 une valeur d'abscisse s sur l'axe [GE). L'abscisse s est normalisée à 1 pour le point E. Le point de référence P est défini comme un barycentre des pixels du groupe 127 ayant une abscisse s positive, lesdits pixels étant pondérés par un poids croissant avec l'abscisse s du pixel. Par exemple, le coefficient de pondération des pixels est l'abscisse s. Le point de référence P est alors un point de l'axe [GE) situé près du point E.In the embodiment described above, the reference pixel P is defined relative to the lowest point C of the group of pixels 27, that is to say to the point of the group of pixels 27 of minimum coordinate according to the direction Z. With reference to FIG. 9, another variant embodiment of the control method according to the invention will now be described. Elements similar to those described above bear the same reference number increased by 100. In this variant, only the definition of the reference pixel P is modified. FIG. 9 schematically represents an image 121 acquired by the camera 6, in which the tip 116 of the pencil 108 is detected in the form of the group of pixels 127 conforming to the reference color. As the end of the tip 116 is rounded, the contact point C is distinct from the actual end of the tip, and this is all the more the case since the pencil 108 is inclined. To determine the coordinates of the reference point P, one begins by locating the barycenter G of the group of pixels 127, as mentioned above. Then a principal component analysis of the group of pixels 127 is carried out and an interpolation line 128 of the group of pixels 127. is determined. The interpolation line 128 is the line passing through the barycenter G and such that the sum of the squares of the distances of each pixel of group 127 from the line 128 is minimum. Its determination is carried out by known statistical analysis methods. We then locate the extremal point E defined as the lowest point of the group of pixels 127 on the straight line of interpolation 128. Each pixel of group 127 is assigned a value of abscissa s on the axis [GE). The abscissa s is normalized to 1 for point E. The reference point P is defined as a barycenter of the pixels of group 127 having a positive abscissa s, said pixels being weighted by an increasing weight with the abscissa s of the pixel. For example, the pixel weighting coefficient is the abscissa s. The reference point P is then a point on the axis (GE) located near point E.
Lorsque le crayon 108 est symétrique de révolution, la droite d'interpolation 128 correspond sensiblement avec son axe de révolution. Cette variante du procédé permet de définir le point de référence P précisément dans la direction axiale de l'objet pointu, ce qui accroît encore l'aisance et la précision avec lesquelles la positon du curseur peut être commandée, l'utilisateur ayant plus de facilité à anticiper les mouvement du point E situé rigoureusement dans le prolongement de la pointe que du point C qui peut être décalé.When the pencil 108 is symmetrical in revolution, the interpolation line 128 corresponds substantially with its axis of revolution. This variant of the method makes it possible to define the reference point P precisely in the axial direction of the pointed object, which further increases the ease and precision with which the position of the cursor can be controlled, the user having greater ease to anticipate the movements of point E located strictly in the extension of the point than of point C which can be offset.
Dans le cadre de la présente invention, le pixel de référence P peut être défini par rapport à un pixel extrémal du groupe de pixels 27 selon une direction prédéterminée quelconque des images. Par exemple, si la caméra 6 est suspendue à la verticale de la surface 7, le bas des images étant du côté d'un utilisateur, il est préféré de choisir comme pixel extrémal le pixel du groupe 27 de coordonnée maximale selon la direction Z, ou le pixel extrémal selon la direction +Y ou -Y, ou un pixel extrémal selon une direction oblique prédéterminée. La direction selon laquelle le point de contact C est recherchée peut également être déterminée en fonction du choix de mode de fonctionnement pour droitier ou pour gaucher effectué par l'utilisateur. Dans chaque cas, une direction au sein des images étant prédéterminée pour localiser le point C, l'orientation de la pointe 16 doit être maintenue dans un demi espace tel que son point de contact avec la surface 7 représente effectivement un point extrémal selon la direction prédéterminée. L'angle solide d'orientation de la pointe 16 est déterminé en fonction de l'orientation de la caméra et de la direction prédéterminée selon laquelle le pixel extrémal C est recherché. Cet angle solide est de préférence limité à un demi cône afin d'éviter les situations dans laquelle la direction axiale de la pointe serait presque tangente à la direction dans laquelle un extremum est recherché, ce qui nuirait à la précision de détection d'un tel extremum. Bien que l'invention ait été décrite en liaison avec un mode de réalisation particulier, il est bien évident qu'elle n'y est nullement limitée et qu'elle comprend tous les équivalents techniques des moyens décrits ainsi que leurs combinaisons si celles-ci entrent dans le cadre de l'invention. In the context of the present invention, the reference pixel P can be defined with respect to an extreme pixel of the group of pixels 27 along any predetermined direction of the images. For example, if the camera 6 is suspended vertically from the surface 7, the bottom of the images being on the side of a user, it is preferred to choose as pixel at the extremal the pixel of the group 27 of maximum coordinate in the direction Z, or the extreme pixel in the + Y or -Y direction, or an extreme pixel in a predetermined oblique direction. The direction in which the contact point C is sought can also be determined according to the choice of operating mode for right-handed or left-handed made by the user. In each case, a direction within the images being predetermined to locate the point C, the orientation of the point 16 must be maintained in a half space such that its point of contact with the surface 7 effectively represents an extremal point in the direction predetermined. The solid angle of orientation of the tip 16 is determined as a function of the orientation of the camera and of the predetermined direction in which the extreme pixel C is sought. This solid angle is preferably limited to a half cone in order to avoid situations in which the axial direction of the tip is almost tangent to the direction in which an extremum is sought, which would adversely affect the detection accuracy of such an extremum. Although the invention has been described in connection with a particular embodiment, it is obvious that it is in no way limited thereto and that it includes all the technical equivalents of the means described as well as their combinations if these are within the scope of the invention.

Claims

REVENDICATIONS
1. Procédé de commande d'un curseur (11) sur une interface graphique (10) d'un ordinateur (1), comportant les étapes consistant à : - prédéfinir (19) des propriétés (Rs, Vs, Bs) d'un objet pointu (8,108) à détecter et les mémoriser dans une mémoire (3) dudit ordinateur,1. Method for controlling a cursor (11) on a graphic interface (10) of a computer (1), comprising the steps consisting in: - predefining (19) properties (Rs, Vs, Bs) of a pointed object (8,108) to be detected and stored in a memory (3) of said computer,
- acquérir (20) des images numérisées successives au moyen d'une caméra (6) reliée audit ordinateur, les images numérisées présentant une direction horizontale (Y) et une direction verticale (Z), - détecter (24), dans chaque image numérisée (21), la présence dudit objet pointu sous la forme d'une partie de ladite image (27, 127) présentant lesdites propriétés prédéfinies,- acquire (20) successive digitized images by means of a camera (6) connected to said computer, the digitized images having a horizontal direction (Y) and a vertical direction (Z), - detecting (24), in each digitized image (21), the presence of said pointed object in the form of a part of said image (27, 127) having said predefined properties,
- lorsqu'une telle partie d'image est détectée, repérer (25) un point de référence (P) de ladite partie d'image, - commander (26) ledit curseur sur ladite interface graphique en fonction des positions dudit point de référence dans lesdites images successives, caractérisé par le fait que l'étape d'acquisition (20) des images numérisées consiste à filmer une surface de travail (7) sur laquelle, en service, on déplace une pointe (16, 116) dudit objet pointu, ladite pointe gardant une orientation axiale (17) située dans un angle solide prédéterminé, l'étape de repérage du point de référence comportant une opération de repérage d'un point extrémal (C, E) de ladite partie d'image suivant une direction prédéterminée (Z) du plan des images, de manière à localiser une zone de contact entre ladite pointe et ladite surface de travail, ledit point de référence étant défini en fonction dudit point extrémal.- when such an image part is detected, locate (25) a reference point (P) of said image part, - control (26) said cursor on said graphical interface as a function of the positions of said reference point in said successive images, characterized in that the step of acquiring (20) the digitized images consists in filming a work surface (7) on which, during operation, a point (16, 116) of said pointed object is moved, said tip retaining an axial orientation (17) situated in a predetermined solid angle, the step of locating the reference point comprising an operation of locating an extremal point (C, E) of said image part in a predetermined direction (Z) of the plane of the images, so as to locate a contact zone between said tip and said work surface, said reference point being defined as a function of said extremal point.
2. Procédé selon la revendication 1, dans lequel ledit point extrémal (C) est défini comme le point de ladite partie d'image situé le plus bas dans ladite image, ledit angle solide étant inclus dans un demi espace vectoriel délimité par le plan contenant l'axe de visée (X) de ladite caméra et ladite direction horizontale (Y) des images.2. Method according to claim 1, in which said extremal point (C) is defined as the point of said image part located lowest in said image, said solid angle being included in a half vector space delimited by the plane containing the line of sight (X) of said camera and said horizontal direction (Y) of the images.
3. Procédé selon la revendication 1, dans lequel ledit point extrémal (E) est défini comme le point de ladite partie d'image situé le plus bas sur une droite d'interpolation (128) de ladite partie d'image. 3. Method according to claim 1, wherein said extremal point (E) is defined as the point of said image part located lowest on an interpolation line (128) of said image part.
4. Procédé selon la revendication 1, dans lequel ledit point de référence est choisi sur un segment (S) entre ledit point extrémal et un barycentre (G) de ladite partie d'image.4. Method according to claim 1, in which said reference point is chosen on a segment (S) between said extremal point and a barycenter (G) of said image part.
5. Procédé selon la revendication 1, dans lequel l'étape de commande (26) dudit curseur comporte, pour chaque image dans laquelle ladite partie d'image est détectée, une actualisation de la position (CoorY, CoorZ) dudit curseur sur l'interface graphique en fonction de la position (Yp, Zp) dudit point de référence dans ladite image. 5. Method according to claim 1, wherein the step of controlling (26) said cursor comprises, for each image in which said image part is detected, an update of the position (CoorY, CoorZ) of said cursor on the graphical interface as a function of the position (Yp, Zp) of said reference point in said image.
6. Procédé selon la revendication 5, dans lequel l'étape de commande dudit curseur comporte une étape (263) de détection d'une trajectoire prédéterminée de la position dudit point de référence dans des images successives et la génération d'un signal de commande lorsque ladite trajectoire prédéterminée est détectée. 6. The method of claim 5, wherein the step of controlling said cursor comprises a step (263) of detecting a predetermined trajectory of the position of said reference point in successive images and the generation of a control signal when said predetermined trajectory is detected.
7. Procédé selon la revendication 1, comportant, pour chaque image numérisée acquise, une étape consistant à mémoriser ladite image en remplacement de l'image numérisée acquise précédemment, de manière qu'au plus une seule image numérisée reste mémorisée simultanément dans ladite mémoire (3). 7. The method as claimed in claim 1, comprising, for each digitized image acquired, a step consisting in storing said image in replacement of the digitized image acquired previously, so that at most one digitized image remains stored simultaneously in said memory ( 3).
8. Procédé selon la revendication 1, comportant, pour chaque image dans laquelle ladite partie d'image est détectée, une étape consistant à détecter la présence d'un contact entre ledit objet pointu (8) et ladite surface de travail (7), ladite étape de commande du curseur comportant une sélection d'un mode de fonctionnement dudit curseur en fonction du résultat de ladite détection de contact.8. The method as claimed in claim 1, comprising, for each image in which said image part is detected, a step consisting in detecting the presence of a contact between said pointed object (8) and said work surface (7), said step of controlling the cursor comprising a selection of an operating mode of said cursor as a function of the result of said contact detection.
9. Programme d'ordinateur (18) contenant des codes d'instructions propres à être lus ou stockés sur un support, lesdits codes étant exécutables par un ordinateur (1) muni d'une interface graphique (10) ayant un curseur (11) et affichée par un moyen d'affichage, d'une mémoire (3) et d'une caméra (6), pour effectuer les opérations consistant a :9. Computer program (18) containing instruction codes suitable for being read or stored on a medium, said codes being executable by a computer (1) provided with a graphical interface (10) having a cursor (11) and displayed by a display means, a memory (3) and a camera (6), to carry out the operations consisting in:
- mémoriser dans ladite mémoire des propriétés prédéfinies d'un objet pointu (8) à détecter,- memorizing in said memory predefined properties of a pointed object (8) to be detected,
- acquérir des images numérisées successives au moyen de ladite caméra, chaque image numérisée (21) présentant une direction verticale (Z) et une direction horizontale (Y), - détecter, dans chaque image numérisée, la présence dudit objet pointu sous la forme d'une partie d'image (27) présentant lesdites propriétés prédéfinies,- acquire successive digitized images by means of said camera, each digitized image (21) having a vertical direction (Z) and a horizontal direction (Y), - detecting, in each digitized image, the presence of said pointed object in the form of an image part (27) having said predefined properties,
- lorsqu'une telle partie d'image est détectée, déterminer des coordonnées d'un point de référence (P) de ladite partie d'image,- when such an image part is detected, determining the coordinates of a reference point (P) of said image part,
- commander ledit curseur sur ladite interface graphique en fonction des coordonnées dudit point de référence dans lesdites images successives, caractérisé par le fait que ladite détermination des coordonnées du point de référence (25) comprend une opération consistant à déterminer des coordonnées d'un point extrémal (C) de ladite partie d'image suivant une direction prédéterminée (Z), de manière à repérer un point de contact entre ledit objet pointu et une surface de travail (7) qui, en service, est visée par ladite caméra et sur laquelle on déplace une pointe (16) dudit objet pointu en maintenant une orientation axiale (17) de ladite pointe dans un angle solide prédéterminé, et une détermination des coordonnées (Yp,Zp) du point de référence en fonction de celles dudit point extrémal.- controlling said cursor on said graphical interface as a function of the coordinates of said reference point in said successive images, characterized in that said determination of the coordinates of the reference point (25) comprises an operation consisting in determining the coordinates of an extremal point (C) of said image part in a predetermined direction (Z), so as to locate a point of contact between said pointed object and a work surface (7) which, in use, is targeted by said camera and on which moving a point (16) of said pointed object while maintaining an axial orientation (17) of said point in a predetermined solid angle, and determining the coordinates (Yp, Zp) of the reference point as a function of those of said extremal point.
10. Programme d'ordinateur selon la revendication 9, dans lequel l'opération de commande dudit curseur (26) comporte, pour chaque image dans laquelle ladite partie d'image (27) est détectée, une actualisation de la position (CoorY, CoorZ) dudit curseur sur l'interface graphique en fonction des coordonnées dudit point de référence dans ladite image.10. The computer program as claimed in claim 9, in which the operation of controlling said cursor (26) comprises, for each image in which said image part (27) is detected, an update of the position (CoorY, CoorZ ) of said cursor on the graphical interface as a function of the coordinates of said reference point in said image.
11. Programme d'ordinateur selon la revendication 9, dans lequel ladite opération de commande du curseur (26) comporte une étape de détection d'une absence de mouvement substantiel dudit objet pointu pendant une période prédéterminée et la génération d'un signal de commande lorsqu'une absence de mouvement substantiel est détectée.11. The computer program according to claim 9, wherein said cursor control operation (26) comprises a step of detecting the absence of substantial movement of said pointed object during a predetermined period and the generation of a control signal. when an absence of substantial movement is detected.
12. Programme d'ordinateur selon la revendication 9 ou 10, dans lequel lesdits codes d'instructions sont exécutables pour effectuer une opération (20) consistant, pour chaque image numérisée acquise, à mémoriser ladite image dans ladite mémoire en remplacement de l'image numérisée acquise précédemment, de manière qu'au plus une seule image numérisée reste mémorisée simultanément. 12. The computer program as claimed in claim 9 or 10, in which said instruction codes are executable to perform an operation (20) consisting, for each digitized image acquired, of storing said image in said memory in place of the image digitized previously acquired, so that at most one scanned image remains stored simultaneously.
13. Programme d'ordinateur selon la revendication 9, dans lequel lesdits codes d'instructions sont exécutables pour effectuer, pour chaque image dans laquelle ladite partie d'image est détectée, une opération consistant à détecter la présence d'un contact entre ledit objet pointu (8) et ladite surface de travail (7) au moyen d'une mesure de grossissement de ladite partie d'image, ladite opération de commande du curseur comportant une sélection d'un mode de fonctionnement dudit curseur en fonction du résultat de ladite détection de contact.13. The computer program as claimed in claim 9, in which said instruction codes are executable for carrying out, for each image in which said image part is detected, an operation consisting in detecting the presence of a contact between said pointed object (8) and said working surface (7) by means of a magnification measurement of said part image, said cursor control operation comprising a selection of an operating mode of said cursor according to the result of said contact detection.
14. Système de traitement de données comportant des moyens de mémorisation (3), des moyens d'affichage (5) affichant, en service, une interface graphique de commande (10) ayant un curseur (11), une caméra (6), un objet pointu (8) dont au moins une pointe (16) est placée, en service, dans le champ de ladite caméra, et une unité centrale de traitement (2) apte à effectuer les opérations consistant à :14. Data processing system comprising storage means (3), display means (5) displaying, in service, a graphical control interface (10) having a cursor (11), a camera (6), a pointed object (8) of which at least one point (16) is placed, in use, in the field of said camera, and a central processing unit (2) capable of performing the operations consisting in:
- mémoriser dans lesdits moyens de mémorisation des propriétés prédéfinies (Rs, Vs, Bs) dudit objet pointu, - acquérir des images numérisées successives au moyen de ladite caméra (6), chaque image numérisée présentant une direction verticale (Z) et une direction horizontale (Y),- store in said storage means predefined properties (Rs, Vs, Bs) of said pointed object, - acquire successive digitized images by means of said camera (6), each digitized image having a vertical direction (Z) and a horizontal direction (Y)
- détecter, dans chaque image numérisée, la présence dudit objet pointu sous la forme d'une partie d'image (27) présentant lesdites propriétés prédéfinies,- detecting, in each digitized image, the presence of said pointed object in the form of an image part (27) having said predefined properties,
- lorsqu'une telle partie d'image est détectée, déterminer des coordonnées (Yp, Zp) d'un point de référence de ladite partie d'image,- when such an image part is detected, determining coordinates (Yp, Zp) of a reference point of said image part,
- commander ledit curseur sur ladite interface graphique en fonction des coordonnées dudit point de référence dans lesdites images successives, caractérisé par le fait que, en service, ladite caméra vise une surface de travail (7) sur laquelle ladite pointe est déplacée en gardant une orientation axiale (17) située dans un angle solide prédéterminé, ladite détermination des coordonnées du point de référence comprenant une opération de repérage d'un point extrémal (C) de ladite partie d'image suivant une direction prédéterminée du plan des images, et une détermination des coordonnées du point de référence en fonction de la position dudit point extrémal repéré. - controlling said cursor on said graphic interface as a function of the coordinates of said reference point in said successive images, characterized in that, in service, said camera aims at a work surface (7) on which said point is moved while keeping an orientation axial (17) situated in a predetermined solid angle, said determination of the coordinates of the reference point comprising an operation of locating an extreme point (C) of said image part in a predetermined direction of the plane of the images, and a determination coordinates of the reference point as a function of the position of said extremal point identified.
PCT/FR2002/001562 2001-05-15 2002-05-07 Method for controlling a cursor, a computer program for using same and a cursor control system WO2002093465A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0106358A FR2824926B1 (en) 2001-05-15 2001-05-15 METHOD FOR CONTROLLING A CURSOR, COMPUTER PROGRAM FOR IMPLEMENTING SAME, AND SYSTEM FOR CONTROLLING A CURSOR
FR01/06358 2001-05-15

Publications (1)

Publication Number Publication Date
WO2002093465A1 true WO2002093465A1 (en) 2002-11-21

Family

ID=8863271

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/001562 WO2002093465A1 (en) 2001-05-15 2002-05-07 Method for controlling a cursor, a computer program for using same and a cursor control system

Country Status (2)

Country Link
FR (1) FR2824926B1 (en)
WO (1) WO2002093465A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382352B2 (en) * 2004-06-14 2008-06-03 Siemens Aktiengesellschaft Optical joystick for hand-held communication device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999007153A1 (en) * 1997-07-31 1999-02-11 Reality Fusion, Inc. Systems and methods for software control through analysis and interpretation of video information
EP0947948A2 (en) * 1998-03-31 1999-10-06 Seiko Epson Corporation Pointing position detection device, presentation system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999007153A1 (en) * 1997-07-31 1999-02-11 Reality Fusion, Inc. Systems and methods for software control through analysis and interpretation of video information
EP0947948A2 (en) * 1998-03-31 1999-10-06 Seiko Epson Corporation Pointing position detection device, presentation system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MUNICH M E ET AL: "VISUAL INPUT FOR PEN-BASED COMPUTERS", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP) LAUSANNE, SEPT. 16 - 19, 1996, NEW YORK, IEEE, US, vol. 2, 16 September 1996 (1996-09-16), pages 173 - 176, XP000733235, ISBN: 0-7803-3259-8 *

Also Published As

Publication number Publication date
FR2824926A1 (en) 2002-11-22
FR2824926B1 (en) 2003-08-15

Similar Documents

Publication Publication Date Title
US20220129060A1 (en) Three-dimensional object tracking to augment display area
US6664948B2 (en) Tracking pointing device motion using a single buffer for cross and auto correlation determination
EP2524294B1 (en) Method for selecting an element of a user interface and device implementing such a method
CN105683882B (en) Waiting time measurement and test macro and method
KR100790896B1 (en) Controlling method and apparatus for application using image pickup unit
US20170308172A1 (en) Moving object detecting apparatus, moving object detecting method, pointing device, and storage medium
US10324563B2 (en) Identifying a target touch region of a touch-sensitive surface based on an image
US20030071858A1 (en) Information input and output system, method, storage medium, and carrier wave
CN102915112A (en) System and method for close-range movement tracking
US7382352B2 (en) Optical joystick for hand-held communication device
JP2005302036A (en) Optical device for measuring distance between device and surface
US20120319945A1 (en) System and method for reporting data in a computer vision system
EP2284662A3 (en) System and method for differentiating between pointers used to contact touch surface
KR20070030294A (en) Apparatus and method for performing data entry with light based touch screen displays
US10664090B2 (en) Touch region projection onto touch-sensitive surface
CN106133644B (en) Coordinate projected user interface
FR2744815A1 (en) METHOD AND APPARATUS FOR PROVIDING A DYNAMICALLY ORIENTED COMPASS CURSOR ON COMPUTER DISPLAYS
WO2002093465A1 (en) Method for controlling a cursor, a computer program for using same and a cursor control system
FR2969779A1 (en) SYSTEM FOR SEIZING GRAPHIC ELEMENTS
FR3107390A1 (en) Device, system and method for processing virtual reality data
WO2021122410A1 (en) Method and system for viewing digital content displayed by an electronic device
EP3008547B1 (en) Device to analyse the movement of a mobile element and corresponding method
TWI489355B (en) Touch sensing module, touch sensing method, and computer program product
FR3068803A1 (en) METHOD AND DEVICE FOR PROCESSING DATA OF A VIRTUAL REALITY ENVIRONMENT
BE1023596B1 (en) INTERACTIVE SYSTEM BASED ON MULTIMODAL GESTURES AND METHOD USING SINGLE DETECTION SYSTEM

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP