WO2023214542A1 - コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置 - Google Patents

コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置 Download PDF

Info

Publication number
WO2023214542A1
WO2023214542A1 PCT/JP2023/016793 JP2023016793W WO2023214542A1 WO 2023214542 A1 WO2023214542 A1 WO 2023214542A1 JP 2023016793 W JP2023016793 W JP 2023016793W WO 2023214542 A1 WO2023214542 A1 WO 2023214542A1
Authority
WO
WIPO (PCT)
Prior art keywords
fingertip
finger
pointer
image
computer program
Prior art date
Application number
PCT/JP2023/016793
Other languages
English (en)
French (fr)
Inventor
竜一 小島
Original Assignee
ディープインサイト株式会社
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 ディープインサイト株式会社 filed Critical ディープインサイト株式会社
Publication of WO2023214542A1 publication Critical patent/WO2023214542A1/ja

Links

Images

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
    • 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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • the present invention relates to a computer program, an image processing device, an image processing method, and an in-vehicle interface device.
  • Patent Document 1 discloses that when a user brings a finger close to a display, a camera takes a picture, and based on the photographed image, the user's operation is performed based on the gesture of the user's hand approaching the display and the position of the finger with respect to the display.
  • a device is disclosed that estimates an intention and controls an image output means to change a display image according to the estimated operation intention.
  • Patent Document 1 provides a non-contact user interface function
  • the user must move his or her finger close to the display, and must be close enough to touch the display.
  • the hand movements and finger positions may not match the user's subjective opinion, which may cause a sense of discomfort for the user. There is.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a computer program, an image processing device, an image processing method, and an in-vehicle interface device that can realize a non-contact user interface tailored to the user's subjectivity. do.
  • the present application includes a plurality of means for solving the above-mentioned problems, and to give one example, a computer program acquires images of a plurality of indicators photographed by a computer, and identifies them based on the acquired images.
  • a pointer that designates a position represented by the ends of the first indicator and the second indicator is set at a position between the end of the first indicator and the end of the second indicator. to execute the process.
  • FIG. 1 is a diagram illustrating an example of a configuration of a non-contact user interface system.
  • FIG. 3 is a diagram showing an example of finger movements.
  • FIG. 1 is a diagram illustrating an example of the configuration of an image processing device.
  • FIG. 3 is a diagram illustrating an example of the configuration of an image processing section. It is a figure which shows an example of the image of a hand and a finger.
  • FIG. 6 is a diagram illustrating a method of searching for the fingertips of the right hand.
  • FIG. 6 is a diagram illustrating a method for searching the fingertips of the left hand.
  • FIG. 3 is a diagram illustrating an example of classification of finger shapes.
  • FIG. 3 is a diagram showing an example of a combination of a fingertip position and a pointer position.
  • FIG. 3 is a diagram showing an example of a combination of a fingertip position and a pointer position.
  • FIG. 3 is a diagram showing an example of a combination of a fingertip position and a pointer position.
  • FIG. 3 is a diagram showing an example of a combination of a fingertip position and a pointer position.
  • FIG. 3 is a diagram showing an example of a combination of a fingertip position and a pointer position.
  • 7 is a diagram illustrating an example of the configuration of a target detection unit according to a second embodiment.
  • FIG. FIG. 3 is a diagram illustrating a method for determining the midpoint of two fingers.
  • 7 is a diagram illustrating an example of a processing procedure of an image processing unit according to a second embodiment.
  • FIG. FIG. 7 is a diagram illustrating an example of a configuration of a target detection unit according to a third embodiment.
  • FIG. 7 is a diagram illustrating an example of a processing procedure of an image processing unit according to Embodiment 3.
  • FIG. 7 is a diagram illustrating setting of fingertip positions in Application 1 of Embodiment 3;
  • FIG. 7 is a diagram showing selection of the thumb in application form 2 of embodiment 3;
  • FIG. 7 is a diagram showing adjustment of the fingertip position in Application 3 of Embodiment 2 or 3;
  • FIG. 7 is a diagram illustrating an example of the configuration of a target detection unit according to a fourth embodiment.
  • 12 is a diagram illustrating an example of the configuration of a pointer information generation unit of Embodiment 5.
  • FIG. It is a figure showing an example of range adjustment of a moving average.
  • FIG. 12 is a diagram illustrating an example of a processing procedure of an image processing unit in Embodiment 5.
  • FIG. FIG. 12 is a diagram showing an example of the configuration of an image processing section according to a sixth embodiment.
  • FIG. 3 is a diagram showing an example of the configuration of a search axis correction section.
  • FIG. 7 is a diagram showing a search axis correction method.
  • FIG. 7 is a diagram showing an example of the configuration of an image processing section according to a seventh embodiment.
  • FIG. 3 is a diagram showing an example of the configuration of a tracking detection section. It is a figure which shows an example of the detection failure of the tip of a fingertip.
  • FIG. 12 is a diagram showing an example of the configuration of a target tip detection section of Embodiment 8.
  • FIG. 3 is a diagram showing a method of detecting the tip of a fingertip.
  • 1 is a diagram showing an example of an in-vehicle interface device.
  • FIG. 1 is a diagram showing an example of the configuration of a non-contact user interface system 100.
  • the non-contact user interface system 100 includes a camera 10, a display device 20 having a display screen, and an image processing device 50.
  • the image processing device 50 includes an image processing section 60 that functions as a non-contact user interface device.
  • the image processing device 50 can be configured with, for example, a personal computer.
  • the image processing unit 60 is not limited to a configuration built in the image processing device 50, and may be configured as a separate device from the image processing device 50.
  • the camera 10 is not limited to general images obtained using visible light or infrared light, but may also be a TOF (Time Of Flight) camera that can also measure distance.
  • TOF Time Of Flight
  • the camera 10 is placed at a position where it can photograph the black plate.
  • the position of the camera 10 can be set as appropriate as long as it is at a position where the black plate can be photographed.
  • the user makes, for example, a pinching action by bringing the thumb and index finger into contact with each other, or an action by separating the thumb and index finger.
  • the camera 10 can photograph the movements and conditions of the user's fingers.
  • the black plate corresponds to a background portion other than the hand and fingers in an image of the hand and fingers, the black plate is not essential in this embodiment.
  • the color of the plate is not limited to black, but may be any color. However, in order to make the portion corresponding to the finger in an image of the hand stand out against the background, the plate should be of a single color and not include any complicated patterns.
  • the image processing device 50 can display the hand and finger images photographed by the camera 10 as they are, or the hand and finger images have been processed, on the display screen of the display device 20.
  • the fingers displayed on the display screen can also be moved horizontally (vertically and horizontally) on the display screen.
  • the finger or the finger displayed on the display screen also changes to virtually move in the direction perpendicular to the display screen.
  • An image obtained by processing an image of a hand is, for example, an image that displays symbols such as dots or circles instead of fingers.
  • the image processing device 50 determines that the number key has been selected by pinching the thumb and forefinger. Then, the numbers are displayed in the number input field on the display screen of the display device 20.
  • the numeric keypad includes, in addition to numeric keys 0 to 9, a delete key indicated by "DEL” and a clear key indicated by "CLR.”
  • FIG. 2 is a diagram showing an example of finger movements.
  • FIG. 2 shows the operation of selecting a number key by pinching the thumb and index finger.
  • a pointer position for example, a green pointing point
  • the delete key is selected and the number "9632" appears in the number input field on the display screen in Figure 1.
  • ⁇ 2'' can be deleted.
  • FIG. 2 shows an example in which numbers are displayed in the number input field on the display screen of the display device 20 by pinching the thumb and index finger with the right hand. Numbers may be displayed in a number input field on the display screen of the device 20.
  • the action of touching the thumb and index finger and pinching with the fingertips is a motion that everyone is familiar with and is suitable for selection operations. Used as a selection action.
  • an object represented by a fingertip is referred to as an indicator, and a finger will be taken as an example of an indicator, and in particular, a thumb and an index finger (first finger and second finger) will be described as an example.
  • both the fingertips of the thumb and the index finger which correspond to the end of the pointer, are set as fingertip positions representing positions representing the fingertips as a group of fingertips, and the pointer position is determined based on the fingertip positions. .
  • the pointer position can be determined based on the fingertip position.
  • the pointer position may be determined, for example, within the range from the tips of the two fingers (for example, the thumb and index finger) to the first joint, and a more suitable range is, for example, the inside of the two fingers.
  • the two fingers may be determined within the range up to the base of the nail, and the two fingers may be fingers other than the thumb and index finger.
  • the pointer position will be specifically explained below.
  • FIG. 3 is a diagram showing an example of the configuration of the image processing device 50.
  • the image processing device 50 includes a control section 51 that controls the entire device, a communication section 52, a memory 53, an operation section 54, a storage section 55, a recording medium reading section 58, and an image processing section 60.
  • the storage unit 55 can be configured with, for example, a hard disk or a semiconductor memory, and stores a computer program 56, a learning model 57, and necessary information. Note that the image processing device 50 may be configured with a plurality of devices with processing functions distributed.
  • the control unit 51 includes a required number of CPUs (Central Processing Units), MPUs (Micro-Processing Units), GPUs (Graphics Processing Units), and the like.
  • the control unit 51 can execute processing determined by the computer program 56. That is, the processing by the control unit 51 is also the processing by the computer program 56.
  • the control unit 51 can perform the functions of the image processing unit 60 by executing the computer program 56.
  • the image processing section 60 may be configured using hardware, may be implemented using software, or may be implemented using a combination of hardware and software.
  • the control unit 51 and the image processing unit 60 can perform processing using the learning model 57.
  • the communication unit 52 includes, for example, a communication module and can communicate with the display device 20.
  • the communication unit 52 may have a communication interface function with the camera 10 and other interface devices.
  • the memory 53 can be composed of semiconductor memory such as SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory), and flash memory.
  • SRAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • flash memory By loading the computer program 56 into the memory 53, the control unit 51 can execute the computer program 56.
  • the recording medium 59 on which the computer program 56 is recorded can be read by the recording medium reading section 58.
  • the computer program 56 may be downloaded from an external device via the communication unit 52 and stored in the storage unit 55.
  • the operation unit 54 has an interface function with input devices such as a mouse and a keyboard.
  • FIG. 4 is a diagram showing an example of the configuration of the image processing section 60.
  • the image processing section 60 has functions for realizing the functions of a non-contact user interface, and specifically includes an object detection section 61, an image cutting section 62, a form recognition section 63, a pointer selection section 64, and a pointer information generation section. 65, and a pointer information transmitter 66.
  • the processing by the image processing unit 60 is similarly performed on general images obtained with visible light or infrared light, or on distance images obtained with a TOF camera.
  • the object detection unit 61 acquires an image of a hand (an image in which a plurality of indicators are photographed) photographed by the camera 10.
  • the target detection unit 61 detects the thumb and index finger as target parts based on the image of the hand and fingers, and outputs the position of the fingertip on the image and the size of the area including the fingertip.
  • FIG. 5 is a diagram showing an example of an image of a hand and fingers. Although FIG. 5 illustrates an image of the right hand, an image of the left hand may also be used. The area other than the fingers is the background, and is black when a black plate is used. If a plate is not used, the image may be processed so that the parts other than the fingers are a single color (for example, white, gray, etc.).
  • the object detection unit 61 searches along two search axes in two diagonal directions that are different in direction in order to detect the fingertip on the image of the hand. By searching using two search axes, the right hand can be scanned in the lower right direction, and the left hand can be scanned in the lower left direction, and the first point detected can be regarded as the fingertip.
  • FIG. 6 is a diagram showing a method of searching for the fingertips of the right hand
  • FIG. 7 is a diagram showing a method of searching for the fingertips of the left hand.
  • the first search axis is an axis directed diagonally downward to the right and has an angle ⁇ 1 with the vertical direction on the image.
  • the second search axis is an axis directed diagonally downward to the left and has an angle ⁇ 2 with the vertical direction on the image.
  • FIG. 6 when searching the image of the right hand using the first search axis, it is determined whether the fingertip exists along the direction perpendicular to the search point of the first search axis, and if the fingertip does not exist, it is determined whether the fingertip exists or not.
  • the fingertips of the right hand can be detected.
  • FIG. 7 when searching the image of the left hand using the second search axis, it is determined whether or not the fingertip exists along the direction perpendicular to the search point on the second search axis. If not, the fingertips of the left hand can be detected by moving the search point along the second surge axis and repeating the same process. If the search is performed using two search axes in this manner, it is possible to detect the fingertip of either the right hand or the left hand (in FIGS. 6 and 7, the detected position of the fingertip is indicated by a black dot).
  • the angles ⁇ 1 and ⁇ 2 of the search axis may be set within a required range including 60° (for example, about 45° to 75°).
  • the object detection unit 61 outputs the detected position of the fingertip on the image and the size of the area including the fingertip, which are detected by searching with two search axes, the first search axis and the second search axis, to the image cutting unit 62.
  • the size is a predetermined value, and defines the area to be cut out by the image cutting section 62.
  • the first cutout rectangular area and the second cutout rectangular area shown in FIGS. 6 and 7 correspond to the area to be cut out by the image cutout section 62. Note that there may be three or more search axes, and for example, there may be three search axes that are 60° from left and right and 0° from directly above.
  • the image cutting unit 62 cuts out a partial image including the fingertip from the image of the hand output from the camera 10, based on the detected position of the fingertip and the size of the area including the fingertip, which are output from the object detection unit 61.
  • the two cut-out partial images are partial images including the first cut-out rectangular area and the second cut-out rectangular area of FIG. 6 or 7, respectively.
  • the image cutting section 62 outputs the partial image to the form recognition section 63.
  • the form recognition unit 63 uses the learning model 57 to perform form recognition processing.
  • the form recognition unit 63 classifies the form of the hand and fingers shown in the partial image, and outputs the classified form and the detected position of the fingertip.
  • the learning model 57 is a model using a machine learning algorithm, and can use, for example, SVM (support vector machine), decision tree, random forest, neural network, etc.
  • SVM support vector machine
  • a CNN convolutional neural network
  • FIG. 8 is a diagram illustrating an example of class classification of finger morphology.
  • FIG. 8 shows the classification of forms by the form recognition unit 63. As shown in FIG. 8, the shapes can be classified into 13 classes such as classes 0, 1, 2, . . . , 12. Note that the number of classifications and the contents of the format are not limited to the example shown in FIG. 8.
  • the shape of the hand is such that the thumb and index finger are separated, and class 0 indicates that the pointer is in a non-selected state.
  • Class 1 indicates that the fingertip of the thumb and index finger are in contact with each other, and class 1 indicates that the pointer is in a selected state.
  • the thumb and index finger are indicators, and the non-selected state is the form before the instruction, and the selected state is the instruction form.
  • the shape of the hand is a single thumb or index finger, indicating that it is not a pointer (non-pointer).
  • Classes 4 and 5 have two fingers, an index finger and a middle finger, indicating that they are not pointers. Note that in class 4, there is a gap between Japanese fingers, and in class 5, there is no gap between two fingers.
  • classes 6 and 7 the shape of the fingers is an index finger, middle finger, and ring finger, which indicates that the finger is not a pointer. In class 6, there are gaps between three fingers, and in class 7, there are no gaps between three fingers.
  • Class 8 indicates that the hand has four fingers: the index finger, middle finger, ring finger, and little finger, and is not a pointer.
  • class 9 the angle is from the side of the base of the finger, and it is in a non-pointer state (non-pointer).
  • Class 10 indicates that the hand and fingers are in a clasped state and not a pointer.
  • Class 11 indicates a finger shape other than classes 0 to 10, and indicates that it is not a pointer.
  • Class 12 indicates a form other than a finger and indicates a state other than a pointer. Note that in FIG. 8, class 0 and class 1 show partial images of the thumb and index finger of the right hand, but partial images of the thumb and index finger of the left hand can be classified into classes in the same way.
  • the pointer selection unit 64 extracts only those whose form corresponds to the pointer shape from among the partial images based on the classified forms output by the form recognition unit 63 and the detected position of the fingertip, and extracts only those whose forms correspond to the pointer shape. Outputs the class to be used and the position of the fingertip. In this embodiment, only class 0 and class 1 are used as pointers, and when the form recognition unit 63 outputs forms of other classes, the pointer selection unit 64 selects the output of the form recognition unit 63. will be ignored and will not output anything. As a result, all fingertips erroneously detected by the target detection unit 61 can be excluded.
  • the pointer information generation unit 65 generates information indicating whether the pointer is in a selected state or a non-selected state (information indicating the state of the pointer) depending on whether the class output from the pointer selection unit 64 is class 0 or class 1. ), and outputs information indicating the position of the pointer based on the position of the fingertip (detected position) and the state of the pointer.
  • the pointer position illustrated in FIG. 2 (the position of the green pointing point between the thumb and index finger) can be determined by the pointer information generation unit 65.
  • the pointer information transmitter 66 outputs pointer information indicating the position and state of the pointer to the controller 51.
  • the control unit 51 provides information indicating the state of the pointer to an application or the like. This generates display information such as symbols. Alternatively, the control unit 51 can output the pointer information to a host device or the like external to the non-contact user interface.
  • control unit 51 when the control unit 51 (or the image processing unit 60) inputs an image of a hand, the control unit 51 (or the image processing unit 60) selects the first form (class 1) in which the first finger and the second finger are in contact, or , the image of the hand and fingers is input to a learning model (form recognition unit 63) that is generated to output classification information including whether the first finger and the second finger are separated from each other (class 0). , the display mode of the pointer located between the fingertip of the first finger and the fingertip of the second finger can be switched according to the classification information output by the learning model.
  • a learning model class recognition unit 63
  • the pointer position is determined by defining the tip of the fingertip detected by the object detection unit 61 as the fingertip position.
  • detection of the fingertip position according to the user's (human) subjectivity will be described.
  • FIGS. 9A, 9B, 9C, and 9D are diagrams showing examples of combinations of fingertip positions and pointer positions.
  • 9A shows a state where the thumb and index finger are separated
  • FIG. 9B shows a state where the thumb and index finger are in contact
  • both FIGS. 9A and B show the tip of one of the two fingertips. This is the fingertip position, and the pointer is superimposed there (pointer position).
  • the pointer position is at the tip of one finger, which gives the user a sense of discomfort.
  • the position of the pointer changes relatively significantly depending on which of the two fingers is selected as the fingertip position, which further gives the user a sense of discomfort.
  • FIG. 10 is a diagram showing an example of the configuration of the object detection unit 61 of the second embodiment
  • FIG. 11 is a diagram showing a method for determining the midpoint of two fingers.
  • the target detection section 61 includes a target tip detection section 611 , an offset calculation section 612 , a fingertip region both end detection section 613 , a region midpoint calculation section 614 , and a fingertip position calculation section 615 .
  • the target tip detection unit 611 searches the image of the hand and fingers acquired from the camera 10 in the direction of the search axis, and when there are multiple fingertips on the image, detects the fingertip corresponding to the most upstream side of the search axis as the fingertip tip. Then, the detected fingertip tip position (coordinates on the image) is output to the fingertip area both ends detection unit 613.
  • the fingertip tip position (coordinates on the image) is output to the fingertip area both ends detection unit 613.
  • there are two fingertips, a thumb and an index finger and the tip of the index finger on the most upstream side of the search axis is detected as the fingertip tip.
  • the offset calculation unit 612 multiplies the unit vector in the search axis direction by a predetermined coefficient to obtain an offset vector (the vector indicated by “offset” in FIG. 11) based on the information on the search axis direction used by the target tip detection unit 611. calculate.
  • the fingertip region both end detection unit 613 sets a vertical axis in a direction (vertical direction) perpendicular to the search axis, passing through the end point position obtained by adding the offset vector starting from the fingertip tip position, and performs a process on the set vertical axis.
  • the outer boundaries of the thumb and index finger are detected.
  • the outer border of the thumb and the outer border of the index finger are detected on the vertical axis.
  • the area midpoint calculation unit 614 calculates the position (coordinates) of the midpoint of the outer boundary (both end boundaries).
  • the fingertip position calculation unit 615 positions the first indicator and the second indicator at a position between the end of the first indicator and the end of the second indicator specified based on the acquired image.
  • the position represented by the end of is defined as the designated position.
  • a pointer can be set based on this fingertip position.
  • the fingertip position calculation unit 615 uses the midpoint calculated by the area midpoint calculation unit 614 as a starting point, subtracts the offset vector calculated by the offset calculation unit 612, and calculates the end point as the fingertip position.
  • the fingertip position is set between the fingertip of the thumb and the index finger.
  • the fingertip position is set at an intermediate position between the fingertip of the thumb and the index finger.
  • the pointer position may be set to the set fingertip position.
  • control unit 51 acquires an image in which a plurality of indicators are photographed, and identifies the end of the first indicator and the second indicator identified based on the acquired image.
  • a pointer that designates a position represented by the ends of the first indicator and the second indicator can be set at a position between the ends of the indicator.
  • the image captured by the plurality of indicators may be an image captured by a TOF camera.
  • the image in which a plurality of indicators are photographed is an image of a hand and fingers, and the end of the first indicator and the end of the second indicator are the fingertip of the first finger and the end of the second indicator.
  • the pointer is the fingertip of the second finger, and the control unit 51 (or the image processing unit 60) can set the pointer at an intermediate position between the fingertip of the first finger and the fingertip of the second finger.
  • the user can solve the problem of the pointer position changing relatively significantly depending on which fingertip of multiple fingers is selected as the pointer. It is possible to remove the sense of discomfort. Furthermore, compared to the case where one of the two fingertips is used as the fingertip position, discomfort is extremely less likely to occur, and the fingertip position can be adjusted to match the user's subjective opinion.
  • control unit 51 searches the acquired hand image along a search axis in a predetermined direction to detect the tip of the fingertip, and separates the fingertip by a predetermined distance from the detected tip.
  • control unit 51 may set the pointer at a position offset by a predetermined distance from the specified midpoint in a direction parallel to the search axis. This allows the user to set a pointer position that feels more natural.
  • the control unit 51 (or the image processing unit 60) can display the set fingertip position on the application screen displayed on the display device 20.
  • the fingertip position may be displayed on the application screen by combining the image of the fingertip portion of the image obtained from the camera 10 with a symbol such as a point or circle representing the fingertip position, or alternatively, the fingertip position may be displayed on the application screen Only symbols such as dots and circles may be displayed on the application screen. Further, the entire image of the hand and fingers obtained from the camera 10 may be displayed as an overlay in a semi-transparent manner.
  • the image to be overlaid may not be the image of the hand and fingers obtained from the camera 10, but may be selected and displayed from a representative fingertip image (actual photo or diagram) prepared in advance according to the shape of the recognized fingertip.
  • the image of the hand and fingers acquired from the camera 10 may be displayed in a small size on a part of the display screen as a wipe image.
  • FIG. 12 is a diagram showing an example of the processing procedure of the image processing unit 60 of the second embodiment.
  • the image processing unit 60 acquires an image of a finger from the camera 10 (S11), and searches the acquired image in the search axis direction to detect the tip of the fingertip (S12).
  • the image processing unit 60 calculates an offset vector along the search axis direction (S13).
  • the image processing unit 60 sets a vertical axis in a direction perpendicular to the search axis from a position obtained by adding the offset vector to the fingertip tip position (S14).
  • the image processing unit 60 searches along the set vertical axis to detect the outer boundaries (boundaries at both ends) of the fingers (for example, two fingers, the thumb and the index finger) (S15).
  • the image processing unit 60 specifies the midpoint of the outer boundaries of the two fingers and calculates the fingertip position (S16).
  • the image processing unit 60 cuts out a partial image at the fingertip position from the hand image (S17).
  • the image processing unit 60 classifies the partial image (S18), and determines whether the classified form corresponds to a pointer shape (form) (S19). If the shape does not correspond to the pointer shape (NO in S19), the image processing unit 60 continues the processing from step S11 onwards. If the shape corresponds to the pointer shape (YES in S19), the image processing unit 60 generates information indicating the state of the pointer (information indicating the position of the pointer and the state of the pointer) (S20), and outputs the generated pointer information. (S21), the process ends.
  • the fingertip positions representing the fingertips of the two fingers are By setting the position between the two fingers, for example, between two fingers, the fingertip position can be set according to the user's subjectivity. With this, it is possible to realize a non-contact user interface that matches the user's subjectivity.
  • FIG. 13 is a diagram showing an example of the configuration of the object detection unit 61 of the third embodiment
  • FIG. 14 is a diagram showing a method for determining the pad of the thumb.
  • the object detection section 61 includes a fingertip both end detection section 616, a thumb selection section 617, and a thumb pad position calculation section instead of the fingertip region both end detection section 613 and the region midpoint calculation section 614. 618.
  • the target tip detection section 611, the offset calculation section 612, and the fingertip position calculation section 615 are the same as those in the second embodiment.
  • the fingertip both ends detecting unit 616 scans the vertical axis in both directions by a predetermined width to detect both ends boundaries of each of the two fingers (thumb and index finger). As shown in FIG. 14, the fingertip both end detection unit 616 detects both end boundaries P1 and P2 of one finger (thumb) and both end boundaries P3 and P4 of the other finger (index finger).
  • the thumb selection unit 617 compares the distance between the boundaries of both ends of each of the two fingers, and selects the finger with the longer distance as the thumb. Since the thumb is generally thicker than the index finger, it is possible to select the thumb based on the distance between the boundaries of both ends of the finger. In the example of FIG. 14, the distance between the end boundaries P1 and P2 is longer than the distance between the end boundaries P3 and P4, so the finger on the side of the end boundaries P1 and P2 can be selected as the thumb.
  • the thumb pad position calculation unit 618 calculates, from among the both-side boundaries detected by the fingertip both-end detection unit 616, the both-end boundaries of the finger on the side corresponding to the thumb, the both-end boundaries on the side closer to the other finger (in the example of FIG. , P2) is the position of the pad of the thumb.
  • the fingertip position calculation unit 615 calculates the fingertip position by subtracting the offset vector from the position of the pad of the thumb (P2 in the example of FIG. 14).
  • the control unit 51 (or the image processing unit 60) can set a pointer on the pad of the thumb. By setting the fingertip position to the thumb, which moves relatively little, it is possible to match the feeling of the user moving the fingers.
  • FIG. 15 is a diagram showing an example of the processing procedure of the image processing unit 60 of the third embodiment.
  • the image processing unit 60 acquires an image of a finger from the camera 10 (S31), and searches the acquired image in the search axis direction to detect the tip of the fingertip (S32).
  • the image processing unit 60 calculates an offset vector along the search axis direction (S33).
  • the image processing unit 60 sets a vertical axis in a direction perpendicular to the search axis from the position obtained by adding the offset vector to the fingertip tip position (S34).
  • the image processing unit 60 searches along the set vertical axis to detect the boundary positions of both ends of each of the two fingers (S35).
  • the image processing unit 60 compares the distance between the two end boundaries of each of the two fingers, selects the finger with the longer distance as the thumb, and selects the other finger among the both end boundaries of the finger corresponding to the thumb.
  • the two end boundaries on the side closer to are calculated as the position of the pad of the thumb, and the offset vector is subtracted from the position of the pad of the thumb, thereby calculating the fingertip position (S36).
  • the image processing unit 60 cuts out a partial image at the fingertip position from the hand image (S37).
  • the image processing unit 60 classifies the partial image (S38), and determines whether the classified form corresponds to a pointer shape (form) (S39). If the shape does not correspond to the pointer shape (NO in S39), the image processing unit 60 continues the processing from step S31 onwards. If the shape corresponds to the pointer shape (YES in S39), the image processing unit 60 generates information indicating the state of the pointer (information indicating the position of the pointer and the state of the pointer) (S40), and outputs the generated pointer information. (S41), the process ends.
  • the position of the fingertip representing the fingertips of the two fingers is determined as the position of the pad of the thumb.
  • this it is possible to make the fluctuation in the fingertip position relatively small before and after the pinch operation, and it is possible to set the fingertip position according to the user's subjectivity. With this, it is possible to realize a non-contact user interface that matches the user's subjectivity.
  • FIG. 16 is a diagram showing the setting of the fingertip position in the first application of the third embodiment.
  • the method for setting the fingertip position shown in FIG. 14 is such that the fingertip position is calculated by subtracting an offset vector from the position of the pad of the thumb (P2 in the example of FIG. 14).
  • P2 in the example of FIG. 14
  • the fingertip position is calculated by subtracting the offset vector.
  • FIG. 17 is a diagram showing the selection of the thumb in the second application of the third embodiment.
  • the thumb selection method shown in FIG. 14 has a configuration in which the thicknesses of two fingers (distance between both end boundaries) are compared.
  • the curvatures of the tips of two fingers are compared, and the finger with the larger curvature (radius of curvature) is selected as the thumb.
  • the thumb selection unit 617 can be configured using a learning model.
  • the learning model is generated by performing machine learning on the learning model using an image of the tip of the thumb, an image of the tip of the index finger, and teacher data indicating whether the image is a thumb or an index finger.
  • the thumb may be selected after recognizing the skeleton of the entire palm.
  • FIG. 18 is a diagram showing adjustment of the fingertip position in the third application of the second or third embodiment.
  • the initial fingertip position can be used as the starting point, and the end point position obtained by adding an adjustment vector (offset vector) that offsets the position by a required distance in the search axis direction can be set as the offset fingertip position.
  • offset vector an adjustment vector that offsets the position by a required distance in the search axis direction.
  • the required distance to be offset may be a predetermined fixed value, or may be increased or decreased depending on the thickness of the finger or the size of the cutout image (partial image).
  • the user may be allowed to set the required distance.
  • the control unit 51 may accept an operation to set a movement amount for moving the set pointer position to a desired position. This allows the user to set a pointer position that feels more natural.
  • control unit 51 (or the image processing unit 60) performs an operation of displaying a plurality of pointer positions in a selectable manner as candidate positions, and selecting a pointer position from among the displayed candidate positions. may be accepted. With this, it is possible to set a pointer position that feels more natural according to each user's preference.
  • the adjustment vector addition process may be performed by the target detection unit 61 or the pointer information generation unit 65.
  • the target detection unit 61 outputs information regarding the direction of the search axis to the pointer information generation unit 65. Since the pointer information generation unit 65 has acquired the class classification result of whether the shape of the hand and fingers is class 0 or class 1, for example, if the thumb and index finger are in contact, the adjustment amount ( It is possible to make fine adjustments to the fingertip position depending on the form, such as by reducing the distance traveled.
  • a cutout image (partial image) including the recognized fingertip position is input to the learning model used to recognize the shape of the hand and fingers.
  • the size of the input partial image be equal to the size of the learning partial image used in learning the learning model.
  • the range is extremely narrow and the entire hand or finger is not captured, it will be difficult to determine that it is a fingertip.
  • the finger to be recognized particularly the fingertip
  • the pattern will be different from the pattern of the partial image used as training data.
  • the fingertip that appears on the camera changes greatly depending on the positional relationship between the fingertip and the camera.
  • the size of the cutout image is fixed, the spatial range of the fingertip that can be recognized may vary depending on the positional relationship between the camera and the fingertip (finger).
  • FIG. 19 is a diagram showing an example of the configuration of the target detection unit 61 of the fourth embodiment.
  • the difference from the object detection section 61 of the second embodiment shown in FIG. 10 is that it includes a tip distance detection section 619 and a size calculation section 610.
  • the tip distance detection unit 619 acquires a distance image from the TOF camera (camera 10).
  • a distance image has information regarding distance for each pixel.
  • the learning model used by the form recognition unit 63 may be machine learned using distance images instead of hand and finger images.
  • a distance measuring sensor that uses a laser, a sound wave, or the like may be used as long as it can measure distance. However, when using these, it is necessary to also use a camera to obtain images of the hands and fingers.
  • the tip distance detection unit 619 acquires information regarding the tip position detected by the target tip detection unit 611.
  • the tip distance detection unit 619 calculates the sum of the distances of each pixel in a region near the tip position on the range image, and divides the calculated sum by the number of pixels in the region, thereby calculating the distance of the region.
  • the average value is calculated, and the calculated average value is output to the size calculation unit 610 as the tip distance.
  • the size calculation unit 610 calculates the cropped image size based on the tip distance acquired from the tip distance detection unit 619.
  • the cropped image size can be calculated, for example, by multiplying the reciprocal of the tip distance by a predetermined value.
  • control unit 51 (or the image processing unit 60) specifies the distance to the hand and fingers, adjusts the size of the image input to the learning model (form recognition unit 63) based on the specified distance, and adjusts the size of the image to be input to the learning model (form recognition unit 63). Later images can be input into the learning model. Thereby, the accuracy of fingertip shape recognition can be improved.
  • the offset calculation unit 612 obtains the cropped image size from the size calculation unit 610, and calculates an offset vector by multiplying the cropped image size by a predetermined coefficient based on information regarding the direction of the search axis used by the target tip detection unit 611. do.
  • the subsequent processing is the same as in the second embodiment, so the explanation will be omitted.
  • the fingertip position calculation unit 615 subtracts the offset vector from the midpoint calculated by the area midpoint calculation unit 614, and further adds an adjustment vector obtained by multiplying the cropped image size by a predetermined coefficient in the search axis direction, and then The position may also be calculated.
  • Embodiment 5 The fingertip position tends to vary from frame to frame of the hand image (camera image) due to recognition errors, and the pointer displayed on the display screen may tremble (slightly fluctuate). As a countermeasure, it is possible to correct the pointer position by calculating a moving average of the pointer position. However, since the fingertip positions in past frames are reflected in the process of calculating the moving average, the display of the pointer lags behind the actual movement of the finger, which may create a sense of discomfort for the user. This discomfort becomes more pronounced as the fingertip moves faster. In Embodiment 5, a method for eliminating the cause of a sense of discomfort due to minute fluctuations in the pointer will be described.
  • FIG. 20 is a diagram showing an example of the configuration of the pointer information generation section 65 of the fifth embodiment.
  • the pointer information generation section 65 includes a coordinate storage section 651, a fingertip speed calculation section 652, a moving average range adjustment section 653, a moving average calculation section 654, and a pointer state information generation section 655.
  • the pointer information generation unit 65 corrects the pointer position (coordinates) by calculating a moving average of the pointer position using the history of past pointer coordinates.
  • the pointer information generation unit 65 adjusts the range of the moving average according to the moving speed of the fingertip, thereby suppressing minute fluctuations in the position of the pointer and reducing delay in movement of the pointer. Compatible with mitigation. This will be explained in detail below.
  • the position of the fingertip and the form of the pointer (class corresponding to the pointer) output from the pointer selection unit 64 are input to the pointer information generation unit 65.
  • the coordinate storage unit 651 sequentially stores the fingertip positions output from the pointer selection unit 64 as a history of pointer coordinates.
  • the fingertip speed calculating unit 652 calculates the speed of the fingertip for each frame based on the position of the fingertip for each frame stored in the coordinate storage unit 651 and based on the change in the position of the fingertip between different frames.
  • the moving average range adjustment unit 653 holds the moving average range and adjusts the range based on the input fingertip speed.
  • the range is the number of frames when calculating the moving average. To adjust the range, for example, if the speed of the fingertip is greater than a predetermined threshold, 1 is subtracted from the number of ranges used in the previous frame to obtain a new range number, and when the speed of the fingertip is greater than the predetermined threshold. If the number of ranges is also small, 1 is added to the number of ranges used in the previous frame to obtain a new number of ranges. Further, an upper limit value and a lower limit value may be provided in the range when calculating the moving average. Note that the range of adjustment is set to ⁇ 1, but if the change in the speed of the fingertip is large, the range of adjustment may not be limited to ⁇ 1; for example, the range of adjustment may be set to ⁇ 2.
  • the moving average calculation unit 654 acquires the adjusted range from the moving average range adjustment unit 653, and stores it in the coordinate storage unit 651.
  • the stored history of pointer coordinates is read out, a moving average is calculated, and the corrected pointer (fingertip) coordinates are output.
  • the pointer state information generation unit 655 determines whether the pointer is in a selected state or a non-selected state based on the form of the pointer output from the pointer selection unit 64 (whether the classified class is class 0 or class 1). (pointer status information) and outputs it to the pointer information transmitter 66.
  • FIG. 21 is a diagram showing an example of range adjustment of the moving average.
  • control unit 51 stores the history of the set pointer position in association with the frame, and calculates a moving average according to the moving speed of the fingertip (end of the pointer).
  • the number of frames for calculation may be adjusted, a moving average of the pointer position in the adjusted number of frames may be calculated, and the pointer position may be set based on the calculated moving average.
  • FIG. 22 is a diagram showing an example of the processing procedure of the image processing unit 60 of the fifth embodiment.
  • the image processing unit 60 acquires the position and shape of the pointer (S51), and stores the position of the pointer as history information (S52).
  • the image processing unit 60 calculates the speed of the fingertip (pointer) (S53), and adjusts the range for calculating the moving average of the pointer position (fingertip position) according to the speed of the fingertip (S54).
  • the image processing unit 60 calculates a moving average of the pointer position within the adjusted range (S55).
  • the image processing unit 60 outputs information indicating the calculated position and state of the pointer (S56), and ends the process.
  • the range for calculating the moving average of the fingertip position is adjusted according to the fingertip speed, it is possible to eliminate the cause of the pointer display being delayed from the actual finger movement and causing the user to feel uncomfortable. Furthermore, since the range is adjusted to ⁇ 1 for each frame, discontinuous changes in the pointer position can be suppressed.
  • FIG. 23 is a diagram showing an example of the configuration of the image processing section 60 of the sixth embodiment.
  • the difference from the above-described embodiment is that a search axis correction section 67 is provided.
  • the search axis correction unit 67 acquires the initial search axis direction (information regarding the direction of the search axis before correction) from the target detection unit 61 and uses the search axis direction (information regarding the direction of the search axis after correction) from the target detection unit 61. Output to.
  • FIG. 24 is a diagram showing an example of the configuration of the search axis correction section 67
  • FIG. 25 is a diagram showing a search axis correction method.
  • the search axis correction section 67 includes a target tip detection section 671, an offset calculation section 672, a fingertip region both end detection section 673, a tangent detection section 674, and a bisection direction calculation section 675.
  • the target tip detection unit 671, the offset calculation unit 672, and the fingertip region both ends detection unit 673 are the same as the target tip detection unit 611, the offset calculation unit 612, and the fingertip region both ends detection unit 613 of the target detection unit 61 of the second embodiment. be.
  • the target tip detection unit 671 searches the image of the hand and fingers acquired from the camera 10 in the direction of the initial search axis, and when there are multiple fingertips on the image, selects the fingertip corresponding to the most upstream side of the initial search axis as the fingertip tip.
  • the detected fingertip tip position (coordinates on the image) is output to the fingertip region both ends detection unit 673.
  • the offset calculation unit 672 calculates an offset vector by multiplying the unit vector in the initial search axis direction by a predetermined coefficient based on the information on the initial search axis direction used by the target tip detection unit 671.
  • the fingertip region both ends detection unit 673 sets a vertical axis in a direction (vertical direction) that is orthogonal to the initial search axis, passing through the end point position obtained by adding the offset vector starting from the fingertip tip position, and moves on the set vertical axis. Then, the boundaries at both ends of the thumb and index finger (boundary points in FIG. 25) are detected.
  • the tangent line detection unit 674 traces the edges of the fingers near each of both end boundaries (boundary points), and detects the tangent line of the edge at the boundary point. In FIG. 25, a tangent to the finger edge passing through the thumb boundary point (the edge of the finger opposite to the index finger) and a tangent to the finger edge passing through the index finger boundary point (the edge of the finger opposite to the thumb) are detected. ing.
  • the bisection direction calculating unit 675 derives a straight line that bisects the angle formed by the two detected tangents, and calculates the unit vector of the derived straight line in the direction opposite to the direction of the fingertip as the corrected search axis direction.
  • the bisection direction calculation unit 675 outputs information regarding the corrected direction of the search axis to the target detection unit 61.
  • the direction of the search axis can be brought closer to the direction of the fingertip by repeating the above-mentioned processes with the corrected search axis direction as the initial search axis direction and sequentially updating the search axis.
  • the control unit 51 searches the acquired hand image along the search axis in a predetermined direction to detect the tip of the fingertip, and searches the acquired finger image at a predetermined distance from the detected tip.
  • Set an orthogonal axis vertical axis that is perpendicular to the search axis and are separated by detecting a first outer boundary point and a second outer boundary point of the first outer boundary point, and detecting a first tangent line (e.g., a tangent line of the thumb edge) that touches the boundary of the first finger at the detected first outer boundary point;
  • the direction of the search axis may be corrected based on a second tangent (for example, a tangent to the index finger edge) that touches the boundary of the second finger at the second outer boundary point.
  • the direction of the search axis can be brought closer to the direction in which the fingertip is facing before the fingertip position is detected, and deviation from the user's subjectivity can be suppressed.
  • the search axis can also be set using other methods. For example, when the frame rate of the camera 10 is high (large), it is expected that the image change in adjacent frames will be small and the direction of the fingertip will hardly change.
  • the seventh embodiment a method of setting a search axis using information of the previous frame will be described.
  • FIG. 26 is a diagram showing an example of the configuration of the image processing section 60 according to the seventh embodiment.
  • the difference from the image processing section 60 of the sixth embodiment shown in FIG. 23 is that it includes a tracking detection section 68 and a search setting storage section 69.
  • the search setting storage unit 69 records the fingertip position of each fingertip detected in the previous frame and the search axis direction (information regarding the direction of the search axis) used in the previous frame. However, when the search setting storage unit 69 acquires a class that does not correspond to a pointer from the pointer selection unit 64, it deletes the record of the fingertip position and search axis direction of the corresponding fingertip.
  • the search setting storage unit 69 outputs the fingertip position of each fingertip detected in the recorded previous frame and the search axis direction used in the previous frame to the tracking detection unit 68 in the next frame. Note that if the fingertip position and search axis direction for each fingertip are not recorded, the tracking detection unit 68 does not operate. That is, the tracking detection unit 68 operates when information of the previous frame (fingertip position, search axis direction) exists, and does not operate when it does not exist.
  • FIG. 27 is a diagram showing an example of the configuration of the tracking detection section 68.
  • the tracking detection section 68 includes a target tip detection section 681, an offset calculation section 682, a fingertip region both end detection section 683, a region midpoint calculation section 684, and a fingertip position calculation section 685.
  • the target tip detection unit 681, the offset calculation unit 682, the fingertip area both ends detection unit 683, the area midpoint calculation unit 684, and the fingertip position calculation unit 685 are the target tip detection unit 611, the offset calculation unit 612, and the fingertip of the target detection unit 61. This is the same as the region both ends detection section 613, the region midpoint calculation section 614, and the fingertip position calculation section 615.
  • the tracking detection unit 68 detects the fingertip position in the current frame by referring to the fingertip position detected in the previous frame and the search axis direction used in the previous frame. Specifically, when searching for the tip of the fingertip in the direction of the fingertip recognized in the previous frame, the search range is limited to the vicinity of the fingertip position detected in the previous frame. When searching, the search axis direction used in the previous frame can be used. The search range is limited to the vicinity of the fingertip position because it is thought that the position and direction of the fingertip do not change much between adjacent frames.
  • the target detection unit 61 detects the fingertip position instead of the tracking detection unit 68.
  • control unit 51 (or the image processing unit 60) stores the fingertip position and search axis direction specified when setting the pointer position in association with frames, and stores them in association with the most recent frame. If the position of the fingertip and the direction of the search axis are stored, the position of the pointer may be set by searching along the search axis based on the position of the fingertip and detecting the tip of the fingertip. .
  • the number of search axes is not limited to the right hand or the left hand, and there is only one search axis, and there is no need to search using two search axes as in the previous embodiment, and the processing time and processing required for the search are reduced. Labor can be reduced.
  • a search using the information of the previous frame is first performed, and then a search using two or more search axes can be performed.
  • a search using search axes in two or more directions areas in the vicinity of the fingertip position detected in a search using information from the previous frame may be excluded from the search target so as not to be detected redundantly.
  • FIG. 28 is a diagram showing an example of failure to detect the tip of a fingertip.
  • the target tip detection unit 611 of the above-described embodiment searches the image of the hand and fingers acquired from the camera 10 in the search axis direction, and when there are multiple fingertips on the image, selects the fingertip corresponding to the most upstream side of the search axis. is detected as the tip of the fingertip, and the detected fingertip tip position is output to the fingertip area both end detection unit 613.
  • FIG. 1 shows that shows that detect the tip of the fingertip.
  • FIG. 29 is a diagram illustrating an example of the configuration of the target tip detection unit 611 of the eighth embodiment
  • FIG. 30 is a diagram illustrating a fingertip tip detection method.
  • the target tip detection section 611 includes a contour extraction section 6111, a search axis projection section 6112, and a local upstream point detection section 6113.
  • the contour extraction unit 6111 extracts the contour of the object (hand and finger) present in the camera image (hand and finger image), and generates a coordinate list of each pixel (pixel on the outer circumference of the finger) of the extracted contour.
  • the contour extraction unit 6111 outputs the generated coordinate list to the search axis projection unit 6112.
  • the search axis projection unit 6112 projects each pixel in the acquired coordinate list onto the search axis and converts it into coordinates on the search axis. Projection onto the search axis is performed in a direction perpendicular to the search axis. By projecting the coordinates on the outline (on the outer periphery) onto the search axis, the positions on the outer periphery of the finger and the positions in the search axis direction are correlated by a function, as shown in FIG. In FIG. 30, a graph representing a function is drawn in a two-dimensional coordinate system in which the horizontal axis indicates the position on the outer circumference and the vertical axis indicates the position in the search axis direction.
  • the local upstream point detection unit 6113 searches a position on the outer circumference to find a position in the search axis direction, and detects a valley portion where a difference greater than a preset threshold exists as the position of the fingertip tip. As shown in FIG. 30, in the graph representing the function, the valley corresponds to the upstream point indicating the fingertip. An appropriate threshold is set, and all valleys where there are peaks equal to or greater than the threshold on both sides of the valley are detected as local upstream points.
  • the trough P corresponding to the tip of the thumb is detected as a local upstream point because there are peaks larger than the threshold on both sides. Furthermore, since the tip of the index finger (point A) is integrated with the valley of the thumb, it is excluded from the local upstream points. Here, the reason why the tip of the index finger is excluded instead of the tip of the thumb is that the tip of the thumb is located on the more upstream side in the search axis direction.
  • the valley portion P' corresponding to the tip of the middle finger (point B) has mountain portions larger than the threshold on both sides thereof, so it is detected as a local upstream point. Furthermore, the valley corresponding to the tip of the ring finger is excluded from the local upstream point because there are no peaks on both sides of the valley that are larger than the threshold.
  • control unit 51 (or the image processing unit 60) identifies the outline of the hand and fingers based on the acquired hand and finger images, and calculates the distance between each point on the identified outline and the search axis in a predetermined direction.
  • a point on the contour corresponding to the minimum point (local upstream point) of the associated distance may be identified as the tip of the fingertip.
  • Embodiment 8 even if a necessary location such as a pinched position is not at the most upstream position in the search axis direction, it can be reliably detected as a fingertip. Furthermore, it is possible to suppress the detection of a part such as point A that is integrated with another fingertip, or a minute protrusion that is accidentally generated due to noise.
  • the contactless user interface described in each of the above embodiments can be used as a contactless user interface in various fields. Examples of such fields include applications and operating devices used in information processing devices, in-vehicle devices, medical devices, and the like. In the following, a case where the device is used in an on-vehicle device will be explained.
  • FIG. 31 is a diagram showing an example of an in-vehicle interface device.
  • the in-vehicle interface device has a non-contact user interface function for operating the navigation screen in a non-contact manner.
  • the in-vehicle interface device may include the image processing device 50 and camera 10 described above.
  • an image of the hand and fingers captured by a camera 10 (not shown) is transmitted to the image processing device 50.
  • the camera 10 may be installed at an appropriate location within the vehicle.
  • the image processing device 50 displays an image of a hand and fingers in a superimposed manner on the navigation screen.
  • the visibility of symbols such as characters on the navigation screen can be maintained by making the hand and finger images semitransparent, for example.
  • the user can move the image of the hand on the navigation screen onto the "history" icon. Then, the user can operate the "history" icon by pinching the thumb and index finger. The same applies to other icons on the navigation screen.
  • the image of the hand and fingers may be the image itself taken by the camera 10, or an image obtained by processing the image of the hand and fingers may be displayed.
  • the processed image includes, for example, a representative hand image prepared in advance (a real image or a diagram) and a symbol representing a pointer.
  • the wipe image may be displayed in a small size on a part of the navigation screen.
  • the control unit 51 may synthesize and display the acquired image (hand and finger image) or an image obtained by processing the acquired image and a symbol representing a pointer on the display screen.
  • the control unit 51 displays on the display screen an image of the hand with the first finger and the second finger separated, and displays the fingertip of the first finger and the fingertip of the second finger. If a pointer is displayed between the fingertips of the first finger and the fingertips of the second finger is received, an operation on the display screen indicated by the pointer may be executed. For example, the hand and finger images may be displayed semitransparently on the display screen. Thereby, the visibility of various operation icons on the display screen can be improved.
  • the in-vehicle interface device includes a control unit, and the control unit acquires an image of the hand and fingers, and identifies the fingertip of the first finger and the fingertip of the second finger identified based on the acquired image.
  • a pointer that designates a position represented by the fingertip of the first finger and the fingertip of the second finger is set at a position between , and an operation by the pointer displayed on the in-vehicle equipment operation screen is accepted.
  • the in-vehicle equipment is not limited to a navigation device, and may be other in-vehicle equipment such as AV equipment.
  • the indicator is not limited to a finger.
  • it may be a surgical tool such as forceps, a robot hand that simulates fingers, or the like.
  • the same effect can be obtained with respect to fingers even when the fingers are not bare, such as when wearing gloves.
  • a computer program causes a computer to acquire images of a plurality of indicators, and to identify an end of a first indicator and an end of a second indicator identified based on the acquired images.
  • a process is executed to set a pointer that designates a position represented by the ends of the first indicator and the second indicator at a position between them.
  • the computer program searches the acquired image of the hand along a search axis in a predetermined direction to detect the tip of the fingertip, and detects the tip of the fingertip.
  • a process of specifying a midpoint and setting the pointer based on the specified midpoint is executed.
  • the computer program causes the computer to execute a process of setting the pointer at a position offset by a predetermined distance from the midpoint in a direction parallel to the search axis.
  • the computer program executes a process in which the computer program receives an operation for setting a movement amount for moving the set pointer position to a desired position on the computer in any of the computer programs set forth in Appendices 1 to 5.
  • the computer program displays on the computer a plurality of positions of the pointer in a selectable manner as candidate positions, and selects the position of the pointer from among the displayed candidate positions. Accept the operation to select the position and execute the process.
  • Appendix 9 In the computer program of Appendix 8, the computer program specifies the distance to the hand and fingers, adjusts the size of the image input to the learning model based on the specified distance, and outputs the adjusted image. Input to the learning model and execute processing.
  • Appendix 10 The computer program according to any one of Appendices 1 to 9 causes a computer to display an acquired image or an image obtained by processing the image and a symbol representing the pointer in a composite manner on a display screen. Execute the process.
  • the computer program displays on a display screen an image of a hand with a first finger and a second finger separated from each other; If a pointer is displayed between the fingertip of the first finger and the fingertip of the second finger, and an action of bringing the fingertip of the first finger into contact with the fingertip of the second finger is received, the pointer to execute an operation on the display screen as instructed by .
  • the computer program stores a history of the set pointer position in the computer in association with a frame, and adjusts the moving speed of the end of the pointer to the computer.
  • the computer program detects the tip of the fingertip by searching the acquired image of the hand along a search axis in a predetermined direction. , set an orthogonal axis that is spaced a predetermined distance from the tip and orthogonal to the search axis, and search along the set orthogonal axis to find the first outer boundary point and the first outer boundary point of each of the first finger and the second finger.
  • a process of correcting the direction of the search axis based on a second tangent line that is in contact with the search axis is executed.
  • the computer program stores in the computer the position of the fingertip and the direction of the search axis specified when setting the position of the pointer in association with the frame. , when the position of the fingertip and the direction of the search axis associated with the most recent frame are stored, by searching along the search axis based on the position of the fingertip and detecting the tip of the fingertip, A process for setting the position of the pointer is executed.
  • the computer program specifies the outline of the hand and fingers based on the acquired hand and finger images, and connects each point on the identified outline with a predetermined direction.
  • a process is executed in which the point on the contour corresponding to the minimum point of the distance is identified as the tip of the fingertip by associating the distance with the search axis.
  • the image processing device includes a control unit, and the control unit acquires an image in which a plurality of indicators are photographed, and the end portion of the first indicator and the end portion of the first indicator identified based on the acquired image.
  • a pointer that designates a position represented by the ends of the first indicator and the second indicator is set at a position between the ends of the second indicator.
  • control unit acquires an image of the plurality of indicators taken by a TOF camera.
  • the image processing method involves acquiring an image in which a plurality of indicators are photographed, and determining the distance between the end of the first indicator and the end of the second indicator, which is identified based on the acquired image.
  • a pointer designating a position represented by the ends of the first indicator and the second indicator is set at the position.
  • the in-vehicle interface device includes a control unit, and the control unit acquires an image in which a plurality of indicators are photographed, and selects an end portion of a first indicator and a second indicator identified based on the acquired image.
  • a pointer designating a position represented by the ends of the first indicator and the second indicator is set at a position between the ends of the second indicator, and the pointer is displayed on the in-vehicle equipment operation screen. The operation using the pointer is accepted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Position Input By Displaying (AREA)

Abstract

ユーザの主観に合わせた非接触ユーザインタフェースを実現できるコンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置を提供する。 コンピュータプログラムは、コンピュータに、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、処理を実行させる。

Description

コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置
 本発明は、コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置に関する。
 近年、人間の手や体を使った動作に対応して応答する非接触ユーザインタフェースの研究・開発が活発化している。特許文献1には、ユーザが指をディスプレイに接近させた場合にカメラで撮影し、撮影した画像に基づいて、ディスプレイに接近するユーザの手指のジェスチャーやディスプレイに対する指の位置に基づいてユーザの操作意図を推測し、推測した操作意図に応じて表示画像を変更するように画像出力手段を制御する装置が開示されている。
特開2011-133942号公報
 特許文献1の装置は、非接触ユーザインタフェース機能を提供するものの、ユーザは指をディスプレイに近づける動作をする必要があり、ディスプレイに触れる程度の近くにいなければならないという制限がある。また、手指のジェスチャーやディスプレイに対する指の位置に基づいてユーザの操作意図が推測される際に、手指の動作や指の位置がユーザの主観に合わない場合があり、ユーザにとって違和感が生じる可能性がある。
 本発明は、斯かる事情に鑑みてなされたものであり、ユーザの主観に合わせた非接触ユーザインタフェースを実現できるコンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置を提供することを目的とする。
 本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、コンピュータプログラムは、コンピュータに、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、処理を実行させる。
 本発明によれば、ユーザの主観に合わせた非接触ユーザインタフェースを実現できる。
非接触ユーザインタフェースシステムの構成の一例を示す図である。 手指の動作の一例を示す図である。 画像処理装置の構成の一例を示す図である。 画像処理部の構成の一例を示す図である。 手指の画像の一例を示す図である。 右手の指先を探索する方法を示す図である。 左手の指先を探索する方法を示す図である。 手指の形態のクラス分類の一例を示す図である。 指先位置とポインタ位置の組み合わせの一例を示す図である。 指先位置とポインタ位置の組み合わせの一例を示す図である。 指先位置とポインタ位置の組み合わせの一例を示す図である。 指先位置とポインタ位置の組み合わせの一例を示す図である。 実施形態2の対象検出部の構成の一例を示す図である。 2本の指の中点を決定する方法を示す図である。 実施形態2の画像処理部の処理手順の一例を示す図である。 実施形態3の対象検出部の構成の一例を示す図である。 親指の腹部分を決定する方法を示す図である。 実施形態3の画像処理部の処理手順の一例を示す図である。 実施形態3の応用形態1の指先位置の設定を示す図である。 実施形態3の応用形態2の親指の選択を示す図である。 実施形態2又は3の応用形態3の指先位置の調整を示す図である。 実施形態4の対象検出部の構成の一例を示す図である。 実施形態5のポインタ情報生成部の構成の一例を示す図である。 移動平均のレンジ調整の一例を示す図である。 実施形態5の画像処理部の処理手順の一例を示す図である。 実施形態6の画像処理部の構成の一例を示す図である。 サーチ軸補正部の構成の一例を示す図である。 サーチ軸の補正方法を示す図である。 実施形態7の画像処理部の構成の一例を示す図である。 追跡検出部の構成の一例を示す図である。 指先先端の検出漏れの一例を示す図である。 実施形態8の対象先端検出部の構成の一例を示す図である。 指先先端の検出方法を示す図である。 車載インタフェース装置の一例を示す図である。
 以下、本発明の実施の形態について図面を用いて説明する。
(実施形態1)
 図1は非接触ユーザインタフェースシステム100の構成の一例を示す図である。非接触ユーザインタフェースシステム100は、カメラ10、表示画面を有する表示装置20、及び画像処理装置50を備える。画像処理装置50は、非接触ユーザインタフェース装置としての機能を有する画像処理部60を備える。画像処理装置50は、例えば、パーソナルコンピュータ等で構成することができる。画像処理部60は、画像処理装置50に内蔵される構成に限定されるものではなく、画像処理装置50とは別の装置で構成してもよい。カメラ10は、可視光や赤外光によって得られる一般的な画像に限定されるものではなく、距離も計測できるTOF(Time Of Flight)カメラでもよい。
 カメラ10は、黒色プレートを撮影できる位置に配置されている。カメラ10の位置は、黒色プレートを撮影できる位置であれば適宜設定できる。カメラ10と黒色プレートとの間の適宜の位置で、ユーザは、例えば、親指と人差し指とを接触させてつまむ動作、あるいは親指と人差し指とを離す動作をする。カメラ10は、ユーザの手指の動作や状態を撮影することができる。黒色プレートは、手指を撮影した画像の手指以外の背景となる部分に対応するが、本実施形態では、黒色プレートは必須ではない。また、プレートの色も黒色に限定されるものではなく、任意の色であってもよい。しかし、手指を撮影した画像の手指に相当する部分を背景に対して目立つようにするためには、プレートは単色であって、複雑な模様を含まないものがよい。
 画像処理装置50は、カメラ10で撮影された手指の画像をそのまま、あるいは手指の画像を加工した画像を表示装置20の表示画面に表示することができる。ユーザが黒色プレートに対して手指を水平方向に移動させると、表示画面に表示される手指も表示画面上を水平方向(縦横)に移動させることができる。また、ユーザが黒色プレートに対して手指を垂直方向に移動させると、表示画面に表示される手指も表示画面に対して仮想的に垂直方向に移動するように手指が変化する。手指の画像を加工した画像は、例えば、手指の代わりに点や円などの記号を表示する画像である。
 図1に示すように、ユーザが入力したい数字キー上で、親指と人差し指とをピンチする(つまむ)ことで、画像処理装置50は、親指と人差し指とのピンチで数字キーが選択されたと判断して、表示装置20の表示画面の数字入力欄に数字を表示する。図1に示すようにテンキーには、0~9の数字キーの他に「DEL」で示される削除キー、「CLR」で示されるクリアキーがある。
 図2は手指の動作の一例を示す図である。図2は親指と人差し指とのピンチで数字キーを選択する動作を示す。親指と人差し指とを離した状態において、親指と人差し指との間にポインタ位置(例えば緑色の指示点)が表示される。ポインタ位置を、選択しようとするキー(図では削除キー)上に置き、親指と人差し指とをピンチすることで、削除キーが選択され、図1の表示画面にある数字入力欄の数字「9632」の内「2」を消すことができる。親指と人差し指との間にポインタ位置を設けることで、キーが小さくとも選択が容易となる。
 図2では右手で親指と人差し指とをピンチすることで、表示装置20の表示画面の数字入力欄に数字を表示する例を示しているが、左手で親指と人差し指とをピンチすることで、表示装置20の表示画面の数字入力欄に数字を表示してもよい。
 親指と人差し指とを接触させて指先でつまむ動作は、誰でもなじみのある動作であり、選択操作に好適な動作であるため、本実施形態は親指と人差し指とを用いて、指先でつまむ動作を選択動作として用いる。本実施形態では、指先で代表されるものを指示体と称し、指示体の一例として手指を例に挙げ、特に親指と人差し指(第1の指及び第2の指)を例として説明する。この場合、指示体の端部に相当する親指の指先及び人差し指の指先の両方の指先を、ひとまとまりの指先として指先を代表する位置を表す指先位置とし、指先位置を基準としてポインタ位置を決定する。
 ポインタ位置は、指先位置を基準として決定することができる。ポインタ位置は、例えば、2本の指(例えば、親指と人差し指)の先端から第一関節までの範囲内で決定してもよく、より好適な範囲としては、例えば、2本の指の内側であって爪の付け根までの範囲内で決定してもよく、2本の指は、親指と人差し指以外の指でもよい。以下では、ポインタ位置を具体的に説明する。
 図3は画像処理装置50の構成の一例を示す図である。画像処理装置50は、装置全体を制御する制御部51、通信部52、メモリ53、操作部54、記憶部55、記録媒体読取部58、及び画像処理部60を備える。記憶部55は、例えば、ハードディスク又は半導体メモリ等で構成することができ、コンピュータプログラム56、学習モデル57、及び所要の情報を記憶する。なお、画像処理装置50は、処理機能を分散させて、複数の装置で構成してもよい。
 制御部51は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等が所要数組み込まれて構成されている。制御部51は、コンピュータプログラム56で定められた処理を実行することができる。すなわち、制御部51による処理は、コンピュータプログラム56による処理でもある。制御部51は、コンピュータプログラム56を実行することにより、画像処理部60の機能を実行することができる。画像処理部60は、ハードウエアで構成してもよく、ソフトウエアで実現する構成としてもよく、あるいはハードウエアとソフトウエアとの組み合わせで実現してもよい。制御部51及び画像処理部60は、学習モデル57を用いた処理を行うことができる。
 通信部52は、例えば、通信モジュールを備え、表示装置20との間で通信を行うことができる。通信部52は、カメラ10や他のインタフェース装置との通信インタフェース機能を備えてもよい。
 メモリ53は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の半導体メモリで構成することができる。コンピュータプログラム56をメモリ53に展開することにより、制御部51は、コンピュータプログラム56を実行することができる。
 コンピュータプログラム56を記録した記録媒体59を記録媒体読取部58によって読み取ることができる。なお、コンピュータプログラム56は、通信部52を介して、外部の装置からダウンロードして記憶部55に格納してもよい。
 操作部54は、マウス、キーボードなどの入力装置とのインタフェース機能を備える。
 図4は画像処理部60の構成の一例を示す図である。画像処理部60は、非接触ユーザインタフェースの機能を実現するための機能を備え、具体的には、対象検出部61、画像切り出し部62、形態認識部63、ポインタ選択部64、ポインタ情報生成部65、及びポインタ情報送信部66を備える。画像処理部60による処理は、可視光や赤外光によって得られる一般的な画像に対しても、あるいはTOFカメラによって得られた距離画像に対しても同様に行われる。
 対象検出部61は、カメラ10で撮影された、手指の画像(複数の指示体が撮影された画像)を取得する。対象検出部61は、手指の画像に基づいて対象部位である親指と人差し指を検出し、指先の画像上の位置と指先を含む領域のサイズを出力する。
 図5は手指の画像の一例を示す図である。図5は右手の画像を例示しているが、左手の画像でもよい。手指以外の領域は背景であり、黒色プレートを用いた場合には黒色となっている。プレートを用いない場合には、手指以外の部分が単色(例えば、白、灰色など)になるように画像処理してもよい。
 対象検出部61は、手指の画像の上で、指先を検出するために方向が異なる、斜め2方向の2つのサーチ軸に沿って探索を行う。2つのサーチ軸を使って探索することで、右手には右下方向に、左手には左下方向に走査して探索し、最初に検出する点を指先とみなすことができる。
 図6は右手の指先を探索する方法を示す図であり、図7は左手の指先を探索する方法を示す図である。第1サーチ軸は、右斜め下に向かう軸であり、画像上の縦方向と角度θ1の角度を有する。第2サーチ軸は、左斜め下に向かう軸であり、画像上の縦方向と角度θ2の角度を有する。図6に示すように、右手の画像を第1サーチ軸で探索する場合、第1サーチ軸のサーチ点に垂直な方向に沿って指先が存在するか否かを判定し、指先が存在しない場合には、第1サージ軸に沿ってサーチ点を移動し、同様の処理を繰り返すと、右手の指先を検出できる。また、図7に示すように、左手の画像を第2サーチ軸で探索する場合、第2サーチ軸のサーチ点に垂直な方向に沿って指先が存在するか否かを判定し、指先が存在しない場合には、第2サージ軸に沿ってサーチ点を移動し、同様の処理を繰り返すと、左手の指先を検出できる。このように2つのサーチ軸で探索を行うと、右手及び左手のいずれであっても指先を検出することできる(図6及び図7において、指先の検出位置を黒点で示す)。
 一方で、右手の画像を第2サーチ軸で探索し、あるいは左手の画像を第1サーチ軸で探索すると、指先ではない箇所(検出位置を黒点で示す)を検出する(誤検出)。しかし、後述するポインタ選択部64の処理によって、指先以外の箇所を除外できる。サーチ軸に沿って指先を探索するには、サーチ軸の角度θ1、θ2を60°を含む所要の範囲(例えば、45°~75°程度)に設定すればよい。
 対象検出部61は、第1サーチ軸と第2サーチ軸の2つのサーチ軸で探索して検出した、画像上の指先の検出位置と指先を含む領域のサイズを画像切り出し部62へ出力する。サイズは所定値であり、画像切り出し部62で切り出しを行う領域を規定する。図6及び図7に示す、第1切り出し矩形領域及び第2切り出し矩形領域は、画像切り出し部62で切り出しを行う領域に対応している。なお、サーチ軸は3つ以上としてもよく、例えば、左右からの60°に真上からの0°を加えた3つのサーチ軸としてもよい。
 画像切り出し部62は、対象検出部61から出力される、指先の検出位置及び指先を含む領域のサイズに基づいて、カメラ10から出力される手指の画像から、指先を含む部分画像を切り出す。切り出した2つの部分画像は、図6又は図7の第1切り出し矩形領域及び第2切り出し矩形領域それぞれを含む部分画像である。画像切り出し部62は、部分画像を形態認識部63へ出力する。
 形態認識部63は、学習モデル57を用いて形態認識処理を行う。形態認識部63は、部分画像が入力されると、部分画像に写っている手指の形態をクラス分けし、クラス分けした形態、及び指先の検出位置を出力する。学習モデル57は、機械学習されたアルゴリズムを用いたモデルであり、例えば、SVM(サポート・ベクター・マシン)、決定木、ランダムフォレスト、ニューラルネットワークなどを用いることができる。深層学習を用いるものとして、例えば、CNN(畳み込みニューラルネットワーク)を用いることができ、例えば、AlexNet、VGG、GoogLeNet、ResNetなどの構造が含まれる。
 図8は手指の形態のクラス分類の一例を示す図である。図8は形態認識部63による形態のクラス分けを示す。図8に示すように、形態はクラス0、1、2、…、12の如く13のクラスに分類できる。なお、クラスの分類の数及び形態の内容は図8の例に限定されるものではない。
 クラス0では、手指の形態は、親指と人差し指とが離れた状態であり、クラス0は、ポインタが非選択状態であることを示す。クラス1では、手指の形態は、親指の指先と人差し指の指先とが接触した状態であり、クラス1は、ポインタが選択状態であることを示す。なお、親指と人差し指とは指示体であり、非選択状態が指示前の形態、選択状態が指示の形態となる。
 クラス2、3では、手指の形態は、親指又は人差し指の一本の状態であり、ポインタでない状態(非ポインタ)であることを示す。クラス4、5では、手指の形態は、人差し指と中指との二本の状態であり、ポインタでない状態であることを示す。なお、クラス4では日本の指に隙間があり、クラス5では二本の指に隙間がない状態である。クラス6、7では、手指の形態は、人差し指と中指と薬指の三本の状態であり、ポインタでない状態であることを示す。クラス6では三本の指に隙間があり、クラス7では、三本の指に隙間がない状態である。クラス8では、手指の形態は、人差し指と中指と薬指と小指の四本の状態であり、ポインタでない状態であることを示す。クラス9では、指の付け根の横からのアングルであり、ポインタでない状態(非ポインタ)にある。クラス10では、手指の形態は、手を握ったげんこつの状態であり、ポインタでない状態であることを示す。クラス11では、クラス0~10以外の手指の形態を示し、ポインタでない状態であることを示す。クラス12では、手指以外の形態を示し、ポインタでない状態であることを示す。なお、図8ではクラス0、クラス1は右手の親指と人差し指の部分画像を示しているが、左手の親指と人差し指の部分画像も同様にクラス分けできる。
 ポインタ選択部64は、形態認識部63が出力する、クラス分けした形態、及び指先の検出位置に基づいて、部分画像の中から、形態がポインタ形状に該当するものだけを抽出し、ポインタに該当するクラス、及び指先の位置を出力する。本実施形態で、ポインタとして使用するのは、クラス0とクラス1のみであり、形態認識部63から他のクラスの形態が出力された場合は、ポインタ選択部64は、形態認識部63の出力を無視して、何も出力しない。これにより、対象検出部61で誤検出された指先は、全て除外できる。
 ポインタ情報生成部65は、ポインタ選択部64から出力されたクラスが、クラス0かクラス1かにより、ポインタが選択状態にあるか、非選択状態にあるかを示す情報(ポインタの状態を示す情報)を生成し、指先の位置(検出位置)に基づくポインタの位置、及びポインタの状態を示す情報を出力する。図2に例示したポインタ位置(親指と人差し指との間の緑色の指示点の位置)は、ポインタ情報生成部65によって決定することができる。ポインタ情報送信部66は、ポインタの位置及びポインタの状態を示すポインタ情報を制御部51へ出力する。制御部51は、ポインタの状態を示す情報をアプリケーション等に提供する。これにより、記号などの表示情報が生成される。あるいは制御部51は、ポインタ情報を非接触ユーザインタフェースの外部のホストデバイス等に出力することができる。
 上述のように、制御部51(又は画像処理部60)は、手指の画像を入力した場合に、第1の指と第2の指とが接触する第1の形態(クラス1)か、または、第1の指と第2の指とが離れる第2の形態(クラス0)かを含む分類情報を出力するように生成された学習モデル(形態認識部63)に、手指の画像を入力し、当該学習モデルが出力する分類情報に応じて、第1の指の指先と第2の指の指先との間に位置するポインタの表示態様を切り替えることができる。
(実施形態2)
 前述の実施形態1では、対象検出部61で検出した指先の先端を指先位置と定めてポインタ位置を決定していた。実施形態2では、ユーザ(人間)の主観に合わせた指先位置の検出について説明する。
 図9A、図9B、図9C及び図9Dは指先位置とポインタ位置の組み合わせの一例を示す図である。図9Aは、親指と人差し指とを離した状態であり、図9Bは、親指と人差し指とを接触した状態であり、図9A及びBは、いずれも、2本の指先のうちの一方の先端を指先位置とし、そこにポインタを重ねた状態(ポインタ位置とする)を示す。図9A及びBの場合、一方の指先の先端にポインタ位置があり、ユーザにとって違和感を生じる。また、2本の指のどちらの先端を指先位置として選択するかでポインタの位置が比較的大きく変わってしまうので、さらにユーザに違和感を与えることになる。
 一方、図9C及び図9Dのように、指先位置を2本の指の間の置くことで、ポインタの位置が比較的大きく変わってしまうという問題を解消してユーザの違和感を取り除くことができる。また、2本の指先のうちの一方の先端を指先位置とする場合に比べて、違和感が生じることが極めて少なく、ユーザの主観に合わせた指先位置とすることができる。以下、具体的に説明する。
 図10は実施形態2の対象検出部61の構成の一例を示す図であり、図11は2本の指の中点を決定する方法を示す図である。対象検出部61は、対象先端検出部611、オフセット算出部612、指先領域両端検出部613、領域中点算出部614、及び指先位置算出部615を備える。
 対象先端検出部611は、カメラ10から取得した手指の画像上をサーチ軸方向に探索し、画像上で複数の指先が存在する場合、サーチ軸の最も上流側に相当する指先を指先先端として検出し、検出した指先先端位置(画像上の座標)を指先領域両端検出部613に出力する。図11の例では、親指と人差し指の2本の指先が存在し、そのうち、サーチ軸の最も上流側の人差し指の指先を指先先端として検出している。
 オフセット算出部612は、対象先端検出部611で使用したサーチ軸方向の情報を元に、サーチ軸方向の単位ベクトルに所定の係数を乗じてオフセットベクトル(図11の「オフセット」で示すベクトル)を算出する。
 指先領域両端検出部613は、指先先端位置を始点としてオフセットベクトルを加算した終点位置を通り、サーチ軸と直交する方向(垂直方向)に、垂直方向軸を設定し、設定した垂直方向軸上で、親指及び人差し指それぞれの外側境界(親指及び人差し指を含む指領域の両端境界)を検出する。図11では、親指の外側境界、及び人差し指の外側境界が垂直方向軸上で検出されている。
 領域中点算出部614は、外側境界(両端境界)の中点の位置(座標)を算出する。
 指先位置算出部615は、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、第1の指示体及び第2の指示体の端部によって代表される位置を指定位置として定める。この指先位置を基準にしてポインタを設定することができる。
 具体的には、指先位置算出部615は、領域中点算出部614が算出した中点を始点として、オフセット算出部612が算出したオフセットベクトルを減算して終点を指先位置として算出する。図11では、親指の指先と人差し指の指先との間の位置に指先位置が設定されている。具体的には、親指の指先と人差し指の指先との間の中間位置に指先位置が設定されている。設定された指先位置にポインタの位置を設定してもよい。
 前述のように、制御部51(又は画像処理部60)は、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定することができる。この場合、複数の指示体が撮影された画像は、TOFカメラによって撮影された画像でもよい。
 より具体的には、複数の指示体が撮影された画像は、手指の画像であり、第1の指示体の端部及び第2の指示体の端部は、第1の指の指先及び第2の指の指先であり、制御部51(又は画像処理部60)は、第1の指の指先と第2の指の指先との中間位置にポインタを設定することができる。
 指先位置を2本の指の間の置くことで、複数の指のうちのいずれか1本の指先をポインタとして選択するかによってポインタの位置が比較的大きく変わってしまうという問題を解消してユーザの違和感を取り除くことができる。また、2本の指先のうちの一方の先端を指先位置とする場合に比べて、違和感が生じることが極めて少なく、ユーザの主観に合わせた指先位置とすることができる。
 また、制御部51(又は画像処理部60)は、取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、検出した先端から所定距離だけ離隔しサーチ軸と直交する直交軸を設定し、設定した直交軸に沿って探索して第1の指及び第2の指それぞれの外側境界を検出し、検出した外側境界の中点を特定し、特定した中点に基づいてポインタを設定することができる。
 例えば、制御部51(又は画像処理部60)は、特定した中点からサーチ軸と平行な方向に所定距離だけオフセットした位置にポインタを設定してもよい。これにより、ユーザにとって、より自然と感じるポインタ位置を設定できる。
 制御部51(又は画像処理部60)は、設定された指先位置を、表示装置20で表示されるアプリケーション画面上に表示することができる。この場合、指先位置は、カメラ10から取得した画像の指先部分の画像に指先位置を表す点や円などの記号を合成表示してアプリケーション画面上に表示してもよく、あるいは、指先位置を表す点や円などの記号だけをアプリケーション画面上に表示してもよい。また、カメラ10から取得した手指の画像全体を半透明で透けるようにしてオーバレイ表示してもよい。オーバレイする画像は、カメラ10から取得した手指の画像ではなく、予め準備した代表的な指先画像(実写又は図)を認識した指先の形状に応じて選定して表示してもよい。カメラ10から取得した手指の画像は、ワイプ画像として表示画面の一部に小さく表示してもよい。
 図12は実施形態2の画像処理部60の処理手順の一例を示す図である。以下では、処理の主体を便宜上、画像処理部60として説明する。画像処理部60は、カメラ10から手指の画像を取得し(S11)、取得した画像上をサーチ軸方向に探索して指先先端を検出する(S12)。画像処理部60は、サーチ軸方向に沿ったオフセットベクトルを算定する(S13)。画像処理部60は、指先先端位置にオフセットベクトルを加算した位置からサーチ軸と垂直方向に垂直方向軸を設定する(S14)。
 画像処理部60は、設定した垂直方向軸に沿って探索して指(例えば、親指と人差し指の2本の指)の外側境界(両端境界)を検出する(S15)。画像処理部60は、2本の指の外側境界の中点を特定して指先位置を算出する(S16)。画像処理部60は、手指の画像から指先位置の部分画像を切り出す(S17)。
 画像処理部60は、部分画像をクラス分類し(S18)、クラス分けされた形態が、ポインタ形状(形態)に該当するか否かを判定する(S19)。ポインタ形状に該当しない場合(S19でNO)、画像処理部60は、ステップS11以降の処理を続ける。ポインタ形状に該当する場合(S19でYES)、画像処理部60は、ポインタの状態を示す情報(ポインタの位置、ポインタの状態を示す情報)を生成し(S20)、生成したポインタ情報を出力し(S21)、処理を終了する。
 上述のように、実施形態2によれば、2本の指が接触せずに接近してる状態(離れている状態)において、2本の指の指先を代表する指先位置を2本の指の間の位置、例えば、2本の指の中間に設定することで、ユーザの主観に合わせた指先位置とすることができる。これにより、ユーザの主観に合わせた非接触ユーザインタフェースを実現できる。
(実施形態3)
 ピンチ動作をする際、2本の指の動きは、親指よりも人差し指の方が大きくなる傾向がある。手指を動かすユーザの感覚に合わせるには、ピンチ動作の前後で指先位置が大きく変動しないのが望ましい。そこで、実施形態3では、実施形態2のように、指先位置を2本の指の間に設定する構成に代えて、相対的に動きが小さい親指に指先位置を設定する構成について説明する。
 図13は実施形態3の対象検出部61の構成の一例を示す図であり、図14は親指の腹部分を決定する方法を示す図である。実施形態3と実施形態2とを対比すると、対象検出部61は、指先領域両端検出部613及び領域中点算出部614に代えて、指先両端検出部616、親指選択部617及び親指腹位置算出部618を備える。対象先端検出部611、オフセット算出部612、及び指先位置算出部615は、実施形態2と同様である。
 指先両端検出部616は、垂直方向軸を所定の幅だけ両方向に向かって走査して、2本の指(親指と人差し指)それぞれの両端境界を検出する。図14に示すように、指先両端検出部616は、一方の本の指(親指)の両端境界P1、P2を検出し、他方の指(人差し指)の両端境界P3、P4を検出している。
 親指選択部617は、2本の指それぞれの両端境界間の距離を比較し、距離が長い方の指を親指として選択する。一般に人差し指よりも親指の方が太いので、指の両端境界の距離によって親指を選定することが可能である。図14の例では、両端境界P1~P2間の距が、両端境界P3~P4間の距離よりも長いので、両端境界P1~P2側の指を親指として選択できる。
 親指腹位置算出部618は、指先両端検出部616で検出した両側境界の中から、親指に相当する側の指の両端境界のうち、他方の指に近い側の両端境界(図14の例では、P2)を親指の腹位置とする。
 指先位置算出部615は、親指の腹位置(図14の例では、P2)から、オフセットベクトルを減算することで、指先位置を算出する。
 制御部51(又は画像処理部60)は、親指の腹にポインタを設定することができる。相対的に動きが小さい親指に指先位置を設定することにより、手指を動かすユーザの感覚に合わせることができる。
 図15は実施形態3の画像処理部60の処理手順の一例を示す図である。以下では、処理の主体を便宜上、画像処理部60として説明する。画像処理部60は、カメラ10から手指の画像を取得し(S31)、取得した画像上をサーチ軸方向に探索して指先先端を検出する(S32)。画像処理部60は、サーチ軸方向に沿ったオフセットベクトルを算定する(S33)。画像処理部60は、指先先端位置にオフセットベクトルを加算した位置からサーチ軸と垂直方向に垂直方向軸を設定する(S34)。
 画像処理部60は、設定した垂直方向軸に沿って探索して、2本の指それぞれの両端境界位置を検出する(S35)。画像処理部60は、2本の指それぞれの両端境界間の距離を比較して、距離が長い方の指を親指として選択し、親指に相当する側の指の両端境界のうち、他方の指に近い側の両端境界を親指の腹位置として算出し、親指の腹位置から、オフセットベクトルを減算することで、指先位置を算出する(S36)。画像処理部60は、手指の画像から指先位置の部分画像を切り出す(S37)。
 画像処理部60は、部分画像をクラス分類し(S38)、クラス分けされた形態が、ポインタ形状(形態)に該当するか否かを判定する(S39)。ポインタ形状に該当しない場合(S39でNO)、画像処理部60は、ステップS31以降の処理を続ける。ポインタ形状に該当する場合(S39でYES)、画像処理部60は、ポインタの状態を示す情報(ポインタの位置、ポインタの状態を示す情報)を生成し(S40)、生成したポインタ情報を出力し(S41)、処理を終了する。
 上述のように、実施形態3によれば、2本の指が接触せずに接近してる状態(離れている状態)において、2本の指の指先を代表する指先位置を、親指の腹位置を基準として設定することで、ピンチ動作の前後で指先位置の変動を相対的に小さくすることができ、ユーザの主観に合わせた指先位置とすることができる。これにより、ユーザの主観に合わせた非接触ユーザインタフェースを実現できる。
(実施形態2、3の応用形態)
 図16は実施形態3の応用形態1の指先位置の設定を示す図である。図14に示す、指先位置の設定方法は、親指の腹位置(図14の例では、P2)から、オフセットベクトルを減算することで、指先位置を算出する構成であった。図16に示す例では、親指の両端境界P1と人差し指の両端境界P3との垂直方向軸上の中点と、親指の腹位置P2との間の、指先位置の配置区間の所望の位置から、オフセットベクトルを減算することで、指先位置を算出する。これにより、ユーザの主観に合わせて、親指の腹位置と、中点との間でバランスを取りながら指先位置を設定できる。
 図17は実施形態3の応用形態2の親指の選択を示す図である。図14に示す、親指選択方法は、2本の指の太さ(両端境界間の距離)を比較する構成であった。図17に示す例では、2本の指の先端の曲率を比較し、曲率(曲率半径)の大きい方の指を親指として選択する。
 親指選択部617は、学習モデルを用いて構成できる。当該学習モデルは、親指先端の画像、人差し指先端の画像、画像が親指であるか人差し指であるかを示す教師データを用いて当該学習モデルを機械学習させることで学習モデルを生成する。また、手のひら全体の骨格認識をした上で、親指を選択するようにしてもよい。
 図18は実施形態2又は3の応用形態3の指先位置の調整を示す図である。当初の指先位置を始点として、サーチ軸方向に所要距離だけ位置をオフセットさせる調整ベクトル(オフセットベクトル)を加えた終点位置をオフセットした指先位置とすることができる。指先位置を当初の指先位置から所要距離だけオフセットすることにより、ユーザにとって、より自然と感じるポインタ位置を設定できる。なお、オフセットさせる所要距離は、予め定めた固定値でもよいが、指の太さ、あるいは切り出し画像(部分画像)のサイズに応じて増減させてもよい。また、ユーザの好みを反映させるため、所要距離をユーザが設定する操作を受け付けるようにしてもよい。
 制御部51(又は画像処理部60)は、設定したポインタの位置を所要の位置に移動させるための移動量を設定する操作を受け付けてもよい。これにより、ユーザにとって、より自然と感じるポインタ位置を設定できる。
 また、図示していないが、制御部51(又は画像処理部60)は、ポインタの複数の位置を候補位置として選択可能に表示し、表示された候補位置の中からポインタの位置を選定する操作を受け付けてもよい。これにより、ユーザそれぞれの好みに応じて、より自然と感じるポインタ位置を設定できる。
 指先位置を調整する際、調整ベクトルの加算処理は、対象検出部61で行ってもよく、あるいはポインタ情報生成部65で行ってもよい。この場合、対象検出部61は、サーチ軸の方向に関する情報をポインタ情報生成部65へ出力する。ポインタ情報生成部65は、手指の形態がクラス0であるかクラス1であるかのクラス分類結果を取得しているので、例えば、親指と人差し指とが接触している形態の場合、調整量(移動距離)を減ずる等の、形態に応じた指先位置の微調整が可能となる。
(実施形態4)
 前述の実施形態では、手指の形態を認識するために用いる学習モデルに対して、認識した指先位置を含む切り出し画像(部分画像)を入力している。入力される部分画像のサイズは、学習モデルの学習で使用した学習用の部分画像のサイズと同等であることが認識精度を向上させる観点から望ましい。例えば、極度に範囲が狭く、写っている手指の全体が捉えられていないと、指先であることの判別が困難になる。また、逆に範囲が広すぎても、認識対象である手指(特に指先)が小さく写ってしまい、訓練データに用いた部分画像のパターンと異なってしまう。一方、カメラに映る指先は、指先とカメラとの位置関係により大きく変化する。切り出し画像のサイズを固定にすると、カメラと指先(手指)との位置関係によって、認識できる指先の空間的な範囲が変動する可能性がある。実施形態4では、指先の形態認識の精度を改善する方法について説明する。
 図19は実施形態4の対象検出部61の構成の一例を示す図である。図10に示す実施形態2の対象検出部61との相違点は、先端距離検出部619及びサイズ算出部610を備える点である。先端距離検出部619は、TOFカメラ(カメラ10)から距離画像を取得する。距離画像は、ピクセル毎に距離に関する情報を有している。TOFカメラを使用する場合には、形態認識部63が使用する学習モデルは、手指の画像に代えて、距離画像を用いて機械学習すればよい。なお、TOFカメラに代えて、距離を計測できるものであれば、レーザや音波等を用いる測距センサを用いてもよい。ただしそれらを使用する場合は、手指の像を得るためのカメラを併用する必要がある。
 先端距離検出部619は、対象先端検出部611で検出した先端位置に関する情報を取得する。先端距離検出部619は、距離画像上の先端位置の近傍の領域での各ピクセルの距離の総和を計算し、計算した総和を当該領域内のピクセル数で除算することにより、当該領域の距離の平均値を算出し、算出した平均値を先端距離としてサイズ算出部610へ出力する。
 サイズ算出部610は、先端距離検出部619から取得した先端距離に基づいて、切出し画像サイズを算出する。切り出し画像サイズは、例えば、先端距離の逆数に所定値を乗算して算出できる。切り出し画像のサイズは、カメラからの距離に反比例させることにより、カメラからの手指の遠近により見かけのサイズが変わっても、指先の形態の認識精度を高く保つことができる。なお、切出し画像のサイズを距離に反比例させる構成に代えて、直線で近似しても指先の形態認識の精度を改善できる。
 上述のように、制御部51(又は画像処理部60)は、手指までの距離を特定し、特定した距離に基づいて学習モデル(形態認識部63)に入力する画像のサイズを調整し、調整後の画像を当該学習モデルに入力することができる。これにより、指先の形態認識の精度を改善させることができる。
 オフセット算出部612は、サイズ算出部610から切り出し画像サイズを取得し、対象先端検出部611で使用したサーチ軸の方向に関する情報を元に、切り出し画像サイズと所定の係数を乗じてオフセットベクトルを算出する。以降の処理は、実施形態2と同様であるので説明は省略する。
 指先位置算出部615は、領域中点算出部614で算出した中点から、オフセットベクトルを減算し、さらにサーチ軸方向に、切り出し画像サイズと所定の係数を乗じた調整ベクトルを加算して、指先位置を算出してもよい。
(実施形態5)
 指先位置は、認識誤差により手指画像(カメラ画像)のフレームごとにばらつきやすく、表示画面に表示されるポインタが小刻みに震える(微小変動する)場合がある。対策として、ポインタ位置の移動平均を算出してポインタ位置を補正することが考えられる。しかし、移動平均を算出する過程で過去のフレームでの指先位置が反映されるため、ポインタの表示が実際の指の動きよりも遅れ、ユーザにとって違和感を生じる場合がある。かかる違和感は、指先の移動が速いほど顕著である。実施形態5では、ポインタが微小変動して違和感が生じる要因を除外する方法について説明する。
 図20は実施形態5のポインタ情報生成部65の構成の一例を示す図である。ポインタ情報生成部65は、座標記憶部651、指先速度算出部652、移動平均レンジ調整部653、移動平均算出部654、及びポインタ状態情報生成部655を備える。ポインタ情報生成部65は、ポインタの移動を滑らかなものとするため、過去のポインタ座標の履歴を用いて、ポインタ位置の移動平均を算出してポインタの位置(座標)を補正する。また、ポインタ情報生成部65は、移動平均を算出する際に、指先の移動速度に応じて、移動平均のレンジを調整することで、ポインタの位置の微小変動の抑制と、ポインタの移動遅れの軽減を両立する。以下、具体的に説明する。
 ポインタ情報生成部65には、ポインタ選択部64から出力される、指先の位置、及びポインタの形態(ポインタに該当するクラス)が入力される。
 座標記憶部651は、ポインタ選択部64から出力される、指先の位置を、ポインタ座標の履歴として順次記憶する。
 指先速度算出部652は、座標記憶部651に記憶されたフレーム毎の指先の位置に基づいて、異なるフレーム間での指先の位置の変化に基づいて指先の速度をフレーム毎に算出する。
 移動平均レンジ調整部653は、移動平均のレンジを保持するとともに、入力された指先速度に基づいて、レンジを調整する。レンジは、移動平均を算出する際のフレーム数である。レンジの調整は、例えば、指先の速度が所定の閾値よりも大きい場合には、前のフレームで用いたレンジの数から1を減算して新たなレンジ数とし、指先の速度が所定の閾値よりも小さい場合には、前のフレームで用いたレンジの数に1を加算して新たなレンジ数とする。また、移動平均を算出する際のレンジには、上限値と下限値を設けてもよい。なお、調整するレンジは、±1としているが、指先の速度の変化が大きい場合には、調整するレンジを±1に限定しなくてもよく、例えば、調整するレンジを±2としてもよい。
 移動平均算出部654は、ポインタ選択部64からポインタ(指先)の位置(現在の座標)が入力されると、移動平均レンジ調整部653から調整後のレンジを取得するとともに、座標記憶部651に記憶されたポインタ座標の履歴を読み出し、移動平均を算出し、補正後のポインタ(指先)の座標を出力する。
 ポインタ状態情報生成部655は、ポインタ選択部64から出力されたポインタの形態(分類されたクラスがクラス0かクラス1か)に基づいて、ポインタが選択状態にあるか、非選択状態にあるかを示す情報(ポインタの状態情報)を生成して、ポインタ情報送信部66に出力する。
 図21は移動平均のレンジ調整の一例を示す図である。前のフレーム(フレーム3)での移動平均算出のレンジを3とし、フレーム3から遡ってフレーム3、2、1の3つのフレームについて、それぞれの指先の位置に基づいて指先位置の移動平均を算出したとする。次のフレーム(フレーム4)における指先速度が閾値より大きい場合、前のフレームで用いたレンジから1を減算するので、レンジ数は2(=3-1)となり、フレーム4、3それぞれの指先の位置に基づいて指先位置の移動平均を算出する。また、次のフレームにおける指先速度が閾値より小さい場合、前のフレームで用いたレンジに1を加算するので、レンジ数は4(=3+1)となり、フレーム4、3、2、1それぞれの指先の位置に基づいて指先位置の移動平均を算出する。
 上述のように、制御部51(又は画像処理部60)は、設定したポインタの位置の履歴をフレームに対応付けて記憶し、指先(指示体の端部)の移動速度に応じて移動平均を算出するためのフレーム数を調整し、調整したフレーム数分のフレームでのポインタの位置の移動平均を算出し、算出した移動平均に基づいてポインタの位置を設定してもよい。これにより、ポインタの位置の微小変動や、ポインタの移動の遅れによる違和感が生じる要因を除外することができる。
 図22は実施形態5の画像処理部60の処理手順の一例を示す図である。以下では、処理の主体を便宜上、画像処理部60として説明する。画像処理部60は、ポインタの位置及び形態を取得し(S51)、ポインタの位置を履歴情報として記憶する(S52)。画像処理部60は、指先(ポインタ)の速度を算出し(S53)、指先の速度に応じて、ポインタ位置(指先位置)の移動平均算出のためのレンジを調整する(S54)。
 画像処理部60は、調整したレンジでポインタ位置の移動平均を算出する(S55)。画像処理部60は、算出したポインタの位置、状態を示す情報を出力し(S56)、処理を終了する。
 上述のように、指先速度に応じて、指先位置の移動平均を算出する際のレンジを調整するので、ポインタの表示が実際の指の動きよりも遅れ、ユーザに違和感を生じる要因を除外できる。また、フレーム毎にレンジの調整を±1としているので、ポインタ位置が不連続に変化することを抑制できる。
(実施形態6)
 指先位置を検出する際に用いるサーチ軸の方向と指先が向いている方向とがずれていると、検出した指先位置がユーザの主観からずれたものになりやすい。実施形態6では、指先が向いている方向にサーチ軸の方向を補正する方法について説明する。
 図23は実施形態6の画像処理部60の構成の一例を示す図である。前述の実施形態との相違点は、サーチ軸補正部67を備える点である。サーチ軸補正部67は、対象検出部61から初期サーチ軸方向(補正前のサーチ軸の方向に関する情報)を取得し、サーチ軸方向(補正後のサーチ軸の方向に関する情報)を対象検出部61へ出力する。
 図24はサーチ軸補正部67の構成の一例を示す図であり、図25はサーチ軸の補正方法を示す図である。図24に示すように、サーチ軸補正部67は、対象先端検出部671、オフセット算出部672、指先領域両端検出部673、接線検出部674、及び二等分方向算出部675を備える。対象先端検出部671、オフセット算出部672、及び指先領域両端検出部673は、実施形態2の対象検出部61の対象先端検出部611、オフセット算出部612、及び指先領域両端検出部613と同様である。
 対象先端検出部671は、カメラ10から取得した手指の画像上を初期サーチ軸方向に探索し、画像上で複数の指先が存在する場合、初期サーチ軸の最も上流側に相当する指先を指先先端として検出し、検出した指先先端位置(画像上の座標)を指先領域両端検出部673に出力する。
 オフセット算出部672は、対象先端検出部671で使用した当初サーチ軸方向の情報を元に、当初サーチ軸方向の単位ベクトルに所定の係数を乗じてオフセットベクトルを算出する。
 指先領域両端検出部673は、指先先端位置を始点としてオフセットベクトルを加算した終点位置を通り、当初サーチ軸と直交する方向(垂直方向)に、垂直方向軸を設定し、設定した垂直方向軸上で、親指及び人差し指それぞれの両端境界(図25の境界点)を検出する。
 接線検出部674は、両端境界(境界点)のそれぞれに対して近傍の指のエッジをトレースし、境界点におけるエッジの接線を検出する。図25では、親指の境界点(人差し指と反対側の指のエッジ)を通る指エッジの接線と、人差し指の境界点(親指と反対側の指のエッジ)を通る指エッジの接線とが検出されている。
 二等分方向算出部675は、検出した2つの接線がなす角を2等分する直線を導出し、導出した直線の指先の方向と反対方向の単位ベクトルを補正したサーチ軸方向として算出する。二等分方向算出部675は、補正したサーチ軸の方向に関する情報を対象検出部61へ出力する。
 初期サーチ軸方向と指先の方向とが大きくずれている場合には、上述の手続きを一度実行しただけではサーチ軸方向と指先の方向のずれが残ることがある。その場合でも、補正したサーチ軸方向を当初サーチ軸方向として、上述の各処理を繰り返して、サーチ軸を順次更新することで、サーチ軸の方向を指先の方向に近づけることができる。
 上述のように、制御部51(又は画像処理部60)は、取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、検出した先端から所定距離だけ離隔し、サーチ軸と直交する直交軸(垂直方向軸)を設定し、設定した直交軸に沿って探索して第1の指(例えば、親指)及び第2の指(例えば、人差し指)それぞれの第1の外側境界点及び第2の外側境界点を検出し、検出した第1の外側境界点で第1の指の境界に接する第1の接線(例えば、親指エッジの接線)と、検出した第2の外側境界点で第2の指の境界に接する第2の接線(例えば、人差し指エッジの接線)とに基づいて、サーチ軸の方向を補正してもよい。これにより、検出した指先位置がユーザの主観からずれることを抑制できる。
 実施形態6によれば、指先位置の検出前に、サーチ軸の方向を指先が向いている方向に近づけることができ、ユーザの主観からのずれを抑制することができる。
(実施形態7)
 実施形態6は、指先の方向に基づいてサーチ軸の方向を補正する構成であったが、サーチ軸は、他の方法でも設定することができる。例えば、カメラ10のフレームレートが高い(大きい)場合、隣接するフレームの画像変化は小さく、指先の方向はほとんど変化しないことが期待される。実施形態7では、前フレームの情報を利用してサーチ軸を設定する方法について説明する。
 図26は実施形態7の画像処理部60の構成の一例を示す図である。図23に示す実施形態6の画像処理部60との相違点は、追跡検出部68及びサーチ設定記憶部69を備える点である。
 サーチ設定記憶部69は、前フレームで検出された指先毎の指先位置、前フレームで使用したサーチ軸方向(サーチ軸の方向に関する情報)を記録する。ただし、サーチ設定記憶部69は、ポインタ選択部64からポインタに該当しないクラスを取得した場合には、対応する指先の指先位置とサーチ軸方向の記録を削除する。サーチ設定記憶部69は、記録した前フレームで検出された指先毎の指先位置、前フレームで使用したサーチ軸方向を、次のフレームで追跡検出部68へ出力する。なお、指先毎の指先位置、サーチ軸方向が記録されていない場合には、追跡検出部68は動作しない。すなわち、追跡検出部68は、前フレームの情報(指先位置、サーチ軸方向)が存在する場合には動作し、存在しない場合には動作しない。
 図27は追跡検出部68の構成の一例を示す図である。追跡検出部68は、対象先端検出部681、オフセット算出部682、指先領域両端検出部683、領域中点算出部684、及び指先位置算出部685を備える。対象先端検出部681、オフセット算出部682、指先領域両端検出部683、領域中点算出部684、及び指先位置算出部685は、対象検出部61の対象先端検出部611、オフセット算出部612、指先領域両端検出部613、領域中点算出部614、及び指先位置算出部615と同様である。
 追跡検出部68は、前フレームで検出した指先位置と前フレームで使用したサーチ軸方向を参照して現フレームにおいて指先位置を検出する。具体的には、前フレームで認識した指先の方向で指先の先端を探索する際には、前フレームで検出した指先位置の近傍に探索範囲を限定する。探索する際には、前フレームで使用したサーチ軸方向を使用することができる。指先位置の近傍に探索範囲を限定するのは、隣接するフレーム間で指先の位置や方向はあまり変わらないと考えられるからである。
 サーチ設定記憶部69に前フレームの情報(指先位置、サーチ軸方向)が記録されていない場合には、追跡検出部68に代わって対象検出部61が指先位置を検出する。
 上述のように、制御部51(又は画像処理部60)は、ポインタの位置を設定した際に特定した指先の位置及びサーチ軸の方向をフレームに対応付けて記憶し、直近のフレームに対応付けられた指先の位置及びサーチ軸の方向が記憶されている場合、指先の位置を基準にしてサーチ軸に沿って探索して指先の先端を検出することにより、ポインタの位置を設定してもよい。
 実施形態7によれば、右手又は左手に限らず、サーチ軸は1つのみでよく、前述の実施形態のように2つのサーチ軸を用いて探索する必要がなく、探索に要する処理時間や処理労力を低減できる。
 なお、カメラの視野に新たに現れる指先を検出するために、2つ以上のサーチ軸を使用する探索も併用する必要がある。この場合、前フレームの情報を使用した探索をまず行い、次に2方向以上のサーチ軸を使った探索を行うことができる。2方向以上のサーチ軸を使った探索では、前フレームの情報を使用した探索で検出した指先位置を重複して検出しないように、その近傍の領域を探索対象から除外すればよい。
(実施形態8)
 図28は指先先端の検出漏れの一例を示す図である。前述の実施形態の対象先端検出部611は、カメラ10から取得した手指の画像上をサーチ軸方向に探索し、画像上で複数の指先が存在する場合、サーチ軸の最も上流側に相当する指先を指先先端として検出し、検出した指先先端位置を指先領域両端検出部613に出力する。しかし、図28に示すように、手指の画像内に複数の指先が写っている場合があり、複数の指先の状態(ユーザによる手指の動作や姿勢など)によっては、サーチ軸方向の最上流の点を検出できるが、つまんだ形態などの必要な個所を見落とす可能性がある。実施形態8では、複数の指先先端を検出する方法について説明する。
 図29は実施形態8の対象先端検出部611の構成の一例を示す図であり、図30は指先先端の検出方法を示す図である。図29に示すように、対象先端検出部611は、輪郭抽出部6111、サーチ軸投影部6112、及び局所上流点検出部6113を備える。
 輪郭抽出部6111は、カメラ画像(手指の画像)に存在する対象物(手指)の輪郭を抽出し、抽出した輪郭の各画素(手指の外周上の画素)の座標リストを生成する。輪郭抽出部6111は、生成した座標リストをサーチ軸投影部6112へ出力する。
 サーチ軸投影部6112は、取得した座標リストにある各画素をサーチ軸上に投影して、サーチ軸上の座標に変換する。サーチ軸上への投影は、サーチ軸に対して垂直方向に投影する。輪郭上(外周上)の座標をサーチ軸に投影することにより、図30に示すように、手指の外周上の位置とサーチ軸方向の位置とが関数によって対応付けられる。図30では、横軸が外周上位置を示し、縦軸がサーチ軸方向の位置を示す2次元座標系で関数を表すグラフが描かれている。
 局所上流点検出部6113は、外周上位置を探索して、サーチ軸方向の位置を求め、予め設定した閾値以上の差分が存在する谷部分を指先先端の位置として検出する。図30に示すように、関数を表すグラフにおいて、指先を示す上流点には谷部分が相当する。適切な閾値を設定して、谷部分の両側に閾値以上の山部分があるような谷部分のすべてを局所的な上流点として検出する。
 図30に示すように、親指の先端に対応する谷部Pは、その両側に閾値以上の山部分が存在するので、局所上流点として検出される。また、人差し指の先端(A点)は、親指の谷部分と一体化しているので、局所的上流点から除外する。ここで、親指の先端ではなく人差し指の先端が除外されるのは、親指の先端の方がサーチ軸方向のより上流側にあるからである。中指の先端(B点)に対応する谷部分P′は、その両側に閾値以上の山部分が存在するので、局所上流点として検出される。また、薬指の先端に対応する谷部は、その両側に閾値以上の山部分が存在しないので、局所的上流点から除外する。
 上述のように、制御部51(又は画像処理部60)は、取得した手指の画像に基づいて手指の輪郭を特定し、特定した輪郭上の各点と所定方向のサーチ軸との距離とを対応付け、対応付けられた距離の極小点(局所的上流点)に対応する輪郭上の点を指先先端として特定してもよい。
 実施形態8によれば、つまんだ形態などの必要な個所がサーチ軸方向の最上流にない場合でも確実に指先として検出できる。さらに、A点のような別の指先と一体化しているような箇所や、ノイズで偶発的に生じる微小な突起を検出することを抑制できる。
 前述の各実施形態で説明した非接触ユーザインタフェースは、様々な分野における非接触ユーザインタフェースとして用いることができる。このような分野として一例を挙げれば、情報処理装置、車載機器、医療機器などで使用されるアプリケーションや操作装置が含まれる。以下では、車載機器で使用されるケースについて説明する。
 図31は車載インタフェース装置の一例を示す図である。車載インタフェース装置は、ナビゲーション画面を非接触で操作する非接触ユーザインタフェース機能を備える。車載インタフェース装置は、前述の画像処理装置50、カメラ10を備えてもよい。
 図31に示すように、ユーザ(運転者)は、ステアリングと自身との間の位置で親指と人差し指とを動かすと、不図示のカメラ10で撮影した手指の画像が画像処理装置50に送信される。カメラ10は、車内の適切な個所に設置すればよい。画像処理装置50は、ナビゲーション画面上に手指の画像を重畳表示する。この場合、手指の画像は、例えば、半透明にすることにより、ナビゲーション画面上の文字などの記号の視認性を維持できる。例えば、ユーザが、親指と人差し指とを離した状態で、親指と人差し指とを移動させることにより、ナビゲーション画面上の手指の画像を「履歴」アイコンの上に移動させることができる。そして、ユーザが親指と人差し指とをピンチする(つまむ)ことで、「履歴」アイコンを操作することができる。ナビゲーション画面上の他のアイコンも同様である。
 手指の画像は、カメラ10で撮影された画像そのものでもよく、手指の画像を加工した画像を表示してもよい。加工した画像は、例えば、予め準備した代表的な手指像(実写でもよく、図でもよい)、ポインタを表す記号を含む。また、手指の画像を半透明で重畳表示する構成に代えて、ワイプ画像としてナビゲーション画面の一部に小さく表示してもよい。
 制御部51(又は画像処理部60)は、取得した画像(手指の画像)又は取得した画像を加工した画像と、ポインタを表す記号とを表示画面に合成表示してもよい。
 制御部51(又は画像処理部60)は、第1の指と第2の指とが離れた状態の手指の画像を表示画面に表示し、第1の指の指先と第2の指の指先との間にポインタを表示し、第1の指の指先と第2の指の指先とを接触させる動作を受け付けた場合、ポインタによって指示される表示画面上の操作を実行してもよい。手指の画像は、例えば、半透明で表示画面上に表示してもよい。これにより、表示画面上の各種操作アイコンの視認性を高めることができる。
 上述のように、車載インタフェース装置は、制御部を備え、制御部は、手指が撮影された画像を取得し、取得した画像に基づき特定される第1の指の指先と第2の指の指先との間の位置に、第1の指の指先と第2の指の指先によって代表される位置を指定するポインタを設定し、車載機器操作用画面上に表示されたポインタによる操作を受け付ける。
 なお、手指の画像が「履歴」アイコン上に移動した時点で、例えば、音声で「ピンチ動作をすれば、履歴を選択できます。」の如く出力することで、ユーザは、車両前方から視界を逸らすことなくナビゲーションを操作することができ、安全運転に寄与する。図31の例では、ナビゲーション画面を例に挙げて説明したが、車載機器はナビゲーション装置に限定されるものではなく、AV機器など他の車載機器でもよい。
 上述の実施形態では、指示体として手指を例に挙げて説明したが、指示体は手指に限定されるものではない。例えば、鉗子などの手術用具、手指を模擬するロボットハンドなどであってもよい。また、手指に関しても、手袋をした状態などの裸の手指ではない状態であっても同様の効果を得ることができる。
 (付記1)コンピュータプログラムは、コンピュータに、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、処理を実行させる。
 (付記2)コンピュータプログラムは、付記1のコンピュータプログラムにおいて、前記複数の指示体が撮影された画像は、手指の画像であり、前記第1の指示体の端部及び前記第2の指示体の端部は、第1の指の指先及び第2の指の指先であり、コンピュータに、前記第1の指の指先と前記第2の指の指先との中間位置に前記ポインタを設定する、処理を実行させる。
 (付記3)コンピュータプログラムは、付記2のコンピュータプログラムにおいて、前記第1の指及び前記第2の指のいずれか一方は、親指であり、コンピュータに、前記親指の腹に前記ポインタを設定する、処理を実行させる。
 (付記4)コンピュータプログラムは、付記2又は付記3のコンピュータプログラムにおいて、コンピュータに、取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、前記先端から所定距離だけ離隔し前記サーチ軸と直交する直交軸を設定し、設定した直交軸に沿って探索して第1の指及び第2の指それぞれの外側境界を検出し、検出した外側境界の中点を特定し、特定した中点に基づいて前記ポインタを設定する、処理を実行させる。
 (付記5)コンピュータプログラムは、付記4のコンピュータプログラムにおいて、コンピュータに、前記中点から前記サーチ軸と平行な方向に所定距離だけオフセットした位置に前記ポインタを設定する、処理を実行させる。
 (付記6)コンピュータプログラムは、付記1から付記5のいずれかのコンピュータプログラムにおいて、コンピュータに、設定したポインタの位置を所要の位置に移動させるための移動量を設定する操作を受け付ける、処理を実行させる。
 (付記7)コンピュータプログラムは、付記1から付記6のいずれかのコンピュータプログラムにおいて、コンピュータに、前記ポインタの複数の位置を候補位置として選択可能に表示し、表示された候補位置の中からポインタの位置を選定する操作を受け付ける、処理を実行させる。
 (付記8)コンピュータプログラムは、付記2から付記5のいずれかのコンピュータプログラムにおいて、コンピュータに、手指の画像を入力した場合に、第1の指と第2の指とが接触する第1の形態か、または、第1の指と第2の指とが離れる第2の形態かを含む分類情報を出力するように生成された学習モデルに、手指の画像を入力し、前記学習モデルが出力する分類情報に応じて、前記第1の指の指先と前記第2の指の指先との間に位置するポインタの表示態様を切り替える、処理を実行させる。
 (付記9)コンピュータプログラムは、付記8のコンピュータプログラムにおいて、コンピュータに、手指までの距離を特定し、特定した距離に基づいて前記学習モデルに入力する画像のサイズを調整し、調整後の画像を前記学習モデルに入力する、処理を実行させる。
 (付記10)コンピュータプログラムは、付記1から付記9のいずれかのコンピュータプログラムにおいて、コンピュータに、取得した画像又は前記画像を加工した画像と、前記ポインタを表す記号とを表示画面に合成表示する、処理を実行させる。
 (付記11)コンピュータプログラムは、付記2から付記10のいずれかのコンピュータプログラムにおいて、コンピュータに、第1の指と第2の指とが離れた状態の手指の画像を表示画面に表示し、前記第1の指の指先と前記第2の指の指先との間にポインタを表示し、前記第1の指の指先と前記第2の指の指先とを接触させる動作を受け付けた場合、前記ポインタによって指示される前記表示画面上の操作を実行する、処理を実行させる。
 (付記12)コンピュータプログラムは、付記1から付記11のいずれかのコンピュータプログラムにおいて、コンピュータに、設定したポインタの位置の履歴をフレームに対応付けて記憶し、前記指示体の端部の移動速度に応じて移動平均を算出するためのフレーム数を調整し、調整したフレーム数分のフレームでのポインタの位置の移動平均を算出し、算出した移動平均に基づいて前記ポインタの位置を設定する、処理を実行させる。
 (付記13)コンピュータプログラムは、付記2から付記5のいずれかのコンピュータプログラムにおいて、コンピュータに、取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、前記先端から所定距離だけ離隔し、前記サーチ軸と直交する直交軸を設定し、設定した直交軸に沿って探索して第1の指及び第2の指それぞれの第1の外側境界点及び第2の外側境界点を検出し、検出した第1の外側境界点で前記第1の指の境界に接する第1の接線と、検出した第2の外側境界点で前記第2の指の境界に接する第2の接線とに基づいて前記サーチ軸の方向を補正する、処理を実行させる。
 (付記14)コンピュータプログラムは、付記2から付記5のいずれかのコンピュータプログラムにおいて、コンピュータに、ポインタの位置を設定した際に特定した指先の位置及びサーチ軸の方向をフレームに対応付けて記憶し、直近のフレームに対応付けられた指先の位置及びサーチ軸の方向が記憶されている場合、前記指先の位置を基準にして前記サーチ軸に沿って探索して指先の先端を検出することにより、前記ポインタの位置を設定する、処理を実行させる。
 (付記15)コンピュータプログラムは、付記2から付記5のいずれかのコンピュータプログラムにおいて、コンピュータに、取得した手指の画像に基づいて手指の輪郭を特定し、特定した輪郭上の各点と所定方向のサーチ軸との距離とを対応付け、前記距離の極小点に対応する前記輪郭上の点を指先先端として特定する、処理を実行させる。
 (付記16)画像処理装置は、制御部を備え、前記制御部は、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する。
 (付記17)画像処理装置は、付記16の画像処理装置において、前記制御部は、前記複数の指示体がTOFカメラで撮影された画像を取得する。
 (付記18)画像処理方法は、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する。
 (付記19)車載インタフェース装置は、制御部を備え、前記制御部は、複数の指示体が撮影された画像を取得し、取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定し、車載機器操作用画面上に表示された前記ポインタによる操作を受け付ける。
 各実施形態に記載した事項は相互に組み合わせることが可能である。また、請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載してもよい。
 10 カメラ
 20 表示装置
 50 画像処理装置
 51 制御部
 52 通信部
 53 メモリ
 54 操作部
 55 記憶部
 56 コンピュータプログラム
 57 学習モデル
 58 記録媒体読取部
 59 記録媒体
 60 画像処理部
 61 対象検出部
 610 サイズ算出部
 611 対象先端検出部
 6111 輪郭抽出部
 6112 サーチ軸投影部
 6113 局所上流点検出部
 612 オフセット算出部
 613 指先領域両端検出部
 614 領域中点算出部
 615 指先位置算出部
 616 指先両端検出部
 617 親指選択部
 618 親指腹位置算出部
 619 先端距離検出部
 62 画像切り出し部
 63 形態認識部
 64 ポインタ選択部
 65 ポインタ情報生成部
 651 座標記憶部
 652 指先速度算出部
 653 移動平均レンジ調整部
 654 移動平均算出部
 655 ポインタ状態情報生成部
 66 ポインタ情報送信部
 67 サーチ軸補正部
 671 対象先端検出部
 672 オフセット算出部
 673 指先領域両端検出部
 674 接線検出部
 675 二等分方向算出部
 68 追跡検出部
 681 対象先端検出部
 682 オフセット算出部
 683 指先領域両端検出部
 684 領域中点算出部
 685 指先位置算出部
 69 サーチ設定記憶部
 100 非接触ユーザインタフェースシステム
 

Claims (19)

  1.  コンピュータに、
     複数の指示体が撮影された画像を取得し、
     取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、
     処理を実行させるコンピュータプログラム。
  2.  前記複数の指示体が撮影された画像は、手指の画像であり、
     前記第1の指示体の端部及び前記第2の指示体の端部は、第1の指の指先及び第2の指の指先であり、
     コンピュータに、
     前記第1の指の指先と前記第2の指の指先との中間位置に前記ポインタを設定する、
     処理を実行させる請求項1に記載のコンピュータプログラム。
  3.  前記第1の指及び前記第2の指のいずれか一方は、親指であり、
     コンピュータに、
     前記親指の腹に前記ポインタを設定する、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  4.  コンピュータに、
     取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、
     前記先端から所定距離だけ離隔し前記サーチ軸と直交する直交軸を設定し、
     設定した直交軸に沿って探索して第1の指及び第2の指それぞれの外側境界を検出し、
     検出した外側境界の中点を特定し、
     特定した中点に基づいて前記ポインタを設定する、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  5.  コンピュータに、
     前記中点から前記サーチ軸と平行な方向に所定距離だけオフセットした位置に前記ポインタを設定する、
     処理を実行させる請求項4に記載のコンピュータプログラム。
  6.  コンピュータに、
     設定したポインタの位置を所要の位置に移動させるための移動量を設定する操作を受け付ける、
     処理を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
  7.  コンピュータに、
     前記ポインタの複数の位置を候補位置として選択可能に表示し、
     表示された候補位置の中からポインタの位置を選定する操作を受け付ける、
     処理を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
  8.  コンピュータに、
     手指の画像を入力した場合に、第1の指と第2の指とが接触する第1の形態か、または、第1の指と第2の指とが離れる第2の形態かを含む分類情報を出力するように生成された学習モデルに、手指の画像を入力し、
     前記学習モデルが出力する分類情報に応じて、前記第1の指の指先と前記第2の指の指先との間に位置するポインタの表示態様を切り替える、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  9.  コンピュータに、
     手指までの距離を特定し、
     特定した距離に基づいて前記学習モデルに入力する画像のサイズを調整し、
     調整後の画像を前記学習モデルに入力する、
     処理を実行させる請求項8に記載のコンピュータプログラム。
  10.  コンピュータに、
     取得した画像又は前記画像を加工した画像と、前記ポインタを表す記号とを表示画面に合成表示する、
     処理を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
  11.  コンピュータに、
     第1の指と第2の指とが離れた状態の手指の画像を表示画面に表示し、
     前記第1の指の指先と前記第2の指の指先との間にポインタを表示し、
     前記第1の指の指先と前記第2の指の指先とを接触させる動作を受け付けた場合、前記ポインタによって指示される前記表示画面上の操作を実行する、
     処理を実行させる請求項2から請求項5のいずれか一項に記載のコンピュータプログラム。
  12.  コンピュータに、
     設定したポインタの位置の履歴をフレームに対応付けて記憶し、
     前記指示体の端部の移動速度に応じて移動平均を算出するためのフレーム数を調整し、
     調整したフレーム数分のフレームでのポインタの位置の移動平均を算出し、
     算出した移動平均に基づいて前記ポインタの位置を設定する、
     処理を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
  13.  コンピュータに、
     取得した手指の画像に対して、所定方向のサーチ軸に沿って探索して指先の先端を検出し、
     前記先端から所定距離だけ離隔し、前記サーチ軸と直交する直交軸を設定し、
     設定した直交軸に沿って探索して第1の指及び第2の指それぞれの第1の外側境界点及び第2の外側境界点を検出し、
     検出した第1の外側境界点で前記第1の指の境界に接する第1の接線と、検出した第2の外側境界点で前記第2の指の境界に接する第2の接線とに基づいて前記サーチ軸の方向を補正する、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  14.  コンピュータに、
     ポインタの位置を設定した際に特定した指先の位置及びサーチ軸の方向をフレームに対応付けて記憶し、
     直近のフレームに対応付けられた指先の位置及びサーチ軸の方向が記憶されている場合、前記指先の位置を基準にして前記サーチ軸に沿って探索して指先の先端を検出することにより、前記ポインタの位置を設定する、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  15.  コンピュータに、
     取得した手指の画像に基づいて手指の輪郭を特定し、
     特定した輪郭上の各点と所定方向のサーチ軸との距離とを対応付け、
     前記距離の極小点に対応する前記輪郭上の点を指先先端として特定する、
     処理を実行させる請求項2に記載のコンピュータプログラム。
  16.  制御部を備え、
     前記制御部は、
     複数の指示体が撮影された画像を取得し、
     取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、
     画像処理装置。
  17.  前記制御部は、
     前記複数の指示体がTOFカメラで撮影された画像を取得する、
     請求項16に記載の画像処理装置。
  18.  複数の指示体が撮影された画像を取得し、
     取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定する、
     画像処理方法。
  19.  制御部を備え、
     前記制御部は、
     複数の指示体が撮影された画像を取得し、
     取得した画像に基づき特定される第1の指示体の端部と第2の指示体の端部との間の位置に、前記第1の指示体及び第2の指示体の端部によって代表される位置を指定するポインタを設定し、
     車載機器操作用画面上に表示された前記ポインタによる操作を受け付ける、
     車載インタフェース装置。
     
PCT/JP2023/016793 2022-05-02 2023-04-28 コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置 WO2023214542A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-076295 2022-05-02
JP2022076295A JP2023165361A (ja) 2022-05-02 2022-05-02 コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置

Publications (1)

Publication Number Publication Date
WO2023214542A1 true WO2023214542A1 (ja) 2023-11-09

Family

ID=88646480

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/016793 WO2023214542A1 (ja) 2022-05-02 2023-04-28 コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置

Country Status (2)

Country Link
JP (1) JP2023165361A (ja)
WO (1) WO2023214542A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248067A (ja) * 2011-05-30 2012-12-13 Canon Inc 情報入力装置、その制御方法、および制御プログラム
US20150035746A1 (en) * 2011-12-27 2015-02-05 Andy Cockburn User Interface Device
US20150062006A1 (en) * 2012-01-27 2015-03-05 Amazon Technologies, Inc. Feature tracking for device input
US20150220149A1 (en) * 2012-02-14 2015-08-06 Google Inc. Systems and methods for a virtual grasping user interface
JP2016520946A (ja) * 2014-01-07 2016-07-14 ソフトキネティック ソフトウェア 人間対コンピュータの自然な3次元ハンドジェスチャベースのナビゲーション方法
US10802600B1 (en) * 2019-09-20 2020-10-13 Facebook Technologies, Llc Virtual interactions at a distance
US20210026455A1 (en) * 2018-03-13 2021-01-28 Magic Leap, Inc. Gesture recognition system and method of using same
US20210405760A1 (en) * 2020-06-29 2021-12-30 Facebook Technologies, Llc Integration of artificial reality interaction modes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248067A (ja) * 2011-05-30 2012-12-13 Canon Inc 情報入力装置、その制御方法、および制御プログラム
US20150035746A1 (en) * 2011-12-27 2015-02-05 Andy Cockburn User Interface Device
US20150062006A1 (en) * 2012-01-27 2015-03-05 Amazon Technologies, Inc. Feature tracking for device input
US20150220149A1 (en) * 2012-02-14 2015-08-06 Google Inc. Systems and methods for a virtual grasping user interface
JP2016520946A (ja) * 2014-01-07 2016-07-14 ソフトキネティック ソフトウェア 人間対コンピュータの自然な3次元ハンドジェスチャベースのナビゲーション方法
US20210026455A1 (en) * 2018-03-13 2021-01-28 Magic Leap, Inc. Gesture recognition system and method of using same
US10802600B1 (en) * 2019-09-20 2020-10-13 Facebook Technologies, Llc Virtual interactions at a distance
US20210405760A1 (en) * 2020-06-29 2021-12-30 Facebook Technologies, Llc Integration of artificial reality interaction modes

Also Published As

Publication number Publication date
JP2023165361A (ja) 2023-11-15

Similar Documents

Publication Publication Date Title
US11314335B2 (en) Systems and methods of direct pointing detection for interaction with a digital device
US10732725B2 (en) Method and apparatus of interactive display based on gesture recognition
US9529523B2 (en) Method using a finger above a touchpad for controlling a computerized system
US8345008B2 (en) Apparatus and method for providing adaptive on-screen keyboard
US9477874B2 (en) Method using a touchpad for controlling a computerized system with epidermal print information
US20130069867A1 (en) Information processing apparatus and method and program
US9916043B2 (en) Information processing apparatus for recognizing user operation based on an image
US20150363038A1 (en) Method for orienting a hand on a touchpad of a computerized system
US20100245245A1 (en) Spatial input operation display apparatus
US7999957B2 (en) Input position setting method, input position setting device, input position setting program, and information input system
US10331333B2 (en) Touch digital ruler
US11017258B2 (en) Alignment of user input on a screen
US9639195B2 (en) Method using finger force upon a touchpad for controlling a computerized system
WO2023214542A1 (ja) コンピュータプログラム、画像処理装置、画像処理方法及び車載インタフェース装置
US20220050528A1 (en) Electronic device for simulating a mouse
JP2021009552A (ja) 情報処理装置、情報処理方法およびプログラム
Schmieder et al. Thumbs up: 3D gesture input on mobile phones using the front facing camera
US11789543B2 (en) Information processing apparatus and information processing method
WO2021161769A1 (ja) 情報処理装置、情報処理方法、およびプログラム
US20230229380A1 (en) Input display control device, input display control method, and input display system
US20240160294A1 (en) Detection processing device, detection processing method, information processing system
Ahn et al. A VR/AR Interface Design based on Unaligned Hand Position and Gaze Direction
KR101629737B1 (ko) 문자 입력 장치, 문자 입력 방법, 문자 입력을 위한 컴퓨터 판독가능 기록매체 및 컴퓨터 프로그램
JP2022050225A (ja) 画像処理装置及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23799472

Country of ref document: EP

Kind code of ref document: A1