This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2012-253889, filed on Nov. 20, 2012; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to an information processing device, an information processing method, and a computer program product.
There are known information processing devices in which a database is searched for a document that complies with a search request which is input by a user in handwriting.
According to an embodiment, an information processing device associated with a display unit displaying information, includes a first detecting unit, a second detecting unit, and an executing unit. The first detecting unit is configured to detect a selection command and a first object. The selection command is input in handwriting to instruct selection of an object included in the information displayed on the display unit. The first object is additionally input in handwriting relating the information. The second detecting unit is configured to detect a second object from among objects included in the information. The second object is instructed to be selected by the selection command. The executing unit is configured to perform a specified process using the first object and the second object.
An exemplary embodiment of an information processing device according to the invention is described below in detail with reference to the accompanying drawings.
In the case of performing a search in a touch-sensitive panel display terminal such as a smartphone, it is common practice to implement the following method: a window for inputting a search query is tapped and the cursor is moved; a character string is typed in with the use of a software keyboard that is displayed; and a search button is tapped. Alternatively, there are some terminals in which a window that enables writing of handwritten characters appears as substitute for the software keyboard. Then, the stroke data that is input in handwriting is recognized and is converted into a character string that is treated as a search query. However, in such methods, from inputting a search query up to performing a search, it is necessary to perform a sequence of processes such as moving the cursor, inputting the search query string, and pressing the button. Not only that, depending on the search target, a different search query needs to be input.
As a known example of simplifying the process of inputting a search query, the search is performed while treating an already-displayed character string as the search query. For example, a technology is known in which document data is displayed on a display screen and, when a character string in that document data is selected on the display screen, the information related to that character string is immediately displayed without the need to press the search button. As far as the method of selection at that time is concerned, the cursor of a pointing device is used to trace over a character string that is displayed. However, in this method, the search is performed immediately after the search query is selected. For that reason, not only it is not possible to specify a search target but also it is not possible to perform annotation (described later) at the same time.
With the popularization of pen tablet terminals in recent years, there has been development of applications that enable handwriting of character strings or pictures on a screen which represents a notepad or a sketchbook, or applications that enables displaying existing document data on a screen and enables writing of notes by hand on that screen. Particularly, the latter application enables marking an object (a character string or an image), which is present in the document data and which is considered important by the user, by encircling or underlining that object. Moreover, it also becomes possible to write lead lines or annotations in the vicinity of that object. In this way, regarding the case of displaying the document data and enabling the user to perform a writing process, such as encircling or underlining an object in the document data, on the display; the intention is to memorize (annotating) that object by differentiating it from other objects. Subsequently, if a character string or the like is written in the vicinity of that object; then the encircling/underlining and the written information collectively represents annotation information with respect to that object.
Meanwhile, as described in the example given above, when the user wants to perform some kind of a search while using a particular object in the document data as the search query, then it is an extremely natural thing to select that particular object by encircling or underlining it. However, such a writing process on its own cannot be distinguished from the abovementioned annotation intention. Thus, in order to distinguish between the two, it becomes necessary to perform some kind of an additional input. In the case when the user follows encircling or the like by performing an additional input as part of the writing process, it becomes necessary to distinguish between the annotation intention and the search intention depending on the written contents.
In an information processing device according to an embodiment, a new method is provided that enables the user to perform a search by selecting, from the information (a document) displayed on a display unit, an object that is to be treated as the search query (i.e., by selecting a search query object). More particularly, from among the contents written by the user, the information processing device according to the embodiment detects commands such as a selection command, a relationship command, and a search command. A selection command is used as an instruction to select an object that is to be processed. For example, the selection command is issued in the form of encircling or underlining. A relationship command is used as an instruction to relate a plurality of objects. For example, the relationship command is issued in the form of a lead line or an arrow starting from an object. A search command is used as an instruction to perform a search process. For example, the search command is in the form of a character string that represents specific patterns such as “?”, “search over WEB”, “What is the English translation?”, “What is the meaning?”, and “What are the synonyms?”.
Moreover, in the embodiment, a method is provided to enable dealing with a search command which can be issued with respect to different search targets in an individual manner or in a collective manner, and to enable dealing with the search result of the search. More particularly, the following commands are made available as search commands: “all-target search”, “full command”, and “simplified command”. Moreover, a framework is provided in such a way that the search targets corresponding to each command can be searched in an independent manner or in combination. At that time, the search result is organized on the basis of the search targets and is presented to the user. Herein, the all-target search points to the overall search performed using the selected object. If the selected object represents handwritten characters, then it is possible to search for the characters that are similar to the handwritten characters. Alternatively, the search may be performed after recognizing the text of the handwritten characters, or the search may be performed with respect to the document that contains similar text. If the selected object represents an image, then it is possible to search for the similar image or to search for information belonging to the similar image. In such cases, the search target is dependent on the system. Meanwhile, the user may register in advance the search targets, and may put predetermined restrictions on the search.
Herein, by implementing an instinctive and expeditious method of writing a selection command, a relationship command, or a search command on the displayed document; it becomes possible for the user to specify a search query and perform a search for the information related to that search query. At that time, by changing the search command to be written, it becomes possible to perform a search for different search targets in an independent manner or in combination.
Meanwhile, in the embodiment, the explanation is given for an example in which a search process is performed while treating mainly objects as the search query. However, the application of the embodiment is not only limited to the search process. That is, the embodiment may be applied to any process in which specified objects are used. For example, as described later, the embodiment may be applied to a process of registering a specified object in a schedule. In the case of applying the embodiment to a process other than the search process, the abovementioned search command may be replaced with a run command of that particular process.
In the embodiment, the document displayed on a display unit may or may not be a handwritten document. A handwritten document contains, for example, data of handwriting (described later). A non-handwritten document is a document (such as text data) that includes, for example, data expressed in character codes. The text data may be obtained by, for example, performing character recognition with respect to an image that is obtained by capturing a handwritten document using an optical scanner or a camera.
The display unit 121 displays thereon a variety of information. Herein, the display unit 121 may be configured using a touch-sensitive display.
The input unit 122 receives input of various instructions. Herein, the input unit 122 may be configured using a combination of one or more of, for example, a mouse, buttons, a remote control, a keyboard, a voice data recognizing device such as a microphone, and an image recognizing device.
Meanwhile, the display unit 121 and the input unit 122 may also be configured in an integrated manner. For example, the display unit 121 and the input unit 122 may be configured as a user interface (UI) unit that has a display function as well as an input function. The UI unit is, for example, a liquid crystal display (LCD) equipped with a touch-sensitive panel.
The storage unit 123 is used to store a variety of information. Herein, the storage unit 123 may be configured using any kind of a commonly-used storage medium such as a hard disk drive (HDD), an optical disk, a memory card, or a random access memory (RAM).
The communicating unit 124 performs communication with an external device. The communicating unit 124 is connected to, for example, a storage unit 130 that is installed on the outside of the information processing device 100. The storage unit 130 is used to store, for example, information on search targets such as WEB data 131, semantic dictionary 132, translational equivalent dictionary 133, and related documents 134. Herein, the related documents 134 represent a set of documents that are categorized into predetermined categories. Alternatively, the related documents 134 may represent a set of documents that are categorized according to user-defined categories. For example, the related documents 134 may represent a set of related documents that compiles handwritten documents, or may be a set of related documents of different categories. Regarding a search with respect to handwritten characters, it is possible to search for similar characters or similar documents from among handwritten documents that have been recognized online. Meanwhile, in
The information on search targets may either be in the form of handwritten documents or be in the form of non-handwritten documents such as text data. In preparation for the case of performing a search with respect to a handwritten document, the storage unit 130 may include a handwritten document database (DB) (not illustrated).
The display control unit 111 controls the display of information on the display unit 121. For example, the display control unit 111 displays document data, which has been input, on the display unit 121. Moreover, the display control unit 111 displays stroke data, which is input in handwriting, on the display unit 121. As described later, the display control unit 111 performs control to change the display mode of the displayed data depending on various timings such as a timing before performing the processes, a timing during the processes, and a timing after performing the processes.
The obtaining unit 112 obtains data of handwriting via the input unit 122. Herein, the data of handwriting obtained by the obtaining unit 112 contains time-series data of the coordinates that are separated on a stroke-by-stroke basis. For example, the data of handwriting is expressed in the following manner.
Stroke 1: (x(1, 1), y(1, 1), x(1, 2), y(1, 2), . . . , (x(1, N(1)), y(1, N(1)))
Stroke 2: (x(2, 1), y(2, 1)), (x(2, 2), y(2, 2)), . . . , (x(2, N(2)), y(2, N(2)))
. . .
Herein, N(i) represents the number of points at the time of sampling a stroke i. Meanwhile, the handwritten documents stored in the handwritten document DB also contain the data of handwriting.
The first detecting unit 113 determines the shape of handwriting, which is obtained by the obtaining unit 112, based on the coordinate data of that handwriting; and detects the object that was input in handwriting. Each of the abovementioned commands such as the selection command, the relationship command, and the search command corresponds to an object detected in this fashion. As far as a character string other than the abovementioned commands is concerned, the first detecting unit 113 detects that character string as an additional object (a first object).
The second detecting unit 114 detects an object (a second object) that has been selected from the displayed information. For example, the second detecting unit 114 detects, from the displayed document data, an object (a second object) that is selected according to a selection command.
Explained below with reference to a flowchart illustrated in
Firstly, the shape of handwriting that has been input is determined (Step S51). The first detecting unit 113 refers to the coordinate data included in the data of handwriting that is obtained as input by the obtaining unit 112, and determines the shape of that handwriting so as to detect objects such as character string objects, underline objects, and enclosing line objects. Meanwhile, the shape of an object is not limited to the abovementioned shapes. Alternatively, for example, lead lines or arrows other than underlines may also be detected. Herein, lead lines or arrows may be detected as objects representing relationship commands.
With reference to
The process of determining whether or not the handwriting is included on the inward side of the closed loop is explained with reference to
(1) A straight line f[i](x, y)=0 that passes through two points P[i] and P[i+1] is calculated as
f(x,y)=(Y[i+1]−Y[i])*(x−X[i])−(X[i+1]−X[i])*(y−[Y[i]])=0.
However, if i=N is satisfied, then the straight line f[N] passing through two points P[N] and P[0] becomes f[N](x, y)=0.
(2) The side of Q(X, Y) with respect to the direction of movement of the straight line is determined. For that, f[i](X, Y) is calculated. If that value is positive, then Q(X, Y) is on the right-hand side with respect to the direction of movement of the straight line. On the other hand, if that value is negative, then Q(X, Y) is on the left-hand side with respect to the direction of movement of the straight line.
(3) The processes at (1) and (2) are repeated with respect to each “i”, and if the same sign is obtained for Q(X, Y) in all straight lines f[i](X, Y); it is determined that the point Q is on the inward side of the closed loop.
If it is determined that the handwriting is included on the inward side of the closed loop (Step S64), then the first detecting unit 113 detects an “enclosing line” as the object. In this case, the first detecting unit 113 can detect an “enclosing line” as an object indicating a selection command.
Meanwhile, if it is determined that a closed loop is not formed (No at Step S62 or No at Step S64), then the first detecting unit 113 determines whether or not the single stroke of handwriting is a horizontal line (Step S63). For example, the first detecting unit 113 solves a known linear regression problem and applies straight lines to a polygonal line. If the regression error obtained by that process is within a threshold value, then the first detecting unit 113 determines the polygonal line to be a straight line. When the polygonal line is determined to be a straight line; if the absolute value of the slope of the straight line is equal to or smaller than a predetermined value, then the first detecting unit 113 determines that the straight line is oriented sideways. If the straight line is determined to be a horizontal line (Yes at Step S63), then the first detecting unit 113 determines whether or not handwriting is present in the upper neighborhood of the horizontal line (Step S65).
The process of determining whether or not handwriting is present in the upper neighborhood of the horizontal line is explained with reference to
If all points Q[1], Q[2], . . . , Q[M] of the target handwriting for determination are present in the upper neighborhood of the line segment, then the first detecting unit 113 determines that handwriting is present in the upper neighborhood of the horizontal line. Whether or not a point Q is present in the upper neighborhood of the horizontal line can be determined in the following manner. Assume that P[1](X[1], Y[1]) and P[2](X[2], Y[2]) constitute a line segment; X[1]<X[2] is satisfied; and Q(X, Y) represents the target point for determination. Then, if the following four expressions are simultaneously satisfied, then the point Q can be determined to be present in the upper neighborhood of the horizontal line.
X[1]<X
X<X[2]
Y>(Y[1]+Y[2])/2
Y<(Y[1]+Y[2])/2+C,
where C is a predetermined threshold value.
When it is determined that handwriting is present in the upper neighborhood of the horizontal line (Yes at Step S65), the first detecting unit 113 detects an “underline” as the object. In this case, the first detecting unit 113 can detect an “underline” as an object indicating a selection command.
Meanwhile, if it is determined that a horizontal line is not present (No at Step S63 or No at Step S65) as well as if it is determined that the input handwriting has a plurality of strokes (Multiple Strokes at Step S61); then the first detecting unit 113 detects a “character string” as the object. If the detected “character string” is a specific character string, then the first detecting unit 113 can detect that character string as an object indicating a search command. For example, if the “character string” is “search over WEB”, then the “character string” can be detected as an object indicating a search command.
Returning to the explanation with reference to
Meanwhile, if the displayed document is a handwritten document, then the second detecting unit 114 can detect the data of handwriting of the portion that is instructed in the selection command. Similarly, if the displayed document is a non-handwritten document such as text data, then the second detecting unit 114 can detect text data of the portion that is instructed in the selection command.
Then, the object that is detected in this way is sent to the executing unit 115. Meanwhile, the abovementioned method of detection implemented by the first detecting unit 113 is only exemplary. That is, it is not the only possible method. As long as an object such as a sign or a character string that is input in handwriting is detected, any method may be implemented. Similarly, the abovementioned method of detection implemented by the second detecting unit 114 is only exemplary. That is, it is not the only possible method. As long as the object selected from the displayed information is detected, any method may be implemented.
The executing unit 115 performs processes using the detected object. For example, when a search command is detected, the executing unit 115 performs a search process in which at least the object selected in the selection command is treated as the search query.
The search target is information that can be cross-checked and retrieved using a character code string and data of handwriting.
In the case when text data other than a handwritten document is the search target; the executing unit 115 performs a search process in which, for example, the text data corresponding to the detected object is treated as the search query. If the detected object represents handwritten characters, then the executing unit 115 can perform character recognition with respect to the handwritten characters, convert the handwritten characters into text data, and treat the text data as the search query.
In the case when a handwritten document is the search target; the executing unit 115 performs a search process in which, for example, the data of handwriting corresponding to the detected object is treated as the search query. More particularly, in the handwritten document DB, a search is performed for the handwriting that is similar to or matches with that character string.
Given below is the explanation of a specific example of a process of searching in the handwritten document DB for the handwriting that is similar to or matches with a character string search query. The executing unit 115 performs, for example, feature vector matching and searches for a stroke sequence that is similar to the stroke sequence representing the handwriting of the search query. An exemplary concrete structure of the stroke data (data of handwriting) is explained with reference to
Herein, “stroke” points to a stroke that is input in handwriting, and represents the locus from the time when a pen or the like makes contact with the input screen until it is lifted from the input screen. Usually, the points on the locus are sampled at predetermined timings (for example, at constant periods). Hence, a stroke is expressed as a series of the sampled points.
In the example illustrated in (b) in
The structure of points may be dependent on the input device. In the example illustrated in (c) in
Meanwhile, coordinates represent the coordinate system of the document plane. For example, with the upper left corner as the origin, the coordinate values may be expressed as positive values that go on increasing toward the lower right corner.
In the case when the input device cannot obtain the writing pressure or in the case when, although the writing pressure is obtained, it is not used in subsequent processes; the writing pressure may be omitted from (c) illustrated in
Meanwhile, in the examples of (b) and (c) in
As a specific example of feature vector matching at the time of searching for a stroke sequence that is similar to the stroke sequence representing handwriting of a search query; it is possible to implement, for example, the dynamic program (DP) matching technique. Meanwhile, the stroke count of the stroke sequence specified by the user may not necessarily match with the stroke count of the stroke sequence desired by the user. That is because, there is a possibility that the character strings having the same meaning are written with different stroke counts by different writers. For example, depending on the writer, two strokes of the same character may be written in only a single stroke. For example, by implementing the DP matching technique that takes into account the correspondence between a single stroke and N number of strokes, it becomes possible to perform matching that is robust against the variation in strokes (for example, see Masuda, Uchida, Sakoe, “Experimental Optimization for DP Matching for On-Line Character Recognition”, Joint Conference of Electrical and Electronics Engineers in Kyushu, 2005, retrieved from http://human.ait.kyushu-u.ac.jp/˜uchida/Papers/masuda-shibu2005.pdf).
For example, each stroke included in the target stroke sequence for matching is considered to be the start point; mapping of the stroke sequence that is a user-specified search query is performed; and the degree of similarity between stroke sequences is calculated. Then, after calculating the degree of similarity from each start point; the degrees of similarity are sorted in descending order. Since each stroke is considered to be the start point, a result is obtained that includes overlapping. Subsequently, peak detection is performed and each range of overlapping strokes is integrated.
Meanwhile, other than the matching technique described above, various other matching techniques may also be implemented.
The storage control unit 116 controls the process of storing information in the storage unit 123.
Meanwhile, the display control unit 111, the first detecting unit 113, the executing unit 115, and the storage control unit 116 may be implemented by running computer programs in a processing unit such as a central processing unit (CPU), that is, may be implemented using software; or may be implemented using hardware such as an integrated circuit (IC); or may be implemented using a combination of software and hardware.
Explained below with reference to
Firstly, the explanation is given about the definitions of parameters and functions that are referred to in the flowchart illustrated in
Parameters
docid: A document ID (given)
docdata: The document data corresponding to docid that has been input
OL: A list of existing objects in docdata that have been selected till now (used in reselection)
null: An empty state of a list
S: A single set of stroke data that has been input
SL: A list of strokes S (equivalent to the above-mentioned stroke sequence)
obj1: A list of existing objects that have been selected (in
arc: A relationship command (such as a lead line) that is written
ST: A list of additional strokes that are written
obj2: An additional object other than docdata and written as an additional stroke
cmd: A command written as an additional stroke, and including a search command or an agenda addition command.
mode: An internal control mode. In the following explanation, mode 1 indicates writing (detection) of an existing-object selection command; mode 2 indicates writing (detection) of a relationship command; and mode 3 indicates writing (detection) of additional strokes.
Functions
loaddoc( ): A function for receiving input of document data. The function loaddoc( ) reads the document data specified in docid and returns a docdata class instance. format: docdata=loaddoc(docid).
inputS( ) A function for receiving input of a single set of stroke data. The inputS( ) receives input of a single stroke that starts when a pen is touched down and ends when the pen is lifted; and returns an S class instance. format: S=inputS( ).
dispS( ): A function for displaying the stroke S. format: dispS(S).
dtctobj1( ): A function for analyzing SL and detecting the selection of existing objects in docdata. In response to detection, the function dtctobj1( ) returns an obj class instance. In response to no detection, the function dtctobj1( ) returns null. format: obj=dtctobj1(SL, docdata, OL).
dtctarc( ): A function for analyzing SL and detecting a relationship command. format: arc=dtctarc(SL, obj1, docdata).
addlist( ): A function for additionally registering data in a list. format: list=addlist(list, data).
recog( ): A function for recognizing an additional stroke ST, extracting obj2 and cmd, and returning a class instance. If no additional stroke ST is recognized, the function recog( ) sets obj2 and cmd to null. format: (obj2, cmd)=(recog(ST).
dispanote( ): A function for performing annotated display. format: dispanote(arc, obj2).
dispcmd( ): A function for displaying the detected command. format: dispcmd(arc, obj2).
exec( ): A function for executing cmd that has obj1 and obj2 as arguments. format: exec(cmd, obj1, obj2).
savedata( ): A function for saving data.
With reference to
Firstly, the obtaining unit 112 receives input of the stroke S and displays the stroke S on the display unit 121 (dispS(S=inputS( ), SL=addlist(SL, S)) (Step S3). Then, the first detecting unit 113 determines whether or not an existing-object selection command is detected (Step S4). Herein, an existing object indicates an object that is included in the document data that is displayed. When an existing-object selection command is detected, the second detecting unit 114 makes use of, for example, obj1=dtctobj1(SL, docdata, OL); and detects the existing object obj1 selected according to the selection command from the displayed document data (docdata). If any existing object is reselected from the list OL that is used to store the already-selected and existing objects, then the second detecting unit 114 detects the specified (selected) object from the list OL.
Meanwhile, if no existing-object selection command is detected (No at Step S4); then the system control returns to Step S3 and the processes are repeated. On the other hand, if an existing-object selection command is detected (Yes at Step S4), then the first detecting unit 113 determines whether or not a relationship command is detected (Step S5). For example, the first detecting unit 113 determines whether an object arc that is detected using arc=dtctarc(SL, obj1, docdata) represents a relationship command.
If no relationship command is detected (No at Step S5), then the system control returns to Step S3 and the processes are repeated. On the other hand, if a relationship command is detected (Yes at Step S5); then the first detecting unit 113 determines whether or not writing of the additional stroke has completed (Step S6). For example, if the stroke S is written in an area other than a writing frame that is used to write additional strokes, then the first detecting unit 113 determines that writing of the additional stroke has completed. However, determination of whether or not writing has completed is not limited to this method. For example, if data of handwriting cannot be obtained for a predetermined period of time after the pen was lifted, then the first detecting unit 113 may determine that writing has completed.
If writing has not completed (No at Step S6), then the first detecting unit 113 registers the additional stroke (ST=addlist(ST, S)) (Step S7). Then, the system control returns to Step S3 and the processes are repeated.
When writing has completed (Yes at Step S6), the first detecting unit 113 recognizes the additional stroke ((obj2, cmd)=recog(ST)) (Step S8).
Herein, as described above, recognizing a stroke means determining the shape of handwriting based on the coordinate data of handwriting (with reference to
However, if a detected object is determined to represent a character string other than a command, then the first detecting unit 113 sets that object in obj2. For example, if an object such as “DOMESTIC” that does not correspond to any particular command is detected from the shape of an additional stroke, then the first detecting unit 113 sets that object in obj2. During a search, this object (the additional object) is treated as, for example, the search query for adding to the existing object obj1.
The executing unit 115 determines whether or not a command is detected (Step S9). If a command is detected (Yes at Step S9), then the executing unit 115 displays that command on the display unit 121 (dispcmd(arc, obj2)) (Step S10). For example, on the display unit 121, the executing unit 115 displays the relationship command arc that has been detected and the additional object obj2 that has been detected.
Then, the executing unit 115 executes the detected command according to, for example, a user instruction to execute the command (exec(cmd, obj1, obj2)) (Step S11). For example, when a search command is detected, the executing unit 115 performs a search process using a search query that includes obj1 and obj2. At that time, obj1 represents the second object mentioned above, and obj2 represents the first object mentioned above.
Meanwhile, if no command is detected (No at Step S9), then the executing unit 115 determines that the object detected from the additional stroke represents an annotation and performs an annotated display (dispanote(arc, obj2)) (Step S12). For example, the executing unit 115 issues a request to the display control unit 111 to display on the display unit 121 the relationship command arc that is detected and the additional object obj2 that is detected.
Then, the executing unit 115 saves the data of the detected object in the storage unit 123 (savedata( )) (Step S13). That marks the end of the processes. The saved data is then used by the user at the time of, for example, referring to the history of past handwritten input. Meanwhile, the destination for saving the data is not limited to the storage unit 123. Alternatively, the data may be saved in an external device such as the storage unit 130. For example, firstly the data may be saved in the storage unit 123, and then that data may be transferred (or copied) to an external device such as the storage unit 130 at a predetermined timing.
In
Given below is the more detailed explanation of the stroke-analyzing and responding process performed at Step S14 illustrated in
Firstly, the obtaining unit 112 initializes each parameter (mode=0, ST=SL=null, obj1=obj2=arc=null) (Step S101). The process at Step S102 is identical to Step S3 illustrated in
Then, the first detecting unit 113 determines whether or not the mode is a selection wait mode (mode=0), that is, determines whether or not the detection of a selection command is awaited (Step S103). If the mode is a selection mode (Yes at Step S103), then the first detecting unit 113 determines whether or not an object is reselected (Step S104). Herein, the reselection of an object indicates selection of an existing object from the list OL that is used to store the already-selected and existing objects. If an object is not reselected (No at Step S104), then the first detecting unit 113 determines whether or not an object is newly selected (Step S105). Herein, new selection of an object indicates newly selecting an object from the displayed document data (docdata). If an object is not newly selected, then the system control returns to Step S102 and the processes are repeated.
Meanwhile, if an object is reselected (Yes at Step S104) or if an object is newly selected (Yes at Step S105), then the first detecting unit 113 adds the newly-selected object obj to the list obj1 of selected objects (obj1=addlist(obj1, obj) (Step S106). Moreover, the first detecting unit 113 updates the mode to an already-selected mode (a relationship command wait mode) (mode=1). Furthermore, the first detecting unit 113 initializes the list SL of strokes (SL=null). In the case of transition from Step S105, the first detecting unit 113 adds the newly-selected object obj to the list OL of selected and existing objects (OL=addlist(OL, obj). Then, the system control returns to Step S102 and the processes are repeated.
Meanwhile, if it is determined that the selection is not awaited (No at Step S103), then the first detecting unit 113 determines whether the mode is the already-selected mode (mode=1), that is, whether or not the detection of a relationship command is awaited (Step S107). If the mode is the already-selected mode (Yes at Step S107), then the first detecting unit 113 determines whether or not a relationship command (such as a lead line) is detected (Step S108). Herein, a lead line is only an example of the relationship command, and another object such as an arrow may also be a relationship command.
If no relationship command is detected (No at Step S108), then the system control returns to Step S102 and the processes are repeated. On the other hand, if a relationship command is detected (Yes at Step S108); then the first detecting unit 113 sets the detected relationship command (such as a lead line) in arc (Step S109). Moreover, the first detecting unit 113 updates the mode to an additional-stroke detection wait mode (mode=2). Furthermore, the first detecting unit 113 initializes the list ST of additional strokes and the list SL of strokes (ST=SL=null). At that time, the display control unit 111 may display a writing frame W so as to enable writing of an additional stroke. Then, the system control returns to Step S102 and the processes are repeated.
Meanwhile, if it is determined that the mode is not the already-selected mode (No at Step S107), then the first detecting unit 113 determines whether or not writing has completed (Step S110). Herein, the processes performed at Step S110 and Step S111 are respectively identical to the processes performed at Step S6 and Step S7 illustrated in
When writing has completed (Yes at Step S110), the first detecting unit 113 recognizes the additional stroke ((obj2, cmd)=recog(ST)) (Step S112). At that time, the configuration may be such that the display control unit 111 erases the display of the writing frame W and, as an indication of completion of writing, erases the display of the stroke S that is written in the area other than the writing frame W.
The subsequent processes performed from Step S113 to Step S116 are respectively identical to the processes performed at Step S9 to Step S12 illustrated in
Given below is the explanation of further details of the process of detecting the selection of an object (Step S104 and Step S105) that was explained with reference to
The first detecting unit 113 determines whether or not the list SL of the strokes S is included in any of the bounding rectangles of the objects included in the list OL of existing objects (Step S201). If the list SL of the strokes S is included in any of the bounding rectangles of the objects (Yes at Step S201), then the first detecting unit 113 detects that an object has been reselected (Step S202). In this case, the first detecting unit 113 sets, in obj, an object that includes the strokes S listed in the list SL. Then, the display control unit 111 erases the display of the strokes S listed in the list SL (Step S203). As a result, the object that the user wishes to reselect can be reselected just by tapping on that object.
On the other hand, if the list SL is not included in the bounding rectangles of any of the objects included in the list OL of existing objects (No at Step S201), then the first detecting unit 113 attempts to detect an enclosing line or an underline. That detection can be performed by implementing the method explained with reference to
Subsequently, the first detecting unit 113 determines whether or not the total length b is greater than twice the longitudinal distance a (i.e., whether or not b>a×2 is satisfied) (Step S213). If the total length b is greater than twice the longitudinal distance a (Yes at Step S213), then the first detecting unit 113 sets the bounding rectangle R to an area of interest T (Step S214). On the other hand, if the longitudinal distance a is equal to horizontal width of the bounding rectangle R, and the total length b is equal to or smaller than twice the longitudinal distance a (No at Step S213 and Yes at Step S215), then the first detecting unit 113 sets the area formed by upwardly expanding the bounding rectangle R as the area of interest T (Step S216). Otherwise (No at Step S215), the second detecting unit 114 sets null in obj1 as an indication that no object was selected (Step S220). That marks the end of the processes.
Regarding the case in which the total length b is greater than twice the longitudinal length a, it can be assumed that encircling is done. Similarly, regarding the case in which the total length b is greater than 1.2 times of the longitudinal length a, it can be assumed that underlining is done. If encircling and underlining can be differentiated, then the total length b can be compared with a value other than twice or 1.2 times of the longitudinal length a.
The second detecting unit 114 detects, from the document data (docdata), such an existing object for which the degree of overlapping with the area of interest T (for example, the ratio of the dimension of the overlapping area) is equal to or greater than a predetermined threshold value (Step S217). The ratio between the area of interest T and the dimension of the overlapping area can be obtained as, for example, the proportion of the dimension of the overlapping area between the area of interest T and the existing object with respect to the dimension of the entire existing object.
The second detecting unit 114 determines whether or not such an existing object is detected (Step S218). If such an existing object is detected (Yes at Step S218), then the second detecting unit 114 sets the detected object in obj (Step S219). On the other hand, if no such existing object is detected (No at Step S218), then the second detecting unit 114 sets obj to null (Step S220). That marks the end of the processes.
Given below is the explanation of further details of the relationship command detecting process performed at Step S108 illustrated in
The first detecting unit 113 determines whether or not the start point of a stroke included in the list SL is present within an area U1 that is formed by expanding the bounding rectangle of the selection command of each object included in the list obj1 by a predetermined length in the leftward direction, the rightward direction, the upward direction, and the downward direction (Step S301). In the example of encircling illustrated in
If, regarding any of the objects, the start point of a stroke is not present within the area U1 (No at Step S301); then the first detecting unit 113 determines whether or not the start point of the stroke included in the list SL is present within an area U2 that is formed by expanding the bounding rectangle of each object included in the list obj1 by a predetermined length in the leftward direction, the rightward direction, the upward direction, and the downward direction (Step S302). In the example of underlining illustrated in
If the start point of the stroke is not present within the area U2 (No at Step S302), then the first detecting unit 113 performs setting (arc=null) to indicate that no relationship command (such as a lead line) is detected (Step S303). That marks the end of the processes.
Meanwhile, if the start point of a stroke is present within the area U1 (Yes at Step S301) or if the start point of a stroke is present within the area U2 (Yes at Step S302), then the first detecting unit 113 determines whether or not the end point of the stroke included in the list SL is present not only on the outside of the area U1 or the area U2 but also on the outside of the bounding rectangles of the other objects (Step S304). In the examples illustrated in
If the end point of the stroke is present not only on the outside of the area U1 or the area U2 but also on the outside of the bounding rectangles of the other objects (Yes at Step S304), then the first detecting unit 113 detects the stroke included in the list SL as a relationship command (such as a lead line) (arc=SL) (Step S305).
On the other hand, if the end point of the stroke is not present on the outside of the area U1 or the U2 or if the end point of the stroke is not present on the outside of the bounding rectangles of the other objects (No at Step S304), then the first detecting unit 113 performs setting (arc=null) to indicate non-detection of a relationship command (such as a lead line) (Step S303). That marks the end of the processes.
With reference to
As compared to the process performed at Step S103 illustrated in
As compared to the process performed at Step S105 illustrated in
As compared to the process performed at Step S107 illustrated in
As a result of performing these processes, it becomes possible to select a plurality of objects until a relationship command is detected, that is, until the mode is updated to mode=2 at Step S109.
Given below is the explanation of a specific example of information processing performed according to the embodiment.
A text object (sentence OBJ) may include, for example, word objects (word OBJ) and character objects (character OBJ) in a hierarchical structure. In a text object are embedded character codes representing characters, signs, and symbols. Regarding a text object, a set of rectangles circumscribing the characters (i.e., a set of character bounding rectangles) is set as the display area.
An image object may include, for example, objects for displaying images (image display OBJ) and the above-mentioned sentence OBJ such as captions or the like. In an image object are embedded images and character codes. Regarding an image object, a set of rectangles displaying images (image rectangles) and the abovementioned character bounding rectangles is set as the display area.
A moving image object may include, for example, an image display OBJ, a button object for starting the replay (button OBJ), and the abovementioned sentence OBJ such as captions or the like. In a moving image object are embedded moving images, images, and character codes. Regarding a moving image object, a set of image rectangles and character bounding rectangles is set as the display area.
The text object 701 can include, in the first hierarchy, sentence OBJ enclosed in inner rectangles. Meanwhile, herein the rectangles are illustrated for the sake of convenience and need not be displayed on the display unit 121. The text object 701 illustrated in
Each sentence OBJ includes word OBJ in a lower hierarchy (the second hierarchy). In
Each word OBJ further includes characters OBJ in a lower hierarchy (the third hierarchy). In
The image object 702 can include, in the first hierarchy, image display OBJ and sentence OBJ enclosed in inner rectangles. In
The data structure illustrated in
Meanwhile, it is possible to omit the input of a relationship command illustrated in
Meanwhile, it is also possible to omit the input of an additional object.
Moreover, the input of a relationship command may also be omitted from
Given below is the explanation of an example of writing performed to select an existing object (i.e., an example of writing a selection command) and an example of the existing object that is selected.
The rectangles 902 correspond to the display areas of character OBJ. The rectangles 901 correspond to the display areas of word OBJ. In the lower part of
In the case of an underline 1401 that is written in an overlapping manner with respect to the character string “CARRIER”, the triangle formed by extending the bounding rectangle of the underline 1401 in the upward direction by a predetermined amount becomes an area of interest 1402. In this case, as the existing object, the word “CARRIER” is selected that has the interference dimension ratio with the area of interest 1402 equal to or greater than a threshold value. Herein, the interference dimension is, for example, the dimension of the overlapping area between an area of interest 1042 and the existing object.
In the case of an underline 1411 that is written in a correct manner (without overlapping) below the character string “CARRIER”, the triangle formed by extending the bounding rectangle of the underline 1411 in the upward direction by a predetermined amount becomes an area of interest 1412. In this case, as the existing object, the word “CARRIER” is selected that has the interference dimension ratio with the area of interest 1402 equal to or greater than a threshold value.
In the case of an encircling line 1421 that is written to encircle the character string “CARRIER”, the bounding rectangle of the encircling line 1421 becomes an area of interest 1422. In this case, as the existing object, the words “EACH CARRIER” are selected that have the interference dimension ratio with the area of interest 1422 equal to or greater than a threshold value.
(1) a similar image search in which the image of the cellular phone is treated as the search query
(2) an information search in which the existing object “PRODUCT OF COMPANY T” is treated as the search query
(3) an information search in which the additional object “SPECIFICATIONS” is treated as the search query
(4) an AND search of (1) and (2)
(5) an AND search of (1) and (3)
(6) an AND search of (2) and (3)
(7) an AND search of (1), (2), and (3)
For example, in the case when the difference between the detection timing of the selection command 1611 and the detection timing of the object 1613 is within a predetermined period of time, then the first detecting unit 113 may detect the object 1613 as the additional object. Meanwhile, the order of detection (selection) of objects is arbitrary. For example, even in the case when the object 1613 is detected earlier and the selection command 1611 is detected later; as long as the difference between the detection timings thereof is within a predetermined period of time, the object 1613 may be selected as the additional object.
On the other hand, if the difference between the detection timings is greater than the predetermined period of time, then the first detecting unit 113 may determine that the object 1613 is an annotation. Moreover, for example, if the difference between the detection timing of the additional object (the object 1613) and the detection timing of the object 1614 is within a predetermined a predetermined period of time, then the first detecting unit 113 may detect the object 1614 as a search command.
In such a case too, if the relationship commands (the object 1912-1 and the object 1912-2) are written so as to ensure predetermined position relationships, the objects corresponding to the prior writing 1911-1 and the prior writing 1911-2 may be included in a search query. For example, in the case when conditions (1) to (5) given below are satisfied; the existing object (“number of smartphone subscribers”) and the annotation (“crossed 30 million people”) that are selected in response to the selection command included in the prior writing 1911-1 as well as the existing object (“CARRIER”) that is selected in response to the selection command included in the prior writing 1911-2 may be included in a search query.
(1) the object 1912-1 has a predetermined position relationship with the prior writing 1911-2
(2) the object 1912-2 has a predetermined position relationship with the selection command included in the prior writing 1911-2
(3) the object 1914 has predetermined position relationships with the object 1912-1 and the object 1912-2
(4) the difference between the input timing of the object 1912-1 and the input timing of the object 1912-2 is within a predetermined period of time
(5) the difference between the input timing of the object 1912-2 and the input timing of the object 1914 is within a predetermined period of time
Herein, a predetermined position relationship indicates a relationship in which an extreme point (the start point or the end point) of a stroke is present inside the bounding rectangle (or inside the area formed by expanding the bounding rectangle by a predetermined length) of a selection command.
Meanwhile, during the processes as well as after performing the processes, the executing unit 115 can change the display mode of the objects so as to enable the user to recognize that the processes are underway or that the processes have been performed. For example, during a search process, the display control unit 111 can display an animation in which the display of at least one of the selection command, the relationship command, and the search command changes. Alternatively, the display control unit 111 may change at least one of the following display modes of each command: color, brightness (blinking), stroke width, size, shape (such as rippling), and position (such as swingy).
Moreover, after the search process is completed, the display control unit 111 may erase, for example, the relationship command and the search command from the display unit 121. As a result, it becomes possible to erase unnecessary command stroke data from the display, and to ensure that there is no loss in readability of the document data that is being displayed in the background.
In
As described till now, in the embodiment, processes such as a search process can be performed using not only existing objects that are detected from a displayed document but also additional objects that are additionally input in handwriting. As a result, processes according to the handwritten input can be performed in a more accurate manner. In the example illustrated in
In addition, the configuration may be such that the document (or the set of documents) to be searched can be changed according to the type of the search command.
In
In
In the example illustrated in
Meanwhile, in the embodiment, a character string such as “search over WEB” can be detected as the additional object 1003. In the case when such a character string is specified, the executing unit 115 can be configured to perform a search with the document specified in the additional object as the search target and using existing objects as the search query. Hence, even if the configuration is not done as illustrated in
Alternatively, the configuration may be such that, instead of changing the search target according to the type of the search command, the search process is performed with respect to some or all of the search target documents, and the search result is displayed with respect to each search target document.
The display control unit 111 need not wait until the search result for all search targets is obtained. Instead, at the point of time of obtaining the search result of any one search target, the display control unit 111 may start displaying the search results. Moreover, until the search result of any one search target is obtained, the display control unit 111 may perform the process of changing the display mode of data in the manner described above.
Herein, regardless of an instruction from the user, the display control unit 111 may start displaying a search result at the point of time of obtaining that search result. Alternatively, the display control unit 111 may display a search result in response to the detection of a search result display instruction (such as a tap on the screen or on an object) from the user.
Given below is the explanation of examples of new selection and reselection of an existing object.
In
The screen 3101 is an example of the screen in which an existing-object selection command is written. In this case, the mode is updated from “0” to “1”, and “NUMBER OF SMARTPHONE SUBSCRIBERS” is set in obj1. The screen 3102 is an example of the screen in which a relationship command (a lead line) is written. In this case, the mode is updated from “1” to “2”, and the lead line is set in arc. The screen 3103 is an example of the screen in which a writing frame 3111 is displayed with reference to, for example, the end point of the stroke of the relationship command.
The screen 3104 is an example of the screen in which an additional object is written. In this example, the strokes of “DOMESTIC” and “?” are set in the list ST of strokes. The screen 3105 is an example of the screen when completion of writing is notified. For example, completion of writing is detected when the user taps on the outside of the writing frame (Step S6 in
The screen 3106 is an example of the screen in which recognition of the additional stroke, execution of a search process, and display of the search result is performed. As a result of recognizing the additional stroke, for example, “DOMESTIC” is set in obj2 and “?” is set in cmd. Accordingly, a search process is performed in which “NUMBER OF SMARTPHONE SUBSCRIBERS” and “DOMESTIC” are treated as the search query. Then, the search result of the search process is displayed in a search result display section 3114. As illustrated in an area 3113 in
Meanwhile, in addition to the search process described above, the executing unit 115 may also be configured to perform arbitrary processes such as a schedule registering process.
In the example illustrated in
As a result, as illustrated in the screen 3206, a process is performed by which the character string “CARRIER-WISE UNDERSTANDING OF MARKET SHARE” is added as the agenda of October 12. In an identical manner to
The processes with reference to the screen 3301 to the screen 3303 are identical to the processes with reference to the screen 3101 to the screen 3103, respectively, illustrated in
The display control unit 111 can erase a display 3312 of the stroke of tapping. Alternatively, the display control unit 111 may change the display mode of the annotated display before displaying it on the display unit 121.
In this way, in the information processing device according to the embodiment, processes such as a search process is performed using an existing object detected from the displayed document as well as using an additional object. As a result, processes according to the handwritten input can be performed in a more accurate manner.
Explained below with reference to
The information processing device according to the embodiment includes a control device such as a central processing unit (CPU) 51 that controls the whole device; storage devices such as a read only memory (ROM) 52 and a random access memory (RAM) 53 that stores a variety of data or a variety of programs; a communication I/F 54 that performs communication by establishing a connection with a network and controls communication with an external device; and a bus 61 that interconnects the other constituent elements.
Meanwhile, the computer programs that are executed in the information processing device according to the embodiment are stored in advance in the ROM 52.
Alternatively, the computer programs that are executed in the information processing device according to the embodiment can be recorded in the form of installable or executable files in a computer-readable recording medium such as a compact disk read only memory (CD-ROM), a flexible disk (FD), a compact disk readable (CD-R), or a digital versatile disk (DVD); and can be provided as a computer program product.
Still alternatively, the computer programs that are executed in the information processing device according to the embodiment can be saved as downloadable files on a computer connected to the Internet or can be made available for distribution through a network such as the Internet.
Meanwhile, the computer programs that are executed in the information processing device according to the embodiment can make a computer function as the constituent elements of the information processing device. In that computer, the CPU 51 reads the computer programs from a computer-readable storage medium and runs them such that the computer programs are loaded in a main storage device.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiment described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiment described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2012-253889 | Nov 2012 | JP | national |