WO2015034177A1 - 상황 인지 기반의 명령 수행 방법 및 장치 - Google Patents

상황 인지 기반의 명령 수행 방법 및 장치 Download PDF

Info

Publication number
WO2015034177A1
WO2015034177A1 PCT/KR2014/006845 KR2014006845W WO2015034177A1 WO 2015034177 A1 WO2015034177 A1 WO 2015034177A1 KR 2014006845 W KR2014006845 W KR 2014006845W WO 2015034177 A1 WO2015034177 A1 WO 2015034177A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
information
gesture
command
terminal
Prior art date
Application number
PCT/KR2014/006845
Other languages
English (en)
French (fr)
Inventor
조승현
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to CN201480023262.8A priority Critical patent/CN105518571B/zh
Publication of WO2015034177A1 publication Critical patent/WO2015034177A1/ko
Priority to US14/932,514 priority patent/US10198081B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1626Constructional details or arrangements for portable computers with a single-body enclosure integrating a flat display, e.g. Personal Digital Assistants [PDAs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Definitions

  • the present embodiment relates to a method and an apparatus for executing a situation based instruction.
  • An apparatus for recognizing a user's movement refers to an apparatus for recognizing an operator's movement as an input.
  • some applications that recognize movement provide a user interface (UI) in which only a specific function is performed for a specific gesture.
  • UI user interface
  • the UI in which only a specific function is performed on a specific gesture is operated only in the corresponding application, and thus the user convenience is inferior because the UI does not perform a consistent operation for each of the plurality of applications.
  • the present embodiment recognizes a gesture based on a sensor included in a terminal, and recognizes a situation in which a gesture UI is provided to automatically perform various functions according to a situation by simultaneously executing a command corresponding to the corresponding gesture for each active application.
  • the main purpose is to provide a method and apparatus for performing command based.
  • the sensing unit for generating the movement change information of the terminal;
  • a gesture determination unit configured to generate specific gesture information by comparing the movement change information with a predetermined gesture;
  • An application control unit for determining an active application in a currently activated state;
  • an execution unit configured to execute a predetermined command corresponding to the specific gesture information for each activation application.
  • a gesture is recognized based on a sensor included in a terminal, and a command corresponding to the gesture is simultaneously performed for each active application to automatically perform various functions according to a situation. This has the effect of providing a gesture UI.
  • not only one application is controlled based on the movement of the user of the terminal, but also a predetermined command is simultaneously executed according to the movement of a specific user for one or more applications currently activated in the terminal. have.
  • various functions can be performed for each of a plurality of applications with only one or two simple gestures by controlling the user to convert the same gesture into a command of an application that is currently active. There is an effect that the user convenience is increased.
  • the terminal when the screen size of the terminal is difficult to operate with one hand, there is an effect that the terminal can be smoothly controlled with one hand using the gesture UI.
  • the user can easily perform various functions through one-hand control, which increases the usability of products with large screen sizes, and provides the convenience of allowing various functions to be operated according to the situation with only one simple and simple operation. There is.
  • one specific user's motion can be converted into various commands according to the user's situation, so that the user does not have to remember many gestures from the user's point of view.
  • FIG. 1 is a block diagram schematically illustrating a terminal for executing a context-aware command according to the present embodiment.
  • FIG. 2 is a flowchart illustrating a method of performing a command based on context awareness according to the present embodiment.
  • FIG. 3 is a flowchart illustrating an operation on an event generated from a sensing unit according to an exemplary embodiment.
  • FIG. 4 is a diagram illustrating the structure of a sensor manager module according to the present embodiment.
  • FIG. 1 is a block diagram schematically illustrating a terminal for executing a context-aware command according to the present embodiment.
  • the terminal 100 for executing a context-aware command includes a sensing unit 110 and a situation recognition unit 120. Components included in the terminal 100 are not necessarily limited thereto.
  • the terminal 100 may include a personal computer (PC), a laptop, a tablet, a tablet, a personal digital assistant (PDA), a game console, and a portable multimedia player (PMP).
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • Means devices such as Portable Multimedia Player (PSP), PlayStation Portable (PSP), Wireless Communication Terminal, Smart Phone, TV, Media Player and the like.
  • the terminal 100 includes (I) a communication device such as a communication modem for communicating with various devices or a wired / wireless communication network, (II) a memory for storing various programs and data for performing various functions, (III) It can refer to various devices including a microprocessor for executing and controlling a program.
  • the memory may be a random access memory (RAM), a read only memory (ROM), a flash memory, an optical disk, a magnetic disk, a solid state disk (SSD), or the like. It may be a computer-readable recording / storage medium.
  • the microprocessor may be a program that selectively performs one or more of the operations and functions described in the specification.
  • the microprocessor may be implemented as hardware, such as an Application Specific Integrated Circuit (ASIC), in whole or in part.
  • ASIC Application Specific Integrated Circuit
  • the terminal 100 is equipped with a gesture UI application 'Sensor Manager' to recognize the gesture and to control the situation-specific command is delivered to the application to execute.
  • 'Sensor Manager' refers to a UI application for recognizing a gesture based on a sensor.
  • 'sensor manager' is a kind of software module.
  • the sensor manager When the terminal 100 is a smart phone, the sensor manager may be installed in the terminal 100 in a download manner from an application providing device. When the terminal 100 is a feature phone, the sensor manager may be run on a virtual machine (VM) downloaded from a communication company server.
  • VM virtual machine
  • the terminal 100 may be implemented in a state in which the sensor manager is embedded in an embedded form, or may be embedded in an OS (operating system) mounted in the terminal 100, or may be operated by a user's operation or command. It can be installed in the form installed in the OS inside the package).
  • the sensor manager mounted on the terminal 100 may include basic applications (eg, voice call application, alarm application, text (SMS / MMS) application, music playback application, image output application, web) mounted on the terminal 100.
  • Surf applications, video playback applications, etc. may be implemented, but is not necessarily limited thereto, and may operate as an independent function without interworking with the basic application.
  • the terminal 100 generates motion change information that senses a motion change of a user, and generates specific gesture information by comparing the motion change information with a predetermined gesture. Thereafter, the terminal 100 generates activation application information for determining an application in a currently activated state, and allows a preset command corresponding to specific gesture information for each activated application to be executed simultaneously.
  • the sensor manager is implemented to be operated independently in a form having a separate software function or a hardware function performed by the terminal 100 or interlocked with a separate software function or hardware function performed by the terminal 100. It can be implemented as.
  • the sensor manager is mounted on the terminal 100 and preferably operates using various hardware provided in the terminal 100, but is not necessarily limited thereto.
  • the sensor manager may be implemented as a separate device.
  • the sensor manager may operate in conjunction with applications previously installed in the terminal 100.
  • the sensor manager is installed in the terminal 100 to allow the terminal 100 to generate motion change information that senses a motion change of a user, and to generate specific gesture information by comparing the motion change information with a predetermined gesture. Thereafter, the sensor manager generates activation application information that determines an application in a currently activated state, and allows a preset command corresponding to specific gesture information for each activation application to be executed simultaneously.
  • the sensing unit 110 refers to a kind of module including a plurality of sensors that sense physical quantities or changes in heat, light, temperature, pressure, or sound.
  • the sensing unit 110 according to the present exemplary embodiment generates the movement change information which senses the movement change of the terminal 100.
  • the sensing unit 110 includes an acceleration sensor, a gyro sensor, an illumination sensor, a proximity sensor, an altitude sensor, a camera module, and the like. do.
  • the proximity sensor may include a 'magnetic sensor', 'magnetic saturation sensor', 'high frequency oscillating proximity switch', 'differential coil type', and 'capacitive sensor'.
  • the sensing unit 110 may be implemented as one module included in the 'sensor manager', but is not necessarily limited thereto and may be implemented as a separate module from the 'sensor manager'.
  • the context recognizer 120 generates specific gesture information by comparing the motion change information received from the sensing unit 110 with previously stored gestures, and generates activated application information that determines an application in a currently activated state. Thereafter, the context recognizer 120 executes predetermined commands corresponding to specific gesture information for each active application at the same time.
  • the situation recognition unit 120 includes a gesture determination unit 130, an application control unit 140, an execution unit 150, and a database 160. Components included in the situation recognition unit 120 are not necessarily limited thereto.
  • the gesture determination unit 130 generates specific gesture information by comparing the movement change information received from the sensing unit 110 with a predetermined gesture. To describe the specific gesture information generation process in more detail, the gesture determination unit 130 compares the displacement information included in the movement change information with the patterns previously stored in the pattern storage unit 132 to have the highest change rate with the movement change information. The matching pattern is extracted, and the information corresponding to the matching pattern is recognized as specific gesture information.
  • the gesture determination unit 130 includes a pattern storage unit 132, a sensing processor 134, and a gesture recognition unit 136. Components included in the gesture determination unit 130 are not necessarily limited thereto.
  • the pattern storage unit 132 stores previously stored patterns. In other words, the pattern storage unit 132 stores at least one user gesture pattern. Various patterns may appear from the start point to the end point of the user gesture pattern according to the two-dimensional or three-dimensional direction, the type of bending, and the rotation direction. These gesture patterns are controlled by the administrator in addition to patterns such as ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ' and ' ⁇ '. Various patterns can be defined.
  • the sensing processor 134 extracts a sensing coordinate value included in the motion change information received from the sensing unit 110.
  • the gesture recognition unit 136 calculates the position transformation information of the user motion from the coordinate value, and recognizes the matching pattern having the highest matching rate with the position transformation information among the patterns previously stored in the pattern storage unit 132 as the specific gesture information.
  • the application control unit 140 generates activated application information that determines an application in a currently activated state.
  • the application control unit 140 checks whether the application in the currently activated state is being executed by multi-tasking. As a result of the check, when the application in the currently activated state is being executed by multitasking, the application control unit 140 generates the activated application information including the multitasking information. As a result of the check, when the multi-tasking application is not executed in the currently active state, the application control unit 140 generates active application information including foreground information.
  • the foreground means that one process executes with priority over another process in multiple programming, but in this embodiment, information refers to information in which a single application is driven.
  • the execution unit 150 controls the preset commands corresponding to the specific gesture information to be executed for each active application. In other words, the execution unit 150 transmits the command to the activation application corresponding to the activation application information so that an operation corresponding to the command is executed in the activation application. In addition, the execution unit 150 extracts a command corresponding to the activation application information and the specific gesture information from the database 160.
  • the execution unit 150 allows each of the context-based commands corresponding to the specific gesture information to be executed simultaneously for each of at least two or more applications included in the multitasking information.
  • the execution unit 150 causes the context-based command corresponding to the specific gesture information to be executed in the application corresponding to the foreground information.
  • the database 160 stores a command that matches any one pattern for each of a plurality of applications. For example, the database 160 matches and stores the A command corresponding to the A application for the same pattern, matches and stores the B command corresponding to the B application, and matches and stores the C command corresponding to the C application.
  • the database 160 may be implemented inside or outside the terminal 100.
  • a database is a general data structure implemented in a storage space (hard disk or memory) of a computer system using a database management program (DBMS).
  • DBMS database management program
  • a database is a data storage type that can freely search (extract), delete, edit, and add data.
  • Oracle Oracle, Infomix, Sybase, and relational database management system (RDBMS) : Relational Data Base Management System, Gemston, Orion, Object Oriented Database Management System (OODBMS) and Excelon, Tamino, Sekaiju, etc. It can be implemented according to the purpose.
  • RDBMS relational database management system
  • FIG. 2 is a flowchart illustrating a method of performing a command based on context awareness according to the present embodiment.
  • the terminal 100 checks whether the movement of the specific terminal 100 is detected by comparing the movement change information sensing the movement change with a predetermined gesture (S210).
  • the terminal 100 checks whether the terminal 100 (or user) moves by using at least one sensor of an acceleration sensor, a gyro sensor, an illumination sensor, a proximity sensor, an altitude sensor, and a camera module. For example, when the user performs the shaking operation with the terminal 100, the gyro sensor included in the sensing unit 110 may generate motion change information that detects the 'shake'.
  • step S210 when the user's movement is detected using at least one sensor among the acceleration sensor, the gyro sensor, the illumination sensor, the proximity sensor, the altitude sensor, and the camera module, the terminal 100 determines whether the application is currently active Create application information (S220).
  • the terminal 100 may generate specific gesture information that recognizes the user's gesture as 'shake' by comparing the movement change information with a predetermined gesture. .
  • the terminal 100 compares the displacement information included in the motion change information with a pattern previously stored in the pattern storage unit 132 to extract a matching pattern (eg, ' ⁇ ') having the highest change rate with the motion change information.
  • the shaking information corresponding to the matching pattern is recognized as specific gesture information.
  • the terminal 100 may extract all of a plurality of applications (or a plurality of functions) that are currently active.
  • the terminal 100 controls each preset command corresponding to specific gesture information to be executed for each activation application (S230).
  • the terminal 100 extracts a preset command corresponding to specific gesture information for each active application from the database 160 that stores a command matching a pattern for a plurality of applications, and then extracts the extracted command from the corresponding application.
  • the terminal 100 extracts the 'A command' corresponding to the 'shake' of the 'A application' using the database 160, so that the 'A command' is executed in the 'A application'.
  • the terminal 100 extracts the 'B command' corresponding to the 'shake' of the 'B application' using the database 160, so that the 'B command' is executed in the 'B application'.
  • the terminal 100 extracts a 'C command' corresponding to a 'shake' of the 'C application' using the database 160, so that the 'C command' is executed in the 'C application'.
  • the terminal 100 recognizes a gesture of a user based on various sensors mounted thereon, and converts the same gesture to a specific command based on a context according to an application while the user is using the same gesture. Can be done.
  • a gesture of shaking is further described with reference to step S230.
  • the terminal 100 automatically plays the next song or a randomly selected next song when a gesture of shaking is recognized while playing music content using the music playing application (A application). Command). Thereafter, the terminal 100 executes a command (A command) for automatically playing the next song or a randomly selected next song in the music playing application (A application).
  • the terminal 100 generates a command (B command) to automatically receive a call when a gesture of shaking is recognized while the incoming call is ringing using a voice call application (B application).
  • the terminal 100 then executes a command (B command) for automatically receiving a call in the voice call application (B application).
  • the terminal 100 generates a command (C command) to automatically output the next imager when a gesture of shaking is recognized while outputting an image using an image output application (C application).
  • the terminal 100 then executes a command (C command) for automatically outputting the next imager in the image output application (C application).
  • the terminal 100 generates a command (D command) to perform a 'back' function when a gesture of shaking is recognized during web surfing using a web surfing application (D application). Thereafter, the terminal 100 executes a command (D command) for performing a 'back' function in the web surfing application (D application).
  • the terminal 100 switches to 'Pause' in the playing state or plays the 'play' in the pause state. Create a command (E command) that causes the function to switch to (Play) '. Thereafter, the terminal 100 executes a command (E command) for performing a function of switching from the playback state to the 'pause' or from the pause state to 'play' in the video playback application (E application).
  • the terminal 100 controls the most frequently used application (or a specific function) to be executed or a preset application (or when there is no other application in use or in a standby state, based on recent application (or specific function) usage. Specific functions) to be executed.
  • the user can perform various functions with only one hand operation, and thus the usability for the large screen size is increased, and various functions are automatically changed according to the situation with only one simple and simple operation. Operation, thereby providing user convenience that makes the user operation more convenient.
  • steps S210 to S230 are described as being sequentially executed, but are not necessarily limited thereto. Since the steps described in FIG. 2 may be applied by changing the execution or one or more steps in parallel, FIG. 2 is not limited to the time series order.
  • the context-aware instruction execution method according to the present embodiment described in FIG. 2 may be implemented in a program and recorded in a computer-readable recording medium.
  • the computer-readable recording medium having recorded thereon a program for implementing the context-aware instruction execution method according to the present embodiment includes all kinds of recording devices storing data that can be read by a computer system.
  • FIG. 3 is a flowchart illustrating an operation on an event generated from a sensing unit according to an exemplary embodiment.
  • the terminal 100 receives a sensing signal from the sensing unit 110 (S310).
  • the terminal 100 receives a sensing signal from at least one sensor among an acceleration sensor, a gyro sensor, an illumination sensor, a proximity sensor, an altitude sensor, and a camera module.
  • the terminal OS framework of the terminal 100 generates movement change information that senses a user's movement change based on a sensing signal received from the sensing unit 110.
  • the sensor manager of the terminal 100 generates specific gesture information by comparing the movement change information with a predetermined gesture (S330).
  • the terminal 100 compares the displacement information included in the movement change information with a pattern previously stored in the pattern storage unit 132, extracts a matching pattern having the highest change rate with the movement change information, and corresponds to the matching pattern. Recognize information as specific gesture information.
  • the gesture pattern may be one of ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ', ' ⁇ ' and the like. have.
  • the terminal 100 detects specific gesture information based on the displacement of the sensing signal and the delta ( ⁇ ) pattern (prestored pattern) by the terminal OS framework (S332).
  • the terminal 100 checks whether the currently executed application information is being executed by multitasking (S334). As a result of checking in step S334, when the application information currently executed is being executed by multitasking, the terminal 100 checks all the application information executed by multitasking (S336). In step S336, the terminal 100 determines all of the plurality of applications currently in the active state.
  • the terminal 100 is a multi-tasking application currently running 'music playback application (A application)', 'voice call application (B application)', 'image output application (C application)', 'web surfing application ( D application), 'video playback application (E application)'.
  • a application 'music playback application
  • B application 'voice call application
  • C application 'image output application
  • D application 'web surfing application
  • E application 'video playback application
  • the terminal 100 generates a command according to the context of specific gesture information for each application (S338). For example, when a gesture of shaking is recognized while playing music content using the music playing application (Application A), the terminal 100 automatically plays the next song or a randomly selected next song. Create (A command). At the same time, the terminal 100 generates a command (B command) to automatically receive a call when a gesture of shaking is recognized while the incoming call is ringing using the voice call application (B application). At the same time, the terminal 100 generates a command (C command) to automatically output the next imager when a gesture of shaking is recognized while outputting an image using an image output application (C application). .
  • the terminal 100 generates a command (D command) to perform a 'back' function when a gesture of shaking is recognized during web surfing using a web surfing application (D application).
  • D command a command
  • E application the terminal 100 switches to 'Pause' in the playing state or 'in pause'.
  • E command Generate a command (E command) that causes the function to switch to 'Play'.
  • step S3308 the terminal 100 simultaneously generates a command corresponding to specific gesture information for each of a plurality of applications, and means parallel processing of information according to the plurality of applications.
  • the terminal 100 transmits a command to each application (S340). For example, the terminal 100 transmits a command (A command) to automatically play the next song or a randomly selected next song in the music playing application (A application). At the same time, the terminal 100 transmits a command (B command) to automatically receive a call in the voice call application (B application). At the same time, the terminal 100 transmits a command (C command) to automatically output the next imager in the image output application (C application). At the same time, the terminal 100 transmits a command (D command) to perform a 'back' function in the web surfing application (D application). At the same time, the terminal 100 transmits a command (E command) for performing a function of switching from the playback state to 'pause' or from the pause state to 'play' in the video playback application (E application).
  • a command to automatically play the next song or a randomly selected next song in the music playing application
  • B command transmits a command (B command) to automatically receive a call in the voice call application (
  • the terminal 100 is a 'music playback application (A application)', 'voice call application (B application)', 'image output application (C application)', 'web surfing application (D application)', 'video playback application
  • a application 'music playback application
  • B application 'voice call application
  • C application image output application
  • D application 'web surfing application
  • 'video playback application In order to automatically play the next or randomly selected next song (A command), to automatically receive a call (B command), to automatically output the next image Command (C command) ',' go back 'function (D command)', 'to switch to' play 'from pause or' to play '
  • step S340 allowing the terminal 100 to simultaneously execute a command for each of a plurality of applications means that a plurality of action informations are executed in parallel.
  • step S334 if the currently executed application information is not being executed by multitasking, the terminal 100 determines the foreground application in the currently activated state (S342). In step S342, the terminal 100 determines a single application currently in an active state. For example, the terminal 100 checks if the current single application is a 'music playing application (A application)'.
  • a application 'music playing application
  • the terminal 100 generates action information suitable for the context of specific gesture information in the application (S344). For example, when a gesture of shaking is recognized while playing music content using the music playing application (Application A), the terminal 100 automatically plays the next song or a randomly selected next song. Create (A command).
  • the terminal 100 transmits a command to the corresponding application (S346). For example, the terminal 100 transmits a command (A command) to automatically play the next song or a randomly selected next song in the music playing application (A application). Thereafter, the terminal 100 executes a command (A command) to automatically play the next song or a randomly selected next song in the 'music playing application (A application)' and 'voice call application (B application)'. .
  • steps S310 to S346 are sequentially executed, but the present disclosure is not limited thereto. 3 is not limited to time-series order, as it would be applicable to changing the steps described in FIG. 3 or executing one or more steps in parallel.
  • the operation of the event generated from the sensing unit according to the present embodiment described in FIG. 3 may be implemented in a program and recorded in a computer-readable recording medium.
  • a computer-readable recording medium having recorded thereon a program for implementing an operation on an event generated from a sensing unit according to the present embodiment includes all kinds of recording devices storing data that can be read by a computer system.
  • FIG. 4 is a diagram illustrating the structure of a sensor manager module according to the present embodiment.
  • the terminal 100 includes 'terminal application and service', 'sensor manager', 'firmware and driver' and 'sensor hardware'.
  • the sensor manager uses a sensor manager library including a context manager, an application / function detector, and a gesture detector.
  • the motion change information is generated by sensing the motion change
  • the specific motion information is generated by comparing the motion change information with a predetermined gesture.
  • the sensor manager generates activation application information for determining an application in a currently activated state and executes a predetermined command corresponding to specific gesture information for each activation application.
  • the terminal OS sensor framework delivers specific gesture information based on motion change information to the sensor manager library, and the sensor manager library delivers commands to the application.
  • the sensing unit 110 of the terminal 100 basically includes an acceleration sensor, a gyro sensor, an illumination sensor, a proximity sensor, a camera module, an altitude sensor, and the like.
  • an acceleration sensor e.g., a Bosch Sensortec BMA150 accelerometer
  • a gyro sensor e.g., a Bosch Sensortec BMA150 accelerometer
  • the sensing unit 110 does not determine the user's movement (gesture) by merely changing the value measured by the sensor in order to detect the user's movement (gesture) called 'shake', but uses a change pattern of the value. It accurately detects the user's movement (gesture) by intentionally shaking the user. Due to the above-described operation, the sensing unit 110 may prevent a malfunction due to a similar operation such as when the user's movement slightly moves.
  • the sensing unit 110 When the sensing unit 110 recognizes only a user's motion (shake), the sensor unit 110 transmits a corresponding signal to a processor.
  • the processor learns a specific displacement value of the corresponding operation by using a sensor framework of the terminal OS (eg, Android).
  • a sensor framework of the terminal OS eg, Android
  • the sensor manager When the sensor manager receives an event generated by the sensing unit 110, the user finds out which application is currently in use, and according to the found application, the sensor manager performs a function according to the user's movement (gesture).
  • the command event is sent to the application, and the application receives the command event and performs the corresponding function.
  • the context manager when the application / function detection unit recognizes a gesture of shaking by the gesture detection unit while playing music content using a music reproduction application (A application), the context manager automatically detects the gesture. Generates a command (A command) to play the next song or a randomly selected next song. After that, the context manager executes a command (A command) to automatically play the next song or a randomly selected next song in the music playing application (A application).
  • 'Application / Function Detection Unit' uses the voice call application (B application) when the incoming call is ringing and the gesture detection unit recognizes 'shake' due to the 'Gesture Detection Unit'. Generate a command (B command) to be received. The context manager then executes a command (B command) to automatically receive a call in the voice call application (B application).
  • the context manager When the application / function detection unit detects a gesture of shaking by the gesture detection unit while outputting an image using an image output application (C application), the context manager automatically detects the next image. Create a command (C command) that causes The context manager then executes a command (C command) that causes the next imager to be automatically output from the image output application (C application).
  • D application uses the web surfing application (D application) when the 'shake' gesture is recognized by the 'Gesture Detection Unit' during web surfing. Create a command (D command) to be executed. The context manager then executes a command (D command) that causes the 'back' function to be performed in the web surfing application (D application).
  • D application web surfing application
  • the context manager When the application / function detector detects a gesture of shaking due to the gesture detector during video viewing using the video playback application (E application), the context manager pauses in the playback state. Generate a command (E command) to perform a function of switching to 'or from pause' to 'play'. Thereafter, the context manager executes a command (E command) for performing a function of switching from the playback state to the 'pause' or from the pause state to 'play' in the video playback application (E application).
  • the 'sensor manager' implemented in software determines the user's movement (gesture) using the change pattern of the signal value generated from the sensing unit 110, and the user's movement ( Gestures are converted into function execution commands.
  • the sensor manager may be a module (eg, the sensing unit 110) that determines a user's movement (gesture) using a change pattern of the sensor data value, and a module (eg, the application controller 140) to determine what application is currently being used. )), And a module (for example, the execution unit 150) that converts the function execution command according to the user's movement (gesture) according to the situation and delivers the function execution command according to the situation.
  • a module eg, the sensing unit 110
  • a module eg, the application controller 140
  • the present embodiment is a useful invention in which a situation-based command is applied to a field of execution, thereby generating an effect of providing a gesture UI for automatically performing various functions according to a situation.
  • terminal 110 sensing unit

Abstract

상황 인지 기반의 명령 수행 방법 및 장치를 개시한다. 단말기에 포함된 센서를 기반으로 제스처를 인식하고, 활성화된 애플리케이션 별로 해당 제스처에 대응되는 명령이 동시에 수행되도록 하여 상황에 따른 다양한 기능이 자동으로 수행되도록 하는 제스처 UI를 제공하는 상황 인지 기반의 명령 수행 방법 및 장치를 제공한다.

Description

상황 인지 기반의 명령 수행 방법 및 장치
본 실시예는 상황 인지 기반의 명령 수행 방법 및 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근 들어, 컴퓨터, 전자, 통신 기술이 비약적으로 발전함에 따라 다양한 전자 디바이스들이 제공되고 있다. 전자 디바이스 내에 다양한 애플리케이션을 제어하기 위한 일반적인 입력방식으로는 터치 스크린(패널), 키패드 등과 같은 물리적인 입력 수단을 조작자가 직접 조작하여 디스플레이 유닛에 표시되는 화면을 조작하는 방식이 있다. 입력방식과 더불어 사용자 움직임을 인식하는 입력 방식도 꾸준히 연구되고 있다.
사용자 움직임을 인식하는 장치는 조작자의 움직임을 입력으로 인식하는 장치를 의미한다. 하지만, 움직임을 인식하는 일부 애플리케이션에서는 특정 제스처에 특정 기능만이 수행되는 UI(User Interface)를 제공하고 있다. 하지만, 특정 제스처에 특정 기능만이 수행되는 UI는 해당 애플리케이션에서만 동작하는 방식으로, 복수의 애플리케이션 각각 마다 일관성있는 동작을 수행하지 않기 때문에 사용자 편의성이 떨어지는 문제가 있다.
본 실시예는 단말기에 포함된 센서를 기반으로 제스처를 인식하고, 활성화된 애플리케이션 별로 해당 제스처에 대응되는 명령이 동시에 수행되도록 하여 상황에 따른 다양한 기능이 자동으로 수행되도록 하는 제스처 UI를 제공하는 상황 인지 기반의 명령 수행 방법 및 장치를 제공하는 데 주된 목적이 있다.
본 실시예의 일 측면에 의하면, 단말기의 움직임 변화 정보를 생성하는 센싱부; 상기 움직임 변화 정보와 기 지정된 제스처(Gesture)를 비교하여 특정 제스처 정보를 생성하는 제스처 판별부; 현재 활성화 상태의 활성화 애플리케이션을 판단하는 애플리케이션 제어부; 및 상기 활성화 애플리케이션 별로 상기 특정 제스처 정보에 대응하는 기 설정된 명령이 실행되도록 하는 실행부를 포함하는 것을 특징으로 하는 단말기를 제공한다.
또한, 본 실시에의 다른 측면에 의하면, 데이터 처리 기기에 단말기의 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성하는 제스처 판별 과정; 현재 활성화 상태의 활성화 애플리케이션을 판단하는 애플리케이션 확인 과정; 및 상기 활성화 애플리케이션 별로 상기 특정 제스처 정보에 대응하는 기 설정된 명령이 실행되도록 하는 실행 과정을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 단말기에 포함된 센서를 기반으로 제스처를 인식하고, 활성화된 애플리케이션 별로 해당 제스처에 대응되는 명령이 동시에 수행되도록 하여 상황에 따른 다양한 기능이 자동으로 수행되도록 하는 제스처 UI를 제공하는 효과가 있다.
본 실시예에 의하면, 단말기의 사용자의 움직임에 기반하여 하나의 애플리케이션만을 제어하는 것이 아니라, 단말기 내에서 현재 활성화된 하나 이상의 애플리케이션을 특정한 사용자의 움직임에 따라 기 지정된 명령이 동시에 각각 수행되도록 하는 효과가 있다.
본 실시예에 의하면, 단말기의 전체적인 UI 관점에서, 동일한 제스처를 사용자가 현재 활성화 상태인 애플리케이션의 명령으로 변환하여 실행하도록 제어해줌으로써 단순한 제스처 한 두 가지만으로도 다양한 기능이 복수의 애플리케이션 각각마다 수행될 수 있어, 사용자 편의성이 증대되는 효과가 있다.
본 실시예에 의하면, 단말기의 화면 사이즈가 커서 한 손으로 조작하기가 어려운 경우 제스처 UI를 이용하여 한 손으로도 단말기를 원활하게 제어할 수 있는 효과가 있다. 다시 말해, 한 손 제어로 인해 다양한 기능을 손쉽게 수행할 수 있으므로 화면 사이즈가 큰 제품에 대한 사용 편의성이 증대되며, 쉽고 단순한 동작 하나만으로 상황에 따른 다양한 기능이 동작될 수 있도록 하는 편의성을 제공하는 효과가 있다.
본 실시예에 의하면, 특정한 사용자의 움직임(제스처) 하나를 사용자의 상황에 따라, 다양한 명령으로 변환하여 수행되도록 할 수 있으며, 사용자 입장에서 많은 제스처를 기억하지 않아도 되는 효과가 있다.
도 1은 본 실시예에 따른 상황 인지 기반의 명령을 수행하기 위한 단말기를 개략적으로 나타낸 블럭 구성도이다.
도 2는 본 실시예에 따른 상황 인지 기반의 명령 수행 방법을 설명하기 위한 순서도이다.
도 3은 본 실시예에 따른 센싱부로부터 발생한 이벤트에 대한 동작을 설명하기 위한 순서도이다.
도 4는 본 실시예에 따른 센서 매니저 모듈의 구조를 나타낸 도면이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 실시예에 따른 상황 인지 기반의 명령을 수행하기 위한 단말기를 개략적으로 나타낸 블럭 구성도이다.
본 실시예에 따른 상황 인지 기반의 명령을 수행하기 위한 단말기(100)는 센싱부(110) 및 상황 인지부(120)를 포함한다. 단말기(100)에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
본 실시예에 따른 단말기(100)는 개인용 컴퓨터(PC: Personal Computer), 랩톱(Laptop), 테블렛(Tablet), 개인 휴대 단말기(PDA: Personal Digital Assistant), 게임 콘솔, 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 미디어 플레이어 등과 같은 장치를 의미한다.
본 실시예에 따른 단말기(100)는 (Ⅰ) 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, (Ⅱ) 각종 기능을 수행하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, (Ⅲ) 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다. 또한, 적어도 일 실시예에 따르면, 메모리는 램(Random Access Memory: RAM), 롬(Read Only Memory: ROM), 플래시 메모리, 광 디스크, 자기 디스크, 솔리드 스테이트 디스크(Solid State Disk: SSD) 등의 컴퓨터로 판독 가능한 기록/저장매체일 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 명세서에 기재된 동작과 기능을 하나 이상 선택적으로 수행하도록 하는 프로그램이 될 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 전체 또는 부분적으로 특정한 구성의 주문형반도체(Application Specific Integrated Circuit: ASIC) 등의 하드웨어로써 구현될 수 있다.
본 실시예에 따른 단말기(100)는 제스처 UI 애플리케이션인 '센서 매니저'를 탑재하여 제스처를 인식하고 상황에 따른 명령이 해당 애플리케이션으로 전달되어 실행되도록 제어한다. '센서 매니저'란 센서 기반으로 제스처를 인식하기 위한 UI 애플리케이션을 의미한다. 다시 말해 '센서 매니저'는 소프트웨어적인 일종의 모듈을 의미한다.
이하, 센서 매니저가 단말기(100)에 탑재되는 방식에 대해 설명한다. 단말기(100)가 스마트 폰인 경우, 센서 매니저는 애플리케이션 제공 장치로부터 다운로드 방식으로 단말기(100)에 인스톨될 수 있다. 단말기(100)가 피쳐 폰(Feature Phone)인 경우 센서 매니저는 통신사 서버로부터 다운로드된 VM(Virtual Machine) 상에서 구동될 수 있다.
단말기(100)는 센서 매니저를 임베디드(Embedded) 형태로 탑재한 상태로 구현되거나, 단말기(100) 내에 탑재되는 OS(Operating System)에 임베디드 형태로 탑재되거나, 사용자의 조작 또는 명령에 의해 단말기(100) 내의 OS에 인스톨되는 형태로 탑재할 수 있다. 전술한 방식으로 단말기(100)에 탑재된 센서 매니저는 단말기(100)에 탑재된 기본 애플리케이션(예컨대, 음성 통화 애플리케이션, 알람 애플리케이션, 문자(SMS/MMS) 애플리케이션, 음악 재생 애플리케이션, 이미지 출력 애플리케이션, 웹 서핑 애플리케이션, 영상 재생 애플리케이션 등)과 연동하도록 구현될 수 있으나 반드시 이에 한정되는 것은 아니며, 기본 애플리케이션과 연동없이 독립적인 기능으로 운용될 수 있다.
이하, 단말기(100)가 탑재된 센서 매니저를 이용하여 제스처 UI를 제공하는 과정에 대해 설명한다. 단말기(100)는 사용자의 모션(Motion) 변화를 센싱한 움직임 변화 정보를 생성하고, 움직임 변화 정보와 기 지정된 제스처(Gesture)를 비교하여 특정 제스처 정보를 생성한다. 이후 단말기(100)는 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성하고, 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 동시에 각각 실행되도록 한다.
이하, 센서 매니저의 구동 방식에 대해 설명한다. 센서 매니저는 단말기(100)가 수행하는 별도의 소프트웨어적 기능 또는 하드웨어적 기능을 구비한 형태로 독립적으로 운용되도록 구현되거나 단말기(100)가 수행하는 별도의 소프트웨어적 기능 또는 하드웨어적 기능과 연동하는 형태로 구현될 수 있다. 센서 매니저는 단말기(100)에 탑재되어, 단말기(100)에 구비된 각종 하드웨어를 이용하여 동작하는 것이 바람직하나 반드시 이에 한정되는 것은 아니며, 별도의 장치로 구현되어 동작될 수 있다. 또한, 센서 매니저는 단말기(100) 내에 기 설치된 애플리케이션들과 연동하여 동작할 수 있다.
이하, 센서 매니저가 수행하는 동작에 대해 설명한다. 센서 매니저는 단말기(100) 내에 설치되어, 단말기(100)가 사용자의 모션 변화를 센싱한 움직임 변화 정보를 생성하도록 하고, 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성하도록 한다. 이후 센서 매니저는 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성하도록 하고, 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 동시에 각각 실행되도록 한다.
이하 단말기(100) 내에 포함된 각 구성 요소에 대해 설명한다.
센싱부(110)는 열, 빛, 온도, 압력 또는 소리 등의 물리적인 양이나 그 변화를 감지하는 복수의 센서(Sensor)를 포함한 일종의 모듈을 의미한다. 본 실시예에 따른 센싱부(110)는 단말기(100)의 움직임 변화를 센싱한 움직임 변화 정보를 생성한다. 이러한 센싱부(110)는 가속도 센서(Acceleration Sensor), 자이로 센서(Gyro Sensor), 조도 센서(Illumination Sensor), 근접 센서(Proximity Sensor), 고도 센서(Altitude Sensor), 카메라(Camera) 모듈 등을 포함한다. 근접 센서는 '자기형 센서', '자기 포화형 센서', '고주파 발진형 근접 스위치', '차동 코일형', '정전 용량형 센서' 등이 포함될 수 있다. 이러한, 센싱부(110)는 '센서 매니저'에 포함되는 하나의 모듈로 구현될 수 있으나 반드시 이에 한정되는 것은 아니며 '센서 매니저'와 별도의 모듈로 구현될 수 있다.
상황 인지부(120)는 센싱부(110)로부터 수신된 움직임 변화 정보와 기 저장된 제스처를 비교하여 특정 제스처 정보를 생성하고, 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성한다. 이후 상황 인지부(120)는 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 동시에 각각 실행되도록 한다. 상황 인지부(120)는 제스처 판별부(130), 애플리케이션 제어부(140), 실행부(150) 및 데이터베이스(160)를 포함한다. 상황 인지부(120)에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
제스처 판별부(130)는 센싱부(110)로부터 수신한 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성한다. 특정 제스처 정보 생성 과정을 보다 구체적으로 설명하자면, 제스처 판별부(130)는 움직임 변화 정보에 포함된 변위 정보와 패턴 저장부(132)에 기 저장된 패턴을 비교하여 움직임 변화 정보와 최고 매칭율을 갖는 매칭 패턴을 추출하고, 매칭 패턴에 대응하는 정보를 특정 제스처 정보로 인식한다.
제스처 판별부(130)는 패턴 저장부(132), 센싱 처리부(134) 및 제스처 인식부(136)를 포함한다. 제스처 판별부(130)에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다. 패턴 저장부(132)는 기 저장된 패턴을 저장한다. 다시 말해, 패턴 저장부(132)는 적어도 하나의 사용자 제스처 패턴을 저장한다. 사용자 제스처 패턴의 시작점에서 종료점까지 2차원 또는 3차원 방향과 꺽임의 종류, 회전 방향에 따라 다양한 패턴들이 나타날 수 있다. 이러한 제스처 패턴은 '↓', '↑', '↔', '←', '→', '↕', '↗', '↙', '↖', '↘' 등의 패턴 이외에 관리자에 의해서 다양한 패턴들이 정의될 수 있다. 센싱 처리부(134)는 센싱부(110)로부터 수신된 움직임 변화 정보에 포함된 센싱 좌표값을 추출한다. 제스처 인식부(136)는 좌표값으로부터 사용자 모션의 위치 변환 정보를 산출하고, 패턴 저장부(132)에 기 저장된 패턴 중 위치 변환 정보와 최고 매칭율을 갖는 매칭 패턴을 특정 제스처 정보로 인식한다.
애플리케이션 제어부(140)는 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성한다. 애플리케이션 제어부(140)는 현재 활성화 상태의 애플리케이션이 멀티태스킹(Multi-Tasking)으로 실행되고 있는지를 확인한다. 확인 결과, 현재 활성화 상태의 애플리케이션이 멀티태스킹으로 실행되고 있는 경우, 애플리케이션 제어부(140)는 멀티태스킹 정보를 포함한 활성화 애플리케이션 정보를 생성한다. 확인 결과, 현재 활성화 상태의 애플리케이션이 멀티태스킹이 미실행되고 있는 경우, 애플리케이션 제어부(140)는 포어그라운드(Foreground) 정보를 포함한 활성화 애플리케이션 정보를 생성한다. 여기서, 포어그라운드는 다중 프로그래밍에서, 한 프로세스가 다른 프로세스보다 우선권을 가지고 실행하는 일을 의미하나 본 실시예에서는 단일 애플리케이션이 구동되는 정보를 의미한다.
실행부(150)는 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 각각 실행되도록 제어한다. 다시 말해, 실행부(150)는 명령을 활성화 애플리케이션 정보에 대응하는 활성화 애플리케이션으로 전달하여 명령에 대응하는 동작이 활성화 애플리케이션에서 실행되도록 한다. 또한, 실행부(150)는 데이터베이스(160)로부터 활성화 애플리케이션 정보 및 특정 제스처 정보에 대응하는 명령을 추출한다.
실행부(150)는 활성화 애플리케이션 정보에 멀티태스킹 정보가 포함된 경우 멀티태스킹 정보 내에 포함된 적어도 두 개 이상의 애플리케이션 각각마다 특정 제스처 정보에 대응하는 컨텍스트(Context) 기반의 명령 각각이 동시에 실행되도록 한다. 또한, 실행부(150)는 활성화 애플리케이션 정보에 포어그라운드 정보가 포함된 경우 포어그라운드 정보에 대응하는 애플리케이션에 특정 제스처 정보에 대응하는 컨텍스트 기반의 명령이 실행되도록 한다.
데이터베이스(160)는 복수의 애플리케이션마다 어느 하나의 패턴과 매칭되는 명령을 저장한다. 예컨대, 데이터베이스(160)는 동일한 패턴에 대해 A 애플리케이션에 대응되는 A 명령을 매칭하여 저장하고, B 애플리케이션에 대응되는 B 명령을 매칭하여 저장하고, C 애플리케이션에 대응되는 C 명령을 매칭하여 저장한다. 또한, 데이터베이스(160)는 단말기(100)의 내부 또는 외부에 구현될 수 있다. 데이터베이스는 데이터베이스 관리 프로그램(DBMS)을 이용하여 컴퓨터 시스템의 저장공간(하드디스크 또는 메모리)에 구현된 일반적인 데이터구조를 의미한다. 데이터베이스는 데이터의 검색(추출), 삭제, 편집, 추가 등을 자유롭게 행할 수 있는 데이터 저장형태를 뜻하는 것으로, 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), 관계형 데이터베이스 관리 시스템(RDBMS: Relational Data Base Management System), 겜스톤(Gemston), 오리온(Orion), 객체 지향 데이터베이스 관리 시스템(OODBMS) 및 엑셀론(Excelon), 타미노(Tamino), 세카이주(Sekaiju) 등을 이용하여 본 실시예의 목적에 맞게 구현될 수 있다.
도 2는 본 실시예에 따른 상황 인지 기반의 명령 수행 방법을 설명하기 위한 순서도이다.
단말기(100)는 움직임 변화를 센싱한 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 단말기(100)의 움직임이 감지되는지의 여부를 확인한다(S210). 단계 S210에서 단말기(100)는 가속도 센서, 자이로 센서, 조도 센서, 근접 센서, 고도 센서, 카메라 모듈 중 적어도 하나 이상의 센서를 이용하여 단말기(100)(또는 사용자)의 움직임 여부를 확인한다. 예컨대, 사용자가 단말기(100)를 들고 흔드는 동작을 수행하는 경우 센싱부(110)에 포함된 자이로 센서가 '흔들림'을 감지한 움직임 변화 정보를 생성할 수 있다.
단계 S210에서 가속도 센서, 자이로 센서, 조도 센서, 근접 센서, 고도 센서, 카메라 모듈 중 적어도 하나 이상의 센서를 이용하여 사용자의 움직임이 감지되는 경우, 단말기(100)는 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성한다(S220). 단계 S220에서 단말기(100)는 사용자의 움직임(예컨대 '흔들림')이 감지되는 경우, 움직임 변화 정보와 기 지정된 제스처를 비교하여 사용자의 제스처를 '흔들림'으로 인식한 특정 제스처 정보를 생성할 수 있다. 다시 말해, 단말기(100)는 움직임 변화 정보에 포함된 변위 정보와 패턴 저장부(132)에 기 저장된 패턴을 비교하여 움직임 변화 정보와 최고 매칭율을 갖는 매칭 패턴(예컨대, '↕')을 추출하고, 매칭 패턴(↕)에 대응하는 흔들림 정보를 특정 제스처 정보로 인식한다. 이후, 단말기(100)는 현재 활성화 상태의 복수의 애플리케이션(또는 복수의 기능)을 모두 추출할 수 있다.
단말기(100)는 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 각각 실행되도록 제어한다(S230). 다시 말해, 단말기(100)는 복수의 애플리케이션마다 어느 하나의 패턴과 매칭되는 명령을 저장하는 데이터베이스(160)로부터 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령을 추출한 후 추출된 명령이 해당 애플리케이션에서 실행되도록 한다. 예컨대, 단말기(100)는 데이터베이스(160)를 이용하여 'A 애플리케이션'에 '흔들림(↕)'에 대응하는 'A 명령'을 추출하여, 'A 명령'이 'A 애플리케이션'에서 실행되도록 한다. 또한, 단말기(100)는 데이터베이스(160)를 이용하여 'B 애플리케이션'에 '흔들림(↕)'에 대응하는 'B 명령'을 추출하여, 'B 명령'이 'B 애플리케이션'에서 실행되도록 한다. 또한, 단말기(100)는 데이터베이스(160)를 이용하여 'C 애플리케이션'에 '흔들림(↕)'에 대응하는 'C 명령'을 추출하여, 'C 명령'이 'C 애플리케이션'에서 실행되도록 한다.
도 2를 기준으로 설명하자면, 단말기(100)는 탑재된 다양한 센서를 기반으로, 사용자의 제스처를 인식하고, 이를 기반으로 동일한 제스처에 대해서, 사용자가 사용 중에 애플리케이션에 따른 컨텍스트 기반의 구체적인 명령으로 변환하여 수행할 수 있다.
예컨대, '흔들다'라는 제스처(↕)를 단계 S230을 기준으로 추가 설명한다.
①. 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)을 이용하여 음악 컨텐츠를 재생하는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 생성한다. 이후 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)에서 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)이 실행되도록 한다.
②. 단말기(100)는 음성 통화 애플리케이션(B 애플리케이션)을 이용하여 착신 전화벨이 울리는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 전화가 수신되도록 하는 명령(B 명령)을 생성한다. 이후 단말기(100)는 음성 통화 애플리케이션(B 애플리케이션)에서 자동으로 전화가 수신되도록 하는 명령(B 명령)이 실행되도록 한다.
③. 단말기(100)는 이미지 출력 애플리케이션(C 애플리케이션)을 이용하여 이미지를 출력하는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)을 생성한다. 이후 단말기(100)는 이미지 출력 애플리케이션(C 애플리케이션)에서 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)이 실행되도록 한다.
④. 단말기(100)는 웹 서핑 애플리케이션(D 애플리케이션)을 이용하여 웹 서핑 중 '흔들다'라는 제스처(↕)가 인식되는 경우, '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)을 생성한다. 이후 단말기(100)는 웹 서핑 애플리케이션(D 애플리케이션)에서 '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)이 실행되도록 한다.
⑤. 단말기(100)는 영상 재생 애플리케이션(E 애플리케이션)을 이용하여 비디오 감상 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 재생 상태에서 '일시 정지(Pause)'로 전환 또는 일시 정지 상태에서 '재생(Play)'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)을 생성한다. 이후 단말기(100)는 영상 재생 애플리케이션(E 애플리케이션)에서 재생 상태에서 '일시 정지'로 전환 또는 일시 정지 상태에서 '재생'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)이 실행되도록 한다.
⑥. 단말기(100)는 그 외 이용중인 애플리케이션이 없는 경우 또는 대기 상태인 경우 최근 애플리케이션(또는 특정 기능) 사용량에 근거하여 가장 사용빈도가 높은 애플리케이션(또는 특정 기능)이 실행되도록 제어하거나 기 설정된 애플리케이션(또는 특정 기능)이 실행되도록 제어한다.
전술한 ① 내지 ⑥의 동작으로 인해 사용자는 한 손의 조작만으로도 다양한 기능을 수행할 수 있어, 화면 사이즈가 큰 단말기에 대한 사용 편의성이 증대되며, 쉽고 단순한 동작 하나만으로 상황에 따라 다양한 기능이 자동으로 동작하므로, 사용자 조작이 보다 편리해지도록 하는 사용자 편의성을 제공한다.
도 2에서는 단계 S210 내지 단계 S230을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 도 2에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 2는 시계열적인 순서로 한정되는 것은 아니다.
전술한 바와 같이 도 2에 기재된 본 실시예에 따른 상황 인지 기반의 명령 수행 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 상황 인지 기반의 명령 수행 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
도 3은 본 실시예에 따른 센싱부로부터 발생한 이벤트에 대한 동작을 설명하기 위한 순서도이다.
단말기(100)는 센싱부(110)로부터 센싱 신호를 입력받는다(S310). 단계 S310에서 단말기(100)는 가속도 센서, 자이로 센서, 조도 센서, 근접 센서, 고도 센서, 카메라 모듈 중 적어도 하나 이상의 센서로부터 센싱 신호를 입력받는다.
단말기(100)의 단말 OS 프레임워크에서 센싱부(110)로부터 수신된 센싱 신호를 근거로 사용자의 움직임 변화를 센싱한 움직임 변화 정보를 생성한다(S320). 단말기(100)의 센서 매니저에서 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성한다(S330). 단계 S330에서 단말기(100)는 움직임 변화 정보에 포함된 변위 정보와 패턴 저장부(132)에 기 저장된 패턴을 비교하여 움직임 변화 정보와 최고 매칭율을 갖는 매칭 패턴을 추출하고, 매칭 패턴에 대응하는 정보를 특정 제스처 정보로 인식한다. 예컨대, 제스처 패턴은 '↓', '↑', '↔', '←', '→', '↕', '↗', '↙', '↖', '↘' 등 중 하나가 될 수 있다.
이하, S330에 대해 보다 구체적으로 설명하도록 한다.
단말기(100)는 단말 OS 프레임워크로 센싱 신호의 변위와 델타(Δ) 패턴(기 저장된 패턴)에 근거하여 특정 제스처 정보를 검출한다(S332). 단말기(100)는 현재 실행되는 애플리케이션 정보가 멀티태스킹으로 실행 중인지의 여부를 확인한다(S334). 단계 S334의 확인 결과, 현재 실행되는 애플리케이션 정보가 멀티태스킹으로 실행 중인 경우, 단말기(100)는 멀티태스킹으로 실행되는 애플리케이션 정보를 모두 확인한다(S336). 단계 S336에서 단말기(100)는 현재 활성화 상태의 복수의 애플리케이션을 모두 파악한다. 예컨대, 단말기(100)는 멀티태스킹으로 현재 실행되는 애플리케이션이 '음악 재생 애플리케이션(A 애플리케이션)', '음성 통화 애플리케이션(B 애플리케이션)', '이미지 출력 애플리케이션(C 애플리케이션)', '웹 서핑 애플리케이션(D 애플리케이션)', '영상 재생 애플리케이션(E 애플리케이션)'인 경우 이를 모두 확인하는 것이다.
단말기(100)는 애플리케이션 별로 특정 제스처 정보의 컨텍스트에 따른 명령을 생성한다(S338). 예컨대, 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)을 이용하여 음악 컨텐츠를 재생하는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 생성한다. 동시에 단말기(100)는 음성 통화 애플리케이션(B 애플리케이션)을 이용하여 착신 전화벨이 울리는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 전화가 수신되도록 하는 명령(B 명령)을 생성한다. 동시에 단말기(100)는 이미지 출력 애플리케이션(C 애플리케이션)을 이용하여 이미지를 출력하는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)을 생성한다. 동시에 단말기(100)는 웹 서핑 애플리케이션(D 애플리케이션)을 이용하여 웹 서핑 중 '흔들다'라는 제스처(↕)가 인식되는 경우, '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)을 생성한다. 동시에 단말기(100)는 영상 재생 애플리케이션(E 애플리케이션)을 이용하여 비디오 감상 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 재생 상태에서 '일시 정지(Pause)'로 전환 또는 일시 정지 상태에서 '재생(Play)'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)을 생성한다.
단계 S338에서 단말기(100)는 복수의 애플리케이션 마다 특정 제스처 정보에 대응하는 명령을 동시에 생성하는 것은 복수의 애플리케이션에 따른 정보를 병렬(Parallel) 처리하는 것을 의미한다.
단말기(100)는 각 애플리케이션에 명령을 각각 전달한다(S340). 예컨대, 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)에서 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 전달한다. 동시에 단말기(100)는 음성 통화 애플리케이션(B 애플리케이션)에서 자동으로 전화가 수신되도록 하는 명령(B 명령)을 전달한다. 동시에 단말기(100)는 이미지 출력 애플리케이션(C 애플리케이션)에서 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)을 전달한다. 동시에 단말기(100)는 웹 서핑 애플리케이션(D 애플리케이션)에서 '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)을 전달한다. 동시에 단말기(100)는 영상 재생 애플리케이션(E 애플리케이션)에서 재생 상태에서 '일시 정지'로 전환 또는 일시 정지 상태에서 '재생'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)을 전달한다.
이후 단말기(100)는 '음악 재생 애플리케이션(A 애플리케이션)', '음성 통화 애플리케이션(B 애플리케이션)', '이미지 출력 애플리케이션(C 애플리케이션)', '웹 서핑 애플리케이션(D 애플리케이션)', '영상 재생 애플리케이션(E 애플리케이션)'에서 '자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)', '자동으로 전화가 수신되도록 하는 명령(B 명령)', '자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)', ''뒤로가기' 기능이 수행되도록 하는 명령(D 명령)', ' 재생 상태에서 '일시 정지'로 전환 또는 일시 정지 상태에서 '재생'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)' 각각이 동시에 실행되도록 한다.
단계 S340에서 단말기(100)는 복수의 애플리케이션 마다 명령을 동시에 실행되도록 하는 것은 복수의 액션 정보가 병렬적으로 실행되는 것을 의미한다.
한편, 단계 S334의 확인 결과, 현재 실행되는 애플리케이션 정보가 멀티태스킹으로 실행 중이 아닌 경우, 단말기(100)는 현재 활성화 상태의 포어그라운드 애플리케이션 파악한다(S342). 단계 S342에서 단말기(100)는 현재 활성화 상태의 단일 애플리케이션을 파악한다. 예컨대, 단말기(100)는 현재 단일로 실행되는 애플리케이션이 '음악 재생 애플리케이션(A 애플리케이션)'인 경우 이를 확인하는 것이다.
단말기(100)는 애플리케이션에 특정 제스처 정보의 컨텍스트에 맞는 액션 정보를 생성한다(S344). 예컨대, 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)을 이용하여 음악 컨텐츠를 재생하는 중 '흔들다'라는 제스처(↕)가 인식되는 경우, 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 생성한다.
단말기(100)는 해당 애플리케이션에 명령을 전달한다(S346). 예컨대, 단말기(100)는 음악 재생 애플리케이션(A 애플리케이션)에서 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 전달한다. 이후 단말기(100)는 '음악 재생 애플리케이션(A 애플리케이션)', '음성 통화 애플리케이션(B 애플리케이션)'에서 '자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)'이 실행되도록 한다.
도 3에서는 단계 S310 내지 단계 S346을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 도 3에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.
전술한 바와 같이 도 3에 기재된 본 실시예에 따른 센싱부로부터 발생한 이벤트에 대한 동작은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 센싱부로부터 발생한 이벤트에 대한 동작을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
도 4는 본 실시예에 따른 센서 매니저 모듈의 구조를 나타낸 도면이다.
단말기(100)는 '단말기 애플리케이션 및 서비스', '센서 매니저', '펌웨어 및 드라이버' 및 '센서 하드웨어'를 포함한다. 도 4에 도시된 바와 같이, '센서 매니저'는 '센서 이벤트'가 감지되는 경우, '컨텍스트 매니저', '애플리케이션/기능 검출부', '제스처 검출부'을 포함하는 '센서 매니저 라이브러리'를 이용하여 사용자의 모션 변화를 센싱한 움직임 변화 정보를 생성하고, 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성한다. '센서 매니저'는 현재 활성화 상태의 애플리케이션을 판별한 활성화 애플리케이션 정보를 생성하고, 활성화 애플리케이션 별로 특정 제스처 정보에 대응하는 기 설정된 명령이 각각 실행되도록 한다.
'단말 OS 센서 프레임 워크'는 움직임 변화 정보를 기초로 한 특정 제스처 정보를 '센서 매니저 라이브러리'로 전달하고, '센서 매니저 라이브러리'는 '애플리케이션'으로 명령을 전달한다.
단말기(100)의 센싱부(110)에는 기본적으로 가속도 센서, 자이로 센서, 조도 센서, 근접 센서, 카메라 모듈, 고도 센서 등이 포함되어 있다. 센싱부(110)에 포함된 센서들을 이용하면, 사용자의 움직임을 감지할 수 있다. 단, 사용자의 움직임(제스처)은 단말기(100)의 화면에 보여지는 종류의 UI가 아니므로, 사용자의 움직임(제스처)의 종류가 많아지면, 사용자들은 오히려 어려움을 겪게 될 수 있다.
특정 사용자의 움직임(제스처) 하나를 사용자의 상황에 따라, 다양한 명령으로 변환되어 수행되도록 하는 것에 초점을 맞추고 있으며, 사용자는 많은 사용자의 움직임(제스처)를 기억하지 않아도 되므로, 일관성과 편의성 측면의 장점을 가지게 된다.
예를 들어서, 이하, '흔든다'라는 사용자의 움직임(제스처)를 가정하여 설명한다. 먼저, 센싱부(110)는 '흔든다'라는 사용자의 움직임(제스처)을 감지하기 위하여, 단지 센서에서 측정된 값의 변화만으로 사용자의 움직임(제스처)을 판정하는 것이 아니라, 값의 변화 패턴을 이용하여 정확하게 사용자가 의도적으로 흔드는 사용자의 움직임(제스처)을 감지한다. 전술한 동작으로 인해, 센싱부(110)는 사용자의 움직임이 살짝 움직이는 경우 등의 유사동작으로 인한 오동작을 방지할 수 있다.
센싱부(110)는 단지 흔드는 사용자의 움직임(제스처)가 인식되면, 센서부(110)는 해당 신호를 프로세서(Processor)로 전송하게 된다. 프로세서는 단말 OS(예컨대, 안드로이드(Android))의 센서 프레임워크(Sensor Framework)를 이용하여 해당 동작의 구체적인 변위값을 알게 된다. 해당 변위값으로부터 흔들었다는 사용자의 움직임(제스처)를 판단하면, 이러한 사용자의 움직임(제스처)에 대한 이벤트를 본 실시예에서 제안하는 '센서 매니저' 소프트웨어로 보낸다.
'센서 매니저'는 센싱부(110)에서 발생한 이벤트를 입력 받으면, 사용자가 현재 사용 중인 애플리케이션이 무엇인지 찾아낸 후 찾은 애플리케이션에 따라서, '흔든다'라는 사용자의 움직임(제스처)에 맞는 '기능 수행'에 대한 명령 이벤트를 해당 애플리케이션에 보내게 되고, 해당 애플리케이션은 그 명령 이벤트를 받아 해당 기능을 수행하게 된다.
예컨대, '애플리케이션/기능 검출부'는 음악 재생 애플리케이션(A 애플리케이션)을 이용하여 음악 컨텐츠를 재생하는 중 '제스처 검출부'로 인해 '흔들다'라는 제스처(↕)가 인식되는 경우, '컨텍스트 매니저'는 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)을 생성한다. 이후 '컨텍스트 매니저'는 음악 재생 애플리케이션(A 애플리케이션)에서 자동으로 다음곡 또는 랜덤으로 선택된 다음곡 재생되도록 하는 명령(A 명령)이 실행되도록 한다.
'애플리케이션/기능 검출부'는 음성 통화 애플리케이션(B 애플리케이션)을 이용하여 착신 전화벨이 울리는 중 '제스처 검출부'로 인해 '흔들다'라는 제스처(↕)가 인식되는 경우, '컨텍스트 매니저'는 자동으로 전화가 수신되도록 하는 명령(B 명령)을 생성한다. 이후 '컨텍스트 매니저'는 음성 통화 애플리케이션(B 애플리케이션)에서 자동으로 전화가 수신되도록 하는 명령(B 명령)이 실행되도록 한다.
'애플리케이션/기능 검출부'는 이미지 출력 애플리케이션(C 애플리케이션)을 이용하여 이미지를 출력하는 중 '제스처 검출부'로 인해 '흔들다'라는 제스처(↕)가 인식되는 경우, '컨텍스트 매니저'는 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)을 생성한다. 이후 '컨텍스트 매니저'는 이미지 출력 애플리케이션(C 애플리케이션)에서 자동으로 다음 이미자가 출력되도록 하는 명령(C 명령)이 실행되도록 한다.
'애플리케이션/기능 검출부'는 웹 서핑 애플리케이션(D 애플리케이션)을 이용하여 웹 서핑 중 '제스처 검출부'로 인해 '흔들다'라는 제스처(↕)가 인식되는 경우, '컨텍스트 매니저'는 '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)을 생성한다. 이후 '컨텍스트 매니저'는 웹 서핑 애플리케이션(D 애플리케이션)에서 '뒤로가기' 기능이 수행되도록 하는 명령(D 명령)이 실행되도록 한다.
'애플리케이션/기능 검출부'는 영상 재생 애플리케이션(E 애플리케이션)을 이용하여 비디오 감상 중 '제스처 검출부'로 인해 '흔들다'라는 제스처(↕)가 인식되는 경우, '컨텍스트 매니저'는 재생 상태에서 '일시 정지'로 전환 또는 일시 정지 상태에서 '재생'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)을 생성한다. 이후 '컨텍스트 매니저'는 영상 재생 애플리케이션(E 애플리케이션)에서 재생 상태에서 '일시 정지'로 전환 또는 일시 정지 상태에서 '재생'으로 전환하는 기능이 수행되도록 하는 명령(E 명령)이 실행되도록 한다.
다시 말해, 동일한 제스처(↕)를 가지고, 사용자의 상황에 따라 다양한 기능을 수행하는 상황 인지 기반의 사용자의 움직임(제스처) UI의 컨셉을 구현할 수 있다.
'센서 매니저'의 주요 기능을 정리하자면, 소프트웨어적으로 구현된 '센서 매니저'는 센싱부(110)로부터 발생한 신호 값의 변화 패턴을 이용하여 사용자의 움직임(제스처)을 판단하고, 사용자의 움직임(제스처)을 기능 수행 명령으로 변환하여 전달한다.
'센서 매니저'는 센서 데이터값의 변화 패턴을 이용하여 사용자의 움직임(제스처)를 판정하는 모듈(예컨대 센싱부(110)), 현재 사용중인 애플리케이션이 무엇인지 판단하는 모듈(예컨대, 애플리케이션 제어부(140)), 상황에 따라 사용자의 움직임(제스처)에 맞는 기능수행 명령으로 변환하여 상황에 맞게 기능 수행 명령을 전달하는 모듈(예컨대, 실행부(150))를 포함하여 구현될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 실시예는 상황 인지 기반의 명령을 수행 분야에 적용되어, 상황에 따른 다양한 기능이 자동 수행되도록 하는 제스처 UI를 제공하는 효과를 발생하는 유용한 발명이다.
100: 단말기 110: 센싱부
120: 상황 인지부 130: 제스처 판별부
130: 애플리케이션 제어부 150: 실행부
160: 데이터베이스
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2013.09.04.에 한국에 출원한 특허출원번호 제10-2013-0106190호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하면, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (11)

  1. 단말기의 움직임 변화 정보를 생성하는 센싱부;
    상기 움직임 변화 정보와 기 지정된 제스처(Gesture)를 비교하여 특정 제스처 정보를 생성하는 제스처 판별부;
    현재 활성화 상태의 활성화 애플리케이션을 판단하는 애플리케이션 제어부; 및
    상기 활성화 애플리케이션 별로 상기 특정 제스처 정보에 대응하는 기 설정된 명령이 실행되도록 하는 실행부
    를 포함하는 것을 특징으로 하는 단말기.
  2. 제 1 항에 있어서,
    상기 애플리케이션 제어부는 상기 활성화 애플리케이션이 멀티태스킹(Multi-Tasking)으로 실행되고 있는 경우 멀티태스킹 정보가 생성되도록 하고,
    상기 실행부는 상기 멀티태스킹 정보 내에 포함된 적어도 두 개 이상의 애플리케이션 각각마다 상기 특정 제스처 정보에 대응하는 컨텍스트(Context) 기반의 명령 각각이 동시에 실행되도록 하는 것을 특징으로 하는 단말기.
  3. 제 2 항에 있어서,
    상기 애플리케이션 제어부는 상기 활성화 애플리케이션이 멀티태스킹을 미지원하는 경우 포어그라운드(Foreground) 정보가 생성되도록 하고,
    상기 실행부는 상기 포어그라운드 정보에 대응하는 애플리케이션에 상기 특정 제스처 정보에 대응하는 컨텍스트 기반의 명령이 실행되도록 하는 것을 특징으로 하는 단말기.
  4. 제 1 항에 있어서,
    상기 제스처 판별부는,
    상기 움직임 변화 정보에 포함된 변위 정보와 기 저장된 패턴을 비교하여 상기 움직임 변화 정보와 최고 매칭율을 갖는 매칭 패턴을 추출하고, 상기 매칭 패턴에 대응하는 정보를 상기 특정 제스처 정보로 인식하는 것을 특징으로 하는 단말기.
  5. 제 1 항에 있어서,
    상기 제스처 판별부는,
    기 저장된 패턴을 저장하는 패턴 저장부;
    상기 움직임 변화 정보에 포함된 센싱 좌표값을 추출하는 센싱 처리부; 및
    상기 좌표값으로부터 위치 변환 정보를 산출하고, 상기 기 저장된 패턴 중 상기 위치 변환 정보와 최고 매칭율을 갖는 매칭 패턴을 상기 특정 제스처 정보로 인식하는 제스처 인식부
    를 포함하는 것을 특징으로 하는 단말기.
  6. 제 1 항에 있어서,
    상기 실행부는,
    상기 명령을 상기 활성화 애플리케이션으로 전달하여 상기 명령에 대응하는 동작이 상기 활성화 애플리케이션에서 실행되도록 하는 것을 특징으로 하는 단말기.
  7. 제 1 항에 있어서,
    복수의 애플리케이션마다 어느 하나의 패턴과 매칭되는 명령을 저장하는 데이터베이스를 추가로 포함하며,
    상기 실행부는 상기 데이터베이스로부터 상기 활성화 애플리케이션 및 상기 특정 제스처 정보에 대응하는 상기 명령을 추출하는 것을 특징으로 하는 단말기.
  8. 데이터 처리 기기에
    단말기의 움직임 변화 정보와 기 지정된 제스처를 비교하여 특정 제스처 정보를 생성하는 제스처 판별 과정;
    현재 활성화 상태의 활성화 애플리케이션을 판단하는 애플리케이션 확인 과정; 및
    상기 활성화 애플리케이션 별로 상기 특정 제스처 정보에 대응하는 기 설정된 명령이 실행되도록 하는 실행 과정
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 제 8 항에 있어서,
    상기 애플리케이션 확인 과정은,
    상기 활성화 애플리케이션이 멀티태스킹으로 실행되고 있는지를 확인하고, 확인 결과, 멀티태스킹으로 실행되고 있는 경우 멀티태스킹 정보가 생성되도록 하고, 확인 결과, 멀티태스킹이 미지원되고 있는 경우 포어그라운드 정보가 생성되도록 하는 것을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  10. 제 9 항에 있어서,
    상기 실행 과정은,
    상기 멀티태스킹 정보 내에 포함된 적어도 두 개 이상의 애플리케이션 각각마다 상기 특정 제스처 정보에 대응하는 컨텍스트 기반의 명령 각각이 동시에 실행되도록 하는 것을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 제 9 항에 있어서,
    상기 실행 과정은,
    상기 포어그라운드 정보에 대응하는 애플리케이션에 상기 특정 제스처 정보에 대응하는 컨텍스트 기반의 명령이 실행되도록 하는 것을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2014/006845 2013-09-04 2014-07-25 상황 인지 기반의 명령 수행 방법 및 장치 WO2015034177A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201480023262.8A CN105518571B (zh) 2013-09-04 2014-07-25 用于基于情境感知执行命令的方法和设备
