WO2015141260A1 - 手書き音楽記号認識装置およびプログラム - Google Patents

手書き音楽記号認識装置およびプログラム Download PDF

Info

Publication number
WO2015141260A1
WO2015141260A1 PCT/JP2015/050875 JP2015050875W WO2015141260A1 WO 2015141260 A1 WO2015141260 A1 WO 2015141260A1 JP 2015050875 W JP2015050875 W JP 2015050875W WO 2015141260 A1 WO2015141260 A1 WO 2015141260A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
stroke
information
vectors
point
Prior art date
Application number
PCT/JP2015/050875
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
Priority claimed from JP2014054010A external-priority patent/JP6437205B2/ja
Priority claimed from JP2014070029A external-priority patent/JP6437208B2/ja
Priority claimed from JP2014070018A external-priority patent/JP6444041B2/ja
Application filed by 株式会社河合楽器製作所 filed Critical 株式会社河合楽器製作所
Priority to US14/911,963 priority Critical patent/US10725650B2/en
Publication of WO2015141260A1 publication Critical patent/WO2015141260A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/30Character recognition based on the type of data
    • G06V30/304Music notations
    • 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
    • G06F3/0488Interaction 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 using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction 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 using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/373Matching; Classification using a special pattern or subpattern alphabet
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10GREPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
    • G10G1/00Means for the representation of music
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/005Non-interactive screen display of musical or status data
    • G10H2220/015Musical staff, tablature or score displays, e.g. for score reading during a performance.
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/091Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith
    • G10H2220/096Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith using a touch screen
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/091Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith
    • G10H2220/101Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters
    • G10H2220/121Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters for graphical editing of a musical score, staff or tablature
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/441Image sensing, i.e. capturing images or optical patterns for musical purposes or musical control purposes

