User interface method and apparatus, and computer program

A user interface method includes acquiring a shape of an object arrangement area entered by a user's sketch operation; acquiring an object conversion parameter based on the acquired shape of the object arrangement area; acquiring a symbol entered by a user's sketch operation; searching registered objects for a display object associated with the acquired symbol; converting initial data of the display object to form a converted display object based on the object conversion parameter; and displaying the converted display object in the object arrangement area.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority from Japanese Application No. 2003-168357 filed on Jun. 12, 2003, the disclosure of which is hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

The present invention relates to a user interface method and device, and a computer program.

Many sketch interfaces are available that allow the user to perform interaction in the three-dimensional space through a two-dimensional operation. For example, see Teddy in Igarashi, T., Satoshi, M., Hidehiko, T., “Teddy: A Sketching Interface for 3D Freeform Design”, in Proc. of SIGGRAPH 99, 409-416, 1999, and Flat3D in Hiroaki Tobita, Junichi Rekimoto, “Flat3D: A Shared Virtual 3D World System for Creative Activities and Communication”, IPSJ JOURNAL, Vol. 44, No. 02, 2003. The operation of such sketch interface systems is simple because the user can perform all operations in three dimensions in exactly the same manner as the user performs operations in two dimensions. On the other hand, it is sometimes difficult to simply acquire an object with exact fidelity to the design image because the result of drawing work depends largely on the user's design skill.

Another method for building a scene is by describing the parameters (shape, position, size, color, etc.) of an object in the two- or three-dimensional space as a script. For example, see the Maya™ Mel script in Alias|wavefront company homepage http://www.aliaswavefront.com/en/news/home.shtml. The scene building method using a script like this allows the user to build a scene as if the user wrote a sentence but requires the user to describe a script using an editor. This prevents the user from interacting directly with the three-dimensional space. In addition, because the user must memorize the operation/behavior of the syntax rules and functions for describing a script in order to acquire an intended scene or object, many users cannot perform the operation easily.

SUMMARY OF THE INVENTION

In view of the above-described issues relating to the related art, an embodiment of the present invention provides a user interface method that is intuitive and easy to operate and that allows the user to easily acquire an object with higher fidelity to a design image. According to another embodiment of the present invention, there is provided a user interface method that allows the user to easily generate an object with fidelity to a design image when the user interacts in a three-dimensional space through a two-dimensional operation. According to still another embodiment of the present invention, there is provided a user interface method that uses text-based symbols, such as characters, character strings, and sentences, but allows the user to perform intuitive interactions in the three-dimensional space using the meaning of the symbols. Still other objects of the present invention will become apparent by the drawings and the description given below.

A user interface method and apparatus and a computer program according to an embodiment of the present invention use the configurations described below. According to the invention, a shape of an object arrangement area entered by a user's sketch operation is acquired, and an object conversion parameter is acquired based on the acquired shape of the object arrangement area. In addition, a symbol entered by a user's sketch operation is acquired, and registered objects for a display object associated with the acquired symbol are searched. The initial data of the display object is converted to form a converted display object based on the object conversion parameter, and the converted display object is displayed in the object arrangement area.

In such configurations, the user can specify an object arrangement area through an intuitive operation, called a sketch operation, to perform various operations on a display object. In addition, in such configurations, the user can specify a symbol through an intuitive operation, called a sketch operation, to easily call a registered display object related to the symbol. The designation of an object arrangement area can be performed by a simple operation, for example, by drawing a closed curve, and the designation of a symbol through sketching can be performed based on a user-familiar operation in which the user writes a character on a paper. Therefore, the configurations described above can provide a design tool that does not depend largely on the user's design skill and that is easy and intuitive.

The sketch operation may be performed by various pointing means such as a mouse, a track ball, a tablet device, a gesture input system, or an optical pointing system. During the sketch operation, the system can help the user through appropriate processing such as point interpolation and smoothing. The registered objects may be updated by an appropriate method. This update may be performed, for example, by newly acquiring an object as necessary from a picture or a user sketch, assigning an appropriate symbol to the object, and registering it with a predetermined resource, such as a database, or by rewriting initial data on an object associated with a symbol or rewriting pointer information pointing to the initial data.

