WO2022075529A1 - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
WO2022075529A1
WO2022075529A1 PCT/KR2020/018083 KR2020018083W WO2022075529A1 WO 2022075529 A1 WO2022075529 A1 WO 2022075529A1 KR 2020018083 W KR2020018083 W KR 2020018083W WO 2022075529 A1 WO2022075529 A1 WO 2022075529A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding robot
information
control
coding
robot
Prior art date
Application number
PCT/KR2020/018083
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 주식회사 로보그램인공지능로봇연구소
Publication of WO2022075529A1 publication Critical patent/WO2022075529A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Definitions

  • the present invention relates to an electronic device and a method for controlling the same.
  • An object of the present invention is to provide an electronic device and a control method thereof.
  • a control method of a coding robot for solving the above-described problems, the coding robot, the steps of obtaining information of the subject to be recognized; obtaining, by the coding robot, control data based on the acquired information of the subject to be recognized; determining, by the coding robot, whether the control data matches preset control information; performing, by the coding robot, an operation corresponding to the preset control command when the control data matches preset control information; and analyzing, by the coding robot, when the control data does not match preset control information, and matching the control data with any one of preset control commands. It is characterized in that the data is at least one of emotional data and voice data of the subject.
  • the coding robot may determine the emotion or voice of the recognition target, and may be controlled based on a coding block corresponding to the determined emotion or voice.
  • FIG. 1 is an exemplary diagram for explaining a coding robot according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a coding robot according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a control method of a coding robot according to an embodiment of the present invention.
  • 4 and 5 are exemplary diagrams for explaining a method of determining a recognized user's emotion according to an embodiment of the present invention.
  • a control method of a coding robot for solving the above-described problems, the coding robot, the steps of obtaining information of the subject to be recognized; obtaining, by the coding robot, control data based on the acquired information of the subject to be recognized; determining, by the coding robot, whether the control data matches preset control information; performing, by the coding robot, an operation corresponding to the preset control command when the control data matches preset control information; and analyzing, by the coding robot, when the control data does not match preset control information, and matching the control data with any one of preset control commands. It is characterized in that the data is at least one of emotional data and voice data of the subject.
  • the acquiring of the control data may include, by the coding robot, acquiring a face photographed image of the recognition target; obtaining, by the coding robot, a model variable based on the face photographed image; determining, by the coding robot, whether the recognition target matches the face of a pre-registered user based on the acquired model variables; obtaining, by the coding robot, a feature value corresponding to the photographed face image based on the photographed face image, when the recognition target matches the previously registered user; determining, by the coding robot, a face part including the eyes, nose, and mouth of the recognition target based on the acquired feature values; determining, by the coding robot, the emotion of the person to be recognized based on the determined face part; and obtaining, by the coding robot, the control data based on the determined emotion.
  • the performing of the operation corresponding to the control command may include: obtaining, by the coding robot, coordinate information on a two-dimensional vector space corresponding to the determined emotion; obtaining a control command corresponding to the coordinate information on the vector space; and performing an operation corresponding to the control command.
  • the performing of the operation corresponding to the control command may include, by the coding robot, obtaining, by the coding robot, emotion change information of the recognition subject based on the photographed face image of the recognition subject; obtaining, by the coding robot, first coordinate information corresponding to the first emotion and second coordinate information corresponding to the second emotion when the emotion of the person to be recognized is changed from the first emotion to the second emotion; and obtaining, by the coding robot, a movement command corresponding to a vector value corresponding to the first coordinate and the second coordinate as the control command.
  • the control method may include, by the coding robot, recognizing an object around the coding robot; obtaining, by the coding robot, control information corresponding to the pre-stored sign when the recognized object matches a pre-stored sign; recognizing, by the coding robot, a lane around the coding robot; and moving, by the coding robot, along the recognized lane, and moving corresponding to the control information.
  • the recognizing of the lane may include: acquiring information on two consecutive line segments based on an image input to the coding robot, and acquiring a lane area based on the obtained line segment information; obtaining distance information between the obtained line segment and the coding robot; and controlling the coding robot based on the lane area and the distance information.
  • the control method includes, in the coding robot, an operation speed control command and a motion repetition number control command for the coding robot based on the voice data generating a control block; obtaining, by the coding robot, at least one of motion speed information and motion repetition number information based on the voice data; and obtaining, by the coding robot, a control command corresponding to at least one of the motion speed and the number of repetitions of the coding robot based on at least one of the motion speed information and the motion repetition number information.
  • the step of obtaining a control command corresponding to at least one of the operation speed and the number of repetitions of the operation of the coding robot may include: when the voice data matches the preset control information, the coding robot receives the preset control information. acquiring the operation speed or the number of repetitions of the coding robot as the control command based on the corresponding operation speed information or operation repetition number information; generating, by the coding robot, syllable spacing information based on the voice data when the voice data does not match preset control information, and generating the motion speed information in response to the syllable spacing information; generating, by the coding robot, signal strength information based on the voice data when the voice data does not match preset control information, and generating the operation repetition number information in response to the signal strength information; and obtaining, as the control command, the operation speed or the number of repetitions of the coding robot based on the generated operation speed information or the number of repetitions.
  • unit refers to a hardware component such as software, FPGA, or ASIC, and “unit” or “module” performs certain roles.
  • “part” or “module” is not meant to be limited to software or hardware.
  • a “unit” or “module” may be configured to reside on an addressable storage medium or to reproduce one or more processors.
  • “part” or “module” refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. Components and functionality provided within “parts” or “modules” may be combined into a smaller number of components and “parts” or “modules” or as additional components and “parts” or “modules”. can be further separated.
  • a computer refers to all types of hardware devices including at least one processor, and may be understood as encompassing software configurations operating in the corresponding hardware device according to embodiments.
  • a computer may be understood to include, but is not limited to, smart phones, tablet PCs, desktops, notebooks, and user clients and applications running on each device.
  • each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and at least a portion of each step may be performed in different devices according to embodiments.
  • FIG. 1 is an exemplary diagram for explaining a coding robot according to an embodiment of the present invention.
  • the coding robot 100 may operate by a coding language or a coding block programmed in a computer language.
  • the coding is the operation of programming a sequential and logical flow using a computer language such as C language
  • the coding block may mean a block including a coding instruction completed in order to perform a specific instruction. That is, the coding robot 100 may operate according to a command transmitted by the written coding or the selected coding block.
  • the coding robot 100 may include a camera, a microphone, a memory, a processor, and a driving unit.
  • FIG. 2 is a block diagram showing in detail the configuration of a coding robot according to an embodiment of the present invention.
  • the coding robot 100 may further include a communication unit 140 , a memory 150 , and a sensing unit 160 in addition to the input unit 110 , the output unit 120 , and the processor 130 .
  • the input unit 110 may include a camera 111 , a microphone 112 , a touch panel 113 , and the like to obtain various external inputs.
  • the camera 111 is a configuration for acquiring image data around the coding robot 100 .
  • the camera 111 may capture still images and moving images.
  • the camera 111 may include one or more image sensors, lenses, an image signal processor (ISP), or a flash (eg, an LED or a xenon lamp), and may include a plurality of cameras 111 .
  • ISP image signal processor
  • the camera 111 may be activated only when a specific condition is satisfied.
  • the camera 111 may be activated only when a user is detected around the coding robot 100 .
  • the camera 111 may be activated when the front door is opened or a condition in which the indoor lighting is turned on is satisfied.
  • the camera 111 may be always activated when power is applied to the robot.
  • the camera 111 may store an image or perform image processing only when a specific condition is satisfied.
  • the specific condition is a condition when a user is detected around the coding robot 100, when the coding robot 100 is a part of an IoT system, the camera 111 is a condition in which the front door is opened or the indoor lighting is turned on can
  • the microphone 112 is a component for acquiring a sound around the coding robot 100 .
  • the microphone 112 may receive an external sound signal to generate electrical voice information, and the coding robot 100 may include a plurality of microphones 112 .
  • the coding robot 100 may estimate the direction of the sound source generating the sound signal by using the difference in arrival time of the sound signal input to each of the plurality of microphones.
  • the microphone 112 may use various noise removal algorithms for removing noise generated in the process of receiving an external sound signal.
  • the microphone 112 may be activated only when a specific condition is satisfied in order to prevent unnecessary power consumption. That is, the microphone 112 may be activated only when a user is detected around the coding robot 100 .
  • the microphone 112 may be activated when the front door is opened or the condition that the indoor lighting is turned on is satisfied.
  • the present invention is not limited to the above-described embodiment, and as in the case of the camera 111 , the microphone 112 may be always activated.
  • the touch panel 113 is configured to receive various user inputs.
  • the touch panel 113 may receive user data by a user manipulation.
  • the touch panel may also be activated under the above conditions to prevent unnecessary power consumption. Alternatively, the touch panel 113 may be activated only when a user's touch is sensed.
  • the touch panel 113 may be configured in combination with a display to be described later.
  • the input unit 110 may have various configurations for receiving various user data in addition to the camera 111 , the microphone 112 , and the touch panel 113 described above.
  • the output unit 112 may include a driving unit 121 , an audio output unit 122 , and a display 123 .
  • the driving unit 121 is configured to output various motions in response to user data acquired through the input unit 110 .
  • the driving unit 121 is a motor or actuator capable of driving at least one joint unit corresponding to a human joint.
  • the driving unit 121 may include as another embodiment, when the coding robot 100 according to an embodiment of the present invention is a wheel-type robot, the driving unit 121 may include a motor or an actuator capable of driving the wheel.
  • the audio output unit 122 is configured to output various audio signals in response to user data acquired through the input unit 110 .
  • the audio output unit 122 may output various types of audio data for which various processing operations such as decoding, amplification, and noise filtering have been performed by the audio processing unit (not shown) as well as various notification sounds or voice messages.
  • the audio output unit 122 may be implemented as a speaker, but this is only an exemplary embodiment and may be implemented as an output terminal capable of outputting audio data.
  • the display 123 is configured to output an image in various responses to user data acquired through the input unit 110 .
  • the display 123 may output an avatar image for expressing emotions. That is, when the coding robot 100 intends to output a happy emotion in response to the user data acquired through the input unit 110 , it can output the happy emotion through the avatar image displayed on the display 123 .
  • the display 123 for providing various images may be implemented with various types of display panels.
  • the display panel is a Liquid Crystal Display (LCD), Organic Light Emitting Diodes (OLED), Active-Matrix Organic Light-Emitting Diode (AM-OLED), Liquid Crystal on Silicon (LcoS), or Digital Light Processing (DLP). It may be implemented with various display technologies, such as.
  • the display 123 may be coupled to at least one of a front area and a side area and a rear area of the coding robot 100 in the form of a flexible display.
  • the communication unit 140 may communicate with an external device.
  • the communication unit 140 may include various communication chips or circuits for performing wireless communication, such as a Wi-Fi chip 141 , a Bluetooth chip 142 , an NFC chip 143 , and a mobile communication chip 144 .
  • the Wi-Fi chip 141, the Bluetooth chip 142, and the NFC chip 143 perform communication in a LAN method, a WiFi method, a Bluetooth method, and an NFC method, respectively.
  • various types of connection information such as an SSID and a session key are first transmitted and received, and then various types of information can be transmitted and received by using this to connect communication.
  • the mobile communication chip 144 refers to a chip that performs communication according to various communication standards such as 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), and Long Term Evolution (LTE).
  • the communication unit 140 is a USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), power line communication, wired communication including at least one of POTS (plain old telephone service), etc. It goes without saying that communication may be performed in this way.
  • the communication unit may transmit/receive various data for determining a user state by performing communication with external devices.
  • the communication unit 140 may transmit the collected learning data to the external server and receive the analysis result of the learning data.
  • the memory 150 may store, for example, commands or data for controlling at least one component of the coding robot 100 .
  • the memory 150 may store software and/or a program.
  • the program may include, for example, a kernel, middle-ware, an application programming interface (API) and/or an application program (or "application").
  • API application programming interface
  • application application program
  • At least a part of the kernel, middleware, or API may be referred to as an operating system (OS).
  • OS operating system
  • the kernel may, for example, control or manage system resources used to execute operations or functions implemented in other programs.
  • the kernel may provide an interface capable of controlling or managing system resources when accessing individual components of the coding robot 100 from middleware, API, or application programs.
  • the middleware may, for example, play an intermediary role so that an API or an application program can communicate with the kernel to send and receive data.
  • the middleware may process one or more work requests received from the application program according to priority.
  • the middleware may give priority to use the system resource of the coding robot 100 to at least one of the application programs, and process the one or more work requests.
  • API is an interface for an application program to control functions provided by the kernel or middleware.
  • at least one interface or function (eg, command) for file control, window control, image processing, or character control. may include
  • the memory 150 may include at least one of an internal memory and an external memory.
  • Built-in memory includes, for example, volatile memory (such as DRAM, SRAM, or SDRAM), non-volatile memory (such as one time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, flash memory).
  • volatile memory such as DRAM, SRAM, or SDRAM
  • non-volatile memory such as one time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, flash memory
  • the external memory may include a flash drive, for example, a compact flash (CF), a secure digital (SD), It may include Micro-SD, Mini-SD, xD (extreme digital), MMC (multi-media card), memory stick, etc.
  • the external memory may be functionally or physically connected to the coding robot 100 through various interfaces. can
  • the sensing unit 160 is a configuration for acquiring information about the surroundings of the coding robot 100 .
  • the sensing unit 160 may include various sensors, and may acquire information sensed by the sensors as user data.
  • the sensing unit 160 may include various sensors such as an infrared sensor, a pressure sensor, an illuminance sensor, a humidity sensor, and a gyro sensor.
  • an infrared sensor data on the presence or absence of the user may be acquired as user data or data on the user's body temperature may be acquired through the infrared sensor.
  • the sensing unit 160 includes a pressure sensor
  • data on physical contact with the user may be acquired as user data.
  • the coding robot 100 includes an illuminance sensor, a humidity sensor, and the like, information on humidity and illuminance related to the user's surrounding environment may be acquired as user data.
  • the processor 130 may control the overall operation of the coding robot 100 by using various programs stored in the memory 150 .
  • the processor 130 may be composed of a RAM 131 , a ROM 132 , a graphic processing unit 133 , a main CPU 134 , and first to n interfaces 135-1 to 135-n and a bus 136 .
  • the RAM 131 , the ROM 132 , the graphic processing unit 133 , the main CPU 134 , the first to n interfaces 135 - 1 to 135 -n, etc. may be connected to each other through the bus 136 .
  • the RAM 131 stores OS and application programs. Specifically, when the coding robot 100 is booted, the OS may be loaded into the RAM 131 , and various application data selected by the user may be loaded into the RAM 131 .
  • the ROM 132 stores an instruction set for system booting and the like.
  • the main CPU 134 copies the OS stored in the memory 150 to the RAM 131 according to the command stored in the ROM 132, and executes the OS to boot the system.
  • the main CPU 134 copies various application programs stored in the memory 150 to the RAM 131 , and executes the application programs copied to the RAM 131 to perform various operations.
  • the graphic processing unit 133 generates a screen including various objects such as graphical user interface (GUI) items, images, texts, and the like, by using an operation unit (not shown) and a rendering unit (not shown).
  • GUI graphical user interface
  • the calculation unit may be configured to calculate attribute values such as coordinate values, shape, size, color, etc. of each object to be displayed according to the layout of the screen using the control command received from the input unit 140 .
  • the rendering unit may be configured to generate screens of various layouts including objects based on the attribute values calculated by the operation unit. The screen generated by the rendering unit may be displayed in the display area of the display 130 .
  • the main CPU 134 accesses the memory 150 and performs booting using the OS stored in the memory 150 . In addition, the main CPU 134 performs various operations using various programs, contents, data, etc. stored in the memory 150 .
  • the first to n-th interfaces 135-1 to 135-n are connected to the various components described above.
  • One of the first to n interfaces 135 - 1 to 135 - n may be a network interface connected to an external device through a network.
  • FIGS. 3 to 5 various embodiments according to the present invention will be described with reference to FIGS. 3 to 5 .
  • FIG. 3 is a flowchart illustrating a control method of a coding robot according to an embodiment of the present invention.
  • step S110 the coding robot 100 may obtain information of the recognition target.
  • the information of the recognition target may be acquired by the above-described input unit 110 or sensing unit 160 .
  • step S120 the coding robot 100 may acquire control data based on the acquired information of the recognition target.
  • step S130 the coding robot 100 may determine whether the control data matches preset control information.
  • the coding robot 100 may store control information matched with the control data in advance in the memory 150 .
  • the memory 150 may store operation information of the coding robot 100 corresponding to the angry emotion as a control command.
  • step S140 the coding robot 100 may perform an operation corresponding to a preset control command when the control data matches preset control information.
  • step S150 the coding robot 100, when the control data does not match the preset control information, by analyzing the control data to match any one of the preset control commands.
  • the coding robot 100 analyzes the control data and matches it with at least one control command among the pre-stored control commands. there is.
  • control data may refer to at least one of emotional data and voice data of a subject to be recognized.
  • the coding robot 100 may obtain the control data through various methods.
  • the coding robot 100 may obtain a photographed image of the face of the recognition target. Thereafter, the coding robot 100 may acquire model variables based on the face photographed image. Thereafter, the coding robot 100 may determine whether the recognition target matches the face of the pre-registered user based on the acquired model variables. Thereafter, when the recognition target matches the pre-registered user, the coding robot 100 may obtain a feature value corresponding to the photographed face image based on the photographed face image. Thereafter, the coding robot 100 may determine a face part including the eyes, nose, and mouth of the recognition target based on the acquired feature values. Thereafter, the coding robot 100 may determine the emotion of the recognition target based on the determined face part.
  • the coding robot 100 may recognize the user of the coding robot based on libraries such as OpenCV, Tensorflow, and Dlib, and determine the emotion of the recognition target.
  • libraries such as OpenCV, Tensorflow, and Dlib
  • OpenCV is a programming library for real-time computer vision
  • Robomi can handle cameras and process camera images
  • TensorFlow is an open source software library for data flow programming for various tasks. It is also used in machine learning applications such as networks and can be used for face recognition and object recognition.
  • Dlib is a general-purpose cross-platform software library written in the programming language C++, and the coding robot 100 is used for facial landmarks (eyes, nose, mouth Back area) recognition function can be used to perform emotion recognition.
  • the coding robot 100 may perform face recognition based on the various libraries described above. To this end, the coding robot 100 may include a pre-written coding block.
  • the face storage block may store the recognized face as an image file using OpenCV.
  • the face model generation block can create model variables using the Tensorflow library based on the stored face photos.
  • the generated model variables can be used in the face recognition block.
  • the face recognition block can calculate how much the face matches the registered face by using the model variable.
  • the facial emotion recognition block uses Dlib to indicate the vertices of the face as dots, as shown in FIG. 4 . Using the position values of these points, emotions can be inferred by calculating the size of the eyes, the angle of the eyebrows, and the size of the mouth. In addition, since the facial emotion recognition model can calculate the positions of the eyes, nose, and mouth, it goes without saying that an image can be added to the positions of the eyes, nose, and mouth.
  • the coding robot 100 may determine the facial expression of the recognition target by using the following code.
  • gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  • mouth_width (landmarks.part(54).x - landmarks.part(48).x) / face_width # The amount of mouth open
  • mouth_height (landmarks.part(66).y - landmarks.part(62).y) / face_width # The amount of mouth open
  • face_x face_width / 2 + x1
  • face_y face_height / 2 + y1
  • face_pos [face_x, face_y, face_width, face_height, x1, y1]
  • mouth_x (landmarks.part(54).x - landmarks.part(48).x) / 2 + landmarks.part(48).x
  • mouth_y (landmarks.part(66).y - landmarks.part(62).y) / 2 + landmarks.part(62).y
  • mouth_pos [mouth_x, mouth_y, landmarks.part(54).x - landmarks.part(48).x, landmarks.part(66).y - landmarks.part(62).y, landmarks.part(48). x, landmarks.part(50).y]
  • nose_x (landmarks.part(34).x - landmarks.part(31).x) / 2 + landmarks.part(31).x
  • nose_y (landmarks.part(33).y - landmarks.part(27).y) / 2 + landmarks.part(27).y
  • nose_pos [mouth_x, mouth_y, landmarks.part(34).x - landmarks.part(31).x, landmarks.part(33).y - landmarks.part(27).y, landmarks.part(31). x, landmarks.part(27).y]
  • eye_x1 (landmarks.part(39).x - landmarks.part(36).x) / 2 + landmarks.part(36).x
  • eye_y1 (landmarks.part(41).y - landmarks.part(37).y) / 2 + landmarks.part(37).y
  • eye_pos1 [eye_x1, eye_y1, landmarks.part(39).x - landmarks.part(36).x, landmarks.part(41).y - landmarks.part(37).y, landmarks.part(36). x, landmarks.part(37).y]
  • eye_x2 (landmarks.part(45).x - landmarks.part(42).x) / 2 + landmarks.part(42).x
  • eye_y2 (landmarks.part(47).y - landmarks.part(43).y) / 2 + landmarks.part(43).y
  • eye_pos2 [eye_x2, eye_y2, landmarks.part(45).x - landmarks.part(42).x, landmarks.part(47).y - landmarks.part(43).y, landmarks.part(42). x, landmarks.part(43).y]
  • frown_sum + landmarks.part(j + 5).x - landmarks.part(j).x
  • eye_sum (landmarks.part(41).y - landmarks.part(37).y + landmarks.part(40).y - landmarks.part(38).y +
  • eye_height (eye_sum / 4) / face_width
  • the coding robot 100 may include various coding blocks.
  • the object recognition block stores coding instructions that can recognize about 32 objects and can operate based on Tensorflow.
  • the sign recognition block may be composed of a coding block for a user to directly learn a sign and a block for recognizing a sign based on the learned data.
  • the lane recognition block is a coding block for recognizing two consecutive lines on the screen, measuring the distance between the line and the car, and moving to the middle of the lane if it is biased to one side to prevent departure.
  • a number recognition block for recognizing numbers 0 to 9 and a letter recognition block for recognizing English alphabets may be applied according to various embodiments of the present invention.
  • the coding robot 100 may acquire control data based on the determined emotion.
  • the coding robot 100 may be controlled according to a control command corresponding to the emotion determined according to the above-described embodiment.
  • the coding robot 100 may acquire coordinate information on a two-dimensional vector space corresponding to the determined emotion. Thereafter, the coding robot 100 may obtain a control command corresponding to coordinate information on a vector space.
  • the two-dimensional vector space may be the two-dimensional space shown in FIG. 5 .
  • the two-dimensional space can be displayed on the original emotion model of J. Russel.
  • the horizontal axis indicates whether emotions are positive or negative, and the vertical axis indicates activity. That is, the emotion of the recognition target determined by the coding robot 100 may be obtained as one piece of coordinate information on the circular emotion model of J. Russel shown in FIG. 5 .
  • the coding robot 100 may store a control command corresponding to each coordinate information on the circular emotion model of J. Russel. According to an embodiment, if the obtained coordinate information exists in the first quadrant, the coding robot 100 performs a first control command, and if it exists in the second quadrant, the coding robot 100 performs a second control command and, if present in the third quadrant, the coding robot 100 may execute the third control command, and if present in the fourth quadrant, the coding robot 100 may perform the fourth control command.
  • the first to fourth control commands may be commands related to movement of the coding robot 100 .
  • the coding robot 100 may obtain information on the change in emotion of the recognition subject based on the photographed image of the subject's face.
  • the coding robot 100 may obtain first coordinate information corresponding to the first emotion and second coordinate information corresponding to the second emotion when the emotion of the subject to be recognized is changed from the first emotion to the second emotion. there is.
  • the coding robot 100 may obtain a movement command corresponding to a vector value corresponding to the first coordinate and the second coordinate as a control command.
  • the coding robot 100 uses the first coordinates 510 as a starting point and The second coordinate 520 may be moved in a vector direction as an end point.
  • the initial movement speed of the coding robot 100 is proportional to the distance from the origin to the first coordinate 510
  • the movement acceleration of the coding robot 100 is the second coordinate from the first coordinate 510 . It may be proportional to the distance to 520 .
  • the initial movement speed V and the movement acceleration A may be expressed by the following equations.
  • k and l may be arbitrary positive constants.
  • the coding robot 100 may acquire the control data through various methods.
  • the coding robot 100 may generate a motion control block including a motion speed control command and a motion repetition number control command for the coding robot based on voice data.
  • the coding robot 100 may acquire at least one of motion speed information and motion repetition number information based on the voice data.
  • the coding robot 100 may acquire a control command corresponding to at least one of the motion speed and the number of repetitions of the coding robot based on at least one of the motion speed information and the motion repetition number information.
  • the coding robot 100 controls the motion speed or the number of repetitions of the coding robot based on the motion speed information or the motion repetition number information corresponding to the preset control information. It can be obtained by command.
  • the coding robot 100 responds to the pre-stored control command. can be controlled accordingly.
  • the coding robot 100 may generate syllable spacing information based on the voice data and generate motion speed information in response to the syllable spacing information.
  • the coding robot 100 For example, if the voice data is "moving quickly to the right" and there is no preset control information corresponding to "quickly", the coding robot 100 generates syllable spacing information based on the voice data, Motion speed information may be generated in response to the syllable interval information, and a movement speed control command corresponding to the generated motion speed information may be generated.
  • the coding robot 100 if the motion speed information is not found in the voice data, the coding robot 100 generates syllable interval information based on the voice data, generates motion speed information in response to the syllable interval information, and generates motion speed information It is possible to generate a movement speed control statement corresponding to .
  • the coding robot 100 calculates the first time difference between the end time of one syllable and the start time of the next syllable of any one syllable among the syllables included in the voice data, and the average time difference of the plurality of first time differences can be generated as syllable spacing information.
  • the coding robot 100 may calculate the time difference ratio of the average time difference indicated by the syllable interval information compared to the reference time difference, and apply the time difference ratio to the basic movement speed to generate the motion speed information.
  • the coding robot 100 calculates the time difference ratio as "120%” when the average time difference is “12 msec", the reference time difference is “10 msec", and the basic movement speed is “1x speed”, and the basic movement By applying the time difference ratio "120%” to the speed "1x speed”, it is possible to generate the operating speed information at "1.2x speed".
  • the coding robot 100 may generate signal strength information based on the voice data, and may generate information on the number of operation repetitions in response to the signal strength information.
  • the coding robot 100 when the motion repetition number information is not included in the voice data, the coding robot 100 generates signal strength information based on the voice signal, generates motion repetition number information in response to the signal strength information, and generates the generated It is possible to generate a motion repetition number control statement corresponding to the motion repetition number information.
  • the coding robot 100 generates signal strength information based on the voice signal if the motion repetition number information is not retrieved from the voice data, generates motion repetition number information in response to the signal strength information, and generates the generated motion
  • An operation repetition number control statement corresponding to the repetition number information may be generated.
  • the coding robot 100 may generate the maximum signal strength among the signal strengths according to time of the voice signal as signal strength information.
  • the coding robot 100 may calculate the signal strength ratio of the maximum signal strength indicated by the signal strength information to the reference signal strength, and apply the signal strength ratio to the basic motion repetition number to generate the motion repetition number information.
  • the coding robot 100 calculates the signal strength ratio as “200%” when the maximum signal strength is “200DB”, the reference signal strength is “100DB”, and the basic operation repetition number is “1”, and , by applying a signal strength ratio of “200%” to the basic number of repetitions of motion “1 time”, information on the number of repetitions of motion may be generated as “2 times”. In this case, the operation repetition number information may be rounded to generate a natural number.
  • the motion speed or motion repetition number of the coding robot may be acquired as a control command.
  • the coding robot 100 may recognize an object around the coding robot. Then, when the recognized object matches the pre-stored sign, the coding robot 100 may acquire control information corresponding to the pre-stored sign. The coding robot 100 may recognize a lane around the coding robot. The coding robot 100 moves along the recognized lane, but may move corresponding to the control information.
  • the coding robot 100 may obtain information on two consecutive line segments based on an image input to the coding robot 100 , and may obtain a lane area based on the obtained line segment information.
  • the coding robot 100 may obtain distance information between the obtained line segment and the coding robot. Thereafter, the coding robot 100 may control the coding robot based on lane area and distance information.
  • At least one of the above-described object recognition block, sign recognition block, lane recognition block, number recognition block, and letter recognition block may be used.
  • the components of the present invention may be implemented as a program (or application) to be executed in combination with a computer, which is hardware, and stored in a medium.
  • Components of the present invention may be implemented as software programming or software components, and similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , may be implemented in a programming or scripting language such as Java, assembler, or the like. Functional aspects may be implemented in an algorithm running on one or more processors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Educational Technology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

코딩 로봇의 제어 방법이 개시된다. 상기 제어 방법은, 상기 코딩 로봇이, 인식 대상자의 정보를 획득하는 단계; 상기 코딩 로봇이, 상기 획득된 인식 대상자의 정보를 바탕으로 제어 데이터를 획득하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는지 여부를 판단하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 명령에 대응되는 동작을 수행하는 단계; 및 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 제어 데이터를 분석하여, 기 설정된 제어 명령 중 어느 하나와 매칭 시키는 단계;를 포함하고, 상기 제어 데이터는, 상기 인식 대상자의 감정 데이터 및 음성 데이터 중 적어도 하나의 데이터인 것을 특징으로 한다.

Description

전자 장치 및 그의 제어 방법
본 발명은 전자 장치 및 그의 제어 방법에 관한 것이다.
최근에는 코딩 교육이 의무화가 되면서 어린 시절부터 소프트웨어와 친해질 수 있도록, 각종 IT(Information Technology) 기술이 접목된 스마트 토이(Smart Toy)가 관심을 끌고 있고, 그 중 하나가 상기 코딩 로봇이다.
그러나, 종래 코딩 로봇은, 코딩 작업에 의해서만 코딩 로봇이 작동됨으로써, 상기 코딩 로봇을 작동시키기 위해서는 코딩 교육이 꼭 선행되어야 하고, 그러한 코딩 교육이 선행되었더라도 만들어진 코딩에 오류가 있거나 코딩 실력이 부족하면 상기 코딩 로봇이 작동되지 않음에 따라, 상기 코딩 로봇에 대한 흥미가 급격히 감소되는 문제가 있었다.
나아가, 종래의 코딩 로봇은 단순한 코딩 명령에 대한 단순한 동작만을 수행할 수 있어, 코딩 로봇의 사용자와의 다양한 인터랙션이 불가능하다는 한계가 존재하였다.
이에 따라 쉽게 동작하되 사용자의 감정 등과 같은 다양한 입력에 따라 다양한 동작을 구현할 수 있는 코딩 로봇의 필요성이 대두되고 있다.
본 발명이 해결하고자 하는 과제는 전자 장치 및 그의 제어 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 코딩 로봇의 제어 방법은, 상기 코딩 로봇이, 인식 대상자의 정보를 획득하는 단계; 상기 코딩 로봇이, 상기 획득된 인식 대상자의 정보를 바탕으로 제어 데이터를 획득하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는지 여부를 판단하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 명령에 대응되는 동작을 수행하는 단계; 및 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 제어 데이터를 분석하여, 기 설정된 제어 명령 중 어느 하나와 매칭 시키는 단계;를 포함하고, 상기 제어 데이터는, 상기 인식 대상자의 감정 데이터 및 음성 데이터 중 적어도 하나의 데이터인 것을 특징으로 한다.
상술한 본 발명의 다양한 실시예에 따라, 코딩 로봇은 인식 대상자의 감정 또는 음성을 판단하고, 판단된 감정 또는 음성에 대응되는 코딩 블록을 바탕으로 제어될 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 코딩 로봇을 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 코딩 로봇의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 코딩 로봇의 제어 방법을 설명하기 위한 흐름도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 인식된 사용자의 감정을 판단하는 방법을 설명하기 위한 예시도이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 코딩 로봇의 제어 방법은, 상기 코딩 로봇이, 인식 대상자의 정보를 획득하는 단계; 상기 코딩 로봇이, 상기 획득된 인식 대상자의 정보를 바탕으로 제어 데이터를 획득하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는지 여부를 판단하는 단계; 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 명령에 대응되는 동작을 수행하는 단계; 및 상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 제어 데이터를 분석하여, 기 설정된 제어 명령 중 어느 하나와 매칭 시키는 단계;를 포함하고, 상기 제어 데이터는, 상기 인식 대상자의 감정 데이터 및 음성 데이터 중 적어도 하나의 데이터인 것을 특징으로 한다.
이때, 상기 제어 데이터가 상기 인식 대상자의 감정 데이터인 경우, 상기 제어 데이터를 획득하는 단계는, 상기 코딩 로봇이, 상기 인식 대상자의 얼굴 촬영 이미지를 획득하는 단계; 상기 코딩 로봇이, 상기 얼굴 촬영 이미지를 바탕으로 모델 변수를 획득하는 단계; 상기 코딩 로봇이, 상기 획득된 모델 변수를 바탕으로 상기 인식 대상자가 기 등록된 사용자의 얼굴과 일치하는지 판단하는 단계; 상기 인식 대상자가, 상기 기 등록된 사용자와 일치하는 경우, 상기 코딩 로봇이, 상기 얼굴 촬영 이미지를 바탕으로 상기 얼굴 촬영 이미지에 대응되는 특징값을 획득하는 단계; 상기 코딩 로봇이, 상기 획득된 특징값을 바탕으로 상기 인식 대상자의 눈, 코, 입을 포함하는 얼굴 부위를 판단하는 단계; 상기 코딩 로봇이, 상기 판단된 얼굴 부위를 바탕으로 상기 인식 대상자의 감정을 판단하는 단계; 및 상기 코딩 로봇이, 상기 판단된 감정을 바탕으로 상기 제어 데이터를 획득하는 단계;를 포함할 수 있다.
이때, 상기 제어 명령에 대응되는 동작을 수행하는 단계는, 상기 코딩 로봇이, 상기 판단된 감정에 대응되는 2차원 벡터 공간상의 좌표 정보를 획득하는 단계; 상기 벡터 공간상의 좌표 정보에 대응되는 제어 명령을 획득하는 단계; 및 상기 제어 명령에 대응되는 동작을 수행하는 단계; 를 포함할 수 있다.
이때, 상기 제어 명령에 대응되는 동작을 수행하는 단계는, 상기 코딩 로봇이, 상기 인식 대상자의 얼굴 촬영 이미지를 바탕으로 상기 인식 대상자의 감정 변화 정보를 획득하는 단계; 상기 코딩 로봇이, 상기 인식 대상자의 감정이 제1 감정에서 제2 감정으로 변경된 경우, 상기 제1 감정에 대응되는 제1 좌표 정보 및 상기 제2 감정에 대응되는 제2 좌표 정보를 획득하는 단계; 및 상기 코딩 로봇이, 상기 제1 좌표 및 상기 제2 좌표에 대응되는 벡터값에 대응되는 이동 명령을 상기 제어 명령으로 획득하는 단계;를 포함할 수 있다.
이때, 상기 제어 명령이, 상기 코딩 로봇을 이동시키기 위한 제어 명령인 경우, 상기 제어 방법은, 상기 코딩 로봇이, 상기 코딩 로봇 주변의 물체를 인식하는 단계; 상기 코딩 로봇이, 상기 인식된 물체가 기 저장된 표지판과 일치하는 경우, 상기 기 저장된 표지판데 대응되는 제어 정보를 획득하는 단계; 상기 코딩 로봇이, 상기 코딩 로봇 주변의 차선을 인식하는 단계; 및 상기 코딩 로봇이, 상기 인식된 차선을 따라 이동하되, 상기 제어 정보에 대응되게 이동하는 단계; 를 포함하고, 상기 차선을 인식하는 단계는, 상기 코딩 로봇으로 입력되는 영상을 바탕으로 연속된 두개의 선분 정보를 획득하고, 획득된 선분 정보를 바탕으로 차선 영역을 획득하는 단계; 상기 획득된 선분과 상기 코딩 로봇의 거리 정보를 획득하는 단계; 및 상기 차선 영역 및 상기 거리 정보를 바탕으로 상기 코딩 로봇을 제어하는 단계; 를 포함할 수 있다.
이때, 상기 제어 데이터가 상기 인식 대상자의 음성 데이터인 경우, 상기 제어 방법은, 상기 코딩 로봇이, 상기 음성 데이터를 바탕으로 상기 코딩 로봇에 대한 동작 속도 제어 명령 및 동작 반복수 제어 명령을 포함하는 동작 제어 블록을 생성하는 단계; 상기 코딩 로봇이, 상기 음성 데이터를 바탕으로 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 획득하는 단계; 및 상기 코딩 로봇이, 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 바탕으로 상기 코딩 로봇의 동작 속도 및 동작 반복수 중 적어도 하나에 대응되는 제어 명령을 획득하는 단계; 를 포함할 수 있다.
이때, 상기 코딩 로봇의 동작 속도 및 동작 반복수 중 적어도 하나에 대응되는 제어 명령을 획득하는 단계는, 상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 정보에 대응되는 동작 속도 정보 또는 동작 반복수 정보를 바탕으로 상기 코딩 로봇의 동작 속도 또는 동작 반복수를 상기 제어 명령으로 획득하는 단계; 상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 음성 데이터를 바탕으로 음절 간격 정보를 생성하고, 상기 음절 간격 정보에 대응하여 상기 동작 속도 정보를 생성하는 단계; 상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 음성 데이터를 바탕으로 신호 세기 정보를 생성하고, 상기 신호 세기 정보에 대응하여 상기 동작 반복수 정보를 생성하는 단계; 및 상기 생성된 동작 속도 정보 또는 동작 반복수를 바탕으로 상기 코딩 로봇의 동작 속도 또는 동작 반복수를 상기 제어 명령으로 획득하는 단계;를 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 코딩 로봇을 설명하기 위한 예시도이다.
본 발명에 따른 코딩 로봇(100)은 컴퓨터 언어로 프로그래밍된 코딩 언어 또는 프로그래밍된 코딩 블록에 의해 동작할 수 있다. 이때, 코딩이란 C언어 등의 컴퓨터 언어를 이용하여 순차적이고 논리적인 흐름을 프로그래밍(programming)하는 작업이고, 코딩 블록이란 특정 명령어를 수행하기 위하여 완성된 코딩 명령을 포함하는 블록을 의미할 수 있다. 즉, 코딩 로봇(100)은 작성된 코딩 또는 선택된 코딩 블록이 전달하는 명령에 따라 작동할 수 있다.
본 발명에 따른 코딩 로봇(100)은, 카메라, 마이크, 메모리, 프로세서 및 구동부를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 코딩 로봇의 구성을 상세히 나타내는 블록도이다.
구체적으로, 코딩 로봇(100)은 입력부(110), 출력부(120), 프로세서(130)외에 통신부(140), 메모리(150) 및 감지부(160)를 더 포함할 수 있다.
입력부(110)는 다양한 외부 입력을 획득하기 위하여 카메라(111), 마이크(112), 터치 패널(113) 등을 포함할 수 있다.
카메라(111)는 코딩 로봇(100)주변의 영상 데이터를 획득하기 위한 구성이다. 카메라(111)는 정지 영상 및 동영상을 촬영할 수 있다. 예로, 카메라(111)는 하나 이상의 이미지 센서, 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있으며, 복수의 카메라(111)로 구성될 수 있다. 이때, 불필요한 전력 소모를 막기 위해 카메라(111)는 특정 조건을 만족하는 경우에만 활성화될 수 있다. 예를 들어, 카메라(111)는 코딩 로봇(100) 주변에 사용자가 감지된 경우에만 활성화될 수 있다. 또는 코딩 로봇(100)이 IoT 시스템의 일부인 경우, 카메라(111)는 현관문이 열리거나, 실내 조명이 점등되는 조건을 만족하는 경우 활성화될 수 있다. 다만, 상술한 실시예에 한정되는 것은 아니고, 카메라(111)는 로봇에 전원이 인가되면 항상 활성화될 수도 있다. 카메라(111)가 항상 활성화된 경우, 카메라(111)는 특정 조건을 만족하는 경우에만, 영상을 저장하거나, 영상 처리를 수행할 수 있다. 특정 조건이란, 코딩 로봇(100) 주변에 사용자가 감지된 경우에 대한 조건, 코딩 로봇(100)이 IoT 시스템의 일부인 경우, 카메라(111)는 현관문이 열리거나, 실내 조명이 점등되는 조건일 수 있다.
마이크(112)는 코딩 로봇(100) 주변의 소리를 획득하기 위한 구성이다. 마이크(112)는 외부의 음향 신호를 입력 받아 전기적인 음성 정보를 생성할 수 있으며, 코딩 로봇(100)은 복수개의 마이크(112)를 구비할 수 있다. 코딩 로봇(100)은 복수개의 마이크 각각에 입력되는 음향신호의 도착 시간 차이를 이용하여 음향 신호를 발생시키는 음원(Sound Source)의 방향을 추정할 수 있다. 마이크(112)는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. 카메라(111)의 경우와 같이, 마이크(112)는 불필요한 전력 소모를 막기 위해 특정 조건을 만족하는 경우에만 활성화될 수 있다. 즉, 마이크(112)는 코딩 로봇(100) 주변에 사용자가 감지된 경우에만 활성화될 수 있다. 또는 코딩 로봇(100)이 IoT 시스템의 일부인 경우, 마이크(112)는 현관문이 열리거나, 실내 조명이 점등되는 조건을 만족하는 경우 활성화될 수 있다. 다만, 상술한 실시예에 한정되는 것은 아니고, 카메라(111)의 경우와 같이 마이크(112)는 항상 활성화되어 있을 수도 있음은 물론이다.
터치패널(113)은 다양한 사용자 입력을 입력 받을 수 있는 구성이다. 터치 패널(113)는 사용자 조작에 의한 사용자 데이터를 입력 받을 수 있다. 터치 패널 또한 불필요한 전력 소모를 막기 위해 상기와 같은 조건하에서 활성화될 수 있다. 또는 터치 패널(113)은 사용자의 터치가 감지된 경우에 한하여 활성화될 수도 있다. 터치 패널(113)은 후술하는 디스플레이와 결합하여 구성될 수도 있다.
입력부(110)는 상술한 카메라(111), 마이크(112), 터치 패널(113) 외에도 다양한 사용자 데이터를 입력 받기 위한 다양한 구성일 수 있음은 물론이다.
출력부(112)는 구동부(121), 오디오 출력부(122) 및 디스플레이(123)로 구성될 수 있다.
구동부(121)는 입력부(110)를 통해 획득한 사용자 데이터에 대한 반응으로 다양한 모션을 출력하기 위한 구성이다. 본 발명의 일 실시예에 따른 코딩 로봇(100)이 인간형 코딩 로봇(100)인 경우, 구동부(121)는 인간의 관절에 대응되는 적어도 하나의 관절부를 구동할 수 있는 모터 또는 액추에이터(Actuator)를 포함할 수 있다. 또 다른 실시예로, 본 발명의 일 실시예에 따른 코딩 로봇(100)이 바퀴형 로봇인 경우, 구동부(121)은 바퀴를 구동할 수 있는 모터 또는 액추에이터를 포함할 수 있다.
오디오 출력부(122)는 입력부(110)를 통해 획득한 사용자 데이터에 대한 반응으로, 다양한 오디오 신호를 출력하기 위한 구성이다. 오디오 출력부(122)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력할 수 있다. 특히, 오디오 출력부(122)는 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
디스플레이(123)는 입력부(110)를 통해 획득한 사용자 데이터에 대한 다양한 반응으로, 영상을 출력하기 위한 구성이다. 일 실시예로, 디스플레이(123)는 감정을 표현하기 위한 아바타(Avartar) 영상을 출력할 수 있다. 즉, 코딩 로봇(100)이 입력부(110)를 통해 획득된 사용자 데이터에 대한 반응으로 기뻐하는 감정을 출력하고자 하는 경우, 디스플레이(123)에 표시되는 아바타 영상을 통해 기뻐하는 감정을 출력할 수 있다. 한편, 다양한 영상을 제공하기 위한 디스플레이(123)는 다양한 형태의 디스플레이 패널로 구현될 수 있다. 예를 들어, 디스플레이 패널은 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), AM-OLED(Active-Matrix Organic Light-Emitting Diode), LcoS(Liquid Crystal on Silicon) 또는 DLP(Digital Light Processing) 등과 같은 다양한 디스플레이 기술로 구현될 수 있다. 또한, 디스플레이(123)는 플렉서블 디스플레이(flexible display)의 형태로 코딩 로봇(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다.
통신부(140)는 외부 장치와 통신을 수행할 수 있다. 특히, 통신부(140)는 와이파이 칩(141), 블루투스 칩(142), NFC 칩(143) 및 이동 통신 칩(144) 등과 같은 무선 통신을 수행하기 위한 다양한 통신 칩 또는 회로를 포함할 수 있다. 이때, 와이파이 칩(141), 블루투스 칩(142), NFC 칩(143)은 각각 LAN 방식, WiFi 방식, 블루투스 방식, NFC 방식으로 통신을 수행한다. 와이파이 칩(141)이나 블루투스칩(142)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신한 후, 이를 이용하여 통신을 연결하여 각종 정보들을 송수신할 수 있다. 이동 통신칩(144)은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. 한편, 통신부(140)는 USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함하는 유선 통신 방식으로 통신을 수행할 수도 있음은 물론이다. 특히 통신부는 외부 장치들과 통신을 수행하여 사용자 상태를 판단하기 위한 다양한 데이터를 송수신할 수 있다. 또는 사용자 상태 분석이 외부 서버에서 수행되는 경우, 통신부(140)는 수집한 학습 데이터를 외부 서버로 전송하고, 학습 데이터의 분석 결과를 수신할 수 있다.
메모리(150)는, 예를 들면, 코딩 로봇(100)의 적어도 하나의 구성요소를 제어하기 위한 명령 또는 데이터를 저장할 수 있다. 일 실시예에 따르면, 메모리(150)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널(Kernel), 미들웨어(Middle-ware), 어플리케이션 프로그래밍 인터페이스(Application Programing Interface: API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어 또는 API의 적어도 일부는, 운영 시스템(Operating System: OS)으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 코딩 로봇(100)의 개별 구성요소에 접근할 때, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 적어도 하나에 코딩 로봇(100)의 시스템 리소스를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션 프로그램이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
또한, 메모리(150)는, 내장 메모리 및 외장 메모리 중 적어도 하나를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(Solid State Drive: SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 코딩 로봇(100)과 기능적으로 또는 물리적으로 연결될 수 있다.
감지부(160)는 코딩 로봇(100)의 주변 정보를 획득하기 위한 구성이다. 상술한 바와 같이, 감지부(160)는 다양한 센서로 구성될 수 있으며, 센서에 의해 감지된 정보를 사용자 데이터로 획득할 수 있다. . 감지부(160)는 적외선 센서, 압력 센서, 조도 센서, 습도 센서, 자이로 센서 등 다양한 센서를 포함할 수 있다. 예를 들어, 감지부(160)가 적외선 센서를 포함하는 경우, 적외선 센서를 통해 사용자의 존재 유무에 대한 데이터를 사용자 데이터로 획득하거나, 사용자의 체온 등에 대한 데이터를 획득할 수 있다. 또는, 감지부(160)가 압력 센서를 포함하는 경우, 사용자와의 물리적인 접촉에 대한 데이터를 사용자 데이터로 획득할 수 있다. 또는, 코딩 로봇(100)이 조도 센서, 습도 센서 등을 포함하는 경우, 사용자의 주변 환경과 관련된 습도 및 조도에 대한 정보를 사용자 데이터로 획득할 수 있다.
프로세서(130)는 메모리(150)에 저장된 각종 프로그램을 이용하여 코딩 로봇(100)의 전반적인 동작을 제어할 수 있다.
프로세서(130)는 RAM(131), ROM(132), 그래픽 처리부(133), 메인 CPU(134), 및 제1 내지 n 인터페이스(135-1~135-n) 및 버스(136)로 구성될 수 있다. 이때, RAM(131), ROM(132), 그래픽 처리부(133), 메인 CPU(134) 제1 내지 n 인터페이스(135-1 ~ 135-n) 등은 버스(136)를 통해 서로 연결될 수 있다.
RAM(131)은 OS 및 어플리케이션 프로그램을 저장한다. 구체적으로, 코딩 로봇(100)이 부팅되면 OS가 RAM(131)에 로딩(loading)되고, 사용자가 선택한 각종 어플리케이션 데이터가 RAM(131)에 로딩될 수 있다.
ROM(132)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴 온(Turn-On) 명령이 입력되어 전원이 공급되면, 메인 CPU(134)는 ROM(132)에 저장된 명령어에 따라 메모리(150)에 저장된 OS를 RAM(131)에 복사하고, OS를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(134)는 메모리(150)에 저장된 각종 어플리케이션 프로그램을 RAM(131)에 복사하고, RAM(131)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(133)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 GUI(Graphical User Interface) 아이템, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 여기서, 연산부는 입력부(140)로부터 수신된 제어 명령을 이용하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산하는 구성일 수 있다. 그리고, 렌더링부는 연산부에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성하는 구성이 일 수 있다. 이러한 렌더링부에서 생성된 화면은 디스플레이(130)의 디스플레이 영역 내에 표시될 수 있다.
메인 CPU(134)는 메모리(150)에 액세스하여, 메모리(150)에 저장된 OS를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(134)는 메모리(150)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
제1 내지 n 인터페이스(135-1 내지 135-n)는 상술한 각종 구성요소들과 연결된다. 제1 내지 n 인터페이스(135-1 내지 135-n) 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
이하에서는, 도 3 내지 도 5를 이용하여 본 발명에 따른 다양한 실시예를 설명한다.
도 3은 본 발명의 일 실시예에 따른 코딩 로봇의 제어 방법을 설명하기 위한 흐름도이다.
단계 S110에서, 코딩 로봇(100)은, 인식 대상자의 정보를 획득할 수 있다.
일 실시예로, 인식 대상자의 정보는 상술한 입력부(110) 또는 감지부(160)에 의해 획득될 수 있다.
단계 S120에서, 코딩 로봇(100)은, 획득된 인식 대상자의 정보를 바탕으로 제어 데이터를 획득할 수 있다.
단계 S130에서, 코딩 로봇(100)은, 제어 데이터가 기 설정된 제어 정보와 일치하는지 여부를 판단할 수 있다.
일 실시예로, 코딩 로봇(100)은, 제어 데이터와 매칭된 제어 정보를 메모리(150)에 미리 저장하고 있을 수 있다. 예를 들어, 제어 데이터가 화난 감정인 경우, 메모리(150)는 화난 감정에 대응되는 코딩 로봇(100)의 동작 정보를 제어 명령으로 저장하고 있을 수 있다.
단계 S140에서, 코딩 로봇(100)은, 제어 데이터가 기 설정된 제어 정보와 일치하는 경우, 기 설정된 제어 명령에 대응되는 동작을 수행할 수 있다.
단계 S150에서, 코딩 로봇(100)은, 제어 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 제어 데이터를 분석하여, 기 설정된 제어 명령 중 어느 하나와 매칭 시킬 수 있다.
즉, 인식 대상자의 정보를 바탕으로 획득된 제어 데이터에 매칭된 제어 명령이 존재하지 않는 경우라도, 코딩 로봇(100)은 제어 데이터를 분석하여 기 저장된 제어 명령 중 적어도 하나의 제어 명령에 매칭시킬 수 있다.
한편, 본 발명에서 제어 데이터는, 인식 대상자의 감정 데이터 및 음성 데이터 중 적어도 하나의 데이터를 의미할 수 있다.
한편, 본 발명의 다양한 실시예에 따라, 제어 데이터가 인식 대상자의 감정 데이터인 경우, 코딩 로봇(100)은 다양한 방법을 통해 제어 데이터를 획득할 수 있다.
구체적으로, 코딩 로봇(100)은, 인식 대상자의 얼굴 촬영 이미지를 획득할 수 있다. 이후, 코딩 로봇(100)은, 얼굴 촬영 이미지를 바탕으로 모델 변수를 획득할 수 있다. 이후, 코딩 로봇(100)은, 획득된 모델 변수를 바탕으로 인식 대상자가 기 등록된 사용자의 얼굴과 일치하는지 판단할 수 있다. 이후, 인식 대상자가, 기 등록된 사용자와 일치하는 경우, 코딩 로봇(100)은, 얼굴 촬영 이미지를 바탕으로 얼굴 촬영 이미지에 대응되는 특징값을 획득할 수 있다. 이후, 코딩 로봇(100)은, 획득된 특징값을 바탕으로 인식 대상자의 눈, 코, 입을 포함하는 얼굴 부위를 판단할 수 있다. 이후, 코딩 로봇(100)은, 판단된 얼굴 부위를 바탕으로 인식 대상자의 감정을 판단할 수 있다.
일 실시예로, 코딩 로봇(100)은 OpenCV, Tensorflow, Dlib라는 라이브러리를 바탕으로 코딩로봇의 사용자를 인식하고, 인식 대상자의 감정을 판단할 수 있다.
이때, OpenCV는 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리로, 로보미는 카메라를 다루고 카메라 영상을 처리할 수 있으며, TensorFlow는 다양한 작업에 대해 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리로 심볼릭 수학 라이브러리이자, 뉴럴 네트워크같은 기계학습 응용프로그램에도 사용되며 얼굴 인식 및 물체 인식에 사용될 수 있으며, Dlib는 프로그래밍 언어 C++로 작성된 범용 크로스 플랫폼 소프트웨어 라이브러리로, 코딩 로봇(100)은 Dlib중 얼굴 랜드마크(눈, 코, 입 등 영역) 인식 기능을 이용해 감정 인식을 수행할 수 있다.
구체적으로, 코딩 로봇(100)은 상술한 다양한 라이브러리를 바탕으로 얼굴 인식을 수행할 수 있다. 이를 위해, 코딩 로봇(100)은 기 작성된 코딩 블록을 포함할 수 있다.
구체적으로, 얼굴 저장 블록은 인식된 얼굴을 OpenCV를 이용해 이미지 파일로 저장할 수 있다.
또한, 얼굴 모델 생성 블록은 저장된 얼굴 사진을 기반으로, Tensorflow 라이브러리를 이용해 모델 변수를 생성할 수 있다. 생성된 모델 변수는 얼굴 인지 블록에서 사용될 수 있다.
또한, 얼굴 인지 블록은 모델 변수를 이용해서, 얼굴이 등록된 얼굴과 얼마나 일치하는지 계산할수 있다.
또한, 얼굴 감정 인식 블록은 Dlib를 이용해, 도 4에 도시된 바와 같이, 얼굴의 꼭짓점 등을 점으로 나타냅니다. 이 점들의 위치값을 이용하여 눈의 크기나 눈썹 각도, 입의 크기 등을 계산해 감정을 추론할수 있다. 이외에도 얼굴 감정 인식 모델은 눈, 코, 입의 위치를 계산할수 있으므로, 눈코입 위치에 이미지를 덧그릴 수 있음은 물론이다.
일 실시예에 따라, 코딩 로봇(100)은 하기 코드를 활용하여 인식 대상자의 얼굴 표정을 판단할 수 있다.
[알고리즘 1]
def detect_face_elem(o_frame):
global detector
global predictor
if detector is None or predictor is None:
if "dlib" not in sys.modules:
import dlib
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
frame = copy.deepcopy(o_frame)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
line_brow_x = []
line_brow_y = []
faces = detector(gray)
for face in faces:
#200107
x1 = face.left()
y1 = face.top()
x2 = face.right()
y2 = face.bottom()
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 1)
landmarks = predictor(gray, face)
## "Jaw"
for n in range(0, 17):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (19, 199, 109), -1)
## "Nose"
for n in range(27, 35):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (180, 42, 220), -1)
#cv2.putText(frame, str(n), (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 255, 255), 2, 4)
#31-34, 27-33
## "Left Eye"
for n in range(42, 48):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (163, 38, 32), -1)
## "Right Eye"
for n in range(36, 42):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (158, 163, 32), -1)
#cv2.putText(frame, str(n), (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (0, 0, 255), 2, 4)
## "Left Eyebrow"
for n in range(22, 27):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (168, 100, 168), -1)
## "Right Eyebrow"
for n in range(17, 22):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (230, 159, 23), -1)
## "Mouth"
for n in range(48, 68):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(frame, (x, y), 1, (79, 76, 240), -1)
#cv2.putText(frame, str(n), (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 255), 2, 4)
face_width = x2 - x1
face_height = y2 - y1
# 표정인식의 근거로 임의 n포인트의 위치관계 분석
mouth_width = (landmarks.part(54).x - landmarks.part(48).x) / face_width # 입을 벌린 정도
mouth_height = (landmarks.part(66).y - landmarks.part(62).y) / face_width # 입을 벌린 정도
# calc center pos
face_x = face_width / 2 + x1
face_y = face_height / 2 + y1
face_pos = [face_x, face_y, face_width, face_height, x1, y1]
mouth_x = (landmarks.part(54).x - landmarks.part(48).x) / 2 + landmarks.part(48).x
mouth_y = (landmarks.part(66).y - landmarks.part(62).y) / 2 + landmarks.part(62).y
mouth_pos = [mouth_x, mouth_y, landmarks.part(54).x - landmarks.part(48).x, landmarks.part(66).y - landmarks.part(62).y, landmarks.part(48).x, landmarks.part(50).y]
nose_x = (landmarks.part(34).x - landmarks.part(31).x) / 2 + landmarks.part(31).x
nose_y = (landmarks.part(33).y - landmarks.part(27).y) / 2 + landmarks.part(27).y
nose_pos = [mouth_x, mouth_y, landmarks.part(34).x - landmarks.part(31).x, landmarks.part(33).y - landmarks.part(27).y, landmarks.part(31).x, landmarks.part(27).y]
eye_x1 = (landmarks.part(39).x - landmarks.part(36).x) / 2 + landmarks.part(36).x
eye_y1 = (landmarks.part(41).y - landmarks.part(37).y) / 2 + landmarks.part(37).y
eye_pos1 = [eye_x1, eye_y1, landmarks.part(39).x - landmarks.part(36).x, landmarks.part(41).y - landmarks.part(37).y, landmarks.part(36).x, landmarks.part(37).y]
eye_x2 = (landmarks.part(45).x - landmarks.part(42).x) / 2 + landmarks.part(42).x
eye_y2 = (landmarks.part(47).y - landmarks.part(43).y) / 2 + landmarks.part(43).y
eye_pos2 = [eye_x2, eye_y2, landmarks.part(45).x - landmarks.part(42).x, landmarks.part(47).y - landmarks.part(43).y, landmarks.part(42).x, landmarks.part(43).y]
# 눈썹 위의 10가지 특징으로 눈썹을 고르는 정도와 눈살을 찌푸리는 정도를 분석
brow_sum = 0 # 높이의 합
frown_sum = 0 # 양쪽 눈썹 거리의 합
for j in range(17, 21):
brow_sum += (landmarks.part(j).y - y1) + (landmarks.part(j + 5).y - y1)
frown_sum += landmarks.part(j + 5).x - landmarks.part(j).x
line_brow_x.append(landmarks.part(j).x)
line_brow_y.append(landmarks.part(j).y)
tempx = np.array(line_brow_x)
tempy = np.array(line_brow_y)
z1 = np.polyfit(tempx, tempy, 1) # 일차직선 합성
brow_k = -round(z1[0], 3) # 합 곡선의 기울기와 실제 눈썹의 기울기 방향은 반대
eye_sum = (landmarks.part(41).y - landmarks.part(37).y + landmarks.part(40).y - landmarks.part(38).y +
landmarks.part(47).y - landmarks.part(43).y + landmarks.part(46).y - landmarks.part(44).y)
eye_height = (eye_sum / 4) / face_width
return frame, face_pos, eye_pos1, eye_pos2, nose_pos, mouth_pos, mouth_width, mouth_height, eye_height, brow_k
return frame, [], [], [], [], [], -1, -1, -1, -1
상술한 다양한 코딩 블록 이외에도, 코딩 로봇(100)은 다양한 코딩 블록을 포함할 수 있다. 예를 들어, 물체 인식 블록은 약 32개의 물체를 인식할수 있는 코딩 명령어가 저장된 것으로 Tensorflow 기반으로 동작할 수 있다. 또는, 표지판 인식 블록은 사용자가 직접 표지판을 학습시키기 위한 코딩 블록 및 학습한 데이터를 기반으로 표지판을 인식하는 블록으로 구성될 수 있다. 또는, 차선 인식 블록은 화면에서 연속되는 두개의 선을 인식후, 선과 자동차 사이 거리를 측정해 한쪽으로 치우처져 있다면 차선 한가운데로 이동하여 이탈을 막기 위한 코딩 블록이다. 또는, 이외 0에서 9까지의 숫자를 인식하는 숫자 인식 블록, 영어 알파벳을 인식하는 글자 인식 블록이 본 발명의 다양한 실시예에 따라 응용될 수 있음은 물론이다.
이후, 코딩 로봇(100)은, 판단된 감정을 바탕으로 제어 데이터를 획득할 수 있다.
한편, 코딩 로봇(100)은 상술한 실시예에 의해 판단된 감정에 대응되는 제어 명령에 따라 제어될 수 있다.
일 실시예로, 코딩 로봇(100)은, 판단된 감정에 대응되는 2차원 벡터 공간상의 좌표 정보를 획득할 수 있다. 이후, 코딩 로봇(100)은, 벡터 공간상의 좌표 정보에 대응되는 제어 명령을 획득할 수 있다.
예를 들어, 2차원 벡터 공간은 도 5에 도시된 2차원 공간일 수 있다. 이때, 2차원 공간은 J. Russel의 원형 감정 모델 상에 표시될 수 있음은 물론이다. J. Russel의 원형 감정 모델의 가로축은 감정이 긍정적인지 부정적인지 여부를 나타내며, 세로축은 활동성을 나타낸다. 즉, 코딩 로봇(100)이 판단한 인식 대상자의 감정은 도 5에 도시된 J. Russel의 원형 감정 모델 상의 하나의 좌표 정보로 획득될 수 있다.
코딩 로봇(100)는 J. Russel의 원형 감정 모델 상의 각각의 좌표 정보에 대응되는 제어 명령을 저장할 수 있다. 일 실시예에 따라, 획득된 좌표 정보가 제1 사분면에 존재하면, 코딩 로봇(100)은 제1 제어 명령을 수행하고, 제2사분면에 존재하면, 코딩 로봇(100)은 제2 제어 명령을 수행하고, 제3사분면에 존재하면, 코딩 로봇(100)은 제3 제어 명령을 수행하고, 제4사분면에 존재하면, 코딩 로봇(100)은 제4 제어 명령을 수행할 수 있다.
일 실시예로, 제1 제어 명령 내지 제4 제어 명령은 코딩 로봇(100)의 이동과 관련된 명령일 수 있다.
한편, 본 발명의 또 다른 실시예에 따라, 코딩 로봇(100)은, 인식 대상자의 얼굴 촬영 이미지를 바탕으로 인식 대상자의 감정 변화 정보를 획득할 수 있다.
이후, 코딩 로봇(100)은, 인식 대상자의 감정이 제1 감정에서 제2 감정으로 변경된 경우, 제1 감정에 대응되는 제1 좌표 정보 및 제2 감정에 대응되는 제2 좌표 정보를 획득할 수 있다.
이후, 코딩 로봇(100)은, 제1 좌표 및 제2 좌표에 대응되는 벡터값에 대응되는 이동 명령을 제어 명령으로 획득할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 인식 대상자의 감정이 제1 좌표(510)에서 제2 좌표(520)으로 변경된 경우, 코딩 로봇(100)은 제1 좌표(510)를 시작점으로 하고 제2 좌표(520)를 종점으로 하는 벡터 방향으로 이동할 수 있다.
일 실시예에 따라, 코딩 로봇(100)의 초기 이동 속도는 원점부터 제1 좌표(510)까지의 거리에 비례하고, 코딩 로봇(100)의 이동 가속도는 제1 좌표(510)에서 제2 좌표(520)까지의 거리에 비례할 수 있다. 예를 들어, 제1 좌표(510)이 (a,b)이고, 제2 좌표가 (c,d)인 경우, 초기 이동 속도 V 및 이동 가속도 A는 하기 수학식과 같이 표시될 수 있다.
Figure PCTKR2020018083-appb-img-000001
Figure PCTKR2020018083-appb-img-000002
이때, k 및 l은 임의의 양의 상수일 수 있다.
한편, 본 발명의 또 다른 실시예에 따라, 제어 데이터가 인식 대상자의 음성 데이터인 경우, 코딩 로봇(100)은 다양한 방법을 통해 제어 데이터를 획득할 수 있다.
구체적으로, 코딩 로봇(100)은, 음성 데이터를 바탕으로 코딩 로봇에 대한 동작 속도 제어 명령 및 동작 반복수 제어 명령을 포함하는 동작 제어 블록을 생성할 수 있다.
이후, 코딩 로봇(100)은, 음성 데이터를 바탕으로 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 획득할 수 있다.
이후, 코딩 로봇(100)은, 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 바탕으로 코딩 로봇의 동작 속도 및 동작 반복수 중 적어도 하나에 대응되는 제어 명령을 획득할 수 있다.
이때, 코딩 로봇(100)은, 음성 데이터가 기 설정된 제어 정보와 일치하는 경우, 기 설정된 제어 정보에 대응되는 동작 속도 정보 또는 동작 반복수 정보를 바탕으로 코딩 로봇의 동작 속도 또는 동작 반복수를 제어 명령으로 획득할 수 있다.
예를 들어, 음성 데이터가 "오른쪽으로 빠르게 움직여"이고, 이에 대응되는 기 저장된 제어 명령(예를 들어, 오른쪽으로 3단계 속도만큼 이동)이 존재하면, 코딩 로봇(100)은 기 저장된 제어 명령에 따라 제어 될 수 있다.
그러나, 코딩 로봇(100)은, 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 음성 데이터를 바탕으로 음절 간격 정보를 생성하고, 음절 간격 정보에 대응하여 동작 속도 정보를 생성할 수 있다.
예를 들어, 음성 데이터가 "오른쪽으로 빠르게 움직여"이고, "빠르게"에 대응되는 기 설정된 제어 정보가 존재하지 않는 경우, 코딩 로봇(100)은, 음성 데이터에 기초하여 음절 간격 정보를 생성하고, 음절 간격 정보에 대응하여 동작 속도 정보를 생성하고, 생성된 동작 속도 정보에 대응하는 이동 속도 제어 명령문을 생성할 수 있다.
구체적으로, 코딩 로봇(100)는 음성 데이터에서 동작 속도 정보가 검색되지 않으면, 음성 데이터에 기초하여 음절 간격 정보를 생성하고, 음절 간격 정보에 대응하여 동작 속도 정보를 생성하고, 생성된 동작 속도 정보에 대응하는 이동 속도 제어 명령문을 생성할 수 있다.
구체적으로, 코딩 로봇(100)는 음성 데이터에 포함된 음절 중에서 어느 하나의 음절의 종료 시점과 어느 하나의 음절의 다음 음절의 시작 시점 간에 제1 시간차를 산출하고, 복수의 제1 시간차의 평균 시간차를 음절 간격 정보로 생성할 수 있다.
이후, 코딩 로봇(100)는 기준 시간차 대비 음절 간격 정보가 나타내는 평균 시간차의 시간차 비율을 산출하고, 기본 이동 속도에 시간차 비율을 적용하여 동작 속도 정보로 생성할 수 있다.
예를 들어, 코딩 로봇(100)는 평균 시간차가 "12msec"이고, 기준 시간차가 "10msec"이며, 기본 이동 속도가 "1배속"인 경우, 시간차 비율을 "120%"로 산출하고, 기본 이동 속도 "1배속"에 시간차 비율 "120%"를 적용하여 동작 속도 정보를 "1.2배속"으로 생성할 수 있다.
한편, 코딩 로봇(100)은, 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 음성 데이터를 바탕으로 신호 세기 정보를 생성하고, 신호 세기 정보에 대응하여 동작 반복수 정보를 생성할 수 있다.
구체적으로, 음성 데이터에 동작 반복수 정보가 포함되지 않은 경우, 코딩 로봇(100)는 음성 신호에 기초하여 신호 세기 정보를 생성하고, 신호 세기 정보에 대응하여 동작 반복수 정보를 생성하고, 생성된 동작 반복수 정보에 대응하는 동작 반복수 제어 명령문을 생성할 수 있다.
예를 들어, 코딩 로봇(100)는 음성 데이터에서 동작 반복수 정보 검색되지 않으면, 음성 신호에 기초하여 신호 세기 정보를 생성하고, 신호 세기 정보에 대응하여 동작 반복수 정보를 생성하고, 생성된 동작 반복수 정보에 대응하는 동작 반복수 제어 명령문을 생성할 수 있다.
구체적으로, 코딩 로봇(100)는 음성 신호의 시간에 따른 신호 세기 중에서 최대 신호 세기를 신호 세기 정보로 생성할 수 있다.
이후, 코딩 로봇(100)는 기준 신호 세기 대비 신호 세기 정보가 나타내는 최대 신호 세기의 신호 세기 비율을 산출하고, 기본 동작 반복수에 신호 세기 비율을 적용하여 동작 반복수 정보로 생성할 수 있다.
예를 들어, 코딩 로봇(100)는 최대 신호 세기가 "200DB"이고, 기준 신호 세기가 "100DB"이며, 기본 동작 반복수가 "1회"인 경우, 신호 세기 비율을 "200%"로 산출하고, 기본 동작 반복수 "1회"에 신호 세기 비율 "200%"를 적용하여 동작 반복수 정보를 "2회"로 생성할 수 있다. 이때, 동작 반복수 정보는 반올림되어 자연수로 생성될 수 있다.
생성된 동작 속도 정보 또는 동작 반복수를 바탕으로 코딩 로봇의 동작 속도 또는 동작 반복수를 제어 명령으로 획득할 수 있다.
한편, 본 발명의 또 다른 실시예에 따라, 제어 명령이, 코딩 로봇을 이동시키기 위한 제어 명령인 경우, 코딩 로봇(100)은, 코딩 로봇 주변의 물체를 인식할 수 있다. 이후, 코딩 로봇(100)은, 인식된 물체가 기 저장된 표지판과 일치하는 경우, 기 저장된 표지판데 대응되는 제어 정보를 획득할 수 있다. 코딩 로봇(100)은, 코딩 로봇 주변의 차선을 인식할 수 있다. 코딩 로봇(100)은, 인식된 차선을 따라 이동하되, 제어 정보에 대응되게 이동할 수 있다.
이때, 코딩 로봇(100)은, 코딩 로봇(100)으로 입력되는 영상을 바탕으로 연속된 두개의 선분 정보를 획득하고, 획득된 선분 정보를 바탕으로 차선 영역을 획득할 수 있다.
이후, 코딩 로봇(100)은, 획득된 선분과 코딩 로봇의 거리 정보를 획득할 수 있다. 이후, 코딩 로봇(100)은, 차선 영역 및 거리 정보를 바탕으로 코딩 로봇을 제어할 수 있다.
이를 위해, 상술한 물체 인식 블록, 표지판 인식 블록, 차선 인식 블록, 숫자 인식 블록 및 글자 인식 블록 중 적어도 하나의 블록을 이용할 수 있음은 물론이다.
한편, 본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (7)

  1. 코딩 로봇의 제어 방법에 있어서,
    상기 코딩 로봇이, 인식 대상자의 정보를 획득하는 단계;
    상기 코딩 로봇이, 상기 획득된 인식 대상자의 정보를 바탕으로 제어 데이터를 획득하는 단계;
    상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는지 여부를 판단하는 단계;
    상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 명령에 대응되는 동작을 수행하는 단계; 및
    상기 코딩 로봇이, 상기 제어 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 제어 데이터를 분석하여, 기 설정된 제어 명령 중 어느 하나와 매칭 시키는 단계;를 포함하고,
    상기 제어 데이터는, 상기 인식 대상자의 감정 데이터 및 음성 데이터 중 적어도 하나의 데이터인 것을 특징으로 하는 제어 방법.
  2. 제1항에 있어서,
    상기 제어 데이터가 상기 인식 대상자의 감정 데이터인 경우,
    상기 제어 데이터를 획득하는 단계는,
    상기 코딩 로봇이, 상기 인식 대상자의 얼굴 촬영 이미지를 획득하는 단계;
    상기 코딩 로봇이, 상기 얼굴 촬영 이미지를 바탕으로 모델 변수를 획득하는 단계;
    상기 코딩 로봇이, 상기 획득된 모델 변수를 바탕으로 상기 인식 대상자가 기 등록된 사용자의 얼굴과 일치하는지 판단하는 단계;
    상기 인식 대상자가, 상기 기 등록된 사용자와 일치하는 경우, 상기 코딩 로봇이, 상기 얼굴 촬영 이미지를 바탕으로 상기 얼굴 촬영 이미지에 대응되는 특징값을 획득하는 단계;
    상기 코딩 로봇이, 상기 획득된 특징값을 바탕으로 상기 인식 대상자의 눈, 코, 입을 포함하는 얼굴 부위를 판단하는 단계;
    상기 코딩 로봇이, 상기 판단된 얼굴 부위를 바탕으로 상기 인식 대상자의 감정을 판단하는 단계; 및
    상기 코딩 로봇이, 상기 판단된 감정을 바탕으로 상기 제어 데이터를 획득하는 단계;를 포함하는 제어 방법.
  3. 제2항에 있어서,
    상기 제어 명령에 대응되는 동작을 수행하는 단계는,
    상기 코딩 로봇이, 상기 판단된 감정에 대응되는 2차원 벡터 공간상의 좌표 정보를 획득하는 단계;
    상기 벡터 공간상의 좌표 정보에 대응되는 제어 명령을 획득하는 단계; 및
    상기 제어 명령에 대응되는 동작을 수행하는 단계; 를 포함하는 제어 방법.
  4. 제2항에 있어서,
    상기 제어 명령에 대응되는 동작을 수행하는 단계는,
    상기 코딩 로봇이, 상기 인식 대상자의 얼굴 촬영 이미지를 바탕으로 상기 인식 대상자의 감정 변화 정보를 획득하는 단계;
    상기 코딩 로봇이, 상기 인식 대상자의 감정이 제1 감정에서 제2 감정으로 변경된 경우, 상기 제1 감정에 대응되는 제1 좌표 정보 및 상기 제2 감정에 대응되는 제2 좌표 정보를 획득하는 단계; 및
    상기 코딩 로봇이, 상기 제1 좌표 및 상기 제2 좌표에 대응되는 벡터값에 대응되는 이동 명령을 상기 제어 명령으로 획득하는 단계;를 포함하는 제어 방법.
  5. 제1항에 있어서,
    상기 제어 명령이, 상기 코딩 로봇을 이동시키기 위한 제어 명령인 경우,
    상기 제어 방법은,
    상기 코딩 로봇이, 상기 코딩 로봇 주변의 물체를 인식하는 단계;
    상기 코딩 로봇이, 상기 인식된 물체가 기 저장된 표지판과 일치하는 경우, 상기 기 저장된 표지판데 대응되는 제어 정보를 획득하는 단계;
    상기 코딩 로봇이, 상기 코딩 로봇 주변의 차선을 인식하는 단계; 및
    상기 코딩 로봇이, 상기 인식된 차선을 따라 이동하되, 상기 제어 정보에 대응되게 이동하는 단계; 를 포함하고,
    상기 차선을 인식하는 단계는,
    상기 코딩 로봇으로 입력되는 영상을 바탕으로 연속된 두개의 선분 정보를 획득하고, 획득된 선분 정보를 바탕으로 차선 영역을 획득하는 단계;
    상기 획득된 선분과 상기 코딩 로봇의 거리 정보를 획득하는 단계; 및
    상기 차선 영역 및 상기 거리 정보를 바탕으로 상기 코딩 로봇을 제어하는 단계; 를 포함하는 제어 방법.
  6. 제1항에 있어서,
    상기 제어 데이터가 상기 인식 대상자의 음성 데이터인 경우, 상기 제어 방법은,
    상기 코딩 로봇이, 상기 음성 데이터를 바탕으로 상기 코딩 로봇에 대한 동작 속도 제어 명령 및 동작 반복수 제어 명령을 포함하는 동작 제어 블록을 생성하는 단계;
    상기 코딩 로봇이, 상기 음성 데이터를 바탕으로 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 획득하는 단계; 및
    상기 코딩 로봇이, 동작 속도 정보 및 동작 반복수 정보 중 적어도 하나를 바탕으로 상기 코딩 로봇의 동작 속도 및 동작 반복수 중 적어도 하나에 대응되는 제어 명령을 획득하는 단계; 를 포함하는 제어 방법.
  7. 제6항에 있어서,
    상기 코딩 로봇의 동작 속도 및 동작 반복수 중 적어도 하나에 대응되는 제어 명령을 획득하는 단계는,
    상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하는 경우, 상기 기 설정된 제어 정보에 대응되는 동작 속도 정보 또는 동작 반복수 정보를 바탕으로 상기 코딩 로봇의 동작 속도 또는 동작 반복수를 상기 제어 명령으로 획득하는 단계;
    상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 음성 데이터를 바탕으로 음절 간격 정보를 생성하고, 상기 음절 간격 정보에 대응하여 상기 동작 속도 정보를 생성하는 단계;
    상기 코딩 로봇이, 상기 음성 데이터가 기 설정된 제어 정보와 일치하지 않는 경우, 상기 음성 데이터를 바탕으로 신호 세기 정보를 생성하고, 상기 신호 세기 정보에 대응하여 상기 동작 반복수 정보를 생성하는 단계; 및
    상기 생성된 동작 속도 정보 또는 동작 반복수를 바탕으로 상기 코딩 로봇의 동작 속도 또는 동작 반복수를 상기 제어 명령으로 획득하는 단계;를 포함하는 제어 방법.