Definitions

  • the present invention relates to a handwritten music symbol recognition apparatus and program, and more particularly to a technique suitable for use in recognizing a handwritten input by a user using an input means such as a finger or a pen.
  • a tablet terminal that supports handwriting input detects trajectory information obtained by scanning a touch panel with an input means such as a finger or a pen, and recognizes a symbol or a figure based on the detected information.
  • Patent Document 1 discloses the following method. A specific symbol or figure for character conversion is registered in advance. When a character is input into a character frame for inputting a handwritten character for character recognition, the character is converted into a target character based on the registered information.
  • Patent Document 2 discloses a method for extracting a straight line component from input coordinate data.
  • Patent Document 3 discloses the following method. The starting point and the ending point of the writing stroke are connected by a virtual line segment, and the feature amount of the bent portion that occurs in that case is detected. Then, character recognition is performed by comparing the detected feature quantity with dictionary information.
  • the plurality of coordinate data are set as straight line data connecting the coordinates of the start point and the coordinates of the end point.
  • the coordinates of the end point of the coordinate data before the coordinate data and the coordinates of the first start point of the coordinate data within the predetermined range are a straight line. Extract and store as a component. Straight line data is generated while sequentially checking such straight line components. For this reason, the amount of calculation required for recognizing the whole input symbol increases.
  • the present invention has been made in view of the above problems, and an object of the present invention is to make it possible to easily and accurately recognize a symbol handwritten by a user using an input means such as a hand or a pen.
  • the handwritten music symbol recognition apparatus includes a touch information acquisition unit that acquires a position of the input unit on the screen as position information each time the input unit moves until the input unit touches the screen and leaves. Based on the position information acquired by the touch information acquisition means, vector information creation means for creating a vector attribute indicating a movement trajectory of the input means as vector information, and the input means leaves after touching the screen Stroke information including the vector information for a series of one or a plurality of the vectors created by the vector information creation means based on the position information until 1 and for each object to be recognized Stroke information storage means for storing one or a plurality of stroke information, and the input means Stroke feature quantity deriving means for deriving a stroke feature quantity that is a trajectory of movement of the input means from touching the surface until leaving, based on the vector information included in the stroke information;
  • the program of the present invention includes a touch information acquisition step of acquiring the position of the input step on the screen as position information every time the input step moves until the input step touches the screen and leaves, and the touch information acquisition step.
  • a vector information creating step for creating a vector attribute indicating a movement trajectory of the input step as vector information based on the position information obtained by the step, and a period from when the input step touches the screen until it leaves.
  • Stroke information including the vector information for a series of one or more vectors created by the vector information creation step based on the position information, one or more for each object to be recognized
  • the stroke information storage step for storing the stroke information and the input step touch the screen.
  • a stroke feature amount deriving step of deriving a stroke feature amount, which is a trajectory of movement of the input step until it leaves, based on the vector information included in the stroke information, And
  • an input means such as a hand or a pen.
  • FIG. 1 is a block diagram illustrating an example of a schematic configuration of hardware of a handwritten music symbol recognition apparatus.
  • FIG. 2 is a block diagram showing an example of a functional schematic configuration of the handwritten music symbol recognition apparatus.
  • FIG. 3 is a diagram illustrating an example of the relationship between vectors, strokes, and objects.
  • FIG. 4 is a diagram for explaining an example of a method for classifying vectors.
  • FIG. 5 is a diagram illustrating an example of the start point coordinates, end point coordinates, vector ID, and stroke feature amount of each vector of the Seigno mark.
  • FIG. 6 is a diagram illustrating an example of an inscribed rectangle of an S-shaped stroke and center coordinates of the inscribed rectangle.
  • FIG. 1 is a block diagram illustrating an example of a schematic configuration of hardware of a handwritten music symbol recognition apparatus.
  • FIG. 2 is a block diagram showing an example of a functional schematic configuration of the handwritten music symbol recognition apparatus.
  • FIG. 3 is a diagram illustrating an example
  • FIG. 7 is a diagram illustrating an example of a relationship between a vector ID and a connection type.
  • FIG. 8 is a diagram illustrating an example of the relationship between the vector ID and the rotation direction.
  • FIG. 9 is a diagram illustrating an example of the rotation angle.
  • FIG. 10 is a flowchart for explaining an example of the operation of the written music symbol recognition apparatus.
  • FIG. 11 is a diagram illustrating an example of vector information.
  • FIG. 12 is a diagram illustrating an example of the position ID array of the Seigno mark object.
  • FIG. 13 is a flowchart for explaining an example of the process in step S107 of FIG.
  • FIG. 14 is a flowchart for explaining an example of the process in step S131 of FIG.
  • FIG. 15 is a diagram showing four symbols composed of two vectors.
  • FIG. 16 is a diagram illustrating an example of a relationship between two vector IDs and symbols.
  • FIG. 17 is a diagram illustrating an example of symbols to be recognized.
  • FIG. 18 is a flowchart for explaining an example of processing for recognizing a symbol by a change in the rotation direction.
  • FIG. 19 is a diagram for explaining an example of a method of recognizing which symbol of a circle or an ellipse is a stroke to be recognized.
  • FIG. 20 is a diagram illustrating an example of points where the rotation direction of “S” changes.
  • FIG. 21 is a diagram for explaining an example of a method for determining whether or not the symbol of the stroke to be recognized is a “grant symbol”.
  • FIG. 22 is a diagram illustrating an example of a touch display screen.
  • FIG. 22 is a diagram illustrating an example of a touch display screen.
  • FIG. 23A is a diagram illustrating an example of a stroke of a sharp symbol.
  • FIG. 23B is a diagram illustrating an example of a database for sharp symbols.
  • FIG. 24A is a diagram illustrating an example of the center of gravity of each stroke constituting the sharp symbol.
  • FIG. 24B is a diagram illustrating an example of the positional relationship between the centers of gravity of the strokes constituting the sharp symbol.
  • FIG. 25 is a diagram for explaining a first example of a method for collecting a plurality of minute vectors.
  • FIG. 26 is a flowchart for explaining a first example of a grouping process for grouping a plurality of minute vectors.
  • FIG. 27 is a diagram for explaining a second example of a method for collecting a plurality of minute vectors.
  • FIG. 28 is a flowchart for explaining a second example of a grouping process for grouping a plurality of minute vectors.
  • FIG. 29A is a diagram for explaining an example of a method of grouping vectors according to directions.
  • FIG. 29B is a diagram for explaining a third example of a method for collecting a plurality of minute vectors.
  • FIG. 30 is a flowchart for explaining a third example of the grouping process for grouping a plurality of minute vectors.
  • FIG. 31A is a diagram for explaining a first form of a fourth example of a method for collecting a plurality of minute vectors.
  • FIG. 31B is a diagram for explaining a second form of the fourth example of the method for collecting a plurality of minute vectors.
  • FIG. 29A is a diagram for explaining an example of a method of grouping vectors according to directions.
  • FIG. 29B is a diagram for explaining a third example of a method for collecting a plurality of minute vectors.
  • FIG. 32 is a flowchart for explaining a fourth example of a grouping process for grouping a plurality of minute vectors.
  • FIG. 33 is a flowchart illustrating an example of the process of step S321 of FIG.
  • FIG. 34 is a diagram illustrating an example of a relationship between a vector ID of two adjacent vectors, a temporary storage vector ID, and an X-axis flag.
  • FIG. 35 is a diagram illustrating an example of the relationship among the X-axis flag, the temporary storage vector ID, the threshold upper limit, and the threshold lower limit.
  • FIG. 36 is a diagram for explaining an example of a method for recognizing one stroke divided into a plurality of strokes.
  • FIG. 37 is a flowchart for explaining an example of a method for recognizing one stroke divided into a plurality of strokes.
  • FIG. 1 is a block diagram illustrating an example of a schematic configuration of hardware of the handwritten music symbol recognition apparatus 10.
  • FIG. 2 is a block diagram illustrating an example of a functional schematic configuration of the handwritten music symbol recognition apparatus 10.
  • the handwritten music symbol recognition apparatus 10 is configured by a tablet terminal, for example.
  • the handwritten music symbol recognition device 10 is not limited to a tablet terminal as long as it is a terminal device including a touch panel.
  • the handwritten music symbol recognition apparatus 10 may be configured by, for example, a PC (Personal Computer) that can use a touch panel as a user interface.
  • PC Personal Computer
  • 11 is a bus
  • 12 is ROM
  • 13 is RAM
  • 14 is CPU
  • 15 is flash memory
  • 16 is a network interface
  • 17 is a touch display
  • 18 is an audio output device
  • 19 is a MIDI output device.
  • a program for controlling the overall operation of the handwritten music symbol recognition apparatus 10 is stored in the flash memory 15 or the ROM 12.
  • the CPU 14 reads out this program, expands it in the RAM 13, and executes it. Thereby, operation
  • the touch display 17 is a computer display provided with a touch panel.
  • the user performs handwriting input on the touch display 17 using input means such as a finger or a pen.
  • the handwritten music symbol recognition apparatus 10 recognizes an object (symbol) input by handwriting.
  • the network interface 16 is for saving the information of the recognized object (symbol) as a file in other hardware, or reading the saved symbol information file.
  • the audio output device 18 is for creating music performance information from the recognized object (symbol) and outputting the sound.
  • the MIDI output device 19 is for creating MIDI information from the recognized object (symbol) so that the MIDI information can be output.
  • the handwritten music symbol recognition device 10 includes a touch information acquisition unit 21, a vector information creation unit 22, a stroke feature amount derivation unit 23, an object generation unit 24, a stroke recognition unit 25, and an object recognition unit 26. Have.
  • the touch information acquisition unit 21 is realized by using, for example, the touch display 17, the RAM 13, the CPU 14, the flash memory 15, and the like.
  • the touch information acquisition unit 21 has an API (Application Programming Interface) that acquires position information each time an input unit such as a finger or a pen moves.
  • API Application Programming Interface
  • the vector information creation unit 22, the stroke feature amount derivation unit 23, the object generation unit 24, the stroke recognition unit 25, and the object recognition unit 26 are realized by using, for example, the RAM 13, the CPU 14, the flash memory 15, and the like.
  • the object 30 of the Seigno mark is composed of an S-shaped stroke 31 (stroke 0), a linear stroke 32 (stroke 1), and two point strokes 33 and 34 (strokes 2 and 3).
  • stroke 0 S-shaped stroke 31
  • stroke 1 linear stroke 32
  • stroke 2 point strokes 33 and 34
  • the vector information creation unit 22 uses the following nine types of vectors (“lower ⁇ upper”, “upper ⁇ lower”, “lower left ⁇ upper right”, “upper right ⁇ lower left) in order to simplify processing. ”,“ Left ⁇ Right ”,“ Right ⁇ Left ”,“ Upper left ⁇ Lower right ”,“ Lower right ⁇ Upper left ”,“ Point ”).
  • the vector information creation unit 22 calculates a slope a of a straight line connecting the start point and the end point from the start point (x1, y1) and the end point (x2, y2) of the vector by the following equation: Calculate from (1). Then, the vector information creation unit 22 determines the vector ID in consideration of the positional relationship between the coordinates x1, y1, x2, and y2. In FIG. 4, the lower side of the Y axis is “+”. The right side of the X axis is “+”.
  • the vector information creation unit 22 classifies the vectors according to the following (A) to (K).
  • FIG. 5 is a diagram showing an example of the start point coordinates, end point coordinates, vector ID, and stroke feature quantity of each vector of the Seigno mark in FIG.
  • the Y coordinate y2 of the end point is smaller than the Y coordinate y1 of the start point (y2 ⁇ y1).
  • FIG. 5 shows the feature amounts of the strokes 31 to 34 in the Seigno mark of FIG. 3 as an example of the stroke feature amount.
  • Start point end point distance When the starting point end point distance in the stroke is smaller than the specified value, the stroke is considered as a closed figure like a circle. On the other hand, when the starting point end point distance in the stroke is larger than the specified value, the stroke is considered to be a figure that is not closed like an arc line.
  • the coordinates of the start point of the first vector of the stroke are (x1, y1), and the coordinates of the end point of the final vector of the stroke are (x2, y2).
  • the stroke feature amount deriving unit 23 obtains the start point / end point distance D se by the following equation (2).
  • the start point / end point distance D se is a distance of a straight line connecting the start point of the first vector of the stroke and the end point of the final vector of the stroke.
  • the coordinates of the four points of the inscribed rectangle of the stroke and the center coordinates are used to obtain the positional relationship between the strokes in a plurality of strokes.
  • the stroke inscribed rectangle is a rectangle in which the stroke is inscribed.
  • the coordinates of the four points of the inscribed rectangle of the stroke are the coordinates of the four corners of the inscribed rectangle of the stroke.
  • FIG. 6 shows an example of the inscribed rectangle of the S-shaped stroke 31 and the center coordinates of the inscribed rectangle.
  • the rectangular coordinate left is the leftmost X coordinate among the start points or end points of all vectors constituting the S-shaped stroke 31 (see the left column of the inscribed rectangular coordinates in FIG. 5).
  • the rectangular coordinate right is the rightmost X coordinate among the start points or end points of all vectors constituting the S-shaped stroke 31 (see the right column of the inscribed rectangular coordinates in FIG. 5). On the rectangular coordinates, it is the uppermost Y coordinate among the start points or end points of all vectors constituting the S-shaped stroke 31 (see the column above the inscribed rectangular coordinates in FIG. 5).
  • the center coordinates are represented by an X coordinate intermediate between the rectangular coordinates left and the right rectangular coordinates, and an intermediate Y coordinate above and below the rectangular coordinates (the center X and the center Y of the inscribed rectangular coordinates in FIG. 5). Column).
  • FIG. 7 is a diagram illustrating an example of a relationship between a vector ID and a connection type.
  • the stroke feature quantity deriving unit 23 obtains a vector ID (vector ID) of a vector that is a connection type determination target, a vector ID of the vector next to the vector (next vector ID), and a relationship 700 shown in FIG. Based on the above, the connection type of the vector for which the connection type is determined is determined.
  • the relationship 700 shown in FIG. 7 is registered in advance in the handwritten music symbol recognition apparatus 10 as a table, for example.
  • the vector ID of the first vector is 1 (down ⁇ up), and the vector ID of the next vector is 8 (right). Bottom ⁇ top left). Therefore, from FIG. 7, the connection type of the first vector of the S-shaped stroke 31 (stroke 0) is 1 (obtuse angle).
  • the first vector is a vector whose vector index is 0, and the next vector is a vector whose vector index is 1.
  • the point at which the rotation direction of the stroke changes is a clue for identifying the symbol. For example, in the first stroke of “f”, vectors are smoothly continuous like “S”, and the start point and the end point are separated. “S” has one point where the rotation direction changes. On the other hand, “f” has no point at which the rotation direction changes. Therefore, the stroke recognizing unit 25 can distinguish between “S” and “f” based on the presence or absence of a point where the rotation direction of the stroke changes.
  • FIG. 8 is a diagram illustrating an example of the relationship between the vector ID and the rotation direction.
  • the stroke feature quantity deriving unit 23 obtains a vector ID (the vector ID) of a vector whose rotation direction is to be determined, a vector ID of the vector next to the vector (next vector ID), and a relationship 800 shown in FIG. Based on the above, the rotation direction of the vector whose rotation direction is to be determined is determined. 8 is registered in advance in the handwritten music symbol recognition apparatus 10 as a table, for example.
  • “1” indicates that the rotation direction is clockwise
  • “2” indicates that the rotation direction is counterclockwise
  • “0” indicates that there is no rotation.
  • FIG. 9 shows an example of the rotation angle Deg from the vector whose rotation angle is to be determined to the next vector.
  • the handwritten music symbol recognition apparatus 10 can determine whether the symbol is a circle or a multiple circle from the accumulated rotation angle.
  • the coordinates of the starting point of the vector whose rotation angle is to be determined are (x11, y11), and the coordinates of the end point are (x12, y12). Further, the coordinates of the start point of the vector next to the vector whose rotation angle is to be determined are (x21, y21), and the coordinates of the end point are (x22, y22).
  • the stroke feature quantity deriving unit 23 uses the angle formed by the two vectors as the rotation angle Deg (°) of the vector for which the rotation angle is to be determined with respect to the next vector of the vector. Calculated by Equation (7).
  • the handwritten music symbol recognition apparatus 10 can determine that the bottom symbol is an angle symbol when the highest point Index is near N / 2.
  • the leftmost point Index is 5
  • the rightmost point Index is 8
  • the uppermost point Index is 2
  • the lowest point Index is 11, as shown in FIG.
  • FIG. 10 is a flowchart for explaining an example of the procedure of the music symbol recognition process.
  • the processing of this flowchart is realized by, for example, the CPU 14 developing and executing a program stored in the flash memory 15 in the RAM 13.
  • the touch information acquisition unit 21 determines whether the screen of the touch display 17 is touched. If the result of this determination is that the screen is not touched, a standby state is entered. When the screen is touched, the process proceeds to step S102.
  • step S102 the touch information acquisition unit 21 empties the coordinate array, and then stores the touched coordinates in the coordinate array. After the input unit is touched on the screen, the input unit is moved every time the input unit moves until the input unit completely leaves the screen. This movement process of the input means is performed by storing the coordinates of the moved input means in a coordinate array.
  • the input means is, for example, a finger or a pen.
  • step S103 the touch information acquisition unit 21 determines whether or not it has been touched but left the screen. If the result of this determination is that the input means has not moved away from the screen, processing returns to step S102. Then, whenever the input means moves, the input means is moved in step S102 until the input means completely leaves the screen. As a result of the determination in step S103, when the input means completely leaves the screen, the process proceeds to step S104.
  • step S104 the vector information creation unit 22 and the stroke feature amount derivation unit 23 execute a stroke generation process.
  • the vector information creation unit 22 newly generates stroke information.
  • the vector information creation unit 22 creates the coordinates of a vector having the first coordinate as the start point and the second coordinate as the end point.
  • the vector information creation unit 22 sets the vector ID of the created vector.
  • the vector information creation unit 22 derives the magnitude of the created vector.
  • the vector information creation unit 22 stores vector information (coordinates / vector ID / size) indicating the attributes of the created vector in a vector array of stroke information.
  • the vector information creation unit 22 creates vector information of a vector having the second coordinate as a start point and the third coordinate as an end point, and stores the vector information in a vector array of stroke information.
  • FIG. 11 is a diagram illustrating an example of vector information.
  • FIG. 11 shows vector information of each vector constituting the S-shaped stroke 31 (stroke 0) of FIG. In the S-shaped stroke 31 (stroke 0) in FIG. 3, since there are 13 start points and end points of vectors, 12 pieces of vector information are created.
  • the vector information creation unit 22 creates vector information from all these coordinates and stores it in the stroke information.
  • the stroke feature amount deriving unit 23 derives a stroke feature amount based on the vector information and stores it in the stroke information.
  • step S105 the vector information creation unit 22 determines whether or not the screen of the touch display 17 is touched within a certain time. If the input of the next stroke is started within a predetermined time as a result of this determination, the process returns to step S102. Then, the processing of steps S102 to S104 is performed to create stroke information (vector information, feature amount) of a new stroke.
  • the linear stroke 32 (stroke 1) is input within a predetermined time.
  • a point stroke 33 (stroke 2) is input within a certain time, and a point stroke 34 (stroke 3) is further input within a certain time.
  • the vector information creation unit 22 and the stroke feature amount derivation unit 23 generate stroke information of the stroke every time each stroke is input. If there is no next stroke input within a certain time, the process proceeds to step S106.
  • step S106 the object generation unit 24 performs an object generation process for newly generating one object.
  • the object generation unit 24 stores the stroke information (vector information, feature amount) of the stroke generated so far in the stroke arrangement of the object.
  • information as shown in FIG. 5 is stored in the stroke information storage unit as a table, for example.
  • Information as shown in FIG. 5 is created for each object.
  • illustration of vector size information is omitted for convenience of description.
  • the magnitude of the vector is derived from the coordinates of the start point and the end point of the vector.
  • the vector size need not be included in the vector information.
  • the object generation unit 24 obtains the relative positional relationship (position ID) of each stroke.
  • the position ID is an ID indicating the position of each stroke with respect to the reference stroke.
  • the object generation unit 24 uses the following nine types of position IDs.
  • the vector ID is obtained according to the above-mentioned criteria (A) to (K).
  • the object generator 24 first obtains the position ID of the S-shaped stroke 31 (stroke 0).
  • the S-shaped stroke 31 is the first stroke. Therefore, the object generation unit 24 employs the last point stroke 34 (stroke 3) as a reference stroke.
  • the object generation unit 24 obtains a vector whose starting point is the center coordinate of the inscribed rectangle of the reference point stroke 34 and whose end point is the center coordinate of the inscribed rectangle of the S-shaped stroke 31 whose position ID is to be obtained. .
  • the object generator 24 obtains the position ID of the linear stroke 32 (stroke 1).
  • the object recognition unit 26 adopts the S-shaped stroke 31 (stroke 0) as a reference stroke.
  • the object generation unit 24 obtains a vector whose starting point is the center coordinate of the inscribed rectangle of the reference S-shaped stroke 31 and whose end point is the center coordinate of the inscribed rectangle of the target linear stroke 32 whose position ID is to be obtained. Then, the object generation unit 24 obtains the vector ID of this vector.
  • the object generation unit 24 stores these position IDs in the position ID array of the Seigno mark object as shown in FIG.
  • a reference stroke is referred to as a reference stroke
  • a stroke for which a position ID is obtained is referred to as the stroke.
  • the object generation unit 24 stores the stroke information of the stroke in the stroke arrangement of each stroke of the object. Further, the object generation unit 24 stores the position ID of the stroke in the position ID array of each stroke of the object.
  • step S107 the stroke recognition unit 25 and the object recognition unit 26 perform a stroke / object recognition process.
  • the stroke / object recognition processing after identifying what symbol the stroke constituting the object is, what symbol the object is is recognized.
  • An example of the stroke / object recognition process performed in step S107 of FIG. 10 will be described with reference to the flowchart of FIG.
  • step S131 the stroke recognition unit 25 performs a stroke recognition process for recognizing a stroke. Details of the stroke recognition process will be described later.
  • step S132 the stroke recognition unit 25 determines whether there is another unrecognized stroke. If it is determined that there is an unrecognized stroke, the process returns to step S131. Then, the stroke recognition unit 25 performs a stroke recognition process on the unrecognized stroke. On the other hand, if there is no unrecognized stroke, the process proceeds to step S133.
  • step S133 the object recognition unit 26 performs an object recognition process for recognizing the object. Details of the object recognition processing will be described later. As illustrated in FIG. 13, after the stroke recognition unit 25 recognizes each stroke stored in the object, the object recognition unit 26 recognizes the object.
  • step S ⁇ b> 141 the stroke recognition unit 25 branches the process according to the number of vectors included in the recognition target stroke. If the stroke to be recognized is a stroke composed of one vector, the process proceeds to step S142. If the stroke to be recognized is a stroke composed of two vectors, the process proceeds to step S143. If the stroke to be recognized is another stroke, the process proceeds to step S144.
  • the stroke recognizing unit 25 performs a process for recognizing a stroke composed of one vector. For example, according to the vector ID included in the stroke information of the stroke composed of one vector, the stroke recognizing unit 25 determines that the stroke is a vertical line, a horizontal line, an obliquely upward line, an obliquely upward line, or a point. , Recognize which figure it is. For example, if the vector ID included in the stroke information of the stroke is “lower right ⁇ upper left” or “upper left ⁇ lower right”, the stroke is a diagonally upward line.
  • step S143 the stroke recognition unit 25 performs a process of recognizing a stroke composed of two vectors.
  • a case where four symbols shown in FIG. 15 are recognized will be described as an example.
  • FIG. 16 shows an example of the relationship between two vector IDs and symbols included in stroke information of a stroke composed of two vectors.
  • the vector IDs of two vectors constituting one stroke are shown in the vector 1 ID column and the vector 2 ID column.
  • the symbol of the stroke corresponding to the vector ID of the two vectors is shown in the symbol column corresponding to the vector 1 ID column and the vector 2 ID column.
  • the relationship 1600 shown in FIG. 16 is registered in advance in the handwritten music symbol recognition apparatus 10 as a table, for example. If the combination of the two vector IDs is a combination other than the combination shown in FIG. 16, the stroke recognition unit 25 determines that there is no symbol corresponding to the stroke.
  • the stroke recognition unit 25 determines whether the inscribed rectangle of the stroke is vertically long or horizontally long. If the inscribed rectangle of the stroke is vertically long as a result of this determination, the stroke recognition unit 25 recognizes the stroke as a breath or an accent (see FIG. 15). On the other hand, if the inscribed rectangle of the stroke is horizontally long, the stroke recognition unit 25 recognizes the stroke as a crescendo or a decrescendo (see FIG. 15). In FIG. 15, the center coordinates C of the inscribed rectangle of each stroke (symbol) are shown together with each stroke (symbol).
  • step S ⁇ b> 144 the stroke recognition unit 25 performs other stroke recognition processing (in the case where the stroke is composed of three or more vectors).
  • the process of recognizing the symbols shown in FIG. 17 will be described with reference to the flowchart of FIG.
  • the flowchart in FIG. 18 is a flowchart for explaining an example of the process performed in step S144.
  • step S181 the stroke recognizing unit 25 refers to the rotation direction among the feature quantities of the recognition target stroke, counts the number of times the rotation direction changes, and branches the process according to the number. If the number of changes in the rotation direction of the stroke to be recognized is 0, the process proceeds to step S182. If the number of changes in the rotation direction of the stroke to be recognized is one, the process proceeds to step S183. If the number of changes in the rotation direction of the stroke to be recognized is two, the process proceeds to step S184. In the present embodiment, if the number of changes in the rotation direction of the stroke to be recognized is other than 0, 1, and 2, the stroke recognition unit 25 determines that there is no symbol corresponding to the stroke.
  • step S182 the stroke recognition unit 25 performs a determination other than “S” and “g clef” according to the following procedure.
  • the stroke recognition unit 25 determines whether or not there is an acute point in the stroke to be recognized based on the connection type of the stroke (see FIGS. 5 and 7). As a result of the determination, if there is an acute point in the stroke to be recognized, the stroke recognition unit 25 determines that there is no symbol corresponding to the stroke.
  • the stroke recognition unit 25 obtains the total rotation angle of the strokes to be recognized, and recognizes the symbol based on the result (see FIG. 5).
  • the stroke recognition unit 25 Based on the highest point index of the stroke to be recognized, the stroke recognition unit 25 recognizes that the symbol of the stroke is an upper arc line when the highest point of the stroke is other than the start point and the end point of the stroke ( See FIG. (2-1-1-2) The stroke recognition unit 25 recognizes that the symbol of the stroke is a lower arc line when the highest point of the stroke is the start point or the end point of the stroke based on the highest point Index of the stroke to be recognized (see FIG. 17).
  • the stroke recognizing unit 25 sets the symbol of the stroke to be recognized as (2-1 -2-1) and (2-1-2-2) (see FIG. 5).
  • the stroke recognition unit 25 Based on the highest point index of the stroke to be recognized, the stroke recognition unit 25 recognizes that the symbol of the stroke is an upper arc line when the highest point of the stroke is other than the start point and the end point of the stroke ( See FIG.
  • the stroke recognition unit 25 recognizes that the symbol of the stroke is a lower arc line when the highest point of the stroke is the start point or the end point of the stroke based on the highest point Index of the stroke to be recognized (see FIG. 17).
  • the stroke recognizing unit 25 Based on the leftmost point Index of the stroke to be recognized, the stroke recognizing unit 25 recognizes that the symbol of the stroke is a left arc line when the leftmost point of the stroke is other than the start point and end point of the stroke. (See FIG. 17).
  • the stroke recognition unit 25 Based on the leftmost point Index of the stroke to be recognized, the stroke recognition unit 25 recognizes that the symbol of the stroke is a right arc line when the leftmost point of the stroke is the start point or the end point of the stroke. (See FIG. 17).
  • the stroke recognition unit 25 sets the symbol of the stroke to be recognized as (2-1 -4-1) and (2-1-4-2) (see FIG. 5).
  • the stroke recognizing unit 25 Based on the leftmost point Index of the stroke to be recognized, the stroke recognizing unit 25 recognizes that the symbol of the stroke is a left arc line when the leftmost point of the stroke is other than the start point and end point of the stroke. (See FIG. 17).
  • the stroke recognition unit 25 Based on the leftmost point Index of the stroke to be recognized, the stroke recognition unit 25 recognizes that the symbol of the stroke is a right arc line when the leftmost point of the stroke is the start point or the end point of the stroke. (See FIG. 17).
  • the stroke recognition unit 25 determines that the total rotation angle of the strokes to be recognized is (2-1) and (2-2) If it is outside the range indicated by, the stroke symbol is recognized as a circle or an ellipse. Specifically, the stroke recognition unit 25 recognizes whether a stroke to be recognized is a symbol of a circle or an ellipse as follows.
  • FIG. 19 is a diagram for explaining an example of a method of recognizing which symbol of a circle or an ellipse is a stroke to be recognized.
  • the stroke recognition unit 25 obtains an equation of a straight line 191 connecting the leftmost point and the rightmost point of the recognition target stroke.
  • the length of the straight line 191 is referred to as a major axis.
  • the stroke recognizing unit 25 obtains a leg of a perpendicular line drawn from each point (vector start point and end point) of the stroke to be recognized to a straight line 191.
  • the stroke recognizing unit 25 sets the longest of the lengths of each point of the stroke to be recognized and the foot of the perpendicular to the half minor axis of the ellipse.
  • the straight line 192 is an elliptical semi-minor axis is shown as an example.
  • step S183 the stroke recognizing unit 25 determines whether or not the symbol of the stroke to be recognized is “S”.
  • FIG. 20 is a diagram illustrating an example of a point 201 where the rotation direction of “S” changes.
  • the stroke recognizing unit 25 derives the number of vectors before and after the point 201 where the rotation direction of the recognition target stroke changes. The stroke recognizing unit 25 determines that there is no symbol corresponding to the stroke to be recognized if the number of the derived vectors is less than the number of arcs that can be drawn (three).
  • the stroke recognizing unit 25 determines that the number of vectors before and after the point 201 at which the rotation direction of “S” changes is a number that can draw an arc.
  • the number of vectors is 12, and there are 3 or more. Further, the stroke recognition unit 25 can determine whether the vector is the vector before or after the point 201 where the rotation direction of “S” changes, based on the vector Index, for example.
  • the stroke recognizing unit 25 determines that the absolute value of the total rotation angle of the vector up to the point where the rotation direction of the stroke to be recognized changes and the absolute value of the total rotation angle of the vector after the point are both When the angle is 100 ° or more, the symbol of the stroke to be recognized is recognized as “S”. On the other hand, if not, the stroke recognition unit 25 determines that the symbol of the stroke to be recognized is not “S”.
  • the stroke recognition unit 25 can recognize that the symbol of the stroke to be recognized is “S”.
  • step S184 the stroke recognizing unit 25 determines whether or not the symbol of the stroke to be recognized is a “treble clef”.
  • FIG. 21 is a diagram for explaining an example of a method for determining whether or not the symbol of the stroke to be recognized is a “grant symbol”.
  • the stroke recognizing unit 25 determines that the symbol of the stroke to be recognized is a “treble clef” when all of the following three conditions (U), (V), and (W) are satisfied, and is not so: In this case, it is determined that the symbol of the stroke to be recognized is not a “treble clef”.
  • the second point at which the rotation direction of the stroke to be recognized changes from counterclockwise to clockwise is below the center of the inscribed rectangle of the stroke.
  • the first point 211 is above the center 213 of the inscribed rectangle of the stroke.
  • the second point 212 is below the center 213 of the inscribed rectangle of the stroke. Therefore, the stroke recognition unit 25 determines that the stroke shown in FIG.
  • Condition 1 An object is composed of four strokes of “S”, “upward diagonal line”, “point”, and “point”.
  • Condition 2 The distance between the center of the inscribed rectangle of “S” and the center of the inscribed rectangle of “inclined line to the right” is equal to or less than the threshold (the centers are close to each other).
  • Condition 3 “S” has “dots” on the left and right of the center of the inscribed rectangle of “S” or the center of the inscribed rectangle of “upward diagonal line”.
  • the Y coordinate of the center of the inscribed rectangle of the S-shaped stroke 31 (stroke 0) and the Y coordinate of the center of the inscribed rectangle of the linear stroke 32 (stroke 1) are only 20 apart (see FIG. 5). ). Therefore, these centers can be regarded as being close (condition 2 is satisfied).
  • the difference between the Y coordinate of the center of the inscribed rectangle of the linear stroke 32 (stroke 1) and the Y coordinate of the center of the inscribed rectangle of the point stroke 34 (stroke 3) is 3 (see FIG. 5).
  • the X coordinate of the center of the inscribed rectangle of the linear stroke 32 (stroke 1) is 53 smaller than the X coordinate of the center of the inscribed rectangle of the point stroke 34 (stroke 3) (see FIG. 5). Therefore, the point stroke 34 (stroke 3) is located to the right of the linear stroke 32 (stroke 1).
  • the object recognition unit 26 can recognize that the object to be recognized is a seigno mark.
  • the stroke recognition unit 25 and the object recognition unit 26 wait until the input is completed. To do.
  • the stroke recognition unit 25 performs a process of recognizing an unrecognized stroke and registering it in the object.
  • the unit 26 performs processing for recognizing the object.
  • the handwritten music symbol recognition apparatus 10 performs recognition that can be operated by the user on the screen (touch panel 220) of the touch display 17 in order to issue a recognition start instruction.
  • a button 221 may be displayed.
  • the user operates the recognition execution button 221 after drawing all strokes (ellipses and vertical lines) on the screen of the touch display 17 using the input means.
  • the recognition execution button 221 When the recognition execution button 221 is operated, the stroke recognition unit 25 and the object recognition unit 26 start a stroke / object recognition process.
  • the stroke recognizing unit 25 performs a process of recognizing an unrecognized stroke and registering it in an object, and the object recognizing unit 26 performs a process of recognizing the object.
  • the handwritten music symbol recognition apparatus 10 of the present embodiment displays a staff 222 in advance on the screen of the touch display 17.
  • the object recognizing unit 26 recognizes that the object is a figure (for example, a circle or an ellipse) corresponding to the note, the object recognition unit 26 recognizes the object as a note. Then, the object recognition unit 26 recognizes the pitch of the note based on the position of the recognized note on the staff 222.
  • the object recognition unit 26 recognizes that the object drawn on the screen of the touch display 17 is the half note 223 having the pitch “F”.
  • FIG. 23A is a diagram illustrating an example of a stroke of a sharp symbol.
  • the pound sign “#” is composed of four strokes Stroke1, Stroke2, Stroke3, and Stroke4.
  • FIG. 23B is a diagram showing an example of a database 230 (dictionary data) for sharp symbols.
  • the sharp symbol database 230 (dictionary data) is registered in the handwritten music symbol recognition apparatus 10 in advance.
  • a symbol composed of a plurality of strokes as shown in FIG. 23A has a database (dictionary data) as shown in FIG. 23B.
  • the dictionary data stores what symbol each stroke is.
  • the dictionary data does not store actual coordinate data or vector information created based on the coordinate data.
  • the sharp symbol database 230 stores “upper right diagonal”, “horizontal”, “upper right diagonal”, and “horizontal” as Stroke1.
  • the sharp symbol database 230 stores “horizontal”, “upper right diagonal”, “upper right diagonal”, and “horizontal” as Stroke2.
  • the sharp symbol database 230 stores “vertical”, “vertical”, “vertical”, and “vertical” as Stroke3 and Stroke4.
  • FIG. 24A is a diagram showing an example of the centers of gravity 241, 242, 243, and 244 of the strokes Stroke 1, Stroke 2, Stroke 3, and Stroke 4 shown in FIG. 23A.
  • FIG. 24B is a diagram illustrating an example of the positional relationship 240 of the centroids 241, 242, 243, and 244 of the strokes Stroke 1, Stroke 2, Stroke 3, and Stroke 4 shown in FIG. 23A.
  • the positional relationship 240 shown in FIG. 24B is registered in advance in the handwritten music symbol recognition apparatus 10 as a table, for example.
  • “Upper left”, “Up”, “Up”, “Upper left” are registered as vector directions starting from the center of gravity 242 of the stroke Stroke2 and ending at the center of gravity 243 of the stroke Stroke3 (“2 ⁇ 3” in FIG. 24B). ”).
  • the four combinations arranged horizontally in a row are combinations of symbols of four strokes Stroke1, Stroke2, Stroke3, and Stroke4 that can be taken as a sharp symbol.
  • the three combinations arranged vertically in a line are combinations of the centers of gravity of the four strokes Stroke1, Stroke2, Stroke3, and Stroke4 that can be taken as a sharp symbol.
  • the object recognition unit 26 recognizes that the symbol composed of the four strokes is a sharp symbol.
  • the music symbols are recognized by evaluating the feature points of the vectors constituting the music symbols. Therefore, it is possible to accurately recognize music symbols inputted by handwriting without holding a huge amount of data.
  • the handwritten music symbol recognition apparatus of the present invention can also recognize characters such as “Coda”, numbers, and the like.
  • FIG. 25 is a diagram for explaining a first example of a method for collecting a plurality of minute vectors.
  • FIG. 25 shows an example in which ten minute vectors a1 to a10 are collectively converted into two vectors b1 and b2 having a certain size.
  • first to third vector arrays as vector arrays of stroke information.
  • vector information (coordinates / vector ID / size) of a minute vector is stored.
  • the first vector array is the vector array described in the first embodiment.
  • the third vector array stores vector information of the converted vector.
  • a first example of a grouping process for collecting a plurality of minute vectors will be described with reference to the flowchart of FIG.
  • the flowchart of FIG. 26 is executed, for example, when vector information of a minute vector is stored in the first vector array in step S104 of FIG.
  • step S261 the vector information creation unit 22 selects one unselected minute vector in order from the first minute vector in the first vector array. Then, the vector information creation unit 22 copies (adds) the vector information of the selected minute vector to the second vector array. At this time, the vector information creation unit 22 copies (adds) the vector information of the selected minute vector to the head of the empty portion of the second vector array.
  • the vector information creation unit 22 is a vector having the start point of the first minute vector of the second vector array as the start point and the end point of the last minute vector of the second vector array as the end point. Generate a test vector. Then, the vector information creation unit 22 obtains the size of the created test vector.
  • step S263 the vector information creation unit 22 determines whether or not the size of the test vector exceeds a specified value. As a result of this determination, if the size of the test vector exceeds the specified value, the process proceeds to step S264. On the other hand, if the size of the test vector is within the specified value, the process returns to step S261. In step S261, the vector information creation unit 22 copies (adds) the vector information of the next minute vector from the first vector array to the second vector array.
  • step S262 the vector information creation unit 22 generates a test vector having the start point of the first minute vector of the second vector array as the start point and the end point of the minute vector added this time as the end point, Find the size.
  • the vector information creation unit 22 repeats the above processing until the size of the test vector exceeds a specified value. Then, as described above, when the size of the test vector exceeds the specified value, the process proceeds to step S264.
  • step S264 the vector information creation unit 22 registers the vector information (coordinate / vector ID / size) of the test vector determined to have a size exceeding the specified value in step S263 in the third vector array. At the same time, the second vector array is emptied.
  • step S265 the vector information creation unit 22 determines whether there is an unprocessed minute vector in the first vector array. If there is no unprocessed vector as a result of this determination, the processing according to the flowchart of FIG. 26 is terminated. On the other hand, if there is an unprocessed vector, the process returns to step S261.
  • the stroke feature quantity deriving unit 23 derives a stroke feature quantity based on the vector information registered in the third vector array in step S104 of FIG. 10, and stores it in the stroke information.
  • a process for correcting fluctuation of a straight line vector will be described.
  • the straight line may fluctuate. If the process of absorbing this fluctuation and making it a single straight line is not performed, the stroke recognition unit 25 may erroneously determine, for example, a stroke that should be correctly determined as a straight line, for example, as an arc line.
  • FIG. 27 is a diagram for explaining a second example of a method for collecting a plurality of minute vectors.
  • the vector information creation unit 22 determines that the distance from the straight line connecting the start point of the first vector and the end point of the last vector is within a prescribed value, Up to the vectors of are integrated into one vector.
  • the vector information creation unit 22 then combines the vector information (coordinates / vector ID / size) of the original vectors before being combined into one vector information (coordinates / vector ID / size) into one. Replace with
  • FIG. 28 a second example of a summarization process for gathering a plurality of minute vectors will be described.
  • the flowchart in FIG. 28 is executed, for example, when vector information about a vector is stored in the vector array in step S104 in FIG.
  • step S281 the vector information creation unit 22 obtains an equation of a straight line 272 connecting the start point of the first vector 271a and the end point of the last vector 271e.
  • step S282 the vector information creation unit 22 selects one unselected vector from the vectors 271a to 271e from the first vector 271a to the last vector 271e. Then, the vector information creation unit 22 draws a perpendicular line from the end point of the selected vector to the straight line 272 obtained in step S281, the perpendicular foot (intersection of the perpendicular line and the straight line 272), and the end point of the selected vector. Find the distance to.
  • step S283 the vector information creation unit 22 determines whether or not the distance obtained in step S282 is within a specified value. As a result of the determination, if the distance obtained in step S282 is not within the specified value, the processing according to the flowchart of FIG. 28 is terminated. On the other hand, if the distance obtained in step S282 is within the specified value, the process proceeds to step S284.
  • step S284 the vector information creation unit 22 determines whether there is an unprocessed vector. If there is an unprocessed vector as a result of this determination, the process returns to step S282. Then, the vector information creation unit 22 performs processing for the next vector. On the other hand, if there is no unprocessed vector, the process proceeds to step S285.
  • step S285 the vector information creation unit 22 performs vector replacement. That is, the vector information creation unit 22 generates vector information of a vector having the start point of the first vector in the vector array of stroke information as the start point and the end point of the last vector as the end point. Then, the vector information creation unit 22 deletes all vector information of the original vector stored in the vector array of stroke information, and stores the generated vector information in the vector array. And the process by the flowchart of FIG. 28 is complete
  • the stroke feature quantity deriving unit 23 derives a stroke feature quantity based on the vector information registered in the vector array in step S104 of FIG. 10, and stores it in the stroke information. At this time, when the vector information is rewritten according to the flowchart of FIG. 28, the stroke feature amount deriving unit 23 derives the stroke feature amount based on the rewritten vector information. On the other hand, when the vector information is not rewritten according to the flowchart of FIG. 28, the stroke feature amount deriving unit 23 derives the stroke feature amount based on the individual vector information.
  • FIG. 29A is a diagram for explaining an example of a method of grouping vectors according to directions.
  • the vector information creation unit 22 groups vectors into nine based on the gradient of the vectors.
  • the vector information creation unit 22 groups vectors using a vector ID.
  • the vector IDs are “point”, “bottom ⁇ top”, “bottom left ⁇ top right”, “left ⁇ right”, “top left ⁇ bottom right”, “top ⁇ bottom”, The nine IDs are “upper right ⁇ lower left”, “right ⁇ left”, and “lower right ⁇ upper left”.
  • the method of giving the vector ID is as described above with reference to FIG. 4 (see (A) to (K) described above).
  • the vector information creation unit 22 may give a grouping ID to each vector separately from the vector ID.
  • FIG. 29B is a diagram for explaining a third example of a method for collecting a plurality of minute vectors.
  • FIG. 29B shows an example of a stroke composed of six vectors b1 to b6.
  • the vector IDs of the first three vectors b1, b2, and b3 are “left ⁇ right”.
  • the vector information creation unit 22 generates a vector c1 having the start point of the first vector b1 as the start point and the end point of the third vector b3 as the end point, and the vector c1 Vector information (coordinate, vector ID, size) is derived.
  • the vector information creation unit 22 replaces the vector information of the original three vectors b1, b2, and b3 with the vector information of the vector c1. Further, the vector IDs of the fourth to sixth vectors b4, b5, and b6 are “up ⁇ down”. Also in this case, the vector information creation unit 22 generates a vector c2 having the start point of the fourth vector b4 as the start point and the end point of the sixth vector b6, and replaces these three vectors.
  • FIG. 30 a third example of the summarizing process for gathering a plurality of minute vectors will be described.
  • the flowchart in FIG. 30 is executed, for example, when vector information of a vector is stored in the vector array in step S104 in FIG.
  • step S301 the vector information creation unit 22 copies the nth vector from the top in the vector array as a reference vector.
  • the initial value of n is 1.
  • step S302 the vector information creation unit 22 determines whether the vector ID of the reference vector is the same as the vector ID of the n + m-th vector from the top in the vector array.
  • the initial value of m is 1.
  • step S303 if the vector ID of the reference vector is the same as the vector ID of the n + m-th vector from the top in the vector array, the process proceeds to step S303. On the other hand, if the vector ID of the reference vector is different from the vector ID of the n + m-th vector from the top in the vector array, the process proceeds to step S304.
  • step S303 the vector information creation unit 22 changes the end point of the reference vector to the end point of the n + m-th vector. Then, the vector information creation unit 22 recalculates the vector ID of the reference vector based on the changed position of the end point. Further, the vector information creation unit 22 increments m (adds 1 to m). And it progresses to step S305 mentioned later.
  • step S305 the vector information creation unit 22 determines whether all the vectors in the vector array have been processed. As a result of this determination, if the processing of all vectors in the vector array has been completed, the processing according to the flowchart of FIG. 30 ends. On the other hand, if all the vectors in the vector array have not been processed, the process returns to step S302 and the above-described processing is performed.
  • step S306 the vector information creation unit 22 determines whether all vectors in the vector array have been processed. As a result of this determination, if the processing of all vectors in the vector array has been completed, the processing according to the flowchart of FIG. 30 ends. On the other hand, if all the vectors in the vector array have not been processed, the process returns to step S301 and the above-described processing is performed.
  • the stroke feature quantity deriving unit 23 derives a stroke feature quantity based on the vector information registered in the vector array in step S104 of FIG. 10, and stores it in the stroke information. At this time, the stroke feature quantity deriving unit 23 derives the stroke feature quantity based on the vector information of the reference vector for the vector set as the reference vector according to the flowchart of FIG.
  • a plurality of minute vectors can be grouped based on the inclination of the vector, and when vectors of the same group are continuous, these vectors can be combined into one vector. it can. As a result, data compression can be performed and the characteristics of the symbols can be easily grasped.
  • a process of combining a plurality of vectors in the vicinity of the inclination threshold value into one vector will be described.
  • the vectors are classified according to the gradient of the vectors.
  • a human draws a straight line close to a threshold of inclination on the screen of the touch display 17 by an input means such as a finger or a pen.
  • the vector ID of a certain vector becomes a vector ID given when the inclination exceeds the threshold, and the vector ID of another vector is given when the inclination is less than or equal to the threshold. It may be a vector ID.
  • the vector IDs of the vectors that are actually desired to be the same vector ID become different IDs, and there are cases where the vectors cannot be combined by the method of the third example described above.
  • a plurality of vectors near the inclination threshold value are combined into one vector.
  • the vector ID of the vector is “lower ⁇ upper” (see FIG. 4).
  • the vector ID of the vector is “lower left ⁇ upper right” (see FIG. 4).
  • the vector ID of the vector is “left ⁇ right” (see FIG. 4).
  • FIG. 31A is a diagram for explaining a first form of a fourth example of a method for collecting a plurality of minute vectors.
  • FIG. 31B is a diagram for explaining a second form of the fourth example of the method for collecting a plurality of minute vectors.
  • the vector information creation unit 22 combines the vectors a1 and a2 with the inclination a close to ⁇ 2.0 into one vector a3. As illustrated in FIG. 31B, the vector information creation unit 22 combines the vectors b1, b2, and b3 near the inclination threshold into one vector b7. Further, the vector information creation unit 22 collects the vector b4, the vector b5, and the vector b6 in the vicinity of the inclination threshold into one vector b8.
  • FIG. 32 a fourth example of the summarizing process for collecting a plurality of minute vectors will be described.
  • the flowchart in FIG. 32 is executed, for example, when vector information on a vector is stored in the vector array in step S104 in FIG.
  • step S321 the vector information creation unit 22 generates a list of index arrays of vectors to be collected from the vector array. Details of this processing will be described later with reference to the flowchart of FIG.
  • step S322 the vector information creation unit 22 determines whether there is an index in the list created in step S321. If the index of the list is empty as a result of this determination, the processing according to the flowchart of FIG. 32 is terminated. On the other hand, if there is an Index in the list, the process proceeds to step S323.
  • step S323 the vector information creation unit 22 generates a summary vector.
  • the summary vector is a vector having a start point of the first Index vector in the Index array as a start point and an end point of the last vector in the Index array as an end point. Then, the vector information creation unit 22 generates vector information (coordinates / vector ID / size) of the summary vector.
  • step S324 the vector information creation unit 22 deletes the vector information of the index vector in the index array from the vector array.
  • step S325 the vector information creation unit 22 inserts the vector information of the summary vector at the position of the first index in the vector array. Thereafter, the process returns to step S321 to generate an index array of vectors to be collected.
  • the stroke feature quantity deriving unit 23 derives a stroke feature quantity based on the vector information registered in the vector array in step S104 of FIG. 10, and stores it in the stroke information. At this time, according to the flowchart of FIG. 30, the stroke feature amount deriving unit 23 derives the stroke feature amount based on the vector information of the summary vector for the portion in which the vector information of the summary vector is inserted.
  • step S321 a list of index arrays of vectors to be collected is generated from the vector array.
  • step S331 the vector information creation unit 22 checks the vector ID of the vector n and the vector ID (direction) of the vector n + 1, and determines whether the vectors n and n + 1 are adjacent to each other.
  • the initial value of n is 1.
  • N represents the order from the top of the vector in the vector array.
  • the vector information creation unit 22 uses the vector ID of the vector n or the vector n + 1 as the temporary storage vector ID according to the combination of the vectors n and n + 1.
  • the vector information creation unit 22 sets an X-axis flag indicating whether or not the threshold of the vector IDs of the vectors n and n + 1 adjacent to each other is an inclination close to the X-axis.
  • FIG. 34 is a diagram illustrating an example of the relationship between the vector IDs of two adjacent vectors n and n + 1, the temporary storage vector ID, and the X-axis flag. The relationship 340 shown in FIG. 34 is created by the vector information creation unit 22.
  • step S332 the vector information creation unit 22 branches the process according to the current temporary storage vector ID and the previous temporary storage vector ID. Specifically, if the current temporary storage vector ID is not directionless, the process proceeds to step S333 (case 1).
  • step S331 If the current temporary storage vector ID has no direction and the previous temporary storage vector ID has no direction, the process returns to step S331 (case 2). At this time, the vector information creation unit 22 increments n (adds 1 to n).
  • step S333 the vector information creation unit 22 determines whether or not the previous temporary storage vector ID and the current temporary storage vector ID are the same. If the result of this determination is that the previous temporary storage vector ID and the current temporary storage vector ID are the same, the processing according to the flowchart of FIG. 33 is terminated.
  • step S334 the vector information creation unit 22 determines the vector threshold angle according to the X-axis flag and the temporary storage vector ID.
  • FIG. 35 is a diagram illustrating an example of the relationship among the X-axis flag, the temporary storage vector ID, the threshold upper limit, and the threshold lower limit.
  • the threshold upper limit and the threshold lower limit are angles when the X axis is 0 °.
  • the relationship 350 shown in FIG. 35 is registered in advance in the handwritten music symbol recognition apparatus 10 as a table, for example.
  • the vector information creation unit 22 determines the threshold angle of the vector (threshold upper limit and threshold lower limit) based on the relationship shown in FIG. Further, the vector information creation unit 22 obtains the angle of the vector n and the angle of the vector n + 1. Note that these angles are angles when the X axis is 0 ° and a predetermined direction (for example, a counterclockwise direction is positive). The angles shown in FIG. 35 are also angles determined on the same basis as these angles.
  • step S335 the vector information creation unit 22 determines that both the angle of the vector n and the angle of n + 1 are within the threshold angle range determined in step S334 (within the range from the threshold lower limit to the threshold upper limit).
  • the index of vector n + 1 is registered in the index array of vectors to be collected.
  • the vector information creation unit 22 registers the index of the vector n in the index array of the vectors to be collected, and then registers the index of the vector n + 1. Then, the process proceeds to step S336.
  • the vector information creation unit 22 sets the temporary storage vector ID. Change to no direction. Then, the process proceeds to step S336.
  • step S336 the vector information creation unit 22 checks the current and previous temporary storage vector IDs. If the previous temporary storage vector ID is not directionless and is different from the current temporary storage vector ID, the processing according to the flowchart of FIG. 33 is terminated (case 1). On the other hand, in other cases, the process proceeds to step S337 (case 2). In step S337, the vector information creation unit 22 substitutes the current temporary storage vector ID for the previous temporary storage vector ID. Further, the vector information creation unit 22 increments n (adds 1 to n). Then, the process returns to step S331.
  • a plurality of vectors near the inclination threshold value can be combined into one vector. Therefore, when a straight line close to the inclination threshold is drawn, the vector ID of a certain vector becomes a vector ID given when the inclination exceeds the threshold due to camera shake or the like, and the vector ID of another vector is It can be suppressed that the vector ID is given when the slope is equal to or smaller than the threshold value. As a result, data compression can be performed and the characteristics of the symbols can be easily grasped.
  • the stroke recognition unit 25 uses a connection type that is one of the stroke feature amounts in order to determine whether or not the stroke to be recognized has an acute point. explained.
  • connection type between a certain vector and a vector input next to the vector.
  • the stroke recognition unit 25 divides one stroke into a plurality of strokes at an acute angle of the stroke. Then, the stroke recognition unit 25 recognizes each of the divided strokes. In this way, the stroke recognition unit 25 can more simply recognize the shape of each divided stroke, and the symbol of the stroke before the division can be determined based on the positional relationship of the divided individual strokes. It can be recognized easily and accurately.
  • this embodiment adds the said process as a process when the stroke recognition part 25 recognizes a stroke with respect to 1st Embodiment. Therefore, in the description of the present embodiment, the same parts as those in the first embodiment are denoted by the same reference numerals as those in FIGS. 1 to 24B, and detailed description thereof is omitted.
  • FIG. 36 is a diagram for explaining an example of a method for recognizing one stroke divided into a plurality of strokes.
  • the connection type from the first vector a1 to the fifth vector a5 is an obtuse angle
  • the connection type between the fifth vector a5 and the sixth vector a6 is an acute angle. It is.
  • the stroke recognizing unit 25 recognizes the first to fifth vectors a1 to a5 and the sixth vector a6 as different strokes. Then, as shown in the right diagram of FIG. 36, the stroke recognition unit 25 divides the first to fifth vectors a1 to a5 and the sixth vector a6. The stroke recognizing unit 25 recognizes that the stroke symbol formed of the first to fifth vectors a1 to a5 is the arc line b1. The stroke recognizing unit 25 recognizes that the symbol of the stroke composed of the sixth vector a6 is the straight line b2. These recognition methods are as described in the first embodiment. In this way, the stroke recognizing unit 25 can recognize a simpler shape than when recognizing the shape of the stroke in the left diagram of FIG.
  • step S371 the stroke recognizing unit 25 obtains a connection type of two vectors adjacent in the input order, and stores the connection type in the connection type array.
  • step S372 the stroke recognizing unit 25 divides the original vector array into a vector array before the acute angle point and a vector array after the acute angle point based on the connection type array. .
  • the stroke recognition unit 25 creates two vector arrays.
  • the stroke recognizing unit 25 stores the vector information (coordinates / vector ID / size) of the vectors a1 to a5 in the first vector array of the two vector arrays.
  • the stroke recognizing unit 25 stores vector information (coordinates, vector IDs, and sizes) of the vector a6 in the second vector array of the two vector arrays.
  • the stroke recognizing unit 25 recognizes the shape of the stroke constituted by the vectors included in the vector array for each vector array created in step S372.
  • the stroke recognition unit 25 is configured by the shape of the stroke configured by the vectors included in the first vector array and the vectors included in the second vector array as follows. Recognize stroke shape.
  • the stroke recognition unit 25 determines whether the change in the rotation direction is either clockwise or counterclockwise.
  • the stroke recognition unit 25 can determine the change in the rotation direction by referring to the rotation direction derived by the stroke feature amount deriving unit 23, for example.
  • the rotation direction of the vector included in the first vector array is constant clockwise.
  • the stroke recognition unit 25 derives the total rotation angle.
  • the total rotation angle of the vectors included in the first vector array is less than 180 °, and the rotation direction is constant.
  • the stroke recognition unit 25 can determine the total rotation angle by referring to the rotation angle derived by the stroke feature amount deriving unit 23, for example. From the above, the stroke recognizing unit 25 can determine that the stroke formed by the vectors included in the first vector array is an arc line.
  • the stroke recognizing unit 25 derives the following (a) to (h) for the vectors included in the first vector array. Then, the stroke recognizing unit 25 determines what arc line is the stroke formed by the vectors included in the first vector array based on the derived result.
  • the stroke recognizing unit 25 can derive (a) and (b) by referring to the left-right moving direction derived by the stroke feature amount deriving unit 23, for example.
  • the stroke recognition unit 25 can derive (c) and (d) by referring to the vertical movement direction derived by the stroke feature amount deriving unit 23, for example.
  • the stroke recognizing unit 25 converts the above (e), (f), (g), and (h) into, for example, the highest point index, the lowest point index, and the leftmost point derived by the stroke feature amount deriving unit 23, respectively. It can be derived by referring to the Index, the rightmost point Index.
  • the stroke recognition unit 25 recognizes that the stroke formed by the vectors included in the first vector array is an arc line opened to the left.
  • the number of vectors included in the second vector array is one.
  • the vector ID of the vector included in the second vector array is “left ⁇ right”.
  • the vector ID is created by the vector information creation unit 22. As described above, the vector ID is derived based on the gradient of the vector and the relationship between the start point and end point of the vector. Therefore, the stroke recognizing unit 25 recognizes that the stroke formed by the vectors included in the second vector array is a horizontal straight line.
  • step S374 the stroke recognition unit 25 generates and recognizes one stroke based on the shape of each stroke and the positional relationship of each stroke.
  • the stroke recognizing unit 25 combines these to generate one stroke. Then, the stroke recognition unit 25 recognizes that the generated stroke is the character “2”.
  • the stroke is divided at a point where the angle of the vector of the symbol input by hand changes to an acute angle, and each of the divided strokes is recognized individually. Therefore, even if a handwritten symbol is complicated, the symbol can be accurately recognized without holding a huge amount of data.
  • the embodiment of the present invention described above can be realized by a computer executing a program. Further, means for supplying a program to a computer, for example, a computer-readable recording medium such as a CD-ROM in which such a program is recorded, or a transmission medium for transmitting such a program can also be applied as an embodiment of the present invention. . A program product such as a computer-readable recording medium that records the program can also be applied as an embodiment of the present invention.
  • the programs, computer-readable recording media, transmission media, and program products are included in the scope of the present invention.
  • the present invention can be used for an apparatus for automatically recognizing a handwritten symbol using an input means such as a finger or a pen.