According to an embodiment of the present invention, the initial data can include initial shape data of the display object, and the conversion can include changing the shape of the display object from the initial shape. The conversion of the initial data on the display object may include not only changing the shape, but also various visual conversions such as converting the brightness, converting the colors, converting the shading in color, or changing the patterns. In addition, if conversion parameters are set so that other modules in the same application or other applications can reference them, not only can a visual effect be added to the display object, but also other various applications can be made. For example, a visual effect (for example, the conversion of peripheral objects, etc) in an area outside the object arrangement area or an audio effect (for example, the generation of a sound effect) associated with the display object can be generated.

In addition, according to an embodiment of the present invention, it is possible to use a configuration in which the object arrangement area has an initial set shape, and the object conversion parameter is acquired based on a comparison between the initial set shape and the acquired shape of the object arrangement area.

According to an embodiment of the present invention, it is possible to use a configuration in which the initial set shape of the object arrangement area is three-dimensional and the acquired shape of the object arrangement area is two-dimensional. In one variant, the initial set shape is converted into a two-dimensional projection, and the object conversion parameter is acquired based on a comparison between the two-dimensional projection of the initial set shape and the acquired shape of the object arrangement area. In another variant, the acquired shape of the object arrangement area is extended into three dimensions, and the object conversion parameter is acquired based on a comparison between the acquired shape of the object arrangement area extended into three dimensions and the initial set shape of the object arrangement area. This configuration provides the user with the ability to specify the object arrangement area through a two-dimensional operation and to perform an intuitive interaction with a three-dimensional space.

Furthermore, according to an embodiment of the present invention, it is also possible to use a configuration in which the symbol is a character, a character string, or a sentence and the display object associated with the symbol is an image object related to a meaning of the symbol. Such a configuration enables the user to acquire an image object easily through a character even if the user is not familiar with the syntax or the semantics of the script language. In other words, it can be said that the meaning of the character is presented to the user through the display object. In this case, when the user enters as a symbol a character, a word, or a phrase, etc. whose meaning is unknown, the user can recognize its meaning as an image that is adapted to the user-specified arrangement area shape.

According to an embodiment of the present invention, there is provided a user interface method that allows the user to perform operations intuitively and easily and to acquire an object which is close to a design image relatively easily. In addition, according to an embodiment of the present invention, there is provided a user interface method that allows the user to generate an object which is close to a design image when the user performs interactions for a three-dimensional space via two-dimensional operations. In addition, according to an embodiment of the present invention, there is provided a user interface method in which the user, who uses a text-based symbol such as a character, a character string, or a sentence, can interact with the three-dimensional space intuitively through the meaning of the symbol.

In addition, according to an embodiment of the present invention, it is possible to provide a very useful education tool, especially a tool for character education or word education. For example, the shape of a kanji character is derived, in many cases, from the shape associated with a behavior in the real world and therefore the direct association between a kanji character and an object such as an image helps us understand the meaning and the shape. Therefore, this method in which kanji characters are directly associated with objects, is considered efficient in kanji character education for children and in Japanese education for foreigners. When teaching words to infants or non-native learners, the ability to show a word as well as its corresponding image would attract the learner's interest and achieve a high learning effect.

In addition, the acquisition of a display object according to an embodiment of the present invention can be used not only for conversion, but also as a trigger for drawing. Painting an object, with a converted object as the base, has the function of a trigger for creation.

A display object according to an embodiment of the present invention, which can be created based on a simple data configuration, can be used as a new communication tool attached to e-mail, etc. That is, because data can be a drawing in a bit map, the drawing can be sent via e-mail. A display object is also useful when a handwritten character is input to a computer, such as a PDA, that supports pen input. In addition, because an object can be generated by drawing a kanji character in a shared virtual space communication and its size is small, a display object is useful in communications via a network.

