WO2024117757A1 - 제스처를 인식하는 전자 장치 및 그 동작 방법 - Google Patents

제스처를 인식하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
WO2024117757A1
WO2024117757A1 PCT/KR2023/019406 KR2023019406W WO2024117757A1 WO 2024117757 A1 WO2024117757 A1 WO 2024117757A1 KR 2023019406 W KR2023019406 W KR 2023019406W WO 2024117757 A1 WO2024117757 A1 WO 2024117757A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
module
gesture
application
images
Prior art date
Application number
PCT/KR2023/019406
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
Priority claimed from KR1020220184939A external-priority patent/KR20240080055A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/522,735 priority Critical patent/US20240176424A1/en
Publication of WO2024117757A1 publication Critical patent/WO2024117757A1/ko

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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Definitions

  • This disclosure relates to an electronic device that recognizes gestures and a method of operating the same.
  • Electronic devices are being developed so that they can receive various inputs through the user's fingers.
  • touch screen input methods are used in a wide range of electronic devices such as smartphones, tablets, or laptop computers.
  • the electronic device can recognize gestures made by the user while the user is away from the electronic device.
  • An electronic device that recognizes a user's gesture can determine the type of gesture and perform various functions depending on the type of the determined gesture.
  • the electronic device includes a memory that stores instructions, a camera module, a communication module, a display module, and at least one processor operatively connected to the memory, the camera module, the communication module, and the display module. may include.
  • the instructions when executed by the at least one processor, may cause the electronic device to confirm a reception event of a video call based on the communication module.
  • the instructions when executed by the at least one processor, the instructions cause the electronic device to hook one or more images captured based on the camera module, thereby providing first image information corresponding to the one or more hooked images. It can be caused to be provided as an application.
  • the instructions may cause the electronic device to confirm a gesture based on information output from the first application by inputting the image information into the first application. there is.
  • the instructions When executed by the at least one processor, the instructions may cause the electronic device to perform at least one operation corresponding to the confirmed gesture.
  • a method of operating an electronic device may include checking a reception event of a video call based on a communication module of the electronic device.
  • the method of operating the electronic device may include hooking one or more images captured based on a camera module of the electronic device and providing image information corresponding to the one or more hooked images to a first application. there is.
  • the method of operating the electronic device may include inputting the image information into the first application and confirming a gesture based on information output from the first application.
  • the method of operating the electronic device may include performing at least one operation corresponding to the confirmed gesture.
  • the at least one instruction when executed by at least one processor of an electronic device, causes the electronic device to perform at least one operation. can cause it to be performed.
  • the at least one operation may include checking a reception event of a video call based on a communication module of the electronic device.
  • the at least one operation may include hooking one or more images captured based on the camera module of the electronic device and providing image information corresponding to the one or more hooked images to the first application. .
  • the at least one operation may include confirming a gesture based on information output from the first application by inputting the image information into the first application.
  • the at least one operation may include performing at least one operation corresponding to the confirmed gesture.
  • FIG. 1 is a block diagram of an electronic device in a network environment, according to one embodiment.
  • Figure 2 is a block diagram of an electronic device according to one embodiment.
  • Figure 3 shows a block diagram of an electronic device according to one embodiment.
  • Figure 4 shows a block diagram of an electronic device according to one embodiment.
  • Figure 5 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • Figure 6 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • Figure 7 is a diagram for explaining image hooking according to an embodiment.
  • Figure 8 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • FIG. 9 is a diagram for explaining a gesture recognition process of an electronic device according to an embodiment.
  • Figure 10 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • FIG. 11 is a diagram illustrating an AI model for estimating an object shape according to an embodiment.
  • Figure 12 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • FIG. 13A is a diagram for explaining a process of classifying the output of an AI model of an electronic device according to an embodiment.
  • FIG. 13B is a diagram illustrating a process of mapping the output of an AI model of an electronic device according to an embodiment.
  • Figure 14 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • Figure 15 is a diagram for explaining image hooking according to an embodiment.
  • FIG. 1 is a block diagram of an electronic device in a network environment, according to one embodiment.
  • an electronic device 101 communicates with an external electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. ) (e.g., a long-distance wireless communication network) may be used to communicate with the external electronic device 104 or the server 108.
  • the electronic device 101 may communicate with the external electronic device 104 through the server 108.
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or may include an antenna module 197.
  • at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added to the electronic device 101.
  • some of these components e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.
  • the processor 120 for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or calculations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132. The commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
  • software e.g., program 140
  • the processor 120 stores commands or data received from another component (e.g., sensor module 176 or communication module 190) in volatile memory 132.
  • the commands or data stored in the volatile memory 132 can be processed, and the resulting data can be stored in the non-volatile memory 134.
  • the processor 120 includes a main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • a main processor 121 e.g., a central processing unit or an application processor
  • auxiliary processor 123 e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
  • the electronic device 101 includes a main processor 121 and a secondary processor 123
  • the secondary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can.
  • the auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.
  • the auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled.
  • co-processor 123 e.g., image signal processor or communication processor
  • may be implemented as part of another functionally related component e.g., camera module 180 or communication module 190. there is.
  • the auxiliary processor 123 may include a hardware structure specialized for processing AI models.
  • AI models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself, where artificial intelligence is performed, or may be performed through a separate server (e.g., server 108).
  • Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited.
  • the AI model may include multiple artificial neural network layers.
  • Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above.
  • AI models may additionally or alternatively include software structures.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto.
  • Memory 130 may include volatile memory 132 or non-volatile memory 134.
  • the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.
  • the input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user).
  • the input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
  • the sound output module 155 may output sound signals to the outside of the electronic device 101.
  • the sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device.
  • the display module 160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 101). Sound can be output through an external electronic device 102 (e.g., speaker or headphone).
  • an external electronic device 102 e.g., speaker or headphone
  • the sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the external electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the external electronic device 102).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 can capture still images and moving images.
  • the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 can manage power supplied to the electronic device 101.
  • the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • Battery 189 may supply power to at least one component of electronic device 101.
  • the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • Communication module 190 provides a direct (e.g., wired) communication channel or wireless communication between electronic device 101 and an external electronic device (e.g., external electronic device 102, external electronic device 104, or server 108). It can support the establishment of a channel and the performance of communication through the established communication channel. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • processor 120 e.g., an application processor
  • the communication module 190 is a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., : LAN (local area network) communication module, or power line communication module) may be included.
  • a wireless communication module 192 e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 194 e.g., : LAN (local area network) communication module, or power line communication module
  • the corresponding communication module is a first network 198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network
  • the wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • subscriber information e.g., International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology).
  • NR access technology provides high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access to multiple terminals (massive machine type communications (mMTC)), or ultra-reliable and low-latency (URLLC). -latency communications)) can be supported.
  • the wireless communication module 192 may support high frequency bands (eg, mmWave bands), for example, to achieve high data rates.
  • the wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing.
  • MIMO massive array multiple-input and multiple-output
  • the wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., external electronic device 104), or a network system (e.g., second network 199). According to one embodiment, the wireless communication module 192 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC.
  • Peak data rate e.g., 20 Gbps or more
  • loss coverage e.g., 164 dB or less
  • U-plane latency e.g., 164 dB or less
  • the antenna module 197 may transmit or receive signals or power to or from the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected to the plurality of antennas by, for example, the communication module 190. can be selected. Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna.
  • other components eg, radio frequency integrated circuit (RFIC) may be additionally formed as part of the antenna module 197.
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.
  • a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side)
  • peripheral devices e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199.
  • Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101.
  • all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108.
  • the electronic device 101 may perform the function or service instead of executing the function or service on its own.
  • one or more external electronic devices may be requested to perform at least part of the function or service.
  • One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 101.
  • the electronic device 101 may process the result as is or additionally and provide it as at least part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology can be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an Internet of Things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or server 108 may be included in the second network 199.
  • the electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • Figure 2 is a block diagram of an electronic device according to one embodiment.
  • the electronic device 101 (e.g., the electronic device 101 of FIG. 1) includes a camera module 180, a communication module 190, a display module 160, and a memory ( 130), and may include a processor 120.
  • the camera module 180 may be included in the camera module 180 of FIG. 1 .
  • the communication module 190 may be included in the communication module 190 of FIG. 1 .
  • the display module 160 may be included in the display module 160 of FIG. 1 .
  • memory 130 may be included in memory 130 of FIG. 1 .
  • the processor 120 may be included in the processor 120 of FIG. 1 .
  • the processor 120 may check a reception event of a video call based on the communication module 190.
  • the communication module 190 receives a request for a voice call and/or video call from an external electronic device (e.g., the external electronic device 104 of FIG. 1) through a network (e.g., the second network 199 of FIG. 1). can receive.
  • the processor 120 may execute the camera module 180 based on confirming a reception event of a video call.
  • the camera module 180 may capture one or more images based on at least one lens disposed in a direction facing the user.
  • the processor 120 may hook one or more images captured by the camera module 180.
  • the processor 120 may provide image information corresponding to one or more hooked images to an application for gesture recognition. The operation of the processor 120 to hook images will be described later with reference to FIGS. 6 and 7.
  • the processor 120 may check a gesture based on an application for gesture recognition, and accordingly, the processor 120 may not always recognize the gesture.
  • the processor 120 may perform at least one operation corresponding to the confirmed gesture. For example, the processor 120 may display information about at least one operation corresponding to the confirmed gesture on the display module 160.
  • At least one algorithm (or model, instruction) required in the gesture recognition process may be stored in the memory 130.
  • intermediate execution results of a plurality of algorithms (or models, instructions) may be temporarily stored.
  • At least one application and a gesture application for gesture recognition may be stored in the memory 130.
  • At least one application may be set to provide one or more hooked images and perform at least one operation corresponding to the confirmed gesture.
  • the electronic device 101 is illustrated as including a camera module 180, a communication module 190, a display module 160, a memory 130, and/or a processor 120, but is not limited thereto. No.
  • the electronic device 101 may further include at least one configuration shown in FIG. 1 .
  • Figure 3 shows a block diagram of an electronic device according to one embodiment.
  • the electronic device 101 (e.g., at least one of the electronic device 101 of FIG. 1 or the electronic device 101 of FIG. 2) includes a communication module 190 (e.g., At least one of the communication module 190 of FIG. 1 or the communication module 190 of FIG. 2), a camera module 180 (e.g., at least one of the camera module 180 of FIG. 1 or the camera module 180 of FIG. 2) ), IMS (ip multimedia subsystem) module 210, and gesture recognition module 220.
  • a communication module 190 e.g., At least one of the communication module 190 of FIG. 1 or the communication module 190 of FIG. 2
  • a camera module 180 e.g., at least one of the camera module 180 of FIG. 1 or the camera module 180 of FIG. 2
  • IMS ip multimedia subsystem
  • modules implemented (or stored) in the electronic device 101 include an application executable by the processor 120, It may be implemented in the form of a program, computer code, instructions, routine, process, software, firmware, or a combination of at least two or more of these.
  • the processor 120 may perform operations corresponding to each. Accordingly, hereinafter, the description “a specific module performs an operation” may be understood as “as the specific module is executed, the processor 120 performs an operation corresponding to the specific module.”
  • at least some of the modules may include multiple programs, but are not limited to what is described.
  • the modules may be implemented in hardware form (eg, processing circuits (not shown)).
  • the modules e.g., at least one of the IMS module 210 or the gesture recognition module 220
  • the modules may be implemented as a service or application when implemented on the Android operating system. there is.
  • the IMS module 210 is connected 201 through an interface (e.g., a hardware interface and/or a software interface) with the communication module 190, and/or interfaces with the camera module 180 (e.g., : Can be connected (203) through a hardware interface and/or software interface.
  • the processor 120 e.g, IMS module 210) and the communication module 190 may exchange commands or data based on an interface such as MIPI.
  • the processor 120 (eg, IMS module 210) and the camera module 180 may exchange commands or data based on an interface such as CSI (camera serial interface).
  • the communication method between the IMS module 210 and the communication module 190 and/or the communication method between the IMS module 210 and the camera module 180 is not limited to the examples described above.
  • the IMS module 210 can check the reception event of a voice call and/or a video call through the communication module 190.
  • the IMS module 210 may hook one or more images captured by the camera module 180 based on confirming a reception event of a video call.
  • “hooking” generates a background screen and is drawn (or drawn) on the background screen in order to provide image information corresponding to one or more images to the gesture recognition module 220.
  • It can refer to a series of processes for acquiring images. Image hooking will be described later in FIGS. 6 and 7.
  • the image information provided by the IMS module 210 to the gesture recognition module 220 may be bitmap information about the image, but is not limited thereto.
  • the IMS module 210 may provide image information corresponding to one or more hooked images to the gesture recognition module 220 (205).
  • the IMS module 210 and the gesture recognition module 220 are implemented as services on the Android operating system, the IMS module 210 is bound 207 with the gesture recognition module 220, and data can be sent and received.
  • each of the services may start operation based on the onstartService() function being called, and may be bound to each other (207) based on the bindservice() function being called. While services are bound 207 to each other, they can exchange data based on calling interface functions.
  • the processor 120 may execute the gesture recognition module 220 using data obtained based on executing the IMS module 210.
  • the IMS module 210 may release the binding 207 with the gesture recognition module 220. After the binding 207 is released, the IMS module 210 may stop exchanging data with the gesture recognition module 220 and operate in the background. The IMS module 210 may terminate based on the received video call being rejected.
  • the gesture recognition module 220 may recognize a gesture in conjunction with at least one module.
  • the gesture recognition module 220 is connected 202 with the communication module 190 through an interface (e.g., a hardware interface and/or a software interface), and/or with the camera module 203 and an interface (e.g., a hardware interface and / or a software interface) may be connected (204).
  • the processor 120 e.g, gesture recognition module 220
  • the communication module 190 may exchange commands or data based on an interface such as MIPI.
  • the processor 120 (eg, gesture recognition module 210) and the camera module 180 may exchange commands or data based on an interface such as CSI.
  • the communication method between the gesture recognition module 220 and the communication module 190 and/or the communication method between the gesture recognition module 220 and the camera module 180 is not limited to the examples described above.
  • the gesture recognition module 220 may check whether a voice call or a video call is connected with an external electronic device (eg, the external electronic device 104 of FIG. 1) through the communication module 190.
  • the gesture recognition module 220 may be executed based on detection of a video call reception event.
  • the gesture recognition module 220 may receive data through an interface connected 204 to the camera module 180 based on the occurrence of a voice call reception event.
  • the gesture recognition module 220 Based on the occurrence of a video call reception event, the gesture recognition module 220 generates image information based on binding 207 with the IMS module 210 instead of the interface connected 204 with the camera module 180. You can receive it. For example, when a video call reception event occurs, the video application may be occupied by the video engine. The gesture recognition module 180 may not receive image information from the camera module 180 while the video application is occupied by the video engine. The gesture recognition module 180 may receive information associated with the image hooked by the IMS module 210 while the binding 207 with the IMS module 210 is maintained.
  • the gesture recognition module 220 may run the camera module 180 in the background when a voice call reception event occurs.
  • a preview image is not displayed on the display module (e.g., at least one of the display module 160 in FIG. 1 or the display module 160 in FIG. 2).
  • an external image of the electronic device 101 may be obtained.
  • the gesture recognition module 220 acquires image information of the image captured by the camera module 180 through an interface connected 204 to the camera module 180, based on the occurrence of a voice call reception event. You can.
  • the gesture recognition module 220 is bound to the IMS module 210 (207) based on the occurrence of a video call reception event, and detects the image of the image hooked by the IMS module 210. Information can be obtained (205).
  • the gesture recognition module 220 may recognize a gesture of the user of the electronic device 101 based on the acquired image information. Based on recognizing the user's gesture, the gesture recognition module 220 may request (206) the IMS module 210 to perform at least one operation corresponding to the recognized gesture. For example, gesture recognition module 220 may send a request to IMS module 210 to allow IMS module 210 to accept or reject a received call. The gesture recognition module 220 may terminate execution based on at least one operation corresponding to a gesture recognized by the IMS module 210 being performed.
  • the gesture recognition module 220 may remain active for a preset time when the IMS module 210 accepts a received voice call. For example, the gesture recognition module 220 may wait for a specified amount of time (e.g., between 0 and 20 seconds) after the IMS module 210 accepts a received call. Based on recognizing an additional gesture during the waiting time, the gesture recognition module 220 may request the IMS module 210 to perform at least one operation corresponding to the additional gesture. For example, the gesture recognition module 220 may request the IMS module 210 to end a voice call. In one embodiment, the gesture recognition module 220 may unbind from the IMS module 210 based on not recognizing additional gestures during the waiting period.
  • a specified amount of time e.g., between 0 and 20 seconds
  • the gesture recognition module 220 may unbind with the IMS module 210 based on a call to the unbindService() function.
  • the gesture recognition module 220 may stop exchanging data with the IMS module 210 after the binding is released and may be terminated based on a call of the onDestroy() function. For example, based on the gesture recognition module 220 being terminated, the memory allocated to the gesture recognition module 220 may be released.
  • the electronic device 101 is illustrated as including a communication module 190, a camera module 180, an IMS module 210, and/or a gesture recognition module 220, but is not limited thereto.
  • the electronic device 101 may further include the display module 160 shown in FIG. 2 .
  • Figure 4 shows a block diagram of an electronic device according to one embodiment.
  • an electronic device 101 may include a main controller 410, a coordinate converter 420, and a gesture recognition module 220 including an AI model 430.
  • the main controller 410 interfaces with other modules (e.g., camera module 180 of FIG. 3, communication module 190 of FIG. 3, and/or IMS module 210 of FIG. 3). Communication can be performed.
  • the main controller 410 may control the operation of the coordinate converter 420 and/or the AI model 430.
  • the main controller 410 may recognize the gesture based on the output of the coordinate converter 420 and/or the AI model 430. The specific operation of the main controller 410 will be described later with reference to FIGS. 8 and 9.
  • the coordinate converter 420 may receive image information and convert the input image information into coordinate data.
  • the coordinate converter 420 may receive bitmap information of an image and convert the input bitmap information into 3D absolute coordinates and/or 2D relative coordinates, and the image information and coordinate data are as described above. It is not limited to one example.
  • the coordinate converter 420 may be an artificial intelligence (AI) model that has been pre-trained to output coordinate data based on input image information.
  • the coordinate converter 420 may be trained to output coordinate data associated with objects included in the image, using static images and/or dynamic images as training data.
  • the 3D absolute coordinates output by the coordinate converter 420 may be one or more 3D coordinates corresponding to objects included in the image.
  • the coordinate converter 420 may output one or more three-dimensional coordinates representing at least a part of the user's body (e.g., a joint of a hand) included in the image, and The object to be recognized is not limited to this.
  • the two-dimensional relative coordinates output by the coordinate converter 420 may be two-dimensional coordinates indicating the relative position of an object within a two-dimensional image.
  • the artificial intelligence model 430 may receive at least part of the coordinate data output by the coordinate converter 420 and output an index corresponding to the input coordinate data.
  • the index output from the artificial intelligence model 430 may be information indicating the shape of an object included in an image input to the gesture recognition module 220. If the artificial intelligence model 430 outputs the same index from different input data, this may mean that the shape of the object corresponding to the input data is substantially the same.
  • the artificial intelligence model 430 may be trained in advance to output the shape of the object included in the image from the input coordinate data.
  • the artificial intelligence model 430 reduces the error (loss) between the shape of the object estimated by the artificial intelligence model 430 and the shape of the labeled object, based on training data in which the shape of the object located in the image is labeled. You can be trained to do it.
  • refined coordinate data may be input to the artificial intelligence model 430.
  • the format of the output data of the coordinate converter 420 may be a data structure format (eg, class) set to correspond to the coordinate converter 420.
  • the main controller 410 may obtain 3D absolute coordinates and/or 2D relative coordinates from the output data of the coordinate converter 420.
  • the artificial intelligence model 430 may receive 3D absolute coordinates obtained by the main controller 410 as input and output an index indicating the shape of the object corresponding to the input coordinate data.
  • the 3D absolute coordinates output by the coordinate converter 420 may be stored in a data buffer. At least a portion of the 3D absolute coordinates stored in the data buffer may be input to the artificial intelligence model 430.
  • the artificial intelligence model 430 may receive at least a portion of the 3D absolute coordinates stored in the data buffer and output an index indicating the shape of the object corresponding to the input coordinate data.
  • the data buffer storing the input data input to the artificial intelligence model 430, the output data output from the artificial intelligence model 430, and the output of the coordinate converter 420 will be described later with reference to FIGS. 8 to 11.
  • Figure 5 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4
  • the processor e.g., processor 120 of FIG. 1 or processor 120 of FIG. 2
  • operates a communication module e.g., communication module 190 of FIG. 1, FIG.
  • the communication module 190 may check a reception event of a video call based on the communication module 190 of 2 or at least one of the communication module 190 of FIG. 3).
  • a request for a voice call and/or a video call may be received from an external electronic device (e.g., the external electronic device 104 of FIG. 1) through the second network 199 of FIG. 1. ), in operation 503, one or more images captured based on a camera module (e.g., at least one of the camera module 180 of FIG. 1, the camera module 180 of FIG. 2, or the camera module 180 of FIG. 3)
  • the electronic device 101 may provide image information corresponding to one or more hooked images to the first application, for example, based on generating a background screen.
  • the electronic device 101 may hook one or more images captured by and provide the one or more hooked images to a gesture recognition module (eg, the gesture recognition module 220 of FIG. 3). 101 may provide one or more hooked images in the form of bitmap information to the gesture recognition module 220.
  • the electronic device 101 may hook one or more images captured by the camera module 180. The operation will be described later in FIGS. 6 and 7.
  • the electronic device 101 inputs image information into the first application, thereby confirming the gesture based on information output from the first application. For example, the electronic device 101 recognizes the user's gesture of the electronic device 101 from image information of one or more images input to the gesture recognition module 220, based on the operation of the gesture recognition module 220. You can check it.
  • the gesture confirmation operation of the electronic device 101 will be described later with reference to FIGS. 8 to 12, 13A, and 13B.
  • the electronic device 101 may perform at least one operation corresponding to the confirmed gesture in operation 507. For example, the electronic device 101 may perform an operation of accepting a received call based on confirming that the gesture is a gesture accepting the received call.
  • the electronic device 101 may perform an operation to reject a received call based on confirmation that the gesture is a gesture to reject the received call.
  • the electronic device 101 uses a camera without hardware (e.g., a glove sensor) or an external electronic device (e.g., the external electronic device 102 of FIG. 1) to detect a user's gesture.
  • the user's gesture can be confirmed by recognizing the shape of at least a part of the user's body that can determine the gesture.
  • the electronic device 101 performs at least one operation corresponding to the confirmed gesture, thereby detecting the user's contact with the electronic device 101 (e.g., a display module (e.g., the display module 160 of FIG. 1 or A received call can be accepted or rejected without a user's touch event on at least one of the display modules 160 of FIG. 2 .
  • a display module e.g., the display module 160 of FIG. 1 or A received call can be accepted or rejected without a user's touch event on at least one of the display modules 160 of FIG
  • Figure 6 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4
  • the processor e.g., at least one of the processor 120 of FIG. 1 or the processor 120 of FIG. 2
  • the video application may transmit the first screen information related to the video call to the IMS module (eg, the IMS module 210 of FIG. 3).
  • the first screen information may include location information where an image is drawn on the screen of the video application, when the image is drawn on the screen of the video application.
  • the electronic device 101 may be displayed on a module (eg, at least one of the display module 160 of FIG. 1 or the display module 160 of FIG. 2). 180), to generate a background screen based on obtaining first screen information to hook one or more images captured by (at least one of the camera module 180 of FIG. 2, or the camera module 180 of FIG. 3)
  • the background screen may not be displayed on the display module 160 when one or more images are drawn on the background screen.
  • the second screen information related to the image drawn may include location information where the image is drawn on the background screen.
  • the gesture recognition module eg, at least one of the gesture recognition module 220 of FIG. 3 or the gesture recognition module 220 of FIG. 4
  • the camera module 180 When a video call is received, the camera module 180 is occupied first by the video engine, so it may not be bound to the camera module 180.
  • the electronic device 101 in operation 605, displays one or more images based on confirming that one or more images captured based on the camera module 180 are drawn by the video engine on the background screen. Image information corresponding to can be obtained.
  • the video engine may draw one or more images captured by the camera module 180 on the background screen based on controlling the operation of the camera module 180.
  • the electronic device 101 may obtain image information associated with one or more images based on confirmation that one or more images are drawn on the background screen created in operation 601.
  • the electronic device 101 may hook bitmap information of one or more images, and image information is not limited thereto.
  • the electronic device 101 may hook one or more images captured by the camera module 180 even when the camera module 180 is occupied by the video engine.
  • the electronic device 101 may provide the acquired image information to the first application in operation 607. For example, the electronic device 101 may provide one or more images acquired based on image hooking to the gesture recognition module 220. In one embodiment, when receiving a video call, the electronic device 101 may provide one or more hooked images to the gesture recognition module 220 based on creating a background screen.
  • Figure 7 is a diagram for explaining image hooking according to an embodiment.
  • the video application 710 may provide first screen information to the IMS module 210.
  • the video application 710 may operate as a higher layer application than the IMS module 210.
  • the first screen information may include location information where the image is drawn on the screen of the video application 710.
  • the screen of the video application 710 is displayed on a display module (e.g., the display module 160 of FIG. 1 or the display module 160 of FIG. 2) when an image is drawn on the screen of the video application 710. ) may be displayed on at least one of ).
  • the IMS module 210 eg, hooking module 720
  • the background screen may not be displayed on display module 160 when one or more images are drawn on the background screen.
  • the IMS module 210 may provide second screen information associated with an image drawn on the background screen to the video engine 730. In one embodiment, the IMS module 210 may provide second screen information to the video engine 730 based on binding 701 with the video engine 730. In one embodiment, the second screen information may include location information where the image is drawn on the background screen.
  • the video engine 730 may transmit a control signal to the camera module 180 when a video call is received.
  • the gesture recognition module 220 e.g., at least one of the gesture recognition module 220 in FIG. 3 or the gesture recognition module 220 in FIG. 4
  • the gesture recognition module 220 is configured to use the camera module ( Because 180 is occupied first, it may not be bound to the camera module 180.
  • the IMS module 210 displays one or more images based on confirmation that one or more images captured based on the camera module 180 are drawn by the video engine 730 on the background screen. Information can be obtained.
  • the video engine 730 may draw one or more images captured by the camera module 180 on the background screen based on controlling the operation of the camera module 180.
  • the IMS module 210 may hook bitmap information of one or more images based on confirming that images are drawn on the background screen, and the image information is not limited thereto.
  • the IMS module 210 may hook one or more images captured by the camera module 180 even while the camera module 180 is occupied by the video engine 730.
  • the IMS module 210 may provide acquired image information to the first application.
  • the IMS module 210 may provide one or more images acquired based on image hooking to the gesture recognition module 220. In one embodiment, the IMS module 210 may transmit image information corresponding to one or more hooked images to the gesture recognition module 220 based on binding 702 to the gesture recognition module 220 . In one embodiment, the IMS module 210 may provide one or more hooked images to the gesture recognition module 220 based on creating a background screen when receiving a video call.
  • Figure 8 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4)
  • a processor e.g., at least one of the processor 120 of FIG. 1 or the processor 120 of FIG. 2
  • the unit 101 may sequentially convert image information corresponding to one or more images into coordinate data corresponding to objects included in each of at least some of the one or more images.
  • the device 101 may output 3D absolute coordinates and/or 2D relative coordinates based on the input image information.
  • the electronic device 101 may output 3D absolute coordinates and/or 2D relative coordinates associated with the hand in operation 803. Based on data, objects included in each of the at least some images may be mapped onto the location of a display module (e.g., at least one of the display module 160 in FIG. 1 or the display module 160 in FIG. 2). In one embodiment, the electronic device 101 displays the user's hand on the display module 160 based on two-dimensional relative coordinates, based on the specifications of the display module 160 corresponding to the electronic device 101. Locations can be mapped.
  • the electronic device 101 in operation 805, based on confirming the change in the shape of the object and the mapped location output from the artificial intelligence model (e.g., the artificial intelligence model 430 in FIG. 4) , you can check the movement of the object.
  • the electronic device 101 may track changes in the position of the user's hand according to the shape of the object output from the artificial intelligence model 430.
  • the electronic device 101 can confirm the movement of an object based on tracking the change in position of the user's hand.
  • the electronic device 101 may confirm a gesture based on the movement of the confirmed object in operation 807.
  • the electronic device 101 may confirm the user's gesture based on a preset hand movement associated with accepting or rejecting a call.
  • the electronic device 101 may confirm that the user's gesture is a gesture accepting a received call, based on confirming that the hand movement is a preset movement indicating acceptance of the call.
  • the electronic device 101 may confirm that the user's gesture is a gesture for rejecting a received call, based on confirming that the hand movement is a preset movement indicating rejection of the call.
  • FIG. 9 is a diagram for explaining a gesture recognition process of an electronic device according to an embodiment.
  • the coordinate converter 420 (e.g., the coordinate converter 420 of FIG. 4), based on confirming the reception event of the call, converts the camera module (e.g., the camera module 180 of FIG. 1, FIG. Image information corresponding to one or more images from the camera module 180 of 2 or at least one of the camera module 180 of FIG. 3) or the IMS module 210 (e.g., the IMS module 210 of FIG. 3) It can be obtained.
  • the coordinate converter 420 may obtain image information from the camera module 180 based on confirming a reception event of a voice call.
  • a gesture recognition module eg, gesture recognition module 220 in FIG.
  • the coordinate converter 420 may obtain raw data from the camera module 180 based on confirming a reception event of a voice call, and image information is not limited thereto.
  • the gesture recognition module 220 may determine the format and/or size of the raw data obtained from the camera module 180.
  • the format of the raw data may be YUV420 color format or JPG format, but there is no limitation thereto.
  • the image reception speed of the YUV420 format may be, on average, about 15 milliseconds (ms) faster than the image reception speed of the JPG format, based on the 640x480 size.
  • the size of raw data can be determined by the width x height standard.
  • the size of the raw data may be at least one of 1280x960, 640x480, or 320x240, but there is no limitation thereto.
  • the image reception speed in YUV420 format may be about 7 ms faster on average when the raw data size is 1280x960 than when the raw data size is 640x480.
  • the image reception speed of the YUV420 format can be about 10 ms faster on average when the raw data size is 640x480 than when the raw data size is 320x240.
  • the image reception speed may be faster as the size of the raw data has a higher degree of similarity to the resolution of the electronic device 101. For example, if the size of the raw data is too large, such as 1600x1200, an error may occur in image reception.
  • the gesture recognition module 220 when the image reception speed of the gesture recognition module 220 increases, the speed of the image processing logic may be improved.
  • the gesture recognition module 220 (e.g., main controller 410) converts the obtained raw data in YUV420 format to ARGB8888 format including opaque information (alpha), thereby improving image processing speed. You can.
  • the gesture recognition module 220 may convert the image converted into ARGB8888 format into a bitmap format and input the bitmap information into the coordinate converter 420.
  • coordinate transformer 420 may obtain image information from IMS module 210 based on confirming a reception event of a video call. For example, the coordinate converter 420 may obtain bitmap information from the IMS module 210.
  • the coordinate converter 420 may sequentially convert image information into coordinate data.
  • the coordinate converter 420 may sequentially convert image information corresponding to one or more images into coordinate data corresponding to objects included in each of at least some images among the one or more images.
  • the coordinate converter 420 may output 3D absolute coordinates and/or 2D relative coordinates based on the input image information.
  • the coordinate converter 420 may output three-dimensional absolute coordinates and/or two-dimensional relative coordinates associated with the hand based on recognizing the hand of the user of the electronic device 101 in the input image. You can.
  • the gesture recognition module 220 may store the sequentially converted coordinate data in the data buffer 910.
  • data buffer 910 may store a predetermined number of data.
  • the data buffer 910 can store 12 pieces of sequentially input coordinate data, but there is no limitation thereto.
  • the gesture recognition module 220 generates the coordinate data stored in the data buffer 910 based on confirming that no object is detected from one or more images during the waiting time of the data buffer 910. It can be input into an artificial intelligence model. For example, the gesture recognition module 220, based on confirming that the user's hand is not detected from the image for a specified period of time (e.g., about 300 ms), corresponds to the head of the data buffer 910. Data from data to data corresponding to the tail can be input into the artificial intelligence model 730.
  • a specified period of time e.g., about 300 ms
  • the gesture recognition module 220 receives coordinate data corresponding to the object included in the image as an input value and uses an artificial intelligence model 430 for estimating the shape of the object trained to output data representing the shape of the object.
  • an artificial intelligence model 430 for estimating the shape of the object trained to output data representing the shape of the object.
  • a shape corresponding to the object included in each of the at least some images output from the artificial intelligence model 430 is created. You can check it.
  • the main controller 410 may map objects included in each of at least some images onto the location of the display module 160 based on sequentially converted coordinate data.
  • the main controller 410 determines the position of the user's hand on the display module 160 based on two-dimensional relative coordinates, based on the specifications of the display module 160 corresponding to the electronic device 101. can be mapped.
  • the main controller 410 can confirm the movement of the object based on checking the shape of the object output from the artificial intelligence model 430 and changes in the mapped location.
  • the main controller 410 may track changes in the position of the user's hand of the electronic device 101 according to the shape of the object output from the artificial intelligence model 430.
  • the main controller 410 can check the movement of the object based on tracking the change in the position of the user's hand.
  • the main controller 410 may confirm the gesture based on the movement of the confirmed object.
  • the main controller 410 may identify the user's gestures based on preset hand movements associated with accepting or rejecting a call. For example, the main controller 410 may confirm that the user's gesture is a gesture accepting a received call, based on confirming that the hand movement is a preset movement indicating acceptance of the call. The main controller 410 may confirm that the user's gesture is a gesture for rejecting a received call, based on confirming that the hand movement is a preset movement indicating rejection of the call. In one embodiment, the main controller 410 may request the IMS module 210 to perform at least one operation corresponding to the identified gesture. The IMS module 210 may accept the received call according to the call acceptance request from the main controller 410. The IMS module 210 may reject the received call according to a call rejection request from the main controller 410.
  • Figure 10 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4
  • the processor e.g., at least one of the processor 120 of FIG. 1 or the processor 120 of FIG. 2
  • the data buffer 910 may store a predetermined number of data.
  • the electronic device 101 may store 12 sequentially input coordinate data, but the electronic device 101 determines that no object is detected from the images during the waiting time of the data buffer 910 in operation 1003.
  • the coordinate data stored in the data buffer 910 may be input to an artificial intelligence model (e.g., the artificial intelligence model 430 of FIG. 9) at a specified time (e.g. : Based on confirming that the user's hand is not detected from the image for about 300 ms), an artificial intelligence model ( 430), but there is no limitation.
  • an artificial intelligence model e.g., the artificial intelligence model 430 of FIG. 9
  • a specified time e.g. : Based on confirming that the user's hand is not detected from the image for about 300 ms
  • an artificial intelligence model 430
  • FIG. 11 is a diagram illustrating an AI model for estimating an object shape according to an embodiment.
  • the AI model 430 may output an object shape list 1120 based on the input data list 1110 stored in the data buffer 910.
  • the index may be information representing at least a part of the user's body.
  • the number of data included in the input data list 1110 may correspond to the number of data included in the object type list 1120.
  • Figure 12 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4)
  • a processor e.g., at least one of the processor 120 of FIG. 1 or the processor 120 of FIG. 2
  • the objects included in each may be mapped to the location of the display module (eg, at least one of the display module 160 of FIG. 1 or the display module 160 of FIG. 2).
  • the electronic device 101 may map the position of the user's hand on the display module 160 based on two-dimensional relative coordinates, based on the standard of the display module 160 corresponding to the electronic device 101.
  • the electronic device 101 determines the shape of the object output from the artificial intelligence model (e.g., the artificial intelligence model 430 of FIG. 9) and the change in the mapped location, based on confirming the change in the mapped position of the object. Movement can be confirmed.
  • the electronic device 101 can track changes in the position of the user's hand according to the shape of the object output from the artificial intelligence model 430.
  • the electronic device 101 may check the movement of an object based on tracking a change in the position of the user's hand, and may perform a gesture based on the confirmed movement of the object in operation 1205.
  • the electronic device 101 may check the user's gesture based on a preset hand movement associated with accepting or rejecting a call. , Based on confirming that the hand movement is a preset movement indicating acceptance of a call, the electronic device 101 may confirm that the user's gesture is a gesture accepting a received call. Based on confirmation that it is a preset movement indicating rejection, it can be confirmed that the user's gesture is a gesture rejecting the received call.
  • FIG. 13A is a diagram for explaining a process of classifying the output of an AI model of an electronic device according to an embodiment.
  • an electronic device 101 may classify the output of an AI model (e.g., AI model 430 of FIG. 11).
  • the electronic device 101 may classify the output of the AI model 430 into one or more location lists 1310.
  • the electronic device 101 may classify the first type of object into a first location list 1311 and a second location list 1313 based on recognition.
  • the electronic device 101 may track changes in the position of the user's hand according to the shape of the object output from the artificial intelligence model 430.
  • the electronic device 101 can confirm the movement of an object based on tracking the change in position of the user's hand. For example, the electronic device 101 may track the location of the first type of object by mapping data included in the first location list 1311. The electronic device 101 may track the location of the second type of object by mapping data included in the second location list 1313.
  • FIG. 13B is a diagram illustrating a process of mapping the output of an AI model of an electronic device according to an embodiment.
  • the electronic device 101 can map the location of the object according to the shape of the object and track changes in the location of the object.
  • the electronic device 101 maps the data included in the first location list 1311 (e.g., the first location list 1311 of FIG. 13A) onto the display module 160, and determines that the object is on the right. ), you can see that it moves to the left.
  • the electronic device 101 moves the object up based on mapping data included in the second location list 1313 (e.g., the second location list 1313 in FIG. 13A) onto the display module 160. ), you can see that it moves in the downward direction.
  • the electronic device 101 may check the effective number of movements corresponding to each of at least one shape of the object.
  • the electronic device 101 may confirm the valid movement as at least part of the operation of checking the number of valid movements, based on confirming that the change in the mapped position is greater than or equal to a preset threshold. For example, the electronic device 101 may confirm the movement as a valid movement based on confirming that the distance (e.g., d[i, i+1]) between consecutive mapped positions is greater than or equal to a reference value.
  • the number of mapped positions corresponding to at least one shape for the object and the reference value may be set to be proportional to each other. For example, when the number of mapped positions is 2 to 5, the electronic device 101 may set the reference value to 70 to 80 pixels, considering that the user's hand moves at a high speed.
  • the electronic device 101 can determine the direction of the object even when one valid movement is detected.
  • the electronic device 101 may set the reference value to 80 to 100 pixels, considering that the user's hand moves at a slow speed.
  • the electronic device 101 may determine the direction of the object when the number of mapped positions is 6 to 12 and two valid movements are detected.
  • the electronic device 101 may identify the gesture based on the form with the largest number of valid movements obtained.
  • the electronic device 101 determines the direction of movement of the object based on confirming that the number of effective movements in the right-to-left direction (e.g., 3 times) is greater than the number of effective movements in the top-down direction (e.g., 2 times). You can.
  • Figure 14 shows a flowchart for explaining the operation of an electronic device according to an embodiment.
  • an electronic device e.g., at least one of the electronic device 101 of FIG. 1, the electronic device 101 of FIG. 2, the electronic device 101 of FIG. 3, or the electronic device 101 of FIG. 4)
  • a processor e.g., at least one of the processor 120 of FIG. 1 or the processor 120 of FIG. 2
  • the electronic device 101 may confirm that the received image is drawn by the video engine, based on the first screen information, in operation 1403. there is.
  • Figure 15 is a diagram for explaining image hooking according to an embodiment.
  • the video engine 730 draws the image received based on the communication module 190 on the background screen 1510 while the binding 701 with the IMS module 210 is maintained (1502). )can do.
  • the background screen 1510 may be a screen created by the hooking module 720.
  • the hooking module 720 may confirm (1503) that images are drawn on the background screen 1510 based on address information associated with the background screen 1510.
  • the hooking module 720 may draw the received image on the video application screen 1520 based on the first screen information.
  • the video application screen 1520 may be a screen displayed through a display module (eg, the display module 160 of FIG. 1).
  • the hooking module 720 may draw (1540) the image received based on the communication module 190 on the video application screen 1520 based on the first screen information received from the video application.
  • the IMS module 210 and the gesture recognition module 220 may exchange data 702 based on maintaining the binding.
  • the electronic device 101 includes a memory 130 that stores instructions, a camera module 180, a communication module 190, a display module 160, and the memory 130 and the camera module. (180), and may include at least one processor 120 operatively connected to the communication module 190. When executed by the at least one processor 120, the instructions may cause the electronic device 101 to confirm a reception event of a video call based on the communication module 190. The instructions, when executed by the at least one processor 120, cause the electronic device 101 to hook one or more images captured based on the camera module 180, thereby displaying the one or more hooked images. This can cause image information corresponding to the images to be provided to the first application.
  • the instructions When executed by the at least one processor 120, the instructions cause the electronic device 101 to input the image information into the first application and make a gesture based on the information output from the first application. can cause you to check.
  • the instructions When executed by the at least one processor 120, the instructions may cause the electronic device 101 to perform at least one operation corresponding to the confirmed gesture.
  • the instructions, when executed by the at least one processor 120, are at least part of an operation that causes the electronic device 101 to provide image information of one or more images to a first application. Based on obtaining first screen information associated with the video call from the video application, a background screen may be caused to be generated.
  • the instructions, when executed by the at least one processor 120, are drawn on the background screen as at least part of an operation that causes the electronic device 101 to provide image information of one or more images to a first application. It may cause the second screen information associated with the image to be provided to the video engine.
  • the instructions, when executed by the at least one processor 120, cause the electronic device 101 to display the information on the background screen as at least part of an operation of providing image information of one or more images to a first application.
  • image information of the one or more images may be obtained.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to provide the acquired image information as at least part of an operation of providing image information of one or more images to a first application. It may be caused to be provided as the first application.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to perform at least one operation corresponding to the confirmed gesture at least as part of the operation. , based on confirming that the gesture is a gesture accepting the received call, may cause the user to perform an operation of accepting the received call.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to perform at least one operation corresponding to the confirmed gesture, at least as part of an operation in which the gesture is received. Based on confirming that the gesture is to reject the call, the user may be prompted to perform an operation to reject the received call.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to perform the operation of accepting the received call, at least as part of the background operation. This can cause confirmation that the image received based on the communication module 190 is drawn on the screen by the video engine.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to perform an operation of accepting the received call, based on the first screen information. , may cause the received image to be drawn on the screen of the video application.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to input the image information to the first application, thereby outputting the image information from the first application.
  • coordinate data corresponding to the object included in the image is received as an input value and trained to output data representing the shape of the object.
  • a shape corresponding to the object included in each of the at least some images output from the artificial intelligence model is created. It may cause you to check.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to input the image information to the first application, thereby outputting the image information from the first application. At least as part of the operation of confirming the gesture based on the information, sequentially converting image information of the one or more images into coordinate data corresponding to an object included in each of at least some of the one or more images. there is.
  • the instructions when executed by the at least one processor 120, the instructions cause the electronic device 101 to input the image information into the first application and make a gesture based on the information output from the first application. At least as part of the operation of checking, an object included in each of the at least some images may be mapped onto the location of the display module 160 based on the sequentially converted coordinate data.
  • the instructions When executed by the at least one processor 120, the instructions cause the electronic device 101 to input the image information into the first application and make a gesture based on the information output from the first application. At least as part of the operation of checking, the movement of the object may be confirmed based on checking the shape of the object output from the artificial intelligence model and the change in the mapped location.
  • the instructions When executed by the at least one processor 120, the instructions cause the electronic device 101 to input the image information into the first application and make a gesture based on the information output from the first application. At least as part of the operation of confirming, the gesture may be caused to be confirmed based on the movement of the confirmed object.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to execute an object included in each of the at least some images output from the artificial intelligence model.
  • the sequentially transformed coordinate data may be caused to be stored in a data buffer.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to identify a shape corresponding to an object included in each of the at least some images output from the artificial intelligence model.
  • coordinate data stored in the data buffer may be caused to be input to the artificial intelligence model based on confirming that no object is detected from the one or more images during the waiting time of the data buffer.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to input the image information to the first application, thereby outputting the image information from the first application. At least as part of the operation of confirming the gesture based on the information, the valid number of movements corresponding to each of the at least one shape for the object may be confirmed.
  • the instructions when executed by the at least one processor 120, the instructions cause the electronic device 101 to input the image information into the first application and make a gesture based on the information output from the first application. At least as part of the operation of confirming, the gesture may be caused to be confirmed based on the form with the highest number of valid movements obtained.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to change the mapped location as at least part of the operation of checking the valid number of movements. Based on confirming that is greater than or equal to a preset reference value, it can be caused to be confirmed as the valid movement.
  • the instructions when executed by the at least one processor 120, cause the electronic device 101 to perform at least one action for the object as at least part of the operation of checking the valid number of movements.
  • the number of mapped positions corresponding to the form of and the reference value can be caused to be set in proportion to each other.
  • a method of operating the electronic device 101 may include checking a reception event of a video call based on the communication module 190 of the electronic device 101.
  • the method of operating the electronic device 101 includes hooking one or more images captured based on the camera module 180 of the electronic device 101, thereby providing image information corresponding to the one or more hooked images to a first It can include actions provided by the application.
  • the method of operating the electronic device 101 may include inputting the image information into the first application and confirming a gesture based on information output from the first application.
  • the method of operating the electronic device 101 may include performing at least one operation corresponding to the confirmed gesture.
  • the electronic device 101 when the at least one instruction is executed by the at least one processor 120 of the electronic device 101, the electronic device 101 It can cause 101 to perform at least one action.
  • the at least one operation may include an operation of checking a reception event of a video call based on the communication module 190 of the electronic device 101.
  • the at least one operation includes hooking one or more images captured based on the camera module 180 of the electronic device 101 and providing image information corresponding to the one or more hooked images to a first application.
  • the at least one operation may include confirming a gesture based on information output from the first application by inputting the image information into the first application.
  • the at least one operation may include performing at least one operation corresponding to the confirmed gesture.
  • Electronic devices may be of various types. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.
  • first, second, or first or second may be used simply to distinguish one component from another, and to refer to those components in other respects (e.g., importance or order) is not limited.
  • One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” Where mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.
  • module used in embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is stored semi-permanently in the storage medium. There is no distinction between temporary storage cases.
  • the method according to the embodiments disclosed in this document may be provided and included in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
  • a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is.
  • one or more of the above-described corresponding components or operations may be omitted, or one or more other components or operations may be added.
  • multiple components eg, modules or programs
  • the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일 실시예에 따라서, 전자 장치는, 인스트럭션들을 저장하는 메모리, 카메라 모듈, 통신 모듈, 디스플레이 모듈, 및 상기 메모리, 상기 카메라 모듈, 상기 통신 모듈, 및 상기 디스플레이 모듈과 동작적으로 연결된 적어도 하나의 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 전자 장치로 하여금, 상기 통신 모듈에 기반하여, 영상 통화의 수신 이벤트를 확인하고, 상기 카메라 모듈에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하고, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하고, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 야기할 수 있다. 그 밖의 다양한 실시예가 가능하다.