Abstract

 手書き音楽記号認識装置(10)は、入力手段が画面に触れてから離れるまで、前記入力手段が移動するごとに前記入力手段の前記画面における位置を位置情報として取得するタッチ情報取得部(21)と、前記位置情報に基づいて、前記入力手段の移動の軌跡を示すベクトルの属性をベクトル情報として作成するベクトル情報作成部(22)と、前記ストローク情報に含まれる前記ベクトル情報に基づいてストロークの特徴量を導出するストローク特徴量導出部(23)と、を有する。

Description

手書き音楽記号認識装置およびプログラム
 本発明は、手書き音楽記号認識装置およびプログラムに関し、特に、指やペンなどの入力手段を用いてユーザーにより手書きで入力された記号を認識するために用いて好適な技術に関する。
 手書き入力に対応するタブレット端末は、指やペンなどの入力手段がタッチパネルを走査した軌跡情報を検出し、検出した情報に基づいて記号あるいは図形などを認識する。
 特許文献1には、次のような方法が開示されている。文字を変換するための特定の記号または図形をあらかじめ登録しておく。文字認識を行うために手書き文字を入力する文字枠に文字が入力されると、その文字を、登録しておいた情報に基づいて、目的の文字に変換する。
 また、特許文献2には、入力された座標データから直線成分を抽出する方法が開示されている。
 また、特許文献3には、次のような方法が開示されている。筆記ストロークの始点と終点とを仮想線分で連結し、その場合に発生する屈曲箇所の特徴量を検出する。そして、前記検出した特徴量と辞書情報とを比較して、文字認識を行う。
特開2000-194796号公報 特開平1-96770号公報 特開2004-133951号公報
 しかしながら、特許文献1、3に記載の技術では、文字を変換するための特定の記号または図形をあらかじめ登録しておく必要がある。このため、認識可能な文字、記号、および図形の個数分だけデータを保持しておく必要がある。したがって、大きな記憶容量の記憶媒体が必要である。
 また、入力された文字と、記憶媒体に大量に記憶されている文字候補とを1対1に対応付ける必要がある。したがって、複雑で大掛かりなプログラムを必要とする。
 また、記憶媒体に登録されていない文字や記号を認識することができない。さらに、綺麗に入力しないと正確な記号認識が行われない。
 また、特許文献2に記載の技術では、入力された複数の座標データが所定の範囲内にあれば、それら複数の座標データを、始点の座標と終点の座標とを結ぶ直線データとする。入力された座標データが所定の範囲外であると判断された場合に、当該座標データの前の座標データの終点の座標と、所定の範囲内にある座標データの最初の始点の座標とを直線成分として抽出して記憶する。このような直線成分の確認を順次行いながら、直線データを生成する。このため、入力された記号の全体を認識するために必要な演算量が多くなる。
 本発明は、以上の問題点に鑑みてなされたものであり、手やペンなどの入力手段でユーザーにより手書き入力された記号を容易にかつ正確に認識できるようにすることを目的とする。
 本発明の手書き音楽記号認識装置は、入力手段が画面に触れてから離れるまで、前記入力手段が移動するごとに前記入力手段の前記画面における位置を位置情報として取得するタッチ情報取得手段と、前記タッチ情報取得手段により取得された前記位置情報に基づいて、前記入力手段の移動の軌跡を示すベクトルの属性をベクトル情報として作成するベクトル情報作成手段と、前記入力手段が前記画面に触れてから離れるまでの間の前記位置情報に基づいて前記ベクトル情報作成手段により作成された一連の1個または複数個の前記ベクトルについての前記ベクトル情報を含むストローク情報であって、認識対象となるオブジェクトごとに1個または複数個の前記ストローク情報を記憶するストローク情報記憶手段と、前記入力手段が前記画面に触れてから離れるまでの間の前記入力手段の移動の軌跡であるストロークの特徴量を、前記ストローク情報に含まれる前記ベクトル情報に基づいて導出するストローク特徴量導出手段と、を有することを特徴とする。
 本発明のプログラムは、入力工程が画面に触れてから離れるまで、前記入力工程が移動するごとに前記入力工程の前記画面における位置を位置情報として取得するタッチ情報取得工程と、前記タッチ情報取得工程により取得された前記位置情報に基づいて、前記入力工程の移動の軌跡を示すベクトルの属性をベクトル情報として作成するベクトル情報作成工程と、前記入力工程が前記画面に触れてから離れるまでの間の前記位置情報に基づいて前記ベクトル情報作成工程により作成された一連の1個または複数個の前記ベクトルについての前記ベクトル情報を含むストローク情報であって、認識対象となるオブジェクトごとに1個または複数個の前記ストローク情報を記憶するストローク情報記憶工程と、前記入力工程が前記画面に触れてから離れるまでの間の前記入力工程の移動の軌跡であるストロークの特徴量を、前記ストローク情報に含まれる前記ベクトル情報に基づいて導出するストローク特徴量導出工程と、をコンピュータに実行させることを特徴とする。
 本発明によれば、手やペンなどの入力手段でユーザーにより手書き入力された記号を容易にかつ正確に認識することができる。
図1は、手書き音楽記号認識装置のハードウェアの概略構成の一例を示すブロック図である。 図2は、手書き音楽記号認識装置の機能的な概略構成の一例を示すブロック図である。 図3は、ベクトル、ストローク、オブジェクトの関係の一例を説明する図である。 図4は、ベクトルを分類する方法の一例を説明する図である。 図5は、セーニョマークの各ベクトルの始点座標・終点座標・ベクトルID、およびストロークの特徴量の一例を示す図である。 図6は、S字ストロークの内接矩形と、当該内接矩形の中心座標の一例を示す図である。 図7は、ベクトルIDと接続タイプとの関係の一例を示す図である。 図8は、ベクトルIDと回転方向との関係の一例を示す図である。 図9は、回転角度の一例を示す図である。 図10は、書き音楽記号認識装置の動作の一例を説明するフローチャートである。 図11は、ベクトル情報の一例を示す図である。 図12は、セーニョマークオブジェクトの位置ID配列の一例を示す図である。 図13は、図10のステップS107の処理の一例を説明するフローチャートである。 図14は、図13のステップS131の処理の一例を説明するフローチャートである。 図15は、2個のベクトルで構成された4つの記号を示す図である。 図16は、2個のベクトルIDと、記号との関係の一例を示す図である。 図17は、認識対象の記号の一例を示す図である。 図18は、回転方向の変化によって記号を認識する処理の一例を説明するフローチャートである。 図19は、認識対象のストロークが円および楕円の何れの記号であるのかを認識する方法の一例を説明する図である。 図20は、「S」の回転方向が変化するポイントの一例を示す図である。 図21は、認識対象のストロークの記号が「ト音記号」であるか否かを判定する方法の一例を説明する図である。 図22は、タッチディスプレイの画面の一例を示す図である。 図23Aは、シャープ記号のストロークの一例を示す図である。 図23Bは、シャープ記号用のデータベースの一例を示す図である。 図24Aは、シャープ記号を構成する各ストロークの重心の一例を示す図である。 図24Bは、シャープ記号を構成する各ストロークの重心の位置関係の一例を示す図である。 図25は、複数の微小なベクトルをまとめる方法の第1の例を説明する図である。 図26は、複数の微小なベクトルをまとめるまとめ処理の第1の例を説明するフローチャートである。 図27は、複数の微小なベクトルをまとめる方法の第2の例を説明する図である。 図28は、複数の微小なベクトルをまとめるまとめ処理の第2の例を説明するフローチャートである。 図29Aは、ベクトルを方向別にグルーピングする方法の一例を説明する図である。 図29Bは、複数の微小なベクトルをまとめる方法の第3の例を説明する図である。 図30は、複数の微小なベクトルをまとめるまとめ処理の第3の例を説明するフローチャートである。 図31Aは、複数の微小なベクトルをまとめる方法の第4の例の第1の形態を説明する図である。 図31Bは、複数の微小なベクトルをまとめる方法の第4の例の第2の形態を説明する図である。 図32は、複数の微小なベクトルをまとめるまとめ処理の第4の例を説明するフローチャートである。 図33は、図32のステップS321の処理の一例を説明するフローチャートである。 図34は、隣り合う2個のベクトルのベクトルIDと、一時記憶ベクトルIDと、X軸フラグとの関係の一例を示す図である。 図35は、X軸フラグと、一時記憶ベクトルIDと、閾値上限と、閾値下限との関係の一例を示す図である。 図36は、1つのストロークを複数のストロークに分割して認識する方法の一例を説明する図である。 図37は、1つのストロークを複数のストロークに分割して認識する方法の一例を説明するフローチャートである。
 以下、図面を参照しながら本発明の手書き音楽記号認識装置の実施形態を説明する。
[第1の実施形態]
 まず、第1の実施形態を説明する。
 図1は、手書き音楽記号認識装置10のハードウェアの概略構成の一例を示すブロック図である。図2は、手書き音楽記号認識装置10の機能的な概略構成の一例を示すブロック図である。
 手書き音楽記号認識装置10は、例えば、タブレット端末により構成される。なお、手書き音楽記号認識装置10は、タッチパネルを備える端末装置であれば、タブレット端末に限定されない。手書き音楽記号認識装置10は、例えば、タッチパネルをユーザインターフェースとして用いることができるPC(Personal Computer)により構成されてもよい。
 図1において、11はバス、12はROM、13はRAM、14はCPU、15はフラッシュメモリ、16はネットワークインターフェイス、17はタッチディスプレイ、18はオーディオ出力装置、19はMIDI出力装置である。
 手書き音楽記号認識装置10の全体動作を制御するプログラムはフラッシュメモリ15またはROM12に記憶される。CPU14は、このプログラムを読み出してRAM13に展開し、実行する。これにより手書き音楽記号認識装置10の動作が実現する。
 タッチディスプレイ17は、タッチパネルを備えるコンピュータディスプレイである。ユーザーは、タッチディスプレイ17に対し、指やペンなどの入力手段を用いて手書き入力を行う。手書き音楽記号認識装置10は、手書き入力されたオブジェクト(記号)を認識する。
 ネットワークインターフェイス16は、認識したオブジェクト(記号)の情報をファイルとして他のハードウェアに保存したり、保存済みの記号の情報のファイルを読み込んだりするためのものである。
 オーディオ出力装置18は、認識したオブジェクト(記号)から音楽演奏情報を作成し、音響出力できるようにするためのものである。
 MIDI出力装置19は、認識したオブジェクト(記号)からMIDI情報を作成し、MIDI出力できるようにするためのものである。
 図2に示すように、手書き音楽記号認識装置10は、タッチ情報取得部21、ベクトル情報作成部22、ストローク特徴量導出部23、オブジェクト生成部24、ストローク認識部25、およびオブジェクト認識部26を有する。
 タッチ情報取得部21は、例えば、タッチディスプレイ17、RAM13、CPU14、およびフラッシュメモリ15などを用いることにより実現される。また、タッチ情報取得部21は、指やペン等の入力手段の移動がある度にその位置情報を取得するAPI(Application Programming Interface)を有する。
 ベクトル情報作成部22、ストローク特徴量導出部23、オブジェクト生成部24、ストローク認識部25、およびオブジェクト認識部26は、例えば、RAM13、CPU14、およびフラッシュメモリ15などを用いることにより実現される。
<ベクトル、ストローク、オブジェクトの説明>
 図3を参照しながら、ベクトル、ストローク、オブジェクトの関係を、セーニョマークを例にして説明する。
 セーニョマークのオブジェクト30は、S字ストローク31(ストローク0)と、直線ストローク32(ストローク1)と、2つの点ストローク33、34(ストローク2、3)とで構成される。直線ストローク32、点ストローク33、および点ストローク34は、それぞれ、1つのベクトルで構成される。