US14/932,514 US10198081B2 (en) 2013-09-04 2015-11-04 Method and device for executing command on basis of context awareness

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130106190A KR101488193B1 (ko) 2013-09-04 2013-09-04 상황 인지 기반의 명령 수행 방법 및 장치
KR10-2013-0106190 2013-09-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/932,514 Continuation US10198081B2 (en) 2013-09-04 2015-11-04 Method and device for executing command on basis of context awareness

Publications (1)

Publication Number Publication Date
WO2015034177A1 true WO2015034177A1 (ko) 2015-03-12

Family

ID=52593117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/006845 WO2015034177A1 (ko) 2013-09-04 2014-07-25 상황 인지 기반의 명령 수행 방법 및 장치

Country Status (4)

Country Link
US (1) US10198081B2 (ko)
KR (1) KR101488193B1 (ko)
CN (1) CN105518571B (ko)
WO (1) WO2015034177A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016199967A1 (ko) * 2015-06-12 2016-12-15 (주)블루와이즈 패턴 및 센서기반의 사용자 의사입력 시스템
WO2021067731A3 (en) * 2019-10-02 2021-05-14 Coolfire Solutions, Inc. Situational awareness systems and methods
US11228892B2 (en) 2018-03-22 2022-01-18 Coolfire Solutions, Inc. Situational awareness systems and methods

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511336A (zh) * 2014-09-26 2016-04-20 鸿富锦精密工业(深圳)有限公司 电子装置控制方法
WO2017003302A1 (en) * 2015-06-30 2017-01-05 Encounter Solutions Limited Data collection network and data collection device
JP6496645B2 (ja) * 2015-09-28 2019-04-03 京セラ株式会社 携帯電子機器
US10136271B2 (en) * 2015-12-11 2018-11-20 T-Mobile Usa, Inc. Automatically answering an incoming voice-call on a mobile device with no-touch user interface interaction
CN105975081A (zh) * 2016-05-24 2016-09-28 深圳市敢为软件技术有限公司 体感控制方法和装置
US11599100B2 (en) 2019-06-10 2023-03-07 Fisher-Rosemount Systems, Inc. Ease of node switchovers in process control systems
US11249464B2 (en) 2019-06-10 2022-02-15 Fisher-Rosemount Systems, Inc. Industrial control system architecture for real-time simulation and process control
GB2623651A (en) 2019-06-10 2024-04-24 Fisher Rosemount Systems Inc Automatic load balancing and performance leveling of virtual nodes running real-time control in process control systems
US11231701B2 (en) 2019-06-10 2022-01-25 Fisher-Rosemount Systems, Inc. Publish/subscribe protocol for real-time process control
GB2589661A (en) 2019-06-10 2021-06-09 Fisher Rosemount Systems Inc Virtualized real-time I/O in process control systems
EP3991067A1 (en) 2019-06-26 2022-05-04 Google LLC Radar-based authentication status feedback
US11868537B2 (en) * 2019-07-26 2024-01-09 Google Llc Robust radar-based gesture-recognition by user equipment
EP4004686A1 (en) 2019-07-26 2022-06-01 Google LLC Authentication management through imu and radar
CN113892072A (zh) 2019-08-30 2022-01-04 谷歌有限责任公司 用于暂停的雷达姿势的视觉指示器
US11409366B2 (en) * 2019-10-03 2022-08-09 Charles Isgar Gesture-based device activation system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100052378A (ko) * 2008-11-10 2010-05-19 삼성전자주식회사 휴대 단말기의 모션 입력 장치 및 그의 운용 방법
KR20100120958A (ko) * 2009-05-07 2010-11-17 삼성전자주식회사 입력 신호 종류 별 사용자 기능 활성화 방법 및 이를 지원하는 휴대 단말기
KR20110064044A (ko) * 2009-12-07 2011-06-15 엘지전자 주식회사 이동 단말기 및 이것의 애플리케이션 제어 방법
KR101186211B1 (ko) * 2010-12-16 2012-10-08 강원대학교산학협력단 휴대 단말기 및 그 어플리케이션 전환 방법
KR20120128352A (ko) * 2011-05-17 2012-11-27 에스케이텔레시스 주식회사 휴대용 단말기 및 그를 이용한 가상 화면 제어방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253709A (zh) * 2010-05-19 2011-11-23 禾瑞亚科技股份有限公司 手势判断的方法与装置
US9134799B2 (en) * 2010-07-16 2015-09-15 Qualcomm Incorporated Interacting with a projected user interface using orientation sensors
CN102902469B (zh) * 2011-07-25 2015-08-19 宸鸿光电科技股份有限公司 手势识别方法及触控系统
US20130129162A1 (en) * 2011-11-22 2013-05-23 Shian-Luen Cheng Method of Executing Software Functions Using Biometric Detection and Related Electronic Device
US9665178B2 (en) * 2012-08-01 2017-05-30 Blackberry Limited Selective inbox access in homescreen mode on a mobile electronic device
US20140157209A1 (en) * 2012-12-03 2014-06-05 Google Inc. System and method for detecting gestures
US20140282272A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Interactive Inputs for a Background Task

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100052378A (ko) * 2008-11-10 2010-05-19 삼성전자주식회사 휴대 단말기의 모션 입력 장치 및 그의 운용 방법
KR20100120958A (ko) * 2009-05-07 2010-11-17 삼성전자주식회사 입력 신호 종류 별 사용자 기능 활성화 방법 및 이를 지원하는 휴대 단말기
KR20110064044A (ko) * 2009-12-07 2011-06-15 엘지전자 주식회사 이동 단말기 및 이것의 애플리케이션 제어 방법
KR101186211B1 (ko) * 2010-12-16 2012-10-08 강원대학교산학협력단 휴대 단말기 및 그 어플리케이션 전환 방법
KR20120128352A (ko) * 2011-05-17 2012-11-27 에스케이텔레시스 주식회사 휴대용 단말기 및 그를 이용한 가상 화면 제어방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016199967A1 (ko) * 2015-06-12 2016-12-15 (주)블루와이즈 패턴 및 센서기반의 사용자 의사입력 시스템
US11228892B2 (en) 2018-03-22 2022-01-18 Coolfire Solutions, Inc. Situational awareness systems and methods
WO2021067731A3 (en) * 2019-10-02 2021-05-14 Coolfire Solutions, Inc. Situational awareness systems and methods