Description

제스처를 인식하는 전자 장치 및 그 동작 방법
본 개시는 제스처를 인식하는 전자 장치 및 그 동작 방법에 관한 것이다.
단순히 음성 통화를 연결하는 전자 장치 이외에도 다양한 기능이 추가된 전자 장치의 개발로 이어지고 있다. 그에 따라 음성데이터의 송수신과 영상데이터의 송수신에 기반한 영상 통화 기능이 함께 구현된 전자 장치가 등장하였으며, 그 대표적인 예로 카메라폰을 들 수 있다.
전자 장치는, 사용자 손가락을 통해 다양한 입력을 받을 수 있도록 개발되고 있다. 특히, 스마트폰, 태블릿, 또는 노트북 컴퓨터와 같은 광범위한 전자 장치들에 터치스크린 입력 방식이 이용되고 있다. 또한, 전자 장치는 사용자가 전자 장치와 떨어진 상태에서 사용자가 취하는 제스처를 인식할 수 있다. 사용자의 제스처를 인식한 전자 장치는 제스처의 종류를 판별하고, 판별된 제스처의 종류에 따라 다양한 기능을 수행할 수 있다.
일 실시예에 따라서, 전자 장치는, 인스트럭션들을 저장하는 메모리, 카메라 모듈, 통신 모듈, 디스플레이 모듈, 및 상기 메모리, 상기 카메라 모듈, 상기 통신 모듈, 및 상기 디스플레이 모듈과 동작적으로 연결된 적어도 하나의 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 전자 장치로 하여금, 상기 통신 모듈에 기반하여, 영상 통화의 수신 이벤트를 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 전자 장치로 하여금, 상기 카메라 모듈에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 전자 장치로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 전자 장치로 하여금, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 야기할 수 있다.
일 실시예에 따라서, 전자 장치의 동작 방법은, 상기 전자 장치의 통신 모듈에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작을 포함할 수 있다. 상기 전자 장치의 동작 방법은, 상기 전자 장치의 카메라 모듈에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작을 포함할 수 있다. 상기 전자 장치의 동작 방법은, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작을 포함할 수 있다. 상기 전자 장치의 동작 방법은, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함할 수 있다.
일 실시예에 따라서, 컴퓨터로 독출 가능한 적어도 하나의 인스트럭션을 저장하는 저장 매체에 있어서, 상기 적어도 하나의 인스트럭션은 전자 장치의 적어도 하나의 프로세서에 의하여 실행 시에, 상기 전자 장치로 하여금 적어도 하나의 동작을 수행하도록 야기할 수 있다. 상기 적어도 하나의 동작은, 상기 전자 장치의 통신 모듈에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 전자 장치의 카메라 모듈에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함할 수 있다.
도 1은, 일 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 일 실시예에 따른 전자 장치의 블록도이다.
도 3은 일 실시예에 따른 전자 장치의 블록도를 도시한다.
도 4는 일 실시예에 따른 전자 장치의 블록도를 도시한다.
도 5는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 6은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 7은 일 실시예에 따른 이미지 후킹을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 9는 일 실시예에 따른 전자 장치의 제스처 인식 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 11은 일 실시예에 따른 객체 형태의 추정을 위한 AI 모델을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 13a는 일 실시예에 따른 전자 장치의 AI 모델의 출력을 분류하는 과정을 설명하기 위한 도면이다.
도 13b는 일 실시예에 따른 전자 장치의 AI 모델의 출력을 매핑하는 과정을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 15는 일 실시예에 따른 이미지 후킹을 설명하기 위한 도면이다.
도 1은, 일 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 외부 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 외부 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 외부 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 AI 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. AI 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. AI 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. AI 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 외부 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 외부 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 외부 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 외부 전자 장치(102), 외부 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 외부 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
일 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
도 2는 일 실시예에 따른 전자 장치의 블록도이다.
도 2를 참조하면, 일 실시예에서, 전자 장치(101)(예: 도 1의 전자 장치(101))는, 카메라 모듈(180), 통신 모듈(190), 디스플레이 모듈(160), 메모리(130), 및 프로세서(120)를 포함할 수 있다. 일 실시예에서, 카메라 모듈(180)은 도 1의 카메라 모듈(180)에 포함될 수 있다. 일 실시예에서, 통신 모듈(190)은, 도 1의 통신 모듈(190)에 포함될 수 있다. 일 실시예에서, 디스플레이 모듈(160)은, 도 1의 디스플레이 모듈(160)에 포함될 수 있다. 일 실시예에서, 메모리(130)는, 도 1의 메모리(130)에 포함될 수 있다. 일 실시예에서, 프로세서(120)는, 도 1의 프로세서(120)에 포함될 수 있다.
일 실시예에서, 프로세서(120)는, 통신 모듈(190)에 기반하여 영상 통화의 수신 이벤트를 확인할 수 있다. 통신 모듈(190)은, 네트워크(예: 도 1의 제2 네트워크(199))를 통하여, 외부 전자 장치(예: 도 1의 외부 전자 장치(104))로부터 음성 통화 및/또는 영상 통화의 요청을 수신할 수 있다.
일 실시예에서, 프로세서(120)는, 영상 통화의 수신 이벤트를 확인함에 기반하여, 카메라 모듈(180)을 실행할 수 있다. 카메라 모듈(180)은, 사용자를 향하는 방향에 배치된 적어도 하나의 렌즈에 기반하여, 하나 이상의 이미지들을 촬영할 수 있다. 프로세서(120)는, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹할 수 있다. 프로세서(120)는, 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제스처 인식을 위한 어플리케이션에 제공할 수 있다. 프로세서(120)가 이미지들을 후킹하는 동작에 관하여는 도 6 및 도 7에서 후술하도록 한다. 프로세서(120)는, 제스처 인식을 위한 어플리케이션에 기반하여, 제스처를 확인할 수 있으며, 이에 따라 프로세서(120)는 상시적으로 제스처를 인식하지 않을 수 있다. 프로세서(120)는, 확인된 제스처에 대응하는 적어도 하나의 동작을 수행할 수 있다. 프로세서(120)는, 예를 들어 확인된 제스처에 대응하는 적어도 하나의 동작에 대한 정보를 디스플레이 모듈(160)에 표시할 수도 있다.
일 실시예에서, 메모리(130)에는, 제스처 인식 과정에서 요구되는 적어도 하나의 알고리즘(또는, 모델, 인스트럭션)이 저장될 수 있다. 메모리(130)에는, 복수 개의 알고리즘(또는, 모델, 인스트럭션)의 중간 수행 결과가 임시적으로 저장될 수도 있다. 메모리(130)에는, 적어도 하나의 어플리케이션과, 제스처 인식을 위한 제스처 어플리케이션이 저장될 수 있다. 적어도 하나의 어플리케이션은, 후킹된 하나 이상의 이미지들을 제공하고, 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 설정될 수 있다.
도 2에서 전자 장치(101)가 카메라 모듈(180), 통신 모듈(190), 디스플레이 모듈(160), 메모리(130), 및/또는 프로세서(120)를 포함하는 것으로 예시하고 있지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(101)는, 도 1에 도시된 적어도 하나의 구성을 더 포함할 수 있다.
도 3은 일 실시예에 따른 전자 장치의 블록도를 도시한다.
도 3을 참조하면, 일 실시예에서, 전자 장치(101)(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(101) 중 적어도 하나)는, 통신 모듈(190)(예: 도 1의 통신 모듈(190) 또는 도 2의 통신 모듈(190) 중 적어도 하나), 카메라 모듈(180)(예: 도 1의 카메라 모듈(180) 또는 도 2의 카메라 모듈(180) 중 적어도 하나), IMS(ip multimedia subsystem) 모듈(210), 및 제스처 인식 모듈(220)을 포함할 수 있다.
일 실시예에서, 전자 장치(101)에 구현되는(또는 저장되는) 모듈들(예: IMS 모듈(210) 또는 제스처 인식 모듈(220) 중 적어도 하나)은 프로세서(120)에 의해 실행 가능한 어플리케이션, 프로그램, 컴퓨터 코드, 인스트럭션들, 루틴, 프로세스, 소프트웨어, 펌웨어, 또는 이들 중 적어도 둘 이상의 조합의 형태로 구현될 수 있다. 예를 들어, 모듈들이 실행되는 경우, 프로세서(120)가 각각에 대응하는 동작을 수행할 수 있다. 따라서 이하에서 "특정 모듈이 동작을 수행한다"는 기재는, "특정 모듈이 실행됨에 따라서, 프로세서(120)가 특정 모듈에 대응하는 동작을 수행하는 것"으로 이해될 수 있다. 일 실시예에서, 모듈들 중 적어도 일부는 복수의 프로그램들을 포함할 수 있으나, 기재된 바에 제한되지 않는다. 한편, 모듈들 중 적어도 일부는 하드웨어 형태(예: 처리 회로(미도시))로 구현될 수도 있다. 일 실시예에서, 모듈들(예: IMS 모듈(210) 또는 제스처 인식 모듈(220) 중 적어도 하나)은, 안드로이드 운영 체체(operating system) 상에서 구현되는 경우, 서비스(service) 또는 어플리케이션으로 구현될 수도 있다.
일 실시예에서, IMS 모듈(210)은, 통신 모듈(190)과 인터페이스(예: 하드웨어 인터페이스 및/또는 소프트웨어 인터페이스)를 통하여 연결(201)되거나, 및/또는 카메라 모듈(180)과 인터페이스(예: 하드웨어 인터페이스 및/또는 소프트웨어 인터페이스)를 통하여 연결(203)될 수 있다. 예를 들어, 프로세서(120)(예: IMS 모듈(210))와 통신 모듈(190)은 MIPI와 같은 인터페이스에 기반하여, 명령 또는 데이터를 교환할 수 있다. 프로세서(120)(예: IMS 모듈(210))와 카메라 모듈(180)은 CSI(camera serial interface)와 같은 인터페이스에 기반하여, 명령 또는 데이터를 교환할 수 있다. IMS 모듈(210)과 통신 모듈(190) 간의 통신 방식 및/또는 IMS 모듈(210)과 카메라 모듈(180) 간의 통신 방식은 전술한 예시에 제한되지 않는다. IMS 모듈(210)은, 통신 모듈(190)을 통하여 음성 통화 및/또는 영상 통화의 수신 이벤트를 확인할 수 있다. IMS 모듈(210)은, 영상 통화의 수신 이벤트를 확인함에 기반하여, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹할 수 있다. 일 실시예에서, "후킹"은, 제스처 인식 모듈(220)에 하나 이상의 이미지들에 대응하는 이미지 정보를 제공하기 위하여, 백그라운드 화면(background screen)을 생성하고, 백그라운드 화면에 드로우된(또는, 그려진) 이미지를 획득하는 일련의 과정을 지칭할 수 있다. 이미지 후킹에 관하여는 도 6 및 도 7에서 후술하도록 한다. 일 실시예에서, IMS 모듈(210)이 제스처 인식 모듈(220)에 제공하는 이미지 정보는, 이미지에 대한 비트맵(bitmap) 정보일 수 있으나, 이에 제한은 없다. 일 실시예에서, IMS 모듈(210)은 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제스처 인식 모듈(220)에 제공(205)할 수 있다. 일 실시예에서, IMS 모듈(210) 및 제스처 인식 모듈(220)이 안드로이드 운영체제 상에서 서비스로 구현되는 경우, IMS 모듈(210)은 제스처 인식 모듈(220)과 바인딩(binding)(207)되어, 데이터를 송수신할 수 있다. 일 실시예에서, 서비스들 각각은 onstartService() 함수가 호출됨에 기반하여 동작을 시작할 수 있으며, bindservice() 함수가 호출됨에 기반하여, 서로 바인딩(207)될 수 있다. 서비스들은 서로 바인딩(207)되어 있는 동안, 인터페이스 함수를 호출함에 기반하여, 데이터를 교환할 수 있다. 예를 들어, 프로세서(120)는 IMS 모듈(210)을 실행함에 기반하여 획득한 데이터를 이용하여, 제스처 인식 모듈(220)을 실행할 수 있다. 제스처 인식 모듈(220)이 종료되는 경우, IMS 모듈(210)은 제스처 인식 모듈(220)과의 바인딩(207)을 해제(release)할 수 있다. IMS 모듈(210)은, 바인딩(207)이 해제된 이후에는 제스처 인식 모듈(220)과의 데이터 교환을 중단하고, 백그라운드 상에서 동작할 수 있다. IMS 모듈(210)은, 수신된 영상 통화가 거절됨에 기반하여 종료될 수 있다.
일 실시예에서, 제스처 인식 모듈(220)은, 적어도 하나의 모듈과 연동하여 제스처를 인식할 수 있다. 제스처 인식 모듈(220)은, 통신 모듈(190)과 인터페이스(예: 하드웨어 인터페이스 및/또는 소프트웨어 인터페이스)를 통하여 연결(202)되거나, 및/또는 카메라 모듈(203)과 인터페이스(예: 하드웨어 인터페이스 및/또는 소프트웨어 인터페이스)를 통하여 연결(204)될 수 있다. 예를 들어, 프로세서(120)(예: 제스처 인식 모듈(220))와 통신 모듈(190)은 MIPI와 같은 인터페이스에 기반하여, 명령 또는 데이터를 교환할 수 있다. 프로세서(120)(예: 제스처 인식 모듈(210))와 카메라 모듈(180)은 CSI와 같은 인터페이스에 기반하여, 명령 또는 데이터를 교환할 수 있다. 제스처 인식 모듈(220)과 통신 모듈(190) 간의 통신 방식 및/또는 제스처 인식 모듈(220)과 카메라 모듈(180) 간의 통신 방식은 전술한 예시에 제한되지 않는다. 제스처 인식 모듈(220)은, 통신 모듈(190)을 통하여, 외부 전자 장치(예: 도 1의 외부 전자 장치(104))와 음성 통화 또는 영상 통화가 연결되었는지 여부를 확인할 수 있다. 제스처 인식 모듈(220)은, 영상 통화의 수신 이벤트가 검출됨에 기반하여 실행될 수 있다. 일 실시예에서, 제스처 인식 모듈(220)은, 음성 통화의 수신 이벤트가 발생함에 기반하여, 카메라 모듈(180)과 연결(204)된 인터페이스를 통하여 데이터를 수신할 수 있다. 제스처 인식 모듈(220)은, 영상 통화의 수신 이벤트가 발생함에 기반하여, 카메라 모듈(180)과 연결(204)된 인터페이스 대신에, IMS 모듈(210)과 바인딩(207)됨에 기반하여 이미지 정보를 수신할 수 있다. 예를 들어, 영상 통화의 수신 이벤트가 발생하는 경우, 비디오 어플리케이션은 비디오 엔진에 의하여 점유될 수 있다. 제스처 인식 모듈(180)은, 비디오 어플리케이션이 비디오 엔진에 의하여 점유되는 동안, 카메라 모듈(180)로부터 이미지 정보를 수신하지 못할 수 있다. 제스처 인식 모듈(180)은, IMS 모듈(210)과의 바인딩(207)이 유지되는 동안, IMS 모듈(210)에 의하여 후킹된 이미지와 연관된 정보를 수신할 수 있다.
일 실시예에서, 제스처 인식 모듈(220)은, 음성 통화의 수신 이벤트가 발생하는 경우, 백그라운드로 카메라 모듈(180)을 실행시킬 수 있다. 카메라 모듈(180)이 백그라운드로 실행되는 경우, 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나)에 프리뷰 이미지(preview image)가 표시되지 않는 상태에서도, 전자 장치(101)의 외부 이미지가 획득될 수 있다. 제스처 인식 모듈(220)은, 음성 통화의 수신 이벤트가 발생함에 기반하여, 카메라 모듈(180)과 연결(204)된 인터페이스를 통하여, 카메라 모듈(180)에 의하여 촬영된 이미지의 이미지 정보를 획득할 수 있다.
일 실시예에서, 제스처 인식 모듈(220)은, 영상 통화의 수신 이벤트가 발생함에 기반하여, IMS 모듈(210)과 바인딩(207)된 상태에서, IMS 모듈(210)에 의하여 후킹된 이미지의 이미지 정보를 획득(205)할 수 있다. 일 실시예에서, 제스처 인식 모듈(220)은, 획득한 이미지 정보에 기반하여, 전자 장치(101)의 사용자의 제스처를 인식할 수 있다. 제스처 인식 모듈(220)은, 사용자의 제스처를 인식함에 기반하여, IMS 모듈(210)에 인식된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 요청(206)할 수 있다. 예를 들어, 제스처 인식 모듈(220)은, IMS 모듈(210)이 수신된 전화를 수락하거나, 거절하도록 IMS 모듈(210)에 요청을 전송할 수 있다. 제스처 인식 모듈(220)은, IMS 모듈(210)에 의하여 인식된 제스처에 대응하는 적어도 하나의 동작이 수행됨에 기반하여, 실행이 종료될 수 있다.
일 실시예에서, 제스처 인식 모듈(220)은, IMS 모듈(210)이 수신된 음성 통화를 수락하는 경우, 미리 설정된 시간 동안 활성화(active)된 상태를 유지할 수 있다. 예를 들어, 제스처 인식 모듈(220)은, IMS 모듈(210)이 수신된 전화를 수락한 이후에, 지정된 시간(예: 0 내지 20 초 사이의 시간) 동안 대기할 수 있다. 제스처 인식 모듈(220)은, 대기 시간 동안 추가적인 제스처를 인식함에 기반하여, IMS 모듈(210)에 추가적인 제스처에 대응하는 적어도 하나의 동작을 수행하도록 요청할 수 있다. 예를 들어, 제스처 인식 모듈(220)은, IMS모듈(210)이 음성 통화를 종료하도록, IMS 모듈(210)에 요청할 수 있다. 일 실시예에서, 제스처 인식 모듈(220)은, 대기 시간 동안 추가적인 제스처를 인식하지 못함에 기반하여, IMS 모듈(210)과의 바인딩을 해제할 수 있다. 예를 들어, 제스처 인식 모듈(220)은, unbindService() 함수의 호출에 기반하여, IMS 모듈(210)과의 바인딩을 해제할 수 있다. 제스처 인식 모듈(220)은, 바인딩이 해제된 이후에 IMS 모듈(210)과 데이터의 교환을 중단할 수 있으며, onDestroy() 함수의 호출에 기반하여 종료될 수 있다. 예를 들어, 제스처 인식 모듈(220)이 종료됨에 기반하여, 제스처 인식 모듈(220)에 할당된 메모리가 해제될 수 있다.
도 3에서 전자 장치(101)가 통신 모듈(190), 카메라 모듈(180), IMS 모듈(210), 및/또는 제스처 인식 모듈(220)을 포함하는 것으로 예시하고 있지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(101)는, 도 2에 도시된 디스플레이 모듈(160)을 더 포함할 수 있다.
도 4는 일 실시예에 따른 전자 장치의 블록도를 도시한다.
도 4를 참조하면, 일 실시예에서, 전자 장치(101)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 또는 도 3의 전자 장치(101) 중 적어도 하나)는, 메인 컨트롤러(410), 좌표 변환기(420), 및 AI 모델(430)을 포함하는 제스처 인식 모듈(220)을 포함할 수 있다.
일 실시예에서, 메인 컨트롤러(410)는, 다른 모듈들(예: 도 3의 카메라 모듈(180), 도 3의 통신 모듈(190), 및/또는 도 3의 IMS 모듈(210))과 인터페이스 통신을 수행할 수 있다. 메인 컨트롤러(410)는, 좌표 변환기(420) 및/또는 AI 모델(430)의 동작을 제어할 수 있다. 메인 컨트롤러(410)는, 좌표 변환기(420) 및/또는 AI 모델(430)의 출력에 기반하여, 제스처를 인식할 수 있다. 메인 컨트롤러(410)의 구체적인 동작에 관하여는 도 8 및 도 9에서 후술하도록 한다.
일 실시예에서, 좌표 변환기(420)는, 이미지 정보를 입력 받고, 입력된 이미지 정보를 좌표 데이터로 변환할 수 있다. 예를 들어, 좌표 변환기(420)는, 이미지의 비트맵 정보를 입력 받고, 입력된 비트맵 정보를 3차원 절대좌표 및/또는 2차원 상대좌표로 변환할 수 있으며, 이미지 정보 및 좌표 데이터는 전술한 예시에 제한되지 않는다. 좌표 변환기(420)는, 입력된 이미지 정보에 기반하여 좌표 데이터를 출력하도록 미리 트레이닝된 인공지능(artificial intelligence, AI) 모델일 수 있다. 좌표 변환기(420)는, 정적 이미지 및/또는 동적 이미지를 트레이닝 데이터로 이용하여, 이미지 내에 포함된 객체와 연관된 좌표 데이터를 출력하도록 트레이닝될 수 있다. 일 실시예에서, 좌표 변환기(420)에 의하여 출력된 3차원 절대좌표는, 이미지 내에 포함된 객체에 대응하는 하나 이상의 3차원 좌표들일 수 있다. 예를 들어, 좌표 변환기(420)는, 이미지 내에 포함된 사용자의 신체 중 적어도 일부(예: 손(hand)의 관절(joint))를 나타내는 하나 이상의 3차원 좌표들을 출력할 수 있으며, 이미지 내에서 인식하고자 하는 객체는 이에 제한되지 않는다. 일 실시예에서, 좌표 변환기(420)에 의하여 출력된 2차원 상대좌표는, 2차원 이미지 내에서 객체의 상대위치를 나타내는 2차원 좌표일 수 있다.
일 실시예에서, 인공지능 모델(430)은, 좌표 변환기(420)에 의하여 출력된 좌표 데이터의 적어도 일부를 입력 받고, 입력된 좌표 데이터에 대응하는 인덱스(index)를 출력할 수 있다. 일 실시예에서, 인공지능 모델(430)로부터 출력된 인덱스는, 제스처 인식 모듈(220)에 입력된 이미지 내에 포함된 객체의 형태(shape)를 나타내는 정보일 수 있다. 인공지능 모델(430)이 서로 다른 입력 데이터로부터 동일한 인덱스를 출력하는 경우, 입력 데이터에 대응하는 객체의 형태는 실질적으로 동일함을 의미할 수 있다. 일 실시예에서, 인공지능 모델(430)은 입력된 좌표 데이터로부터, 이미지 내에 포함된 객체의 형태를 출력하도록 미리 트레이닝 될 수 있다. 인공지능 모델(430)은, 이미지 내에 위치하는 객체의 형태가 라벨링된 트레이닝 데이터에 기반하여, 인공지능 모델(430)에 의하여 추정된 객체의 형태와 라벨링된 객체의 형태 간의 오차(loss)가 감소하도록 트레이닝 될 수 있다. 일 실시예에서, 인공지능 모델(430)에는 정제된 좌표 데이터가 입력될 수 있다. 좌표 변환기(420)의 출력 데이터의 형식은, 좌표 변환기(420)에 대응하여 설정된 데이터 구조체 포맷(예: 클래스(class))일 수 있다. 메인 컨트롤러(410)는, 좌표 변환기(420)의 출력 데이터로부터, 3차원 절대좌표 및/또는 2차원 상대좌표를 획득할 수 있다. 인공지능 모델(430)은, 메인 컨트롤러(410)에 의하여 획득된 3차원 절대좌표를 입력 받고, 입력된 좌표 데이터에 대응하는 객체의 형태를 나타내는 인덱스를 출력할 수 있다. 일 실시예에서, 좌표 변환기(420)에 의하여 출력된 3차원 절대좌표는 데이터 버퍼에 저장될 수 있다. 데이터 버퍼에 저장된 3차원 절대좌표의 적어도 일부는, 인공지능 모델(430)에 입력될 수 있다. 인공지능 모델(430)은, 데이터 버퍼에 저장된 3차원 절대좌표의 적어도 일부를 입력 받고, 입력된 좌표 데이터에 대응하는 객체의 형태를 나타내는 인덱스를 출력할 수 있다. 인공지능 모델(430)에 입력되는 입력 데이터, 인공지능 모델(430)로부터 출력되는 출력 데이터, 및 좌표 변환기(420)의 출력을 저장하는 데이터 버퍼에 관하여는 도 8 내지 도 11에서 후술하도록 한다.
도 5는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
일 실시예에 따라서, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 501 동작에서, 통신 모듈(예: 도 1의 통신 모듈(190), 도 2의 통신 모듈(190), 또는 도 3의 통신 모듈(190) 중 적어도 하나)에 기반하여, 영상 통화의 수신 이벤트를 확인할 수 있다. 일 실시예에서, 통신 모듈(190)은, 네트워크(예: 도 1의 제2 네트워크(199))를 통하여, 외부 전자 장치(예: 도 1의 외부 전자 장치(104))로부터 음성 통화 및/또는 영상 통화의 요청을 수신할 수 있다. 전자 장치(101)는, 503 동작에서, 카메라 모듈(예: 도 1의 카메라 모듈(180), 도 2의 카메라 모듈(180), 또는 도 3의 카메라 모듈(180) 중 적어도 하나)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공할 수 있다. 예를 들어, 전자 장치(101)는, 백그라운드 화면을 생성함에 기반하여, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹할 수 있다. 전자 장치(101)는, 후킹된 하나 이상의 이미지들을 제스처 인식 모듈(예: 도 3의 제스처 인식 모듈(220))에 제공할 수 있다. 전자 장치(101)는, 비트맵 정보의 형태로 후킹된 하나 이상의 이미지들을 제스처 인식 모듈(220)에 제공할 수 있다. 전자 장치(101)가 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹하는 동작에 관하여는 도 6 및 도 7에서 후술하도록 한다.
일 실시예에서, 전자 장치(101)는, 505 동작에서, 이미지 정보를 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인할 수 있다. 예를 들어, 전자 장치(101)는, 제스처 인식 모듈(220)의 동작에 기반하여, 제스처 인식 모듈(220)에 입력된 하나 이상의 이미지들의 이미지 정보로부터, 전자 장치(101)의 사용자의 제스처를 확인할 수 있다. 전자 장치(101)의 제스처 확인 동작에 관하여는 도 8 내지 도 12, 도 13a, 및 도 13b에서 후술하도록 한다. 전자 장치(101)는, 507 동작에서, 확인된 제스처에 대응하는 적어도 하나의 동작을 수행할 수 있다. 예를 들어, 전자 장치(101)는, 제스처가 수신된 통화를 수락하는 제스처인 것을 확인함에 기반하여, 수신된 통화를 수락하는 동작을 수행할 수 있다. 전자 장치(101)는, 제스처가 수신된 통화를 거절하는 제스처인 것을 확인함에 기반하여, 수신된 통화를 거절하는 동작을 수행할 수 있다. 일 실시예에서, 전자 장치(101)는, 사용자의 제스처를 감지하기 위한 하드웨어(예: 글러브 센서(glove sensor)) 또는 외부 전자 장치(예: 도 1의 외부 전자 장치(102)) 없이도, 카메라 모듈(180)에 의하여 촬영된 이미지에 기반하여, 제스처를 결정할 수 있는 사용자의 신체 중 적어도 일부의 형태를 인식함으로써, 사용자의 제스처를 확인할 수 있다. 전자 장치(101)는, 확인된 제스처에 대응하는 적어도 하나의 동작을 수행함으로써, 전자 장치(101)에 대한 사용자의 접촉(예를 들어, 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나)에 대한 사용자의 터치 이벤트) 없이도, 수신된 통화를 수락하거나, 거절할 수 있다.
도 6은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
일 실시예에 따라서, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 601 동작에서, 비디오 어플리케이션으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성할 수 있다. 일 실시예에서, 비디오 어플리케이션은, IMS 모듈(예: 도 3의 IMS 모듈(210))에 영상 통화와 연관된 제1 화면 정보를 전송할 수 있다. 일 실시예에서, 제1 화면 정보는, 비디오 어플리케이션의 화면 상에서, 영상이 드로우되는 위치 정보를 포함할 수 있다. 일 실시예에서, 비디오 어플리케이션의 화면은, 영상이 비디오 어플리케이션의 화면 상에 드로우될 때, 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나) 상에 표시될 수 있다. 전자 장치(101)는, 카메라 모듈(예: 도 1의 카메라 모듈(180), 도 2의 카메라 모듈(180), 또는 도 3의 카메라 모듈(180) 중 적어도 하나)에 의하여 촬영된 하나 이상의 이미지들을 후킹하도록, 제1 화면 정보를 획득함에 기반하여 백그라운드 화면을 생성할 수 있다. 일 실시예에서, 백그라운드 화면은, 하나 이상의 이미지들이 백그라운드 화면 상에 드로우될 때, 디스플레이 모듈(160) 상에 표시되지 않을 수 있다. 전자 장치(101)는, 603 동작에서, 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진에 제공할 수 있다. 일 실시예에서, 제2 화면 정보는, 백그라운드 화면 상에서, 영상이 드로우되는 위치 정보를 포함할 수 있다. 비디오 엔진은 영상 통화가 수신될 때, 카메라 모듈(180)에 제어 신호를 전송할 수 있다. 제스처 인식 모듈(예: 도 3의 제스처 인식 모듈(220) 또는 도 4의 제스처 인식 모듈(220) 중 적어도 하나)은, 영상 통화가 수신될 때 비디오 엔진에 의하여 카메라 모듈(180)이 먼저 점유됨으로 인하여, 카메라 모듈(180)과 바인딩되지 않을 수 있다.
일 실시예에서, 전자 장치(101)는, 605 동작에서, 백그라운드 화면 상에 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 비디오 엔진에 의하여 드로우되는 것을 확인함에 기반하여, 하나 이상의 이미지들에 대응하는 이미지 정보를 획득할 수 있다. 비디오 엔진은, 카메라 모듈(180)의 동작을 제어함에 기반하여, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 백그라운드 화면 상에 드로우할 수 있다. 전자 장치(101)는, 601 동작에 의하여 생성된 백그라운드 화면 상에, 하나 이상의 이미지들이 드로우되는 것을 확인함에 기반하여, 하나 이상의 이미지들과 연관된 이미지 정보를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 하나 이상의 이미지들의 비트맵 정보를 후킹할 수 있으며, 이미지 정보는 이에 제한되지 않는다. 일 실시예에서, 전자 장치(101)는, 비디오 엔진에 의하여 카메라 모듈(180)이 점유되는 상태에서도, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹할 수 있다. 일 실시예에서, 전자 장치(101)는, 607 동작에서, 획득한 이미지 정보를 제1 어플리케이션으로 제공할 수 있다. 예를 들어, 전자 장치(101)는, 이미지 후킹에 기반하여 획득한 하나 이상의 이미지들을 제스처 인식 모듈(220)에 제공할 수 있다. 일 실시예에서, 전자 장치(101)는, 영상 통화를 수신할 때, 백그라운드 화면을 생성함에 기반하여, 후킹된 하나 이상의 이미지들을 제스처 인식 모듈(220)에 제공할 수 있다.
도 7은 일 실시예에 따른 이미지 후킹을 설명하기 위한 도면이다.
도 7을 참조하면, 비디오 어플리케이션(710)은 IMS 모듈(210)에 제1 화면 정보를 제공할 수 있다. 일 실시예에서, 비디오 어플리케이션(710)은, IMS 모듈(210)보다 상위 계층의 어플리케이션으로 동작할 수 있다. 제1 화면 정보는, 비디오 어플리케이션(710)의 화면 상에서, 영상이 드로우되는 위치 정보를 포함할 수 있다. 일 실시예에서, 비디오 어플리케이션(710)의 화면은, 영상이 비디오 어플리케이션(710)의 화면 상에 드로우될 때, 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나) 상에 표시될 수 있다. IMS 모듈(210)(예를 들어, 후킹 모듈(720))은, 비디오 어플리케이션(710)으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성할 수 있다. 일 실시예에서, 백그라운드 화면은, 하나 이상의 이미지들이 백그라운드 화면 상에 드로우될 때, 디스플레이 모듈(160) 상에 표시되지 않을 수 있다. IMS 모듈(210)은, 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진(730)에 제공할 수 있다. 일 실시예에서, IMS 모듈(210)은, 비디오 엔진(730)과 바인딩(701)됨에 기반하여, 제2 화면 정보를 비디오 엔진(730)에 제공할 수 있다. 일 실시예에서, 제2 화면 정보는, 백그라운드 화면 상에서, 영상이 드로우되는 위치 정보를 포함할 수 있다. 비디오 엔진(730)은 영상 통화가 수신될 때, 카메라 모듈(180)에 제어 신호를 전송할 수 있다. 제스처 인식 모듈(220)(예: 도 3의 제스처 인식 모듈(220) 또는 도 4의 제스처 인식 모듈(220) 중 적어도 하나)은, 영상 통화가 수신될 때 비디오 엔진(730)에 의하여 카메라 모듈(180)이 먼저 점유됨으로 인하여, 카메라 모듈(180)과 바인딩되지 않을 수 있다.
일 실시예에서, IMS 모듈(210)는, 백그라운드 화면 상에 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 비디오 엔진(730)에 의하여 드로우되는 것을 확인함에 기반하여, 하나 이상의 이미지들의 이미지 정보를 획득할 수 있다. 비디오 엔진(730)은, 카메라 모듈(180)의 동작을 제어함에 기반하여, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 백그라운드 화면 상에 드로우할 수 있다. IMS 모듈(210)는, 백그라운드 화면 상에 이미지들이 드로우되는 것을 확인함에 기반하여, 하나 이상의 이미지들의 비트맵 정보를 후킹할 수 있으며, 이미지 정보는 이에 제한되지 않는다. 일 실시예에서, IMS 모듈(210)은, 비디오 엔진(730)에 의하여 카메라 모듈(180)이 점유되는 상태에서도, 카메라 모듈(180)에 의하여 촬영된 하나 이상의 이미지들을 후킹할 수 있다. 일 실시예에서, IMS 모듈(210)은, 획득한 이미지 정보를 제1 어플리케이션으로 제공할 수 있다. 예를 들어, IMS 모듈(210)은, 이미지 후킹에 기반하여 획득한 하나 이상의 이미지들을 제스처 인식 모듈(220)에 제공할 수 있다. 일 실시예에서, IMS 모듈(210)은 제스처 인식 모듈(220)에 바인딩(702)됨에 기반하여, 후킹한 하나 이상의 이미지들에 대응하는 이미지 정보를 제스처 인식 모듈(220)에 전송할 수 있다. 일 실시예에서, IMS 모듈(210)은, 영상 통화를 수신할 때, 백그라운드 화면을 생성함에 기반하여, 후킹된 하나 이상의 이미지들을 제스처 인식 모듈(220)에 제공할 수 있다.
도 8은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 8을 참조하면, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 801 동작에서, 이미지 정보를 좌표 데이터로 순차적으로 변환할 수 있다. 전자 장치(101)는, 하나 이상의 이미지들에 대응하는 이미지 정보를, 상기 하나 이상의 이미지들 중 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 좌표 데이터로 순차적으로 변환할 수 있다. 일 실시예에서, 전자 장치(101)는, 입력된 이미지 정보에 기반하여, 3차원 절대좌표 및/또는 2차원 상대좌표를 출력할 수 있다. 예를 들어, 전자 장치(101)는, 입력된 이미지 내에 전자 장치(101)의 사용자의 손(hand)을 인식함에 기반하여, 손과 연관된 3차원 절대좌표 및/또는 2차원 상대좌표를 출력할 수 있다. 전자 장치(101)는, 803 동작에서, 순차적으로 변환된 좌표 데이터에 기반하여, 상기 적어도 일부 이미지들 각각에 포함된 객체를 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나)의 위치 상에 매핑할 수 있다. 일 실시예에서, 전자 장치(101)는, 전자 장치(101)에 대응하는 디스플레이 모듈(160)의 규격에 기반하여, 2차원 상대좌표에 기반하여, 디스플레이 모듈(160) 상에서 사용자의 손의 위치를 매핑할 수 있다.
일 실시예에서, 전자 장치(101)는, 805 동작에서, 인공지능 모델(예: 도 4의 인공지능 모델(430))로부터 출력되는 객체의 형태 및 상기 매핑된 위치의 변화를 확인함에 기반하여, 객체의 움직임을 확인할 수 있다. 예를 들어, 전자 장치(101)는, 인공지능 모델(430)로부터 출력되는 객체의 형태에 따라, 전자 장치(101)의 사용자의 손의 위치 변화를 트래킹할 수 있다. 전자 장치(101)는, 사용자의 손의 위치 변화를 트래킹함에 기반하여, 객체의 움직임을 확인할 수 있다. 전자 장치(101)는, 807 동작에서, 상기 확인된 객체의 움직임에 기반하여, 제스처를 확인할 수 있다. 일 실시예에서, 전자 장치(101)는, 통화의 수락 또는 거절과 연관된 미리 설정된 손의 움직임에 기반하여, 사용자의 제스처를 확인할 수 있다. 예를 들어, 전자 장치(101)는, 손의 움직임이 통화의 수락을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 수락하는 제스처인 것을 확인할 수 있다. 전자 장치(101)는, 손의 움직임이 통화의 거절을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 거절하는 제스처인 것을 확인할 수 있다.
도 9는 일 실시예에 따른 전자 장치의 제스처 인식 과정을 설명하기 위한 도면이다.
도 9를 참조하면, 좌표 변환기(420)(예: 도 4의 좌표 변환기(420))는, 통화의 수신 이벤트를 확인함에 기반하여, 카메라 모듈 (예: 도 1의 카메라 모듈(180), 도 2의 카메라 모듈(180), 또는 도 3의 카메라 모듈(180) 중 적어도 하나) 또는 IMS 모듈(210)(예: 도 3의 IMS 모듈(210))로부터 하나 이상의 이미지들에 대응하는 이미지 정보를 획득할 수 있다. 일 실시예에서, 좌표 변환기(420)는, 음성 통화의 수신 이벤트를 확인함에 기반하여, 카메라 모듈(180)로부터 이미지 정보를 획득할 수 있다. 일 실시예에서, 음성 통화의 수신 이벤트가 발생함에 기반하여, 제스처 인식 모듈(예: 도 4의 제스처 인식 모듈(220))은 카메라 모듈(180)과 바인딩될 수 있다. 좌표 변환기(420)는, 음성 통화의 수신 이벤트를 확인함에 기반하여, 카메라 모듈(180)로부터 로 데이터(raw data)를 획득할 수 있으며, 이미지 정보는 이에 제한되지 않는다. 일 실시예에서, 제스처 인식 모듈(220)은, 카메라 모듈(180)로부터 획득하는 로 데이터의 형식 및/또는 크기(size)를 결정할 수 있다. 예를 들어, 로 데이터의 형식은, YUV420 컬러 포맷 또는 JPG 포맷일 수 있으며, 이에 제한은 없다. 일 실시예에서, YUV420 포맷의 이미지 수신 속도는, JPG 포맷의 이미지 수신 속도보다, 640x480 사이즈 기준으로, 평균적으로 약 15 밀리초(ms) 빠를 수 있다. 로 데이터의 크기는, 폭(width)x높이(height)의 규격으로 결정될 수 있다. 로 데이터의 크기는, 1280x960, 640x480, 또는 320x240 중 적어도 하나일 수 있으며, 이에 제한은 없다. 일 실시예에서, YUV420 포맷의 이미지 수신 속도는, 로 데이터의 크기가 1280x960 일 때, 로 데이터의 크기가 640x480 일 때보다, 평균적으로 약 7 ms 빠를 수 있다. YUV420 포맷의 이미지 수신 속도는, 로 데이터의 크기가 640x480 일 때, 로 데이터의 크기가 320x240 일 때보다, 평균적으로 약 10 ms 빠를 수 있다. 일 실시예에서, 이미지 수신 속도는, 로 데이터의 크기가 전자 장치(101)의 해상도와의 유사도가 높을수록 빠를 수 있다. 예를 들어, 이미지 수신 속도는, 1600x1200과 같이 로 데이터의 크기가 지나치게 큰 경우, 이미지 수신에 오류가 발생할 수 있다. 일 실시예에서, 제스처 인식 모듈(220)의 이미지 수신 속도가 증가하는 경우, 이미지 처리 로직의 속도가 향상될 수 있다. 일 실시예에서, 제스처 인식 모듈(220)(예: 메인 컨트롤러(410))은, 획득한 YUV420 포맷의 로 데이터를 불투명 정보(alpha)가 포함된 ARGB8888 포맷으로 변환함으로써, 이미지 처리 속도를 향상시킬 수 있다. 제스처 인식 모듈(220)은, ARGB8888 포맷으로 변환된 이미지를 비트맵 형식으로 변환하고, 비트맵 정보를 좌표 변환기(420)에 입력할 수 있다. 일 실시예에서, 좌표 변환기(420)는, 영상 통화의 수신 이벤트를 확인함에 기반하여, IMS 모듈(210)로부터 이미지 정보를 획득할 수 있다. 예를 들어, 좌표 변환기(420)는 IMS 모듈(210)로부터 비트맵 정보를 획득할 수 있다.
일 실시예에서, 좌표 변환기(420)는, 이미지 정보를 좌표 데이터로 순차적으로 변환할 수 있다. 좌표 변환기(420)는, 하나 이상의 이미지들에 대응하는 이미지 정보를, 상기 하나 이상의 이미지들 중 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 좌표 데이터로 순차적으로 변환할 수 있다. 일 실시예에서, 좌표 변환기(420)는, 입력된 이미지 정보에 기반하여, 3차원 절대좌표 및/또는 2차원 상대좌표를 출력할 수 있다. 예를 들어, 좌표 변환기(420)는, 입력된 이미지 내에 전자 장치(101)의 사용자의 손(hand)을 인식함에 기반하여, 손과 연관된 3차원 절대좌표 및/또는 2차원 상대좌표를 출력할 수 있다. 일 실시예에서, 제스처 인식 모듈(220)은, 상기 순차적으로 변환된 좌표 데이터를 데이터 버퍼(910)에 저장할 수 있다. 일 실시예에서, 데이터 버퍼(910)는, 미리 정해진 수의 데이터를 저장할 수 있다. 예를 들어, 도 9를 참조하면, 데이터 버퍼(910)는, 순차적으로 입력되는 12 개의 좌표 데이터를 저장할 수 있으나, 이에 제한은 없다. 일 실시예에서, 제스처 인식 모듈(220)은, 데이터 버퍼(910)의 대기 시간 동안 하나 이상의 이미지들로부터 객체가 검출되지 않는 것을 확인함에 기반하여, 상기 데이터 버퍼(910)에 저장된 좌표 데이터를 상기 인공지능 모델에 입력시킬 수 있다. 예를 들어, 제스처 인식 모듈(220)은, 지정된 시간 (예: 약 300 ms) 동안 이미지로부터 사용자의 손이 감지되지 않음을 확인함에 기반하여, 데이터 버퍼(910)의 시작(head)에 대응하는 데이터부터 끝(tail)에 대응하는 데이터까지를 인공지능 모델(730)에 입력할 수 있다. 제스처 인식 모듈(220)은, 이미지 내에 포함된 객체에 대응하는 좌표 데이터를 입력 값으로서 수신하여 객체의 형태(shape)를 나타내는 데이터를 출력하도록 트레이닝된 객체 형태의 추정을 위한 인공지능 모델(430)에, 상기 하나 이상의 이미지들 중 적어도 일부 이미지들에 포함된 객체에 대응하는 좌표 데이터를 입력시킴으로써, 상기 인공지능 모델(430)로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인할 수 있다. 일 실시예에서, 메인 컨트롤러(410)는, 순차적으로 변환된 좌표 데이터에 기반하여, 적어도 일부 이미지들 각각에 포함된 객체를 디스플레이 모듈(160)의 위치 상에 매핑할 수 있다. 일 실시예에서, 메인 컨트롤러(410)는, 전자 장치(101)에 대응하는 디스플레이 모듈(160)의 규격에 기반하여, 2차원 상대좌표에 기반하여, 디스플레이 모듈(160) 상에서 사용자의 손의 위치를 매핑할 수 있다. 메인 컨트롤러(410)는, 인공지능 모델(430)로부터 출력되는 객체의 형태 및 상기 매핑된 위치의 변화를 확인함에 기반하여, 객체의 움직임을 확인할 수 있다. 예를 들어, 메인 컨트롤러(410)는, 인공지능 모델(430)로부터 출력되는 객체의 형태에 따라, 전자 장치(101)의 사용자의 손의 위치 변화를 트래킹할 수 있다. 메인 컨트롤러(410)는, 사용자의 손의 위치 변화를 트래킹함에 기반하여, 객체의 움직임을 확인할 수 있다. 메인 컨트롤러(410)는, 상기 확인된 객체의 움직임에 기반하여, 제스처를 확인할 수 있다. 일 실시예에서, 메인 컨트롤러(410)는, 통화의 수락 또는 거절과 연관된 미리 설정된 손의 움직임에 기반하여, 사용자의 제스처를 확인할 수 있다. 예를 들어, 메인 컨트롤러(410)는, 손의 움직임이 통화의 수락을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 수락하는 제스처인 것을 확인할 수 있다. 메인 컨트롤러(410)는, 손의 움직임이 통화의 거절을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 거절하는 제스처인 것을 확인할 수 있다. 일 실시예에서, 메인 컨트롤러(410)는, 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 IMS 모듈(210)에 요청할 수 있다. IMS 모듈(210)은, 메인 컨트롤러(410)의 통화 수락 요청에 따라, 수신된 통화를 수락할 수 있다. IMS 모듈(210)은, 메인 컨트롤러(410)의 통화 거절 요청에 따라, 수신된 통화를 거절할 수 있다.
도 10은 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
일 실시예에 따라서, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 1001 동작에서, 순차적으로 변환된 좌표 데이터를 데이터 버퍼(예: 도 9의 데이터 버퍼(910))에 저장할 수 있다. 일 실시예에서, 데이터 버퍼(910)는, 미리 정해진 수의 데이터를 저장할 수 있다. 예를 들어, 도 9를 참조하면, 데이터 버퍼(910)는, 순차적으로 입력되는 12 개의 좌표 데이터를 저장할 수 있으나, 이에 제한은 없다. 전자 장치(101)는, 1003 동작에서, 데이터 버퍼(910)의 대기 시간 동안 이미지들로부터 객체가 검출되지 않는 것을 확인함에 기반하여, 데이터 버퍼(910)에 저장된 좌표 데이터를 인공지능 모델(예: 도 9의 인공지능 모델(430))에 입력할 수 있다. 예를 들어, 제스처 인식 모듈(220)은, 지정된 시간(예: 약 300 ms) 동안 이미지로부터 사용자의 손이 감지되지 않음을 확인함에 기반하여, 데이터 버퍼(910)의 시작(head)에 대응하는 데이터부터 끝(tail)에 대응하는 데이터까지를 인공지능 모델(430)에 입력할 수 있으나, 이에 제한은 없다.
도 11은 일 실시예에 따른 객체 형태의 추정을 위한 AI 모델을 설명하기 위한 도면이다.
도 11을 참조하면, AI 모델(430)은, 데이터 버퍼(910)에 저장된 입력 데이터 리스트(1110)를 입력 받음에 기반하여, 객체의 형태 리스트(1120)를 출력할 수 있다. 일 실시예에서, 인덱스는, 사용자의 신체의 적어도 일부를 나타내는 정보일 수 있다. 일 실시예에서, 입력 데이터 리스트(1110)에 포함된 데이터의 수는 객체의 형태 리스트(1120)에 포함된 데이터의 수에 대응될 수 있다.
도 12는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 12를 참조하면, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 1201 동작에서, 순차적으로 변환된 좌표 데이터에 기반하여, 상기 적어도 일부 이미지들 각각에 포함된 객체를 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 2의 디스플레이 모듈(160) 중 적어도 하나)의 위치 상에 매핑할 수 있다. 일 실시예에서, 전자 장치(101)는, 전자 장치(101)에 대응하는 디스플레이 모듈(160)의 규격에 기반하여, 2차원 상대좌표에 기반하여, 디스플레이 모듈(160) 상에서 사용자의 손의 위치를 매핑할 수 있다. 일 실시예에서, 전자 장치(101)는, 1203 동작에서, 인공지능 모델(예: 도 9의 인공지능 모델(430))로부터 출력되는 객체의 형태 및 상기 매핑된 위치의 변화를 확인함에 기반하여, 객체의 움직임을 확인할 수 있다. 예를 들어, 전자 장치(101)는, 인공지능 모델(430)로부터 출력되는 객체의 형태에 따라, 전자 장치(101)의 사용자의 손의 위치 변화를 트래킹할 수 있다. 전자 장치(101)는, 사용자의 손의 위치 변화를 트래킹함에 기반하여, 객체의 움직임을 확인할 수 있다. 전자 장치(101)는, 1205 동작에서, 상기 확인된 객체의 움직임에 기반하여, 제스처를 확인할 수 있다. 일 실시예에서, 전자 장치(101)는, 통화의 수락 또는 거절과 연관된 미리 설정된 손의 움직임에 기반하여, 사용자의 제스처를 확인할 수 있다. 예를 들어, 전자 장치(101)는, 손의 움직임이 통화의 수락을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 수락하는 제스처인 것을 확인할 수 있다. 전자 장치(101)는, 손의 움직임이 통화의 거절을 나타내는 미리 설정된 움직임인 것을 확인함에 기반하여, 사용자의 제스처가 수신된 통화를 거절하는 제스처인 것을 확인할 수 있다.
도 13a는 일 실시예에 따른 전자 장치의 AI 모델의 출력을 분류하는 과정을 설명하기 위한 도면이다.
도 13a를 참조하면, 전자 장치(101)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)는, AI 모델(예: 도 11의 AI 모델(430))의 출력을 분류할 수 있다. 예를 들어, 전자 장치(101)는 AI 모델(430)의 출력을 하나 이상의 위치 리스트들(1310)로 분류할 수 있다. 전자 장치(101)는, 제1 형태의 객체를 인식함에 기반하여, 제1 위치 리스트(1311) 및 제2 위치 리스트(1313)로 분류할 수 있다. 전자 장치(101)는, 인공지능 모델(430)로부터 출력되는 객체의 형태에 따라, 전자 장치(101)의 사용자의 손의 위치 변화를 트래킹할 수 있다. 전자 장치(101)는, 사용자의 손의 위치 변화를 트래킹함에 기반하여, 객체의 움직임을 확인할 수 있다. 예를 들어, 전자 장치(101)는 제1 위치 리스트(1311)에 포함된 데이터들을 매핑함으로써, 제1 형태의 객체의 위치를 트래킹할 수 있다. 전자 장치(101)는 제2 위치 리스트(1313)에 포함된 데이터들을 매핑함으로써, 제2 형태의 객체의 위치를 트래킹할 수 있다.
도 13b는 일 실시예에 따른 전자 장치의 AI 모델의 출력을 매핑하는 과정을 설명하기 위한 도면이다.
전자 장치(101)는, 도 13b를 참조하면 객체의 형태에 따라, 객체의 위치를 매핑하고, 객체의 위치 변화를 트래킹할 수 있다. 전자 장치(101)는, 제1 위치 리스트(1311)(예: 도 13a의 제1 위치 리스트(1311))에 포함된 데이터들을 디스플레이 모듈(160) 상에 매핑함에 기반하여, 객체가 오른쪽(right)에서 왼쪽(left) 방향으로 이동함을 확인할 수 있다. 전자 장치(101)는, 제2 위치 리스트(1313)(예: 도 13a의 제2 위치 리스트(1313))에 포함된 데이터들을 디스플레이 모듈(160) 상에 매핑함에 기반하여, 객체가 위(up)에서 아래(down) 방향으로 이동함을 확인할 수 있다. 전자 장치(101)는, 객체에 대한 적어도 하나의 형태 각각에 대응하는 유효한 움직임 횟수를 확인할 수 있다. 예를 들어, 전자 장치(101)는, 유효한 움직임 횟수를 확인하는 동작의 적어도 일부로, 매핑된 위치의 변화가 미리 설정된 기준값(threshold) 이상인 것을 확인함에 기반하여, 상기 유효한 움직임으로 확인할 수 있다. 예를 들어 전자 장치(101)는, 매핑된 연속된 위치 간의 거리(예: d[i, i+1])가 기준값 이상인 것을 확인함에 기반하여, 유효한 움직임으로 확인할 수 있다. 일 실시예에서, 상기 객체에 대한 적어도 하나의 형태에 대응하는 매핑된 위치의 수와 상기 기준값은 서로 비례하게 설정될 수 있다. 예를 들어, 전자 장치(101)는, 매핑된 위치의 수가 2 내지 5 개인 경우, 사용자의 손이 빠른 속도로 이동했음을 고려하여, 기준값을 70 내지 80 픽셀(pixel)로 설정할 수 있다. 전자 장치(101)는, 매핑된 위치의 수가 2 내지 5 개인 경우, 유효한 움직임이 1 개 검출된 경우에도, 객체의 방향을 결정할 수 있다. 전자 장치(101)는, 매핑된 위치의 수가 6 내지 12 개인 경우, 사용자의 손이 느린 속도로 이동했음을 고려하여, 기준값을 80 내지 100 픽셀로 설정할 수 있다. 전자 장치(101)는, 매핑된 위치의 수가 6 내지 12 개인 경우, 유효한 움직임이 2 개 검출된 경우에, 객체의 방향을 결정할 수 있다. 전자 장치(101)는, 획득한 유효한 움직임 횟수가 가장 많은 형태에 기반하여, 상기 제스처를 확인할 수 있다. 전자 장치(101)는, 오른쪽에서 왼쪽 방향의 유효한 움직임 횟수(예: 3 회)가 위에서 아래 방향의 유효한 움직임 횟수(예: 2 회)보다 많음을 확인함에 기반하여, 개체의 움직임의 방향을 결정할 수 있다.
도 14는 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 14를 참조하면, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(101), 도 3의 전자 장치(101), 또는 도 4의 전자 장치(101) 중 적어도 하나)(예를 들어, 프로세서(예: 도 1의 프로세서(120) 또는 도 2의 프로세서(120) 중 적어도 하나)는, 1401 동작에서, 상기 백그라운드 화면 상에 상기 통신 모듈(190)에 기반하여 수신된 영상이 상기 비디오 엔진에 의하여 드로우되는 것을 확인할 수 있다. 전자 장치(101)는, 1403 동작에서, 상기 제1 화면 정보에 기반하여, 상기 비디오 어플리케이션의 화면 상에 상기 수신된 영상을 드로우할 수 있다.
도 15는 일 실시예에 따른 이미지 후킹을 설명하기 위한 도면이다.
도 15를 참조하면, 비디오 엔진(730)은, IMS 모듈(210)과 바인딩(701)이 유지되는 동안, 통신 모듈(190)에 기반하여 수신된 영상을 백그라운드 화면(1510) 상에 드로우(1502)할 수 있다. 일 실시예에서, 백그라운드 화면(1510)은, 후킹 모듈(720)에 의하여 생성된 화면일 수 있다. 후킹 모듈(720)은, 백그라운드 화면(1510)과 연관된 주소 정보에 기반하여, 백그라운드 화면(1510) 상에 이미지들이 드로우되는 것을 확인(1503)할 수 있다. 후킹 모듈(720)은, 제1 화면 정보에 기반하여, 비디오 어플리케이션 화면(1520) 상에 상기 수신된 영상을 드로우할 수 있다. 비디오 어플리케이션 화면(1520)은, 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160))을 통하여 표시되는 화면일 수 있다. 후킹 모듈(720)은, 비디오 어플리케이션으로부터 수신한 제1 화면 정보에 기반하여, 비디오 어플리케이션 화면(1520) 상에, 통신 모듈(190)에 기반하여 수신된 영상을 드로우(1540)할 수 있다. 일 실시예에서, 후킹 모듈(720)이 동작하는 동안, IMS 모듈(210)과 제스처 인식 모듈(220)은 바인딩을 유지함에 기반하여, 데이터를 교환(702)할 수 있다.
일 실시예에 따라서, 전자 장치(101)는, 인스트럭션들을 저장하는 메모리(130), 카메라 모듈(180), 통신 모듈(190), 디스플레이 모듈(160), 및 상기 메모리(130), 상기 카메라 모듈(180), 및 상기 통신 모듈(190)과 동작적으로 연결된 적어도 하나의 프로세서(120)를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작의 적어도 일부로, 비디오 어플리케이션으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작의 적어도 일부로, 상기 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진에 제공하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120) 에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작의 적어도 일부로, 상기 백그라운드 화면 상에 상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 상기 비디오 엔진에 의하여 드로우되는 것을 확인함에 기반하여, 상기 하나 이상의 이미지들의 이미지 정보를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작의 적어도 일부로, 상기 획득한 이미지 정보를 상기 제1 어플리케이션으로 제공하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작의 적어도 일부로, 상기 제스처가 수신된 통화를 수락하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 수락하는 동작을 수행하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작의 적어도 일부로, 상기 제스처가 수신된 통화를 거절하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 거절하는 동작을 수행하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 수신된 통화를 수락하는 동작을 수행하는 동작의 적어도 일부로, 상기 백그라운드 화면 상에 상기 통신 모듈(190)에 기반하여 수신된 영상이 상기 비디오 엔진에 의하여 드로우되는 것을 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 수신된 통화를 수락하는 동작을 수행하는 동작의 적어도 일부로, 상기 제1 화면 정보에 기반하여, 상기 비디오 어플리케이션의 화면 상에 상기 수신된 영상을 드로우하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 이미지 내에 포함된 객체에 대응하는 좌표 데이터를 입력 값으로서 수신하여 객체의 형태(shape)를 나타내는 데이터를 출력하도록 트레이닝된 객체 형태의 추정을 위한 인공지능 모델에, 상기 하나 이상의 이미지들 중 적어도 일부 이미지들에 포함된 객체에 대응하는 좌표 데이터를 입력시킴으로써, 상기 인공지능 모델로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 하나 이상의 이미지들의 이미지 정보를 상기 하나 이상의 이미지들 중 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 좌표 데이터로 순차적으로 변환하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 순차적으로 변환된 좌표 데이터에 기반하여, 상기 적어도 일부 이미지들 각각에 포함된 객체를 상기 디스플레이 모듈(160)의 위치 상에 매핑하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 인공지능 모델로부터 출력되는 객체의 형태 및 상기 매핑된 위치의 변화를 확인함에 기반하여, 상기 객체의 움직임을 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 확인된 객체의 움직임에 기반하여, 상기 제스처를 확인하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 인공지능 모델로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인하는 동작의 적어도 일부로, 상기 순차적으로 변환된 좌표 데이터를 데이터 버퍼에 저장하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 인공지능 모델로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인하는 동작의 적어도 일부로, 상기 데이터 버퍼의 대기 시간 동안 상기 하나 이상의 이미지들로부터 객체가 검출되지 않는 것을 확인함에 기반하여, 상기 데이터 버퍼에 저장된 좌표 데이터를 상기 인공지능 모델에 입력시키도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 객체에 대한 적어도 하나의 형태 각각에 대응하는 유효한 움직임 횟수를 확인하도록 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로, 상기 획득한 유효한 움직임 횟수가 가장 많은 형태에 기반하여, 상기 제스처를 확인하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 유효한 움직임 횟수를 확인하는 동작의 적어도 일부로, 상기 매핑된 위치의 변화가 미리 설정된 기준값 이상인 것을 확인함에 기반하여, 상기 유효한 움직임으로 확인하도록 야기할 수 있다.
일 실시예에 따라서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 유효한 움직임 횟수를 확인하는 동작의 적어도 일부로, 상기 객체에 대한 적어도 하나의 형태에 대응하는 매핑된 위치의 수와 상기 기준값은 서로 비례하게 설정하도록 야기할 수 있다.
일 실시예에 따라서, 전자 장치(101)의 동작 방법은, 상기 전자 장치(101)의 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작을 포함할 수 있다. 상기 전자 장치(101)의 동작 방법은, 상기 전자 장치(101)의 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작을 포함할 수 있다. 상기 전자 장치(101)의 동작 방법은, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작을 포함할 수 있다. 상기 전자 장치(101)의 동작 방법은, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함할 수 있다.
일 실시예에 따라서, 컴퓨터로 독출 가능한 적어도 하나의 인스트럭션을 저장하는 저장 매체에 있어서, 상기 적어도 하나의 인스트럭션은 전자 장치(101)의 적어도 하나의 프로세서(120)에 의하여 실행 시에, 상기 전자 장치(101)로 하여금 적어도 하나의 동작을 수행하도록 야기할 수 있다. 상기 적어도 하나의 동작은, 상기 전자 장치(101)의 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 전자 장치(101)의 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작을 포함할 수 있다. 상기 적어도 하나의 동작은, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함할 수 있다.
본 문서에 개시된 일 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 일 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 일 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 일 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 일 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
일 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 일 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 일 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치(101)에 있어서,
    인스트럭션들을 저장하는 메모리(130);
    카메라 모듈(180);
    통신 모듈(190);
    디스플레이 모듈(160); 및
    상기 메모리(130), 상기 카메라 모듈(180), 상기 통신 모듈(190), 및 상기 디스플레이 모듈(160)과 동작적으로 연결된 적어도 하나의 프로세서(120)를 포함하고,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금:
    상기 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하고,
    상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하고,
    상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하고,
    상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하도록 야기하는 전자 장치(101).
  2. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작의 적어도 일부로,
    비디오 어플리케이션으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성하고,
    상기 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진에 제공하고,
    상기 백그라운드 화면 상에 상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 상기 비디오 엔진에 의하여 드로우되는 것을 확인함에 기반하여, 상기 하나 이상의 이미지들의 이미지 정보를 획득하고,
    상기 획득한 이미지 정보를 상기 제1 어플리케이션으로 제공하도록 야기하는 전자 장치(101).
  3. 제 1 항 내지 제 2 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작의 적어도 일부로,
    상기 제스처가 수신된 통화를 수락하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 수락하는 동작을 수행하고,
    상기 제스처가 수신된 통화를 거절하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 거절하는 동작을 수행하도록 야기하는 전자 장치(101).
  4. 제 1 항 내지 제 3 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 수신된 통화를 수락하는 동작을 수행하는 동작의 적어도 일부로,
    상기 백그라운드 화면 상에 상기 통신 모듈(190)에 기반하여 수신된 영상이 상기 비디오 엔진에 의하여 드로우되는 것을 확인하고,
    상기 제1 화면 정보에 기반하여, 상기 비디오 어플리케이션의 화면 상에 상기 수신된 영상을 드로우하도록 야기하는 전자 장치(101).
  5. 제 1 항 내지 제 4 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로,
    이미지 내에 포함된 객체에 대응하는 좌표 데이터를 입력 값으로서 수신하여 객체의 형태(shape)를 나타내는 데이터를 출력하도록 트레이닝된 객체 형태의 추정을 위한 인공지능 모델에, 상기 하나 이상의 이미지들 중 적어도 일부 이미지들에 포함된 객체에 대응하는 좌표 데이터를 입력시킴으로써, 상기 인공지능 모델로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인하도록 야기하는 전자 장치(101).
  6. 제 1 항 내지 제 5 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로,
    상기 하나 이상의 이미지들의 이미지 정보를 상기 하나 이상의 이미지들 중 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 좌표 데이터로 순차적으로 변환하고,
    상기 순차적으로 변환된 좌표 데이터에 기반하여, 상기 적어도 일부 이미지들 각각에 포함된 객체를 상기 디스플레이 모듈(160)의 위치 상에 매핑하고,
    상기 인공지능 모델로부터 출력되는 객체의 형태 및 상기 매핑된 위치의 변화를 확인함에 기반하여, 상기 객체의 움직임을 확인하고,
    상기 확인된 객체의 움직임에 기반하여, 상기 제스처를 확인하도록 야기하는 전자 장치(101).
  7. 제 1 항 내지 제 6 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 인공지능 모델로부터 출력되는 상기 적어도 일부 이미지들 각각에 포함된 객체에 대응하는 형태를 확인하는 동작의 적어도 일부로,
    상기 순차적으로 변환된 좌표 데이터를 데이터 버퍼에 저장하고,
    상기 데이터 버퍼의 대기 시간 동안 상기 하나 이상의 이미지들로부터 객체가 검출되지 않는 것을 확인함에 기반하여, 상기 데이터 버퍼에 저장된 좌표 데이터를 상기 인공지능 모델에 입력시키도록 야기하는 전자 장치(101).
  8. 제 1 항 내지 제 7 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작의 적어도 일부로,
    상기 객체에 대한 적어도 하나의 형태 각각에 대응하는 유효한 움직임 횟수를 확인하고,
    상기 획득한 유효한 움직임 횟수가 가장 많은 형태에 기반하여, 상기 제스처를 확인하도록 야기하는 전자 장치(101).
  9. 제 1 항 내지 제 8 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 유효한 움직임 횟수를 확인하는 동작의 적어도 일부로,
    상기 매핑된 위치의 변화가 미리 설정된 기준값 이상인 것을 확인함에 기반하여, 상기 유효한 움직임으로 확인하도록 야기하는 전자 장치(101).
  10. 제 1 항 내지 제 9 항 중 어느 하나에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서(120)에 의하여 실행될 때, 상기 전자 장치(101)로 하여금, 상기 유효한 움직임 횟수를 확인하는 동작의 적어도 일부로,
    상기 객체에 대한 적어도 하나의 형태에 대응하는 매핑된 위치의 수와 상기 미리 설정된 기준값은 서로 비례하게 설정하도록 야기하는 전자 장치(101).
  11. 전자 장치(101)의 동작 방법에 있어서,
    상기 전자 장치(101)의 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작;
    상기 전자 장치(101)의 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작;
    상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작; 및
    상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작은,
    비디오 어플리케이션으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성하는 동작;
    상기 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진에 제공하는 동작;
    상기 백그라운드 화면 상에 상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 상기 비디오 엔진에 의하여 드로우되는 것을 확인함에 기반하여, 상기 하나 이상의 이미지들의 이미지 정보를 획득하는 동작; 및
    상기 획득한 이미지 정보를 상기 제1 어플리케이션으로 제공하는 동작을 포함하는, 방법.
  13. 제 11 항 내지 제 12 항 중 어느 하나에 있어서,
    상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작은,
    상기 제스처가 수신된 통화를 수락하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 수락하는 동작을 수행하는 동작; 및
    상기 제스처가 수신된 통화를 거절하는 제스처인 것을 확인함에 기반하여, 상기 수신된 통화를 거절하는 동작을 수행하는 동작을 포함하는, 방법.
  14. 인스트럭션들을 저장하는 컴퓨터로 독출 가능한 하나 이상의 저장 매체에 있어서, 상기 적어도 하나의 인스트럭션은 전자 장치의 적어도 하나의 프로세서에 의하여 실행 시에, 상기 전자 장치로 하여금 동작들을 수행하도록 야기하고, 상기 동작들은:
    상기 전자 장치(101)의 통신 모듈(190)에 기반하여, 영상 통화의 수신 이벤트를 확인하는 동작;
    상기 전자 장치(101)의 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들을 후킹함으로써, 상기 후킹된 하나 이상의 이미지들에 대응하는 이미지 정보를 제1 어플리케이션으로 제공하는 동작;
    상기 이미지 정보를 상기 제1 어플리케이션에 입력함으로써, 상기 제1 어플리케이션으로부터 출력되는 정보에 기반하여 제스처를 확인하는 동작; 및
    상기 확인된 제스처에 대응하는 적어도 하나의 동작을 수행하는 동작을 포함하는 저장 매체.
  15. 제 14 항에 있어서,
    상기 하나 이상의 이미지들의 이미지 정보를 제1 어플리케이션으로 제공하는 동작은:
    비디오 어플리케이션으로부터 영상 통화와 연관된 제1 화면 정보를 획득함에 기반하여, 백그라운드 화면을 생성하는 동작;
    상기 백그라운드 화면에 드로우되는 영상과 연관된 제2 화면 정보를 비디오 엔진에 제공하는 동작;
    상기 백그라운드 화면 상에 상기 카메라 모듈(180)에 기반하여 촬영된 하나 이상의 이미지들이 상기 비디오 엔진에 의하여 드로우되는 것을 확인함에 기반하여, 상기 하나 이상의 이미지들의 이미지 정보를 획득하는 동작; 및
    상기 획득한 이미지 정보를 상기 제1 어플리케이션으로 제공하는 동작을 포함하는, 저장 매체.