(ベクトルIDのつけ方)
 本実施形態においては、ベクトル情報作成部22は、処理を簡略化するために、ベクトルを以下の9種類(「下→上」、「上→下」、「左下→右上」、「右上→左下」、「左→右」、「右→左」、「左上→右下」、「右下→左上」、「点」)の何れかに分類する。
 図4に示すように、ベクトル情報作成部22は、ベクトルの始点(x1,y1)と、終点(x2,y2)とから、当該始点と当該終点とを結ぶ直線の傾きaを、以下の式(1)より求める。
 そして、ベクトル情報作成部22は、座標x1、y1、x2、y2の位置関係を考慮してベクトルIDを決める。なお、図4において、Y軸は下側が「+」である。X軸は右側が「+」である。
Figure JPOXMLDOC01-appb-M000001
 ベクトル情報作成部22は、以下の(A)~(K)に従って、ベクトルを分類する。
 (A)ベクトルが、|a|>2である場合であって、ベクトルの終点のY座標y2と始点のY座標y1との関係が、y2<y1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「下→上」とする。
 (B)ベクトルの傾きaが、|a|>2である場合であって、ベクトルの終点のY座標y2と始点のY座標y1との関係が、y2>y1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「上→下」とする。
 (C)ベクトルの傾きaが、-2≦a<-0.5である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2<x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「右上→左下」とする。
 (D)ベクトルの傾きaが、-2≦a<-0.5である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2>x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「左下→右上」とする。
 (E)ベクトルの傾きaが、|a|≦0.5である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2>x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「左→右」とする。
 (F)ベクトルの傾きaが、|a|≦0.5である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2<x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「右→左」とする。
 (G)ベクトルの傾きaが、0.5<a≦2である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2>x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「左上→右下」とする。
 (H)ベクトルの傾きaが、0.5<a≦2である場合であって、ベクトルの終点のX座標x2と始点のX座標x1との関係が、x2<x1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「右下→左上」とする。
 (I)ベクトルの終点のX座標x2と始点のX座標x1との関係が、x1=x2である場合であって、ベクトルの終点のY座標y2と始点のY座標y1との関係が、y2<y1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「下→上」とする。
 (J)ベクトルの終点のX座標x2と始点のX座標x1との関係が、x1=x2である場合であって、ベクトルの終点のY座標y2と始点のY座標y1との関係が、y2>y1である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「上→下」とする。
 (K)ベクトルの終点のX座標x2と始点のX座標x1との関係が、x1=x2である場合であって、ベクトルの終点のY座標y2と始点のY座標y1との関係が、y1=y2である場合、ベクトル情報作成部22は、当該ベクトルのベクトルIDを「点」とする。
 図3に示す例において、例えば、S字ストローク31(ストローク0)のベクトルIndex(インデックス)が0のベクトルのベクトルIDは、以下のように、「下→上」なる。
 図5は、図3のセーニョマークの各ベクトルの始点座標・終点座標・ベクトルID、およびストロークの特徴量の一例を示す図である。
 まず、図5における始点座標と終点座標とから、傾きaは、16(=(352-400)/(421-424))になる(|a|>2)。また、終点のY座標y2は、始点のY座標y1よりも小さい(y2<y1)。
 したがって、S字ストローク31(ストローク0)のベクトルIndex(インデックス)が0のベクトルは、前記(A)に該当する。よって、当該ベクトルのベクトルIDは「下→上」となる。
 なお、図5では、表記の都合上、「下→上」のベクトルIDを「1」とする。また、図5において、ベクトルIndexは、初期値を「0」とするインデックスであって、ベクトルが得られるたびにインクリメントされるインデックスである。
<ストロークの各特徴量の説明>
 前述したように、図5に、ストロークの特徴量の一例として、図3のセーニョマークにおける各ストローク31~34の特徴量を示す。
(始点終点距離)
 ストロークにおける始点終点距離が規定値よりも小さい場合、当該ストロークは、円のように閉じた図形と考えられる。一方、ストロークにおける始点終点距離が規定値よりも大きい場合、当該ストロークは、弧線のように閉じていない図形と考えられる。
 ストロークの先頭のベクトルの始点の座標を(x1,y1)とし、当該ストロークの最終のベクトルの終点の座標を(x2,y2)とする。ストローク特徴量導出部23は、始点終点距離Dseを、以下の式(2)で求める。始点終点距離Dseは、ストロークの先頭のベクトルの始点と、当該ストロークの最終のベクトルの終点とを結ぶ直線の距離である。
Figure JPOXMLDOC01-appb-M000002
(ストロークの内接矩形の4点の座標と中心座標)
 ストロークの内接矩形の4点の座標と中心座標は、複数のストロークにおける互いのストロークの位置関係を得るために使用される。ストロークの内接矩形とは、ストロークが内接する矩形である。ストロークの内接矩形の4点の座標は、ストロークの内接矩形の4つの角の座標である。
 図6に、S字ストローク31の内接矩形と、当該内接矩形の中心座標の一例を示す。
 矩形座標左は、S字ストローク31を構成する全ベクトルの始点または終点の中で最も左のX座標である(図5の内接矩形座標の左の欄を参照)。
 矩形座標右は、S字ストローク31を構成する全ベクトルの始点または終点の中で最も右のX座標である(図5の内接矩形座標の右の欄を参照)。
 矩形座標上は、S字ストローク31を構成する全ベクトルの始点または終点の中で最も上のY座標である(図5の内接矩形座標の上の欄を参照)。
 矩形座標下は、S字ストローク31を構成する全ベクトルの始点または終点の中で最も下のY座標である(図5の内接矩形座標の下の欄を参照)。
 中心座標は、矩形座標左と矩形座標右の中間のX座標と、矩形座標上と矩形座標下の中間のY座標とで表される(図5の内接矩形座標の中心Xおよび中心Yの欄を参照)。
(接続タイプ)
 接続タイプは、記号が滑らかであるかどうか、記号に角があるかどうか、などを判断するために使用される。
 図7は、ベクトルIDと接続タイプとの関係の一例を示す図である。
 ストローク特徴量導出部23は、接続タイプの判断対象となるベクトルのベクトルID(当該ベクトルID)と、当該ベクトルの次のベクトルのベクトルID(次のベクトルID)と、図7に示す関係700とに基づいて、接続タイプの判断対象となるベクトルの接続タイプを決める。図7に示す関係700は、例えばテーブルとして手書き音楽記号認識装置10に予め登録される。
 本実施形態においては、接続タイプが、鈍角(=1)、直角(=2)、鋭角(=3)、および、それらのいずれでもない(=0)の何れか1つが、各ベクトルの接続タイプとして決められる。
 図3のセーニョマークのS字ストローク31(ストローク0)では、図5に示すように、最初のベクトルのベクトルIDが1(下→上)であり、その次のベクトルのベクトルIDが8(右下→左上)である。したがって、図7より、S字ストローク31(ストローク0)の最初のベクトルの接続タイプは1(鈍角)となる。なお、最初のベクトルは、ベクトルIndexが0のベクトルであり、その次のベクトルは、ベクトルIndexが1のベクトルである。
(回転方向)
 ストロークの回転方向が変化する点は、記号を特定する手がかりとなる。
 例えば、「f」の1画目は、「S」のように滑らかにベクトルが連続しており、始点と終点とが離れている。「S」には、回転方向が変化する点が1か所ある。これに対し、「f」には、回転方向が変化する点がない。したがって、ストローク認識部25は、ストロークの回転方向が変化する点の有無により、「S」と「f」とを区別することができる。
 図8は、ベクトルIDと回転方向との関係の一例を示す図である。
 ストローク特徴量導出部23は、回転方向の判断対象となるベクトルのベクトルID(当該ベクトルID)と、当該ベクトルの次のベクトルのベクトルID(次のベクトルID)と、図8に示す関係800とに基づいて、回転方向の判断対象となるベクトルの回転方向を決める。図8に示す関係800は、例えばテーブルとして手書き音楽記号認識装置10に予め登録される。
 図3に示すセーニョマークのS字ストローク31(ストローク0)では、図5に示すように、最初のベクトルのベクトルIDが1(下→上)であり、その次のベクトルのベクトルIDが8(右下→左上)である。したがって、図8より、S字ストローク31(ストローク0)の最初のベクトルの回転方向は反時計回り=2)となる。図5では、表記の都合上、回転方向が時計回りであることを「1」とし、回転方向が反時計回りであることを「2」とし、回転がないことを「0」とする。
(回転角度)
 図9に、回転角度の判断対象となるベクトルから、その次のベクトルまでの回転角度Degの一例を示す。手書き音楽記号認識装置10は、この回転角度の累計から、記号が円であるか多重円であるかを判別できる。
 回転角度の判断対象となるベクトルの始点の座標を(x11,y11)とし、終点の座標を(x12,y12)とする。また、回転角度の判断対象となるベクトルの次のベクトルの始点の座標を(x21,y21)とし、終点の座標を(x22,y22)とする。この場合、ストローク特徴量導出部23は、2つのベクトルのなす角度を、回転角度の判断対象となるベクトルの、当該ベクトルの次のベクトルに対する回転角度Deg(°)として、以下の式(3)~式(7)で求める。
Figure JPOXMLDOC01-appb-M000003
(左右移動方向および上下移動方向)
 ストローク認識部25は、左右移動方向および上下移動方向により、ストロークが、単純に上から下、左から右にかかれた線分のような記号かどうかを判定する。
 そこで、ストローク特徴量導出部23は、左右移動方向および上下移動方向を、ベクトルIDより求める。
 ベクトルIDが下→上(=1)であれば、左右移動方向はなし(=0)であり、上下移動方向は上(=1)である。また、ベクトルIDが右下→左上(=8)であれば、左右移動方向は左(=1)であり、上下移動方向は上(=1)となる。なお、図5では表記の都合上、左右移動方向が左であることを1とし、左右移動方向が右であることを2とし、左右移動方向がないことを0とする。また、上下移動方向が上であることを1とし、上下移動方向が下であることを2とし、上下移動方向がないことを0とする。
(最左点、最右点、最上点、最下点のインデックス)
 例えば、最左点Indexが0(ストロークを構成する最初のベクトルの始点)、最右点IndexがN(ストロークを構成する最終のベクトルの始点)とする。この場合、手書き音楽記号認識装置10は、最上点IndexがN/2付近であれば、下が開いた山形の記号と判断できる。
 図6に示す例では、図5に示すように、最左点Indexが5、最右点Indexが8、最上点Indexが2、最下点Indexが11となる。
<動作フローチャート>
 次に、図10のフローチャートを参照しながら、手書き音楽記号認識装置10の動作の一例を説明する。図10は、音楽記号認識処理の手順の一例を説明するフローチャートである。このフローチャートの処理は、例えば、CPU14が、フラッシュメモリ15に記憶されたプログラムをRAM13に展開して実行することにより実現される。
 ステップS101において、タッチ情報取得部21は、タッチディスプレイ17の画面がタッチされたか否かを判断する。この判断の結果、画面がタッチされていない場合は待機状態となる。画面がタッチされるとステップS102に進む。
 ステップS102に進むと、タッチ情報取得部21は、座標配列を空にした後、タッチされた座標を座標配列に記憶する。画面に入力手段がタッチされてから、当該入力手段が画面から完全に離れるまで、当該入力手段が動くたびに入力手段の移動処理が行われる。この入力手段の移動処理は、移動した入力手段の座標を、座標配列に記憶することにより行われる。なお、前述したように、入力手段は、例えば、指やペンである。
 次に、ステップS103において、タッチ情報取得部21は、タッチされたが画面から離れたか否かを判断する。この判断の結果、画面から入力手段が離れていない場合には、ステップS102に戻る。そして、入力手段が画面から完全に離れるまで、入力手段が動くたびにステップS102の入力手段の移動処理が行われる。ステップS103の判断の結果、入力手段が画面から完全に離れると、ステップS104に進む。
 ステップS104に進むと、ベクトル情報作成部22とストローク特徴量導出部23は、ストローク生成処理を実行する。
 まず、ベクトル情報作成部22は、新規にストローク情報を生成する。
 次に、ベクトル情報作成部22は、最初の座標を始点、2番目の座標を終点とするベクトルの座標を作成する。このとき、ベクトル情報作成部22は、前記作成したベクトルのベクトルIDを設定する。また、ベクトル情報作成部22は、前記作成したベクトルの大きさを導出する。ベクトル情報作成部22は、前記作成したベクトルの属性を示すベクトル情報(座標・ベクトルID・大きさ)を、ストローク情報のベクトル配列に記憶する。
 次に、ベクトル情報作成部22は、2番目の座標を始点、3番目の座標を終点とするベクトルのベクトル情報を作成し、ストローク情報のベクトル配列に記憶する。
 図11は、ベクトル情報の一例を示す図である。図11では、図3のS字ストローク31(ストローク0)を構成する各ベクトルのベクトル情報を示す。
 図3のS字ストローク31(ストローク0)では、ベクトルの始点・終点が13個あるので、12個のベクトル情報が作られる。ベクトル情報作成部22は、これら全ての座標からベクトル情報を作成し、ストローク情報に記憶する。そして、ストローク特徴量導出部23は、ベクトル情報に基づいて、ストロークの特徴量を導出し、ストローク情報に記憶する。
 次に、ステップS105において、ベクトル情報作成部22は、一定時間内に、タッチディスプレイ17の画面がタッチされたか否かを判断する。この判断の結果、一定時間内に次のストロークの入力が開始されれば、ステップS102に戻る。そして、ステップS102~S104の処理を行い、新たなストロークのストローク情報(ベクトル情報、特徴量)を作成する。
 図3に示す例では、まず、S字ストローク31(ストローク0)の入力の後、一定時間内に直線ストローク32(ストローク1)が入力される。さらに一定時間内に点ストローク33(ストローク2)が入力され、さらに一定時間内に点ストローク34(ストローク3)が入力される。このような入力が行われた場合、ベクトル情報作成部22およびストローク特徴量導出部23は、それぞれのストロークが入力されるたびに、当該ストロークのストローク情報を生成する。一定時間内に次のストロークの入力がない場合には、ステップS106に進む。
 ステップS106に進むと、オブジェクト生成部24は、新たに1つのオブジェクトを生成するオブジェクト生成処理を行う。オブジェクト生成部24は、オブジェクトのストローク配列に、これまでに生成されたストロークのストローク情報(ベクトル情報、特徴量)を記憶する。
 このとき、図5に示すような情報が、例えばテーブルとしてストローク情報記憶部に記憶される。なお、図5に示すような情報は、オブジェクトごとに作成される。また、図5では、表記の都合上、ベクトルの大きさの情報の図示を省略する。ベクトルの大きさは、ベクトルの始点の座標と終点の座標とから導出される。よって、ベクトルの大きさは、ベクトル情報に含まれなくてもよい。
 さらに、オブジェクト生成部24は、各ストロークの相対的な位置関係(位置ID)を求める。位置IDは、基準となるストロークに対する各ストロークの位置を示すIDである。
 本実施形態においては、オブジェクト生成部24は、以下の9種類の位置IDを用いる。
 (L)基準となるストロークと位置IDを求める対象のストロークとの位置が同じ場合、オブジェクト生成部24は、当該ストロークの位置IDを「同じ(=0)」とする。
 (M)基準となるストロークが下であり、位置IDを求める対象のストロークが上である場合(下→上)、オブジェクト生成部24は、当該ストロークの位置IDを「上(=1)」とする。
 (N)基準となるストロークが左下であり、位置IDを求める対象のストロークが右上である場合(左下→右上)、オブジェクト生成部24は、当該ストロークの位置IDを「右上(=2)」とする。
 (O)基準となるストロークが左であり、位置IDを求める対象のストロークが右である場合(左→右)、オブジェクト生成部24は、当該ストロークの位置IDを「右(=3)」とする。
 (P)基準となるストロークが左上であり、位置IDを求める対象のストロークが右下である場合(左上→右下)、オブジェクト生成部24は、当該ストロークの位置IDを「右下(=4)」とする。
 (Q)基準となるストロークが上であり、位置IDを求める対象のストロークが下である場合(上→下)、オブジェクト生成部24は、当該ストロークの位置IDを「下(=5)」とする。
 (R)基準となるストロークが右上であり、位置IDを求める対象のストロークが左下である場合(右上→左下)、オブジェクト生成部24は、当該ストロークの位置IDを「左下(=6)」とする。
 (S)基準となるストロークが右であり、位置IDを求める対象のストロークが左である場合(右→左)、オブジェクト生成部24は、当該ストロークの位置IDを「左(=7)」とする。
 (T)基準となるストロークが右下であり、位置IDを求める対象のストロークが左上である場合(左下→左上)、オブジェクト生成部24は、当該ストロークの位置IDを「右上(=8)」とする。
 ここで、位置IDの求め方の一例を説明する。
 オブジェクト生成部24は、基準となるストロークの内接矩形の中心座標を始点とし、位置IDを求める対象のストロークの内接矩形の中心座標を終点とするベクトルを求める。そして、オブジェクト生成部24は、このベクトルのベクトルIDを求める。例えば、ベクトルIDが「下→上」であれば、位置IDは「上(=1)」となり、ベクトルIDが「左→右」であれば、位置IDは「右(=3)」となる。なお、ベクトルIDは、前述した(A)~(K)の基準に従って求められる。
 図3に示す例では、オブジェクト生成部24は、最初にS字ストローク31(ストローク0)の位置IDを求める。S字ストローク31は、最初のストロークである。そこで、オブジェクト生成部24は、基準となるストロークとして、最後の点ストローク34(ストローク3)を採用する。この場合、オブジェクト生成部24は、基準となる点ストローク34の内接矩形の中心座標を始点とし、位置IDを求める対象のS字ストローク31の内接矩形の中心座標を終点とするベクトルを求める。このベクトルの傾きaは、0.43(=(426-449)/(375-428))である(図5を参照)。また、前記始点のX座標(=428)は、前記終点のX座標(=375)よりも大きい。したがって、前述した(F)に該当するので、ベクトルIDは「右→左」となる。よって、前述した(S)に該当するので、位置IDは「左(=7)」となる。
 次に、オブジェクト生成部24は、直線ストローク32(ストローク1)の位置IDを求める。この場合、オブジェクト認識部26は、基準となるストロークとして、S字ストローク31(ストローク0)を採用する。オブジェクト生成部24は、基準となるS字ストローク31の内接矩形の中心座標を始点とし、位置IDを求める対象の直線ストローク32の内接矩形の中心座標を終点とするベクトルを求める。そして、オブジェクト生成部24は、このベクトルのベクトルIDを求める。
 この場合、始点と終点のX座標は、同じである(図5を参照)。またh、始点のY座標は終点のY座標より小さい(図5を参照)。したがって、前述した(I)に該当するので、ベクトルIDは「下→上」となる。よって、前述した(M)に該当するので、位置IDは「上(=1)」となる。
 以下、同様に、点ストローク33、34(ストローク2、3)の位置IDを求めると、「左(=7)」、「上(=1)」、「左(=7)」、「右(=3)」の4つの位置IDが求まる。なお、点ストローク33、34(ストローク2、3)の位置IDは、それぞれ「左(=7)」、「右(=3)」である。
 オブジェクト生成部24は、これらの位置IDを、図12に示すように、セーニョマークオブジェクトの位置ID配列に記憶する。なお、図12では、基準となるストロークを基準ストロークと表記すると共に、位置IDを求める対象となるストロークを当該ストロークと表記する。
 以上のように、オブジェクト生成部24は、オブジェクトの各ストロークのストローク配列に、当該ストロークのストローク情報を記憶する。さらに、オブジェクト生成部24は、オブジェクトの各ストロークの位置ID配列に、当該ストロークの位置IDを記憶する。
 図10の説明に戻り、ステップS107において、ストローク認識部25およびオブジェクト認識部26は、ストローク・オブジェクト認識処理を行う。ストローク・オブジェクト認識処理では、オブジェクトを構成するストロークが何の記号であるのかが認識された後に、オブジェクトが何の記号であるのかが認識される。
 図13のフローチャートを参照しながら、図10のステップS107で行われるストローク・オブジェクト認識処理の一例を説明する。
 ステップS131において、ストローク認識部25は、ストロークを認識するストローク認識処理を行う。ストローク認識処理の詳細については後述する。
 次に、ステップS132において、ストローク認識部25は、他に未認識のストロークがあるか否かを判断する。この判断の結果、未認識のストロークがある場合にはステップS131に戻る。そして、ストローク認識部25は、未認識のストロークについてストローク認識処理を行う。一方、未認識のストロークがない場合にはステップS133に進む。
 次に、ステップS133において、オブジェクト認識部26は、オブジェクトを認識するオブジェクト認識処理を行う。オブジェクト認識処理の詳細については後述する。
 図13に示すように、ストローク認識部25が、オブジェクトに記憶した各ストロークの認識を行った後に、オブジェクト認識部26が、オブジェクトの認識を行う。
 図14のフローチャートを参照しながら、図13のステップS131で行われるストローク認識処理の一例を説明する。
 ステップS141において、ストローク認識部25は、認識対象のストロークに含まれるベクトルの数に応じた処理の分岐を行う。認識対象のストロークが、1個のベクトルで構成されたストロークであれば、ステップS142に進む。認識対象のストロークが、2個のベクトルで構成されたストロークであれば、ステップS143に進む。認識対象のストロークが、その他のストロークであればステップS144に進む。
 ステップS142に進むと、ストローク認識部25は、1個のベクトルで構成されたストロークの認識処理を行う。ストローク認識部25は、例えば、1個のベクトルで構成されたストロークのストローク情報に含まれるベクトルIDによって、当該ストロークが、縦線、横線、斜め右上がり線、斜め左上がり線、および点のうち、いずれの図形であるのかを認識する。例えば、当該ストロークのストローク情報に含まれるベクトルIDが「右下→左上」または「左上→右下」であれば、当該ストロークは、斜め左上がり線となる。
 ステップS143に進むと、ストローク認識部25は、2個のベクトルで構成されたストロークの認識処理を行う。本実施形態においては、図15に示す4つの記号を認識する場合を例に挙げて説明する。
 図16に、2個のベクトルで構成されたストロークのストローク情報に含まれる2個のベクトルIDと、記号との関係の一例を示す。図16において、ベクトル1のIDの欄と、ベクトル2のIDの欄に示されているのが、1個のストロークを構成する2個のベクトルのベクトルIDである。ベクトル1のIDの欄と、ベクトル2のIDの欄に対応する記号の欄に示されているのが、前記2個のベクトルのベクトルIDに対応するストロークの記号である。
 図16に示す関係1600は、例えばテーブルとして手書き音楽記号認識装置10に予め登録される。2つのベクトルIDの組み合わせが図16に示す組み合わせ以外の組み合わせである場合、ストローク認識部25は、当該ストロークに該当する記号はないと判断する。
 図16に示す例では、ベクトル1のIDが「左下→右上」であり、且つ、ベクトル2のIDが「右上→左下」である場合のように、ストロークの記号として2つの記号が候補に挙がる場合がある。この場合、ストローク認識部25は、ストロークの内接矩形が縦長であるか、それとも横長であるかを判断する。この判断の結果、ストロークの内接矩形が縦長であれば、ストローク認識部25は、当該ストロークをブレスまたはアクセントであると認識する(図15を参照)。一方、ストロークの内接矩形が横長であれば、ストローク認識部25は、当該ストロークをクレシェンドまたはデクレシェンドであると認識する(図15を参照)。なお、図15には、各ストローク(記号)の内接矩形の中心座標Cを、各ストローク(記号)と共に示す。
 図14の説明に戻り、ステップS144に進むと、ストローク認識部25は、それ以外(ストロークが3個以上のベクトルで構成されている場合)のストロークの認識処理を行う。
 ここで、図17に示す記号を認識する処理を、図18のフローチャートを参照しながら説明する。図18のフローチャートは、ステップS144で行われる処理の一例を説明するフローチャートである。
 ステップS181において、ストローク認識部25は、認識対象のストロークの特徴量うち、回転方向を参照し、当該回転方向が変化する回数を数え、その数に応じた処理の分岐を行う。認識対象のストロークの回転方向が変化する回数が0回であれば、ステップS182に進む。認識対象のストロークの回転方向が変化する回数が1回であれば、ステップS183に進む。認識対象のストロークの回転方向が変化する回数が2回であれば、ステップS184に進む。本実施形態においては、認識対象のストロークの回転方向が変化する回数が0回、1回、および2回以外であれば、ストローク認識部25は、当該ストロークに該当する記号はないと判断する。