PCT/KR2020/018083 2020-10-07 2020-12-10 전자 장치 및 그의 제어 방법 WO2022075529A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0129248 2020-10-07
KR1020200129248A KR102260751B1 (ko) 2020-10-07 2020-10-07 전자 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
WO2022075529A1 true WO2022075529A1 (ko) 2022-04-14

Family

ID=76374666

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/018083 WO2022075529A1 (ko) 2020-10-07 2020-12-10 전자 장치 및 그의 제어 방법

Country Status (2)

Country Link
KR (1) KR102260751B1 (ko)
WO (1) WO2022075529A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714535B1 (ko) * 2000-09-13 2007-05-07 가부시키가이샤 에이.지.아이 감정검출방법, 감성발생방법 및 그 장치 및 소프트웨어를 저장한 컴퓨터로 읽을 수 있는 기록매체
JP2008168375A (ja) * 2007-01-10 2008-07-24 Sky Kk ボディランゲージロボット、ボディランゲージロボットの制御方法及び制御プログラム
KR20180094461A (ko) * 2017-02-15 2018-08-23 이상준 코딩 교육 장치 및 시스템
KR20190098781A (ko) * 2018-01-29 2019-08-23 삼성전자주식회사 사용자 행동을 바탕으로 반응하는 로봇 및 그의 제어 방법
KR20200042265A (ko) * 2018-10-15 2020-04-23 호남대학교 산학협력단 로봇 제어 시스템 및 이를 이용한 로봇 제어 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102198439B1 (ko) 2019-01-29 2021-01-05 성창경 코딩 로봇 작동 제어 유닛 및 상기 코딩 로봇 작동 제어 유닛의 제어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714535B1 (ko) * 2000-09-13 2007-05-07 가부시키가이샤 에이.지.아이 감정검출방법, 감성발생방법 및 그 장치 및 소프트웨어를 저장한 컴퓨터로 읽을 수 있는 기록매체
JP2008168375A (ja) * 2007-01-10 2008-07-24 Sky Kk ボディランゲージロボット、ボディランゲージロボットの制御方法及び制御プログラム
KR20180094461A (ko) * 2017-02-15 2018-08-23 이상준 코딩 교육 장치 및 시스템
KR20190098781A (ko) * 2018-01-29 2019-08-23 삼성전자주식회사 사용자 행동을 바탕으로 반응하는 로봇 및 그의 제어 방법
KR20200042265A (ko) * 2018-10-15 2020-04-23 호남대학교 산학협력단 로봇 제어 시스템 및 이를 이용한 로봇 제어 방법