Also Published As

Publication number Publication date
KR101488193B1 (ko) 2015-01-30
CN105518571B (zh) 2019-04-09
US10198081B2 (en) 2019-02-05
US20160054808A1 (en) 2016-02-25
CN105518571A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
WO2015034177A1 (ko) 상황 인지 기반의 명령 수행 방법 및 장치
WO2014142600A2 (en) Display control method and apparatus
WO2011074797A2 (en) Mobile device having projector module and method for operating the same
CN107950030B (zh) 显示装置以及控制显示装置的方法
WO2012033312A1 (en) Method of operating mobile device by recognizing user's gesture and mobile device using the method
WO2014030902A1 (en) Input method and apparatus of portable device
WO2015088263A1 (ko) 터치 입력의 압력 상태에 따라 동작하는 전자 장치 및 그 방법
WO2014107076A1 (en) Display apparatus and method of controlling a display apparatus in a voice recognition system
WO2014131277A1 (zh) 音频播放的控制方法、装置及终端
KR20110070338A (ko) 휴대단말의 외부 출력 제어 방법 및 장치
WO2021054794A1 (en) Electronic device and screen capturing method thereof
WO2019074243A1 (en) DISPLAY DEVICE, USER TERMINAL DEVICE, DISPLAY SYSTEM COMPRISING THE SAME, AND ASSOCIATED COMAND METHOD
CN107783669A (zh) 光标产生系统、方法及计算机程序产品
WO2011081354A2 (en) Korean input method and apparatus using touch screen, and portable terminal including key input apparatus
WO2021172832A1 (ko) 제스처 인식 기반의 영상 편집 방법 및 이를 지원하는 전자 장치
WO2017065394A1 (ko) 디스플레이 장치 및 이의 제어 방법
WO2018056587A1 (en) Electronic apparatus and controlling method thereof
EP3172640A1 (en) Display device and method for controlling the same
EP3186956A1 (en) Display device and method of controlling therefor
WO2020040413A1 (ko) 압력 센서를 포함하는 키 어셈블리를 구비하는 전자 장치 및 이의 동작 방법
WO2014178491A1 (ko) 발화 인식 방법 및 장치
WO2021075835A1 (ko) 가상현실 사운드 기반의 컨텐츠 제공 방법 및 시스템
US20210216702A1 (en) Method and apparatus for rendering lyrics
WO2011129659A2 (en) Apparatus for providing digital content and method thereof
WO2019093618A1 (ko) 디스플레이장치 및 그 제어방법

Legal Events

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

Ref document number: 14842443

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14842443

Country of ref document: EP

Kind code of ref document: A1