WO2024147482A1 - 이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법 - Google Patents

이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
WO2024147482A1
WO2024147482A1 PCT/KR2023/018792 KR2023018792W WO2024147482A1 WO 2024147482 A1 WO2024147482 A1 WO 2024147482A1 KR 2023018792 W KR2023018792 W KR 2023018792W WO 2024147482 A1 WO2024147482 A1 WO 2024147482A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel groups
image
value
processor
preset
Prior art date
Application number
PCT/KR2023/018792
Other languages
English (en)
French (fr)
Inventor
이지수
이천
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2024147482A1 publication Critical patent/WO2024147482A1/ko

Links

Images

Definitions

  • the image super resolution technique using a neural network is a technology that learns the difference between low-resolution images and high-resolution images and restores clearer and more detailed signals when low-resolution images are converted to high-resolution images.
  • a typical high-resolution technique goes through the steps of lowering the original HR (high resolution) image to an LR (low resolution) image and then restoring it to an SR (super resolution) image. While lowering the HR image to an LR image, the lost information is restored as much as possible. Learning techniques and network design are important.
  • the processor may identify a pixel located at a vertex in each of the plurality of sub-images as the plurality of preset pixels.
  • the processor inputs the updated plurality of channel groups into the neural network model to 1:1 high-resolution the updated plurality of channel groups, and shuffles the 1:1 high-resolution plurality of channel groups to obtain the up-to-date resolution.
  • An image with the same resolution as the scaled image can be obtained.
  • the step of acquiring the plurality of channel groups acquires a first group among the plurality of channel groups as a group corresponding to the image, and the step of updating the plurality of second groups remaining among the plurality of channel groups.
  • the plurality of channel groups may be updated by differentiating the pixel values included in each of the plurality of channel groups with the pixel values of the first group corresponding to the pixels included in each of the plurality of second groups.
  • the step of acquiring the upscaled image is to obtain the upscaled image including a plurality of sub-images by upscaling each of the plurality of pixels included in the image
  • the step of updating is to obtain the upscaled image including a plurality of sub-images.
  • the pixel value included in each of the partial channel groups among the groups is differentiated by the preset pixel value closest to the position of the pixel included in each of the plurality of preset pixels included in the plurality of sub-images. You can update the channel group.
  • the step of acquiring the plurality of channel groups may include acquiring remaining channel groups excluding some of the channel groups among the plurality of channel groups based on the plurality of preset pixels.
  • the step of acquiring the plurality of channel groups may identify pixels placed at vertices in each of the plurality of sub-images as the plurality of preset pixels.
  • the plurality of channel groups may be updated by subtracting the pixel value included in each of the plurality of channel groups by the average value of the plurality of pixels included in the upscaled image.
  • the step of acquiring the plurality of channel groups acquires a first group among the plurality of channel groups as a group corresponding to the image
  • the updating step acquires a plurality of second groups that are the remaining among the plurality of channel groups.
  • the plurality of channel groups may be updated by differentiating the pixel value included in each pixel to one of the average value and the median value of the plurality of pixels included in the first group.
  • the updating step updates the plurality of channel groups by clamping the differentiated value to the preset first value when the differential value exceeds the preset first value, and updates the plurality of channel groups by clamping the differential value to the preset first value.
  • a value of 1 may be the maximum pixel value.
  • the pixel value included in each of the plurality of channel groups is differentiated by the determined value and a preset second value to obtain the differential value, and the preset second value is the minimum pixel value and It may be an intermediate value of the maximum pixel value.
  • the high-resolution step involves inputting the updated plurality of channel groups into the neural network model to 1:1 high-resolution the updated plurality of channel groups, and obtaining an image with the same resolution as the upscaled image.
  • an image having the same resolution as the upscaled image can be obtained by shuffling the plurality of channel groups with the 1:1 high resolution.
  • FIGS. 1A to 1F are diagrams for explaining an upscaling method to aid understanding of the present disclosure.
  • Figure 2 is a block diagram showing the configuration of an electronic device according to an embodiment of the present disclosure.
  • FIG. 3 is a block diagram showing the detailed configuration of an electronic device according to an embodiment of the present disclosure.
  • 4 and 5 are diagrams for explaining a preprocessing method according to an embodiment of the present disclosure.
  • 6 to 8 are diagrams for explaining a preprocessing method according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., a numerical value, function, operation, or component such as a part). , and does not rule out the existence of additional features.
  • a or/and B should be understood as referring to either “A” or “B” or “A and B”.
  • the term user may refer to a person using an electronic device or a device (eg, an artificial intelligence electronic device) using an electronic device.
  • a device eg, an artificial intelligence electronic device
  • FIGS. 1A to 1F are diagrams for explaining an upscaling method to aid understanding of the present disclosure.
  • Figure 1a is an example of a neural network model that performs upscaling.
  • the neural network model learns the difference between low-resolution images and high-resolution images, and when a low-resolution image is input to the learned neural network model, a high-resolution image can be output. there is. Through this, high-resolution images can be clearer and more detailed than low-resolution images.
  • FIG. 2 is a block diagram showing the configuration of an electronic device 100 according to an embodiment of the present disclosure. As shown in FIG. 2, the electronic device 100 includes a memory 110 and a processor 120.
  • the electronic device 100 is a device that upscales images and may be a set-top box (STB), desktop PC, laptop, smartphone, tablet PC, server, TV, etc. However, it is not limited to this, and the electronic device 100 may be any device that can upscale an image.
  • STB set-top box
  • the memory 110 is accessed by the processor 120, and the processor 120 can read/write/modify/delete/update instructions, modules, or data.
  • At least one processor 120 may include one or more of a CPU, graphics processing unit (GPU), accelerated processing unit (APU), many integrated core (MIC), neural processing unit (NPU), hardware accelerator, or machine learning accelerator. You can. At least one processor 120 may control one or any combination of other components of the electronic device 100 and may perform operations related to communication or data processing. At least one processor 120 may execute one or more programs or instructions stored in the memory 110. For example, at least one processor 120 may perform a method according to an embodiment of the present disclosure by executing one or more instructions stored in the memory 110.
  • the processor 120 may obtain an upscaled image by upscaling each of a plurality of pixels included in the image. For example, the processor 120 may upscale an H ⁇ W ⁇ C image to a 4H ⁇ 4W ⁇ 1C image.
  • the processor 120 acquires an upscaled image including a plurality of sub-images by upscaling each of a plurality of pixels included in the image, and pixel values included in each of some channel groups among the plurality of channel groups are:
  • a plurality of channel groups may be updated by subtracting a preset pixel value closest to the position of a pixel included in each channel group among a plurality of preset pixels included in a plurality of sub-images.
  • the processor 120 inputs the updated plurality of channel groups into a neural network model to high-resolution the updated plurality of channel groups, and shuffles the high-resolution plurality of channel groups to produce an image with the same resolution as the upscaled image. is obtained, and the obtained image is convolved with a preset filter to obtain an upscaled final image.
  • the processor 120 inputs the updated plurality of channel groups into a neural network model to 1:1 high resolution the updated plurality of channel groups, and shuffles the 1:1 high resolution plurality of channel groups for upscaling.
  • An image with the same resolution as the image is obtained, and the obtained image is convolved with a preset filter to obtain an upscaled final image.
  • FIG. 3 is a block diagram showing the detailed configuration of the electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may include a memory 110 and a processor 120.
  • the electronic device 100 may further include a communication interface 130, a display 140, a user interface 150, a microphone 160, a speaker 170, and a camera 180.
  • a communication interface 130 may be included in the electronic device 100.
  • the communication interface 130 is a component that communicates with various types of external devices according to various types of communication methods.
  • the electronic device 100 may communicate with a server or a user terminal device through the communication interface 130.
  • the communication interface 130 may include a Wi-Fi module, a Bluetooth module, an infrared communication module, a wireless communication module, etc.
  • each communication module may be implemented in the form of at least one hardware chip.
  • the WiFi module and Bluetooth module communicate using WiFi and Bluetooth methods, respectively.
  • various connection information such as SSID and session key are first transmitted and received, and various information can be transmitted and received after establishing a communication connection using this.
  • the infrared communication module performs communication according to infrared communication (IrDA, infrared data association) technology, which transmits data wirelessly over a short distance using infrared rays between optical light and millimeter waves.
  • IrDA infrared data association
  • the communication interface 130 may include a wired communication interface such as HDMI, DP, Thunderbolt, USB, RGB, D-SUB, DVI, etc.
  • the communication interface 130 may include at least one of a LAN (Local Area Network) module, an Ethernet module, or a wired communication module that performs communication using a pair cable, coaxial cable, or optical fiber cable.
  • LAN Local Area Network
  • Ethernet Ethernet
  • wired communication module that performs communication using a pair cable, coaxial cable, or optical fiber cable.
  • the microphone 160 is configured to receive sound input and convert it into an audio signal.
  • the microphone 160 is electrically connected to the processor 120 and can receive sound under the control of the processor 120.
  • the microphone 160 may be implemented in the form of a sound sensor, and any configuration that can collect sound may be used.
  • the speaker 170 is a component that outputs not only various audio data processed by the processor 120 but also various notification sounds or voice messages.
  • the camera 180 is configured to capture still images or moving images.
  • the camera 180 can capture still images at a specific point in time, but can also capture still images continuously.
  • the camera 180 includes a lens, a shutter, an aperture, a solid-state imaging device, an analog front end (AFE), and a timing generator (TG).
  • the shutter controls the time when light reflected by the subject enters the camera 180
  • the aperture controls the amount of light incident on the lens by mechanically increasing or decreasing the size of the opening through which light enters.
  • a solid-state imaging device outputs the image due to the photocharge as an electrical signal.
  • the TG outputs a timing signal to read out pixel data from the solid-state imaging device, and the AFE samples and digitizes the electrical signal output from the solid-state imaging device.
  • the electronic device 100 can improve high-resolution performance by removing DC components from the plurality of unshuffled channel groups and inputting the plurality of channel groups from which the DC components have been removed into a neural network model. Additionally, since this differential operation is simple to implement in hardware, structural changes to existing hardware can be minimized.
  • FIGS. 4 to 8 individual embodiments are described for convenience of explanation. However, the individual embodiments of FIGS. 4 to 8 may be implemented in any number of combinations.
  • 4 and 5 are diagrams for explaining a preprocessing method according to an embodiment of the present disclosure.
  • the processor 120 may obtain an upscaled image by upscaling each of a plurality of pixels included in the image. For example, the processor 120 may upscale an H ⁇ W ⁇ C image to 4H ⁇ 4W ⁇ 1C, as shown at the top of FIG. 4.
  • the processor 120 may obtain an upscaled image including a plurality of sub-images by upscaling each of the plurality of pixels included in the image. For example, as shown at the top of FIG.
  • the processor 120 in the process of upscaling an H ⁇ W ⁇ C image to 4H ⁇ 4W ⁇ 1C, includes 0_0, Each of the 0_1, 0_2, and 0_3 pixels can be upscaled, and the upscaled image may include 0_0, 0_1, 0_2, and 0_3 pixels, such as 410. That is, the processor 120 upscales the 0_0 pixel to 0_0 to 15_0, upscales the 0_1 pixel to 0_1 to 15_1, upscales the 0_2 pixel to 0_2 to 15_2, and upscales the 0_3 pixel to 0_3 to 15_3. You can.
  • the processor 120 obtains a second group 430 including pixels 1_0, 1_1, 1_2, and 1_3 located to the right of each of pixels 0_0, 0_1, 0_2, and 0_3 in the upscaled image, and 1_0 and 1_1 , 0_0, 0_1, 0_2, and 0_3 pixel values corresponding to pixel values 1_2 and 1_3, respectively, can be differentiated.
  • the processor 120 may obtain the third to sixteenth groups in a similar manner, and each operation may be expressed as follows.
  • Ch1 0_0, 0_1, 0_2, 0_3
  • Ch2 (1_0-0_0), (1_1-0_1), (1_2-0_2), (1_3-0_3)
  • Ch3 (2_0-0_0), (2_1-0_1), (2_2-0_2), (2_3-0_3)
  • Ch4 (3_0-0_0), (3_1-0_1), (3_2-0_2), (3_3-0_3)
  • Ch5 (4_0-0_0), (4_1-0_1), (4_2-0_2), (4_3-0_3)
  • Ch16 (15_0-0_0), (15_1-0_1), (15_2-0_2), (15_3-0_3)
  • the processor 120 may update the plurality of channel groups by clamping the differential value to the preset first value.
  • the preset first value may be the maximum pixel value. In FIG. 4 , since the pixel values of the image are normalized to 0 to 1, the processor 120 may clamp the differential value to 1 if the differential value exceeds 1.
  • torch.clamp may be a command indicating a clamping operation.
  • 6 to 8 are diagrams for explaining a preprocessing method according to an embodiment of the present disclosure.
  • the processor 120 may obtain an upscaled image including a plurality of sub-images by upscaling each of the plurality of pixels included in the image. For example, as shown at the top of FIG. 6, the processor 120 acquires the first sub-image by upscaling the 0_0 pixel to 0_0 to 15_0, and upscales the 0_1 pixel to 0_1 to 15_1 to obtain the first sub-image. 2 sub-images may be acquired, a third sub-image may be obtained by upscaling 0_2 pixels to 0_2 to 15_2, and a fourth sub-image may be obtained by upscaling 0_3 pixels to 0_3 to 15_3.
  • each sub-image may include one of a plurality of pixels included in the image, and the upscaled image may include pixels 0_0, 0_1, 0_2, and 0_3, such as 610.
  • the processor 120 may identify a pixel placed at a vertex in each of the plurality of sub-images as a plurality of preset pixels. For example, the processor 120 identifies 0_0, 3_0, 12_0, and 15_0 as preset pixels in the first sub-image, identifies 0_1, 3_1, 12_1, and 15_1 as preset pixels in the second sub-image, and In the 3 sub-image, 0_2, 3_2, 12_2, and 15_2 may be identified as preset pixels, and in the fourth sub-image, 0_3, 3_3, 12_3, and 15_3 may be identified as preset pixels.
  • the processor 120 may acquire some channel groups using remaining pixels excluding preset pixels from the upscaled image, and obtain remaining channel groups using preset pixels. For example, the processor 120 obtains the second, third, fifth to twelfth, fourteenth, and fifteenth groups of pixels excluding preset pixels from the upscaled image, and includes 0_0, 0_1, 0_2, Obtaining a first group 620 containing 0_3 pixels, obtaining a fourth group 630 containing pixels 3_0, 3_1, 3_2, 3_3, and obtaining a 13th group containing pixels 12_0, 12_1, 12_2, 12_3 640 can be obtained, and the 16th group 650 including pixels 15_0, 15_1, 15_2, and 15_3 can be obtained.
  • the 2nd, 3rd, 5th to 12th, 14th, and 15th groups will be described as some channel groups, and the first group 620, fourth group 630, and 13th group will be described as some channel groups.
  • the group 640 and the 16th group 650 will be described as the remaining channel groups.
  • This operation can be implemented through code as shown in FIG. 8.
  • the step of acquiring a plurality of channel groups acquires the first group among the plurality of channel groups as a group corresponding to the image
  • the step of updating acquires the second group that is the remaining among the plurality of channel groups.
  • the plurality of channel groups may be updated by differentiating the pixel values included in each group with the pixel values of the first group corresponding to the pixels included in each of the plurality of second groups.
  • the various embodiments described above may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer).
  • the device is a device capable of calling instructions stored from a storage medium and operating according to the called instructions, and may include an electronic device (eg, electronic device A) according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.
  • 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 does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.