<回転方向が変化する回数が0回の場合>
 ステップS182において、ストローク認識部25は、「S」および「ト音記号」以外の判定を以下の手順で行う。
(1)ストローク認識部25は、認識対象のストロークに鋭角点があるか否かを、当該ストロークの接続タイプに基づいて判断する(図5、図7を参照)。この判断の結果、認識対象のストロークに鋭角点があれば、ストローク認識部25は、当該ストロークに該当する記号はないと判断する。
(2)ストローク認識部25は、認識対象のストロークの回転角度の合計を求め、その結果に基づいて、記号を認識する(図5を参照)。
(2-1)回転角度の合計が180°以下である場合
 ストローク認識部25は、認識対象のストロークの回転角度の合計が180°以下である場合、当該ストロークの記号を、以下の(2-1-1)、(2-1-2)、(2-1-3)、(2-1-4)、(2-1-5)に示す条件に従って認識する。
(2-1-1)
 ストローク認識部25は、認識対象のストロークの左右移動方向に「右(=2)」があり、「左(=1)」がない場合、認識対象のストロークの記号を、以下の(2-1-1-1)、(2-1-1-2)のようにして認識する(図5を参照)。
(2-1-1-1)
 ストローク認識部25は、認識対象のストロークの最上点Indexに基づいて、当該ストロークの最上点が、当該ストロークの始点および終点以外である場合、当該ストロークの記号は、上弧線であると認識する(図17を参照)。
(2-1-1-2)
 ストローク認識部25は、認識対象のストロークの最上点Indexに基づいて、当該ストロークの最上点が、当該ストロークの始点または終点である場合、当該ストロークの記号は、下弧線であると認識する(図17を参照)。
(2-1-2)
 ストローク認識部25は、認識対象のストロークの左右移動方向に「右(=2)」がなく、「左(=1)」がある場合、認識対象のストロークの記号を、以下の(2-1-2-1)、(2-1-2-2)のようにして認識する(図5を参照)。
(2-1-2-1)
 ストローク認識部25は、認識対象のストロークの最上点Indexに基づいて、当該ストロークの最上点が、当該ストロークの始点および終点以外である場合、当該ストロークの記号は、上弧線であると認識する(図17を参照)。
 ストローク認識部25は、認識対象のストロークの最上点Indexに基づいて、当該ストロークの最上点が、当該ストロークの始点または終点である場合、当該ストロークの記号は、下弧線であると認識する(図17を参照)。
(2-1-3)
 ストローク認識部25は、認識対象のストロークの上下移動方向に「下(=2)」があり、「上(=1)」がない場合、認識対象のストロークの記号を、以下の(2-1-3-1)、(2-1-3-2)のようにして認識する(図5を参照)。
(2-1-3-1)
 ストローク認識部25は、認識対象のストロークの最左点Indexに基づいて、当該ストロークの最左点が、当該ストロークの始点および終点以外である場合、当該ストロークの記号は、左弧線であると認識する(図17を参照)。
(2-1-3-2)
 ストローク認識部25は、認識対象のストロークの最左点Indexに基づいて、当該ストロークの最左点が、当該ストロークの始点または終点である場合、当該ストロークの記号は、右弧線であると認識する(図17を参照)。
(2-1-4)
 ストローク認識部25は、認識対象のストロークの上下移動方向に「下(=2)」がなく、「上(=1)」がある場合、認識対象のストロークの記号を、以下の(2-1-4-1)、(2-1-4-2)のようにして認識する(図5を参照)。
(2-1-4-1)
 ストローク認識部25は、認識対象のストロークの最左点Indexに基づいて、当該ストロークの最左点が、当該ストロークの始点および終点以外である場合、当該ストロークの記号は、左弧線であると認識する(図17を参照)。
(2-1-4-2)
 ストローク認識部25は、認識対象のストロークの最左点Indexに基づいて、当該ストロークの最左点が、当該ストロークの始点または終点である場合、当該ストロークの記号は、右弧線であると認識する(図17を参照)。
(2-1-5)
 ストローク認識部25は、前記(2-1-1)、(2-1-2)、(2-1-3)、および(2-1-4)の何れにも該当しない場合、認識対象のストロークに該当する記号はないと判断する。
(2-2)回転角度の合計が360°を上回る場合
 ストローク認識部25は、認識対象のストロークの回転角度の合計が360°を上回る場合、認識対象のストロークの記号は多重円であると認識する。
(2-3)回転角度の合計が180°以下でも360°超でもない場合
 ストローク認識部25は、認識対象のストロークの回転角度の合計が、前記(2-1)および前記(2-2)で示す範囲以外である場合、当該ストロークの記号は、円または楕円であると認識する。具体的に、ストローク認識部25は、以下のようにして、認識対象のストロークが円および楕円の何れの記号であるのかを認識する。
 図19は、認識対象のストロークが円および楕円の何れの記号であるのかを認識する方法の一例を説明する図である。
 まず、ストローク認識部25は、認識対象のストロークの最左点と最右点とを結ぶ直線191の方程式を求める。ここで、直線191の長さを長径と称する。
 次に、ストローク認識部25は、認識対象のストロークの各点(ベクトルの始点および終点)から直線191に下した垂線の足を求める。
 次に、ストローク認識部25は、認識対象のストロークの各点とその垂線の足との長さのうち、最も長いものを楕円の半短径とする。図19では、直線192が、楕円の半短径である場合を例に挙げて示す。
 次に、ストローク認識部25は、半短径×2(=短径)と、前記長径との比を求める。
 次に、ストローク認識部25は、前記求めた比が、ほぼ1:1である場合、認識対象のストロークの記号は、円であると認識する。一方、ストローク認識部25は、前記求めた比が、ほぼ1:1でない場合、認識対象のストロークの記号は、楕円であると認識する。
<回転方向が変化する回数が1の場合>
 ステップS183において、ストローク認識部25は、認識対象のストロークの記号が「S」であるか否かを判定する。
 図20は、「S」の回転方向が変化するポイント201の一例を示す図である。
 まず、ストローク認識部25は、認識対象のストロークの回転方向が変化するポイント201の前後のベクトルの数を導出する。ストローク認識部25は、前記導出したベクトルの数が、弧を描ける数(3個)に満たなければ、認識対象のストロークに該当する記号はないと判断する。
 図20に示す例では、「S」の回転方向が変化するポイント201よりも前のベクトルの数は7つである。一方、「S」の回転方向が変化するポイント201よりも後のベクトルの数は5つである。
 したがって、ストローク認識部25は、「S」の回転方向が変化するポイント201の前後のベクトルの数は、弧を描ける数であると判断する。
 なお、図20に示す例では、ベクトルの数は12個であり、3個以上ある。
 また、ストローク認識部25は、「S」の回転方向が変化するポイント201の前のベクトルであるか、それとも後のベクトルであるかを、例えば、ベクトルIndexに基づいて判断することができる。
 次に、ストローク認識部25は、認識対象のストロークの回転方向が変化するポイントまでのベクトルの回転角度の合計の絶対値と、当該ポイント以降のベクトルの回転角度の合計の絶対値とが、共に100°以上である場合、認識対象のストロークの記号は「S」であると認識する。一方、そうでない場合、ストローク認識部25は、認識対象のストロークの記号は「S」でないと判断する。
 図20に示す例では、ポイント201までのベクトルの回転角度の合計の絶対値は257°であり、ポイント201以降のベクトルの回転角度の合計の絶対値は220°である。したがって、ストローク認識部25は、認識対象のストロークの記号は「S」であると認識できる。
<回転方向が変化する回数が2回の場合>
 ステップS184において、ストローク認識部25は、認識対象のストロークの記号が「ト音記号」であるか否かを判定する。
 図21は、認識対象のストロークの記号が「ト音記号」であるか否かを判定する方法の一例を説明する図である。
 ストローク認識部25は、以下の(U)、(V)、(W)の3つの条件の全てを満たす場合に、認識対象のストロークの記号は「ト音記号」であると判定し、そうでない場合に、認識対象のストロークの記号は「ト音記号」でないと判定する。
 (U)認識対象のストロークの回転方向が、時計回りから反時計回りに変化する第1のポイントと、反時計回りから時計回りに変化する第2のポイントとがそれぞれ1つずつ存在する。
 (V)認識対象のストロークの回転方向が、時計回りから反時計回りに変化する第1のポイントが、当該ストロークの内接矩形の中心よりも上にある。
 (W)認識対象のストロークの回転方向が、反時計回りから時計回りに変化する第2のポイントが、当該ストロークの内接矩形の中心よりも下にある。
 図21に示す例では、第1のポイント211と第2のポイント212とがそれぞれ1つずつ存在する。第1のポイント211は、ストロークの内接矩形の中心213よりも上にある。第2のポイント212は、ストロークの内接矩形の中心213よりも下にある。したがって、ストローク認識部25は、図21に示すストロークは、「ト音記号」であると判定する。
 次に、図13のフローチャートのS133で行われるオブジェクト認識処理について説明する。
 以下においては、認識対象のオブジェクトが、セーニョマークである場合を例に挙げて説明する。タッチディスプレイ17の画面に描かれた記号がセーニョマークとして判定されるためには、以下の条件1、条件2、および条件3を満たす必要がある。
 条件1:「S」、「斜め線右上がり」、「点」、および「点」の4つのストロークでオブジェクトが構成されている。
 条件2:「S」の内接矩形の中心と「斜め線右上がり」の内接矩形の中心との距離が閾値以下である(これらの中心が近い位置にある)。
 条件3:「S」の内接矩形の中心または「斜め線右上がり」の内接矩形の中心の左右に「点」がある。
 図3に示す例では、S字ストローク31(ストローク0)に対する直線ストローク32(ストローク1)の位置IDは「上(=1)」である(図12を参照)。したがって、X軸方向に関しては、S字ストローク31(ストローク0)と直線ストローク32(ストローク1)は近い位置にある。
 また、S字ストローク31(ストローク0)の内接矩形の中心のY座標と、直線ストローク32(ストローク1)の内接矩形の中心のY座標とは、20しか離れていない(図5を参照)。したがって、これらの中心は、近いとみなせる(条件2を満たす)。
 直線ストローク32(ストローク1)に対する点ストローク33(ストローク2)の位置IDは「左(=7)」である(図12を参照)。また、直線ストローク32(ストローク1)の内接矩形の中心のY座標と、点ストローク34(ストローク3)の内接矩形の中心のY座標との差は3である(図5を参照)。また、直線ストローク32(ストローク1)の内接矩形の中心のX座標は、点ストローク34(ストローク3)の内接矩形の中心のX座標よりも53小さい(図5を参照)。したがって、点ストローク34(ストローク3)は、直線ストローク32(ストローク1)の右に位置する。
 よって、図3に示す例では、条件1~3を満たすため、オブジェクト認識部26は、認識対象のオブジェクトは、セーニョマークであると認識することができる。
 ストローク・オブジェクト認識処理においては、1つのストロークの入力が終了してから、一定時間内に別のストロークの入力があれば、ストローク認識部25およびオブジェクト認識部26は、その入力が完了するまで待機する。一方、1つのストロークの入力が終了してから、一定時間内に別のストロークの入力がなければ、ストローク認識部25は、未認識のストロークを認識してオブジェクトに登録する処理を行い、オブジェクト認識部26は、そのオブジェクトを認識する処理を行う。
 また、このようにせずに、図22に示すように、手書き音楽記号認識装置10は、認識開始指示を行わせるために、タッチディスプレイ17の画面(タッチパネル220)に、ユーザーが操作可能な認識実行ボタン221を表示してもよい。この場合、ユーザーは、入力手段を用いて、タッチディスプレイ17の画面に全てのストローク(楕円、縦線)を描いた後、認識実行ボタン221を操作する。認識実行ボタン221が操作されると、ストローク認識部25およびオブジェクト認識部26は、ストローク・オブジェクト認識処理を開始する。ストローク認識部25は、未認識のストロークを認識してオブジェクトに登録する処理を行い、オブジェクト認識部26は、そのオブジェクトを認識する処理を行う。
 本実施形態の手書き音楽記号認識装置10は、タッチディスプレイ17の画面に予め五線222を表示する。オブジェクト認識部26は、オブジェクトが音符に対応する図形(例えば円や楕円)であると認識した場合、当該オブジェクトを音符として認識する。そして、オブジェクト認識部26は、前記認識した音符の五線222における位置に基づいて当該音符の音高を認識する。
 図22に示す例では、オブジェクトの楕円部分が第1線と第2線との間にある。したがって、オブジェクト認識部26は、タッチディスプレイ17の画面に描からえたオブジェクトが、音程が「ファ」である2分音符223であると認識する。
 次に、複数のストロークからなるオブジェクトの一例として、シャープ記号「♯」を認識する方法の一例を説明する。
 図23Aは、シャープ記号のストロークの一例を示す図である。
 図23Aに示すように、シャープ記号「♯」は、4つのストロークStroke1、Stroke2、Stroke3、Stroke4により構成される。
 図23Bは、シャープ記号用のデータベース230(辞書データ)の一例を示す図である。シャープ記号用のデータベース230(辞書データ)は、手書き音楽記号認識装置10に予め登録される。
 図23Aに示すような複数のストロークで構成される記号は、図23Bに示すようなデータベース(辞書データ)を有する。なお、辞書データは、1つのストロークが何の記号であるのかを記憶したものである。辞書データは、実際の座標データや、それに基づいて作成されたベクトル情報を記憶するものではない。
 シャープ記号用のデータベース230(辞書データ)は、Stroke1として、「右上斜め」、「横」、「右上斜め」、「横」を記憶する。
 シャープ記号用のデータベース230(辞書データ)は、Stroke2として、「横」、「右上斜め」、「右上斜め」、「横」を記憶する。
 シャープ記号用のデータベース230(辞書データ)は、Stroke3およびStroke4として、「縦」、「縦」、「縦」、「縦」を記憶する。
 図24Aは、図23Aに示す各ストロークStroke1、Stroke2、Stroke3、Stroke4の重心241、242、243、244の一例を示す図である。
 図24Bは、図23Aに示す各ストロークStroke1、Stroke2、Stroke3、Stroke4の重心241、242、243、244の位置関係240の一例を示す図である。図24Bに示す位置関係240は、例えばテーブルとして手書き音楽記号認識装置10に予め登録される。
 図24Bにおいて、ストロークStroke1の重心241を始点とし、ストロークStroke2の重心242を終点とするベクトルの方向として、「下」、「下」、「右下」、「右下」が登録される(図24Bの「1→2」の欄を参照)。
 ストロークStroke2の重心242を始点とし、ストロークStroke3の重心243を終点とするベクトルの方向として、「左上」、「上」、「上」、「左上」が登録される(図24Bの「2→3」の欄を参照)。
 ストロークStroke3の重心243を始点とし、ストロークStroke4の重心244を終点とするベクトルの方向として、「右」、「右」、「右」、「右」が登録される(図24Bの「3→4」の欄を参照)。
 図23Bにおいて横に一列に並べられた4つの組み合わせが、シャープ記号としてとり得る4つのストロークStroke1、Stroke2、Stroke3、Stroke4の記号の組み合わせである。また、図24Bにおいては、縦に一列に並べられた3つの組み合わせが、シャープ記号としてとり得る4つのストロークStroke1、Stroke2、Stroke3、Stroke4の重心の組み合わせである。
 オブジェクト認識部26は、4つのストロークStroke1、Stroke2、Stroke3、Stroke4が、図23Bおよび図24Bの関係を満たす場合、当該4つのストロークで構成される記号は、シャープ記号であると認識する。
 シャープ記号以外の音楽記号であって、複数のストロークからなる音楽記号についても、図23Bに示すような各ストロークの記号と、図24Bに示すような各ストロークの重心の位置関係を予め登録することにより、認識することができる。
 以上のように本実施形態では、音楽記号を構成するベクトルの特徴点を評価して音楽記号を認識する。したがって、手書き入力された音楽記号を、膨大なデータを保持することなく正確に認識することができる。
 本実施形態においては、音楽記号を認識する例を示したが、本発明の手書き音楽記号認識装置は、「Coda」などの文字や、数字なども認識することが可能である。
[第2の実施形態]
 次に、第2の実施形態を説明する。第1の実施形態では、タッチ情報取得部21で、入力手段の移動がある度に得られるベクトルをそのまま用いる場合を例に挙げて説明した。これに対し、本実施形態では、複数のベクトルを所定の条件に従って1つのベクトルにまとめるまとめ処理を行う。これにより、ベクトルの数を圧縮することができる。このように本実施形態と第1の実施形態とは、まとめ処理を行うことによる構成および処理が主として異なる。具体的には、ベクトル情報作成部22における処理の一部が主として異なる。したがって、本実施形態の説明において、第1の実施形態と同一の部分については、図1~図24Bに付した符号と同一の符号を付すなどして詳細な説明を省略する。
 本実施形態では、まとめ処理として4つの例を説明する。
<第1の例>
 本例においては、複数の微小なベクトルをまとめてある程度の大きさのベクトルに変換するベクトル変換処理について説明する。
 図25は、複数の微小なベクトルをまとめる方法の第1の例を説明する図である。図25では、10個の微小なベクトルa1~a10をまとめて、ある程度の大きさの2つのベクトルb1、b2に変換する場合を例に挙げて示す。
 本例では、ストローク情報のベクトル配列として、第1~第3のベクトル配列がある。
 第1のベクトル配列には、微小なベクトルのベクトル情報(座標・ベクトルID・大きさ)が記憶される。第1のベクトル配列は、第1の実施形態で説明したベクトル配列である。
 第2のベクトル配列には、変換対象となる微小なベクトルのベクトル情報が記憶される。
 第3のベクトル配列には、変換後のベクトルのベクトル情報が記憶される。
 図26のフローチャートを参照しながら、複数の微小なベクトルをまとめるまとめ処理の第1の例を説明する。図26のフローチャートは、例えば、図10のステップS104において第1のベクトル配列に微小なベクトルのベクトル情報が記憶されると実行される。
 ステップS261において、ベクトル情報作成部22は、第1のベクトル配列の先頭の微小なベクトルから順に、未選択の微小なベクトルを1つ選択する。そして、ベクトル情報作成部22は、前記選択した微小なベクトルのベクトル情報を第2のベクトル配列にコピー(追加)する。このとき、ベクトル情報作成部22は、第2のベクトル配列の空きの部分の先頭に、前記選択した微小なベクトルのベクトル情報をコピー(追加)する。
 次に、ステップS262において、ベクトル情報作成部22は、第2のベクトル配列の最初の微小なベクトルの始点を始点とし、第2のベクトル配列の最後の微小なベクトルの終点を終点とするベクトルであるテストベクトルを生成する。そして、ベクトル情報作成部22は、前記作成したテストベクトルの大きさを求める。
 次に、ステップS263において、ベクトル情報作成部22は、テストベクトルの大きさが規定値を上回るか否かを判断する。この判断の結果、テストベクトルの大きさが規定値を上回れば、ステップS264に進む。一方、テストベクトルの大きさが規定値以内であれば、ステップS261に戻る。そして、ステップS261において、ベクトル情報作成部22は、次の微小なベクトルのベクトル情報を、第1のベクトル配列から第2のベクトル配列へコピー(追加)する。
 そして、ステップS262において、ベクトル情報作成部22は、第2のベクトル配列の最初の微小なベクトルの始点を始点とし、今回追加された微小なベクトルの終点を終点とするテストベクトルを生成し、その大きさを求める。
 ベクトル情報作成部22は、以上のような処理を、テストベクトルの大きさが規定値を上回るまで繰り返し行う。そして、前述したように、テストベクトルの大きさが規定値以上になるとステップS264に進む。
 ステップS264に進むと、ベクトル情報作成部22は、ステップS263で大きさが規定値を上回ると判断したテストベクトルのベクトル情報(座標・ベクトルID・大きさ)を、第3のベクトル配列に登録すると共に、第2のベクトル配列を空にする。
 次に、ステップS265において、ベクトル情報作成部22は、第1のベクトル配列に未処理の微小なベクトルがあるか否かを判断する。この判断の結果、未処理のベクトルがなければ、図26のフローチャートによる処理を終了する。一方、未処理のベクトルがあれば、ステップS261に戻る。
 ストローク特徴量導出部23は、図10のステップS104において、第3のベクトル配列に登録されたベクトル情報に基づいて、ストロークの特徴量を導出し、ストローク情報に記憶する。
 図26のフローチャートを実行することにより、複数の微小なベクトルをまとめて、ある程度の大きさのベクトルに変換することができる。これにより、データの圧縮を行うことができると共に、記号の特徴を掴みやすくすることができる。
<第2の例>
 本例においては、直線ベクトルのゆらぎを補正する処理を説明する。
 人間が指やペンなどの入力手段で、タッチディスプレイ17の画面に直線を描くとき、直線が揺らぐ場合がある。この揺らぎを吸収し、1つの直線にする処理をしないと、ストローク認識部25が、正しくは直線と判定すべきストロークを、例えば、弧線であると誤判定する場合がある。
 図27は、複数の微小なベクトルをまとめる方法の第2の例を説明する図である。
 本例においては、図27に示すように、ベクトル情報作成部22は、最初のベクトルの始点と最後のベクトルの終点とを結ぶ直線からの距離が規定値以内であれば、最初のベクトルから最後のベクトルまでを、1つのベクトルにまとめる。そして、ベクトル情報作成部22は、1つにまとめる前の元のベクトルのベクトル情報(座標・ベクトルID・大きさ)を、1つにまとめたベクトルのベクトル情報(座標・ベクトルID・大きさ)に置き換える。
 図28のフローチャートを参照しながら、複数の微小なベクトルをまとめるまとめ処理の第2の例を説明する。図28のフローチャートは、例えば、図10のステップS104においてベクトル配列にベクトルのベクトル情報が記憶されると実行される。
 ステップS281において、ベクトル情報作成部22は、最初のベクトル271aの始点と最後のベクトル271eの終点を結ぶ直線272の方程式を求める。
 次に、ステップS282において、ベクトル情報作成部22は、最初のベクトル271aから最後のベクトル271eまでのベクトル271a~271eのうち、未選択のベクトルを1つ選択する。そして、ベクトル情報作成部22は、前記選択したベクトルの終点から、ステップS281で求めた直線272に垂線を下ろし、その垂線の足(垂線と直線272との交点)と、前記選択したベクトルの終点との距離を求める。
 次に、ステップS283において、ベクトル情報作成部22は、ステップS282で求めた距離が、規定値以内であるか否かを判断する。この判断の結果、ステップS282で求めた距離が、規定値以内でなければ、図28のフローチャートによる処理を終了する。
 一方、ステップS282で求めた距離が、規定値以内であれば、ステップS284に進む。
 ステップS284に進むと、ベクトル情報作成部22は、未処理のベクトルがあるか否かを判断する。この判断の結果、未処理のベクトルがあれば、ステップS282に戻る。そして、ベクトル情報作成部22は、次のベクトルの処理を行う。一方、未処理のベクトルがなければ、ステップS285に進む。
 ステップS285に進むと、ベクトル情報作成部22は、ベクトルの置き換えを行う。すなわち、ベクトル情報作成部22は、ストローク情報のベクトル配列の最初のベクトルの始点を始点とし、最後のベクトルの終点を終点とするベクトルのベクトル情報を生成する。そして、ベクトル情報作成部22は、ストローク情報のベクトル配列に記憶されていた元のベクトルのベクトル情報を全て削除し、生成したベクトルのベクトル情報をベクトル配列に記憶する。そして、図28のフローチャートによる処理を終了する。
 ストローク特徴量導出部23は、図10のステップS104において、ベクトル配列に登録されたベクトル情報に基づいて、ストロークの特徴量を導出し、ストローク情報に記憶する。このとき、図28のフローチャートに従って、ベクトル情報が書き換えられた場合、ストローク特徴量導出部23は、当該書き換えられたベクトル情報に基づいて、ストロークの特徴量を導出する。一方、図28のフローチャートに従って、ベクトル情報が書き換えられなかった場合、ストローク特徴量導出部23は、個々のベクトル情報に基づいて、ストロークの特徴量を導出する。
 図28のフローチャートを実行することにより、最初のベクトルの始点と最後のベクトルの終点とを結ぶ直線からの距離が規定値以内であれば、最初のベクトルから最後のベクトルまでの複数の微小なベクトルを1つのベクトルにまとめることができる。これにより、データの圧縮を行うことができると共に、記号の特徴を掴みやすくすることができる。