DETAILED DESCRIPTION

System Overview

First, an overview of an example of a system in accordance with the present invention will be described briefly. This system example allows the user to acquire an image object through handwriting input. In this example, the user basically draws a silhouette (contour/line/outline/silhouette) and draws a kanji character in an appropriate area to generate an object related to the character in the silhouette.

The basic processing flow of this example is as follows:1. A user draws a silhouette (for example, a closed curve).2. The system displays the silhouette.3. The user enters a kanji character in an appropriate drawing area (for example, inside the closed curve).4. The system holds the size/shape data of the silhouette (usable for conversion parameters based on a comparison with a template) and the recognition result of the character.5. The system references the database based on the recognition result of the character and selects a display object corresponding to the character.6. The system shapes the display object in accordance with the shape of the silhouette.7. The system displays the display object within the silhouette.
Example of Screen Image

UsingFIG. 5toFIG. 7, an example of a display image in this system will be shown. In the example inFIG. 5, the input side interaction from the user to the system is performed basically by the selection of a GUI and the drawing of a silhouette and a kanji character. Therefore, the interaction is performed based on the operation of a mouse, for example, in a hardware configuration in which a standard PC (Personal Computer) and a monitor are combined. By combining the system with a system that supports pen input or finger input, such as a tablet PC, a PDA, or a wall-type real-world-oriented interface, the system can provide the user with a more natural operation.

In the example inFIG. 5, the user performs operations for the system through GUI (Graphical User Interface) component selection and stroke drawing. In this example, the display area is divided roughly into a GUI component part and a drawing part.

An example of the GUI component part, shown at the bottom ofFIG. 5, includes GUI components for mode selection and so on. The GUI components for mode selection include, for example, a silhouette input GUI component, a symbol input GUI component, a change GUI component, a pen GUI component, a text GUI component, an erasure GUI component, or a selection object change GUI component. Those GUI components either may be displayed in the format shown inFIG. 5or prepared in the system as other selection-type GUI objects such as a radio button, a checkbox, or a pull-down menu. Today, a user or a system developer can easily change the correspondence between the GUI components and the corresponding functions. Therefore, the correspondence between the GUI components and the related functions is not described inFIG. 5. It should be understood that a necessary function that will be used can be related to a GUI component.

An example of the drawing part is shown in the center ofFIG. 5.

The system proceeds to the silhouette drawing mode, for example, when the user selects the silhouette GUI component in the example inFIG. 5. In this mode, the user can draw a silhouette in the workspace. This drawing result is held in the system as a list of three-dimensional position information. The list information should be treated as a storage object (an object to be held by the system) only when a closed curve is drawn. In addition, the system enters the kanji character drawing mode, for example, when the user selects the kanji GUI component after drawing a silhouette. In this mode, the user can directly or indirectly draw (handwrite) a kanji character, for example, within a silhouette. The drawn kanji character is held by the system as image data on the screen.

After that, when the user presses the set GUI component, processing is performed for two types of data: the list data holding the position information and the image data holding the kanji character drawing information. For example, a stroke list, which is a data set that allows the application drawing module to draw a closed curve, is passed to the Triangular function to segment the inside of the closed curve into pieces based on a plurality of triangles. The image data is passed to the OCR (Optical Character Recognition) library for character recognition. The database is referenced based on the result of character recognition to determine the object, and this object is applied to the silhouette to complete the conversion from the kanji character to the object.

In this system example, conversion to an object is also possible in some cases, not via a silhouette, but from a drawn kanji character only. Conversion is also possible from only a drawn kanji character by treating the outline of a kanji character in the same manner a silhouette is processed. In addition, instead of providing selection GUI components, a system may also be built in which the mode can be changed by some other methods, for example, by acquiring an object from a drawn stroke only.