Abstract

전자 장치가 개시된다. 본 전자 장치는 신경망 모델이 저장된 메모리, 메모리와 연결되어 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 프로세서는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득하고, 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하고, 복수의 채널 그룹 각각에 포함된 픽셀 값을, 업스케일링된 이미지에서 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 복수의 채널 그룹을 업데이트하고, 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 업데이트된 복수의 채널 그룹을 고해상화하고, 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하고, 획득된 이미지를 기설정된 필터로 컨볼루션하여 이미지가 업스케일링된 최종 이미지를 획득할 수 있다.

Description

이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법에 대한 것이다.
전자 기술의 발달에 힘입어 다양한 종류의 전자 장치가 개발되고 있다. 특히, 최근에는 대형 화면을 제공하는 다양한 장치가 보급됨에 따라 고해상도의 컨텐츠를 처리하기 위한 방법들이 개발되고 있다.
특히, 최근에는 신경망 네트워크(neural network)를 이용한 학습 기반의 영상 처리 알고리즘이 다양하게 개발되고 있다. 입력과 출력이 결합된 형태의 학습 데이터를 이용한 딥러닝 기반 영상 처리 네트워크 학습 방법을 통해, 전통적인 방법으로는 풀 수 없었던 다양한 문제가 해결되고 있다.
예를 들어, 신경망 네트워크를 이용한 영상의 고해상화(super resolution)기법은 저해상도의 영상과 고해상도 영상 간의 차이를 학습하여, 저해상도의 영상이 고해상도의 영상으로 변환될 때 보다 선명하고 세밀한 신호를 복원하는 기술이다. 일반적인 고해상화 기법은 원본 HR(high resolution) 영상을 LR (low resolution)영상으로 낮춘 후 다시 SR (super resolution)영상으로 복원하는 단계를 거치며, HR 영상을 LR 영상으로 낮추면서 잃어버린 정보가 최대한 복원되도록 학습하는 기법 및 네트워크 설계가 중요하다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 신경망 모델이 저장된 메모리 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득하고, 상기 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하고, 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을, 상기 업스케일링된 이미지에서 상기 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하고, 상기 업데이트된 복수의 채널 그룹을 상기 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 고해상화하고, 상기 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하고, 상기 획득된 이미지를 기설정된 필터로 컨볼루션하여 상기 이미지가 업스케일링된 최종 이미지를 획득할 수 있다.
또한, 상기 프로세서는 상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고, 상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 상기 제1 그룹의 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 상기 프로세서는 상기 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 상기 업스케일링된 이미지를 획득하고, 상기 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 상기 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 상기 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
또한, 상기 프로세서는 상기 복수의 기설정된 픽셀에 기초하여 상기 복수의 채널 그룹 중 상기 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득할 수 있다.
그리고, 상기 프로세서는 상기 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 상기 복수의 기설정된 픽셀로 식별할 수 있다.
또한, 상기 프로세서는 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 업스케일링된 이미지에 포함된 복수의 픽셀의 평균 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 상기 프로세서는 상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고, 상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 제1 그룹에 포함된 복수의 픽셀의 평균 값 및 중간 값 중 하나로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
또한, 상기 프로세서는 상기 차분된 값이 기설정된 제1 값을 초과하면 상기 차분된 값을 상기 기설정된 제1 값으로 클램핑(clamping)하여 상기 복수의 채널 그룹을 업데이트하며, 상기 기설정된 제1 값은 최대 픽셀 값일 수 있다.
그리고, 상기 프로세서는 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 결정된 값 및 기설정된 제2 값으로 차분하여 상기 차분된 값을 획득하며, 상기 기설정된 제2 값은 최소 픽셀 값 및 상기 최대 픽셀 값의 중간 값일 수 있다.
또한, 상기 프로세서는 상기 업데이트된 복수의 채널 그룹을 상기 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 1:1 고해상화하고, 상기 1:1 고해상화된 복수의 채널 그룹을 셔플하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법은 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득하는 단계, 상기 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하는 단계, 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을, 상기 업스케일링된 이미지에서 상기 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는 단계, 상기 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 고해상화하는 단계, 상기 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하는 단계 및 상기 획득된 이미지를 기설정된 필터로 컨볼루션하여 상기 이미지가 업스케일링된 최종 이미지를 획득하는 단계를 포함한다.
또한, 상기 복수의 채널 그룹을 획득하는 단계는 상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고, 상기 업데이트하는 단계는 상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 상기 제1 그룹의 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 상기 업스케일링된 이미지를 획득하는 단계는 상기 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 상기 업스케일링된 이미지를 획득하고, 상기 업데이트하는 단계는 상기 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 상기 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 상기 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
또한, 상기 복수의 채널 그룹을 획득하는 단계는 상기 복수의 기설정된 픽셀에 기초하여 상기 복수의 채널 그룹 중 상기 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득할 수 있다.
그리고, 상기 복수의 채널 그룹을 획득하는 단계는 상기 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 상기 복수의 기설정된 픽셀로 식별할 수 있다.
또한, 상기 업데이트하는 단계는 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 업스케일링된 이미지에 포함된 복수의 픽셀의 평균 값으로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 상기 복수의 채널 그룹을 획득하는 단계는 상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고, 상기 업데이트하는 단계는 상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 제1 그룹에 포함된 복수의 픽셀의 평균 값 및 중간 값 중 하나로 차분하여 상기 복수의 채널 그룹을 업데이트할 수 있다.
또한, 상기 업데이트하는 단계는 상기 차분된 값이 기설정된 제1 값을 초과하면 상기 차분된 값을 상기 기설정된 제1 값으로 클램핑(clamping)하여 상기 복수의 채널 그룹을 업데이트하며, 상기 기설정된 제1 값은 최대 픽셀 값일 수 있다.
그리고, 상기 업데이트하는 단계는 상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 결정된 값 및 기설정된 제2 값으로 차분하여 상기 차분된 값을 획득하며, 상기 기설정된 제2 값은 최소 픽셀 값 및 상기 최대 픽셀 값의 중간 값일 수 있다.
또한, 상기 고해상화하는 단계는 상기 업데이트된 복수의 채널 그룹을 상기 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 1:1 고해상화하고, 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하는 단계는 상기 1:1 고해상화된 복수의 채널 그룹을 셔플하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득할 수 있다.
도 1a 내지 도 1f는 본 개시의 이해를 돕기 위한 업스케일링 방법을 설명하기 위한 도면들이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 나타내는 블럭도이다.
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전처리 방법을 설명하기 위한 도면들이다.
도 6 내지 도 8은 본 개시의 일 실시 예에 따른 전처리 방법을 설명하기 위한 도면들이다.
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 목적은 신경망 모델을 통한 업스케일링 성능을 높이기 위해, 적절한 전처리를 수행하는 전자 장치 및 그 제어 방법을 제공함에 있다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공 지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 다양한 실시 예를 보다 상세하게 설명한다.
도 1a 내지 도 1f는 본 개시의 이해를 돕기 위한 업스케일링 방법을 설명하기 위한 도면들이다.
도 1a는 업스케일링을 수행하는 신경망 모델의 일 예로서, 신경망 모델은 저해상도의 이미지와 고해상도의 이미지의 차이를 학습하고, 학습이 완료된 신경망 모델에 저해상도의 이미지가 입력되면 고해상도의 이미지가 출력될 수 있다. 이를 통해, 고해상도의 이미지는 저해상도의 이미지보다 선명하고 세밀할 수 있다.
다만, TV와 같은 영상 처리 장치의 경우, 입력 영상의 해상도가 고정되어 있지 않기 때문에 일정한 출력 해상도를 유지하기 위해서는 입력에 맞는 다양한 업스케일링 배율을 지원할 필요가 있다. 이 경우, 입력 해상도에 따라 최적의 모델을 사용하여 성능이 향상될 수 있으나, 신경망 네트워크 기반 알고리즘은 연산량이 매우 많고 하드웨어도 복잡하기 때문에 동일한 네트워크에서 모든 입력을 지원하도록 설계하여 효율을 높일 필요가 있다.
이러한 문제를 해결하기 위한 일 예로, 도 1b에 도시된 바와 같이, 픽셀 셔플(shuffle) 방법이 이용될 수 있다. 예를 들어, 원본 이미지가 H×W 사이즈였다면, r배로 업스케일링된 이미지는 rH×rW 사이즈가 되고, 도 1b의 마지막 레이어인 efficient sub-pixel convolution layer에서는 r^2만큼 채널 수(피쳐 맵(feature map)의 개수)가 증가되고, 피쳐 맵 각각에서 한 픽셀씩 순서대로 조합하여 고해상도의 이미지로 재구성될 수 있다. 결론적으로, 하나의 원본 이미지로부터 하나의 고해상도의 이미지가 획득될 수 있다.
이러한 방식은 도 1b와 같이, 마지막단 뿐만 아니라 입력단에서도 사용될 수 있다. 예를 들어, 도 1c에 도시된 바와 같이, 어떠한 해상도의 원본 이미지라도 4K 해상도로 업스케일링하고, 언셔플(unshuffle)을 통해 업스케일링된 이미지를 16개의 채널로 변경하고, 이를 네트워크에 입력할 수 있다. 이후, 네트워크로부터 출력되는 피쳐 맵을 셔플(shuffle)하여 고해상도의 이미지를 획득할 수 있으며, 이러한 방법을 통해 다양한 해상도의 이미지를 하나의 네트워크를 통해 고해상화할 수 있다.
도 1d는 업스케일링 동작, 언셔플 동작, 네트워크 연산 및 셔플 동작을 좀더 구체적으로 도시하였다. 좀더 구체적인 설명을 위해, 도 1e를 참고하면, 먼저 H×W×C의 원본 이미지가 4H×4W×1C로 업스케일링될 수 있다. 예를 들어, 도 1e의 저해상도의 이미지에 포함된 0_0, 0_1, 0_2, 0_3의 4개 픽셀을 기준으로 각각 15개의 추가 픽셀을 만들어 0_0~15_0, 0_1~15_1, 0_2~15_2, 0_3~15_3로 가로세로 4배 크기의 업스케일링된 이미지가 획득될 수 있다. 이후, 4H×4W×1C의 이미지를 언셔플하여 16개의 채널이 획득될 수 있다. 도 1f는 언셔플을 위한 코드의 일 예를 나타낸다.
다만, 이러한 전처리 단계에서 전통적인 보간(interpolation) 방식으로 업스케일링을 수행하기 때문에 저해상도의 이미지가 보간 없이 네트워크에 입력되는 경우와 비교하여 고해상화 효과가 떨어질 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블럭도이다. 전자 장치(100)는 도 2에 도시된 바와 같이, 메모리(110) 및 프로세서(120)를 포함한다.
전자 장치(100)는 이미지를 업스케일링하는 장치로서, 셋탑박스(STB), 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, 서버, TV 등일 수 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 이미지를 업스케일링할 수 있는 장치라면 어떤 장치라도 무방하다.
메모리(110)는 프로세서(120) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있다. 이를 위해, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시 메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(110)에는 전자 장치(100) 또는 프로세서(120)의 동작에 필요한 적어도 하나의 인스트럭션(instruction) 또는 모듈이 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(120)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 모듈은 작업 단위의 특정 작업을 수행하는 일련의 인스트럭션의 집합체(instruction set)일 수 있다.
메모리(110)에는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 정보인 데이터가 저장될 수 있다. 예를 들어, 메모리(110)에는 신경망 모델이 저장될 수 있다.
메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의해 인스트럭션, 모듈 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(120)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(120)는 메모리(110), 통신 인터페이스(미도시), 디스플레이(미도시) 등과 같은 구성과 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
적어도 하나의 프로세서(120)는 CPU, GPU(Graphics Processing Unit), APU(Accelerated Processing Unit), MIC(Many Integrated Core), NPU(Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 적어도 하나의 프로세서(120)는 전자 장치(100)의 다른 구성 요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 적어도 하나의 프로세서(120)는 메모리(110)에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 적어도 하나의 프로세서(120)는 메모리(110)에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작, 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 제1 프로세서에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 제1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제3 동작은 제2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다.
적어도 하나의 프로세서(120)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 적어도 하나의 프로세서(120)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작 및 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행되고 제3 동작은 멀티 코어 프로세서에 포함된 제2 코어에 의해 수행될 수도 있다.
본 개시의 실시 예들에서, 적어도 하나의 프로세서(120)는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다. 다만, 이하에서는 설명의 편의를 위해, 프로세서(120)라는 표현으로 전자 장치(100)의 동작을 설명한다.
프로세서(120)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득할 수 있다. 예를 들어, 프로세서(120)는 H×W×C의 이미지를 4H×4W×1C의 이미지로 업스케일링할 수 있다.
프로세서(120)는 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하고, 복수의 채널 그룹 각각에 포함된 픽셀 값을, 업스케일링된 이미지에서 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
예를 들어, 프로세서(120)는 4H×4W×1C로 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플하여 H×W의 데이터를 포함하는 16개의 채널 그룹을 획득하고, 16개의 채널 그룹 각각에 포함된 픽셀 값을, 4H×4W×1C로 업스케일링된 이미지에서 16개의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 16개의 채널 그룹을 업데이트할 수 있다.
가령, 프로세서(120)는 복수의 채널 그룹 중 제1 그룹을 이미지에 대응되는 그룹으로 획득하고, 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 제1 그룹의 픽셀 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다. 즉, 프로세서(120)는 업스케일링 과정에서 생성된 픽셀 각각을 원본 이미지의 픽셀로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
또는, 프로세서(120)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 업스케일링된 이미지를 획득하고, 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 복수의 채널 그룹을 업데이트할 수도 있다.
여기서, 프로세서(120)는 복수의 기설정된 픽셀에 기초하여 복수의 채널 그룹 중 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득할 수 있다. 가령, 프로세서(120)는 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 복수의 기설정된 픽셀로 식별할 수 있다. 즉, 프로세서(120)는 복수의 기설정된 픽셀로 복수의 채널 그룹 중 일부인 제1 채널 그룹을 획득하고, 복수의 채널 그룹 중 나머지인 제2 채널 그룹에 포함된 픽셀 각각을 제1 채널 그룹에 포함된 픽셀 중 대응되는 픽셀로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
또는, 프로세서(120)는 복수의 채널 그룹 각각에 포함된 픽셀 값을 업스케일링된 이미지에 포함된 복수의 픽셀의 평균 값으로 차분하여 복수의 채널 그룹을 업데이트할 수도 있다. 이 경우, 복수의 채널 그룹에 포함된 픽셀은 모두 동일한 값으로 차분될 수 있다.
또는, 프로세서(120)는 복수의 채널 그룹 중 제1 그룹을 이미지에 대응되는 그룹으로 획득하고, 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 제1 그룹에 포함된 복수의 픽셀의 평균 값 및 중간 값 중 하나로 차분하여 복수의 채널 그룹을 업데이트할 수도 있다. 이 경우, 복수의 채널 그룹에 포함된 픽셀은 채널 그룹 별로 상이한 값으로 차분될 수 있다.
프로세서(120)는 차분된 값이 기설정된 제1 값을 초과하면 차분된 값을 기설정된 제1 값으로 클램핑(clamping)하여 복수의 채널 그룹을 업데이트할 수 있다. 여기서, 기설정된 제1 값은 최대 픽셀 값일 수 있다.
프로세서(120)는 복수의 채널 그룹 각각에 포함된 픽셀 값을 결정된 값 및 기설정된 제2 값으로 차분하여 차분된 값을 획득할 수도 있다. 여기서, 기설정된 제2 값은 최소 픽셀 값 및 최대 픽셀 값의 중간 값일 수 있다.
프로세서(120)는 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 업데이트된 복수의 채널 그룹을 고해상화하고, 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하고, 획득된 이미지를 기설정된 필터로 컨볼루션하여 이미지가 업스케일링된 최종 이미지를 획득할 수 있다.
예를 들어, 프로세서(120)는 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 업데이트된 복수의 채널 그룹을 1:1 고해상화하고, 1:1 고해상화된 복수의 채널 그룹을 셔플하여 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하고, 획득된 이미지를 기설정된 필터로 컨볼루션하여 이미지가 업스케일링된 최종 이미지를 획득할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치(100)의 세부 구성을 나타내는 블럭도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치(100)의 세부 구성을 나타내는 블럭도이다. 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 또한, 도 3에 따르면, 전자 장치(100)는 통신 인터페이스(130), 디스플레이(140), 사용자 인터페이스(150), 마이크(160), 스피커(170), 카메라(180)를 더 포함할 수도 있다. 도 3에 도시된 구성 요소들 중 도 2에 도시된 구성 요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(130)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 예를 들어, 전자 장치(100)는 통신 인터페이스(130)를 통해 서버 또는 사용자 단말 장치와 통신을 수행할 수 있다.
통신 인터페이스(130)는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 및 무선 통신 모듈 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
와이파이 모듈, 블루투스 모듈은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 모듈이나 블루투스 모듈을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 적외선 통신 모듈은 시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다.
또는, 통신 인터페이스(130)는 HDMI, DP, 썬더볼트, USB, RGB, D-SUB, DVI 등과 같은 유선 통신 인터페이스를 포함할 수 있다.
그 밖에 통신 인터페이스(130)는 LAN(Local Area Network) 모듈, 이더넷 모듈, 또는 페어 케이블, 동축 케이블 또는 광섬유 케이블 등을 이용하여 통신을 수행하는 유선 통신 모듈 중 적어도 하나를 포함할 수도 있다.
디스플레이(140)는 이미지를 디스플레이하는 구성으로, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(140) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(140)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
사용자 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드 등으로 구현되거나, 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
마이크(160)는 사운드를 입력받아 오디오 신호로 변환하기 위한 구성이다. 마이크(160)는 프로세서(120)와 전기적으로 연결되며, 프로세서(120)의 제어에 의해 사운드를 수신할 수 있다.
예를 들어, 마이크(160)는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 형성될 수 있다. 또는, 마이크(160)는 전자 장치(100)와는 별도의 리모컨 등에 구비될 수도 있다. 이 경우, 리모컨은 마이크(160)를 통해 사운드를 수신하고, 수신된 사운드를 전자 장치(100)로 제공할 수도 있다.
마이크(160)는 아날로그 형태의 사운드를 수집하는 마이크, 수집된 사운드를 증폭하는 앰프 회로, 증폭된 사운드를 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
한편, 마이크(160)는 사운드 센서의 형태로 구현될 수도 있으며, 사운드를 수집할 수 있는 구성이라면 어떠한 방식이라도 무방하다.
스피커(170)는 프로세서(120)에서 처리된 각종 오디오 데이터 뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소이다.
카메라(180)는 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라(180)는 특정 시점에서의 정지 영상을 촬영할 수 있으나, 연속적으로 정지 영상을 촬영할 수도 있다.
카메라(180)는 렌즈, 셔터, 조리개, 고체 촬상 소자, AFE(Analog Front End), TG(Timing Generator)를 포함한다. 셔터는 피사체에 반사된 빛이 카메라(180)로 들어오는 시간을 조절하고, 조리개는 빛이 들어오는 개구부의 크기를 기계적으로 증가 또는 감소시켜 렌즈에 입사되는 광량을 조절한다. 고체 촬상 소자는 피사체에 반사된 빛이 광전하로 축적되면, 광전하에 의한 상을 전기 신호로 출력한다. TG는 고체 촬상 소자의 픽셀 데이터를 리드아웃 하기 위한 타이밍 신호를 출력하며, AFE는 고체 촬상 소자로부터 출력되는 전기 신호를 샘플링하여 디지털화한다.
이상과 같이 전자 장치(100)는 언셔플된 복수의 채널 그룹에서 DC 성분들을 제거하고, DC 성분들이 제거된 복수의 채널 그룹을 신경망 모델에 입력하여 고해상화 성능을 향상시킬 수 있다. 또한, 이러한 차분 동작은 하드웨어 구현도 간단하기 때문에 기존 하드웨어의 구조 변화를 최소화할 수 있다.
이하에서는 도 4 내지 도 8을 통해 전자 장치(100)의 동작을 좀더 구체적으로 설명한다. 도 4 내지 도 8에서는 설명의 편의를 위해 개별적인 실시 예에 대하여 설명한다. 다만, 도 4 내지 도 8의 개별적인 실시 예는 얼마든지 조합된 상태로 실시될 수도 있다.
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전처리 방법을 설명하기 위한 도면들이다.
프로세서(120)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득할 수 있다. 예를 들어, 프로세서(120)는 도 4의 상단에 도시된 바와 같이, H×W×C의 이미지를 4H×4W×1C로 업스케일링할 수 있다. 여기서, 프로세서(120)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 업스케일링된 이미지를 획득할 수 있다. 예를 들어, 프로세서(120)는 도 4의 상단에 도시된 바와 같이, H×W×C의 이미지를 4H×4W×1C로 업스케일링하는 과정에서 H×W×C의 이미지에 포함된 0_0, 0_1, 0_2, 0_3 픽셀 각각을 업스케일링할 수 있으며, 그에 따라 업스케일링된 이미지는 410과 같이 0_0, 0_1, 0_2, 0_3 픽셀을 포함할 수 있다. 즉, 프로세서(120)는 0_0 픽셀을 0_0~15_0으로 업스케일링하고, 0_1 픽셀을 0_1~15_1로 업스케일링하고, 0_2 픽셀을 0_2~15_2으로 업스케일링하고, 0_3 픽셀을 0_3~15_3으로 업스케일링할 수 있다.
프로세서(120)는 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득할 수 있다. 예를 들어, 프로세서(120)는 도 4의 하단에 도시된 바와 같이, 업스케일링된 이미지에서 0_0, 0_1, 0_2, 0_3 픽셀을 포함하는 제1 그룹(420)을 획득할 수 있다. 그리고, 프로세서(120)는 업스케일링된 이미지에서 나머지 픽셀 값을 제1 그룹(420)의 대응되는 픽셀 값으로 차분하여 제2 내지 16 그룹을 획득할 수 있다. 가령, 프로세서(120)는 업스케일링된 이미지에서 0_0, 0_1, 0_2, 0_3 픽셀 각각의 우측에 배치된 1_0, 1_1, 1_2, 1_3 픽셀을 포함하는 제2 그룹(430)을 획득하고, 1_0, 1_1, 1_2, 1_3 픽셀 값에 각각 대응되는 0_0, 0_1, 0_2, 0_3 픽셀 값을 차분할 수 있다. 프로세서(120)는 유사한 방식으로 제3 그룹 내지 제16 그룹을 획득할 수 있으며, 각 연산은 하기와 같이 나타낼 수 있다.
Ch1: 0_0, 0_1, 0_2, 0_3
Ch2: (1_0-0_0), (1_1-0_1), (1_2-0_2), (1_3-0_3)
Ch3: (2_0-0_0), (2_1-0_1), (2_2-0_2), (2_3-0_3)
Ch4: (3_0-0_0), (3_1-0_1), (3_2-0_2), (3_3-0_3)
Ch5: (4_0-0_0), (4_1-0_1), (4_2-0_2), (4_3-0_3)
Ch16: (15_0-0_0), (15_1-0_1), (15_2-0_2), (15_3-0_3)
프로세서(120)는 제1 그룹을 제외한 각 그룹의 픽셀 값을 중간 값으로 차분하여 제1 그룹을 제외한 각 그룹을 업데이트할 수 있다. 예를 들어, 프로세서(120)는 제1 그룹을 제외한 각 그룹의 픽셀 값을 중간 값 0.5로 차분하여 제1 그룹을 제외한 각 그룹을 업데이트할 수 있다. 여기서, 중간 값 0.5는 최소 픽셀 값 및 최대 픽셀 값의 중간 값이며, 이는 이미지의 픽셀 값을 0~1로 노멀라이즈(normalize)하였기 때문이다. 이미지의 픽셀 값을 노멀라이즈하는 동작은 업스케일링 이전에 수행될 수 있다. 다만, 이에 한정되는 것은 아니며, 노멀라이즈를 수행하지 않을 수도 있다. 이 경우, 가령 최소 픽셀 값이 0이고, 최대 픽셀 값이 255이면, 중간 값은 128일 수도 있다.
프로세서(120)는 차분된 값이 기설정된 제1 값을 초과하면 차분된 값을 기설정된 제1 값으로 클램핑(clamping)하여 복수의 채널 그룹을 업데이트할 수 있다. 여기서, 기설정된 제1 값은 최대 픽셀 값일 수 있다. 도 4에서는 이미지의 픽셀 값을 0~1로 노멀라이즈한 상태이므로, 프로세서(120)는 차분된 값이 1을 초과하면 차분된 값을 1로 클램핑할 수 있다.
이상과 같은 차분 동작을 통해 DC 성분들이 제거된 데이터가 신경망 모델에 입력되며, 이는 변화량이 입력되는 것을 의미한다. 그에 따라, 고주파 텍스쳐 영역이나 주변 픽셀과 차이가 큰 엣지 영역에서의 변화가 좀더 유의미할 수 있는 고해상화를 수행하는 신경망 모델의 업스케일링 성능이 좀더 개선될 수 있다.
이러한 동작은 도 5에 도시된 바와 같은 코드를 통해 구현될 수 있다. 도 5에서 torch.clamp는 클램핑 동작을 나타내는 명령어일 수 있다.
도 6 내지 도 8은 본 개시의 일 실시 예에 따른 전처리 방법을 설명하기 위한 도면들이다.
프로세서(120)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 업스케일링된 이미지를 획득할 수 있다. 예를 들어, 즉, 프로세서(120)는 도 6의 상단에 도시된 바와 같이, 0_0 픽셀을 0_0~15_0으로 업스케일링하여 제1 서브 이미지를 획득하고, 0_1 픽셀을 0_1~15_1로 업스케일링하여 제2 서브 이미지를 획득하고, 0_2 픽셀을 0_2~15_2으로 업스케일링하여 제3 서브 이미지를 획득하고, 0_3 픽셀을 0_3~15_3으로 업스케일링하여 제4 서브 이미지를 획득할 수 있다. 여기서, 각 서브 이미지는 이미지에 포함된 복수의 픽셀 중 하나를 포함할 수 있으며, 업스케일링된 이미지는 610과 같이 0_0, 0_1, 0_2, 0_3 픽셀을 포함할 수 있다.
프로세서(120)는 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 복수의 기설정된 픽셀로 식별할 수 있다. 예를 들어, 프로세서(120)는 제1 서브 이미지에서 0_0, 3_0, 12_0, 15_0을 기설정된 픽셀로 식별하고, 제2 서브 이미지에서 0_1, 3_1, 12_1, 15_1을 기설정된 픽셀로 식별하고, 제3 서브 이미지에서 0_2, 3_2, 12_2, 15_2를 기설정된 픽셀로 식별하고, 제4 서브 이미지에서 0_3, 3_3, 12_3, 15_3을 기설정된 픽셀로 식별할 수 있다.
프로세서(120)는 업스케일링된 이미지에서 기설정된 픽셀을 제외한 나머지 픽셀로 일부 채널 그룹을 획득하고, 기설정된 픽셀로 나머지 채널 그룹을 획득할 수 있다. 예를 들어, 프로세서(120)는 업스케일링된 이미지에서 기설정된 픽셀을 제외한 나머지 픽셀로 제2, 제3, 제5 내지 제12, 제14, 제15 그룹을 획득하고, 0_0, 0_1, 0_2, 0_3 픽셀을 포함하는 제1 그룹(620)을 획득하고, 3_0, 3_1, 3_2, 3_3 픽셀을 포함하는 제4 그룹(630)을 획득하고, 12_0, 12_1, 12_2, 12_3 픽셀을 포함하는 제13 그룹(640)을 획득하고, 15_0, 15_1, 15_2, 15_3 픽셀을 포함하는 제16 그룹(650)을 획득할 수 있다. 이하에서는 설명의 편의를 위해, 제2, 제3, 제5 내지 제12, 제14, 제15 그룹을 일부 채널 그룹으로 설명하고, 제1 그룹(620), 제4 그룹(630), 제13 그룹(640), 제16 그룹(650)을 나머지 채널 그룹으로 설명한다.
프로세서(120)는 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
먼저, 각 픽셀과 가장 가까운 기설정된 픽셀 값을 도 7을 통해 설명한다.
프로세서(120)는 이미지의 0_0을 업스케일링하여 도 7의 우측과 같은 서브 이미지를 획득할 수 있다. 여기서, 0_0 픽셀(710), 3_0 픽셀(720), 12_0 픽셀(730), 15_0 픽셀(740)은 나머지 채널 그룹을 형성하는 픽셀이고, 나머지 픽셀은 일부 채널 그룹을 형성하는 픽셀이다. 프로세서(120)는 나머지 픽셀 값을 나머지 픽셀에 가까운 기설정된 픽셀 값으로 차분할 수 있다. 예를 들어, 프로세서(120)는 1_0, 4_0, 5_0 픽셀을 0_0 픽셀(710)로 차분하고, 2_0, 6_0, 7_0 픽셀을 3_0 픽셀(720)로 차분하고, 8_0, 9_0, 13_0 픽셀을 12_0 픽셀(730)로 차분하고, 10_0, 11_0, 14_0 픽셀을 15_0 픽셀(740)로 차분할 수 있다.
프로세서(120)는 이상과 같은 방식으로 모든 서브 이미지에 포함된 픽셀 중 기설정된 픽셀을 제외한 픽셀에 대한 차분을 수행할 수 있으며, 각 연산은 하기와 같이 나타낼 수 있다.
Ch1: 0_0, 0_1, 0_2, 0_3
Ch2: (1_0-0_0), (1_1-0_1), (1_2-0_2), (1_3-0_3)
Ch5: (4_0-0_0), (4_1-0_1), (4_2-0_2), (4_3-0_3)
Ch6: (5_0-0_0), (5_1-0_1), (5_2-0_2), (5_3-0_3)
Ch16: 15_0, 15_1, 15_2, 15_3
Ch11: (10_0-15_0), (10_1-15_1), (10_2-15_2), (10_3-15_3)
Ch12: (11_0-15_0), (11_1-15_1), (11_2-15_2), (11_3-15_3)
Ch15: (14_0-15_0), (14_1-15_1), (14_2-15_2), (14_3-15_3)
프로세서(120)는 제1 그룹(620), 제4 그룹(630), 제13 그룹(640), 제16 그룹(650)을 제외한 일부 그룹의 픽셀 값을 중간 값으로 차분하여 일부 그룹을 업데이트할 수 있다. 예를 들어, 프로세서(120)는 제1 그룹(620), 제4 그룹(630), 제13 그룹(640), 제16 그룹(650)을 제외한 일부 그룹의 픽셀 값을 중간 값 0.5로 차분하여 일부 그룹을 업데이트할 수 있다. 여기서, 중간 값 0.5는 최소 픽셀 값 및 최대 픽셀 값의 중간 값이며, 이는 이미지의 픽셀 값을 0~1로 노멀라이즈하였기 때문이다. 이미지의 픽셀 값을 노멀라이즈하는 동작은 업스케일링 이전에 수행될 수 있다. 다만, 이에 한정되는 것은 아니며, 노멀라이즈를 수행하지 않을 수도 있다. 이 경우, 가령 최소 픽셀 값이 0이고, 최대 픽셀 값이 255이면, 중간 값은 128일 수도 있다.
프로세서(120)는 차분된 값이 기설정된 제1 값을 초과하면 차분된 값을 기설정된 제1 값으로 클램핑하여 복수의 채널 그룹을 업데이트할 수 있다. 여기서, 기설정된 제1 값은 최대 픽셀 값일 수 있다. 도 4에서는 이미지의 픽셀 값을 0~1로 노멀라이즈한 상태이므로, 프로세서(120)는 차분된 값이 1을 초과하면 차분된 값을 1로 클램핑할 수 있다.
이상과 같은 차분 동작을 통해 DC 성분들이 제거된 데이터가 신경망 모델에 입력될 수 있다. 특히, 도 4의 동작과 비교하여 좀더 인접한 주변부와의 차이가 입력으로 사용됨에 따라 신경망 모델의 업스케일링 성능이 좀더 개선될 수 있다.
이러한 동작은 도 8에 도시된 바와 같은 코드를 통해 구현될 수 있다.
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득한다(S910). 그리고, 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득한다(S920). 그리고, 복수의 채널 그룹 각각에 포함된 픽셀 값을, 업스케일링된 이미지에서 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 복수의 채널 그룹을 업데이트한다(S930). 그리고, 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 업데이트된 복수의 채널 그룹을 고해상화한다(S940). 그리고, 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 업스케일링된 이미지와 해상도가 동일한 이미지를 획득한다(S950). 그리고, 획득된 이미지를 기설정된 필터로 컨볼루션하여 이미지가 업스케일링된 최종 이미지를 획득한다(S960).
또한, 복수의 채널 그룹을 획득하는 단계(S920)는 복수의 채널 그룹 중 제1 그룹을 이미지에 대응되는 그룹으로 획득하고, 업데이트하는 단계(S930)는 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 제1 그룹의 픽셀 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 업스케일링된 이미지를 획득하는 단계(S910)는 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 업스케일링된 이미지를 획득하고, 업데이트하는 단계(S930)는 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
또한, 복수의 채널 그룹을 획득하는 단계(S920)는 복수의 기설정된 픽셀에 기초하여 복수의 채널 그룹 중 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득할 수 있다.
그리고, 복수의 채널 그룹을 획득하는 단계(S920)는 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 복수의 기설정된 픽셀로 식별할 수 있다.
또한, 업데이트하는 단계(S930)는 복수의 채널 그룹 각각에 포함된 픽셀 값을 업스케일링된 이미지에 포함된 복수의 픽셀의 평균 값으로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
그리고, 복수의 채널 그룹을 획득하는 단계(S920)는 복수의 채널 그룹 중 제1 그룹을 이미지에 대응되는 그룹으로 획득하고, 업데이트하는 단계(S930)는 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 제1 그룹에 포함된 복수의 픽셀의 평균 값 및 중간 값 중 하나로 차분하여 복수의 채널 그룹을 업데이트할 수 있다.
또한, 업데이트하는 단계(S930)는 차분된 값이 기설정된 제1 값을 초과하면 차분된 값을 기설정된 제1 값으로 클램핑(clamping)하여 복수의 채널 그룹을 업데이트하며, 기설정된 제1 값은 최대 픽셀 값일 수 있다.
그리고, 업데이트하는 단계(S930)는 복수의 채널 그룹 각각에 포함된 픽셀 값을 결정된 값 및 기설정된 제2 값으로 차분하여 차분된 값을 획득하며, 기설정된 제2 값은 최소 픽셀 값 및 최대 픽셀 값의 중간 값일 수 있다.
또한, 고해상화하는 단계(S940)는 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 업데이트된 복수의 채널 그룹을 1:1 고해상화하고, 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하는 단계(S950)는 1:1 고해상화된 복수의 채널 그룹을 셔플하여 업스케일링된 이미지와 해상도가 동일한 이미지를 획득할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 언셔플된 복수의 채널 그룹에서 DC 성분들을 제거하고, DC 성분들이 제거된 복수의 채널 그룹을 신경망 모델에 입력하여 고해상화 성능을 향상시킬 수 있다.
또한, 이러한 차분 동작은 하드웨어 구현도 간단하기 때문에 기존 하드웨어의 구조 변화를 최소화할 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어로서 구현될 수도 있다. 소프트웨어 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (15)

  1. 전자 장치에 있어서,
    신경망 모델이 저장된 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서;를 포함하며,
    상기 프로세서는,
    이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득하고,
    상기 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하고,
    상기 복수의 채널 그룹 각각에 포함된 픽셀 값을, 상기 업스케일링된 이미지에서 상기 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하고,
    상기 업데이트된 복수의 채널 그룹을 상기 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 고해상화하고,
    상기 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하고,
    상기 획득된 이미지를 기설정된 필터로 컨볼루션하여 상기 이미지가 업스케일링된 최종 이미지를 획득하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고,
    상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 상기 제1 그룹의 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 상기 업스케일링된 이미지를 획득하고,
    상기 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 상기 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 상기 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 기설정된 픽셀에 기초하여 상기 복수의 채널 그룹 중 상기 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득하는, 전자 장치.
  5. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 상기 복수의 기설정된 픽셀로 식별하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 업스케일링된 이미지에 포함된 복수의 픽셀의 평균 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고,
    상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 제1 그룹에 포함된 복수의 픽셀의 평균 값 및 중간 값 중 하나로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 차분된 값이 기설정된 제1 값을 초과하면 상기 차분된 값을 상기 기설정된 제1 값으로 클램핑(clamping)하여 상기 복수의 채널 그룹을 업데이트하며,
    상기 기설정된 제1 값은, 최대 픽셀 값인, 전자 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 복수의 채널 그룹 각각에 포함된 픽셀 값을 상기 결정된 값 및 기설정된 제2 값으로 차분하여 상기 차분된 값을 획득하며,
    상기 기설정된 제2 값은, 최소 픽셀 값 및 상기 최대 픽셀 값의 중간 값인, 전자 장치.
  10. 제1항에 있어서,
    상기 프로세서는,
    상기 업데이트된 복수의 채널 그룹을 상기 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 1:1 고해상화하고,
    상기 1:1 고해상화된 복수의 채널 그룹을 셔플하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하는, 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 업스케일링된 이미지를 획득하는 단계;
    상기 업스케일링된 이미지에 포함된 복수의 픽셀을 언셔플(unshuffle)하여 복수의 채널 그룹을 획득하는 단계;
    상기 복수의 채널 그룹 각각에 포함된 픽셀 값을, 상기 업스케일링된 이미지에서 상기 복수의 채널 그룹 각각에 포함된 픽셀의 위치에 기초하여 결정된 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는 단계;
    상기 업데이트된 복수의 채널 그룹을 신경망 모델에 입력하여 상기 업데이트된 복수의 채널 그룹을 고해상화하는 단계;
    상기 고해상화된 복수의 채널 그룹을 셔플(shuffle)하여 상기 업스케일링된 이미지와 해상도가 동일한 이미지를 획득하는 단계; 및
    상기 획득된 이미지를 기설정된 필터로 컨볼루션하여 상기 이미지가 업스케일링된 최종 이미지를 획득하는 단계;를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 복수의 채널 그룹을 획득하는 단계는,
    상기 복수의 채널 그룹 중 제1 그룹을 상기 이미지에 대응되는 그룹으로 획득하고,
    상기 업데이트하는 단계는,
    상기 복수의 채널 그룹 중 나머지인 복수의 제2 그룹 각각에 포함된 픽셀 값을, 상기 복수의 제2 그룹 각각에 포함된 픽셀에 대응되는 상기 제1 그룹의 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 제어 방법.
  13. 제11항에 있어서,
    상기 업스케일링된 이미지를 획득하는 단계는,
    상기 이미지에 포함된 복수의 픽셀 각각을 업스케일링하여 복수의 서브 이미지를 포함하는 상기 업스케일링된 이미지를 획득하고,
    상기 업데이트하는 단계는,
    상기 복수의 채널 그룹 중 일부 채널 그룹 각각에 포함된 픽셀 값을, 상기 복수의 서브 이미지에 포함된 복수의 기설정된 픽셀 중 상기 일부 채널 그룹 각각에 포함된 픽셀의 위치에 가장 가까운 기설정된 픽셀 값으로 차분하여 상기 복수의 채널 그룹을 업데이트하는, 제어 방법.
  14. 제13항에 있어서,
    상기 복수의 채널 그룹을 획득하는 단계는,
    상기 복수의 기설정된 픽셀에 기초하여 상기 복수의 채널 그룹 중 상기 일부 채널 그룹을 제외한 나머지 채널 그룹을 획득하는, 제어 방법.
  15. 제13항에 있어서,
    상기 복수의 채널 그룹을 획득하는 단계는,
    상기 복수의 서브 이미지 각각에서 꼭짓점에 배치된 픽셀을 상기 복수의 기설정된 픽셀로 식별하는, 제어 방법.
PCT/KR2023/018792 2023-01-04 2023-11-21 이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법 WO2024147482A1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2023-0001072 2023-01-04

Publications (1)

Publication Number Publication Date
WO2024147482A1 true WO2024147482A1 (ko) 2024-07-11

Family

ID=

Similar Documents

Publication Publication Date Title
WO2016047860A1 (en) Foldable display device displayng stored image by folding or unfolding action and method of therefor
WO2018084516A1 (ko) 전지 장치, 디스플레이 장치 및 그의 제어 방법
WO2019035601A1 (en) IMAGE EDITING APPARATUS USING A DEPTH CARD AND ITS METHOD
WO2021101087A1 (en) Electronic apparatus and controlling method thereof
WO2021107291A1 (en) Electronic apparatus and control method thereof
WO2017213439A1 (ko) 멀티 스티커를 이용한 영상 생성 방법 및 장치
WO2021071155A1 (en) Electronic apparatus and control method thereof
WO2019035551A1 (en) APPARATUS FOR COMPOSING OBJECTS USING DEPTH CARD AND ASSOCIATED METHOD
WO2020159185A1 (en) Electronic device and control method thereof
WO2019160237A1 (en) Electronic device and method for controlling display of images
WO2024147482A1 (ko) 이미지를 업스케일링하기 위한 전자 장치 및 그 제어 방법
WO2021107293A1 (en) Electronic apparatus and control method thereof
WO2023068655A1 (en) System and method for learning tone curves for local image enhancement
WO2022114516A1 (ko) 전자 장치 및 이의 제어 방법
WO2022108008A1 (en) Electronic apparatus and controlling method thereof
WO2024085381A1 (ko) 이미지에서 관심 영역을 식별하기 위한 전자 장치 및 그 제어 방법
WO2022059920A1 (ko) 전자 장치, 그 제어 방법 및 전자 시스템
WO2024090778A1 (ko) 오디오 데이터로부터 오디오 객체를 분리하기 위한 전자 장치 및 그 제어 방법
WO2021182750A1 (en) Display apparatus and method thereof
WO2024117506A1 (ko) 사운드를 모드에 따라 상이하게 처리하기 위한 전자 장치 및 그 제어 방법
WO2023043032A1 (ko) 전자 장치 및 그 제어 방법
WO2024090743A1 (ko) 복수의 비디오를 동시에 재생하기 위한 전자 장치 및 그 제어 방법
WO2024063301A1 (ko) Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법
WO2024085473A1 (ko) P2p 연결을 형성하기 위한 전자 장치 및 그 제어 방법
WO2024039035A1 (ko) 영상 처리를 수행하기 위한 전자 장치 및 그 제어 방법