PCT/KR2023/019406 2022-11-29 2023-11-29 제스처를 인식하는 전자 장치 및 그 동작 방법 WO2024117757A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/522,735 US20240176424A1 (en) 2022-11-29 2023-11-29 Electronic device for recognizing gesture and method for operating the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0163397 2022-11-29
KR20220163397 2022-11-29
KR10-2022-0184939 2022-12-26
KR1020220184939A KR20240080055A (ko) 2022-11-29 2022-12-26 제스처를 인식하는 전자 장치 및 그 동작 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/522,735 Continuation US20240176424A1 (en) 2022-11-29 2023-11-29 Electronic device for recognizing gesture and method for operating the same

Publications (1)

Publication Number Publication Date
WO2024117757A1 true WO2024117757A1 (ko) 2024-06-06

Family

ID=91324569

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/019406 WO2024117757A1 (ko) 2022-11-29 2023-11-29 제스처를 인식하는 전자 장치 및 그 동작 방법

Country Status (1)

Country Link
WO (1) WO2024117757A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110028809A (ko) * 2009-09-14 2011-03-22 엘지전자 주식회사 이동 단말기 및 그 정보처리방법
JP2013235588A (ja) * 2012-05-04 2013-11-21 Samsung Electronics Co Ltd 空間上の相互作用に基づく端末の制御方法及びその端末
KR20170091913A (ko) * 2016-02-02 2017-08-10 삼성전자주식회사 영상 서비스 제공 방법 및 장치
KR20170094745A (ko) * 2016-02-11 2017-08-21 삼성전자주식회사 영상 인코딩 방법 및 이를 지원하는 전자 장치
KR20220078893A (ko) * 2020-12-04 2022-06-13 빅트론 주식회사 영상 속 사람의 행동 인식 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110028809A (ko) * 2009-09-14 2011-03-22 엘지전자 주식회사 이동 단말기 및 그 정보처리방법
JP2013235588A (ja) * 2012-05-04 2013-11-21 Samsung Electronics Co Ltd 空間上の相互作用に基づく端末の制御方法及びその端末
KR20170091913A (ko) * 2016-02-02 2017-08-10 삼성전자주식회사 영상 서비스 제공 방법 및 장치
KR20170094745A (ko) * 2016-02-11 2017-08-21 삼성전자주식회사 영상 인코딩 방법 및 이를 지원하는 전자 장치
KR20220078893A (ko) * 2020-12-04 2022-06-13 빅트론 주식회사 영상 속 사람의 행동 인식 장치 및 방법