In this system example, if the user selects the kanji character GUI component and then draws “”, the model of a tree appears in the silhouette as shown inFIG. 6. For example, by building the system so that another object candidate can be applied to the character by performing a selection operation (for example, press) for the change GUI, the user can easily acquire an object that suits the user's application more precisely. It is also possible to directly convert the shape of an object by changing the way the character is drawn. Because a plurality of objects are stored for the same kanji character in the database in advance, the user can select from those candidates through the GUI operation. As a result, the user can acquire an object in three processes: silhouette drawing, kanji character drawing, and selection. Therefore, this system is characterized in that the user can use the system without special training because the system is based on kanji characters and so on with which the user is already familiar and which are used in writing sentences in daily life.

With this system example, the user can generate a more complex object by using a combination as shown inFIG. 7. Drawing a kanji character on an object, which is acquired from a silhouette and a drawn kanji character, generates a complex object. For example, writing “” in the silhouette to acquire a tree object and then writing “” on the tree object generates a red tree object. Also possible is an interaction method that enables the objects to have a relationship between them. Setting a clock object, which is acquired from a silhouette and the drawn kanji character “”, next to the tree object can change the status of the tree by operating the clock.

This system is designed for various materials. For example, conversion not only to a model but also to a sound (laugh, anger, cry), as well as application to various contents such as an animation character (fly, run, walk), is also possible. Objects can be easily added to this system by updating the database of the templates.

Functional Modules

FIG. 1is a block diagram showing an embodiment of the functional modules of a user interface apparatus in the embodiment. For convenience,FIG. 1shows only a very simplified image. In the actual implementation of this embodiment, the functions of these functional modules are allocated as necessary to hardware components and software components. Consequently, it is highly possible that the overview of an actual implementation will not be the same as that shown inFIG. 1. Also, modifications, corrections, additions, functional extensions and so on may be added to the functional modules.

An input user interface1inFIG. 1, composed of user input devices such as a keyboard, a mouse, or a tablet input unit, has an IF function that transfers data from the user input devices to a user input processing module3. In this embodiment, it is preferable that the input user interface1be equipped at least with a user input device which allows the user to perform a sketch operation. Of course, a variety of input modes are also possible by using a configuration, for example, a multi-modal input mode configuration, in which multiple input means or multiple types of input means are provided.

The user input processing module3interprets a user operation entered via the input user interface1and sends commands and data to a symbol recognition module5, a silhouette recognition module7, or other internal input processing module21in the subsequent stage so that processing for the user operation is performed. In this embodiment, it is preferable that the user input processing module3be capable of recognizing at least a silhouette input and a symbol input from a user's sketch operation. Such a configuration can be implemented by making a conditional judgment using GUI component selection information or user input stroke information as the key. In this case, a symbol may take various forms, for example, characters such as a kana character, a katakana character, a kanji character, a hangul character, an Arabic alphabet, and an alphabet character; symbol characters such as a space, a comma, a period, an at mark, and a face mark; graphics; illustrations; and a combination of those characters such as a character string. When a character is used as the symbol, any character code such as ASCII and Unicode may be used. A silhouette is an object that is the base of a model that is displayed in such a way that the model graphic corresponding to a symbol is displayed with some relation to the symbol. For example, a silhouette is a display area in which the model graphic corresponding to a symbol is displayed. In this embodiment, it is preferable that both a symbol and a silhouette can be input by the user easily through a switch operation rather than require the user to have a sophisticated design skill.

The symbol recognition module5recognizes a symbol sketch-entered by the user based on data on the input symbol received from the user input processing module3. This module is implemented by using, for example, the character recognition function of an OCR or Graffiti of Palm OS® (Palm, Inc.). The silhouette recognition module7recognizes the shape and other features of a silhouette sketch-entered by the user based on data on the silhouette entered from the user input processing module3. It is desirable that the accuracy of symbol recognition and silhouette recognition be maintained by using appropriate processing such as data integration, calibration, and interpolation.