Also Published As

Publication number Publication date
KR102260751B1 (ko) 2021-06-07

Similar Documents

Publication Publication Date Title
WO2019164373A1 (en) Electronic device displaying avatar motion-performed as per movement of facial feature point and method for operating same
WO2020036343A1 (en) Electronic device and control method thereof
WO2018155892A1 (en) Method for displaying virtual image, storage medium and electronic device therefor
WO2019132518A1 (en) Image acquisition device and method of controlling the same
WO2020032582A1 (en) Electronic device for displaying avatar corresponding to external object according to change in position of external object
WO2017119664A1 (en) Display apparatus and control methods thereof
WO2020130691A1 (en) Electronic device and method for providing information thereof
WO2019151735A1 (en) Vision inspection management method and vision inspection system
WO2021071179A1 (en) Apparatus and method for providing illumination of camera in electronic device
WO2021096233A1 (en) Electronic apparatus and control method thereof
WO2019078595A1 (en) ELECTRONIC DEVICE AND METHOD FOR PERFORMING A FUNCTION USING AN INPUT INTERFACE DISPLAYED BY MEANS OF AT LEAST ONE PART OF CONTENT
WO2015170832A1 (ko) 디스플레이 장치 및 그의 화상 통화 수행 방법
WO2020218848A1 (en) Electronic device and method for performing biometric authenticaion function and intelligent agent function using user input in electronic device
EP3669537A1 (en) Electronic device providing text-related image and method for operating the same
WO2020105871A1 (ko) 전자 장치 및 그 제어 방법
WO2020230928A1 (ko) 로봇 및 그의 제어 방법
EP3632119A1 (en) Display apparatus and server, and control methods thereof
WO2022019423A1 (en) Electronic apparatus and method of controlling thereof
WO2021025509A1 (en) Apparatus and method for displaying graphic elements according to object
WO2020091268A1 (en) Electronic apparatus and method for controlling thereof
WO2022010192A1 (ko) 웨어러블 디바이스 및 그 동작 방법
EP3545685A1 (en) Method and apparatus for filtering video
WO2019088481A1 (ko) 전자 장치 및 그의 영상 보정 방법
WO2022075529A1 (ko) 전자 장치 및 그의 제어 방법
WO2021080290A1 (en) Electronic apparatus and control method thereof

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: 20956844

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: 20956844

Country of ref document: EP

Kind code of ref document: A1