<第3の例>
 本例においては、ベクトルを方向別にグルーピングし、同じグループのベクトルが連続した場合は、それらを1つにまとめる処理を説明する。
 図29Aは、ベクトルを方向別にグルーピングする方法の一例を説明する図である。図29Aに示す例では、ベクトル情報作成部22は、ベクトルの傾きに基づいて、ベクトルを9つにグルーピングする。
 本例においては、ベクトル情報作成部22は、ベクトルIDを用いてベクトルをグルーピングする。
 図4を参照しながら説明した例では、ベクトルIDは、「点」、「下→上」、「左下→右上」、「左→右」、「左上→右下」、「上→下」、「右上→左下」、「右→左」、「右下→左上」の9つのIDである。ベクトルIDの与え方は、図4を参照しながら前述した通りである(前述した(A)~(K)を参照)。尚、ベクトル情報作成部22は、ベクトルIDとは別に、グルーピング用のIDを、各ベクトルに与えてもよい。
 図29Bは、複数の微小なベクトルをまとめる方法の第3の例を説明する図である。
 図29Bでは、6つのベクトルb1~b6で構成されたストロークを例に挙げて示す。
 最初の3つのベクトルb1、b2、b3のベクトルIDは「左→右」である。この場合、図29Bの下図に示すように、ベクトル情報作成部22は、最初のベクトルb1の始点を始点とし、3つ目のベクトルb3の終点を終点とするベクトルc1を生成すると共に、ベクトルc1のベクトル情報(座標・ベクトルID・大きさ)を導出する。
 そして、ベクトル情報作成部22は、元の3つのベクトルb1、b2、b3のベクトル情報を、ベクトルc1のベクトル情報に置き換える。さらに4つ目から6つ目のベクトルb4、b5、b6のベクトルIDは「上→下」である。この場合もベクトル情報作成部22は、4つ目のベクトルb4の始点を始点とし、6つ目のベクトルb6の終点を終点とするベクトルc2を生成し、この3つのベクトルと置き換える。
 図30のフローチャートを参照しながら、複数の微小なベクトルをまとめるまとめ処理の第3の例を説明する。図30のフローチャートは、例えば、図10のステップS104においてベクトル配列にベクトルのベクトル情報が記憶されると実行される。
 ステップS301において、ベクトル情報作成部22は、ベクトル配列における先頭からn個目のベクトルを基準ベクトルとしてコピーする。nの初期値は1である。
 次に、ステップS302において、ベクトル情報作成部22は、基準ベクトルのベクトルIDと、ベクトル配列における先頭からn+m個目のベクトルのベクトルIDとが同じであるか否かを判断する。mの初期値は1である。
 この判断の結果、基準ベクトルのベクトルIDと、ベクトル配列における先頭からn+m個目のベクトルのベクトルIDとが同じである場合には、ステップS303に進む。一方、基準ベクトルのベクトルIDと、ベクトル配列における先頭からn+m個目のベクトルのベクトルIDとが、異なる場合には、ステップS304に進む。
 ステップS303に進むと、ベクトル情報作成部22は、基準ベクトルの終点を、n+m個目のベクトルの終点に変更する。そして、ベクトル情報作成部22は、前記変更した終点の位置に基づいて、基準ベクトルのベクトルIDを計算し直す。さらに、ベクトル情報作成部22は、mをインクリメント(mに1を加算)する。そして、後述するステップS305に進む。
 一方、ステップS304に進むと、ベクトル情報作成部22は、現在の基準ベクトルのベクトル情報を、ベクトル配列に記憶する。このとき、ベクトル情報作成部22は、現在の基準ベクトルのベクトル情報を、当該基準ベクトルの元になったベクトルのベクトル情報に置き換える。さらに、ベクトル情報作成部22は、n=n+mとする。そして、後述するステップS306に進む。
 ステップS305に進むと、ベクトル情報作成部22は、ベクトル配列における全てのベクトルの処理が終了しているか否かを判断する。この判断の結果、ベクトル配列における全てのベクトルの処理が終了している場合には、図30のフローチャートによる処理を終了する。
 一方、ベクトル配列における全てのベクトルの処理が終了していない場合には、ステップS302に戻って前述した処理を行う。
 また、ステップS306に進むと、ベクトル情報作成部22は、ベクトル配列における全てのベクトルの処理が終了しているか否かを判断する。この判断の結果、ベクトル配列における全てのベクトルの処理が終了している場合には、図30のフローチャートによる処理を終了する。
 一方、ベクトル配列における全てのベクトルの処理が終了していない場合には、ステップS301に戻って前述した処理を行う。
 ストローク特徴量導出部23は、図10のステップS104において、ベクトル配列に登録されたベクトル情報に基づいて、ストロークの特徴量を導出し、ストローク情報に記憶する。このとき、ストローク特徴量導出部23は、図30のフローチャートに従って基準ベクトルとされたベクトルについては、当該基準ベクトルのベクトル情報に基づいて、ストロークの特徴量を導出する。
 図30のフローチャートを実行することにより、複数の微小なベクトルを、当該ベクトルの傾きをもとにグルーピングし、同じグループのベクトルが連続した場合には、それらのベクトルを1つのベクトルにまとめることができる。これにより、データの圧縮を行うことができると共に、記号の特徴を掴みやすくすることができる。
<第4の例>
 本例においては、傾きの閾値付近の複数のベクトルを1つのベクトルにまとめる処理を説明する。
 本例においては、複数のベクトルを方向別に分類するときに、ベクトルの傾きによってベクトルの分類を行う。人間が指やペンなどの入力手段で、タッチディスプレイ17の画面に、傾きの閾値に近い直線を描く場合がある。この場合、手のブレなどで、或るベクトルのベクトルIDは、傾きが閾値を超えた場合に付与されるベクトルIDとなり、別のベクトルのベクトルIDは、傾きが閾値以下の場合に付与されるベクトルIDとなることがある。そうすると、実際には同じベクトルIDとしたいベクトルのベクトルIDが異なるIDになり、前述した第3の例の方法でベクトルをまとめることができない場合がある。
 そこで、本例では、傾きの閾値付近の複数のベクトルを1つのベクトルをまとめる。
 ここでは、ベクトルの傾きaが、-2.0未満である場合、そのベクトルのベクトルIDは、「下→上」となるものとする(図4を参照)。また、ベクトルの傾きaが、-2.0~-0.5である場合、そのベクトルのベクトルIDは、「左下→右上」となるものとする(図4を参照)。また、ベクトルの傾きaが、-0.5以上である場合、そのベクトルのベクトルIDは、「左→右」となるものとする(図4を参照)。
 このようにベクトルIDを定める場合のまとめ処理を、図31Aおよび図31Bを参照しながら説明する。
 図31Aは、複数の微小なベクトルをまとめる方法の第4の例の第1の形態を説明する図である。また、図31Bは、複数の微小なベクトルをまとめる方法の第4の例の第2の形態を説明する図である。
 図31Aに示すように、ベクトル情報作成部22は、傾きaが-2.0に近いベクトルa1およびベクトルa2を、1つのベクトルa3にまとめる。
 図31Bに示すように、ベクトル情報作成部22は、傾きの閾値付近のベクトルb1、ベクトルb2、およびベクトルb3を、1つのベクトルb7にまとめる。また、ベクトル情報作成部22は、傾きの閾値付近のベクトルb4、ベクトルb5、およびベクトルb6を、1つのベクトルb8にまとめる。
 図32のフローチャートを参照しながら、複数の微小なベクトルをまとめるまとめ処理の第4の例を説明する。図32のフローチャートは、例えば、図10のステップS104においてベクトル配列にベクトルのベクトル情報が記憶されると実行される。
 ステップS321において、ベクトル情報作成部22は、ベクトル配列から、まとめるべきベクトルのIndex配列のリストを生成する。この処理の詳細は、図33のフローチャートを参照しながら後述する。
 次に、ステップS322において、ベクトル情報作成部22は、ステップS321で作成したリストにIndexがあるか否かを判断する。この判断の結果、リストのIndexが空の場合には、図32のフローチャートによる処理を終了する。
 一方、リストにIndexがある場合には、ステップS323に進む。
 ステップS323に進むと、ベクトル情報作成部22は、まとめベクトルを生成する。まとめベクトルは、Index配列において、最初のIndexのベクトルの始点を始点とし、Index配列の最後のベクトルの終点を終点とするベクトルである。そして、ベクトル情報作成部22は、まとめベクトルのベクトル情報(座標・ベクトルID・大きさ)を生成する。
 次に、ステップS324において、ベクトル情報作成部22は、ベクトル配列から、Index配列のIndexのベクトルのベクトル情報を削除する。
 次に、ステップS325において、ベクトル情報作成部22は、ベクトル配列の最初のIndexの位置に、まとめベクトルのベクトル情報を挿入する。その後、ステップS321へ戻り、まとめるベクトルのIndex配列を生成する。
 ストローク特徴量導出部23は、図10のステップS104において、ベクトル配列に登録されたベクトル情報に基づいて、ストロークの特徴量を導出し、ストローク情報に記憶する。このとき、図30のフローチャートに従って、まとめベクトルのベクトル情報が挿入された部分については、ストローク特徴量導出部23は、当該まとめベクトルのベクトル情報に基づいて、ストロークの特徴量を導出する。
 次に、図33のフローチャートを参照しながら、図32のステップS321の処理の一例を説明する。前述したように、ステップS321では、ベクトル配列から、まとめるべきベクトルのIndex配列のリストが生成される。
 ステップS331において、ベクトル情報作成部22は、ベクトルnのベクトルIDとベクトルn+1のベクトルID(方向)を調べ、ベクトルn、n+1が互いに隣り合うか否かを判断する。nの初期値は1である。また、nは、ベクトル配列におけるベクトルの先頭からの順番を示す。
 この判断の結果、ベクトルn、n+1が互いに隣り合うベクトルである場合、ベクトル情報作成部22は、ベクトルn、n+1の組み合わせに応じて、ベクトルnまたはベクトルn+1のベクトルIDを、一時記憶ベクトルIDとして記憶する。
 さらに、ベクトル情報作成部22は、互いに隣り合うベクトルn、n+1のベクトルIDの閾値が、X軸に近い傾きかどうかを示すX軸フラグを設定する。
 図34は、隣り合う2個のベクトルn、n+1のベクトルIDと、一時記憶ベクトルIDと、X軸フラグとの関係の一例を示す図である。図34に示す関係340は、ベクトル情報作成部22により作成される。
 次に、ステップS332において、ベクトル情報作成部22は、今回の一時記憶ベクトルIDと、前回の一時記憶ベクトルIDとに応じて処理の分岐を行う。
 具体的に、今回の一時記憶ベクトルIDが方向無でない場合には、ステップS333に進む(ケース1)。
 また、今回の一時記憶ベクトルIDが方向無であり、且つ、前回の一時記憶ベクトルIDも方向無である場合には、ステップS331に戻る(ケース2)。この際、ベクトル情報作成部22は、nをインクリメントする(nに1を加算する)。
 また、今回の一時記憶ベクトルIDが方向無であり、且つ、前回の一時記憶ベクトルIDが方向無以外である場合には、図33のフローチャートによる処理を終了する(ケース3)。
 ステップS333に進むと、ベクトル情報作成部22は、前回の一時記憶ベクトルIDと今回の一時記憶ベクトルIDとが同じであるか否かを判断する。この判断の結果、前回の一時記憶ベクトルIDと今回の一時記憶ベクトルIDとが同じである場合には、図33のフローチャートによる処理を終了する。
 一方、前回の一時記憶ベクトルIDと今回の一時記憶ベクトルIDとが異なる場合には、ステップS334に進む。
 ステップS334に進むと、ベクトル情報作成部22は、X軸フラグと一時記憶ベクトルIDとに応じて、ベクトルの閾値角度を決定する。
 図35は、X軸フラグと、一時記憶ベクトルIDと、閾値上限と、閾値下限との関係の一例を示す図である。なお、閾値上限および閾値下限は、X軸を0°としたときの角度である。図35に示す関係350は、例えばテーブルとして手書き音楽記号認識装置10に予め登録される。
 ベクトル情報作成部22は、図35に示す関係に基づいて、ベクトルの閾値角度(閾値上限および閾値下限)を決定する。さらに、ベクトル情報作成部22は、ベクトルnの角度と、ベクトルn+1の角度とを求める。なお、これらの角度は、X軸を0°とし、所定の方向(例えば反時計回りの方向を正とする)ときの角度である。図35に示す角度も、これらの角度と同じ基準で定められる角度である。
 次に、ステップS335において、ベクトル情報作成部22は、ベクトルnの角度およびn+1の角度がともに、ステップS334で決定した閾値角度の範囲内(閾値下限から閾値上限までの範囲内)であれば、まとめるべきベクトルのIndex配列に、ベクトルn+1のIndexを登録する。
 このとき、ベクトル情報作成部22は、n=1であれば、まとめるべきベクトルのIndex配列に、ベクトルnのIndexを登録してから、ベクトルn+1のIndexを登録する。そして、ステップS336に進む。
 一方、ベクトルnの角度またはベクトルn+1の角度が、ステップS334で決定した閾値角度の範囲内(閾値下限から閾値上限までの範囲内)でなければ、ベクトル情報作成部22は、一時記憶ベクトルIDを方向無に変更する。そして、ステップS336に進む。
 ステップS336に進むと、ベクトル情報作成部22は、今回と前回の一時記憶ベクトルIDを調べる。前回の一時記憶ベクトルIDが方向無ではなく、且つ、今回の一時記憶ベクトルIDと異なる場合には、図33のフローチャートによる処理を終了する(ケース1)。一方、それ以外の場合には、ステップS337に進む(ケース2)。
 ステップS337に進むと、ベクトル情報作成部22は、前回の一時記憶ベクトルIDに今回の一時記憶ベクトルIDを代入する。また、ベクトル情報作成部22は、nをインクリメントする(nに1を加算する)。そして、ステップS331へ戻る。
 図32、図33のフローチャートを実行することにより、傾きの閾値付近の複数のベクトルを1つのベクトルにまとめることができる。したがって、傾きの閾値に近い直線が描かれる際に、手のブレなどで、或るベクトルのベクトルIDが、傾きが閾値を超えた場合に付与されるベクトルIDとなり、別のベクトルのベクトルIDが、傾きが閾値以下の場合に付与されるベクトルIDになることを抑制することができる。これにより、データの圧縮を行うことができると共に、記号の特徴を掴みやすくすることができる。
 以上のように本実施形態では、手書き入力されることにより多くのベクトルが生成された記号を認識する際に必要な演算量を削減することができる。
 なお、前述した第1~第4の例の少なくとも2つを組み合わせてもよい。