A template search module11searches a template database13for a corresponding template in response to the recognition result from the symbol recognition module5or the silhouette recognition module7(hereinafter, the database is abbreviated “DB”). The search result is sent to a model generation module15. A DB update module9adds, changes, deletes, or rewrites template data or the correspondence between a symbol and a silhouette and updates the registration information in the template DB13. To update the DB by the DB update module9, a configuration created automatically based on a predetermined rule, a configuration created manually based on a user's predetermined instruction, or a configuration created by appropriately combining those configurations may be used. AlthoughFIG. 1shows that the DB is updated by the DB update module9based on data from the symbol recognition module5or the silhouette recognition module7, this embodiment is not limited to this configuration. It is, of course, possible to update the DB based on data input from the other input processing module21.

The template database13, in which template data on display objects is stored, has a configuration in which symbol data, such as a recognized character, can at least be used to search for the template of a corresponding display object via the template search module11. In some cases, the template database13may be configured in such a way that the template data on a silhouette is stored. The template database13can be implemented easily by configuring it so that symbol data and a corresponding template are included in the same entry or by configuring it so that a corresponding template can be searched for from symbol data via one or more identification information units (ID number, pointer, URL, etc.). Data in the database can be recorded in a non-distributed manner in the local resource of an apparatus connected to a network or a standalone apparatus or in a distributed manner in a network including a plurality of apparatuses.

Templates registered with the template database13may be three-dimensional data. Using this configuration allows a three-dimensional model to be generated easily from a two-dimensional sketch input by the user. That is, in such a configuration a sketch interface can be provided that makes it easy to interact with three-dimensional space. In addition, the user input processing module3, the symbol recognition module5, and the silhouette recognition module7can have a function of extending two-dimensional data into three dimensions. For the function of extending two-dimensional data into three dimensions, the invention described in Japanese Patent Laid-Open Publication No. 2002-024860, Japanese Patent Laid-Open Publication No. 2002-074399, Japanese Patent Application No. 2002-000945, or Japanese Patent Application No. 2002-363493, naming the inventor of the present invention and his colleagues as inventors, may be used. The contents of those patent documents are incorporated herein by reference.

In response to template data from the template search module11, the model generation module15converts the acquired template appropriately and generates a model of a display object corresponding to the silhouette or the input symbol. This system is configured such that a conversion result created for at least one silhouette is reflected on the corresponding display object of an input symbol displayed in connection with the silhouette.

A display processing module17creates data, displayable on a display and so on included in an output user interface19, from a model and so on generated by the model generation module15. When three-dimensional data is used for a template as described above, the display processing module17converts three-dimensional data to two-dimensional data, for example, through rendering processing. The output user interface19includes output devices, such as a display unit, an audio output unit, and a tactile output unit. The configuration of the output user interface19is well known and its description is omitted.

InFIG. 1, the other input processing module21and an other output processing module25are functional modules that perform processing other than the processing described above. For example, the other output processing module25can generate voice output data corresponding to a generated model, and the other input processing module21can process a user input other than a symbol input or a silhouette input and execute appropriate internal processing.

Example of Processing Flow

FIG. 2-FIG.4are flowcharts showing an example of the user interface method in this embodiment. More specifically,FIG. 2shows a flowchart indicating a typical process flow, andFIG. 3shows a flowchart which focuses on the user input events. In addition,FIG. 4shows a more detailed flowchart for some steps inFIG. 2andFIG. 3.

First, in step S1, whether the user has drawn a silhouette is detected. This step is executed, for example, by detecting whether the user has selected the silhouette drawing mode and has performed a predetermined drawing operation, such as an operation for drawing a closed curve. If the result is positive, control is passed to step S2; if the result is negative, step S1is repeated as long as the silhouette drawing mode is selected.

In step S2, the silhouette area entered by the user is identified and the silhouette model is acquired. For a silhouette model that is a very simple model, such as a circle or a ball, the silhouette model itself need not be registered with the database but can also be acquired through calculation each time the silhouette is entered. On the other hand, for a complex model to be converted into a silhouette, it is possible to use a configuration in which the template data is registered with the database and, based on the recognition result of the user input, the silhouette template is searched for from the database.