Similar Documents

Publication Publication Date Title
WO2021075786A1 (en) Electronic device and method of processing pop-up window using multi-window thereof
WO2022211271A1 (ko) 학습 기반의 필기 입력을 처리하는 전자 장치, 그 동작 방법 및 저장매체
WO2024117757A1 (ko) 제스처를 인식하는 전자 장치 및 그 동작 방법
WO2022177299A1 (ko) 통화 기능의 제어 방법 및 이를 지원하는 전자 장치
WO2022149763A1 (ko) 요청된 기능을 수행하는 외부 전자 장치를 관리하기 위한 전자 장치 및 그 작동 방법
WO2022102960A1 (en) Electronic device for managing task relating to processing of audio signal, and operation method therefor
WO2022030921A1 (ko) 전자 장치 및 그의 화면을 제어하는 방법
WO2022250246A1 (ko) 움직이는 객체에 대한 효과를 이미지에 적용하는 전자 장치 및 그 작동 방법
WO2024112035A1 (ko) 전자 장치 및 전자 장치의 데이터 압축 방법
WO2024117658A1 (ko) 언어 번역 방법 및 전자 장치
WO2024043485A1 (ko) 텍스트를 포함하는 이미지를 처리하기 위한 전자 장치 및 방법
WO2021235798A1 (ko) 전자 장치 및 전자 장치에서 키보드의 입력을 이용하여 사용자 인증을 수행하는 방법
KR20240080055A (ko) 제스처를 인식하는 전자 장치 및 그 동작 방법
WO2023018202A1 (ko) 애니메이션 효과 제공 방법 및 이를 지원하는 전자 장치
WO2024058472A1 (ko) 어플리케이션에 대한 정보를 외부 디스플레이를 통해 제공하는 웨어러블 장치 및 상기 웨어러블 장치의 제어 방법
WO2023085822A1 (ko) 디바이스 위치 결정 방법 및 상기 방법을 수행하는 전자 장치
WO2023033301A1 (ko) 가상 키보드를 통하여 사용자 입력을 획득하는 전자 장치와 이의 동작 방법
WO2022196996A1 (ko) 지자기 데이터를 이용하여 위치를 감지하는 전자 장치 및 그 제어 방법
WO2023022359A1 (ko) 어플리케이션의 실행 오류를 검출하는 전자 장치 및 그 작동 방법
WO2022260258A1 (ko) 언더 디스플레이 카메라를 이용한 전자 장치 및 그 동작 방법
WO2023048404A1 (ko) 어플리케이션의 실행 화면을 표시하는 방법 및 이를 지원하는 전자 장치
WO2024101749A1 (ko) 외부 전자 장치의 대표 이미지를 제공하기 위한 전자 장치, 그 동작 방법 및 저장 매체
WO2024080709A1 (ko) 음성 신호에 기반하여 실행가능한 객체를 제어하는 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체
WO2022169278A1 (ko) 안테나를 포함하는 전자 장치
WO2024019311A1 (ko) 디스플레이 패널 상의 외부 객체의 접촉을 처리하는 전자 장치 및 방법