[第3の実施形態]
 次に、第3の実施形態を説明する。第1の実施形態では、ストローク認識部25は、認識対象のストロークに鋭角点があるか否かを判断するために、ストロークの特徴量の1つである接続タイプを用いる場合を例に挙げて説明した。
 第1の実施形態で説明したように、人間の指やペンなどの入力手段の動きの特徴の1つとして、或るベクトルと、当該ベクトルの次に入力されるベクトルとの接続タイプがある。第1の実施形態で説明した例では、ベクトルは、鈍角(=1)、直角(=2)、鋭角(=3)、および、それらのいずれでもない(=0)の何れかの接続タイプに分類される。
 本実施形態では、ストローク認識部25は、ストロークの鋭角のところで、1つのストロークを複数のストロークに分割する。そして、ストローク認識部25は、分割したストロークのそれぞれを認識する。このようにすることで、ストローク認識部25は、分割した個々のストロークの形状を、より単純に認識することができると共に、当該分割した個々のストロークの位置関係によって、分割前のストロークの記号を簡単に、且つ、正確に認識することができる。
 このように本実施形態は、第1の実施形態に対し、ストローク認識部25がストロークを認識する際の処理として、前記処理を追加したものである。したがって、本実施形態の説明において、第1の実施形態と同一の部分については、図1~図24Bに付した符号と同一の符号を付すなどして詳細な説明を省略する。
 図36は、1つのストロークを複数のストロークに分割して認識する方法の一例を説明する図である。
 図36の左図に示す文字「2」においては、1番目のベクトルa1から5番目のベクトルa5までの接続タイプは鈍角であり、5番目のベクトルa5と6番目のベクトルa6の接続タイプは鋭角である。
 そこで、ストローク認識部25は、1~5番目のベクトルa1~a5と6番目のベクトルa6とを別のストロークとして認識する。そうすると、図36の右図に示すように、ストローク認識部25は、1~5番目のベクトルa1~a5と、6番目のベクトルa6とを分割する。そして、ストローク認識部25は、1~5番目のベクトルa1~a5からなるストロークの記号は、弧線b1であると認識する。また、ストローク認識部25は、6番目のベクトルa6からなるストロークの記号は、直線b2であると認識する。これらの認識の手法は、第1の実施形態で説明した通りである。このようにすれば、ストローク認識部25は、図36の左図のストロークの形状を認識する場合よりも、単純な形の認識を行うことができる。
 次に、図37のフローチャートを参照しながら、1つのストロークを複数のストロークに分割して認識する方法の一例を説明する。図37のフローチャートは、例えば、図14のステップS143およびステップS144で行われる。
 ステップS371において、ストローク認識部25は、入力順で隣り合う2つのベクトルの接続タイプを求め、当該接続タイプを接続タイプ配列に記憶する。図36に示すように文字「2」が入力された場合、ストローク認識部25は、鈍角(=1)、鈍角(=1)、鈍角(=1)、鈍角(=1)、鋭角(=3)を、この順で接続タイプ配列に記憶する。
 次に、ステップS372において、ストローク認識部25は、接続タイプ配列を基に、元のベクトル配列を、鋭角点の前にあるベクトルのベクトル配列と、鋭角点の後にあるベクトルのベクトル配列とに分ける。ベクトル配列は、鋭角点の数に1を加算した数(=鋭角点の数+1)だけ作成される。そして、ストローク認識部25は、元のベクトル配列を削除する。
 図36に示すように文字「2」が入力された場合、ストローク認識部25は、ベクトル配列を2個作成する。
 この場合、ストローク認識部25は、2個のベクトル配列のうちの第1のベクトル配列に、ベクトルa1~a5のベクトル情報(座標・ベクトルID・大きさ)を記憶する。また、ストローク認識部25は、前記2個のベクトル配列のうちの第2のベクトル配列に、ベクトルa6のベクトル情報(座標・ベクトルID・大きさを記憶する。
 次に、ステップS373において、ストローク認識部25は、ステップS372で作成したベクトル配列ごとに、当該ベクトル配列に含まれるベクトルにより構成されるストロークの形状を認識する。
 図36に示す例では、ストローク認識部25は、以下のようにして前記第1のベクトル配列に含まれるベクトルにより構成されるストロークの形状と前記第2のベクトル配列に含まれるベクトルにより構成されるストロークの形状とを認識する。
<第1のベクトル配列について>
 ストローク認識部25は、回転方向の変化が、時計回りおよび反時計回りのどちらでもないかを判断する。ストローク認識部25は、回転方向の変化を、例えば、ストローク特徴量導出部23により導出された回転方向を参照することにより判断することができる。図36に示す例では、前記第1のベクトル配列に含まれるベクトルの回転方向は、時計回りで一定である。
 また、ストローク認識部25は、回転角度の合計を導出する。図36に示す例では、前記第1のベクトル配列に含まれるベクトルの回転角度の合計は180°未満であり、回転方向が一定である。ストローク認識部25は、回転角度の合計を、例えば、ストローク特徴量導出部23により導出された回転角度を参照することにより判断することができる。
 以上のことから、ストローク認識部25は、前記第1のベクトル配列に含まれるベクトルで構成されるストロークは、弧線であると判断できる。
 さらに、ストローク認識部25は、前記第1のベクトル配列に含まれるベクトルについて、以下の(a)~(h)を導出する。そして、ストローク認識部25は、前記導出した結果に基づいて、前記第1のベクトル配列に含まれるベクトルで構成されるストロークがどのような弧線であるのかを判断する。
 (a)右へ向かうベクトルの数
 (b)左へ向かうベクトルの数
 (c)下へ向かうベクトルの数
 (d)上へ向かうベクトルの数
 (e)最も上のポイントのインデックス
 (f)最も下のポイントのインデックス
 (g)最も左のポイントのインデックス
 (h)最も右のポイントのインデックス
 ストローク認識部25は、前記(a)および前記(b)を、例えば、ストローク特徴量導出部23により導出された左右移動方向を参照することにより導出することができる。
 ストローク認識部25は、前記(c)および前記(d)を、例えば、ストローク特徴量導出部23により導出された上下移動方向を参照することにより導出することができる。
 ストローク認識部25は、前記(e)、(f)、(g)、(h)を、それぞれ、例えば、ストローク特徴量導出部23により導出された最上点Index、最下点Index、最左点Index、最右点Indexを参照することにより導出することができる。
 図36に示す例では、上から下へ向かうベクトルの数は1個以上であり、且つ、下から上へ向かうベクトルの数は0個である。また、最も右のポイントのインデックスの値は0ではなく、且つ、最も右のポイントのインデックスは最後のポイントではない。
 以上の条件より、ストローク認識部25は、前記第1のベクトル配列に含まれるベクトルで構成されるストロークは、左に開いた弧線であると認識する。
<第2のベクトル配列について>
 前記第2のベクトル配列に含まれるベクトルの数は1である。前記第2のベクトル配列に含まれるベクトルのベクトルIDは、「左→右」である。ベクトルIDは、ベクトル情報作成部22により作成されるものである。前述したように、ベクトルIDは、ベクトルの傾きと、ベクトルの始点・終点の関係とに基づいて導出される。
 したがって、ストローク認識部25は、前記第2のベクトル配列に含まれるベクトルで構成されるストロークは、横向きの直線であると認識する。
 次に、ステップS374において、ストローク認識部25は、各ストロークの形状と、当該各ストロークの位置関係とに基づいて、1つのストロークを生成して認識する。図36に示す例では、左に開いた弧線b1の下に、横向きの直線b2がある。したがって、ストローク認識部25は、これらを結合して1つのストロークを生成する。そして、ストローク認識部25は、前記生成したストロークは、文字「2」であると認識する。
 以上のように本実施形態では、手書き入力された記号のベクトルの角度が鋭角に変化する点でストロークを分割し、分割したストロークのそれぞれを個別に認識する。したがって、手書き入力された記号が複雑であっても、膨大なデータを保持することなく、当該記号を正確に認識することができる。
 本実施形態においては、文字「2」を認識する例を示したが、1つのストロークを鋭角的な変化点で分割し、それぞれを認識することが可能な種々の文字や記号を認識することが可能である。
 また、本実施形態を第2の実施形態と組み合わせて実現してもよい。
[その他の実施形態]
 以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD-ROM等のコンピュータ読み取り可能な記録媒体、またはかかるプログラムを伝送する伝送媒体も本発明の実施形態として適用することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体などのプログラムプロダクトも本発明の実施形態として適用することができる。前記のプログラム、コンピュータ読み取り可能な記録媒体、伝送媒体およびプログラムプロダクトは、本発明の範疇に含まれる。
 また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
 本発明は、例えば、指やペンなどの入力手段を用いて手書きで入力された記号を自動的に認識する装置に利用することができる。

Claims (20)

  1.  入力手段が画面に触れてから離れるまで、前記入力手段が移動するごとに前記入力手段の前記画面における位置を位置情報として取得するタッチ情報取得手段と、
     前記タッチ情報取得手段により取得された前記位置情報に基づいて、前記入力手段の移動の軌跡を示すベクトルの属性をベクトル情報として作成するベクトル情報作成手段と、
     前記入力手段が前記画面に触れてから離れるまでの間の前記位置情報に基づいて前記ベクトル情報作成手段により作成された一連の1個または複数個の前記ベクトルについての前記ベクトル情報を含むストローク情報であって、認識対象となるオブジェクトごとに1個または複数個の前記ストローク情報を記憶するストローク情報記憶手段と、
     前記入力手段が前記画面に触れてから離れるまでの間の前記入力手段の移動の軌跡であるストロークの特徴量を、前記ストローク情報に含まれる前記ベクトル情報に基づいて導出するストローク特徴量導出手段と、を有することを特徴とする手書き音楽記号認識装置。
  2.  前記ベクトル情報作成手段は、前記ベクトルの傾きに基づいて、前記ベクトルのベクトルIDを前記属性の1つとして作成し、
     前記ベクトルIDは、前記ベクトルが点であることと、前記ベクトルの向きが、下から上、左下から右上、左から右、左上から右下、上から下、右上から左下、右から左、および右下から左上であることとの9種類のうち、何れかを示す情報であることを特徴とする請求項1に記載の手書き音楽記号認識装置。
  3.  前記ストローク特徴量導出手段は、
     前記ストロークの始点と終点とを結ぶ直線の距離である始点終点距離と、
     前記ストロークが内接する矩形の4個の角の座標および中心の座標と、
     前記ストロークに含まれるベクトルと当該ベクトルの次に入力されたベクトルとのなす角度に応じた値を示す接続タイプと、
     前記ストロークに含まれるベクトルから当該ベクトルの次に入力されたベクトルへの回転方向と、
     前記ストロークに含まれるベクトルから当該ベクトルの次に入力されたベクトルへの回転角度と、
     前記ストロークに含まれるベクトルの向く方向として、左右の方向を示す左右移動方向と、
     前記ストロークに含まれるベクトルの向く方向として上下の方向を示す上下移動方向と、
     前記ストロークに含まれるベクトルのうち最も左にあるベクトルを示す最左点インデックスと、
     前記ストロークに含まれるベクトルのうち最も右にあるベクトルを示す最右点インデックスと、
     前記ストロークに含まれるベクトルのうち最も上にあるベクトルを示す最上点インデックスと、
     前記ストロークに含まれるベクトルのうち最も下にあるベクトルを示す最下点インデックスと、
    の少なくとも1つを前記ストロークの特徴量として導出し、導出した前記ストロークの特徴量を、前記ストローク情報に記憶することを特徴とする請求項1に記載の手書き音楽記号認識装置。
  4.  前記ベクトル情報作成手段により作成された前記ベクトル情報と、前記ストローク特徴量導出手段により導出された前記ストロークの特徴量と、の少なくとも何れか1つに基づいて、前記ストロークが示す記号を認識するストローク認識手段をさらに有することを特徴とする請求項1に記載の手書き音楽記号認識装置。
  5.  前記ストローク認識手段により認識された1個または複数個の前記ストロークに基づいて、前記1個または複数個のストロークにより構成される前記オブジェクトが示す記号を認識するオブジェクト認識手段をさらに有することを特徴とする請求項4に記載の手書き音楽記号認識装置。
  6.  前記オブジェクト認識手段は、前記ストローク認識手段により認識された複数個の前記ストロークの位置に基づいて、前記複数個のストロークにより構成される前記オブジェクトが示す記号を認識することを特徴とする請求項5に記載の手書き音楽記号認識装置。
  7.  1つの前記ストロークの入力が終了してから、一定時間内に別の前記ストロークの入力があれば、前記ストローク認識手段および前記オブジェクト認識手段は、その入力が完了するまで待機し、1つの前記ストロークの入力が終了してから、一定時間内に別の前記ストロークの入力がなければ、前記ストローク認識手段は、その時点で未認識のストロークを認識することを開始し、前記オブジェクト認識手段は、前記ストローク認識手段により認識された1個または複数個の前記ストロークの位置に基づいて、前記1個または複数個のストロークにより構成される前記オブジェクトが示す記号を認識することを開始することを特徴とする請求項5に記載の手書き音楽記号認識装置。
  8.  前記画面に対するユーザーによる所定の操作があった場合に、前記ストローク認識手段は、前記操作があった時点で未認識のストロークを認識することを開始し、前記オブジェクト認識手段は、前記ストローク認識手段により認識された1個または複数個の前記ストロークの位置に基づいて、前記1個または複数個のストロークにより構成される前記オブジェクトが示す記号を認識することを開始することを特徴とする請求項5に記載の手書き音楽記号認識装置。
  9.  前記画面には、五線が表示され、
     前記オブジェクト認識手段は、前記オブジェクトが音符に対応する図形であることにより、前記オブジェクトを示す記号が音符であると認識すると、前記オブジェクトの前記五線における位置に基づいて、前記音符の音高を認識することを特徴とする請求項5に記載の手書き音楽記号認識装置。
  10.  前記ベクトル情報作成手段は、複数の前記ベクトルを1つのベクトルにまとめ、まとめたベクトルの属性を前記ベクトル情報として作成することを特徴とする請求項1に記載の手書き音楽記号認識装置。
  11.  前記ベクトル情報作成手段は、前記ベクトルの始点と、当該ベクトルに直接または他の前記ベクトルを介して繋がる前記ベクトルの終点とを結ぶ直線の距離が規定値以内であれば、それらの複数のベクトルを1つのベクトルにまとめることを特徴とする請求項10に記載の手書き音楽記号認識装置。
  12.  前記ベクトル情報作成手段は、前記ベクトルの始点と、当該ベクトルに直接または他の前記ベクトルを介して繋がる前記ベクトルの終点とを結ぶ直線と、それらの複数のベクトルの終点との距離が規定値以内であれば、それらの複数のベクトルを1つのベクトルにまとめることを特徴とする請求項10に記載の手書き音楽記号認識装置。
  13.  前記ベクトル情報作成手段は、前記ベクトルを、当該ベクトルの方向に応じて複数の分類先に分類し、相互に繋がる複数の前記ベクトルの前記分類先が同じであれば、それらの複数のベクトルを1つのベクトルにまとめることを特徴とする請求項10に記載の手書き音楽記号認識装置。
  14.  前記ベクトル情報作成手段は、相互に隣り合う位置で繋がる2つのベクトルの方向に応じて、それらの2つのベクトルのそれぞれについて、傾きの範囲を導出し、それらの2つのベクトルの傾きのそれぞれが、当該ベクトルに対して導出した前記範囲内にあれば、それらの2つのベクトルを1つのベクトルにまとめることを特徴とする請求項10に記載の手書き音楽記号認識装置。
  15.  前記ベクトル情報作成手段により作成された前記ベクトル情報と、前記ストローク特徴量導出手段により導出された前記ストロークの特徴量と、の少なくとも何れか1つに基づいて、前記ストロークが示す記号を認識するストローク認識手段をさらに有し、
     前記ストローク特徴量導出手段は、前記ストロークに含まれるベクトルと当該ベクトルの次に入力されたベクトルとのなす角度に応じた値を示す接続タイプを前記ストロークの特徴量として導出し、
     前記ストローク認識手段は、前記接続タイプの値が、2つの前記ベクトルの角度が鋭角であることを示す値である場合、当該鋭角を示す点で、前記ストロークを分割し、分割したストロークのそれぞれについて、前記ストロークが示す記号を個別に認識することを特徴とする請求項1に記載の手書き音楽記号認識装置。
  16.  前記ストローク認識手段により認識された1個または複数個の前記ストロークに基づいて、前記1個または複数個のストロークにより構成される前記オブジェクトが示す記号を認識するオブジェクト認識手段をさらに有することを特徴とする請求項15に記載の手書き音楽記号認識装置。
  17.  前記オブジェクト認識手段は、前記ストローク認識手段により認識された複数個の前記ストロークの位置に基づいて、前記複数個のストロークにより構成される前記オブジェクトが示す記号を認識することを特徴とする請求項16に記載の手書き音楽記号認識装置。
  18.  前記ベクトル情報作成手段は、前記ベクトルの傾きに基づいて、前記ベクトルのベクトルIDを前記属性の1つとして作成し、
     前記ベクトルIDは、前記ベクトルが点であることと、前記ベクトルの向きが、下から上、左下から右上、左から右、左上から右下、上から下、右上から左下、右から左、および右下から左上であることとの9種類のうち、何れかを示す情報であることを特徴とする請求項15に記載の手書き音楽記号認識装置。
  19.  前記ストローク特徴量導出手段は、
     前記ストロークの始点と終点とを結ぶ直線の距離である始点終点距離と、
     前記ストロークが内接する矩形の4個の角の座標および中心の座標と、
     前記ストロークに含まれるベクトルから当該ベクトルの次に入力されたベクトルへの回転方向と、
     前記ストロークに含まれるベクトルから当該ベクトルの次に入力されたベクトルへの回転角度と、
     前記ストロークに含まれるベクトルの向く方向として、左右の方向を示す左右移動方向と、
     前記ストロークに含まれるベクトルの向く方向として上下の方向を示す上下移動方向と、
     前記ストロークに含まれるベクトルのうち最も左にあるベクトルを示す最左点インデックスと、
     前記ストロークに含まれるベクトルのうち最も右にあるベクトルを示す最右点インデックスと、
     前記ストロークに含まれるベクトルのうち最も上にあるベクトルを示す最上点インデックスと、
     前記ストロークに含まれるベクトルのうち最も下にあるベクトルを示す最下点インデックスと、
    の少なくとも1つを前記ストロークの特徴量としてさらに導出し、導出した前記ストロークの特徴量を、前記ストローク情報に記憶することを特徴とする請求項15に記載の手書き音楽記号認識装置。
  20.  入力工程が画面に触れてから離れるまで、前記入力工程が移動するごとに前記入力工程の前記画面における位置を位置情報として取得するタッチ情報取得工程と、
     前記タッチ情報取得工程により取得された前記位置情報に基づいて、前記入力工程の移動の軌跡を示すベクトルの属性をベクトル情報として作成するベクトル情報作成工程と、
     前記入力工程が前記画面に触れてから離れるまでの間の前記位置情報に基づいて前記ベクトル情報作成工程により作成された一連の1個または複数個の前記ベクトルについての前記ベクトル情報を含むストローク情報であって、認識対象となるオブジェクトごとに1個または複数個の前記ストローク情報を記憶するストローク情報記憶工程と、
     前記入力工程が前記画面に触れてから離れるまでの間の前記入力工程の移動の軌跡であるストロークの特徴量を、前記ストローク情報に含まれる前記ベクトル情報に基づいて導出するストローク特徴量導出工程と、をコンピュータに実行させることを特徴とするプログラム。
PCT/JP2015/050875 2014-03-17 2015-01-15 手書き音楽記号認識装置およびプログラム WO2015141260A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/911,963 US10725650B2 (en) 2014-03-17 2015-01-15 Handwritten music sign recognition device and program

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2014-054010 2014-03-17
JP2014054010A JP6437205B2 (ja) 2014-03-17 2014-03-17 手書き音楽記号認識装置及びプログラム
JP2014-070029 2014-03-28
JP2014-070018 2014-03-28
JP2014070029A JP6437208B2 (ja) 2014-03-28 2014-03-28 手書き音楽記号認識装置及び手書き音楽記号認識プログラム
JP2014070018A JP6444041B2 (ja) 2014-03-28 2014-03-28 手書き音楽記号認識装置及び手書き音楽記号認識プログラム

Publications (1)

Publication Number Publication Date
WO2015141260A1 true WO2015141260A1 (ja) 2015-09-24

Family

ID=54144240

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/050875 WO2015141260A1 (ja) 2014-03-17 2015-01-15 手書き音楽記号認識装置およびプログラム

Country Status (2)

Country Link
US (1) US10725650B2 (ja)
WO (1) WO2015141260A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102149105B1 (ko) * 2019-09-18 2020-08-27 세종대학교산학협력단 혼합현실 기반 3차원 스케치 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225396A (ja) * 1992-02-07 1993-09-03 Seiko Epson Corp 手書き文字認識装置
JPH08180135A (ja) * 1994-12-22 1996-07-12 Toshiba Corp 図形認識装置及び方法
JPH1055409A (ja) * 1996-08-08 1998-02-24 Sharp Corp 手書き入力情報処理装置
JP2001184458A (ja) * 1999-10-15 2001-07-06 Matsushita Electric Ind Co Ltd 文字入力装置及び方法並びにコンピュータ読み取り可能な記録媒体
JP2007200186A (ja) * 2006-01-30 2007-08-09 Advanced Telecommunication Research Institute International 文字認識装置および文字認識プログラム
JP2008123182A (ja) * 2006-11-10 2008-05-29 Kawai Musical Instr Mfg Co Ltd 楽譜認識装置およびプログラム

Family Cites Families (253)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541511A (en) * 1966-10-31 1970-11-17 Tokyo Shibaura Electric Co Apparatus for recognising a pattern
US3766520A (en) * 1971-11-10 1973-10-16 Regonition Equipment Inc Character reader with handprint capability
US3863218A (en) * 1973-01-26 1975-01-28 Hitachi Ltd Pattern feature detection system
US3979722A (en) * 1974-05-31 1976-09-07 Nippon Electric Company, Ltd. Automatic character recognition device employing dynamic programming
US3987412A (en) * 1975-01-27 1976-10-19 International Business Machines Corporation Method and apparatus for image data compression utilizing boundary following of the exterior and interior borders of objects
JPS51118333A (en) * 1975-04-11 1976-10-18 Hitachi Ltd Pattern recognition system
US4124871A (en) * 1977-08-31 1978-11-07 International Business Machines Corporation Image data resolution change apparatus and process utilizing boundary compression coding of objects
JPS56103773A (en) * 1980-01-21 1981-08-19 Agency Of Ind Science & Technol Feature extracing system of binary pattern
US4331955A (en) * 1980-08-07 1982-05-25 Eltra Corporation Method and apparatus for smoothing outlines
JPS5975375A (ja) * 1982-10-21 1984-04-28 Sumitomo Electric Ind Ltd 文字認識装置
US4573196A (en) * 1983-01-19 1986-02-25 Communications Intelligence Corporation Confusion grouping of strokes in pattern recognition method and system
US4628532A (en) * 1983-07-14 1986-12-09 Scan Optics, Inc. Alphanumeric handprint recognition
JPS60136892A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd オンライン手書き図形認識装置
JPS60217477A (ja) * 1984-04-12 1985-10-31 Toshiba Corp 手書き文字認識装置
JPS6282486A (ja) * 1985-10-08 1987-04-15 Hitachi Ltd オンライン手書き図形認識装置
JPS6395591A (ja) 1986-10-13 1988-04-26 Wacom Co Ltd 手書き文字認識方法
US4891750A (en) * 1986-10-29 1990-01-02 Pitney Bowes Inc. Optical character recognition by forming and detecting matrices of geo features
US4905295A (en) * 1986-11-13 1990-02-27 Ricoh Company, Ltd. Code sequence matching method and apparatus
JP2801194B2 (ja) 1987-10-09 1998-09-21 キヤノン株式会社 直線成分抽出方法
US5485531A (en) * 1987-12-17 1996-01-16 Fuji Electric Co., Ltd. Character-feature extraction device
JP3017740B2 (ja) * 1988-08-23 2000-03-13 ソニー株式会社 オンライン文字認識装置およびオンライン文字認識方法
US4987603A (en) * 1988-09-22 1991-01-22 Glory Kogyo Kabushiki Kaisha Recognition method for letter patterns
US5070466A (en) * 1988-11-01 1991-12-03 Honeywell Inc. Digital vector generator apparatus for providing mathematically precise vectors and symmetrical patterns
DE3853885T2 (de) * 1988-12-30 1995-09-14 Ezel Inc Vektorisationsverfahren.
US5265174A (en) * 1989-03-03 1993-11-23 Canon Kabushiki Kaisha Pattern recognition apparatus
JP2651009B2 (ja) * 1989-04-06 1997-09-10 キヤノン株式会社 情報認識装置
US5038382A (en) * 1989-10-13 1991-08-06 International Business Machines Corporation Multi-scale recognizer for hand drawn strokes
US5105470A (en) * 1990-03-12 1992-04-14 International Business Machines Corporation Method and system for recognizing characters
JP3143461B2 (ja) * 1990-05-29 2001-03-07 キヤノン株式会社 文字認識方法及び文字認識装置
JP2982150B2 (ja) * 1990-08-28 1999-11-22 キヤノン株式会社 文字パターン処理方法及び装置
JP2718485B2 (ja) * 1990-11-29 1998-02-25 株式会社リコー 文字認識方法
US5953735A (en) * 1991-03-20 1999-09-14 Forcier; Mitchell D. Script character processing method and system with bit-mapped document editing
EP0505621A3 (en) * 1991-03-28 1993-06-02 International Business Machines Corporation Improved message recognition employing integrated speech and handwriting information
JP3155577B2 (ja) * 1991-10-16 2001-04-09 キヤノン株式会社 文字認識方法及び装置
JP3105967B2 (ja) 1991-11-14 2000-11-06 キヤノン株式会社 文字認識方法及び装置
KR960015761B1 (en) * 1992-01-27 1996-11-21 Fujitsu Ltd Charaster gerenating method and apparatus
US5594855A (en) * 1992-02-11 1997-01-14 Macromedia, Inc. System and method for generating real time calligraphic curves
US5380428A (en) * 1992-04-22 1995-01-10 Product Research & Development Pump for reverse osmosis system
US5903668A (en) * 1992-05-27 1999-05-11 Apple Computer, Inc. Method and apparatus for recognizing handwritten words
JPH0619615A (ja) * 1992-06-29 1994-01-28 Matsushita Electric Ind Co Ltd 手書き文字入力装置
JP3145509B2 (ja) * 1992-11-09 2001-03-12 富士通株式会社 文字生成方法及びその装置
US6005976A (en) * 1993-02-25 1999-12-21 Fujitsu Limited Image extraction system for extracting patterns such as characters, graphics and symbols from image having frame formed by straight line portions
KR950013127B1 (ko) * 1993-03-15 1995-10-25 김진형 영어 문자 인식 방법 및 시스템
US6535897B1 (en) * 1993-05-20 2003-03-18 Microsoft Corporation System and methods for spacing, storing and recognizing electronic representations of handwriting printing and drawings
US5665927A (en) * 1993-06-30 1997-09-09 Casio Computer Co., Ltd. Method and apparatus for inputting musical data without requiring selection of a displayed icon
JP3042945B2 (ja) * 1993-07-07 2000-05-22 富士通株式会社 画像抽出装置
JPH0732649A (ja) * 1993-07-16 1995-02-03 Fujitsu Ltd 文字の合成方法及びその装置
US5596656B1 (en) * 1993-10-06 2000-04-25 Xerox Corp Unistrokes for computerized interpretation of handwriting
DE69425412T2 (de) * 1993-11-23 2001-03-08 Ibm Anlage und Verfahren zur automatischen Handschrifterkennung mittels eines benutzerunabhängigen chirographischen Labelalphabets
US5959634A (en) * 1993-12-09 1999-09-28 Canon Kabushiki Kaisha Character generating system employing thickening or narrowing of characters
EP0661669B1 (en) * 1993-12-30 2001-02-28 Canon Kabushiki Kaisha Character processing apparatus and method
AUPM580794A0 (en) * 1994-05-24 1994-06-16 Quinn, Beris Ivy An improved method of teaching music students
DE69533479T2 (de) * 1994-07-01 2005-09-22 Palm Computing, Inc., Los Altos Zeichensatz mit zeichen aus mehreren strichen und handschrifterkennungssystem
JP3238580B2 (ja) * 1994-09-14 2001-12-17 シャープ株式会社 太め細め文字生成装置
JP3576611B2 (ja) * 1994-12-05 2004-10-13 キヤノン株式会社 文字発生装置ならびに方法
CA2139094C (en) * 1994-12-23 1999-04-13 Abdel Naser Al-Karmi Optical character recognition of handwritten or cursive text
US5940081A (en) * 1995-01-27 1999-08-17 Sony Corporation Method and apparatus for forming a font and the font produced method and apparatus for drawing a blurred figure
TW338815B (en) * 1995-06-05 1998-08-21 Motorola Inc Method and apparatus for character recognition of handwritten input
US6041137A (en) * 1995-08-25 2000-03-21 Microsoft Corporation Radical definition and dictionary creation for a handwriting recognition system
JPH0991380A (ja) * 1995-09-21 1997-04-04 Canon Inc 情報処理装置及び方法及び記憶媒体
JP3535624B2 (ja) * 1995-09-21 2004-06-07 キヤノン株式会社 検索装置及び方法
JPH09134156A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd アウトラインフォントのストローク化及びパーツ化方法
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
JP3744997B2 (ja) * 1996-01-12 2006-02-15 キヤノン株式会社 文字認識装置及びその方法
US5982933A (en) * 1996-01-12 1999-11-09 Canon Kabushiki Kaisha Information processing method, information processing apparatus, and storage medium
US5926189A (en) * 1996-03-29 1999-07-20 Apple Computer, Inc. Method and apparatus for typographic glyph construction including a glyph server
KR0172581B1 (ko) * 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
JPH09319829A (ja) * 1996-06-03 1997-12-12 Nec Corp オンライン文字認識装置
US7098392B2 (en) * 1996-07-10 2006-08-29 Sitrick David H Electronic image visualization system and communication methodologies
JPH10105650A (ja) 1996-09-30 1998-04-24 Brother Ind Ltd 文字認識装置
US6275611B1 (en) * 1996-10-17 2001-08-14 Motorola, Inc. Handwriting recognition device, method and alphabet, with strokes grouped into stroke sub-structures
JP3563891B2 (ja) * 1996-10-24 2004-09-08 キヤノン株式会社 文字生成方法及び装置
US5940535A (en) * 1996-10-31 1999-08-17 Industrial Technology Research Institute Method and apparatus for designing a highly reliable pattern recognition system
US6370269B1 (en) * 1997-01-21 2002-04-09 International Business Machines Corporation Optical character recognition of handwritten or cursive text in multiple languages
JPH10214267A (ja) * 1997-01-29 1998-08-11 Sharp Corp 手書き文字記号処理装置および手書き文字記号処理装置の制御プログラムを記録した媒体
US6144764A (en) * 1997-07-02 2000-11-07 Mitsui High-Tec, Inc. Method and apparatus for on-line handwritten input character recognition and recording medium for executing the method
US6464585B1 (en) * 1997-11-20 2002-10-15 Nintendo Co., Ltd. Sound generating device and video game device using the same
US6952210B1 (en) * 1997-12-05 2005-10-04 Adobe Systems Incorporated Method of generating multiple master typefaces containing kanji characters
JPH11202857A (ja) * 1998-01-13 1999-07-30 Yamaha Corp 楽譜表示装置及び方法並びに記憶媒体
US6226403B1 (en) * 1998-02-09 2001-05-01 Motorola, Inc. Handwritten character recognition using multi-resolution models
US6051770A (en) * 1998-02-19 2000-04-18 Postmusic, Llc Method and apparatus for composing original musical works
JP4059841B2 (ja) 1998-04-27 2008-03-12 三洋電機株式会社 文字認識方法、文字認識装置および記憶媒体
US6289124B1 (en) * 1998-04-27 2001-09-11 Sanyo Electric Co., Ltd. Method and system of handwritten-character recognition
KR100327209B1 (ko) * 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
WO1999064982A1 (en) * 1998-06-09 1999-12-16 Kent Ridge Digital Labs A recognition process
JP3432149B2 (ja) * 1998-07-13 2003-08-04 株式会社島精機製作所 画像処理方法とその装置
AUPP557898A0 (en) * 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a character stroke
US6275237B1 (en) * 1998-09-30 2001-08-14 Arphic Technology Co., Ltd. Structural graph display system
US6597360B1 (en) * 1998-10-07 2003-07-22 Microsoft Corporation Automatic optimization of the position of stems of text characters
US6201174B1 (en) * 1998-12-11 2001-03-13 Sunhawk.Com Corporation Method and system for improved tablature notation in digital music scores
US6498608B1 (en) * 1998-12-15 2002-12-24 Microsoft Corporation Method and apparatus for variable weight outline emboldening of scalable outline fonts
JP2000194796A (ja) 1998-12-25 2000-07-14 Sharp Corp 手書き文字認識装置及び手書き文字認識の文字入力方法
US6801659B1 (en) * 1999-01-04 2004-10-05 Zi Technology Corporation Ltd. Text input system for ideographic and nonideographic languages
US7750891B2 (en) * 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US6970599B2 (en) * 2002-07-25 2005-11-29 America Online, Inc. Chinese character handwriting recognition system
JP3905670B2 (ja) * 1999-09-10 2007-04-18 株式会社リコー 座標入力検出装置、情報記憶媒体及び座標入力検出方法
US6694056B1 (en) * 1999-10-15 2004-02-17 Matsushita Electric Industrial Co., Ltd. Character input apparatus/method and computer-readable storage medium
JP5138852B2 (ja) * 1999-11-04 2013-02-06 株式会社こんてんつ 創作物作成支援装置
US7072398B2 (en) * 2000-12-06 2006-07-04 Kai-Kuang Ma System and method for motion vector generation and analysis of digital video clips
US6348648B1 (en) * 1999-11-23 2002-02-19 Harry Connick, Jr. System and method for coordinating music display among players in an orchestra
US6992671B1 (en) * 1999-12-09 2006-01-31 Monotype Imaging, Inc. Method and apparatus for compressing Bezier descriptions of letterforms in outline fonts using vector quantization techniques
WO2001050411A1 (en) * 2000-01-06 2001-07-12 Zen Optical Technology Llc Pen-based handwritten character recognition and storage system
JP3250559B2 (ja) * 2000-04-25 2002-01-28 ヤマハ株式会社 歌詞作成装置及び歌詞作成方法並びに歌詞作成プログラムを記録した記録媒体
US20020049795A1 (en) * 2000-05-15 2002-04-25 Freeman Alfred Boyd Computer assisted text input system
US6760028B1 (en) * 2000-07-21 2004-07-06 Microsoft Corporation Methods and systems for hinting fonts
RU2277719C2 (ru) * 2000-07-21 2006-06-10 Спидскрипт Лтд. Способ работы системы скоростного письма и устройство скоростного письма
JP3974359B2 (ja) * 2000-10-31 2007-09-12 株式会社東芝 オンライン文字認識装置及び方法並びにコンピュータ読み取り可能な記憶媒体及びオンライン文字認識プログラム
JP3950624B2 (ja) * 2000-11-22 2007-08-01 日本電気株式会社 診療支援システム、その表示方法及びそのプログラムを記録した記録媒体
US6538187B2 (en) * 2001-01-05 2003-03-25 International Business Machines Corporation Method and system for writing common music notation (CMN) using a digital pen
US6721452B2 (en) * 2001-09-12 2004-04-13 Auburn University System and method of handwritten character recognition
JP4050055B2 (ja) * 2002-01-10 2008-02-20 株式会社リコー 手書き文字一括変換装置、手書き文字一括変換方法およびプログラム
US6938222B2 (en) * 2002-02-08 2005-08-30 Microsoft Corporation Ink gestures
US7123770B2 (en) * 2002-05-14 2006-10-17 Microsoft Corporation Incremental system for real time digital ink analysis
US20030215145A1 (en) * 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
US7158675B2 (en) * 2002-05-14 2007-01-02 Microsoft Corporation Interfacing with ink
US7050632B2 (en) * 2002-05-14 2006-05-23 Microsoft Corporation Handwriting layout analysis of freeform digital ink input
US7146046B2 (en) * 2002-06-24 2006-12-05 Microsoft Corporation Method and apparatus for scale independent cusp detection
US7251365B2 (en) * 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method
US7149356B2 (en) * 2002-07-10 2006-12-12 Northrop Grumman Corporation System and method for template matching of candidates within a two-dimensional image
TW575841B (en) * 2002-08-27 2004-02-11 Ind Tech Res Inst Descriptive method of characters for displaying the thickness of strokes thereof
JP2004117714A (ja) * 2002-09-25 2004-04-15 Riso Kagaku Corp フォント生成装置及びフォント生成プログラム
US7116840B2 (en) * 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
US20040117724A1 (en) * 2002-12-03 2004-06-17 Microsoft Corporation Extensible schema for ink
US7345236B2 (en) * 2003-02-03 2008-03-18 Terra Knights Music, Inc. Method of automated musical instrument finger finding
US7238876B1 (en) * 2003-02-03 2007-07-03 Richard William Worrall Method of automated musical instrument finger finding
AU2003900865A0 (en) * 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods, systems and apparatus (NPW010)
JP3963850B2 (ja) * 2003-03-11 2007-08-22 富士通株式会社 音声区間検出装置
US7502812B2 (en) * 2003-08-21 2009-03-10 Microsoft Corporation Electronic ink processing
US7436535B2 (en) * 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US7369702B2 (en) * 2003-11-07 2008-05-06 Microsoft Corporation Template-based cursive handwriting recognition
US7302099B2 (en) * 2003-11-10 2007-11-27 Microsoft Corporation Stroke segmentation for template-based cursive handwriting recognition
JP2005204754A (ja) * 2004-01-20 2005-08-04 Nintendo Co Ltd タッチパネル入力を用いたゲームシステム
JP4213052B2 (ja) * 2004-01-28 2009-01-21 任天堂株式会社 タッチパネル入力を用いたゲームシステム
JP4159491B2 (ja) * 2004-02-23 2008-10-01 任天堂株式会社 ゲームプログラムおよびゲーム装置
US7432432B2 (en) * 2004-09-21 2008-10-07 Microsoft Corporation System and method for recognizing handwritten music notations
US7289123B2 (en) * 2004-09-30 2007-10-30 Microsoft Corporation Simplifying complex characters to maintain legibility
JP3734823B1 (ja) * 2005-01-26 2006-01-11 任天堂株式会社 ゲームプログラムおよびゲーム装置
US7295206B2 (en) * 2005-01-31 2007-11-13 Microsoft Corporation Ink input region adjustments
KR20070112454A (ko) * 2005-02-15 2007-11-26 유겐카이샤 케이아이티이 이메지 테크놀로지즈 수기 문자 인식 방법, 수기 문자 인식 시스템, 수기 문자인식 프로그램, 및 기억 매체
US7522771B2 (en) * 2005-03-17 2009-04-21 Microsoft Corporation Systems, methods, and computer-readable media for fast neighborhood determinations in dynamic environments
JP4717489B2 (ja) * 2005-04-07 2011-07-06 任天堂株式会社 ゲームプログラム
US7924284B2 (en) * 2005-04-22 2011-04-12 Microsoft Corporation Rendering highlighting strokes
JP4262217B2 (ja) * 2005-04-26 2009-05-13 任天堂株式会社 ゲームプログラム及びゲーム装置
US7415152B2 (en) * 2005-04-29 2008-08-19 Microsoft Corporation Method and system for constructing a 3D representation of a face from a 2D representation
US7729539B2 (en) * 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US8161415B2 (en) * 2005-06-20 2012-04-17 Hewlett-Packard Development Company, L.P. Method, article, apparatus and computer system for inputting a graphical object
JP5230901B2 (ja) * 2005-11-14 2013-07-10 株式会社ハル研究所 ゲームプログラム、ゲーム装置、ゲーム制御方法およびゲームシステム
US20070183665A1 (en) * 2006-02-06 2007-08-09 Mayumi Yuasa Face feature point detecting device and method
JP4939824B2 (ja) * 2006-03-15 2012-05-30 富士通株式会社 アウトラインフォント圧縮方法及び復号方法
US8882590B2 (en) * 2006-04-28 2014-11-11 Nintendo Co., Ltd. Touch-controlled game character motion providing dynamically-positioned virtual control pad
JP4754417B2 (ja) * 2006-06-26 2011-08-24 本田技研工業株式会社 永久磁石型回転電機の制御装置
US8995411B2 (en) * 2006-07-25 2015-03-31 Broadcom Corporation Method and system for content-aware mapping/error protection using different spatial streams
JP4994737B2 (ja) * 2006-07-27 2012-08-08 オリンパスメディカルシステムズ株式会社 医療用画像処理装置及び医療用画像処理方法
US8081187B2 (en) * 2006-11-22 2011-12-20 Autodesk, Inc. Pencil strokes for vector based drawing elements
TWI336854B (en) * 2006-12-29 2011-02-01 Ibm Video-based biometric signature data collecting method and apparatus
US7956847B2 (en) * 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
JP4449986B2 (ja) * 2007-02-15 2010-04-14 セイコーエプソン株式会社 文字描画装置、表示装置及び印刷装置
JP5123588B2 (ja) * 2007-07-17 2013-01-23 キヤノン株式会社 表示制御装置および表示制御方法
JP4508236B2 (ja) * 2007-12-19 2010-07-21 株式会社デンソー 回転機の制御装置
JP4392446B2 (ja) * 2007-12-21 2010-01-06 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム処理方法、ならびに、プログラム
US8024775B2 (en) * 2008-02-20 2011-09-20 Microsoft Corporation Sketch-based password authentication
JP4583472B2 (ja) * 2008-04-28 2010-11-17 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法及びプログラム
US20090288889A1 (en) * 2008-05-23 2009-11-26 Synaptics Incorporated Proximity sensor device and method with swipethrough data entry
US20090289902A1 (en) * 2008-05-23 2009-11-26 Synaptics Incorporated Proximity sensor device and method with subregion based swipethrough data entry
JP2009301284A (ja) * 2008-06-12 2009-12-24 Toshiba Corp 描画装置および方法
JP2010015238A (ja) * 2008-07-01 2010-01-21 Sony Corp 情報処理装置、及び補助情報の表示方法
US8213719B2 (en) * 2008-09-24 2012-07-03 Microsoft Corporation Editing 2D structures using natural input
WO2010059994A2 (en) * 2008-11-21 2010-05-27 Poptank Studios, Inc. Interactive guitar game designed for learning to play the guitar
US8102397B2 (en) * 2009-01-26 2012-01-24 Mitsubishi Electric Research Laboratories Inc. Method for improving uniform width character strokes using multiple alignment zones
US8150160B2 (en) * 2009-03-26 2012-04-03 King Fahd University Of Petroleum & Minerals Automatic Arabic text image optical character recognition method
JP5127775B2 (ja) * 2009-05-15 2013-01-23 株式会社リコー 情報処理装置、レーザ照射装置、制御システム、描画情報記憶装置
US9710097B2 (en) * 2009-07-10 2017-07-18 Adobe Systems Incorporated Methods and apparatus for natural media painting using touch-and-stylus combination gestures
GB0913170D0 (en) * 2009-07-28 2009-09-02 Advanced Risc Mach Ltd Graphics processing systems
TWI412955B (zh) * 2009-08-19 2013-10-21 Inventec Appliances Corp 漢字書寫筆順之提示方法、電子裝置及電腦程式產品
US8341558B2 (en) * 2009-09-16 2012-12-25 Google Inc. Gesture recognition on computing device correlating input to a template
TWI443603B (zh) * 2009-11-23 2014-07-01 Inst Information Industry 二維向量圖形三角化系統及其方法
JP5363591B2 (ja) * 2009-12-15 2013-12-11 富士通フロンテック株式会社 文字認識方法、文字認識装置および文字認識プログラム
US8389843B2 (en) * 2010-01-12 2013-03-05 Noteflight, Llc Interactive music notation layout and editing system
US8445766B2 (en) * 2010-02-25 2013-05-21 Qualcomm Incorporated Electronic display of sheet music
US20110285634A1 (en) * 2010-05-24 2011-11-24 Karbonstream Corporation Portable data entry device
US8830212B2 (en) * 2010-06-01 2014-09-09 Vladimir Vaganov System and method for digital recording of handpainted, handdrawn and handwritten information
JP5067458B2 (ja) * 2010-08-02 2012-11-07 カシオ計算機株式会社 演奏装置および電子楽器
CN102385707A (zh) * 2010-08-30 2012-03-21 阿里巴巴集团控股有限公司 一种数字图像识别的方法、装置及爬虫服务器
US8884916B2 (en) * 2010-12-09 2014-11-11 Synaptics Incorporated System and method for determining user input using polygons
JP5565320B2 (ja) * 2011-01-06 2014-08-06 富士通株式会社 情報処理装置及び情報処理プログラム
US8917282B2 (en) * 2011-03-23 2014-12-23 Adobe Systems Incorporated Separating water from pigment in procedural painting algorithms
JP5765848B2 (ja) * 2011-03-31 2015-08-19 株式会社河合楽器製作所 音再生プログラム及び音再生装置
US9013485B2 (en) * 2011-06-30 2015-04-21 Adobe Systems Incorporated Systems and methods for synthesizing high fidelity stroke data for lower dimension input strokes
JP5549687B2 (ja) * 2012-01-20 2014-07-16 カシオ計算機株式会社 楽譜表示装置、及びそのプログラム
US8704067B2 (en) * 2012-04-24 2014-04-22 Kabushiki Kaisha Kawai Gakki Seisakusho Musical score playing device and musical score playing program
AU2012202651A1 (en) * 2012-05-04 2013-11-21 Canon Kabushiki Kaisha A method for stroking paths
US8933312B2 (en) * 2012-06-01 2015-01-13 Makemusic, Inc. Distribution of audio sheet music as an electronic book
US9323726B1 (en) * 2012-06-27 2016-04-26 Amazon Technologies, Inc. Optimizing a glyph-based file
US20150095822A1 (en) * 2012-07-02 2015-04-02 eScoreMusic, Inc. Systems and methods for music display, collaboration, annotation, composition, and editing
WO2014008209A1 (en) * 2012-07-02 2014-01-09 eScoreMusic, Inc. Systems and methods for music display, collaboration and annotation
JP6188288B2 (ja) * 2012-07-20 2017-08-30 キヤノン株式会社 情報処理装置及びその制御方法
JP2014032632A (ja) * 2012-08-06 2014-02-20 Toshiba Corp 電子機器、方法、およびプログラム
US9619853B2 (en) * 2012-08-09 2017-04-11 Qualcomm Incorporated GPU-accelerated path rendering
US9280281B2 (en) * 2012-09-12 2016-03-08 Insyde Software Corp. System and method for providing gesture-based user identification
KR20140035271A (ko) * 2012-09-13 2014-03-21 삼성전자주식회사 제스쳐 인식 방법 및 시스템
US9070224B1 (en) * 2012-10-11 2015-06-30 Google Inc. Accurate upper bound for bezier arc approximation error
JP5342052B1 (ja) * 2012-10-17 2013-11-13 株式会社東芝 電子機器および方法
US9335913B2 (en) * 2012-11-12 2016-05-10 Microsoft Technology Licensing, Llc Cross slide gesture
JP5461670B1 (ja) * 2012-11-30 2014-04-02 株式会社 ディー・エヌ・エー 情報処理装置、および、情報処理装置用プログラム
KR20140073951A (ko) * 2012-12-07 2014-06-17 삼성전자주식회사 베이지어 커브를 렌더링하는 장치 및 방법
US9846536B2 (en) * 2012-12-17 2017-12-19 Microsoft Technology Licensing, Llc Composition of handwritten messages on mobile computing devices
US9275274B2 (en) * 2013-03-12 2016-03-01 Robert Bosch Gmbh System and method for identifying handwriting gestures in an in-vehicle information system
US9159147B2 (en) * 2013-03-15 2015-10-13 Airdrawer Llc Method and apparatus for personalized handwriting avatar
US9274607B2 (en) * 2013-03-15 2016-03-01 Bruno Delean Authenticating a user using hand gesture
US9589120B2 (en) * 2013-04-05 2017-03-07 Microsoft Technology Licensing, Llc Behavior based authentication for touch screen devices
JP2014203406A (ja) * 2013-04-09 2014-10-27 富士通株式会社 制御装置、制御方法および制御プログラム
JP2014215752A (ja) * 2013-04-24 2014-11-17 株式会社東芝 電子機器および手書きデータ処理方法
US9613444B2 (en) * 2013-04-26 2017-04-04 Panasonic Corporation Information input display device and information input display method
JP6039066B2 (ja) * 2013-05-09 2016-12-07 株式会社東芝 電子機器、手書き文書検索方法およびプログラム
JP6229303B2 (ja) * 2013-05-16 2017-11-15 富士通株式会社 プログラム、情報処理装置および文字認識方法
JP6125333B2 (ja) * 2013-05-31 2017-05-10 株式会社東芝 検索装置、方法及びプログラム
JPWO2014192156A1 (ja) * 2013-05-31 2017-02-23 株式会社東芝 電子機器および処理方法
US9189695B2 (en) * 2013-06-04 2015-11-17 Prime Circa, Inc. Vector texturing for free-form drawing
US10363486B2 (en) * 2013-06-10 2019-07-30 Pixel Press Technology, LLC Smart video game board system and methods
JP6094400B2 (ja) * 2013-06-25 2017-03-15 ソニー株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2015099566A (ja) * 2013-11-20 2015-05-28 株式会社東芝 特徴算出装置、方法及びプログラム
JP6197631B2 (ja) * 2013-12-19 2017-09-20 ヤマハ株式会社 楽譜解析装置および楽譜解析方法
US9478201B1 (en) * 2013-12-31 2016-10-25 Tonara Ltd. System and method for optical music recognition
US9424823B2 (en) * 2014-02-10 2016-08-23 Myscript Method and apparatus for recognising music symbols
US9851880B2 (en) * 2014-03-14 2017-12-26 Adobe Systems Incorporated Image rotation based on touch gestures
KR102240279B1 (ko) * 2014-04-21 2021-04-14 삼성전자주식회사 컨텐트 처리 방법 및 그 전자 장치
US10528249B2 (en) * 2014-05-23 2020-01-07 Samsung Electronics Co., Ltd. Method and device for reproducing partial handwritten content
JP2015225527A (ja) * 2014-05-28 2015-12-14 株式会社東芝 電子機器、方法及びプログラム
JP6290003B2 (ja) * 2014-05-28 2018-03-07 株式会社東芝 電子機器及び方法
US9911354B2 (en) * 2014-06-11 2018-03-06 Michael Oliver Hands-free music notation display system
DE202015006043U1 (de) * 2014-09-05 2015-10-07 Carus-Verlag Gmbh & Co. Kg Signalfolge und Datenträger mit einem Computerprogramm zur Wiedergabe eines Musikstücks
US20160070952A1 (en) * 2014-09-05 2016-03-10 Samsung Electronics Co., Ltd. Method and apparatus for facial recognition
US10338725B2 (en) * 2014-09-29 2019-07-02 Microsoft Technology Licensing, Llc Wet ink predictor
JP6464504B6 (ja) * 2014-10-01 2019-03-13 Dynabook株式会社 電子機器、処理方法およびプログラム
JP2016085512A (ja) * 2014-10-23 2016-05-19 株式会社東芝 電子機器、方法及びプログラム
US9733825B2 (en) * 2014-11-05 2017-08-15 Lenovo (Singapore) Pte. Ltd. East Asian character assist
KR20160062565A (ko) * 2014-11-25 2016-06-02 삼성전자주식회사 디바이스 및 디바이스의 필기 컨텐트 제공 방법
US9927971B2 (en) * 2014-12-05 2018-03-27 Kabushiki Kaisha Toshiba Electronic apparatus, method and storage medium for generating chart object
JP6451316B2 (ja) * 2014-12-26 2019-01-16 富士通株式会社 文字認識プログラム、文字認識方法及び文字認識装置
US20160210452A1 (en) * 2015-01-19 2016-07-21 Microsoft Technology Licensing, Llc Multi-gesture security code entry
TWI575389B (zh) * 2015-06-10 2017-03-21 文鼎科技開發股份有限公司 字體變形方法
US9715623B2 (en) * 2015-06-10 2017-07-25 Lenovo (Singapore) Pte. Ltd. Reduced document stroke storage
JP6519361B2 (ja) * 2015-07-01 2019-05-29 富士通株式会社 手書き文字修正プログラム、手書き文字修正装置及び手書き文字修正方法
US20180095653A1 (en) * 2015-08-14 2018-04-05 Martin Hasek Device, method and graphical user interface for handwritten interaction
WO2017057694A1 (ja) * 2015-09-30 2017-04-06 ヤマハ株式会社 楽譜画像解析装置
US10102767B2 (en) * 2015-12-18 2018-10-16 Andrey Aleksandrovich Bayadzhan Musical notation keyboard
US9934768B2 (en) * 2016-03-30 2018-04-03 Yamaha Corporation Musical score display control device and method
US10013631B2 (en) * 2016-08-26 2018-07-03 Smart Technologies Ulc Collaboration system with raster-to-vector image conversion
US10210636B2 (en) * 2016-08-31 2019-02-19 Autodesk, Inc. Automatic snap for digital sketch inking
US10871880B2 (en) * 2016-11-04 2020-12-22 Microsoft Technology Licensing, Llc Action-enabled inking tools
US10055880B2 (en) * 2016-12-06 2018-08-21 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US9922629B1 (en) * 2016-12-11 2018-03-20 Kenneth Whiteside Apparatus for displaying sheet music
CN107633227B (zh) * 2017-09-15 2020-04-28 华中科技大学 一种基于csi的细粒度手势识别方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225396A (ja) * 1992-02-07 1993-09-03 Seiko Epson Corp 手書き文字認識装置
JPH08180135A (ja) * 1994-12-22 1996-07-12 Toshiba Corp 図形認識装置及び方法
JPH1055409A (ja) * 1996-08-08 1998-02-24 Sharp Corp 手書き入力情報処理装置
JP2001184458A (ja) * 1999-10-15 2001-07-06 Matsushita Electric Ind Co Ltd 文字入力装置及び方法並びにコンピュータ読み取り可能な記録媒体
JP2007200186A (ja) * 2006-01-30 2007-08-09 Advanced Telecommunication Research Institute International 文字認識装置および文字認識プログラム
JP2008123182A (ja) * 2006-11-10 2008-05-29 Kawai Musical Instr Mfg Co Ltd 楽譜認識装置およびプログラム

Also Published As

Publication number Publication date
US20160202899A1 (en) 2016-07-14
US10725650B2 (en) 2020-07-28

Similar Documents

Publication Publication Date Title
JP5113909B2 (ja) 相対位置に基く制御によるページ上のグラフィックスオブジェクトの配置
EP1971957B1 (en) Methods and apparatuses for extending dynamic handwriting recognition to recognize static handwritten and machine generated text
CN111931710B (zh) 一种联机手写文字识别方法、装置、电子设备及存储介质
JP5897725B2 (ja) ユーザインタフェース装置、ユーザインタフェース方法、プログラム及びコンピュータ可読情報記憶媒体
KR20100135281A (ko) 손으로 그려진 표를 인식하기 위한 방법 및 툴
JP5774558B2 (ja) 手書き文書処理装置、方法及びプログラム
JP4998220B2 (ja) 帳票データ抽出プログラム、帳票データ抽出装置および帳票データ抽出方法
US20160116911A1 (en) Assembly order generation device and assembly order generation method
JP2009199102A (ja) 文字認識プログラム、文字認識装置及び文字認識方法
JP6055065B1 (ja) 文字認識プログラム、文字認識装置
JP4834351B2 (ja) 文字認識装置及び文字認識方法
WO2015141260A1 (ja) 手書き音楽記号認識装置およびプログラム
JP6532346B2 (ja) ストロークの構成に差異がある手書き入力文字に対し、標準パターンと入力パターンとに変換を加えて照合と判定とを行う自動採点システム
JPH08320914A (ja) 表認識方法および装置
JP6437205B2 (ja) 手書き音楽記号認識装置及びプログラム
JP4628278B2 (ja) 表認識装置、及びコンピュータプログラム
JP6444041B2 (ja) 手書き音楽記号認識装置及び手書き音楽記号認識プログラム
JP5712415B2 (ja) 帳票処理システム及び帳票処理方法
WO2020090356A1 (ja) インクデータ生成装置、方法及びプログラム
JP6437208B2 (ja) 手書き音楽記号認識装置及び手書き音楽記号認識プログラム
WO2022180725A1 (ja) 文字認識装置、プログラム及び方法
JP2021005173A (ja) Ocr認識結果確認支援プログラム、ocr認識結果確認支援方法およびocr認識結果確認支援システム
JP2006244526A (ja) 帳票処理装置、該装置実行のためのプログラム、及び、帳票書式作成プログラム
JP5867227B2 (ja) 文字認識用学習データ生成装置、文字認識装置、およびプログラム
JP5150479B2 (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: 15764468

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14911963

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15764468

Country of ref document: EP

Kind code of ref document: A1