In step S3, the stroke information is stored in a predetermined resource. The stroke information includes drawing data on the silhouette corresponding to the stroke as well as the parameters that will be used in the subsequent steps for conversion to a display object corresponding to the symbol. In step S4, the silhouette object is displayed.

Next, in step S5, whether the user has drawn a kanji character is detected. This step can be executed, for example, by detecting whether appropriate stroke information stored in step S3exists, whether the kanji character drawing mode has been selected by the user, and whether a recognizable kanji character has been input into an appropriate input area through handwriting. The appropriate input area is an area within the displayed silhouette, an area prepared exclusively for symbol recognition, or a recognizable area on an input device such as a tablet. If the result is positive in step S5, control is passed to step S6; if the result is negative, control is passed to exception processing (this will be described later).

In step S6, a user-entered handwritten character is recognized by the system. Handwritten data entered by the user can be recognized through pattern matching using an existing OCR library and so on.

In step S7, the template database is searched based on the recognized character information. If an appropriate display object can be acquired from the database, it is determined that there is a display object in step S8and the display object is acquired in step S9. If an appropriate display object cannot be acquired from the database, it is determined that there is no display object in step S8and control is passed to exception processing (this will be described later).

In step S13, exception processing is performed. For example, a check is made if the system is waiting for a kanji character to be drawn. If the result is positive, control is returned to step S5to allow the system to wait for the user to draw a kanji character. If the result is negative, control is passed to the start of the process.

In step S10, the display object is adapted to the shape of the silhouette. This adaptation is made in various ways, for example, by changing the shape of the display object, by changing the expression of a living thing display object, by adding shading to a texture display object, or by generating an appropriate audio effect, based on parameters such as vertical and horizontal scales, an area change rate, or an inclination determined by the comparison between the assumed silhouette shape and the actual silhouette stroke.

In step S11, information on the display object converted in step S10is stored in the system and, in step S12, the display object is presented to the user at a right time in the system. Although the flow shown inFIG. 2is terminated in any of several steps, this is the path to which control is passed, for example, when the application is terminated. A detailed description of this configuration is omitted because this is related to a change in the design.

FIG. 3is a flowchart generated by rewriting the flowchart inFIG. 2with the focus on the user input and, therefore, the same reference numerals are attached to the corresponding steps inFIG. 2and the description is omitted.

FIG. 4is a more detailed flowchart showing primarily the part S9-S11inFIG. 2andFIG. 3. In a configuration in which generation is performed based on the templates in a template database with which not only display objects but also silhouette data are registered, the processing inFIG. 4can be applied similarly to the part S2-S3inFIG. 2andFIG. 3.

In step S101, template data is retrieved from the database.

In step S102, the number of template data units and the ratio calculated with the full length as 1 are stored.

In step S103, the circumscribed quadrangle of the template is calculated.

In step S104, the input stroke is normalized based on the ratio of the template data.

In step S105, the circumscribed quadrangle of the stroke is calculated.

In step S106, the aspect ratio is calculated.

In step S107, the stroke is changed to a circle.

In step S108, the circle data and the template data are substituted into Triangler to fill the stroke with patches.

In step S109, the patch data is held as an object.

Pseudo Code

FIG. 8-FIG.17show an example of a computer program in this embodiment in the form of pseudo source code. The contents are included herein.

Although the embodiments of the present invention have been described above using preferred examples, the present invention is not limited to these configuration examples.

For example, although a symbol and a silhouette are sketch-entered by a user in the example of the embodiment described above, the present invention is not limited to this configuration. For example, it is also possible to use a configuration in which a symbol and/or a silhouette is entered in a non-sketch way, for example, by reading a bar code or selecting from image data and only its editing (addition, correction, etc.) is done through sketch entry. In this case, the present invention allows the results of editing performed for a silhouette to be reflected on the behavior of a displayed symbol.