WO2014119012A1 - 電子機器および手書き文書検索方法 - Google Patents
電子機器および手書き文書検索方法 Download PDFInfo
- Publication number
- WO2014119012A1 WO2014119012A1 PCT/JP2013/058402 JP2013058402W WO2014119012A1 WO 2014119012 A1 WO2014119012 A1 WO 2014119012A1 JP 2013058402 W JP2013058402 W JP 2013058402W WO 2014119012 A1 WO2014119012 A1 WO 2014119012A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- handwritten
- character string
- search
- index information
- strokes
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/1444—Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
- G06V30/1456—Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields based on user interactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Definitions
- the embodiment of the present invention relates to a technique for processing a handwritten document.
- the user can instruct the electronic device to execute the function associated with the menu or object by touching the menu or object displayed on the touch screen display with a finger or the like.
- An object of one embodiment of the present invention is to provide an electronic device and a handwritten document search method capable of efficiently searching for a handwritten document.
- the electronic device includes a storage unit, a generation unit, and a processing unit.
- the storage means stores a plurality of handwritten documents including a plurality of stroke data corresponding to a plurality of strokes in a storage medium.
- the generating means is first index information for searching a plurality of areas in the plurality of handwritten documents, and includes first index information including code information of a character string corresponding to a stroke group in the area; Second index information for searching for a plurality of regions in the handwritten document, and including second stroke information including the feature amounts of stroke groups in the region.
- the processing means uses the second index information and the feature quantities of the plurality of first strokes according to the character string likelihoods of the plurality of first strokes that are search keys, and performs handwriting corresponding to the search key.
- a handwriting search for searching for a handwritten document including a part, or a handwritten document including a handwritten part corresponding to the search key using the first index information and code information of a character string corresponding to the plurality of first strokes Execute at least one of the search for the character string to be searched.
- FIG. 1 is a perspective view illustrating an appearance of an electronic apparatus according to an embodiment.
- FIG. 2 is a diagram illustrating a cooperative operation between the electronic apparatus and the external device according to the embodiment.
- FIG. 3 is a diagram illustrating an example of a handwritten document handwritten on the touch screen display of the electronic device of the embodiment.
- FIG. 4 is a diagram for explaining time-series information corresponding to the handwritten document of FIG. 3 that is stored in the storage medium by the electronic apparatus of the embodiment.
- FIG. 5 is a block diagram showing a system configuration of the electronic apparatus of the embodiment.
- FIG. 6 is a view showing a desktop / drawer screen displayed by the electronic apparatus of the embodiment.
- FIG. 7 is a diagram showing a desktop screen displayed by the electronic apparatus of the embodiment.
- FIG. 1 is a perspective view illustrating an appearance of an electronic apparatus according to an embodiment.
- FIG. 2 is a diagram illustrating a cooperative operation between the electronic apparatus and the external device according to the embodiment.
- FIG. 3 is
- FIG. 8 is a diagram illustrating a note view screen displayed by the electronic apparatus of the embodiment.
- FIG. 9 is a diagram showing a search key input dialog displayed by the electronic apparatus of the embodiment.
- FIG. 10 is a block diagram showing a functional configuration of a handwritten note application program executed by the electronic apparatus of the embodiment.
- FIG. 11 is a diagram illustrating a data structure of a handwritten document managed by the electronic apparatus of the embodiment.
- FIG. 12 is a diagram showing feature amount index information managed by the electronic apparatus of the embodiment.
- FIG. 13 is a diagram showing character string index information managed by the electronic apparatus of the embodiment.
- FIG. 14 is a diagram for explaining an outline of character string search executed by the electronic apparatus of the embodiment.
- FIG. 15 is a diagram illustrating an example of a handwritten document handled by the electronic apparatus of the embodiment.
- FIG. 16 is a diagram showing a handwritten character string area and other handwritten areas included in the handwritten document of FIG.
- FIG. 17 is a diagram for explaining an index generation operation executed by the electronic device of the embodiment.
- FIG. 18 is a diagram for describing a search method executed by the electronic apparatus of the embodiment when the character string likelihood of the stroke group corresponding to the search key is high.
- FIG. 19 is a diagram for explaining a search method executed when the character string likelihood of the stroke group corresponding to the search key is low.
- FIG. 20 is a diagram for describing a search method executed by the electronic apparatus of the embodiment when the character string likelihood of the stroke group corresponding to the search key is in the intermediate range.
- FIG. 20 is a diagram for describing a search method executed by the electronic apparatus of the embodiment when the character string likelihood of the stroke group corresponding to the search key is in the intermediate range.
- FIG. 21 is a diagram illustrating an example of a search result screen displayed by the electronic device of the embodiment.
- FIG. 22 is a flowchart illustrating a procedure of index generation processing executed by the electronic apparatus of the embodiment.
- FIG. 23 is a flowchart illustrating a procedure of search processing executed by the electronic apparatus of the embodiment.
- FIG. 1 is a perspective view illustrating an external appearance of an electronic apparatus according to an embodiment.
- This electronic device is, for example, a pen-based portable electronic device that can be handwritten with a pen or a finger.
- This electronic device can be realized as a tablet computer, a notebook personal computer, a smartphone, a PDA, or the like.
- the tablet computer 10 is a portable electronic device also called a tablet or a straight computer, and includes a main body 11 and a touch screen display 17 as shown in FIG.
- the touch screen display 17 is attached to be superposed on the upper surface of the main body 11.
- the main body 11 has a thin box-shaped housing.
- the touch screen display 17 incorporates a flat panel display and a sensor configured to detect a contact position of a pen or a finger on the screen of the flat panel display.
- the flat panel display may be, for example, a liquid crystal display (LCD).
- As the sensor for example, a capacitive touch panel, an electromagnetic induction digitizer, or the like can be used. In the following, it is assumed that two types of sensors, a digitizer and a touch panel, are incorporated in the touch screen display 17.
- the touch screen display 17 can detect not only a touch operation on the screen using a finger but also a touch operation on the screen using the pen 100.
- the pen 100 may be an electromagnetic induction pen, for example.
- the user can perform a handwriting input operation on the touch screen display 17 using an external object (the pen 100 or a finger).
- the trajectory of the movement of the external object (pen 100 or finger) on the screen that is, the stroke handwritten by the handwriting input operation (trajectory of the handwriting stroke) is drawn in real time, and is input by handwriting. Multiple strokes are displayed on the screen.
- the trajectory of the movement of the external object while the external object is in contact with the screen corresponds to one stroke.
- a set of many strokes corresponding to handwritten characters and handwritten objects other than characters (handwritten graphics, handwritten tables, etc.) constitute a handwritten document.
- this handwritten document is stored in the storage medium as time series information (handwritten document data) indicating the order relationship between the coordinate sequence of the trajectory of each stroke and the stroke, instead of image data. Details of this time series information will be described later with reference to FIG. 4, and this time series information indicates the order in which a plurality of strokes are handwritten, and includes a plurality of stroke data respectively corresponding to the plurality of strokes.
- this time-series information means a set of time-series stroke data respectively corresponding to a plurality of strokes.
- Each stroke data corresponds to a certain stroke, and includes a coordinate data series (time series coordinates) corresponding to each point on the locus of this stroke.
- the order of arrangement of the stroke data corresponds to the order in which the strokes are handwritten.
- the tablet computer 10 can read existing arbitrary time-series information from the storage medium and display a handwritten document corresponding to the time-series information, that is, a plurality of strokes indicated by the time-series information on the screen.
- the plurality of strokes indicated by the time series information are also a plurality of strokes input by handwriting.
- the tablet computer 10 has an editing function.
- This editing function can be used to select any part (handwritten in the displayed handwritten document selected by the range selection tool in response to an editing operation by the user using the “eraser” tool, the range selection tool, and various other tools. Characters, handwritten marks, handwritten figures, handwritten tables, etc.) can be deleted or moved. Furthermore, an arbitrary part in the handwritten document selected by the range selection tool can be designated as a search key for searching for a handwritten document.
- the handwritten document can be managed as one or a plurality of pages.
- a group of time-series information that fits on one screen may be recorded as one page by dividing time-series information (handwritten document data) by area units that fit on one screen.
- the page size may be variable.
- the page size can be expanded to an area larger than the size of one screen, a handwritten document having an area larger than the screen size can be handled as one page.
- the page may be reduced, or the display target portion in the page may be moved by vertical and horizontal scrolling.
- FIG. 2 shows an example of cooperative operation between the tablet computer 10 and an external device.
- the tablet computer 10 can cooperate with the personal computer 1 and the cloud. That is, the tablet computer 10 includes a wireless communication device such as a wireless LAN, and can execute wireless communication with the personal computer 1. Furthermore, the tablet computer 10 can also execute communication with the server 2 on the Internet.
- the server 2 may be a server that executes an online storage service and other various cloud computing services.
- the personal computer 1 includes a storage device such as a hard disk drive (HDD).
- the tablet computer 10 can transmit time-series information (handwritten document data) to the personal computer 1 via the network and record it on the HDD of the personal computer 1 (upload).
- the personal computer 1 may authenticate the tablet computer 10 at the start of communication.
- a dialog prompting the user to input an ID or password may be displayed on the screen of the tablet computer 10, and the ID of the tablet computer 10 and the like are automatically transmitted from the tablet computer 10 to the personal computer 1. May be.
- the tablet computer 10 can handle a large amount of time-series information or large-capacity time-series information.
- the tablet computer 10 reads (downloads) any one or more time-series information recorded in the HDD of the personal computer 1 and displays the stroke indicated by the read time-series information on the screen of the display 17 of the tablet computer 10. Can be displayed.
- a list of thumbnails obtained by reducing each page of the plurality of pieces of time-series information may be displayed on the screen of the display 17, or one page selected from these thumbnails may be displayed on the screen of the display 17. You may display with normal size.
- the destination to which the tablet computer 10 communicates may be the server 2 on the cloud that provides a storage service or the like, as described above, instead of the personal computer 1.
- the tablet computer 10 can transmit time series information (handwritten document data) to the server 2 via the network and record it in the storage device 2A of the server 2 (upload). Furthermore, the tablet computer 10 reads (downloads) arbitrary time-series information recorded in the storage device 2A of the server 2, and displays the trajectory of each stroke indicated by the time-series information on the screen of the display 17 of the tablet computer 10. Can be displayed.
- the storage medium in which the time series information is stored may be any one of the storage device in the tablet computer 10, the storage device in the personal computer 1, and the storage device in the server 2.
- FIG. 3 shows an example of a handwritten document (handwritten character string) handwritten on the touch screen display 17 using the pen 100 or the like.
- the handwritten character “A” is represented by two strokes (“ ⁇ ” shape trajectory, “ ⁇ ” shape trajectory) handwritten using the pen 100 or the like, that is, two trajectories.
- the trajectory of the first “ ⁇ ” -shaped pen 100 handwritten is sampled in real time, for example, at equal time intervals, thereby obtaining the time-series coordinates SD11, SD12,... SD1n of the “ ⁇ ” -shaped stroke.
- the trajectory of the “ ⁇ ” shaped pen 100 to be handwritten next is also sampled in real time at equal time intervals, thereby obtaining the time series coordinates SD21, SD21,... SD2n of the “ ⁇ ” shaped stroke.
- the handwritten character “B” is represented by two strokes handwritten using the pen 100 or the like, that is, two trajectories.
- the handwritten character “C” is represented by one stroke handwritten by using the pen 100 or the like, that is, one locus.
- the handwritten “arrow” is expressed by two strokes handwritten by using the pen 100 or the like, that is, two trajectories.
- FIG. 4 shows time-series information 200 corresponding to the handwritten document of FIG.
- the time series information includes a plurality of stroke data SD1, SD2,.
- these stroke data SD1, SD2,..., SD7 are arranged in time series in the order in which these strokes are handwritten.
- the first two stroke data SD1 and SD2 indicate two strokes of the handwritten character “A”, respectively.
- the third and fourth stroke data SD3 and SD4 indicate two strokes constituting the handwritten character “B”, respectively.
- the fifth stroke data SD5 indicates one stroke constituting the handwritten character “C”.
- the sixth and seventh stroke data SD6 and SD7 indicate two strokes constituting the handwritten “arrow”, respectively.
- Each stroke data includes a coordinate data series (time series coordinates) corresponding to one stroke, that is, a plurality of coordinates corresponding to a plurality of points on the trajectory of one stroke.
- a plurality of coordinates are arranged in time series in the order in which the strokes are written.
- the stroke data SD1 is a coordinate data series (time series coordinates) corresponding to each point on the locus of the stroke of the “ ⁇ ” shape of the handwritten character “A”, that is, n coordinates.
- Data SD11, SD12,... SD1n are included.
- the stroke data SD2 includes coordinate data series corresponding to each point on the locus of the stroke of the “ ⁇ ” shape of the handwritten character “A”, that is, n pieces of coordinate data SD21, SD22,... SD2n. Note that the number of coordinate data may be different for each stroke data.
- Each coordinate data indicates an X coordinate and a Y coordinate corresponding to one point in the corresponding locus.
- the coordinate data SD11 indicates the X coordinate (X11) and the Y coordinate (Y11) of the start point of the “ ⁇ ” -shaped stroke.
- SD1n indicates the X coordinate (X1n) and Y coordinate (Y1n) of the end point of the “ ⁇ ” -shaped stroke.
- each coordinate data may include time stamp information T corresponding to the time when the point corresponding to the coordinate is handwritten.
- the handwritten time may be either absolute time (for example, year / month / day / hour / minute / second) or relative time based on a certain time.
- the absolute time for example, year / month / day / hour / minute / second
- each coordinate data in the stroke data indicates a difference from the absolute time.
- the relative time may be added as time stamp information T.
- the temporal relationship between the strokes can be expressed more accurately.
- information (Z) indicating writing pressure may be added to each coordinate data.
- the time series information 200 having the structure as described in FIG. 4 can represent not only the handwriting of each stroke but also the temporal relationship between the strokes. Therefore, by using this time-series information 200, as shown in FIG. 3, the tip of the handwritten “arrow” is written over the handwritten character “A” or close to the handwritten character “A”. However, the handwritten character “A” and the tip of the handwritten “arrow” can be handled as different characters or figures.
- handwritten document data is not stored as an image or character recognition result, but is stored as time-series information 200 composed of a set of time-series stroke data. It can handle handwritten characters without depending on. Therefore, the structure of the time-series information 200 according to the present embodiment can be used in common in various countries around the world with different languages.
- FIG. 5 is a diagram showing a system configuration of the tablet computer 10.
- the tablet computer 10 includes a CPU 101, a system controller 102, a main memory 103, a graphics controller 104, a BIOS-ROM 105, a nonvolatile memory 106, a wireless communication device 107, an embedded controller (EC) 108, and the like. .
- the CPU 101 is a processor that controls the operation of various modules in the tablet computer 10.
- the CPU 101 executes various software loaded into the main memory 103 from the nonvolatile memory 106 that is a storage device.
- These software include an operating system (OS) 201 and various application programs.
- the application program includes a handwritten note application program 202.
- the handwritten note application program 202 has a function for creating and displaying the above-mentioned handwritten document data, a function for editing handwritten document data, handwritten document data including a desired handwritten part, and a desired handwritten part in certain handwritten document data. It has a handwritten document search function for searching.
- the CPU 101 also executes a basic input / output system (BIOS) stored in the BIOS-ROM 105.
- BIOS is a program for hardware control.
- the system controller 102 is a device that connects between the local bus of the CPU 101 and various components.
- the system controller 102 also includes a memory controller that controls access to the main memory 103.
- the system controller 102 also has a function of executing communication with the graphics controller 104 via a PCI EXPRESS serial bus or the like.
- the graphics controller 104 is a display controller that controls the LCD 17 ⁇ / b> A used as a display monitor of the tablet computer 10.
- a display signal generated by the graphics controller 104 is sent to the LCD 17A.
- the LCD 17A displays a screen image based on the display signal.
- a touch panel 17B and a digitizer 17C are disposed on the LCD 17A.
- the touch panel 17B is a capacitance-type pointing device for inputting on the screen of the LCD 17A.
- the touch position on the screen where the finger is touched and the movement of the touch position are detected by the touch panel 17B.
- the digitizer 17C is an electromagnetic induction type pointing device for inputting on the screen of the LCD 17A.
- the digitizer 17C detects the contact position on the screen where the pen 100 is touched, the movement of the contact position, and the like.
- the wireless communication device 107 is a device configured to perform wireless communication such as wireless LAN or 3G mobile communication.
- the EC 108 is a one-chip microcomputer including an embedded controller for power management.
- the EC 108 has a function of turning on or off the tablet computer 10 in accordance with the operation of the power button by the user.
- FIG. 6 shows a desktop / drawer screen displayed by the handwritten note application program 202.
- the desktop / drawer screen is a basic screen for handling a plurality of handwritten document data.
- the handwritten document data is referred to as a handwritten note.
- the desktop / drawer screen includes a desktop screen area 70 and a drawer screen area 71.
- the desktop screen area 70 is a temporary area for displaying a plurality of note icons 801 to 805 corresponding to a plurality of handwritten notes being worked. Each of the note icons 801 to 805 displays a thumbnail of a page in the corresponding handwritten note.
- the desktop screen area 70 further displays a pen icon 771, a calendar icon 772, a scrap note icon 773, and a tag icon 774.
- the pen icon 771 is a graphical user interface (GUI) for switching the display screen from the desktop / drawer screen to a note view screen described later with reference to FIG.
- the calendar icon 772 is an icon indicating the current date.
- This calendar icon 772 is a GUI for switching the display screen from the desktop / drawer screen to the timeline note screen associated with the current date.
- the scrap note icon 773 is a GUI for creating or browsing scrap data. The created scrap data is registered in the scrapbook.
- the scrap note icon 773 displays a thumbnail of each scrap data registered in the scrapbook.
- the tag icon 774 is a GUI for attaching a sticky note (tag) to an arbitrary page in an arbitrary handwritten note.
- the drawer screen area 71 is a display area for browsing a storage area for storing all created handwritten notes.
- the drawer screen area 71 displays note icons 80A, 80B, 80C corresponding to some handwritten notes in all handwritten notes.
- Each of the note icons 80A, 80B, 80C displays a thumbnail of a page in the corresponding handwritten note.
- the handwritten note application program 202 can detect a gesture (for example, a swipe gesture) on the drawer screen area 71 performed by the user using an external object. In response to detecting this gesture (for example, a swipe gesture), the handwritten note application program 202 scrolls the screen image on the drawer screen area 71 leftward or rightward. Thereby, the note icon corresponding to each arbitrary handwritten note can be displayed in the drawer screen area 71.
- the handwritten note application program 202 can detect a gesture (for example, a tap gesture) on the note icon in the drawer screen area 71 performed by the user using an external object. In response to detection of a gesture (for example, a tap gesture) on a certain note icon on the drawer screen area 71, the handwritten note application program 202 moves the note icon to the center of the desktop screen area 70. Then, the handwritten note application program 202 selects a handwritten note corresponding to this note icon, and displays the desktop screen shown in FIG. 7 instead of the desktop / drawer screen.
- the desktop screen of FIG. 7 is a screen on which an arbitrary page in the selected handwritten note can be browsed.
- the handwritten note application program 202 can also detect a gesture (for example, a tap gesture) on the desktop screen area 70 performed by the user using an external object. In response to detecting a gesture (for example, a tap gesture) on a note icon located at the center of the desktop screen area 70, the handwriting note application program 202 selects a handwritten note corresponding to the note icon located at the center. Then, instead of the desktop / drawer screen, the desktop screen shown in FIG. 7 is displayed.
- a gesture for example, a tap gesture
- the desktop screen in FIG. 7 is a screen on which an arbitrary page in the selected handwritten note can be browsed.
- a handwritten note corresponding to the note icon 801 is selected.
- the handwritten note application program 202 can visually recognize a plurality of pages 901, 902, 903, 904, and 905 included in the handwritten note, and at least a part of each of these pages 901, 902, 903, 904, and 905, and These pages 901, 902, 903, 904, and 905 are displayed in an overlapping form.
- the desktop screen further displays the pen icon 771, the calendar icon 772, the scrap note icon 773, and the tag icon 774 described above.
- the handwritten note application program 202 can detect various gestures on the desktop screen performed by the user. For example, in response to detection of a certain gesture, the handwritten note application program 202 changes the page to be displayed at the top to an arbitrary page (page advance, page return). Further, in response to detection of a certain gesture (for example, tap gesture) performed on the top page or in response to detection of a certain gesture (for example, tap gesture) performed on the pen icon 771, the handwritten note application The program 202 selects the top page and displays the note view screen shown in FIG. 8 instead of the desktop screen.
- a certain gesture for example, tap gesture
- tap gesture for example, tap gesture
- the note view screen in FIG. 8 is a screen on which a new page (handwritten page) can be created and an existing page can be viewed and edited.
- the note view screen displays the contents of the page 901 as shown in FIG.
- the note view screen further displays a black pen button 501, a red pen button 502, a marker button 503, a selection button 504, and an eraser button 505.
- the handwriting note application program 202 is synchronized with the movement of the pen 100.
- a black stroke (trajectory) is displayed on the note view screen.
- FIG. 9 shows an example of a search key input dialog.
- the handwritten note application program 202 displays a search key input dialog including a search key input area 511 and a search button 512 on the desktop screen.
- the search key input area 511 is an input area for handwriting a character string, a figure, a table or the like to be used as a search key.
- the search button 512 is a button for requesting execution of search processing.
- FIG. 9 illustrates the case where the handwritten character string “Determine” is input as a search key in the search key input area 511. The user can handwrite not only the handwritten character string but also a handwritten figure, a handwritten table, or the like in the search key input area 511.
- the handwritten note application program 202 is a WYSIWYG application capable of handling handwritten document data, and includes a main control unit 311, a stroke management unit 312, a search engine 313, a communication processing unit 314, and the like.
- the main control unit 311 creates, displays, and edits a handwritten document (handwritten page) by using stroke data input using the touch screen display 17.
- the main control unit 311 includes a display processing unit 401 and a search processing unit 402.
- the display processing unit 401 displays a plurality of strokes input by handwriting on the screen of the LCD 17 ⁇ / b> A in the touch screen display 17. For example, in the state where the note view screen of FIG. 8 is displayed, the display processing unit 401 draws a stroke on the note view screen based on the input coordinate sequence from the digitizer 17C.
- the search processing unit 402 executes the above-described handwritten document search in cooperation with the search engine 313.
- the search processing unit 402 includes an index generation unit 402A.
- the index generation unit 402A generates index information for searching for each handwritten page in cooperation with the search engine 313.
- the main control unit 311 receives a coordinate sequence corresponding to the locus of movement of the pen 100 from the touch screen display 17 (for example, the digitizer 17C). Based on this coordinate string, the display processing unit 401 displays each stroke corresponding to a handwritten character, a handwritten figure, and the like written by a handwriting input operation on the screen of the LCD 17 ⁇ / b> A in the touch screen display 17. The display processing unit 401 draws the trajectory of the pen 100 while the pen 100 is in contact with the screen, that is, the trajectory of each stroke, on the screen of the LCD 17A. The main control unit 311 sends the above-described coordinate sequence received from the touch screen display 17 to the stroke management unit 312.
- the stroke management unit 312 functions as a storage unit configured to store a handwritten document (handwritten page) including a plurality of stroke data corresponding to a plurality of strokes in the handwritten note database 411. More specifically, the stroke management unit 312 generates the above time series information having the structure described in detail in FIG. 4 based on the above coordinate sequence received from the touch screen display 17, and this time series information. Is stored in the handwritten note database 411 as a page of a handwritten note.
- the handwritten note database 411 is a storage area in the storage medium.
- the stroke management unit 312 reads a page of an arbitrary handwritten note from the handwritten note database 411. Time series information corresponding to the read page is sent to the display processing unit 401.
- the display processing unit 401 analyzes the time series information, and displays each stroke indicated by the time series information (each stroke input by handwriting) on the screen based on the analysis result.
- the handwritten document search is executed by the search processing unit 402 and the search engine 313.
- the search processing unit 402 can search the handwritten note database 411 by selectively using two types of search methods: handwriting search and character string search (text search).
- the search engine 313 includes a handwriting search engine 313A, a character recognition engine 313B, and a character string search engine (character search engine) 313C.
- the handwriting search engine 313A performs the above-described handwriting search under the control of the search processing unit 402.
- This handwriting search is a search method for searching for a handwritten document including a handwritten portion having a feature amount (handwriting feature) similar to the feature amount (handwriting feature) of a plurality of strokes as search keys.
- the handwriting search engine 313A receives a plurality of strokes that are search keys from the search processing unit 402. Then, the handwriting search engine 313A obtains feature amount index information for searching a plurality of regions in a plurality of handwritten documents (a plurality of handwritten pages) and feature amounts (query feature amounts) of a plurality of strokes as search keys. Using one or more handwritten documents (handwritten pages) including an area (handwritten portion) corresponding to the search key described above.
- the feature amount index information includes the feature amount of the stroke group in each region.
- the handwriting search engine 313A finds a feature amount index information portion having a feature amount similar to the query feature amount from the feature amount index information in the feature amount database 412A, and uses this feature amount index information portion as the main control unit. Return to 311. In this case, a feature amount index information portion whose similarity with the query feature amount is greater than or equal to a reference value is acquired from the feature amount index information.
- DP Dynamic programming
- the search processing unit 402 of the main control unit 311 selects one or more handwritten pages including a handwritten portion having a feature amount similar to the above-described query feature amount based on the feature amount index information portion received from the handwriting search engine 313A. Search for.
- the handwriting search engine 313A is configured to execute processing for generating the above-described index information corresponding to each handwritten page under the control of the index generation unit 402A.
- the generation of the feature amount index information of a handwritten page may be executed when the handwritten page is stored.
- a plurality of stroke data corresponding to the handwritten page is stored in the handwritten note database 411 and sent to the handwriting search engine 313A.
- the handwriting search engine 313A analyzes the stroke data of each region (each handwritten portion) in the handwritten page, and generates the above-described feature amount index information.
- the generated feature amount index information is stored in the feature amount database 412A in a state associated with the corresponding handwritten page in the handwritten note database 411.
- the character string search is a search method (text search) for searching for a handwritten document including character strings corresponding to a plurality of strokes as search keys.
- the character string search engine 313C receives from the search processing unit 402 character string code information (text) corresponding to a plurality of strokes as a search key (search word).
- Code information of a character string corresponding to a plurality of strokes can be obtained by character recognition of the plurality of strokes by the character recognition engine 313B.
- the character string search engine 313B includes character string index information for searching a plurality of areas in a plurality of handwritten documents (a plurality of handwritten pages), and code information of character strings corresponding to a plurality of strokes that are search keys.
- the character string index information includes code information of a character string corresponding to a stroke group included in each region in the handwritten page. This code information can be generated, for example, by recognizing a stroke group of each handwritten character string.
- the character string search engine 313C finds the character string index information portion including the above-described search word from the character string index information in the character string search database 412B. Then, the character string search engine 313C returns this character string index information portion to the main control unit 311.
- the search processing unit 402 of the main control unit 311 can search for one or more handwritten pages including a handwritten part corresponding to the above-described search word based on the character string index information part received from the character string search engine 313C. it can.
- a handwritten page may include not only a handwritten character string but also a handwritten figure, a handwritten table, a handwritten mark, and the like.
- the handwriting search described above can search not only handwritten character strings but also handwritten objects other than characters such as handwritten figures, handwritten tables, and handwritten marks. Therefore, handwriting search is useful for searching for handwritten pages.
- handwritten character strings are input as search keys.
- handwritten figures other than characters may be erroneously searched. For example, when a handwritten character string including handwritten characters “o”, “q”, “d”, or the like is input as a search key, a circular handwritten figure, a square handwritten figure, or the like is erroneously searched. There is a possibility of being.
- handwriting characteristics vary from user to user. Moreover, even if the same user has handwritten the same character, the handwriting characteristics of the character may differ between when the character is handwritten quickly and when the character is handwritten carefully. Therefore, if you always perform a handwriting search regardless of whether the multiple strokes entered as search keys are handwritten characters or other handwritten objects other than handwritten characters, In some cases, handwritten pages that are messyly written in cannot be searched correctly.
- the handwritten document search is executed by using both handwriting search and character string search (text search). That is, the search processing unit 402 executes at least one of handwriting search or character string search (text search) according to the character string likelihood of a plurality of strokes that are search keys.
- the character string likelihood of a plurality of strokes is a score representing the character string likelihood of these strokes.
- the entire plurality of strokes handwritten as search keys are handled as one handwritten block, and the character string likelihood of this handwritten block is calculated.
- the character string likelihood may be expressed by a score ranging from 0 to 100, for example.
- any method capable of evaluating the character string likelihood of the stroke shape as a whole can be used. For example, feature amounts of these strokes may be extracted, and character string likelihoods of these strokes may be calculated based on the feature amounts.
- handwritten figures, handwritten tables, etc. often have a lower stroke density (number of strokes in one handwritten block) than handwritten characters, so the string likelihood based on the number of strokes in the handwritten block, etc. May be calculated.
- a plurality of strokes as search keys may be recognized, and a character string likelihood may be calculated from a value representing the degree of similarity with the character string.
- the search processing unit 402 If the character string likelihoods of a plurality of strokes that are search keys are relatively high, that is, if there is a high possibility that the plurality of strokes are character strings, the search processing unit 402 performs character string search (text search). Execute. On the other hand, if the character string likelihood of a plurality of strokes that are search keys is relatively low, that is, if it is unlikely that the plurality of strokes are character strings, the search processing unit 402 performs a handwriting search.
- character string search text search
- a plurality of strokes that are search keys are handled as one handwritten block, and a search method to be executed is performed according to the character string likelihood indicating the degree of character string likelihood of the handwritten block. Determined automatically. Accordingly, when the search key is likely to be a character string, a character string search is executed, and when the search key is not likely to be a character string, a handwriting search is executed, so that it is possible to improve the accuracy of the handwritten document search.
- both the character string index information and the feature amount index information described above may be generated for all regions of each handwritten page, but whether each region in each handwritten page is a character string region or not.
- the above-described character string index information and the above-described feature amount index information may be selectively generated according to whether the character string region is included.
- the search processing unit 402 searches each character string area in each handwritten page instead of the entire area in each handwritten page.
- the character string region is a region having a high character string likelihood. Accordingly, it is possible to more efficiently prevent a handwritten figure other than characters from being erroneously searched even though the plurality of strokes that are search keys are handwritten character strings.
- the search processing unit 402 sets each non-character string area in each handwritten page as a search target instead of the entire area in each handwritten page.
- the non-character string region is a region having a low character string likelihood. Accordingly, it is possible to more efficiently prevent a handwritten character or the like from being erroneously searched even though a plurality of strokes that are search keys are handwritten figures.
- the search method to be used is automatically selected according to the character string likelihood of a plurality of strokes that are search keys, and the character string likelihood of a plurality of strokes that are search keys. Accordingly, the search target area in each handwritten page is determined.
- the index generation unit 402A of the search processing unit 402 includes character string index information for searching a plurality of character string regions in a plurality of handwritten pages, and a plurality of non-characters in the plurality of handwritten pages.
- the feature amount index information for searching the column area is generated.
- the character string index information includes code information of a character string corresponding to a stroke group in each character string area.
- the feature amount index information indicates the feature amount of the stroke group in each non-character string region.
- the index generation unit 402A selectively generates the above-described character string index information or the above-described feature amount index information for each region in the handwritten page according to the character string likelihood of the region.
- the index generation unit 402A cooperates with the character recognition engine 313B in the search engine 313 to obtain character string index information for searching this area. Generate.
- This character string index information includes code information of a character string corresponding to a stroke group in this area.
- the code information of this character string is obtained by character recognition of the stroke group in this area by the character recognition engine 313B.
- the generated character string index information is stored in the character string search database 412B in the index database 412.
- the index generation unit 402A cooperates with the handwriting search engine 313A in the search engine 313 to obtain feature amount index information for searching this region. Generate.
- This feature amount index information is information indicating the feature amount (handwriting feature) of the stroke group in this region.
- the generated feature amount index information is stored in the feature amount database 412A in the index database 412.
- the main control unit 311 can execute communication with the server 2 via the communication processing unit 314.
- the communication processing unit 314 functions as a transmission unit that transmits (uploads) arbitrary handwritten page data to the server 2, and further functions as a reception unit that receives arbitrary handwritten page data from the server 2.
- FIG. 11 shows the structure of a handwritten page data management table stored in the handwritten note database 441.
- the handwritten page data management table includes a plurality of entries corresponding to a plurality of handwritten pages. Each entry includes, for example, a page ID, a user ID, a stroke ID, and stroke data.
- page ID indicates identification information given to the handwritten page data.
- User ID indicates identification information given to the user who created the handwritten page data.
- “Stroke ID” indicates identification information given to a stroke handwritten in the handwritten page data.
- “Stroke data” indicates a coordinate data series (time series coordinates) corresponding to a stroke handwritten in the handwritten page data.
- FIG. 12 shows a configuration example of a feature index information management table stored in the feature database 412A.
- the feature amount index information management table includes a plurality of entries corresponding to a plurality of strokes. Each entry includes, for example, a page ID, a stroke ID, and a feature amount.
- page ID indicates identification information given to a handwritten document in which the stroke is handwritten.
- Stroke ID indicates identification information given to the stroke.
- Feature amount indicates a feature amount (handwriting feature) calculated by analyzing the stroke.
- feature amount data representing the shape of each stroke or the like can be used.
- the feature amount is managed for each stroke, but the feature amount of the handwritten object is managed in units of handwritten objects (handwritten blocks) such as handwritten figures, handwritten tables, and handwritten symbols. May be.
- handwritten objects handwritten blocks
- any feature amount capable of expressing features such as the shape of the handwritten object can be used.
- the feature amount of the handwritten object may include information indicating the order in which a plurality of strokes constituting the handwritten object are written, and the like.
- the feature quantity index information management table may include information indicating the position in the page where each handwritten object exists.
- FIG. 13 shows a configuration example of a character string index information management table stored in the character string search database 412B.
- the character string index information management table includes a plurality of entries corresponding to a plurality of regions (a plurality of character string blocks) having a high character string likelihood. Each entry includes, for example, “page ID”, “stroke ID range”, and “character string”.
- page ID indicates identification information of a handwritten page in which the character string block is handwritten.
- “Stroke ID range” indicates a range of identification information given to a stroke group in the character string block.
- “Character string” indicates code information (character code group) for the character string block.
- the character string index information management table may include information indicating the position in the page where each character string block exists.
- FIG. 14 shows an outline of handwritten document search.
- a plurality of strokes corresponding to the handwritten character string “Meeting” are handwritten with the pen 100 in the search key input area 511.
- These multiple strokes are stroke groups having a high character string likelihood.
- the search processing unit 402 can select the above-described character string search as a search method to be used.
- the search processing unit 402 performs character recognition of the handwritten character string “Meeting” using the character recognition engine 313B, and obtains code information (character string “Meeting”) corresponding to the handwritten character string “Meeting”. Then, the search processing unit 402 refers to the character string index information management table of the character search database 412B and searches for a handwritten page including a handwritten portion (handwritten character string) corresponding to the character string “Meeting”. Assume that the handwritten pages 611, 612, and 613 include a handwritten character string corresponding to the character string “Meeting”.
- the handwritten note application program 202 displays the thumbnails of the handwritten pages 611, 612, and 613 on the screen. Further, the handwritten note application program 202 highlights the hit word (handwritten character string “Meeting”) in the handwritten pages 611, 612, and 613.
- FIG. 15 shows a handwritten page 610 including a handwritten character string and handwritten objects other than the handwritten character string.
- the handwritten page 610 includes a region (character string block) 610A having a high character string likelihood and a region (non-character string block) 610B having a low character string likelihood.
- the handwritten note application program 202 generates the above-described character string index information as index information for searching for a stroke group in the area 610A, and this character string index information is stored in the character string index information management table of the character string search database 412B. sign up.
- the handwritten note application program 202 generates the above-described feature amount index information as index information for searching for a stroke group in the area 610B, and this feature amount index information is stored in the feature amount index information management table of the feature amount database 412A. Register with.
- the feature amount index information and the character string index information are selectively used according to the character string likelihood of each region in the handwritten page.
- the region 610A is a search target, but the region 610B is not a search target. This is because the character string index information corresponding to the area 610A is registered in the character string search database 412B, but the character string index information corresponding to the area 610B does not exist in the character string search database 412B.
- the character string index information corresponding to the area 610B is generated, not only the area 610A but also the area 610B is the object of the character string search in the character string search (text search). In this case, there is a possibility that a handwritten figure other than characters is erroneously searched, even though a plurality of strokes as search keys are handwritten character strings. This is because if the character string index information corresponding to the area 610B is generated by character recognition, the handwritten figure in the area 610B may be converted into some incorrect character codes.
- an area (character string area) having a high character string likelihood in each handwritten page, not the entire area in each handwritten page, may be a search target. it can.
- the area 610B is a search target. This is because the feature quantity index information corresponding to the area 610B is registered in the feature quantity database 412A, but the feature quantity index information corresponding to the area 610A does not exist in the feature quantity database 412A.
- the feature amount index information corresponding to the area 610A is generated, not only the area 610B but also the area 610A is the target of the handwriting search in the handwriting search. In this case, there is a possibility that a handwritten character is erroneously searched although a plurality of strokes which are search keys are handwritten figures.
- FIG. 17 shows an operation of generating index information for searching the handwritten page 610 of FIG.
- the main control unit 311 transmits a plurality of stroke data constituting the handwritten page 610 to the character recognition engine 313B via the stroke management unit 312 and calculates the character string likelihood corresponding to each area in the handwritten page 610 as a character. Request to the recognition engine 313B.
- the character recognition engine 313B performs a structural analysis of the handwritten page 610 based on a plurality of stroke data constituting the handwritten page 610.
- the character recognition engine 313B can group a plurality of stroke data and classify the plurality of stroke data into a plurality of regions (a plurality of handwritten blocks).
- the character recognition engine 313B can classify a plurality of stroke data into a plurality of handwritten blocks so that, for example, stroke data corresponding to strokes located in the vicinity of each other are classified into the same block.
- the character recognition engine 313B calculates a character string likelihood (character string likelihood score) representing the character likelihood (character string likelihood) of each handwritten block.
- a plurality of stroke data corresponding to a plurality of strokes included in the area 610B is sent to the handwriting search engine 313A.
- the handwriting search engine 313A extracts feature quantities for each of a plurality of strokes included in the area 610B, and stores these feature quantities in the feature quantity database 412A as the above-described feature quantity index information.
- the area 610A having a high character string likelihood is recognized by the character recognition engine 313B, and the stroke group in the area 610A is converted into code information (text) including one or more character codes. This code information (character code group) is stored in the character string search database 412B as the character string index information described above.
- the process of calculating the character string likelihood is executed individually for all areas in each handwritten page. Further, the process of calculating the character string likelihood is executed for a plurality of strokes used as search keys.
- the search processing unit 402 calculates the character string likelihood of the handwritten character string “Determine” using the character recognition engine 313B. In this case, in the calculation of the character string likelihood, the entire stroke group corresponding to the handwritten character string “Determine” is treated as one region (one handwritten block). Since the character string likelihood of this stroke group is high, the search processing unit 402 selects character string search (text search). Then, the search processing unit 402 executes a character string search (text search) using the code information (text) corresponding to the handwritten character string “Determine” and the character string index information described above.
- the search processing unit 402 treats the entire stroke group corresponding to the handwritten graphic as one region (one handwritten block) described above, and uses the character recognition engine 313B to detect the character string likelihood of the entire stroke group. Calculate the degree. Since the character string likelihood of these stroke groups is low, the search processing unit 402 selects handwriting search. And the search process part 402 performs a handwriting search using the feature-value (handwriting feature) of the stroke group of a handwritten figure, and the above-mentioned feature-value index information.
- the character string likelihoods of a plurality of strokes input to the search key input area 511 belong to an intermediate range between a high character string likelihood corresponding to the character string and a low character string likelihood corresponding to the non-character string.
- the search processing unit 402 performs character string search using character string code information corresponding to a plurality of strokes input to the search key input area 511 and a plurality of strokes input to the search key input area 511. Both handwriting searches using the feature amount of can be performed.
- strokes handwritten in the search key input area 511 are used as search keys.
- a stroke group may be used as a search key.
- the threshold value Th-1 and the threshold value Th-2 may be set to different same character string likelihood scores as shown in FIG.
- FIG. 20 shows a case where the character string likelihood score corresponding to the threshold Th-1 is set higher than the character string likelihood score corresponding to the threshold Th-2.
- the character string likelihood score corresponding to the threshold Th-1 may be 80, for example.
- an area having a character string likelihood score higher than 80 is determined as the character string area.
- the above-described character string index information is used as index information for searching each character string region in a handwritten page having a character string likelihood score higher than 80.
- the character string likelihood score corresponding to the threshold Th-2 may be 20, for example. In this case, an area having a character string likelihood score lower than 20 is determined as a non-character string area.
- the above-described feature amount index information is used as index information for searching each non-character string region in a handwritten page having a character string likelihood score lower than 20.
- the above-described feature amount index information and the above-described feature amount index information are used as index information for searching this region. Both of the above-described character string index information are generated and stored.
- the index generation unit 402A determines that each of the plurality of areas is (i) a character string area and (ii) a non-character according to a plurality of character string likelihoods corresponding to a plurality of areas in the plurality of handwritten pages. It is determined whether it is a row area, or (iii) an intermediate area between a character string area and a non-character string area. Then, the index generation unit 402A searches for the character string index information for searching for each area determined to be the above-described character string area and the respective areas determined to be intermediate areas described above. Generate string index information.
- the index generation unit 402A is feature amount index information for searching for each area determined to be the above-mentioned non-character string area, and the index generation unit 402A includes the index information in each area determined to be the non-character string area. Feature amount index information indicating the feature amount of the stroke group is generated. Furthermore, the index generation unit 402A is feature amount index information for searching for each area determined to be the above-described intermediate area, and the stroke in each area determined to be the intermediate area. Feature amount index information indicating a group feature amount is generated.
- both the feature amount index information and the above-described character string index information are generated and stored for an area (stroke group) where it is difficult to determine whether it is a character string or a character string. Is done.
- an area in which it is difficult to determine whether it is a character string or a character string is a search target regardless of whether handwriting search or text search is executed.
- a search having robustness is possible.
- the threshold value (threshold likelihood) of the character string likelihood score used for determining the search method may be one, but the above two different threshold values Th-1, Th -2 can also be used to determine the search strategy to be performed.
- Th-1, Th -2 can also be used to determine the search strategy to be performed.
- both handwriting search and character string search are executed.
- both the handwritten page searched by the handwriting search and the handwritten page searched by the character string search may be presented to the user as search results corresponding to the search key.
- FIG. 21 shows an example of a search result screen 600 displayed by the handwritten note application program 202.
- the handwritten character string “TABLET” input in the search key input area 601 is used as a search key.
- thumbnails 601A corresponding to each of several handwritten pages including the handwritten character string “TABLET” are displayed. That is, on the search result screen 600, thumbnails 601A corresponding to each of several handwritten documents including a stroke group estimated as the handwritten character string “TABLET” are displayed.
- FIG. 21 illustrates a case where five handwritten pages are searched as a handwritten document including the handwritten character string “TABLET”. The hit word, that is, the handwritten character string “TABLET” (that is, the stroke group corresponding to the handwritten character string “TABLET”) in the five thumbnails 601A is highlighted.
- the handwritten note application program 202 When the handwritten note application program 202 detects a gesture such as a tap gesture performed on a certain thumbnail 601A, the handwritten note application program 202 displays a handwritten page corresponding to the thumbnail 601A.
- a gesture such as a tap gesture performed on a certain thumbnail 601A
- the flowchart of FIG. 22 shows the procedure of index generation processing executed by the handwritten note application program 202.
- the index generation unit 402A executes the structural analysis of the handwritten page to be processed using the character recognition engine 313B, thereby calculating the character string likelihood of each region (each handwritten block) in the handwritten page (step S11). ).
- the index generation unit 402A determines whether or not the character string likelihood of the processing target area is higher than the above-described threshold value Th-1 (step S12). If the character string likelihood of the area to be processed is higher than the above-mentioned threshold value Th-1 (YES in step S12), the index generation unit 402A uses the text search method to search for the area to be processed using the text search method. Index information is generated, and this character string index information is stored in the character string search database 412B (step S13).
- This character string index information includes code information of a character string corresponding to a stroke group in the processing target area.
- the index generating unit 402A determines that the character string likelihood of the region to be processed is the above-described threshold value Th ⁇ . It is determined whether it is lower than 2 (step S14). If the character string likelihood of the area to be processed is lower than the above-described threshold value Th-2 (YES in step S14), the index generation unit 402A searches for the area to be processed using the handwriting search method. Information is generated, and the feature amount index information is stored in the feature amount database 412A (step S15). This feature amount index information indicates the feature amount (handwriting feature) of the stroke group in the region to be processed.
- step S14 the index generation unit 402A generates both the character string index information corresponding to the processing target area and the feature amount index information corresponding to the processing target area (step S16).
- step S16 the index generation unit 402A stores the feature amount index information corresponding to the processing target area in the feature amount database 412A, and the character string index information corresponding to the processing target area in the character string search database 412B. save.
- the type of index information to be created is determined between the character string index information and the feature amount index information according to the character string likelihood of each region (each handwritten block) in each handwritten page. Although automatically changed, both character string index information and feature amount index information may be generated for each region.
- the flowchart of FIG. 23 shows the procedure of the handwritten document search process executed by the handwritten note application program 202.
- the search processing unit 402 treats a plurality of strokes handwritten in the search key input area as one handwritten block, and uses the character recognition engine 313B to determine the character string likelihood of the handwritten block (that is, a plurality of search keys).
- the character string likelihood of the stroke is calculated (step S21).
- the search processing unit 402 determines whether or not the character string likelihoods of a plurality of strokes that are search keys are higher than the above-described threshold value Th ⁇ 1 (step S22).
- the search processing unit 402 performs a character string search (text search) (step S23). ).
- the search processing unit 402 executes a character string search using the character string index information in the character string search database 412B and the character string code information corresponding to a plurality of strokes as search keys. Then, the search processing unit 402 searches each handwritten page including the handwritten data portion corresponding to the search key, that is, each handwritten page including the handwritten data portion corresponding to the character string of the search key.
- the search processing unit 402 determines the character string likelihoods of the plurality of strokes that are search keys. Is lower than the above-mentioned threshold value Th-2 (step S24).
- the search processing unit 402 executes a handwriting search (step S25).
- the search processing unit 402 performs a handwriting search using the feature amounts of a plurality of strokes, which are search keys, and the feature amount index information in the feature amount database 412A. Then, the search processing unit 402 searches each handwritten page including the handwritten data portion corresponding to the search key, that is, each handwritten page including a plurality of strokes similar to the plurality of strokes as the search key.
- the search processing unit 402 performs both character string search (text search) and handwriting search. Is executed (step S26). In this case, the search processing unit 402 outputs both the handwritten pages searched by the character string search (text search) and the handwritten pages searched by the handwriting search as search results corresponding to the search key. In this case, the search processing unit 402 may merge the search result of the character string search (text search) and the search result of the handwriting search in order to prevent a plurality of the same handwritten pages from being displayed on the search result screen. Good.
- the character string likelihood of the search key is divided into three levels using two threshold values is illustrated, but the character string likelihood of the search key is determined using one threshold value. It may be divided into two levels.
- a plurality of handwritten documents including a plurality of stroke data corresponding to a plurality of strokes are stored, and a plurality of areas for searching a plurality of regions in the plurality of handwritten documents are searched.
- One index information (character string index information) and second index information (feature amount index information) for searching a plurality of regions in the plurality of handwritten documents are generated.
- a search method handwriting search / character string search
- a character string search is executed, and when the search key is not likely to be a character string, a handwriting search is executed, so that it is possible to improve the accuracy of the handwritten document search. Therefore, it is possible to efficiently search for handwritten documents that can include not only handwritten character strings but also handwritten objects other than characters such as handwritten figures, handwritten tables, and handwritten marks.
- the character string index information for searching for a plurality of character string regions in a plurality of handwritten documents, and the feature amount index for searching for a plurality of non-character string regions in the plurality of handwritten documents Information can also be generated.
- the search key seems to be a character string
- a plurality of character string areas in a plurality of handwritten documents can be searched for a character string search, and a stroke group that seems to be a handwritten object other than a character string
- a plurality of non-character string regions in a plurality of handwritten documents can be set as search targets for handwriting search.
- the character string search is applied to a region that seems to be a character string, and the handwriting search is applied to other regions. Therefore, it is possible to further improve the accuracy of searching for handwritten documents.
- server 2 may execute all or some of the functions of the handwriting search unit 402, the index generation unit 402A, and the search engine 313.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Character Discrimination (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
実施形態によれば、電子機器は、複数の手書き文書内の複数の領域を検索するための第1インデックス情報と、前記複数の手書き文書内の複数の領域を検索するための第2インデックス情報とを生成する。前記電子機器は、検索キーである複数の第1ストロークの文字列尤度に応じて、前記第2インデックス情報と前記複数の第1ストロークの特徴量とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する筆跡検索、または前記第1インデックス情報と前記複数の第1ストロークに対応する文字列のコード情報とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する文字列検索の少なくとも一方を実行する。
Description
本発明の実施形態は、手書き文書を処理する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
最近では、手書き文字を認識するための技術も開発されている。
しかし、従来では、所望の手書き文書を効率よく検索するための技術については考慮されていないのが現状である。
本発明の一形態の目的は、手書き文書を効率よく検索することができる電子機器および手書き文書検索方法を提供することである。
実施形態によれば、電子機器は、保存手段と、生成手段と、処理手段とを具備する。前記保存手段は、複数のストロークに対応する複数のストロークデータを含む複数の手書き文書を記憶媒体に保存する。前記生成手段は、前記複数の手書き文書内の複数の領域を検索するための第1インデックス情報であって領域内のストローク群に対応する文字列のコード情報を含む第1インデックス情報と、前記複数の手書き文書内の複数の領域を検索するための第2インデックス情報であって領域内のストローク群の特徴量を含む第2インデックス情報とを生成する。前記処理手段は、検索キーである複数の第1ストロークの文字列尤度に応じて、前記第2インデックス情報と前記複数の第1ストロークの特徴量とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する筆跡検索、または前記第1インデックス情報と前記複数の第1ストロークに対応する文字列のコード情報とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する文字列検索の少なくとも一方を実行する。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストローク(手書きストロークの軌跡)がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1つのストロークに相当する。手書きされた文字および文字以外の手書きされたオブジェクト(手書きされた図形、手書きされた表、など)に対応する多数のストロークの集合が手書き文書を構成する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報(手書き文書データ)として記憶媒体に保存される。この時系列情報の詳細は図4を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の部分(手書き文字、手書きマーク、手書き図形、手書き表、等)を削除または移動することができる。またさらに、範囲選択ツールによって選択される手書き文書内の任意の部分を、手書き文書を検索するための検索キーとして指定することもできる。
本実施形態では、手書き文書は、1つまたは複数のページとして管理されうる。この場合、時系列情報(手書き文書データ)を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる時系列情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、時系列情報(手書き文書データ)をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。タブレットコンピュータ10とパーソナルコンピュータ1との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ1がタブレットコンピュータ10を認証するようにしてもよい。この場合、タブレットコンピュータ10の画面上にユーザに対してIDまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ10のIDなどを自動的にタブレットコンピュータ10からパーソナルコンピュータ1に送信してもよい。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の時系列情報あるいは大容量の時系列情報を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の時系列情報を読み出し(ダウンロード)、その読み出した時系列情報によって示されるストロークをタブレットコンピュータ10のディスプレイ17の画面に表示することができる。この場合、複数の時系列情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをディスプレイ17の画面上に通常サイズで表示してもよい。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、時系列情報(手書き文書データ)をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の時系列情報を読み出して(ダウンロード)、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。
このように、本実施形態では、時系列情報が保存される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、図形、表など)と時系列情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
手書き文書では、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きによって入力された場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「-」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「-」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「-」形状のストロークの時系列座標SD21、SD21、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文書に対応する時系列情報200を示している。時系列情報は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、これらストロークが手書きされた順に時系列に並べている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「-」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
このように、各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する時系列情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
さらに、本実施形態では、上述したように、手書き文書データは、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS-ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS-ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、上述の手書き文書データを作成および表示する機能、手書き文書データを編集する機能、所望の手書き部分を含む手書き文書データや、ある手書き文書データ内の所望の手書き部分を検索するための手書き文書検索機能を有している。
また、CPU101は、BIOS-ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bおよびデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置および接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、手書きノートアプリケーションプログラム202によってユーザに提示される幾つかの代表的な画面の例を説明する。
図6は、手書きノートアプリケーションプログラム202によって表示されるデスクトップ/ドロア画面を示す。デスクトップ/ドロア画面は複数の手書き文書データを扱うための基本画面である。以下では、手書き文書データを手書きノートと称する。
デスクトップ/ドロア画面は、デスクトップ画面領域70とドロア画面領域71とを含む。デスクトップ画面領域70は作業中の複数の手書きノートに対応する複数のノートアイコン801~805を表示するテンポラリ領域である。ノートアイコン801~805の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域70は、さらに、ペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
ペンアイコン771は、表示画面をデスクトップ/ドロア画面から図8で後述するノートビュー画面に切り替えるためのグラフィカルユーザインタフェース(GUI)である。カレンダーアイコン772は現在の日付を示すアイコンである。このカレンダーアイコン772は、表示画面をデスクトップ/ドロア画面から現在の日付に関連付けられたタイムラインノート画面に切り替えるためのGUIである。スクラップノートアイコン773は、スクラップデータを作成または閲覧するためのGUIである。作成されたスクラップデータはスクラップブックに登録される。スクラップノートアイコン773は、スクラップブックに登録されている各スクラップデータのサムネイルを表示する。タグアイコン774は、任意の手書きノート内の任意のページに付箋紙(タグ)を貼り付けるためのGUIである。
ドロア画面領域71は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。ドロア画面領域71は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン80A,80B,80Cを表示する。ノートアイコン80A,80B,80Cの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71上のジェスチャ(例えばスワイプジェスチャ等)を検出することができる。このジェスチャ(例えばスワイプジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、ドロア画面領域71上の画面イメージを左方向または右方向にスクロールする。これにより、ドロア画面領域71に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71のノートアイコン上のジェスチャ(例えばタップジェスチャ等)を検出することができる。ドロア画面領域71上のあるノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、このノートアイコンをデスクトップ画面領域70の中央部に移動する。そして、手書きノートアプリケーションプログラム202は、このノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるデスクトップ画面領域70上のジェスチャ(例えばタップジェスチャ等)も検出することができる。デスクトップ画面領域70の中央部に位置するノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。
上述したように、図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ノートアイコン801に対応する手書きノートが選択された場合を想定する。この場合、手書きノートアプリケーションプログラム202は、この手書きノートに含まれる複数のページ901,902,903,904,905を、これらページ901,902,903,904,905それぞれの少なくとも一部分が視認可能で且つこれらページ901,902,903,904,905が重なった形態で表示する。
デスクトップ画面は、さらに、上述のペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
手書きノートアプリケーションプログラム202はユーザによって行われるデスクトップ画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、一番上に表示されるべきページを任意のページに変更する(ページ送り、ページ戻し)。また、一番上のページ上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、またはペンアイコン771上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、手書きノートアプリケーションプログラム202は、一番上のページを選択し、そしてデスクトップ画面の代わりに、図8に示すノートビュー画面を表示する。
図8のノートビュー画面は、ページ(手書きページ)の新規作成、および既存のページの閲覧および編集が可能な画面である。図7のデスクトップ画面上のページ901が選択された場合には、図8に示すように、ノートビュー画面は、ページ901の内容を表示する。
ノートビュー画面は、さらに、黒ペンボタン501、赤ペンボタン502、マーカーボタン503、選択ボタン504、および消しゴムボタン505を表示する。
例えば、黒ペンボタン501がユーザによるタップジェスチャによって選択された状態で、ペン100を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム202は、ペン100の動きに合わせて黒色のストローク(軌跡)をノートビュー画面上に表示する。
図9は、検索キー入力ダイアログの例を示す。例えば、デスクトップ画面上の空き領域上で行われるタップジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、検索キー入力領域511および検索ボタン512を含む検索キー入力ダイアログをデスクトップ画面上に表示する。検索キー入力領域511は、検索キーとすべき文字列、図形、表などを手書きするための入力領域である。検索ボタン512は、検索処理の実行を要求するためのボタンである。図9においては、検索キー入力領域511に手書き文字列「Determine」が検索キーとして入力された場合が例示されている。ユーザは、手書き文字列に限らず、手書き図形、手書き表などを検索キー入力領域511に手書きすることができる。
次に、図10を参照して、手書きノートアプリケーションプログラム202の機能構成について説明する。
手書きノートアプリケーションプログラム202は、手書き文書データを扱うことが可能なWYSIWYGアプリケーションであり、主制御部311、ストローク管理部312、検索エンジン313、および通信処理部314等を備える。主制御部311はタッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書(手書きページ)の作成、表示、編集等を行う。
主制御部311は、表示処理部401および検索処理部402を備える。表示処理部401は、手書きによって入力される複数のストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。例えば、図8のノートビュー画面が表示されている状態においては、表示処理部401は、デジタイザ17Cからの入力座標列に基づきストロークをノートビュー画面上に描画する。検索処理部402は、検索エンジン313と共同して、上述の手書き文書検索を実行する。この検索処理部402は、インデックス生成部402Aを備える。インデックス生成部402Aは、検索エンジン313と共同して、各手書きページを検索するためのインデックス情報を生成する。
主制御部311は、タッチスクリーンディスプレイ17(例えばデジタイザ17C)からペン100の動きの軌跡に対応する座標列を受信する。表示処理部401は、この座標列に基づいて、手書き入力操作によって書かれる手書き文字、手書き図形などに対応する各ストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。この表示処理部401により、画面にペン100が接触している間のペン100の軌跡、つまり各ストロークの軌跡がLCD17Aの画面上に描かれる。主制御部311は、タッチスクリーンディスプレイ17から受信される上述の座標列をストローク管理部312に送る。
ストローク管理部312は、複数のストロークに対応する複数のストロークデータを含む手書き文書(手書きページ)を手書きノートデータベース411に保存するように構成された保存部として機能する。より詳しくは、ストローク管理部312は、タッチスクリーンディスプレイ17から受信される上述の座標列に基づいて、図4で詳述したような構造を有する上述の時系列情報を生成し、この時系列情報をある手書きノートのページとして手書きノートデータベース411に保存する。手書きノートデータベース411は、記憶媒体内の一記憶領域である。さらに、ストローク管理部312は、手書きノートデータベース411から任意の手書きノートのページを読み出す。読み出されたページに対応する時系列情報は表示処理部401に送られる。表示処理部401は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストローク(手書きによって入力された各ストローク)を画面上に表示する。
上述したように、手書き文書検索は、検索処理部402と検索エンジン313とによって実行される。検索処理部402は、筆跡検索と文字列検索(テキスト検索)の2種類の検索方式を選択的に使用して、手書きノートデータベース411を検索することができる。
検索エンジン313は、筆跡検索エンジン313A、文字認識エンジン313B、および文字列検索エンジン(文字検索エンジン)313Cを備える。筆跡検索エンジン313Aは、検索処理部402の制御の下、上述の筆跡検索を実行する。この筆跡検索は、検索キーである複数のストロークの特徴量(筆跡特徴)と類似する特徴量(筆跡特徴)を有する手書き部分を含む手書き文書を検索するための検索方式である。
複数のストロークの特徴量(筆跡特徴)としては、これら各ストロークの特徴を表現可能な任意の情報を使用し得る。例えば、複数のストロークの特徴量(筆跡特徴)として、各ストロークの形状、筆画方向、傾斜、等を表す特徴量データを使用し得る。筆跡検索が実行される場合においては、筆跡検索エンジン313Aは、検索処理部402から検索キーである複数のストロークを受信する。そして、筆跡検索エンジン313Aは、複数の手書き文書(複数の手書きページ)内の複数の領域を検索するための特徴量インデックス情報と検索キーである複数のストロークの特徴量(クエリー特徴量)とを使用して、上述の検索キーに対応する領域(手書き部分)を含む1以上の手書き文書(手書きページ)を検索する。特徴量インデックス情報は、各領域内のストローク群の特徴量を含む。
より詳しくは、筆跡検索エンジン313Aは、特徴量データベース412A内の特徴量インデックス情報から、クエリー特徴量と類似する特徴量を有する特徴量インデックス情報部分を見つけ出し、この特徴量インデックス情報部分を主制御部311に返す。この場合、クエリー特徴量との類似度が基準値以上である特徴量インデックス情報部分が特徴量インデックス情報から取得される。この類似度を算出するための方法としては、DP(Dynamic Programming)マッチングを使用してもよい。
主制御部311の検索処理部402は、筆跡検索エンジン313Aから受信される特徴量インデックス情報部分に基づいて、上述のクエリー特徴量と類似する特徴量を有する手書き部分を含む1以上の手書きページを検索する。
また、筆跡検索エンジン313Aは、インデックス生成部402Aの制御の下、各手書きページに対応する上述のインデックス情報を生成する処理も実行するように構成されている。ある手書きページの特徴量インデックス情報の生成は、この手書きページの保存時に実行されても良い。この場合、この手書きページに対応する複数のストロークデータは手書きノートデータベース411に保存されると共に、筆跡検索エンジン313Aに送られる。筆跡検索エンジン313Aは、この手書きページ内の各領域(各手書き部分)のストロークデータを解析して、上述の特徴量インデックス情報を生成する。生成された特徴量インデックス情報は、手書きノートデータベース411内の対応する手書きページに関連づけられた状態で、特徴量データベース412Aに格納される。
文字列検索は、検索キーである複数のストロークに対応する文字列を含む手書き文書を検索するための検索方式(テキスト検索)である。文字列検索(テキスト検索)においては、文字列検索エンジン313Cは、検索処理部402から複数のストロークに対応する文字列のコード情報(テキスト)を検索キー(検索語)として受信する。複数のストロークに対応する文字列のコード情報は、これら複数のストロークを文字認識エンジン313Bによって文字認識することによって得ることができる。そして、文字列検索エンジン313Bは、複数の手書き文書(複数の手書きページ)内の複数の領域を検索するための文字列インデックス情報と、検索キーである複数のストロークに対応する文字列のコード情報(テキスト)とを使用して、上述の検索キー(検索語)に対応する手書き部分を含む手書きページを検索する。文字列インデックス情報は、手書きページ内の各領域に含まれるストローク群に対応する文字列のコード情報を含む。このコード情報は、例えば、各手書き文字列のストローク群を文字認識することによって生成することができる。
文字列検索の処理においては、文字列検索エンジン313Cは、文字列検索データベース412B内の文字列インデックス情報から、上述の検索語を含む文字列インデックス情報部分を見つけ出す。そして、文字列検索エンジン313Cは、この文字列インデックス情報部分を主制御部311に返す。主制御部311の検索処理部402は、文字列検索エンジン313Cから受信される文字列インデックス情報部分に基づいて、上述の検索語に対応する手書き部分を含む1以上の手書きページを検索することができる。
上述したように、手書きページは手書き文字列のみならず、手書き図形、手書き表、手書きマークなどを含む場合がある。上述の筆跡検索は、手書き文字列のみならず、手書き図形、手書き表、手書きマークなどの文字以外の手書きオブジェクトを検索することができる。したがって、筆跡検索は、手書きページの検索に有用である。
しかし、検索キーとして入力された複数のストロークが手書き文字であるか手書き文字以外の他の手書きオブジェクトであるかに無関係に常に筆跡検索を実行すると、例えば、手書き文字列が検索キーとして入力された場合に、文字以外の手書き図形などが誤って検索されてしまう可能性がある。例えば、手書き文字「o」、「q」、または「d」等を含む手書き文字列が検索キーとして入力された場合には、丸形状の手書き図形、四角形状の手書き図形、等が誤って検索されてしまう可能性がある。
また、筆跡特徴はユーザ毎に異なる。また、たとえ同じユーザが同じ文字を手書きした場合であっても、急いで文字を手書きした場合と丁寧に文字を手書きした場合とではそれら文字の筆跡特徴が異なる場合もある。よって、検索キーとして入力された複数のストロークが手書き文字であるか手書き文字以外の他の手書きオブジェクトであるかに無関係に常に筆跡検索を実行すると、他人によって書かれた手書きページや、過去に自分で乱雑に書いた手書きページなどは正しく検索できない場合がある。
本実施形態では、手書き文書検索は、筆跡検索と文字列検索(テキスト検索)とを併用することによって実行される。すなわち、検索処理部402は、検索キーである複数のストロークの文字列尤度に応じて、筆跡検索または文字列検索(テキスト検索)の少なく一方を実行する。複数のストロークの文字列尤度は、それらストロークの文字列らしさを表すスコアである。本実施形態では、検索キーとして手書きされる複数のストローク全体が一つの手書きブロックとして扱われ、この手書きブロックの文字列尤度が算出される。
文字列尤度は、例えば、0~100の範囲のスコアによって表現してもよい。文字列尤度スコア=100は最大尤度を表し、文字列尤度スコア=0は最小尤度を表す。検索キーである複数のストロークの文字列尤度を算出するための方法としては、これらストロークの形状の全体としての文字列らしさを評価可能な任意の方法を使用し得る。例えば、これらストロークの特徴量を抽出し、この特徴量に基づいてこれらストロークの文字列尤度を算出してもよい。また、手書き図形、手書き表等は、手書き文字に比べてストローク密度(一つの手書きブロック内のストロークの個数)が低い場合が多いので、手書きブロック内のストロークの個数等に基づいて文字列尤度を算出してもよい。また、検索キーである複数のストロークを文字認識し、文字列との類似の程度を表す値を文字列尤度を算出してもよい。
検索キーである複数のストロークの文字列尤度が比較的高いならば、つまりこれら複数のストロークが文字列である可能性が高いならば、検索処理部402は、文字列検索(テキスト検索)を実行する。一方、検索キーである複数のストロークの文字列尤度が比較的低いならば、つまりこれら複数のストロークが文字列である可能性が低いならば、検索処理部402は、筆跡検索を実行する。
このように、本実施形態では、検索キーである複数のストロークが一つの手書きブロックとして扱われ、この手書きブロックの文字列らしさの程度を示す文字列尤度に応じて、実行すべき検索方式が自動的に決定される。したがって、検索キーが文字列らしい場合には文字列検索が実行され、検索キーが文字列らしくない場合には筆跡検索が実行されるので、手書き文書の検索の精度を高めることができる。
なお、各手書きページの全ての領域に対して上述の文字列インデックス情報と上述の特徴量インデックス情報の双方を生成しても良いが、各手書きページ内の各領域が文字列領域であるか非文字列領域であるかに応じて、上述の文字列インデックス情報と上述の特徴量インデックス情報とを選択的に生成しても良い。
この場合、文字列検索(テキスト検索)においては、検索処理部402は、各手書きページ内の全領域では無く、各手書きページ内の各文字列領域を検索対象とする。文字列領域は文字列尤度が高い領域である。これにより、検索キーである複数のストロークが手書き文字列であるにもかかわらず、文字以外の手書き図形などが誤って検索されてしまうことをより効率よく防ぐことができる。
一方、筆跡検索においては、検索処理部402は、各手書きページ内の全領域では無く、各手書きページ内の各非文字列領域を検索対象とする。非文字列領域は文字列尤度が低い領域である。これにより、検索キーである複数のストロークが手書き図形であるにもかかわらず、手書き文字などが誤って検索されてしまうことをより効率よく防ぐことができる。
このように、本実施形態では、検索キーである複数のストロークの文字列尤度に応じて、使用すべき検索方式が自動的に選択され、かつ検索キーである複数のストロークの文字列尤度に応じて、各手書きページ内の検索対象領域が決定される。このことを実現するため、検索処理部402のインデックス生成部402Aは、複数の手書きページ内の複数の文字列領域を検索するための文字列インデックス情報と、複数の手書きページ内の複数の非文字列領域を検索するための特徴量インデックス情報とを生成する。文字列インデックス情報は各文字列領域内のストローク群に対応する文字列のコード情報を含む。特徴量インデックス情報は、各非文字列領域内のストローク群の特徴量を示す。
より詳しくは、インデックス生成部402Aは、手書きページ内の領域毎に、その領域の文字列尤度に応じて、上述の文字列インデックス情報または上述の特徴量インデックス情報を選択的に生成する。
インデックス生成対象の領域の文字列尤度が比較的高い場合には、インデックス生成部402Aは、検索エンジン313内の文字認識エンジン313Bと共同して、この領域を検索するための文字列インデックス情報を生成する。この文字列インデックス情報は、この領域内のストローク群に対応する文字列のコード情報を含む。この文字列のコード情報は、この領域内のストローク群を文字認識エンジン313Bによって文字認識することによって得られる。生成された文字列インデックス情報は、インデックスデータベース412内の文字列検索データベース412Bに格納される。
一方、インデックス生成対象の領域の文字列尤度が低い場合には、インデックス生成部402Aは、検索エンジン313内の筆跡検索エンジン313Aと共同して、この領域を検索するための特徴量インデックス情報を生成する。この特徴量インデックス情報は、この領域内のストローク群の特徴量(筆跡特徴)を示す情報である。生成された特徴量インデックス情報は、インデックスデータベース412内の特徴量データベース412Aに格納される。
さらに、主制御部311は、通信処理部314を介してサーバ2との通信を実行することができる。通信処理部314は任意の手書きページデータをサーバ2に送信(アップロード)する送信部として機能すると共に、さらに、任意の手書きページデータをサーバ2から受信する受信部として機能する。
図11は、手書きノートデータベース441に格納される、手書きページデータ管理テーブルの構成を示す。手書きページデータ管理テーブルは、複数の手書きページに対応する複数のエントリを含む。各エントリは、例えば、ページID、ユーザID、ストロークID、ストロークデータを含む。ある手書きページデータに対応するエントリにおいて、「ページID」は、その手書きページデータに付与された識別情報を示す。「ユーザID」は、その手書きページデータを作成したユーザに付与された識別情報を示す。「ストロークID」は、その手書きページデータに手書きされたストロークに付与された識別情報を示す。「ストロークデータ」は、その手書きページデータに手書きされたストロークに対応する座標データ系列(時系列座標)を示す。
図12は、特徴量データベース412Aに格納される特徴量インデックス情報管理テーブルの構成例を示す。特徴量インデックス情報管理テーブルは複数のストロークに対応する複数のエントリを含む。各エントリは、例えば、ページID、ストロークID、特徴量を含む。あるストロークに対応するエントリにおいて、「ページID」は、そのストロークが手書きされた手書き文書に付与された識別情報を示す。「ストロークID」は、そのストロークに付与された識別情報を示す。「特徴量」は、そのストロークを解析することによって算出された特徴量(筆跡特徴)を示す。筆跡特徴としては、上述したように、各ストロークの形状等を表す特徴量データを使用し得る。
なお、ここでは、ストローク毎に特徴量を管理する場合を例示したが、手書きの図形、手書きの表、手書きの記号といった手書きオブジェクト(手書きブロック)を単位として、その手書きオブジェクトの特徴量を管理しても良い。手書きオブジェクトの特徴量としては、その手書きオブジェクトの形状等の特徴を表現可能な任意の特徴量を使用し得る。さらに、手書きオブジェクトの特徴量は、この手書きオブジェクトを構成する複数のストロークの書かれた順序、等を表す情報を含んでいてもよい。
また、特徴量インデックス情報管理テーブルは、各手書きオブジェクトが存在するページ内の位置を示す情報を含んでいても良い。
図13は、文字列検索データベース412Bに格納される文字列インデックス情報管理テーブルの構成例を示す。文字列インデックス情報管理テーブルは文字列尤度の高い複数の領域(複数の文字列ブロック)に対応する複数のエントリを含む。各エントリは、例えば、「ページID」、「ストロークID範囲」、「文字列」を含む。ある文字列ブロックに対応するエントリにおいて、「ページID」は、その文字列ブロックが手書きされた手書きページの識別情報を示す。「ストロークID範囲」は、その文字列ブロック内のストローク群に付与された識別情報の範囲を示す。「文字列」は、その文字列ブロックに対するコード情報(文字コード群)を示す。ある文字列ブロックのコード情報(文字コード群)には、この文字列ブロックの複数の文字列候補それぞれに対応する複数のコード情報が登録されていてもよい。また、文字列インデックス情報管理テーブルは、各文字列ブロックが存在するページ内の位置を示す情報を含んでいても良い。
図14は、手書き文書検索の概要を示す。ここでは、検索キー入力領域511に手書き文字列「Meeting」に対応する複数のストロークがペン100によって手書きされた場合を想定する。これら複数のストロークは高い文字列尤度を有するストローク群である。
このため、検索処理部402は、使用すべき検索方式として上述の文字列検索を選択し得る。検索処理部402は、文字認識エンジン313Bを使用して手書き文字列「Meeting」を文字認識して、手書き文字列「Meeting」に対応するコード情報(文字列「Meeting」)を得る。そして、検索処理部402は、文字検索データベース412Bの文字列インデックス情報管理テーブルを参照して、文字列「Meeting」に対応する手書き部分(手書き文字列)を含む手書きページを検索する。いま、手書きページ611、612、613が、文字列「Meeting」に対応する手書き文字列を含む場合を想定する。この場合、手書きノートアプリケーションプログラム202は、手書きページ611、612、613それぞれのサムネイルを画面上に表示する。さらに、手書きノートアプリケーションプログラム202は、手書きページ611、612、613内のヒットワード(手書き文字列「Meeting」)を強調表示する。
図15は、手書き文字列と手書き文字列以外の手書きオブジェクトとを含む手書きページ610を示す。この手書きページ610は、図16に示すように、文字列尤度が高い領域(文字列ブロック)610Aと、文字列尤度が低い領域(非文字列ブロック)610Bとを含む。手書きノートアプリケーションプログラム202は、領域610A内のストローク群を検索するためのインデックス情報として上述の文字列インデックス情報を生成し、この文字列インデックス情報を文字列検索データベース412Bの文字列インデックス情報管理テーブルに登録する。また、手書きノートアプリケーションプログラム202は、領域610B内のストローク群を検索するためのインデックス情報として上述の特徴量インデックス情報を生成し、この特徴量インデックス情報を特徴量データベース412Aの特徴量インデックス情報管理テーブルに登録する。
このように、本実施形態では、手書きページ内の各領域の文字列尤度に応じて、特徴量インデックス情報と文字列インデックス情報が選択的に使用される。
したがって、文字列検索が実行される場合(つまり、検索キーの文字列尤度が高い場合)には、領域610Aは検索対象となるが、領域610Bは検索対象とならない。なぜなら、領域610Aに対応する文字列インデックス情報は文字列検索データベース412Bに登録されているが、領域610Bに対応する文字列インデックス情報は文字列検索データベース412Bに存在しないからである。
もし領域610Bに対応する文字列インデックス情報を生成したならば、文字列検索(テキスト検索)においては、領域610Aのみならず、領域610Bも文字列検索の対象となってしまう。この場合、検索キーである複数のストロークが手書き文字列であるにもかかわらず、文字以外の手書き図形などが誤って検索されてしまう可能性がある。なぜなら、もし領域610Bに対応する文字列インデックス情報を文字認識によって生成したならば、領域610B内の手書き図形が幾つかの誤った文字コードに変換されてしまう場合があるからである。
本実施形態においては、文字列検索(テキスト検索)においては、各手書きページ内の全領域では無く、各手書きページ内の文字列尤度が高い領域(文字列領域)を検索対象とすることができる。
また、本実施形態では、筆跡検索が実行される場合(つまり、検索キーの文字列尤度が低い場合)には、図16の手書きページ610の領域610Aは検索対象とならないが、手書きページ610の領域610Bが検索対象となる。なぜなら、領域610Bに対応する特徴量インデックス情報は特徴量データベース412Aに登録されているが、領域610Aに対応する特徴量インデックス情報は特徴量データベース412Aに存在しないからである。
もし領域610Aに対応する特徴量インデックス情報を生成したならば、筆跡検索においては、領域610Bのみならず、領域610Aも筆跡検索の対象となってしまう。この場合、検索キーである複数のストロークが手書き図形であるにもかかわらず、手書き文字が誤って検索されてしまう可能性がある。
本実施形態においては、筆跡検索においては、各手書きページ内の全領域では無く、各手書きページ内の文字列尤度が低い領域(文字列以外の領域)を検索対象とすることができる。
図17は、図15の手書きページ610を検索するためのインデックス情報を生成する動作を示す。主制御部311は、手書きページ610を構成する複数のストロークデータをストローク管理部312を介して文字認識エンジン313Bに送信し、手書きページ610内の各領域に対応する文字列尤度の算出を文字認識エンジン313Bに要求する。
文字認識エンジン313Bは、手書きページ610を構成する複数のストロークデータに基づき、手書きページ610の構造解析を行う。この構造解析処理では、文字認識エンジン313Bは、例えば、複数のストロークデータをグループ化してこれら複数のストロークデータを複数の領域(複数の手書きブロック)に分類し得る。この場合、文字認識エンジン313Bは、例えば互いに近傍に位置するストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように、複数のストロークデータを複数の手書きブロックに分類し得る。
図15の手書きページ610は、領域610Aと領域610Bの2つの手書きブロック(2つの領域)に分類される。そして、文字認識エンジン313Bは、個々の手書きブロックについてその文字らしさ(文字列らしさ)を表す文字列尤度(文字列尤度スコア)を算出する。
領域610Bの文字列尤度は低いので、領域610B内に含まれる複数のストロークに対応する複数のストロークデータは筆跡検索エンジン313Aに送られる。筆跡検索エンジン313Aは領域610B内に含まれる複数のストロークそれぞれ特徴量を抽出し、それら特徴量を上述の特徴量インデックス情報として特徴量データベース412Aに格納する。文字列尤度が高い領域610Aは文字認識エンジン313Bによって文字認識され、領域610A内のストローク群が1以上の文字コードを含むコード情報(テキスト)に変換される。このコード情報(文字コード群)は文字列検索データベース412Bに上述の文字列インデックス情報として格納される。
文字列尤度を算出する処理は、各手書きページ内の全ての領域に対して個別に実行される。さらに、文字列尤度を算出する処理は、検索キーとして使用される複数のストロークに対しても実行される。
次に、図18、図19を参照して、検索キー入力領域511に手書き入力される複数のストロークと実行されるべき検索方式との関係について説明する。
図18においては、検索キー入力領域511に手書き文字列「Determine」が検索キーとして手書きされた場合が想定されている。検索処理部402は、文字認識エンジン313Bを使用して、手書き文字列「Determine」の文字列尤度を算出する。この場合、この文字列尤度の算出においては、この手書き文字列「Determine」に対応するストローク群全体が上述の一つの領域(一つの手書きブロック)として扱われる。このストローク群の文字列尤度は高いので、検索処理部402は、文字列検索(テキスト検索)を選択する。そして、検索処理部402は、手書き文字列「Determine」に対応するコード情報(テキスト)と上述の文字列インデックス情報とを使用して文字列検索(テキスト検索)を実行する。
図18においては、検索キー入力領域511に手書き文字列「Determine」が検索キーとして手書きされた場合が想定されている。検索処理部402は、文字認識エンジン313Bを使用して、手書き文字列「Determine」の文字列尤度を算出する。この場合、この文字列尤度の算出においては、この手書き文字列「Determine」に対応するストローク群全体が上述の一つの領域(一つの手書きブロック)として扱われる。このストローク群の文字列尤度は高いので、検索処理部402は、文字列検索(テキスト検索)を選択する。そして、検索処理部402は、手書き文字列「Determine」に対応するコード情報(テキスト)と上述の文字列インデックス情報とを使用して文字列検索(テキスト検索)を実行する。
図19においては、検索キー入力領域511に手書き図形が検索キーとして手書きされた場合が想定されている。この場合、検索処理部402は、この手書き図形に対応するストローク群全体を上述の一つの領域(一つの手書きブロック)として扱い、文字認識エンジン313Bを使用して、これらストローク群全体の文字列尤度を算出する。これらストローク群の文字列尤度は低いので、検索処理部402は、筆跡検索を選択する。そして、検索処理部402は、手書き図形のストローク群の特徴量(筆跡特徴)と上述の特徴量インデックス情報とを使用して筆跡検索を実行する。
なお、検索キー入力領域511に入力される複数のストロークの文字列尤度が、文字列に対応する高い文字列尤度と非文字列に対応する低い文字列尤度との中間の範囲に属する場合には、検索処理部402は、検索キー入力領域511に入力される複数のストロークに対応する文字列のコード情報を使用する文字列検索と、検索キー入力領域511に入力される複数のストロークの特徴量を使用する筆跡検索の双方を実行し得る。
また、図18、図19の説明では検索キー入力領域511に手書きされたストローク群を検索キーとして使用する場合を例示したが、上述の範囲選択ツールを使用して選択されるノートビュー画面上のストローク群を検索キーとして使用してもよい。
次に、各領域が文字列尤度が高い領域(文字列領域)または文字列尤度が低い領域(非文字列領域)のいずれであるかを判定するための閾値について説明する。
文字列尤度が高い領域(文字列領域)を判定するための閾値Th-1と文字列尤度が低い領域(非文字列領域)を判定するための閾値Th-2は同じ値(同じ文字列尤度スコア)であってもよいが、図20に示すように、閾値Th-1と閾値Th-2とを異なる同じ文字列尤度スコアに設定してもよい。
図20は、閾値Th-1に対応する文字列尤度スコアが閾値Th-2に対応する文字列尤度スコアよりも高いスコアに設定されている場合を示している。閾値Th-1に対応する文字列尤度スコアは例えば80であってもよい。この場合、文字列尤度スコアが80よりも高い領域が、文字列領域として決定される。文字列尤度スコアが80よりも高い手書きページ内の各文字列領域を検索するためのインデックス情報としては、上述の文字列インデックス情報が使用される。
閾値Th-2に対応する文字列尤度スコアは例えば20であってもよい。この場合、文字列尤度スコアが20よりも低い領域が、非文字列領域として決定される。文字列尤度スコアが20よりも低い手書きページ内の各非文字列領域を検索するためのインデックス情報としては、上述の特徴量インデックス情報が使用される。
手書きページ内の領域の文字列尤度スコアが閾値Th-1と閾値Th-2との間の範囲に属する場合には、この領域を検索するためのインデックス情報として、上述の特徴量インデックス情報と上述の文字列インデックス情報の双方が生成および保存される。
すなわち、インデックス生成部402Aは、複数の手書きページ内の複数の領域に対応する複数の文字列尤度に応じて、これら複数の領域の各々が、(i)文字列領域、(ii)非文字列領域、(iii)文字列領域と非文字列領域の中間の領域、のいずれであるかを決定する。そして、インデックス生成部402Aは、上述の文字列領域であると決定された各領域を検索するための文字列インデックス情報と、上述の中間の領域であると決定された各領域を検索するための文字列インデックス情報とを生成する。さらに、インデックス生成部402Aは、上述の非文字列領域であると決定された各領域を検索するための特徴量インデックス情報であって、この非文字列領域であると決定された各領域内のストローク群の特徴量を示す特徴量インデックス情報を生成する。またさらに、インデックス生成部402Aは、上述の中間の領域であると決定された各領域を検索するための特徴量インデックス情報であって、この中間の領域であると決定された各領域内のストローク群の特徴量を示す特徴量インデックス情報を生成する。
このように、本実施形態では、文字列であるか文字列以外であるかを判別しがたい領域(ストローク群)については、特徴量インデックス情報と上述の文字列インデックス情報の双方が生成及び保存される。換言すれば、文字列であるか文字列以外であるかを判別しがたい領域については、筆跡検索/テキスト検索のいずれが実行される場合であっても検索対象となる。よって、ロバスト性を有する検索が可能となる。
検索方式(筆跡検索/テキスト検索)を決定するために使用される文字列尤度スコアの閾値(閾尤度)は一つであってもよいが、上述の2つの異なる閾値Th-1,Th-2を、実行すべき検索方式の決定のために使用することもできる。この場合、検索キーとして入力されるストローク群の文字列尤度スコアが閾値(閾尤度)Th-1(=80)よりも高い場合には、文字列検索(テキスト検索)が実行される。また、検索キーとして入力されるストローク群の文字列尤度スコアが閾値(閾尤度)Th-2(=20)よりも低い場合には、筆跡検索が実行される。検索キーとして入力されるストローク群の文字列尤度スコアが閾値Th-1と閾値Th-2との間の範囲に属する場合には、筆跡検索と文字列検索(テキスト検索)の双方が実行される。この場合、筆跡検索によって検索される手書きページと文字列検索によって検索される手書きページの双方を、検索キーに対応する検索結果としてユーザに提示してもよい。
図21は、手書きノートアプリケーションプログラム202によって表示される検索結果画面600の例を示す。ここでは、検索キー入力領域601に入力された手書き文字列「TABLET」が検索キーとして使用された場合が想定されている。検索結果画面600上には、手書き文字列「TABLET」を含むいくつかの手書きページそれぞれに対応するサムネイル601Aが表示される。つまり、検索結果画面600上には、手書き文字列「TABLET」と推定されるストローク群を含むいくつかの手書き文書それぞれに対応するサムネイル601Aが表示される。図21においては、5個の手書きページが手書き文字列「TABLET」を含む手書き文書として検索された場合が例示されている。ヒットワード、つまり5個のサムネイル601A中の手書き文字列「TABLET」(すなわち、手書き文字列「TABLET」に対応するストローク群)は強調表示される。
また、手書きノートアプリケーションプログラム202は、あるサムネイル601A上で行われるタップジェスチャのようなジェスチャを検出すると、このサムネイル601Aに対応する手書きページを表示する。
図22のフローチャートは、手書きノートアプリケーションプログラム202によって実行されるインデックス生成処理の手順を示す。
インデックス生成部402Aは、文字認識エンジン313Bを使用して処理対象の手書きページの構造解析を実行し、これによって手書きページ内の各領域(各手書きブロック)の文字列尤度を算出する(ステップS11)。インデックス生成部402Aは、処理対象の領域の文字列尤度が上述の閾値Th-1よりも高いか否かを判定する(ステップS12)。処理対象の領域の文字列尤度が上述の閾値Th-1よりも高いならば(ステップS12のYES)、インデックス生成部402Aは、この処理対象の領域をテキスト検索方式で検索するための文字列インデックス情報を生成し、この文字列インデックス情報を文字列検索データベース412Bに保存する(ステップS13)。この文字列インデックス情報は、処理対象の領域内のストローク群に対応する文字列のコード情報を含む。
処理対象の領域の文字列尤度が上述の閾値Th-1よりも高くないならば(ステップS12のNO)、インデックス生成部402Aは、処理対象の領域の文字列尤度が上述の閾値Th-2よりも低いか否かを判定する(ステップS14)。処理対象の領域の文字列尤度が上述の閾値Th-2よりも低いならば(ステップS14のYES)、インデックス生成部402Aは、処理対象の領域を筆跡検索方式で検索するための特徴量インデックス情報を生成し、この特徴量インデックス情報を特徴量データベース412Aに保存する(ステップS15)。この特徴量インデックス情報は、処理対象の領域内のストローク群の特徴量(筆跡特徴)を示す。
処理対象の領域の文字列尤度が上述の閾値Th-2よりも低くないならば、つまり文字列尤度が上述の閾値Th-1と閾値Th-2との間の範囲に属するならば(ステップS14のNO)、インデックス生成部402Aは、処理対象の領域に対応する文字列インデックス情報と、処理対象の領域に対応する特徴量インデックス情報の双方を生成する(ステップS16)。このステップS16では、インデックス生成部402Aは、処理対象の領域に対応する特徴量インデックス情報を特徴量データベース412Aに保存すると共に、処理対象の領域に対応する文字列インデックス情報を文字列検索データベース412Bに保存する。
図22のインデックス生成処理では、各手書きページ内の各領域(各手書きブロック)の文字列尤度に応じて、作成すべきインデックス情報の種類を文字列インデックス情報と特徴量インデックス情報との間で自動的に変更したが、領域毎に文字列インデックス情報と特徴量インデックス情報の双方を生成するようにしても良い。
図23のフローチャートは、手書きノートアプリケーションプログラム202によって実行される手書き文書検索処理の手順を示す。
検索処理部402は、検索キー入力領域に手書きされる複数のストローク全体を一つの手書きブロックとして扱い、文字認識エンジン313Bを使用してこの手書きブロックの文字列尤度(つまり、検索キーである複数のストロークの文字列尤度)を算出する(ステップS21)。そして、検索処理部402は、検索キーである複数のストロークの文字列尤度が上述の閾値Th-1よりも高いか否かを判定する(ステップS22)。
検索処理部402は、検索キー入力領域に手書きされる複数のストローク全体を一つの手書きブロックとして扱い、文字認識エンジン313Bを使用してこの手書きブロックの文字列尤度(つまり、検索キーである複数のストロークの文字列尤度)を算出する(ステップS21)。そして、検索処理部402は、検索キーである複数のストロークの文字列尤度が上述の閾値Th-1よりも高いか否かを判定する(ステップS22)。
検索キーである複数のストロークの文字列尤度が上述の閾値Th-1よりも高いならば(ステップS22のYES)、検索処理部402は、文字列検索(テキスト検索)を実行する(ステップS23)。この場合、検索処理部402は、文字列検索データベース412B内の文字列インデックス情報と、検索キーである複数のストロークに対応する文字列のコード情報とを使用して、文字列検索を実行する。そして、検索処理部402は、検索キーに対応する手書きデータ部分を含む各手書きページ、つまり検索キーの文字列に対応する手書きデータ部分を含む各手書きページを検索する。
検索キーである複数のストロークの文字列尤度が上述の閾値Th-1よりも高くないならば(ステップS22のNO)、検索処理部402は、検索キーである複数のストロークの文字列尤度が上述の閾値Th-2よりも低いか否かを判定する(ステップS24)。
検索キーである複数のストロークの文字列尤度が上述の閾値Th-2よりも低いならば(ステップS24のYES)、検索処理部402は、筆跡検索を実行する(ステップS25)。この場合、検索処理部402は、検索キーである複数のストロークの特徴量と特徴量データベース412A内の特徴量インデックス情報とを使用して、筆跡検索を実行する。そして、検索処理部402は、検索キーに対応する手書きデータ部分を含む各手書きページ、つまりこの検索キーである複数のストロークと類似する複数のストロークを含む各手書きページを検索する。
検索キーである複数のストロークの文字列尤度が上述の閾値Th-2よりも低くないならば(ステップS24のNO)、検索処理部402は、文字列検索(テキスト検索)と筆跡検索の双方を実行する(ステップS26)。この場合、検索処理部402は、文字列検索(テキスト検索)によって検索された各手書きページと筆跡検索によって検索された各手書きページの双方を上述の検索キーに対応する検索結果として出力する。この場合、検索処理部402は、検索結果画面上に同じ手書きページが複数表示されるのを防止するために文字列検索(テキスト検索)の検索結果と筆跡検索の検索結果とをマージしてもよい。
図23の手書き文書検索処理では、2つの閾値を使用して検索キーの文字列尤度を3つのレベルに分ける場合を例示したが、1つの閾値を使用して検索キーの文字列尤度を2つのレベルに分けてもよい。
以上説明したように、本実施形態においては、複数のストロークに対応する複数のストロークデータを含む複数の手書き文書が保存されると共に、これら複数の手書き文書内の複数の領域を検索するための第1インデックス情報(文字列インデックス情報)と、これら複数の手書き文書内の複数の領域を検索するための第2インデックス情報(特徴量インデックス情報)とが生成される。そして、検索キーである複数の第1ストロークの文字列尤度に応じて、実行されるべき検索方式(筆跡検索/文字列検索)が自動的に決定される。したがって、検索キーが文字列らしい場合には文字列検索が実行され、検索キーが文字列らしくない場合には筆跡検索が実行されるので、手書き文書の検索の精度を高めることができる。よって、手書き文字列のみならず、手書き図形、手書き表、手書きマークなどの文字以外の手書きオブジェクトを含み得る手書き文書を、効率よく検索することができる。
また、本実施形態では、複数の手書き文書内の複数の文字列領域を検索するための文字列インデックス情報と、これら複数の手書き文書内の複数の非文字列領域を検索するための特徴量インデックス情報とを生成することもできる。この場合、検索キーが文字列らしい場合には、複数の手書き文書内の複数の文字列領域を文字列検索の検索対象とすることができ、また文字列以外の手書きオブジェクトらしいストローク群が検索キーとして使用される場合には、複数の手書き文書内の複数の非文字列領域を筆跡検索の検索対象とすることができる。このように、本実施形態では、文字列らしい領域には文字列検索が適用され、それ以外の領域には筆跡検索が適用される。したがって、手書き文書の検索の精度をより高めることができる。
なお、本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
また、筆跡検索部402、インデックス生成部402A、検索エンジン313の全てあるいは任意の一部の機能をサーバ2によって実行するようにしてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
Claims (10)
- 複数のストロークに対応する複数のストロークデータを含む複数の手書き文書を記憶媒体に保存する保存手段と、
前記複数の手書き文書内の複数の領域を検索するための第1インデックス情報であって領域内のストローク群に対応する文字列のコード情報を含む第1インデックス情報と、前記複数の手書き文書内の複数の領域を検索するための第2インデックス情報であって領域内のストローク群の特徴量を含む第2インデックス情報とを生成する生成手段と、
検索キーである複数の第1ストロークの文字列尤度に応じて、前記第2インデックス情報と前記複数の第1ストロークの特徴量とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する筆跡検索、または前記第1インデックス情報と前記複数の第1ストロークに対応する文字列のコード情報とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する文字列検索の少なくとも一方を実行する処理手段とを具備する電子機器。 - 前記第1インデックス情報は、前記複数の手書き文書内の複数の文字列領域を検索するための情報であって各文字列領域内のストローク群に対応する文字列のコード情報を含み、前記第2インデックス情報は、前記複数の手書き文書内の複数の非文字列領域を検索するための情報であって各非文字列領域内のストローク群の特徴量を含む請求項1記載の電子機器。
- 前記生成手段は、前記複数の手書き文書内の複数の領域に対応する複数の文字列尤度に応じて、前記複数の領域の各々が、文字列領域、非文字列領域、文字列領域と非文字列領域の中間の領域のいずれであるかを決定し、前記文字列領域であると決定された各領域を検索するための第1インデックス情報と、前記非文字列領域であると決定された各領域を検索するための第2インデックス情報と、前記中間の領域であると決定された各領域を検索するための第1インデックス情報と、前記中間の領域であると決定された各領域を検索するための第2インデックス情報とを生成する請求項2記載の電子機器。
- 前記処理手段は、前記複数の第1ストロークの文字列尤度が第1の閾尤度よりも高い場合に前記文字列検索を実行し、前記複数の第1ストロークの文字列尤度が前記第1の閾尤度よりも低い第2の閾尤度よりも低い場合に前記筆跡検索を実行し、前記複数の第1ストロークの文字列尤度が前記第1の閾尤度と前記第2の閾尤度との間の範囲にある場合に前記文字列検索および前記筆跡検索を実行する請求項1記載の電子機器。
- 前記処理手段は、前記複数の第1ストロークの文字列尤度が前記第1の閾尤度と前記第2の閾尤度との間の範囲にある場合に、前記文字列検索によって検索される手書き文書と前記筆跡検索によって検索される手書き文書の双方を、前記検索キーに対応する検索結果として出力する請求項4記載の電子機器。
- 前記第1インデックス情報は、前記複数の領域の各々内のストローク群を文字認識することによって得られる請求項1記載の電子機器。
- 前記複数の第1ストロークは、画面上の検索キー入力領域に手書きされるストローク群を含む請求項1記載の電子機器。
- 前記複数の第1ストロークは、画面上に表示される手書き文書内の複数のストロークから選択されるストローク群を含む請求項1記載の電子機器。
- 複数のストロークに対応する複数のストロークデータを含む複数の手書き文書を記憶媒体に保存し、
前記複数の手書き文書内の複数の領域を検索するための第1インデックス情報であって領域内のストローク群に対応する文字列のコード情報を含む第1インデックス情報と、前記複数の手書き文書内の複数の領域を検索するための第2インデックス情報であって領域内のストローク群の特徴量を含む第2インデックス情報とを生成し、
検索キーである複数の第1ストロークの文字列尤度に応じて、前記第2インデックス情報と前記複数の第1ストロークの特徴量とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する筆跡検索、または前記第1インデックス情報と前記複数の第1ストロークに対応する文字列のコード情報とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する文字列検索の少なくとも一方を実行する手書き文書検索方法。 - コンピュータにより実行されるプログラムであって、前記プログラムは、
複数のストロークに対応する複数のストロークデータを含む複数の手書き文書を記憶媒体に保存する手順と、
前記複数の手書き文書内の複数の領域を検索するための第1インデックス情報であって領域内のストローク群に対応する文字列のコード情報を含む第1インデックス情報と、前記複数の手書き文書内の複数の領域を検索するための第2インデックス情報であって領域内のストローク群の特徴量を含む第2インデックス情報とを生成する手順と、
検索キーである複数の第1ストロークの文字列尤度に応じて、前記第2インデックス情報と前記複数の第1ストロークの特徴量とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する筆跡検索、または前記第1インデックス情報と前記複数の第1ストロークに対応する文字列のコード情報とを使用して前記検索キーに対応する手書き部分を含む手書き文書を検索する文字列検索の少なくとも一方を実行する手順とを前記コンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/966,156 US9183276B2 (en) | 2013-02-04 | 2013-08-13 | Electronic device and method for searching handwritten document |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013-019296 | 2013-02-04 | ||
JP2013019296A JP6223687B2 (ja) | 2013-02-04 | 2013-02-04 | 電子機器および手書き文書検索方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/966,156 Continuation US9183276B2 (en) | 2013-02-04 | 2013-08-13 | Electronic device and method for searching handwritten document |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014119012A1 true WO2014119012A1 (ja) | 2014-08-07 |
Family
ID=51261752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/058402 WO2014119012A1 (ja) | 2013-02-04 | 2013-03-22 | 電子機器および手書き文書検索方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6223687B2 (ja) |
WO (1) | WO2014119012A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183276B2 (en) | 2013-02-04 | 2015-11-10 | Kabushiki Kaisha Toshiba | Electronic device and method for searching handwritten document |
US20160154555A1 (en) * | 2014-12-02 | 2016-06-02 | Lenovo (Singapore) Pte. Ltd. | Initiating application and performing function based on input |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6764124B1 (ja) * | 2020-04-21 | 2020-09-30 | 富士通クライアントコンピューティング株式会社 | 情報処理装置、情報処理システム、および情報処理プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006285612A (ja) * | 2005-03-31 | 2006-10-19 | Canon Inc | 情報処理装置およびその方法 |
WO2007094078A1 (ja) * | 2006-02-14 | 2007-08-23 | Hitachi, Ltd. | 文字列検索方法およびその装置 |
JP2007317022A (ja) * | 2006-05-26 | 2007-12-06 | Canon Inc | 手書文字処理装置及び手書文字処理方法 |
JP2011197744A (ja) * | 2010-03-17 | 2011-10-06 | Sony Corp | 情報処理装置、プログラム、記録媒体および情報処理システム |
-
2013
- 2013-02-04 JP JP2013019296A patent/JP6223687B2/ja active Active
- 2013-03-22 WO PCT/JP2013/058402 patent/WO2014119012A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006285612A (ja) * | 2005-03-31 | 2006-10-19 | Canon Inc | 情報処理装置およびその方法 |
WO2007094078A1 (ja) * | 2006-02-14 | 2007-08-23 | Hitachi, Ltd. | 文字列検索方法およびその装置 |
JP2007317022A (ja) * | 2006-05-26 | 2007-12-06 | Canon Inc | 手書文字処理装置及び手書文字処理方法 |
JP2011197744A (ja) * | 2010-03-17 | 2011-10-06 | Sony Corp | 情報処理装置、プログラム、記録媒体および情報処理システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183276B2 (en) | 2013-02-04 | 2015-11-10 | Kabushiki Kaisha Toshiba | Electronic device and method for searching handwritten document |
US20160154555A1 (en) * | 2014-12-02 | 2016-06-02 | Lenovo (Singapore) Pte. Ltd. | Initiating application and performing function based on input |
Also Published As
Publication number | Publication date |
---|---|
JP2014149769A (ja) | 2014-08-21 |
JP6223687B2 (ja) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5349645B1 (ja) | 電子機器および手書き文書処理方法 | |
JP6180888B2 (ja) | 電子機器、方法およびプログラム | |
JP5395927B2 (ja) | 電子機器および手書き文書検索方法 | |
US9378427B2 (en) | Displaying handwritten strokes on a device according to a determined stroke direction matching the present direction of inclination of the device | |
JP5728592B1 (ja) | 電子機器および手書き入力方法 | |
JP6092418B2 (ja) | 電子機器、方法及びプログラム | |
JP2015162088A (ja) | 電子機器、方法及びプログラム | |
JP5925957B2 (ja) | 電子機器および手書きデータ処理方法 | |
JP5869179B2 (ja) | 電子機器および手書き文書処理方法 | |
JP6092462B2 (ja) | 電子機器、方法及びプログラム | |
JP2014106881A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JPWO2014147712A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5634617B1 (ja) | 電子機器および処理方法 | |
US9183276B2 (en) | Electronic device and method for searching handwritten document | |
JP2016085512A (ja) | 電子機器、方法及びプログラム | |
JP6223687B2 (ja) | 電子機器および手書き文書検索方法 | |
JP5735126B2 (ja) | システムおよび筆跡検索方法 | |
JP2014203393A (ja) | 電子機器、手書き文書処理方法、及び手書き文書処理プログラム | |
JP5330576B1 (ja) | 情報処理装置および筆跡検索方法 | |
JP6039066B2 (ja) | 電子機器、手書き文書検索方法およびプログラム | |
JP6202997B2 (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: 13873638 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13873638 Country of ref document: EP Kind code of ref document: A1 |