WO2024043602A1 - 이미지로부터 텍스트를 획득하는 방법 및 서버 - Google Patents

이미지로부터 텍스트를 획득하는 방법 및 서버 Download PDF

Info

Publication number
WO2024043602A1
WO2024043602A1 PCT/KR2023/012109 KR2023012109W WO2024043602A1 WO 2024043602 A1 WO2024043602 A1 WO 2024043602A1 KR 2023012109 W KR2023012109 W KR 2023012109W WO 2024043602 A1 WO2024043602 A1 WO 2024043602A1
Authority
WO
WIPO (PCT)
Prior art keywords
text
image
server
area
separator
Prior art date
Application number
PCT/KR2023/012109
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 KR1020230006301A external-priority patent/KR20240029493A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/238,897 priority Critical patent/US20240071115A1/en
Publication of WO2024043602A1 publication Critical patent/WO2024043602A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/16Image preprocessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image

Definitions

  • a server and its operating method are provided that separate, extract, and recognize overlapping text in an image using a text separation network.
  • a method for a server to obtain text from an image may be provided.
  • the method may include obtaining an image including a first text and a second text overlapping the first text.
  • the method may include separating a first text area corresponding to the first text from the image.
  • the method may include extracting pixels corresponding to the first text from the first text area to obtain intact and damaged portions of the first text.
  • the method may include restoring the first text by inpainting the damaged portion of the first text where the first text overlapped the second text within an image of the first text. there is.
  • a server that obtains text from an image.
  • the server includes a memory that stores one or more instructions; It may include one or more processors that execute the one or more instructions stored in the memory.
  • the one or more processors may acquire an image including a first text and a second text overlapping the first text by executing the one or more instructions.
  • the one or more processors may separate a first text area corresponding to the first text from the image by executing the one or more instructions.
  • the one or more processors may, by executing the one or more instructions, extract pixels corresponding to the first text from the first text area to obtain intact portions and damaged portions of the first text. .
  • the one or more processors by executing the one or more instructions, inpaint the damaged portion of the first text where the first text overlaps the second text in an image of the first text, Text can be restored.
  • a server may provide a computer-readable recording medium on which a program for executing any one of the above-mentioned and later-described methods of acquiring text from an image is recorded.
  • Figure 1 is a diagram schematically showing a server extracting text from an image according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart illustrating an operation in which a server obtains text from an image according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an image including overlapped text acquired by a server according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating an operation of a server preprocessing an image for text separation according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating a text separation network used by a server according to an embodiment of the present disclosure.
  • Figure 6 is a diagram for explaining an operation in which a server recognizes text in an image according to an embodiment of the present disclosure.
  • FIG. 7A is a diagram illustrating an operation of a server using color information to separate text according to an embodiment of the present disclosure.
  • FIG. 7B is a diagram illustrating an operation of a server using color information to separate text according to an embodiment of the present disclosure.
  • FIG. 8 is a diagram illustrating an operation of a server detecting text areas in an image according to an embodiment of the present disclosure.
  • FIG. 9 is a diagram illustrating an operation of a server separating text areas from an image according to an embodiment of the present disclosure.
  • FIG. 10 is a diagram illustrating an operation of a server extracting first text from a text area according to an embodiment of the present disclosure.
  • FIG. 11A is a diagram illustrating an operation of a server inpainting an image containing damaged text according to an embodiment of the present disclosure.
  • FIG. 11B is a diagram for explaining an operation in which a server generates training data for an inpainter according to an embodiment of the present disclosure.
  • Figure 12 is a diagram for explaining a text separation network according to an embodiment of the present disclosure.
  • FIG. 13A is a diagram for explaining how a server according to an embodiment of the present disclosure operates in conjunction with a refrigerator, which is a home appliance.
  • Figure 13b is a diagram to further explain how the server operates in conjunction with a refrigerator, which is a home appliance.
  • Figure 13c is a diagram for explaining the operation of a home appliance device operating in conjunction with a server.
  • Figure 14a is a diagram for explaining that a server according to an embodiment of the present disclosure operates in conjunction with an oven, which is a home appliance device.
  • Figure 14b is a diagram to further explain how the server operates in conjunction with an oven, which is a home appliance device.
  • Figure 15 is a flowchart for explaining how a server operates in conjunction with a home appliance device according to an embodiment.
  • Figure 16 is a block diagram of a server according to an embodiment of the present disclosure.
  • Figure 17 is a block diagram of an electronic device according to an embodiment of the present disclosure.
  • Figure 18 is a block diagram of a refrigerator according to an embodiment of the present disclosure.
  • Figure 19 is a block diagram of an oven according to an embodiment of the present disclosure.
  • the expression “at least one of a, b, or c” refers to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b and c”, or variations thereof.
  • the overlapping text is stored in a neural network using color clustering and/or color channel information and text properties (e.g., text color, text shape, text font). Can be separated through a network. Additionally, pixel information lost due to the text separation process can be recovered or reconstructed through inpainting.
  • color clustering and/or color channel information and text properties e.g., text color, text shape, text font.
  • Figure 1 is a diagram schematically showing a server extracting text from an image according to an embodiment of the present disclosure.
  • the server 2000 may acquire an image 100.
  • the image 100 may include text, and different texts may overlap each other within the image 100.
  • the image 100 acquired by the server 2000 may be a product label image.
  • the product label has detailed product information printed on the basic product label template. Accordingly, text included in the product label template (eg, product type) and text printed on the product label template (eg, product name) may overlap.
  • Products may be, for example, food (meat, etc.), wine, clothing, textile detergent, etc., but are not limited thereto.
  • the server 2000 may separate and extract overlapping text within the image 100.
  • the server 2000 can obtain unit text pieces 110 such as letters, words, corpora, and sentences by separating and extracting each overlapped text using a text separation network. For example, if the image 100 is a product label image, the text pieces 110 represent information related to the product.
  • the server 2000 may recognize text and generate product-related information based on text pieces 110 separated from the image 100.
  • the server 2000 uses product-related information to control home appliances (e.g., smart home appliances such as refrigerators and ovens) or sends product-related information to the user's electronic device (e.g., the user's smartphone). It can be provided as .
  • An electronic device may be a device that captures images (still images and/or video) through a camera, outputs images through a display, and receives images from an external device (eg, an image scanner).
  • electronic devices may include, but are not limited to, smart TVs, smart phones, tablet PCs, laptop PCs, etc.
  • Electronic devices may be implemented as various types and types of electronic devices, including cameras and displays. Additionally, the electronic device may include a speaker for outputting audio.
  • the electronic device 3000 can separate and extract text directly from the image 100 acquired using the camera of the electronic device 3000, and transmit the image 100 to the server 2000 so that the server 2000 It is possible to separate and extract text from the image 100.
  • server 2000 performing text separation and extraction operations will be described in more detail with reference to the drawings described later.
  • FIG. 2 is a flowchart illustrating an operation in which a server obtains text from an image according to an embodiment of the present disclosure.
  • step S210 the server 2000 obtains an image including a first text and a second text that overlaps the first text.
  • the server 2000 may receive an image from a user's electronic device (eg, smartphone, PC, etc.). For example, the server 2000 may obtain an image stored in memory within the server.
  • a user's electronic device eg, smartphone, PC, etc.
  • the server 2000 may obtain an image stored in memory within the server.
  • the server 2000 may obtain an image including overlapped text.
  • the separated and extracted text will be referred to as the first text
  • another text that overlaps the first text will be referred to as the second text.
  • first text and the second text are for convenience of explanation, and any unit text among the overlapped texts can be the first text.
  • the first text may be determined to be 'ABC' and the second text may be determined to be 'DEF', and operations for text separation and extraction, which will be described later, are performed.
  • the first text 'ABC' is obtained from the overlapped texts.
  • the server 2000 separates/extracts all text in the image, it performs the same/similar operation for all text in the image. That is, the server 2000 may distinguish the first text as 'DEF' and the second text as 'ABC' in the same/similar manner, thereby separating the first text 'DEF' from the overlapped texts.
  • second text-A There may be more than one second text that overlaps the first text.
  • second text-B Another unit text fragment overlapped with the first text.
  • step S220 the server 2000 separates a text area (first text area) corresponding to the first text from the image.
  • the software module used by the server 2000 to separate the text area corresponding to the first text is referred to as a separator.
  • the server 2000 can perform text segmentation using a separator.
  • the server 2000 may determine a plurality of text areas by segmenting the text in the image into a plurality of character groups.
  • a text area is an area within an image that contains characters classified into the same group.
  • the separator may include a first separator and a second separator.
  • the first separator may be configured to perform a relatively light text separation operation compared to the second separator, and the second separator may be configured to perform a relatively large number of operations compared to the first separator. Accordingly, the text separation accuracy of the second separator may be higher than that of the first separator.
  • the server 2000 may obtain a text area map indicating the location of text within an image and determine a plurality of text areas based on the text area map.
  • the server 2000 may determine a plurality of text areas based on at least one of the language, font, corpus (eg, weight (g)), and logo of the text.
  • the first separator may determine a plurality of text areas by applying a color clustering algorithm to group characters of adjacent colors.
  • the second separator may be implemented as an artificial intelligence model.
  • the separator may be a deep neural network model that receives an original image containing text as input and outputs an image containing a unit of text (for example, a group of characters).
  • the separator may be implemented using a variety of known deep neural network architectures and algorithms, or through variations of a variety of known deep neural network architectures and algorithms.
  • the separated text area when the server 2000 separates a text area corresponding to the first text, the separated text area includes the first text and all or part of the second text that overlaps the first text. .
  • step S230 the server 2000 extracts pixels related to one or more characters of the first text from the text area of the first text to obtain an image of the first text with a damaged portion. That is, the server 2000 extracts pixels corresponding to the first text from the text area of the first text in order to obtain the undamaged and damaged parts of the first text.
  • the software module that the server 2000 uses to extract pixels corresponding to characters of the first text is referred to as an extractor.
  • the server 2000 may label pixels corresponding to one or more characters of the first text in the text area separated in step S220. For example, the server 2000 labels pixels corresponding to one or more characters of the first text with a label value of 1, and does not label pixels corresponding to characters of the second text that overlap the first text. You can. Or, for example, the server 2000 labels pixels corresponding to one or more characters of the first text with a label value of 1, and pixels corresponding to characters of the second text that overlap the first text are labeled. It can be labeled with the value 2.
  • the server 2000 may obtain an image of the first text in which pixels corresponding to characters of the first text are extracted from the text area. In this case, since the server 2000 does not extract pixels corresponding to characters of the second text that overlap the first text, some pixels of the characters of the first text may be damaged.
  • step S240 the server 2000 restores the first text by inpainting the area where the first text overlapped with the second text within the image of the first text. That is, the server 2000 inpaints the damaged portion of the first text where the first text overlapped with the second text.
  • the software module that the server 2000 uses to restore damaged pixels for characters of the first text is referred to as an inpainter.
  • an inpainter that restores damaged pixels may be implemented as an artificial intelligence model.
  • the inpainter may be a deep neural network model that receives an image containing damaged pixels as input and outputs an image with the damaged pixels filled in.
  • Inpainters can be implemented using a variety of known deep neural network architectures and algorithms, or through variations of a variety of known deep neural network architectures and algorithms.
  • FIG. 3 is a diagram illustrating an image including overlapped text acquired by a server according to an embodiment of the present disclosure.
  • the image containing overlapped text acquired by the server 2000 may be a product label image.
  • a first image 310 including Korean text and a second image 320 including English text are shown as examples.
  • the first image 310 is an example of a product label image including Korean text.
  • the first image 310 shows texts representing detailed product information printed on a product label template.
  • the first image 310 may include a plurality of text overlap areas 300.
  • the actual price '9700' numeric text may be printed on top of the Korean text of 'Price (KRW)', which is one of the items in the product label template.
  • the text overlap area 300 occurs due to an error in the printing process, and the Korean text 'Price (won)' and the number '9700' overlapped within the product label template.
  • the numeric text of the actual weight '176' may be printed on top of the Korean text of 'weight (g)', and in this case, the text containing the overlapped text due to an error in the printing process.
  • An overlap area 300 may exist.
  • the second image 320 is an example of an image of a product label including English text.
  • the second image 320 may be an image in which text indicating detailed information about the product is printed on a template of a product label.
  • the product label template contains the following items: PACK DATE, SELL BY, NET WT., UNIT PRICE, and TOTAL PRICE. Text representing detailed information may be printed on the back, and information such as the name/address of the mart selling the product may be printed.
  • the server 2000 When the server 2000 according to one embodiment obtains an image including overlapped text, it can separate the overlapped text to recognize the text. For example, when the text 'ABC' and the text 'DEF' overlap, forming the text overlap area 300 described above and making text recognition impossible, the server 2000 separates the text 'ABC' and the text 'DEF'. can do.
  • FIG. 4 is a diagram illustrating an operation of a server preprocessing an image for text separation according to an embodiment of the present disclosure.
  • the server 2000 may preprocess images containing overlapped text. Referring to FIG. 4, a first image 410 including overlapped text and a second image 420 including overlapped text are shown as examples. The server 2000 may preprocess the image based on the color channel information of the image.
  • server 2000 may erase a specific color within an image. Taking the first image 410 as an example, the server 2000 may erase the logo 412 of a specific color within the first image 410. The server 2000 may identify the color of the logo 412 in order to remove the logo 412 of a specific color. The server 2000 sets a first threshold and a second threshold based on the color of the logo 412, and deletes pixels with colors between the first and second thresholds to preprocess the first image. You can obtain (414).
  • server 2000 may leave only certain colors within the image. Taking the second image 420 as an example, the server 2000 may erase the remaining colors in the second image 420, leaving only black or achromatic color.
  • the server 2000 preprocesses the second image 422 by erasing pixels whose saturation is smaller than the first threshold and whose brightness is smaller than the second threshold in the HSV color space. It can be obtained.
  • elements 424 having colors other than black may be deleted.
  • Elements with different colors may include, for example, text, logo 426, background color, etc., but are not limited thereto.
  • the server 2000 may leave only achromatic colors in the RGB color space.
  • the server 2000 may obtain the preprocessed second image 422 by leaving only pixels whose R, G, and B color ratios are within a predetermined range based on a preset threshold.
  • elements 424 having colors other than achromatic colors may be deleted.
  • Elements 424 having different colors may include, for example, text, logo 426, background color, etc., but are not limited thereto.
  • the server 2000 may selectively preprocess images containing overlapped text.
  • the server 2000 may preprocess an image including overlapped text according to the above-described example and separate the overlapped text within the preprocessed image.
  • the server 2000 may directly separate the overlapped text without preprocessing the image including the overlapped text.
  • preprocessing can be selectively applied when the server 2000 separates text.
  • FIG. 5 is a diagram illustrating a text separation network used by a server according to an embodiment of the present disclosure.
  • the server 2000 may separate text from the original image 500 using the text separation network 510.
  • the text separation network 510 may receive the original image 500 as input and separate overlapping text within the original image 500.
  • the text separation network 510 may include a separator 520, an extractor 530, and an inpainter 540, which are modules for processing the original image 500.
  • this is only an example of distinguishing a plurality of modules to explain detailed operations of the text separation network 510, and is not limited thereto.
  • two or more modules included in the text separation network 510 may be combined into one, or at least one module may be omitted.
  • the separator 520 processes the original image 500 to separate text areas corresponding to text within the original image. That is, the separator 520 can receive an image as input and determine a plurality of text areas. Each of the plurality of text areas may be an area containing characters classified into the same group within the image. For example, one text area may contain Hangul characters 'weight (g)' 522 classified into the same group. However, this displays only one text area among a plurality of text areas, and the separator 520 distinguishes all text existing in the image into text areas.
  • the separator 520 may be a module that clusters adjacent colors in an image using a color clustering algorithm and groups characters based on the clustering result.
  • the separator 520 may cluster the colors in the image into K colors using, for example, a K-means algorithm, but is not limited to this.
  • separator 520 may include one or more artificial intelligence models.
  • a text detection model may be an artificial intelligence model that receives an image as input and outputs a text area map showing the results of detecting text positions within the image.
  • the text area map may be 2D Gaussian score data indicating the presence of text, but is not limited thereto.
  • the text detection model may be trained based on training data including annotations of ground truths for text detection, such as characters of texts in images and relationships between characters. Text detection models can be implemented using various known deep neural network architectures and algorithms, or through variations of various known deep neural network architectures and algorithms.
  • the separator 520 may include a text separation model.
  • a text separation model may be an artificial intelligence model that receives an image as input and outputs the results of separating texts within the image (for example, a text area image, etc.).
  • the text separation model may be trained based on training data including annotations of correct answers that serve as a standard for text separation, including at least one of the language, font, corpus, and logo of the text.
  • Text separation models can be implemented using various known deep neural network architectures and algorithms, or through variations of various known deep neural network architectures and algorithms.
  • the original image 500 is an image including overlapping text
  • text may overlap in the text area separated by the separator 520.
  • a character group included in a text area is referred to as a first text
  • a part of the second text which is text classified into another character group, may be included in a separate text area.
  • the separator 520 may label pixels corresponding to characters of the first text. For example, the separator 520 may label pixels corresponding to characters of the first text with a predetermined value. The separator 520 may not label characters of the second text that overlap the first text, or may label them with a value different from that of the first text.
  • the extractor 530 may obtain an image in which a portion of the first text is damaged by extracting pixels corresponding to the first text in the text area.
  • the fact that a partial area of the first text is damaged means that pixels corresponding only to the first text are extracted, excluding pixels corresponding to the second text that overlaps the first text.
  • the extractor 530 extracts only pixels corresponding to the first text based on the labels of the pixels corresponding to the first text in the text area, thereby extracting the first text in which a partial area of the first text is damaged.
  • An image 532 of the text can be obtained.
  • the inpainter 540 may restore damaged pixels within the image 532 of the first text.
  • the inpainter 540 may be implemented as a deep neural network model that receives an image containing damaged pixels and outputs an image filled with damaged pixels.
  • the inpainter 540 may receive an image 532 of the damaged first text and output an image 542 of the restored first text.
  • the inpainter 540 may be trained based on training data obtained by overlapping noise text with the correct text.
  • the inpainter 540 may be implemented using various known deep neural network architectures and algorithms, or through variations of various known deep neural network architectures and algorithms.
  • the server 2000 separates the overlapped texts using the text separation network 510 and the modules of the text separation network 510 (separator 520, extractor 530, and inpainter 540). The separation operation will be further described with reference to FIGS. 6 to 11B.
  • Figure 6 is a diagram for explaining an operation in which a server recognizes text in an image according to an embodiment of the present disclosure.
  • text separation network 600 may include a first separator 610 and a second separator 620.
  • the first separator 610 may be a module that clusters adjacent colors in an image using a color clustering algorithm and groups characters based on the clustering result.
  • Color clustering algorithms can be used to detect text in images by grouping together pixels with similar colors (i.e. colors that are adjacent in color space). In a method of quantifying color similarity, the Euclidean distance between different colors in the color space is calculated, and colors with a distance less than a predetermined distance are considered similar colors and may be assigned to the same color group. Alternatively, similar colors may be determined using a color histogram representing the color distribution of the image in combination with a Euclidean distance-based method.
  • the first separator 610 may cluster the colors in the image into K colors using, for example, a K-means algorithm, but is not limited to this.
  • the first separator 610 can transmit a text area containing grouped characters to the extractor 630.
  • the second separator 620 may include a text separation model.
  • a text separation model may be an artificial intelligence model that receives an image as input and outputs the result of separating texts within the image (for example, a text area containing grouped characters).
  • the second separator 620 can transmit a text area containing grouped characters to the extractor 630.
  • the first separator 610 performs a relatively light text separation operation compared to the second separator 620
  • the second separator 620 performs a relatively large number of operations compared to the first separator 610. Accordingly, the text separation accuracy of the second separator 620 may be higher than that of the first separator 610.
  • the server 2000 may decide to use the first separator 610 or the second separator 620 of the text separation network 600 based on preset conditions. Below, preset conditions under which the first separator 610 and the second separator 620 are used will be described.
  • the server 2000 may obtain an input image. Input images may contain overlapping text.
  • the server 2000 may receive a user input specifying a specific area of the image (S610).
  • the server 2000 may receive a user input designating a specific area of the image from the user's electronic device (eg, smartphone, PC).
  • the user input may be input that specifies text areas containing overlapping text within the image.
  • the server 2000 may perform a text separation task based on a user input designating text areas containing overlapped text.
  • the server 2000 may first perform text recognition (eg, OCR, etc.) on the input image.
  • the server 2000 may determine to use the first separator 610 to obtain a text recognition result.
  • the priority of the first separator 610 may be set higher than that of the second separator 620.
  • the server 2000 may perform a text separation task using the first separator 610.
  • the server 2000 may perform color clustering using the first separator 610 and separate text of different colors based on the color cluster.
  • server 2000 may separate black text and red text.
  • the server 2000 extracts a text area map for the input image (S620).
  • the server 2000 may obtain a text area map using a text detection model.
  • a text detection model may be an artificial intelligence model that receives an input image and outputs a text area map representing the results of detecting text positions within the image.
  • the server 2000 may apply a color clustering algorithm to text areas in the image based on the text area map (S630).
  • the server 2000 obtains color clusters for text areas existing in the image based on the text area map, and determines whether the number of classified color clusters is greater than or equal to a preset number N (e.g., 3). It may be decided to use either the first separator 610 or the second separator 620.
  • the server 2000 may use the first separator 610 if the number of color clusters is more than a preset number N.
  • the fact that the number N of color clusters is more than a preset number means that there are three or more texts with different colors in the text area.
  • the server 2000 can separate text based on color using the first separator 610. For example, if the second text overlaps the first text and the colors of the first text and the second text are different, the server 2000 may separate the first text and the second text.
  • the server 2000 may use the extractor 630 to extract pixels corresponding to characters of the first text.
  • the server 2000 does not extract pixels corresponding to characters of the second text that overlapped the first text, and as a result, some areas of the first text are damaged or an incomplete image is created due to the overlap of the second text. can be obtained.
  • the server 2000 may use the inpainter 640 to restore a damaged portion of the first text.
  • the inpainter 640 can restore the first text by filling in the damaged portion of the first text and output an image including the restored first text.
  • the server 2000 can separate the first text from the image while ignoring the overlapped second text using the extractor 630, and the server 2000 can use the inpainter 640 Using , the damaged portion of the first text due to overlap can be recovered and reconstructed to generate an image representing the restored first text.
  • the server 2000 may perform text recognition based on the restored image obtained from the inpainter 640 (S640). For example, the server 2000 uses an optical character recognition (OCR) model to identify text included in an image (e.g., regular characters, special characters, symbols, etc.). can be recognized.
  • OCR optical character recognition
  • the text obtained by the server 2000 through text recognition may include information related to the product. For example, if the input image is an image of a product label, the server 2000 may obtain text related to the product included in the product label as product information.
  • text recognition may be performed on an external device connected to the server 2000.
  • the server 2000 may transmit an image containing text, obtained through the text separation network 600, to the user's electronic device (eg, a smartphone, etc.). In this case, OCR may be performed on the user's electronic device.
  • the server 2000 may verify the validity of the text recognition result (S650). For example, the server 2000 may determine the validity of the OCR recognition result based on whether the recognition reliability included in the OCR recognition result is greater than or equal to a preset value. For example, the server 2000 may determine whether the text recognition result is valid based on a preset standard. Specifically, the server 2000 may determine whether the recognized text satisfies a predefined form of a 20-digit number representing an identification number for identifying a product. For example, the server 2000 may verify whether recognized text numbers, corpora, words, etc. have been accurately recognized. If the server 2000 determines that the text recognition result is invalid, the server 2000 may use the second separator 620 to re-perform a more precise text separation and recognition task.
  • the server 2000 may use the second separator 620 if the number of color clusters is less than a preset number. Additionally, the server 2000 may use the second separator 620 based on the validity of the text recognition result, as described above.
  • the server 2000 may use the second separator 620 to separate text by determining text areas based on at least one of the language, font, corpus, and logo of the text.
  • the second separator 620 may be an artificial intelligence model that receives an original image including text and outputs an image including a unit of text (for example, a character group). The output of the second separator 620 is sequentially transmitted to the extractor 630 and the inpainter 640, so that an operation similar to separating and recognizing text using the first separator 610 is performed again. You can.
  • FIG. 7A is a diagram illustrating an operation of a server using color information to separate text according to an embodiment of the present disclosure.
  • the separator described in FIGS. 7A and 7B may correspond to the first separator 610 in FIG. 6 .
  • the server 2000 may filter the colors of objects other than text (eg, backgrounds, logos, etc.) within an image using a color clustering algorithm.
  • the server 2000 can perform color clustering by emphasizing black in the original image 710 including overlapping text using a separator.
  • the server 2000 may convert the original image 710 into the CYMK color space.
  • the server 2000 may obtain the first filtered image 720 by filtering colors based on the threshold of the K channel representing black in the CYMK color space of the original image 710 (step 1).
  • bright chromatic colors eg, yellow, etc.
  • the server 2000 may convert the first filtered image 720 into Lab color space.
  • the server 2000 can obtain a secondary filtered image 730 by performing color clustering in the Lab color space and extracting information about clusters adjacent to black among color clusters (step 2).
  • the server 2000 may extract pixels corresponding to text and/or characters of the text from the secondary filtered image 730 and restore damaged pixels.
  • FIG. 7B is a diagram illustrating an operation of a server using color information to separate text according to an embodiment of the present disclosure.
  • the server 2000 may filter the colors of objects other than text (eg, backgrounds, logos, etc.) within an image using a color clustering algorithm. For example, the server 2000 may obtain an original image 712 including overlapping text and obtain a color distribution 714 of the original image 712. The server 2000 may obtain, for example, a color distribution graph, an RGB histogram, etc., but is not limited thereto. The server 2000 may determine the target number N based on the color distribution 700 in order to cluster the colors in the image into N. For example, the server 2000 may determine N predominant colors in an image based on color distribution and perform color clustering, but is not limited to this. For example, the server 2000 may receive input of the target number N from the user.
  • a color clustering algorithm e.g., the server 2000 may obtain an original image 712 including overlapping text and obtain a color distribution 714 of the original image 712. The server 2000 may obtain, for example, a color distribution graph, an RGB histogram, etc., but is not limited thereto. The server 2000 may determine the
  • the server 2000 may repeatedly perform color clustering. For example, the server 2000 may perform first color clustering on the original image 712 to obtain a first filtered image 722 in which the number of colors in the original image 710 is reduced. Specifically, the server 2000 can cluster the colors in the original image 712 into three and filter out colors that are not included in the cluster. Thereafter, the server 2000 can perform a second color clustering on the first filtered image 722 to precisely filter the colors in the first filtered image 722. Specifically, the server 2000 may cluster the colors in the first filtered image 722 into three and filter out colors not included in the cluster to obtain the second filtered image 732.
  • the server 2000 may extract pixels corresponding to text and/or characters of the text from the secondary filtered image 732 and restore damaged pixels.
  • FIG. 8 is a diagram illustrating an operation of a server detecting text areas in an image according to an embodiment of the present disclosure.
  • the server 2000 may detect areas corresponding to text within the image.
  • the server 2000 can detect text using a separator.
  • the text detection model may be an artificial intelligence model that receives an input image 800 and outputs a text area map 810 indicating the results of detecting text positions within the image.
  • the server 2000 may train a text detection model based on a training dataset including training images.
  • training images characters of text in the image may be labeled with text boxes. Additionally, training images may be labeled with affinity boxes to link related characters of text within the image.
  • Related characters may be characters that make up one word or one sentence, but are not limited to this.
  • the text detection model may calculate a 2D Gaussian score indicating the presence of text in the input image 800.
  • the server 2000 may output a text area map 810 indicating text presence areas within the input image 800 based on the Gaussian score.
  • the server 2000 may obtain a text area map 810 for an input image and perform a text separation operation using a separator based on the text area map 810.
  • the separator used by the server 2000 can receive an additional text area map 810 in addition to the input image.
  • the text detection model may be included in the separator.
  • the first separator and/or the second separator may include a text detection model, so that text detection may be performed first, and then the operation of the first separator and/or the second separator may be performed.
  • FIG. 9 is a diagram illustrating an operation of a server separating text areas from an image according to an embodiment of the present disclosure.
  • the separator 900 described in FIG. 9 may correspond to the second separator 620 in FIG. 6 .
  • the server 2000 may separate a plurality of text areas within the input image 902 using the separator 900.
  • the server 2000 may obtain the first text area 910 from the input image 902.
  • the first text area 910 may include first text and second text.
  • the first text refers to a text corresponding to one character group (e.g., word, sentence, corpus, etc.), and the second text is separated together by separating the first text area from the input image 902. Speak text.
  • the second text may overlap with the first text. Therefore, the second text is considered noise with respect to the first text while reconstructing the first text. For example, at least part of the second text may overlap with the first text.
  • the server 2000 extracts only pixels corresponding to the first text and restores pixels lost as the first text overlaps the second text. You can.
  • the server 2000 separates text areas for all text included in the input image 902. For example, the server 2000 may acquire the second text area 912.
  • the second text area 912 may include a first text corresponding to one intact character group, and may include a second text that is considered noise with respect to the first text in the second text area 912.
  • the server 2000 may acquire the third text area 914.
  • the third text area 914 may include first text and second text.
  • the server 2000 may distinguish the first text and the second text included in the text area.
  • the separator 900 may be an artificial intelligence model trained to assign different labels to the first text and the second text.
  • the separator 900 may be trained to distinguish languages in text. For example, the separator 900 can distinguish the language of the text (eg, English, Korean, etc.) and separate text areas based on the different languages.
  • server 2000 may obtain user input specifying a language type. In this case, the separator 900 may utilize user input as additional input data.
  • the separator 900 may be trained to distinguish fonts of text.
  • the separator 900 can distinguish text fonts and separate text areas based on different fonts.
  • the separator 900 may be trained to distinguish corpora of text.
  • the separator 900 may distinguish a text corpus (eg, weight (g)) and separate text areas based on the corpus.
  • a text corpus eg, weight (g)
  • the separator 900 may distinguish a text corpus (eg, weight (g)) and separate text areas based on the corpus.
  • the characters included in the corpus are from different languages (for example, Korean and the alphabet) or have different fonts, they can be distinguished as one corpus.
  • the server 2000 provides training data in which labels are annotated on pixels corresponding to characters within one character group in order to distinguish the language, font, corpus, and logo of the text through the separator 900.
  • the separator 900 can be trained using this method.
  • the server 2000 may obtain a plurality of text areas in an image, and extract and/or restore the first text included in each text area for each text area.
  • FIG. 10 is a diagram illustrating an operation of a server extracting first text from a text area according to an embodiment of the present disclosure.
  • a text area is obtained.
  • the server 2000 determines a text area by determining a character group containing characters based on a word, sentence, corpus, etc.
  • the server 2000 may extract pixels corresponding to text within the text area using the extractor 1000. In FIG. 10 , for convenience of explanation, only one character is shown instead of all characters in the character group of the text area.
  • the first text area 1010 containing English text may include the first text 1002 and the second text 1004.
  • the first text 1002 may be the alphabet letter 'A'
  • the second text 1004 overlapping the first text 1002 may be the alphabet letter 'L'.
  • the first text area 1010 may include information 1020 of the first text 1002 and the second text 1004.
  • the characters of the first text 1002 and the characters of the second text 1004 may be given different labels.
  • the server 2000 creates a first text area ( 1010), an image 1030 in which a portion of the first text 1002 is damaged may be obtained.
  • the server 2000 can obtain the second text area 1012 containing Korean text.
  • the second text area 1012 may include a first text 1002 and a second text 1004. Additionally, the server 2000 may obtain information 1022 about the first text 1002 and the second text 1004 included in the second text area 1012. The server 2000 generates the second text based on the second text area 1012 and/or the information 1022 of the first text 1002 and the second text 1004 included in the second text area 1012. An image 1032 may be obtained in which a portion of the first text 1002 in the area 1012 is damaged.
  • the server 2000 may inpaint an image in which a portion of the first text 1002 in the text area is damaged. This will be further explained with reference to FIGS. 11A and 11B.
  • FIG. 11A is a diagram illustrating an operation of a server inpainting an image containing damaged text according to an embodiment of the present disclosure.
  • the server 2000 may restore damaged pixels in an image using the inpainter 1100.
  • the inpainter 1100 can restore the first text by inpainting the area where the first text overlapped with the second text.
  • the first text may be the alphabet letter 'A'
  • the second text overlapping the first text may be the alphabet letter 'L'.
  • the inpainter 1100 may receive an image 1110 in which a partial area of the first text is damaged and output an inpainted image 1120 in which the damaged area is restored.
  • the server 2000 can restore Korean text.
  • the server 2000 may input an image 1112 in which some areas of the Hangul characters of the first text are damaged into the inpainter 1100, and obtain an inpainted image 1122 in which the damaged areas are restored.
  • the server 2000 may perform preprocessing before restoring an image including a damaged area using the inpainter 1100.
  • the server 2000 may convert an image including a damaged area into grayscale to reduce the number of color channels to one. Accordingly, the complexity of calculation can be reduced by reducing the number of color channels.
  • the inpainter 1100 may be implemented using various known deep neural network architectures and algorithms, or through variations of various known deep neural network architectures and algorithms.
  • the server 2000 may generate training data for training the inpainter 1100 and train the inpainter 1100 using the training dataset. This is further explained with reference to FIG. 11B.
  • FIG. 11B is a diagram for explaining an operation in which a server generates training data for an inpainter according to an embodiment of the present disclosure.
  • the server 2000 may generate training data 1150 to train the inpainter 1100.
  • the server 2000 may generate training data 1150 based on the correct answer data 1130 and noise data 1140.
  • the server 2000 may generate training data 1150 by overlapping noise data 1140 with correct answer data 1130.
  • the server 2000 may generate training data 1150 in which the correct answer data 1130 is damaged by removing pixels of the noise data 1140 that overlap the correct answer data 1130 from the correct answer data 1130. You can.
  • the correct answer data 1130 corresponds to the first text in the above-described embodiment
  • the noise data 1140 corresponds to the second text.
  • the server 2000 may generate the training data 1150 based on at least one of the language, font, and corpus of the text.
  • the server 2000 may generate training data 1150 by using text with a high possibility of overlap as correct answer data 1130 and noise data 1140.
  • Texts with a high possibility of overlap may be determined based on the degree of relevance of the texts. For example, text with a high possibility of overlap may be preset based on at least one of the language, font, and corpus of the text. For example, text with a high probability of overlap may be set as text with a high probability of overlap by user input.
  • FIG. 11b an example of generating training data 1150 is shown using 'SIRLOIN' as the correct answer data 1130 and 'A-MART' as the noise data 1140.
  • 'SIRLOIN' is used as the noise data 1140
  • ' Training data 1150 may be generated by setting 'A-MART' as the correct answer data 1130.
  • the server 2000 may generate training data 1150 using the correct answer data 1130 and noise data 1140 of the Korean text, which are set based on the relevance of the text.
  • Figure 12 is a diagram for explaining a text separation network according to an embodiment of the present disclosure.
  • the text separation network may be divided into a first text separation network 1200 and a second text separation network 1202.
  • the first text separation network 1200 may include a separator 1210, an extractor 1220, and an inpainter 1230.
  • the separator 1210, extractor 1220, and inpainter 1230 included in the first text separation network 1200 have been described in the description of the previous drawings, so repeated descriptions will be omitted.
  • the second text separation network 1202 may include only the separator 1210 and the extractor 1220.
  • the separator 1210 and extractor 1220 included in the second text separation network 1200 perform the same functions as the separator 1210 and extractor 1220 of the first text separation network 1200. Since the second text separation network 1202 does not include the inpainter 1230, the amount of text separation calculation is relatively small compared to the first text separation network 1200. That is, the second text separation network 1202 may be a lite version of the first text separation network.
  • the server 2000 may selectively use the first text separation network 1200 or the second text separation network 1202.
  • the server 2000 may preferentially use the second text separation network 1202 and use the first text separation network 1200 as a secondary priority.
  • the server 2000 may obtain an image including separated text using the second text separation network 1202.
  • the server 2000 can recognize text (e.g., regular characters, special characters, symbols, etc.) included in the image using an optical character recognition (OCR) model. there is.
  • OCR optical character recognition
  • the server 2000 may determine the validity of the recognition result based on whether the recognition reliability of the OCR recognition result is greater than or equal to a preset value. If the server 2000 determines that the text recognition result is invalid, the server 2000 may use the first text separation network 1200, which further includes an inpainter 1230, to re-perform more precise text separation work and text recognition. .
  • the server 2000 may perform text separation using the second text separation network 1202 instead of the first text network 1200 to output calculation results more quickly.
  • the server 2000 may provide the user with an image of the non-inpainted text, or may provide the user with a text recognition result based on the image of the non-inpainted text.
  • the server 2000 may determine whether to use the first text separation network 1200 or the second text separation network 1202 based on user input. For example, a user may choose to use a second text separation network 1202 to use less data.
  • the server 2000 may determine whether to use the first text separation network 1200 or the second text separation network 1202 based on user information. For example, the server 2000 may provide the second text separation network 1202 as a trial version to free users.
  • text separation and recognition tasks may be performed by the user's electronic device (eg, smartphone). Since the user's electronic device has relatively low computing performance compared to the server 2000, the user's electronic device can perform text separation and recognition tasks using the second text separation network 1202. For example, when a user photographs a label containing text using a smartphone, the smartphone can separate the overlapped text using the second text separation network 1202. When text is separated, the smartphone can recognize the separated text using OCR.
  • the smartphone can perform text separation and recognition tasks using the second text separation network 1202. For example, when a user photographs a label containing text using a smartphone, the smartphone can separate the overlapped text using the second text separation network 1202. When text is separated, the smartphone can recognize the separated text using OCR.
  • FIG. 13A is a diagram for explaining how a server according to an embodiment of the present disclosure operates in conjunction with a refrigerator, which is a home appliance.
  • the server 2000 may perform data communication with the user's electronic device 3000 and the refrigerator 4000.
  • a user can photograph a product label using the electronic device 3000.
  • the product label photographed by the user is the label of a meat product, but the product type is not limited to this.
  • the product may be food.
  • the server 2000 may receive an image of a product label from the user's electronic device 3000. In this case, the image of the product label may have overlapping text.
  • the server 2000 can separate overlapping texts in an image and recognize the separated texts to generate product-related information.
  • the server 2000 may generate information related to meat products, such as product name, weight, price, barcode, product identification number, manufacturing date, manufacturer, seller, and expiration date.
  • the server 2000 may transmit product-related information to the user's electronic device 3000 and/or refrigerator 4000.
  • the server 2000 can control the refrigerator 4000 based on product-related information. For example, the server 2000 may input a location where meat will be stored in the refrigerator 4000 or determine a location where the meat will be stored (for example, determine an empty space within the refrigerator 4000). The server 2000 may enable the refrigerator 4000 to run a meat storage mode that allows the optimal temperature, etc. to be set at the determined storage location.
  • Figure 13b is a diagram to further explain how the server operates in conjunction with a refrigerator, which is a home appliance.
  • a user may photograph the meat product 1301 and obtain a label image of the meat product 1301 using the electronic device 3000.
  • the server 2000 may obtain the label image of the meat product 1301 from the electronic device 3000.
  • the server 2000 may perform text separation and text recognition on the label image of the meat product 1301 and provide information related to the meat product 1301 to the electronic device 3000.
  • the user's electronic device 3000 may provide an application that can remotely manage various home appliances in the home.
  • the application may be an application that manages/controls the refrigerator 4000, but is not limited thereto.
  • the application may include an interface for product label recognition.
  • the first screen 1310 may include a meat label scan button 1312, but is not limited thereto.
  • the electronic device 3000 may display a second screen 1320 that allows product label recognition.
  • the electronic device 3000 includes a square box 1322 that guides the product label to be included in the second screen 1320 (however, it is not limited to a square and includes other shapes that can perform similar functions, such as a circle). ), and guides such as ‘Take a photo of the meat label’ can be displayed.
  • the electronic device 3000 may display a guide such as 'Please point the product through the camera'.
  • the electronic device 3000 may display a preview image obtained from a camera on the screen. While viewing the second screen 1320, the user can adjust the camera's field of view so that the product label is completely included in the image of the square box 1322.
  • the electronic device 3000 may transmit a product label image to the server 2000.
  • a user of the electronic device 3000 may transmit a meat label image to the server 2000 through an application.
  • the electronic device 3000 may receive information related to a product (eg, meat product 1301) generated by the server 2000 based on the product label image.
  • the electronic device 3000 may display information related to the product received from the server 2000 on the third screen 1330.
  • the electronic device 3000 may display information 1332 representing the meat product 1301, such as meat type, country of origin, part, weight, and individual history number.
  • the electronic device 3000 may display action information 1334 related to controlling home appliances, such as storing meat.
  • the home appliance device may be, for example, a refrigerator 4000, but is not limited thereto.
  • the electronic device 3000 may display a fourth screen 1340 showing action information 1334 of a home appliance device related to a product. For example, when the user selects the action of ‘Storing Meat’ on the third screen 1330 to store meat in the refrigerator 4000, the electronic device 3000 displays a product containing items related to meat storage. 4 screens 1340 can be displayed.
  • the fourth screen 1340 may display a photo of meat, product name, stocking date, storage location, etc., but is not limited thereto.
  • the fourth screen 1340 may include an interface for the electronic device 3000 or the server 2000 to control the refrigerator 4000.
  • the electronic device 3000 may display a button 1342 for controlling the refrigerator 4000 (e.g., 'Start storage in refrigerator') on the fourth screen 1340, but is not limited to this. .
  • the electronic device 3000 may provide the user with a guide 1352 related to operating the refrigerator 4000.
  • the electronic device 3000 may display, on the fifth screen 1350, a guide 1352 that allows the user to store meat in the refrigerator 4000 (e.g., 'You have started the meat storage mode in the refrigerator multi-pantry 'Please add meat') can be displayed.
  • the electronic device 3000 may transmit a control command to the refrigerator 4000 in order for the refrigerator 4000 to operate the multi-pantry compartment in the meat storage mode.
  • the electronic device 3000 may transmit a control command for the refrigerator 4000 to the refrigerator 4000 through the server 2000 or directly to the refrigerator 4000.
  • Figure 13c is a diagram for explaining the operation of a home appliance device operating in conjunction with a server.
  • the server 2000 may operate in conjunction with the refrigerator 4000 as described above in FIGS. 13A and 13B. Specifically, the server 2000 may transmit product-related information to the refrigerator 4000. In this case, information related to the product may be displayed on the display 4910 of the refrigerator 4000.
  • the display 4910 of the refrigerator 4000 may display information representing the meat product, such as meat type, country of origin, part, weight, and individual history number. there is.
  • the display 4910 of the refrigerator 4000 displays the meat product, storage location, storage period, storage temperature, operation mode, etc. Related information may be displayed.
  • the display 4910 of the refrigerator 4000 may display various information related to products, such as text, images, and videos representing recipes for meat products, recommendations for ingredients related to meat dishes, and providing links to purchase ingredients.
  • Figure 14a is a diagram for explaining that a server according to an embodiment of the present disclosure operates in conjunction with an oven, which is a home appliance device.
  • the server 2000 may perform data communication with the user's electronic device 3000 and the oven 5000.
  • a user can photograph a product label using the electronic device 3000.
  • the product label photographed by the user is the label of a meat product, but the product type is not limited to this.
  • the product may be food.
  • the server 2000 may receive an image of a product label from the user's electronic device 3000. In this case, the image of the product label may have overlapping text.
  • the server 2000 can separate overlapping texts in an image and recognize the separated texts to generate product-related information. For example, the server 2000 may generate information related to meat products, such as product name, weight, price, barcode, product identification number, manufacturing date, manufacturer, seller, and expiration date. The server 2000 may transmit product-related information to the user's electronic device 3000 and/or oven 5000.
  • the server 2000 can control the oven 5000 based on product-related information. For example, the server 2000 may determine temperature, time, and operation mode (eg, preheat mode, convection mode, etc.) for cooking a steak. The server 2000 may transmit the determined settings related to the control operation of the oven to the oven 5000 so that the settings for cooking a steak are automatically applied in the oven 5000.
  • operation mode eg, preheat mode, convection mode, etc.
  • Figure 14b is a diagram to further explain how the server operates in conjunction with an oven, which is a home appliance.
  • a user may photograph a meat product 1401 using the electronic device 3000 and obtain an image of the product label of the meat.
  • the server 2000 may obtain an image of a product label from the electronic device 3000, perform text separation and recognition, and provide information related to the product to the electronic device 3000.
  • the user's electronic device 3000 may provide an application that can remotely manage various home appliances in the home.
  • the application may be, for example, an application capable of managing/controlling the oven 5000, but is not limited thereto.
  • the application may include an interface for product label recognition.
  • the first screen 1410 may include a meat label scan button 1412, but is not limited thereto.
  • the electronic device 3000 may display a second screen 1420 that allows product label recognition.
  • the electronic device 3000 includes a square box 1422 that guides the product label to be included in the second screen 1420 (however, it is not limited to a square, and may be of other shapes that can perform a similar function, such as a circle). (included) and guides such as ‘Take a photo of the meat label’ can be displayed.
  • the electronic device 3000 may display a guide such as 'Please point the product through the camera'.
  • the electronic device 3000 may display a preview image obtained from a camera on the second screen 1420. While viewing the second screen 1420, the user can adjust the camera's field of view so that the product label is completely included in the image of the square box 1422.
  • the electronic device 3000 may transmit a product label image to the server 2000 and display information related to the product from the server 2000 on the third screen 1430.
  • the electronic device 3000 may display information 1432 representing the meat product 1401, such as meat type, country of origin, part, weight, and individual history number.
  • the electronic device 3000 may display action information 1434 related to controlling home appliances, such as thawing meat, cooking, and recipes.
  • the home appliance device may be, for example, an oven 5000, but is not limited thereto.
  • the electronic device 3000 may display a fourth screen 1440 showing action information 1434 of a home appliance device related to a product. For example, when the user selects the action of 'cooking' on the third screen 1430 to cook a steak with meat, the electronic device 3000 displays the fourth screen 1440 containing information related to cooking the steak. ) can be displayed.
  • the fourth screen 1440 may display recipes, settings and preparations for cooking, but is not limited thereto.
  • the fourth screen 1440 may include an interface for the electronic device 3000 or the server 2000 to control the oven 5000.
  • the electronic device 3000 may display the button 1442 'Start cooking in oven' for controlling the oven 5000 on the fourth screen 1440, but is not limited to this.
  • the electronic device 3000 may provide the user with a guide 1452 related to operating the oven 5000. For example, on the fifth screen 1450, the electronic device 3000 displays a guide 1452 that allows the user to cook a steak, ‘Oven settings for steak cooking have been completed. You can display ‘Please put meat in the oven’.
  • the electronic device 3000 may transmit a control command for the oven 5000 to the server 2000 or the oven 5000 to set the cooking operation mode of the oven 5000.
  • Figure 15 is a flowchart for explaining how a server operates in conjunction with a home appliance device according to an embodiment.
  • the server 2000 may perform data communication with the electronic device 3000 and the home appliance device 1500.
  • the electronic device 3000 may include the above-described example of a smart phone, but is not limited thereto.
  • the home appliance device 1500 may include, but is not limited to, the refrigerator 4000 and oven 5000 as examples described above.
  • the electronic device 3000 may capture a product label image.
  • the electronic device 3000 can capture a product label image through the user's camera operation.
  • the product label image may include overlapping text.
  • step S1515 the electronic device 3000 may transmit a product label image to the server 2000.
  • the server 2000 may separate text from the product label image.
  • the server 2000 can separate and extract text overlapped within a product label image using a text separation network.
  • the server 2000 may separate text using a first text separation network including a separator, extractor, and inpainter.
  • the server 2000 may separate text using a second text separation network including a separator and extractor.
  • the separator may include a first separator using a color clustering algorithm and a second separator including a text separation model that is an artificial intelligence model.
  • the server 2000 can recognize separated text.
  • the server 2000 may generate product-related information based on the recognized text.
  • Information related to a product may include, for example, product name, weight, price, barcode, product identification number, manufacturing date, manufacturer, seller, expiration date, etc., but is not limited thereto.
  • the server 2000 may transmit information related to the product to the electronic device 3000.
  • step S1530 the electronic device 3000 may display information related to the product. Since the display of product-related information by the electronic device 3000 has been described in FIGS. 13B and 14B, repeated descriptions will be omitted.
  • the electronic device 3000 and/or the server 2000 may control the home appliance 1500.
  • the electronic device 3000 may transmit a home appliance control request to the server 2000 (S1532), and the server 2000 may transmit a home appliance control command to the home appliance device 1500 (S1534).
  • the electronic device 2000 may transmit a home appliance control command to the home appliance device 1500 (S1536).
  • the home appliance device 1500 may perform an operation corresponding to the control command.
  • the temperature can be set according to the operation mode of the refrigerator 4000, and information related to the stored product can be stored in the storage location.
  • the home appliance 1500 is an oven 5000, settings related to cooking, such as temperature, can be set according to the operation mode of the oven 5000.
  • Figure 16 is a block diagram of a server according to an embodiment of the present disclosure.
  • the server 2000 may include a communication interface 2100, a memory 2200, and a processor 2300.
  • the communication interface 2100 may include a communication circuit.
  • the communication interface 2100 may include, for example, wired LAN, wireless LAN, Wi-Fi, Bluetooth, ZigBee, Wi-Fi Direct (WFD), and infrared communication (IrDA). infrared Data Association), BLE (Bluetooth Low Energy), NFC (Near Field Communication), Wibro (Wireless Broadband Internet, Wibro), WiMAX (World Interoperability for Microwave Access, WiMAX), SWAP (Shared Wireless Access Protocol), WiGig It may include a communication circuit capable of performing data communication between the server 2000 and other devices using at least one of data communication methods including (Wireless Gigabit Alliances, WiGig) and RF communication.
  • the communication interface 2100 can transmit and receive data for performing the operation of the server 2000 with an external electronic device.
  • the server 2000 receives an image containing overlapped text from an external electronic device (e.g., a user's smartphone, etc.) through the communication interface 2100, and generates the image through text separation and recognition. Information related to the product can be transmitted to an external electronic device. Additionally, the server 2000 may transmit and receive data for controlling the home appliance device to and from the home appliance device through the communication interface 2100.
  • an external electronic device e.g., a user's smartphone, etc.
  • Information related to the product can be transmitted to an external electronic device.
  • the server 2000 may transmit and receive data for controlling the home appliance device to and from the home appliance device through the communication interface 2100.
  • the memory 2200 may store instructions, data structures, and program codes that the processor 2300 can read. There may be more than one memory 2200. In the disclosed embodiments, operations performed by the processor 2300 may be implemented by executing instructions or codes of a program stored in the memory 2200.
  • the memory 2200 includes read-only memory (ROM) (e.g., programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)), and flash memory.
  • ROM read-only memory
  • PROM programmable read-only memory
  • EPROM erasable programmable read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory e.g., memory card, solid-state drive (SSD)
  • analog recording types e.g., Hard disk drive (HDD), magnetic tape, optical disk
  • RAM random-access memory
  • DRAM dynamic random-access memory
  • SRAM static random-access memory
  • the memory 2200 may store one or more instructions and programs that allow the server 2000 to operate to separate and extract overlapped text.
  • a separator 2100, an extractor 2220, and an inpainter 2230 may be stored in the memory 2200.
  • the first text separation network may include a separator 2100, an extractor 2200, and an inpainter 2230
  • the second text separation network may include a separator 2100 and an extractor 2230. May include a tractor 2200.
  • the separator 2100 may include a first separator using a color clustering algorithm and a second separator including a text separation model that is an artificial intelligence model.
  • the processor 2300 can control the overall operations of the server 2000.
  • the processor 2300 may control overall operations that enable the server 2000 to separate and recognize overlapped text by executing one or more instructions of a program stored in the memory 2200.
  • One or more processors 2300 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), an Accelerated Processing Unit (APU), a Many Integrated Core (MIC), a Digital Signal Processor (DSP), and a Neural Processing Unit (NPU). It can contain at least one.
  • One or more processors 2300 may be implemented in the form of an integrated system on chip (SoC) including one or more electronic components. Each of the one or more processors 2300 may be implemented as separate hardware (H/W).
  • SoC system on chip
  • the processor 2300 may use the separator 2210 to separate a plurality of text areas within the input image.
  • the processor 2300 may determine a text area by determining a character group containing characters based on a word, sentence, corpus, etc. In this case, there may be overlapping text within the input image. For example, the second text may overlap on the first text.
  • the processor 2300 can obtain text areas corresponding to each overlapped text by separating text areas for all texts included in the input image. Since descriptions related to the operations of the separator 2210 have already been described in the above drawings, repeated descriptions are omitted for brevity.
  • the processor 2300 may use the extractor 2220 to extract pixels corresponding to text within the text area. For example, the processor 2300 may extract only pixels corresponding to the first text from the first text area including the first text, excluding the second text that overlaps the first text. In this case, as the second text that overlapped the first text is removed from the first text area, an image in which a portion of the first text is damaged may be obtained. Since descriptions related to the operations of the extractor 2220 have already been described in the above drawings, repeated descriptions will be omitted for brevity.
  • the processor 2300 can restore damaged pixels in the image using the inpainter 2230.
  • the processor 2300 may restore the first text by inpainting an area where the first text overlapped with the second text in the first text area using the inpainter 2230. Since descriptions related to the operations of the inpainter 2230 have already been described in the above-mentioned drawings, repeated descriptions are omitted for brevity.
  • modules stored in the above-described memory 2200 and executed by the processor 2300 are for convenience of explanation and are not necessarily limited thereto.
  • Other modules may be added to implement the above-described embodiments, and one module may be divided into a plurality of modules distinguished according to detailed functions, and some of the modules among the above-described modules may be combined to form one module. It can also be implemented as a module.
  • the separator 2210, extractor 2220, and inpainter 2230 may be combined into one to be referred to as a first text separation network, and the separator 2210 and extractor 2220 may be combined into one to form a second text separation network. It may be referred to as a separate network, but is not limited thereto.
  • the plurality of operations may be performed by one processor or by a plurality of processors.
  • the first operation, the second operation, and the third operation may all be performed by the first processor.
  • the first operation and the second operation may be performed by a first processor (e.g., a general-purpose processor) and the third operation may be performed by a second processor (e.g., an artificial intelligence-specific processor).
  • the artificial intelligence dedicated processor which is an example of the second processor, may perform operations for training/inference of the artificial intelligence model.
  • embodiments of the present disclosure are not limited thereto.
  • One or more processors 2300 may be implemented as a single-core processor or as a multi-core processor.
  • the plurality of operations may be performed by one core or by a plurality of cores included in one or more processors.
  • Figure 17 is a block diagram of an electronic device according to an embodiment of the present disclosure.
  • the operations of the server 2000 described above may be performed in the electronic device 3000.
  • the electronic device 3000 may include a communication interface 3100, a display 3200, a camera 3300, a memory 3400, and a processor 3500. Since the communication interface 3100, memory 3400, and processor 3500 of the electronic device 3000 correspond to the communication interface 2100, memory 2200, and processor 2300 of the server 2000 of FIG. 16, respectively, Repeated explanations are omitted.
  • the display 3200 may output information processed by the electronic device 3000. Meanwhile, when the display 3200 and the touch pad form a layered structure to form a touch screen, the display can be used as an input device in addition to an output device.
  • Displays include liquid crystal display (LCD), thin-film-transistor liquid crystal display (TFT LCD), organic light-emitting diode (OLED), flexible display, It may include at least one of a 3D display, a micro display, and a head-mounted display (HMD).
  • the electronic device 3000 may display information related to the product obtained through recognition of the product label on the display 3200.
  • Camera(s) 3300 may acquire video and/or images by photographing an object. There may be more than one camera(s) 3300.
  • the camera(s) 3300 may include, for example, an RGB camera, a telephoto camera, a wide-angle camera, an ultra-wide-angle camera, etc., but are not limited thereto.
  • Camera(s) 3300 may acquire video including a plurality of frames. Since the specific types and detailed functions of the camera(s) 3300 can be clearly deduced by a person skilled in the art, descriptions are omitted.
  • the input/output interface may further include an input interface that receives a user's input and an output interface that outputs a signal other than the image/video signal output from the display 3200.
  • the input interface is for receiving input from the user.
  • the input interface is a key pad, dome switch, and touch pad (contact capacitance method, pressure resistance film method, infrared detection method, surface ultrasonic conduction method, integral tension measurement method, piezo effect) method, etc.), a jog wheel, and a jog switch, but is not limited thereto.
  • the output interface may include a speaker.
  • the speaker may output an audio signal received from the communication interface 3100 or stored in the memory 3400.
  • Figure 18 is a block diagram of a refrigerator according to an embodiment of the present disclosure.
  • the refrigerator 4000 includes a main body 4010, a storage compartment 4100, a door 4200, a cold air supply device 4300, a power module 4400, a processor 4500, a memory 4600, and a communication module. It may include (4700), an input interface (4800), and an output interface (4900).
  • the main body 4010 may include an inner case, an external case disposed on the outside of the internal case, and an insulating material provided between the internal case and the external case.
  • the inner box may include at least one of a case, plate, panel, or liner that forms the storage compartment 4100.
  • the inner case may be formed as a single body or may be formed by assembling a plurality of plates.
  • the outer box can form the exterior of the main body 4010 and can be coupled to the outside of the inner box so that an insulating material is disposed between the inner box and the outer box.
  • the insulation material can insulate the inside of the storage room 4100 and the outside of the storage room 4100 so that the temperature inside the storage room 4100 is maintained at a set appropriate temperature without being affected by the external environment of the storage room 4100.
  • the insulation material may include a foam insulation material.
  • a foam insulation material can be formed by injecting and foaming urethane foam mixed with polyurethane and a foaming agent between the inner and outer wounds.
  • the insulation material may further include a vacuum insulation material in addition to the foam insulation material, or the insulation material may consist of only a vacuum insulation material instead of the foam insulation material.
  • the vacuum insulating material may include a core material and an outer shell material that accommodates the core material and seals the interior with a vacuum or a pressure close to vacuum.
  • the insulation material is not limited to the foam insulation material or vacuum insulation material described above and may include various materials that can be used for insulation.
  • the storage compartment 4100 may include a space limited by an internal box.
  • the storage compartment 4100 may further include an inner box defining a space corresponding to the storage compartment 4100.
  • the storage compartment 4100 can store various items such as food, medicine, and cosmetics, and the storage compartment 4100 can be formed so that at least one side is open for loading and unloading goods.
  • the refrigerator 4000 may include one or more storage compartments 4100.
  • each storage compartment 4100 may have a different purpose and may be maintained at a different temperature.
  • each storage compartment 4100 may be partitioned from each other by a partition wall including an insulating material.
  • the storage compartment 4100 may be maintained at an appropriate temperature range depending on the purpose, and may include a refrigerating room 4120, a freezer room 4130, or an alternate temperature room 4140, which are classified depending on the use and/or temperature range. .
  • the refrigerating compartment 4120 can be maintained at an appropriate temperature for refrigerated storage of products
  • the freezer compartment 4130 can be maintained at an appropriate temperature for frozen storage of products.
  • Refrigeration may mean cooling items to the point where they do not freeze.
  • the refrigerating room 4120 may be maintained in the range of 0 degrees Celsius to +7 degrees Celsius.
  • Freezing may mean freezing an item or cooling it to maintain it in a frozen state.
  • the freezer 4130 may be maintained in a range of -20 degrees Celsius to -1 degree Celsius.
  • the alternate temperature chamber 4140 may be used as either the refrigerator chamber 4120 or the freezer chamber 4130, with or without the user's choice.
  • the storage room 4100 may be called by various names, such as a vegetable room, a fresh room, a cooling room, and an ice-making room, in addition to names such as a refrigerator room 4120, a freezer room 4130, and a cold room 4140.
  • the refrigerator room 4120 used below is Terms such as , freezer compartment 4130, and alternate temperature room 4140 should be understood to encompass the storage compartment 4100, each having a corresponding purpose and temperature range.
  • the refrigerator 4000 may include at least one door 4200 configured to open and close one open side of the storage compartment 4100.
  • the door 4200 may be provided to open and close one or more storage rooms 4100, or one door 4200 may be provided to open and close a plurality of storage rooms 4100.
  • the door 4200 may be rotatably or slidingly installed on the front of the main body 4010.
  • the door 4200 may be configured to seal the storage compartment 4100 when the door 4200 is closed.
  • the door 4200 may include an insulating material like the main body 4010 to insulate the storage compartment 4100 when the door 4200 is closed.
  • the door 4200 includes a door outer plate that forms the front of the door 4200, a door inner plate that forms the rear of the door 4200 and faces the storage compartment 4100, an upper cap, a lower cap, and They may include door insulation provided inside them.
  • a gasket may be provided on the edge of the inner plate of the door to seal the storage compartment 4100 by coming into close contact with the front of the main body 4010 when the door 4200 is closed.
  • the door inner plate may include a dyke that protrudes rearward so that a door basket for storing items is mounted.
  • the door 4200 may include a door body and a front panel that is detachably coupled to the front of the door body and forms the front of the door 4200.
  • the door body may include a door outer plate that forms the front of the door body, a door inner plate that forms the rear of the door body and faces the storage compartment 4100, an upper cap, a lower cap, and a door insulator provided inside them.
  • the refrigerator 4000 is divided into French door type, side-by-side type, BMF (Bottom Mounted Freezer), and TMF (Top) depending on the arrangement of the door 4200 and the storage compartment 4100. Mounted Freezer) or 1-door refrigerator (4000).
  • the refrigerator 4000 may include a cold air supply device 4300 that supplies cold air to the storage compartment 4100.
  • the cold air supply device 4300 may include a machine, device, electronic device, and/or a system combining them that can generate cold air and guide the cold air to cool the storage compartment 4100.
  • the cold air supply device 4300 may generate cold air through a refrigeration cycle including compression, condensation, expansion, and evaporation processes of the refrigerant.
  • the cold air supply device 4300 may include a refrigeration cycle device having a compressor, a condenser, an expansion device, and an evaporator capable of driving a refrigeration cycle.
  • the cold air supply device 4300 may include a semiconductor such as a thermoelectric element. The thermoelectric element can cool the storage compartment 4100 by generating heat and cooling through the Peltier effect.
  • the refrigerator 4000 may include a machine room in which at least some parts belonging to the cold air supply device 4300 are arranged.
  • the machine room may be arranged to be partitioned and insulated from the storage room 4100 to prevent heat generated from parts placed in the machine room from being transferred to the storage room 4100.
  • the inside of the machine room may be configured to communicate with the outside of the main body 4010 to dissipate heat from the components placed inside the machine room.
  • the refrigerator 4000 may include a dispenser provided on the door 4200 to provide water and/or ice.
  • the dispenser may be provided in the door 4200 so that the user can access it without opening the door 4200.
  • the refrigerator 4000 may include an ice-making device that produces ice.
  • the ice making device may include an ice making tray that stores water, an ice moving device that separates ice from the ice making tray, and an ice bucket that stores ice generated in the ice making tray.
  • the refrigerator 4000 may include a control unit for controlling the refrigerator 4000.
  • the control unit includes a memory 4600 that stores or records programs and/or data for controlling the refrigerator 4000, and controls the cold air supply device 4300 according to the programs and/or data recorded in the memory 4600. It may include a processor 4500 that outputs a control signal.
  • the memory 4600 stores or records various information, data, commands, programs, etc. required for the operation of the refrigerator 4000.
  • the memory 4600 may record temporary data generated while generating control signals for controlling components included in the refrigerator 4000.
  • the memory 4600 may include at least one of volatile memory or non-volatile memory, or a combination thereof.
  • the processor 4500 controls the overall operation of the refrigerator 4000.
  • the processor 4500 can control the components of the refrigerator 4000 by executing a program stored in the memory 4600.
  • the processor 4500 may include a separate NPU that performs the operation of an artificial intelligence model. Additionally, the processor 4500 may include a central processing unit, a graphics processor (GPU), etc.
  • the processor 4500 may generate a control signal to control the cold air supply operation. For example, the processor 4500 receives temperature information of the storage compartment 4100 from a temperature sensor and generates a cooling control signal to control the operation of the cold air supply device 4300 based on the temperature information of the storage compartment 4100. can do.
  • the processor 4500 may process user input of the user interface and control the operation of the user interface according to programs and/or data recorded/stored in the memory 4600.
  • the user interface may be provided using an input interface 4800 and an output interface 4900.
  • Processor 4500 may receive user input from a user interface. Additionally, the processor 4500 may transmit a display control signal and image data for displaying an image on the user interface to the user interface in response to a user input.
  • Processor 4500 and memory 4600 may be provided integrally or may be provided separately.
  • Processor 4500 may include one or more processors.
  • the processor 4500 may include a main processor and at least one subprocessor.
  • Memory 4600 may include one or more memories.
  • the refrigerator 4000 includes a processor 4500 and a memory 4600 that control all components included in the refrigerator 4000, and a plurality of processors 4500 that individually control components of the refrigerator 4000. and a plurality of memories 4600.
  • the refrigerator 4000 may include a processor 4500 and a memory 4600 that control the operation of the cold air supply device 4300 according to the output of the temperature sensor.
  • the refrigerator 4000 may be separately equipped with a processor 4500 and a memory 4600 that control the operation of the user interface according to user input.
  • the communication module 4700 can communicate with external devices such as servers, mobile devices, and other home appliances through a nearby access point (AP).
  • An access repeater (AP) can connect a local area network (LAN) to which the refrigerator 4000 or a user device is connected to a wide area network (WAN) to which a server is connected.
  • LAN local area network
  • WAN wide area network
  • the refrigerator 4000 or the user device may be connected to the server through a wide area network (WAN).
  • WAN wide area network
  • the input interface 4800 may include keys 4810, a touch screen 4820, a microphone, etc.
  • the input interface 4800 may receive user input and transmit it to the processor 4500.
  • the output interface 4900 may include a display 4910, a speaker 4920, etc.
  • the output interface 4900 can output various notifications, messages, information, etc. generated by the processor 4500.
  • the washing machine 4000 may perform data communication with the server 2000 and/or the electronic device 3000.
  • the washing machine 4000 receives data related to control operations (e.g., operation mode settings) from the server 2000 and/or the electronic device 3000, and executes the function corresponding to the received data in the washing machine 4000. You can. Since the description regarding the washing machine 4000 being controlled by the server and/or the electronic device 3000 has been described above, repeated descriptions will be omitted.
  • Figure 19 is a block diagram of an oven according to an embodiment of the present disclosure.
  • the oven 5000 may include a processor 5100, a driver 5200, a sensor unit 5300, a communication module 5400, a user interface 5500, a light 5600, and a memory 5700. You can.
  • the processor 5100 can generally control the operation of the oven 5000.
  • the processor 5100 controls the driver 5200, sensor unit 5300, communication module 5400, user interface 5500, lighting 5600, and memory 5700 by executing programs stored in memory 5700. can do.
  • the oven 5000 may be a smart oven equipped with an artificial intelligence (AI) processor.
  • Artificial intelligence (AI) processors may be manufactured in the form of dedicated hardware chips for artificial intelligence (AI), or may be manufactured as part of an existing general-purpose processor (e.g. CPU or application processor) or graphics-specific processor (e.g. GPU). It may also be mounted in the oven 5000.
  • the memory 5700 may store programs for processing and controlling the processor 5100, and may store input/output data (e.g., recipe information, area table, interval table, crop area size information, distortion correction value, brightness level table, etc.) can also be saved.
  • the memory 5700 may also store an artificial intelligence model.
  • the memory 5700 may store an artificial intelligence model for object recognition, an artificial intelligence model for recipe recommendation, etc.
  • the memory 5700 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory, etc.), and RAM.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • PROM Program Memory
  • magnetic memory magnetic disk
  • the oven 5000 may be linked to a web storage or cloud server that performs a storage function on the Internet.
  • the driving unit 5200 may include a heater 5210, a circulation fan 132, and a cooling fan 5230, but is not limited thereto.
  • the driving unit 5200 may change depending on the type of oven 5000.
  • a heater 5210 that heats food may be provided in the internal space (eg, cooking room) of the oven 5000.
  • the heater 5210 may be an electric heater including an electrical resistor or a gas heater that generates heat by burning gas.
  • a circulation fan 5220 that circulates internal air to heat food evenly and a circulation motor that drives the circulation fan 5220 may be provided. Additionally, a fan cover may be provided in front of the circulation fan 5220 to cover the circulation fan 5220, and a hole may be formed in the fan cover to allow air to flow.
  • the cooling fan 5230 may be a centrifugal fan that sucks air from the top and discharges it in the radial direction.
  • the cooling fan 5230 may be disposed in the cooling passage.
  • the cooling fan 5230 may include a flat rotating plate, a hub formed at the center of the rotating plate and coupled to the rotating shaft of the cooling motor, and a plurality of blades formed as an edge portion at the center of the rotating plate.
  • the hub may be formed in a cone shape with a radius that increases toward the bottom, and thus air sucked in from the top can be diffused toward the bottom.
  • the sensor unit 5300 includes a depth sensor 5310, a weight sensor 5320, an infrared sensor 5330, a humidity sensor 5340 that senses the humidity of the interior space, and a gas sensor that senses the level of gas in the interior space ( 5350) and a temperature sensor 5360, but is not limited thereto. Since the function of each sensor can be intuitively inferred by a person skilled in the art from its name, detailed description will be omitted.
  • the communication module 5400 may include one or more components that enable communication between the oven 5000 and a server device (not shown), or between the oven 5000 and a mobile terminal (not shown).
  • the communication module 5400 may include a short-distance communication module 5410, a long-distance communication module 5420, etc.
  • Short-range communication module (410), Bluetooth, BLE (Bluetooth Low Energy), Near Field Communication (NFC), WLAN (Wi-Fi), Zigbee, Infrared (IrDA, infrared Data Association), WFD (Wi-Fi) It may include, but is not limited to, communication modules using communication technologies such as Fi Direct), UWB (ultra wideband), and Ant+.
  • the long-distance communication unit 5420 may be used to communicate with the server 2000 when the oven 5000 is remotely controlled by a server device (not shown) in an IoT (Internet of Things) environment.
  • the long-distance communication module 5420 may include the Internet, a computer network (eg, LAN or WAN), and a mobile communication unit.
  • the mobile communication unit may include, but is not limited to, a 3G module, 4G module, 5G module, LTE module, NB-IoT module, LTE-M module, etc.
  • the user interface 5500 may include an output interface 5510 and an input interface 5520.
  • the output interface 5510 is for outputting audio signals or video signals and may include a display unit and an audio output unit.
  • the display unit can be used as an input interface 5520 in addition to the output interface 5510.
  • the display unit includes a liquid crystal display, a thin film transistor-liquid crystal display, a light-emitting diode (LED), an organic light-emitting diode, and a flexible display. It may include at least one of a display, a 3D display, and an electrophoretic display. And depending on the implementation form of the oven 5000, the oven 5000 may include two or more display units.
  • the audio output unit may output audio data received from the communication module 5400 or stored in the memory 5700. Additionally, the sound output unit may output sound signals related to functions performed in the oven 5000. The sound output unit may include a speaker, buzzer, etc.
  • the display unit may output a monitoring image of the internal space of the oven 5000 or output recipe information suitable for food ingredients. Additionally, the display unit may output a correction value for the cooking temperature determined according to the height at which the tray is inserted.
  • the input interface 5520 is for receiving input from the user.
  • the input interface 5520 includes a key pad, a dome switch, and a touch pad (contact capacitive type, pressure resistance type, infrared detection type, surface ultrasonic conduction type, and integral tension measurement type). , piezo effect method, etc.), a jog wheel, or a jog switch, but is not limited thereto.
  • the input interface 5520 may include a voice recognition module.
  • the oven 5000 may receive a voice signal, which is an analog signal, through a microphone, and convert the voice portion into computer-readable text using an Automatic Speech Recognition (ASR) model.
  • ASR Automatic Speech Recognition
  • NLU Natural Language Understanding
  • the ASR model or NLU model may be an artificial intelligence model.
  • Artificial intelligence models can be processed by an artificial intelligence-specific processor designed with a hardware structure specialized for processing artificial intelligence models.
  • the lighting 5600 may be placed on one side of the internal space of the oven 5000 and may be expressed as internal lighting.
  • the lighting 5600 may be placed on the ceiling or on the side, but is not limited thereto.
  • the lighting 5600 may be turned on when the door of the oven 5000 is opened or the oven 5000 is operating.
  • Light 5600 may be protected by a glass cover.
  • lighting 5600 may have various brightness levels.
  • the light 5600 may emit light ranging from dark to bright.
  • the brightness of the lighting 5600 may be adjusted by the processor 5100.
  • the lighting 5600 may be a halogen lighting or an LED lighting, but is not limited thereto.
  • the oven 5000 may perform data communication with the server 2000 and/or the electronic device 3000.
  • the oven 5000 receives data related to control operations (e.g., operation mode settings) from the server 2000 and/or the electronic device 3000, and executes the function corresponding to the received data in the oven 5000.
  • control operations e.g., operation mode settings
  • the present disclosure determines a text area to separate the overlapped text from an image containing the overlapped text, extracts only pixels corresponding to a character group from the text area, and then restores them to obtain an image containing the intact text.
  • a method for a server to obtain text from an image may be provided.
  • the method may include obtaining an image including a first text and a second text overlapping the first text.
  • the method may include separating a first text area corresponding to the first text from the image.
  • the method may include extracting pixels corresponding to the first text from the first text area to obtain intact and damaged portions of the first text.
  • the method may include restoring the first text by inpainting the damaged portion of the first text where the first text overlapped the second text within an image of the first text. .
  • Separating the first text region may include determining a plurality of text regions by segmenting the first text and the second text in the image into a plurality of character groups.
  • Separating the first text area may include separating the first text area from the plurality of text areas.
  • Determining the plurality of text regions may include determining the plurality of text regions by applying a color clustering algorithm to the image to group characters of adjacent colors in a color space.
  • Determining the plurality of text areas may include receiving a user input for selecting the first text in the image.
  • Determining the plurality of text areas may include applying the color clustering algorithm to the first text area corresponding to the user input within the image.
  • Determining the plurality of text areas may include, based on the image, obtaining a text area map indicating positions of the first text and the second text within the image.
  • Determining the plurality of text areas may include determining the plurality of text areas based on the text area map.
  • the step of determining the plurality of text areas may include applying the color clustering algorithm based on the text area map.
  • the step of determining the plurality of text areas includes determining the plurality of text areas based on at least one of language, font, text format, corpus, and logo of each of the first text and the second text. It could be.
  • the method may include applying optical character recognition (OCR) to the first text.
  • OCR optical character recognition
  • the image may include an image of a food-related label.
  • the first text may include text related to food.
  • the method may include providing information related to the food based on a result of applying optical character recognition to the first text.
  • the method may include transmitting food-related information to an external device.
  • a server that obtains text from an image may be provided.
  • the server includes a communication interface; A memory that stores one or more instructions; It may include one or more processors that execute the one or more instructions stored in the memory.
  • the one or more processors may acquire an image including a first text and a second text overlapping the first text by executing the one or more instructions.
  • the one or more processors may separate a text area corresponding to the first text from the image by executing the one or more instructions.
  • the one or more processors by executing the one or more instructions, extract pixels associated with one or more characters of the first text from the text area of the first text to determine if the partial area of the first text is damaged. 1 You can obtain an image of text.
  • the one or more processors may restore the first text by executing the one or more instructions and inpainting an area where the first text overlapped with the second text within the image of the first text.
  • the one or more processors by executing the one or more instructions, may determine a plurality of text areas by segmenting text in the image into a plurality of character groups.
  • the one or more processors may separate a text area corresponding to the first text from the plurality of text areas by executing the one or more instructions.
  • the one or more processors may determine the text areas by executing the one or more instructions and applying a color clustering algorithm to the image to group characters of adjacent colors.
  • the one or more processors may receive user input for selecting text in the image by executing the one or more instructions.
  • the one or more processors may apply the color clustering algorithm to a region corresponding to the user input in the image by executing the one or more instructions.
  • the one or more processors may obtain, based on the image, a text area map indicating the location of text within the image by executing the one or more instructions.
  • the one or more processors may determine the plurality of text areas based on the text area map by executing the one or more instructions.
  • the one or more processors may apply the color clustering algorithm based on the text area map by executing the one or more instructions.
  • the one or more processors may determine the plurality of text areas based on at least one of a language, a font, a text format, a corpus, and a logo of the text by executing the one or more instructions.
  • the one or more processors may apply optical character recognition (OCR) to the first text by executing the one or more instructions.
  • OCR optical character recognition
  • the image may include an image of a food-related label.
  • the first text may include text related to food.
  • the one or more processors may provide information related to the food based on a result of applying optical character recognition to the first text by executing the one or more instructions.
  • Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and non-volatile media, removable and non-removable media. Additionally, computer-readable media may include computer storage media and communication media. Computer storage media includes both volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Communication media typically may include computer readable instructions, data structures, or other data, such as modulated data signals, or program modules.
  • computer-readable storage media may be provided in the form of non-transitory storage media.
  • 'non-transitory storage medium' simply means that it is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is semi-permanently stored in a storage medium and temporary storage media. It does not distinguish between cases where it is stored as .
  • a 'non-transitory storage medium' may include a buffer where data is temporarily stored.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • a 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 or between two user devices (e.g. smartphones). It may be distributed in person or online (e.g., downloaded or uploaded). In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) is stored on a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
  • a machine-readable storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Character Input (AREA)

Abstract

서버가 이미지로부터 텍스트를 획득하는 방법이 제공된다. 상기 방법은, 제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득하는 단계; 상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리하는 단계; 상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출하는 단계; 및 상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을 인페인팅함으로써, 상기 제1 텍스트를 복원하는 단계를 포함할 수 있다.

Description

이미지로부터 텍스트를 획득하는 방법 및 서버
텍스트 분리 네트워크를 이용하여, 이미지 내에서 오버랩 된 텍스트를 분리하고 추출 및 인식하는, 서버 및 그 동작 방법이 제공된다.
다양한 종류의 상품들에는 각각 상품을 설명하기 위한 텍스트가 존재한다. 텍스트를 포함하는 상품들은 상품의 표면, 라벨 스티커 등에 텍스트가 인쇄된 것이다. 시중에 유통되는 상품의 라벨들 중에는, 상품의 공통 정보가 미리 인쇄되어 있는 라벨의 템플릿 위에, 구체적인 상품의 정보를 추가로 인쇄하는 방식을 이용하는 라벨이 있다. 이러한 라벨의 인쇄 과정에서, 오류(예를 들어, 인쇄 좌표의 오차 등)로 인해 오버랩 된 텍스트가 존재할 수 있다. 일반적인 텍스트 인식 방법을 이용하여 오버랩 된 텍스트를 인식하는 경우, 텍스트 인식 결과는 정확하지 않을 수 있다. 텍스트를 인식할 때, 오버랩 된 텍스트를 분리하여 정확하게 인식하기 위한 알고리즘들이 최근 사용되고 있다.
본 개시의 일 측면에 따르면, 서버가 이미지로부터 텍스트를 획득하는 방법이 제공될 수 있다. 상기 방법은, 제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득하는 단계를 포함할 수 있다. 상기 방법은, 상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리하는 단계를 포함할 수 있다. 상기 방법은, 상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출하는 단계를 포함할 수 있다. 상기 방법은, 상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을을 인페인팅함으로써, 상기 제1 텍스트를 복원하는 단계를 포함할 수 있다.
본 개시의 일 측면에 따르면, 이미지로부터 텍스트를 획득하는 서버가 제공될 수 있다. 상기 서버는, 하나 이상의 인스트럭션을 저장하는 메모리; 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 하나 이상의 프로세서를 포함할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을 인페인팅함으로써, 상기 제1 텍스트를 복원할 수 있다.
본 개시의 일 측면에 따르면, 서버가 이미지로부터 텍스트를 획득하는, 전술 및 후술하는 방법들 중 어느 하나를 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능 기록매체를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트를 추출하는 것을 개략적으로 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트를 획득하는 동작을 설명하기 위한 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 서버가 획득하는, 오버랩 된 텍스트를 포함하는 이미지를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 이미지를 전처리하는 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 서버가 이용하는 텍스트 분리 네트워크를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 서버가 이미지 내의 텍스트를 인식하는 동작을 설명하기 위한 도면이다.
도 7a는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 컬러 정보를 이용하는 동작을 설명하기 위한 도면이다.
도 7b는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 컬러 정보를 이용하는 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 서버가 이미지 내에서 텍스트 영역들을 검출하는 동작을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트 영역들을 분리하는 동작을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시예에 따른 서버가 텍스트 영역 내에서 제1 텍스트를 추출하는 동작을 설명하기 위한 도면이다.
도 11a는 본 개시의 일 실시예에 따른 서버가 손상된 텍스트를 포함하는 이미지를 인페인팅하는 동작을 설명하기 위한 도면이다.
도 11b는 본 개시의 일 실시예에 따른 서버가 인페인터의 훈련 데이터를 생성하는 동작을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시예에 따른 텍스트 분리 네트워크를 설명하기 위한 도면이다.
도 13a는 본 개시의 일 실시예에 따른 서버가 가전 장치인 냉장고와 연계하여 동작하는 것을 설명하기 위한 도면이다.
도 13b는 서버가 가전 장치인 냉장고와 연계하여 동작하는 것을 더 설명하기 위한 도면이다.
도 13c는 서버와 연계하여 동작하는 가전 장치의 동작을 설명하기 위한 도면이다.
도 14a는 본 개시의 일 실시예에 따른 서버가 가전 장치인 오븐과 연계하여 동작하는 것을 설명하기 위한 도면이다.
도 14b는 서버가 가전 장치인 오븐과 연계하여 동작하는 것을 더 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 서버가 가전 장치와 연계하여 동작하는 것을 설명하기 위한 흐름도이다.
도 16은 본 개시의 일 실시예에 따른 서버의 블록도이다.
도 17은 본 개시의 일 실시예에 따른 전자 장치의 블록도이다.
도 18은 본 개시의 일 실시예에 따른 냉장고의 블록도이다.
도 19는 본 개시의 일 실시예에 따른 오븐의 블록도이다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 또한, 본 명세서에서 사용되는 '제1' 또는 '제2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한, 각각의 도면에서 사용된 도면 부호는 각각의 도면을 설명하기 위한 것일 뿐, 상이한 도면들 각각에서 사용된 상이한 도면 부호가 상이한 요소를 나타내기 위한 것은 아니다. 이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
본 개시의 실시예에서, 이미지가 오버랩 된 텍스트를 포함할 때, 오버랩된 텍스트는 컬러 클러스터링 및/또는 컬러 채널 정보 및 텍스트 속성들(예를 들어, 텍스트 컬러, 텍스트 모양, 텍스트 폰트)을 이용하는 뉴럴 네트워크를 통해 분리될 수 있다. 또한, 텍스트 분리 프로세스로 인해 손실된 픽셀 정보는 인페인팅을 통해 복구되거나 재구성 될 수 있다.
도 1은 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트를 추출하는 것을 개략적으로 도시한 도면이다.
도 1을 참조하면, 일 실시예에 따른 서버(2000)는 이미지(100)를 획득할 수 있다. 이 경우, 이미지(100)는 텍스트를 포함할 수 있으며, 이미지(100) 내에서 서로 다른 텍스트가 서로 중첩되어 있을 수 있다. 예를 들어, 서버(2000)가 획득한 이미지(100)는 상품 라벨 이미지일 수 있다. 여기서 상품 라벨은, 기본적인 상품 라벨의 템플릿 위에 상품의 세부 정보가 프린트된다. 이에 따라, 상품 라벨의 템플릿에 포함되는 텍스트(예를 들어, 상품 종류)와 상품 라벨의 템플릿 위에 인쇄되는 텍스트(예를 들어, 상품 명)가 오버랩 될 수 있다. 상품은 예를 들어, 식품(육류 등), 와인, 의류, 섬유 세제 등일 수 있으나 이에 한정되는 것은 아니다.
서버(2000)는 이미지(100) 내의 오버랩 된 텍스트를 분리 및 추출할 수 있다. 서버(2000)는 텍스트 분리 네트워크를 이용하여, 오버랩 된 텍스트 각각을 분리 및 추출함으로써 글자, 단어, 말뭉치, 문장 등의 단위 텍스트 조각들(110)을 획득할 수 있다. 예를 들어, 이미지(100)가 상품 라벨 이미지인 경우, 텍스트 조각들(110)은 상품과 관련된 정보를 나타낸다.
일 실시예에서, 서버(2000)는 이미지(100)로부터 분리된 텍스트 조각들(110)에 기초하여, 텍스트를 인식하고 상품과 관련된 정보를 생성할 수 있다. 서버(2000)는 상품과 관련된 정보를 이용하여 가전 장치(예를 들어, 냉장고, 오븐 등의 스마트 가전)를 제어하거나, 상품과 관련된 정보를 사용자의 전자 장치(예를 들어, 사용자의 스마트폰)로 제공할 수 있다.
한편, 본 개시에서 서버(2000)가 수행하는 동작은, 사용자의 전자 장치에 의해서도 수행될 수 있다. 전자 장치는 카메라를 통해 이미지(정지 이미지 및/또는 비디오)를 촬영하고, 디스플레이를 통해 이미지를 출력하고, 외부 디바이스(예를 들어, 이미지 스캐너)로부터 이미지를 수신하는 장치일 수 있다. 예를 들어, 전자 장치는 스마트 TV, 스마트 폰, 태블릿 PC, 랩탑 PC, 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 전자 장치는 카메라 및 디스플레이를 포함하는 다양한 종류 및 형태의 전자 장치로 구현될 수 있다. 또한, 전자 장치는 오디오를 출력하기 위한 스피커를 포함할 수도 있다. 전자 장치(3000)는 전자 장치(3000)의 카메라를 이용하여 획득된 이미지(100)로부터 직접 텍스트를 분리 및 추출할 수 있고, 이미지(100)를 서버(2000)로 전송하여 서버(2000)가 이미지(100)로부터 텍스트를 분리 및 추출할 수 있도록 하게 할 수 있다.
이하에서는 예시적으로, 서버(2000)가 텍스트 분리 및 추출 동작을 수행하는 것을 후술하는 도면들을 참조하여 더 상세하게 기술하기로 한다.
도 2는 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트를 획득하는 동작을 설명하기 위한 흐름도이다.
단계 S210에서, 서버(2000)는 제1 텍스트 및 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득한다.
예를 들어, 서버(2000)는 사용자의 전자 장치(예를 들어, 스마트폰, PC 등)로부터 이미지를 수신할 수 있다. 예를 들어, 서버(2000)는 서버 내 메모리에 저장된 이미지를 획득할 수 있다.
서버(2000)는 오버랩 된 텍스트를 포함하는 이미지를 획득할 수 있다. 본 개시에서는 이미지 내에 오버랩 된 텍스트를 포함하는 경우, 분리 및 추출되는 텍스트를 제1 텍스트라고 지칭하고, 제1 텍스트와 오버랩 된 다른 텍스트를 제2 텍스트라고 지칭할 것이다.
제1 텍스트와 제2 텍스트의 구별은 설명의 편의를 위한 것이며, 오버랩 된 텍스트 중 임의의 단위 텍스트가 제1 텍스트가 될 수 있다. 예를 들어, 텍스트 'ABC'와 텍스트 'DEF'가 오버랩 된 경우, 제1 텍스트는 'ABC', 제2 텍스트는 'DEF'로 결정될 수 있으며, 후술하는 텍스트 분리 및 추출을 위한 동작들이 수행됨으로써 오버랩 된 텍스트 중에서 제1 텍스트 'ABC'가 획득된다. 그러나 서버(2000)는 이미지 내 모든 텍스트를 분리/추출하기 때문에, 이미지 내 모든 텍스트에 대하여 동일/유사한 동작을 수행한다. 즉, 서버(2000)는 동일/유사한 방식으로, 제1 텍스트를 'DEF', 제2 텍스트가 'ABC'로 구별하여, 오버랩 된 텍스트 중에서 제1 텍스트 'DEF'를 분리할 수도 있다.
제1 텍스트와 오버랩 된 제2 텍스트는 하나 이상일 수 있다. 예를 들어, 제1 텍스트에 오버랩 된 하나의 단위 텍스트 조각을 제2 텍스트-A 라고 하면, 제1 텍스트에 오버랩 된 또다른 하나의 단위 텍스트 조각은 제2 텍스트-B 라고 지칭될 수 있다.
단계 S220에서, 서버(2000)는 이미지로부터 제1 텍스트에 대응하는 텍스트 영역(제1 텍스트 영역)을 분리한다. 본 개시에서, 서버(2000)가 제1 텍스트에 대응하는 텍스트 영역을 분리하기 위해 사용하는 소프트웨어 모듈은 세퍼레이터라고 지칭한다.
서버(2000)는 세퍼레이터를 이용하여 텍스트 세그멘테이션을 할 수 있다. 서버(2000)는 이미지 내의 텍스트를 복수의 문자 그룹들로 세그멘트함으로써, 복수의 텍스트 영역들을 결정할 수 있다. 텍스트 영역이란, 이미지 내에서, 같은 그룹으로 분류된 문자들을 포함하는 영역을 말한다. 세퍼레이터는 제1 세퍼레이터 및 제2 세퍼레이터를 포함할 수 있다. 제1 세퍼레이터는 제2 세퍼레이터에 비해 상대적으로 가벼운 텍스트 분리 연산을 수행하며, 제2 세퍼레이터는 제1 세퍼레이터에 비해 상대적으로 많은 연산을 수행하도록 구성될 수 있다. 이에 따라, 제1 세퍼레이터보다 제2 세퍼레이터의 텍스트 분리 정확도가 높을 수 있다.
일 실시예에서, 서버(2000)는 이미지 내에서 텍스트의 위치를 나타내는 텍스트 영역 맵을 획득하고, 텍스트 영역 맵에 기초하여 복수의 텍스트 영역들을 결정할 수 있다. 서버(2000)는 텍스트의 언어, 글씨체, 말뭉치(corpus)(예를 들어, 중량(g)) 및 로고 중 적어도 하나에 기초하여 복수의 텍스트 영역들을 결정할 수 있다.
일 실시예에서, 제1 세퍼레이터는 컬러 클러스터링 알고리즘을 적용하여, 인접한 컬러의 문자들이 그룹화되도록 함으로써 복수의 텍스트 영역들을 결정할 수 있다.
일 실시예에서, 제2 세퍼레이터는, 인공지능 모델로 구현될 수 있다. 세퍼레이터는, 텍스트를 포함하는 원본 이미지를 입력 받아, 텍스트의 일 단위(예를 들어, 문자 그룹)를 포함하는 이미지를 출력하는, 심층 신경망 모델일 수 있다. 세퍼레이터는 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다.
일 실시예에서, 서버(2000)가 제1 텍스트에 대응하는 텍스트 영역을 분리하면, 분리된 텍스트 영역에는 제1 텍스트가 포함되며, 제1 텍스트와 오버랩 된 제2 텍스트의 전부 또는 일부가 포함된다.
단계 S230에서, 서버(2000)는 제1 텍스트의 텍스트 영역에서 제1 텍스트의 하나 이상의 문자들과 관련된 픽셀들을 추출하여, 손상된 부분이 있는 제1 텍스트의 이미지를 획득한다. 즉, 서버(2000)는 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 제1 텍스트의 텍스트 영역으로부터 제1 텍스트에 대응하는 픽셀들을 추출한다. 본 개시에서, 서버(2000)가 제1 텍스트의 문자들에 대응하는 픽셀들을 추출하기 위해 사용하는 소프트웨어 모듈은 익스트랙터라고 지칭한다.
서버(2000)는 단계 S220에서 분리한 텍스트 영역에서, 제1 텍스트의 하나 이상의 문자들에 대응하는 픽셀들을 레이블링할 수 있다. 예를 들어, 서버(2000)는 제1 텍스트의 하나 이상의 문자들에 대응하는 픽셀들을 레이블 값 1로 레이블링하고, 제1 텍스트와 오버랩 되어 있는 제2 텍스트의 문자들에 대응하는 픽셀들은 레이블링하지 않을 수 있다. 또는, 예를 들어, 서버(2000)는 제1 텍스트의 하나 이상의 문자들에 대응하는 픽셀들을 레이블 값 1로 레이블링하고, 제1 텍스트와 오버랩 되어 있는 제2 텍스트의 문자들에 대응하는 픽셀들은 레이블 값 2로 레이블링할 수 있다.
서버(2000)는 텍스트 영역에서 제1 텍스트의 문자들에 대응하는 픽셀들을 추출한, 제1 텍스트의 이미지를 획득할 수 있다. 이 경우, 서버(2000)는 제1 텍스트와 오버랩 된 제2 텍스트의 문자들에 대응하는 픽셀들은 추출하지 않으므로, 제1 텍스트의 문자들의 일부 픽셀이 손상되어 있을 수 있다.
단계 S240에서, 서버(2000)는 제1 텍스트의 이미지 내에서 제1 텍스트가 제2 텍스트와 오버랩 되었던 영역을 인페인팅함으로써, 제1 텍스트를 복원한다. 즉, 서버(2000)는 제1 텍스트가 제2 텍스트와 오버랩 되었던 제1 텍스트의 손상된 부분을 인페인팅한다. 본 개시에서, 서버(2000)가 제1 텍스트의 문자들에 대하여 손상된 픽셀들을 복원하기 위해 사용하는 소프트웨어 모듈은 인페인터라고 지칭한다.
일 실시예에서, 손상된 픽셀들을 복원하는 인페인터는, 인공지능 모델로 구현될 수 있다. 인페인터는, 손상된 픽셀을 포함하는 이미지를 입력 받아, 손상된 픽셀들을 채워 넣은 이미지를 출력하는, 심층 신경망 모델일 수 있다. 인페인터는 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다.
이하, 도 3을 참조하여 오버랩 된 텍스트를 포함하는 이미지에 대하여 설명하기로 한다.
도 3은 본 개시의 일 실시예에 따른 서버가 획득하는, 오버랩 된 텍스트를 포함하는 이미지를 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)가 획득하는 오버랩 된 텍스트를 포함하는 이미지는 상품 라벨 이미지일 수 있다. 도 3을 참조하면, 한국어 텍스트가 포함되는 제1 이미지(310) 및 영어 텍스트가 포함되는 제2 이미지(320)가 예시로 도시되어 있다.
제1 이미지(310)는 한국어 텍스트를 포함하는 상품 라벨 이미지의 예시이다. 제1 이미지(310)는 상품 라벨의 템플릿 위에 상품의 세부 정보를 나타내는 텍스트들이 프린트 된 것을 보여준다. 제1 이미지(310)에는, 복수의 텍스트 오버랩 영역(300)들이 포함될 수 있다. 예를 들어, 상품 라벨의 템플릿의 항목 중 하나인 '가격(원)'의 한국어 텍스트 위에, 실제 가격 '9700' 숫자 텍스트가 프린트 될 수 있다. 텍스트 오버랩 영역(300)은, 인쇄 과정에서의 오차로 인해 발생하며, 상품 라벨 템플릿 내에 한글 텍스트 '가격(원)'과 오버랩 된 숫자 '9700'이 존재하게 된다. 또한, 상품 라벨의 템플릿 내에서 '중량(g)'의 한국어 텍스트 위에, 실제 중량 '176'의 숫자 텍스트가 프린트 될 수 있으며, 이 때, 인쇄 과정에서의 오차로 인해 오버랩 된 텍스트를 포함하는 텍스트 오버랩 영역(300)이 존재할 수 있다.
제2 이미지(320)는 영어 텍스트를 포함하는 상품 라벨의 이미지의 예시이다. 제2 이미지(320)는 상품 라벨의 템플릿 위에 상품의 세부 정보를 나타내는 텍스트가 프린트 된 이미지일 수 있다. 예를 들어, 상품 라벨의 템플릿에는, 상품 라벨의 템플릿의 항목들인 포장 날짜(PACK DATE), 판매 기한(SELL BY) 총 중량(NET WT.) 단위 가격(UNIT PRICE), 총 가격(TOTAL PRICE) 등에 각각 상세 정보를 나타내는 텍스트가 프린트 될 수 있고, 상품을 판매하는 마트의 이름/주소 등의 정보가 프린트 될 수 있다.
일 실시예에 따른 서버(2000)는 오버랩 된 텍스트를 포함하는 이미지를 획득하면, 텍스트를 인식하기 위해 오버랩 된 텍스트를 분리할 수 있다. 예를 들어, 텍스트 'ABC'와 텍스트 'DEF'가 오버랩 되어, 전술한 텍스트 오버랩 영역(300)과 같이 되어 텍스트 인식이 불가능한 경우, 서버(2000)는 텍스트 'ABC'와 텍스트 'DEF'를 분리할 수 있다.
한편, 도 3을 포함하여 본 개시에서는, 오버랩 된 텍스트의 예시로 한국어, 영어, 숫자 등을 예시로 설명할 것이다. 다만, 이는 설명의 편의를 위한 예시일 뿐, 텍스트의 언어가 이에 한정되는 것은 아니다.
도 4는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 이미지를 전처리하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 오버랩 된 텍스트를 포함하는 이미지를 전처리할 수 있다. 도 4를 참조하면, 오버랩 된 텍스트를 포함하는 제1 이미지(410) 및 오버랩 된 텍스트를 포함하는 제2 이미지(420)가 예시로 도시되어 있다. 서버(2000)는 이미지의 컬러 채널 정보에 기초하여 이미지를 전처리할 수 있다.
일 실시예에서, 서버(2000)는 이미지 내에서 특정 컬러를 지울 수 있다. 제1 이미지(410)를 예로 들어 설명하면, 서버(2000)는 제1 이미지(410) 내의 특정 컬러의 로고(412)를 지울 수 있다. 서버(2000)는 특정 컬러의 로고(412)를 제거하기 위해, 로고(412)의 컬러를 식별할 수 있다. 서버(2000)는 로고(412)의 컬러에 기초하여 제1 임계값 및 제2 임계값을 설정하고, 제1 임계값 및 제2 임계값 사이의 컬러를 갖는 픽셀들을 지움으로써 전처리 된 제1 이미지(414)를 획득할 수 있다.
일 실시예에서, 서버(2000)는 이미지 내에서 특정 컬러만을 남길 수 있다. 제2 이미지(420)를 예로 들어 설명하면, 서버(2000)는 제2 이미지(420) 내에서 검정 또는 무채색 컬러만을 남기고 나머지 컬러들을 지울 수 있다.
예를 들어, 서버(2000)는 HSV 색 공간에서, 채도(saturation)가 제1 임계값보다 작고, 명도(value)가 제2 임계값보다 작은 픽셀들을 지움으로써 전처리 된 제2 이미지(422)를 획득할 수 있다. 이 경우, 검정 컬러 외 다른 컬러를 갖는 요소들(424)이 삭제될 수 있다. 다른 컬러를 갖는 요소들은 예를 들어, 텍스트, 로고(426), 배경색 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
예를 들어, 서버(2000)는 RGB 색 공간에서, 무채색 만을 남길 수 있다. 서버(2000)는 기 설정된 임계 값에 기초하여 R, G, B 컬러의 비율이 소정 범위 이내인 픽셀들만을 남김으로써, 전처리 된 제2 이미지(422)를 획득할 수 있다. 이 경우, 무채색 외 다른 컬러를 갖는 요소들(424)이 삭제될 수 있다. 다른 컬러를 갖는 요소들(424)은 예를 들어, 텍스트, 로고(426), 배경색 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 서버(2000)는 오버랩 된 텍스트를 포함하는 이미지를 선택적으로 전처리 할 수 있다. 예를 들어, 서버(2000)는 오버랩 된 텍스트를 포함하는 이미지를 전술한 예시에 따라 전처리하고, 전처리 된 이미지 내에서 오버랩 된 텍스트를 분리할 수 있다. 또는, 예를 들어, 서버(2000)는 오버랩 된 텍스트를 포함하는 이미지에 대한 전처리 없이, 직접적으로 오버랩 된 텍스트를 분리할 수 있다.
서버(2000)가 텍스트를 분리하는 동작은 이후의 도면들을 참조하여 더 기술한다. 이후의 모든 설명들에서, 서버(2000)가 텍스트를 분리함에 있어서 전처리는 선택적으로 적용 가능하다.
도 5는 본 개시의 일 실시예에 따른 서버가 이용하는 텍스트 분리 네트워크를 설명하기 위한 도면이다.
도 5를 참조하면, 서버(2000)는 텍스트 분리 네트워크(510)를 이용하여 원본 이미지(500)로부터 텍스트를 분리할 수 있다.
일 실시예에서, 텍스트 분리 네트워크(510)는 원본 이미지(500)를 입력으로 받아, 원본 이미지(500) 내에 있는 오버랩 된 텍스트를 분리할 수 있다. 텍스트 분리 네트워크(510)는 원본 이미지(500)를 처리하는 모듈인 세퍼레이터(520), 익스트랙터(530) 및 인페인터(540)를 포함할 수 있다. 다만, 이는 텍스트 분리 네트워크(510)의 세부적인 동작들을 설명하기 위해 예시적으로 복수의 모듈들을 구별한 것일 뿐, 이에 한정되는 것은 아니다. 예를 들어, 텍스트 분리 네트워크(510)에 포함되는 둘 이상의 모듈이 하나로 결합될 수 있고, 적어도 하나의 모듈이 생략될 수도 있다.
세퍼레이터(520)는 원본 이미지(500)를 처리하여 원본 이미지 내에 텍스트에 대응하는 텍스트 영역들을 분리한다. 즉, 세퍼레이터(520)는 이미지를 입력 받아, 복수의 텍스트 영역들을 결정할 수 있다. 복수의 텍스트 영역들 각각은, 이미지 내에서 같은 그룹으로 분류된 문자들을 포함하는 영역일 수 있다. 예를 들어, 하나의 텍스트 영역은 같은 그룹으로 분류된 한글 문자들 '중량(g)'(522)이 포함될 수 있다. 다만, 이는 복수의 텍스트 영역들 중 하나의 텍스트 영역만을 표시한 것이며, 세퍼레이터(520)는 이미지 내에 존재하는 모든 텍스트를 텍스트 영역들로 구별한다.
일 실시예에서, 세퍼레이터(520)는 컬러 클러스터링 알고리즘을 이용하여 이미지 내에서 인접한 컬러들을 클러스터링하고, 클러스터링 결과에 기초하여 문자들을 그룹화하는 모듈일 수 있다. 세퍼레이터(520)는 예를 들어, K-means 알고리즘을 이용하여 이미지 내 컬러를 K개로 클러스터링 할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 세퍼레이터(520)는 하나 이상의 인공지능 모델을 포함할 수 있다.
세퍼레이터(520)는 텍스트 검출 모델을 포함할 수 있다. 텍스트 검출 모델은 이미지를 입력 받아, 이미지 내에서 텍스트의 위치들을 검출한 결과를 나타내는 텍스트 영역 맵을 출력하는 인공지능 모델일 수 있다. 텍스트 영역 맵은 텍스트의 존재를 나타내는 2D 가우시안 스코어 데이터일 수 있으나, 이에 한정되는 것은 아니다. 또한, 텍스트 검출 모델은 이미지 내의 텍스트들의 문자들, 문자들의 연관 관계 등, 텍스트 검출을 위한 정답(ground truth)들의 주석(annotation)을 포함하는 트레이닝 데이터에 기초하여 훈련된 것일 수 있다. 텍스트 검출 모델은 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다.
세퍼레이터(520)는 텍스트 분리 모델을 포함할 수 있다. 텍스트 분리 모델은 이미지를 입력 받아, 이미지 내에서 텍스트들을 분리한 결과(예를 들어, 텍스트 영역 이미지 등)를 출력하는 인공지능 모델일 수 있다.
일 실시예에서, 텍스트 분리 모델은 텍스트의 언어, 글씨체, 말뭉치(corpus) 및 로고 중 적어도 하나를 포함하는, 텍스트 분리를 위한 기준이 되는 정답들의 주석을 포함하는 트레이닝 데이터에 기초하여 훈련된 것일 수 있다. 텍스트 분리 모델은 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다.
한편, 원본 이미지(500)는 중첩된 텍스트를 포함하는 이미지이므로, 세퍼레이터(520)에 의해 분리된 텍스트 영역에는, 텍스트가 오버랩 되어 있을 수 있다. 예를 들어, 텍스트 영역에 포함되는 문자 그룹을 제1 텍스트라고 지칭하면, 제1 텍스트 외에, 다른 문자 그룹으로 분류된 텍스트인 제2 텍스트의 일부가 분리된 텍스트 영역에 포함될 수 있다.
일 실시예에서, 세퍼레이터(520)는 제1 텍스트의 문자들에 대응하는 픽셀들을 레이블링할 수 있다. 예를 들어, 세퍼레이터(520)는 제1 텍스트의 문자들에 대응하는 픽셀들을 소정 값으로 레이블링할 수 있다. 세퍼레이터(520)는 제1 텍스트와 오버랩 된 제2 텍스트의 문자들은 레이블링하지 않거나, 제1 텍스트와 다른 값으로 레이블링할 수 있다.
익스트랙터(530)는 텍스트 영역 내 제1 텍스트에 대응하는 픽셀들을 추출하여 제1 텍스트의 일부 영역이 손상된 이미지를 획득할 수 있다. 여기서, 제1 텍스트의 일부 영역이 손상되었다는 것은, 제1 텍스트에 오버랩 된 제2 텍스트에 대응하는 픽셀들을 제외하고, 제1 텍스트에만 대응하는 픽셀들이 추출된 것을 말한다.
일 실시예에서, 익스트랙터(530)는 텍스트 영역 내에서 제1 텍스트에 대응하는 픽셀들의 레이블에 기초하여, 제1 텍스트에 대응하는 픽셀들만을 추출함으로써, 제1 텍스트의 일부 영역이 손상된 제1 텍스트의 이미지(532)를 획득할 수 있다.
인페인터(540)는 제1 텍스트의 이미지(532) 내에서 손상된 픽셀들을 복원할 수 있다. 인페인터(540)는, 손상된 픽셀을 포함하는 이미지를 입력 받아, 손상된 픽셀들을 채워 넣은 이미지를 출력하는, 심층 신경망 모델로 구현될 수 있다. 예를 들어, 인페인터(540)는 손상된 제1 텍스트의 이미지(532)를 입력 받아, 복원된 제1 텍스트의 이미지(542)를 출력할 수 있다.
인페인터(540)는 정답 텍스트에 노이즈 텍스트를 오버랩시켜 획득된 트레이닝 데이터에 기초하여 훈련된 것일 수 있다. 인페인터(540)는 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다.
일 실시예에 따른 서버(2000)가 텍스트 분리 네트워크(510) 및 텍스트 분리 네트워크(510)의 모듈들(세퍼레이터(520), 익스트랙터(530), 인페인터(540)를 이용하여 중첩된 텍스트들을 분리하는 동작을, 도 6 내지 도 11b를 참조하여 더 설명한다.
도 6은 본 개시의 일 실시예에 따른 서버가 이미지 내의 텍스트를 인식하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 텍스트 분리 네트워크(600)는 제1 세퍼레이터(610) 및 제2 세퍼레이터(620)를 포함할 수 있다.
제1 세퍼레이터(610)는 컬러 클러스터링 알고리즘을 이용하여 이미지 내에서 인접한 컬러들을 클러스터링하고, 클러스터링 결과에 기초하여 문자들을 그룹화하는 모듈일 수 있다. 컬러 클러스터링 알고리즘은 유사한 컬러(예: 컬러 스페이스에서 인접한 컬러)을 가진 픽셀을 함께 그룹화하여 이미지에서 텍스트를 감지하는 데 사용될 수 있다. 컬러 유사성을 정량화하는 방법에 있어서, 컬러 스페이스에서 서로 다른 컬러 간의 유클리드 거리가 계산되고, 미리 정해진 거리보다 작은 거리를 가진 컬러들이 유사한 컬러로 간주되어 동일한 컬러 그룹에 할당될 수 있다. 또는 유클리드 거리 기반 방법과 결합하여 이미지의 컬러 분포를 나타내는 컬러 히스토그램을 사용하여 유사한 컬러가 결정될 수도 있다. 제1 세퍼레이터(610)는 예를 들어, K-means 알고리즘을 이용하여 이미지 내 컬러를 K개로 클러스터링 할 수 있으나, 이에 한정되는 것은 아니다. 제1 세퍼레이터(610)는 그룹화된 문자들을 포함하는 텍스트 영역을 익스트랙터(630)로 전달할 수 있다.
제2 세퍼레이터(620)는 텍스트 분리 모델을 포함할 수 있다. 텍스트 분리 모델은 이미지를 입력 받아, 이미지 내에서 텍스트들을 분리한 결과(예를 들어, 그룹화된 문자들을 포함하는 텍스트 영역)를 출력하는 인공지능 모델일 수 있다. 제2 세퍼레이터(620)는 그룹화된 문자들을 포함하는 텍스트 영역을 익스트랙터(630)로 전달할 수 있다.
제1 세퍼레이터(610)는 제2 세퍼레이터(620)에 비해 상대적으로 가벼운 텍스트 분리 연산을 수행하며, 제2 세퍼레이터(620)는 제1 세퍼레이터(610)에 비해 상대적으로 많은 연산을 수행한다. 이에 따라, 제1 세퍼레이터(610)보다 제2 세퍼레이터(620)의 텍스트 분리 정확도가 높을 수 있다.
서버(2000)는 기 설정된 조건에 기초하여, 텍스트 분리 네트워크(600)의 제1 세퍼레이터(610) 또는 제2 세퍼레이터(620)를 이용할 것을 결정할 수 있다. 이하에서, 제1 세퍼레이터(610) 및 제2 세퍼레이터(620)가 사용되는 기 설정된 조건들을 설명한다.
일 실시예에서, 서버(2000)는 입력 이미지를 획득할 수 있다. 입력 이미지에는 오버랩 된 텍스트가 포함될 수 있다. 서버(2000)는 이미지의 특정 영역을 지정하는 사용자 입력을 수신할 수 있다(S610). 예를 들어, 서버(2000)는 이미지의 특정 영역을 지정하는 사용자 입력을 사용자의 전자 장치(예를 들어, 스마트폰, PC)로부터 수신할 수 있다. 사용자 입력은 이미지 내에서 오버랩 된 텍스트를 포함하는 텍스트 영역들을 지정하는 입력일 수 있다. 서버(2000)는 오버랩 된 텍스트를 포함하는 텍스트 영역들을 지정하는 사용자 입력에 기초하여, 텍스트 분리 작업을 수행할 수 있다. 일 실시예에서, 서버(2000)는 입력 이미지에 대하여 먼저 텍스트 인식(예를 들어, OCR 등)을 수행할 수 있다. 서버(2000)는 텍스트 오버랩으로 인해 입력 이미지에 대한 텍스트 인식 결과가 획득되지 않는 경우, 텍스트 인식 결과를 획득하기 위해 제1 세퍼레이터(610)를 이용할 것으로 결정할 수 있다. 서버(2000)가 최초로 텍스트 분리 네트워크(600)를 이용하는 경우, 제1 세퍼레이터(610)의 우선 순위가 제2 세퍼레이터(620) 보다 높게 설정되어 있을 수 있다.
서버(2000)는 제1 세퍼레이터(610)를 이용하여 텍스트 분리 작업을 수행할 수 있다. 예를 들어, 서버(2000)는 제1 세퍼레이터(610)를 이용하여 컬러 클러스터링을 수행하고, 컬러 클러스터에 기초하여 서로 다른 컬러의 텍스트를 분리할 수 있다. 예를 들어, 서버(2000)는 검정색 텍스트와 빨간색 텍스트를 분리할 수 있다.
서버(2000)는 사용자 입력이 없는 경우, 입력 이미지에 대하여 텍스트 영역 맵을 추출한다(S620). 서버(2000)는 텍스트 검출 모델을 이용하여 텍스트 영역 맵을 획득할 수 있다. 텍스트 검출 모델은 입력 이미지를 입력 받아, 이미지 내에서 텍스트의 위치들을 검출한 결과를 나타내는 텍스트 영역 맵을 출력하는 인공지능 모델일 수 있다.
서버(2000)는 텍스트 영역 맵에 기초하여, 이미지 내 텍스트 영역들에 컬러 클러스터링 알고리즘을 적용할 수 있다(S630). 서버(2000)는 텍스트 영역 맵에 기초하여, 이미지 내 존재하는 텍스트 영역들에 대한 컬러 클러스터를 획득하고, 분류된 컬러 클러스터의 수가 기 설정된 수 N(예를 들어, 3) 이상인지 여부에 기초하여 제1 세퍼레이터(610) 및 제2 세퍼레이터(620) 중 어느 하나를 이용할 것을 결정할 수 있다.
서버(2000)는 컬러 클러스터의 수가 기 설정된 수 N 이상이면, 제1 세퍼레이터(610)를 이용할 수 있다. 컬러 클러스터의 수 N이 기 설정된 수 이상이라는 것은, 텍스트 영역 내에 서로 다른 컬러를 갖는 텍스트가 3개 이상이라는 것을 의미한다. 이 경우, 서버(2000)는 제1 세퍼레이터(610)를 이용하여, 컬러를 기준으로 텍스트를 분리할 수 있다. 예를 들어, 제1 텍스트에 제2 텍스트가 오버랩 되어 있고, 제1 텍스트와 제2 텍스트의 컬러가 상이하면, 서버(2000)는 제1 텍스트와 제2 텍스트를 분리할 수 있다. 서버(2000)는 익스트랙터(630)를 이용하여, 제1 텍스트의 문자들에 대응하는 픽셀들을 추출할 수 있다. 여기서, 서버(2000)는 제1 텍스트에 오버랩 되었던 제2 텍스트의 문자들에 대응하는 픽셀들은 추출하지 않고, 그 결과로, 제2 텍스트의 오버랩으로 인해제1 텍스트의 일부 영역이 손상되거나 불완전한 이미지가 획득될 수 있다. 이를 해결하기 위해, 서버(2000)는 제1 텍스트의 일부 영역이 손상된 부분을 인페인터(640)를 이용하여 복원할 수 있다. 인페인터(640)는 제1 텍스트의 손상된 부분을 채움으로써 제1 텍스트를 복원할 수 있고, 복원된 제1 텍스트를 포함하는 이미지를 출력할 수 있다. 본 개시의 실시예에 따르면, 서버(2000)는 익스트랙터(630)를 이용하여 오버랩 된 제2 텍스트를 무시하면서 이미지로부터 제1 텍스트를 분리할 수 있고, 서버(2000)는 인페인터(640)를 이용하여 오버랩으로 인한 제1 텍스트의 손상된 부분을 복구 및 재구성하여 복원된 제1 텍스트를 나타내는 이미지를 생성할 수 있다.
서버(2000)는 인페인터(640)로부터 획득된, 복원된 이미지에 기초하여 텍스트 인식을 수행할 수 있다(S640). 예를 들어, 서버(2000)는 광학 문자 인식(Optical character recognition; OCR) 모델을 이용하여, 이미지에 포함되는 텍스트(예를 들어, 일반 문자, 특수 문자(special character) 및 기호(symbol) 등)를 인식할 수 있다. 서버(2000)가 텍스트 인식을 통해 획득한 텍스트는, 상품에 관련된 정보를 포함할 수 있다. 예를 들어, 입력 이미지가 상품 라벨의 이미지였던 경우, 서버(2000)는 상품 라벨에 포함되는 상품과 관련된 텍스트를 상품 정보로 획득할 수 있다. 일 실시예에서, 텍스트 인식은 서버(2000)와 연결된 외부 장치에서 수행될 수 있다. 예를 들어, 서버(2000)는, 텍스트 분리 네트워크(600)를 통해 획득한, 텍스트를 포함하는 이미지를 사용자의 전자 장치(예를 들어, 스마트폰 등)로 전송할 수 있다. 이 경우, 사용자의 전자 장치에서 OCR이 수행될 수 있다.
일 실시예에서, 서버(2000)는 텍스트 인식 결과의 유효성을 검증할 수 있다(S650). 예를 들어, 서버(2000)는 OCR 인식 결과에 포함되는 인식 신뢰도가 기 설정된 값 이상인지 여부에 기초하여 인식 결과의 유효성을 판단할 수 있다. 예를 들어, 서버(2000)는 기 설정된 기준에 기초하여 텍스트 인식 결과가 유효한지 여부를 판단할 수 있다. 구체적으로, 서버(2000)는 인식된 텍스트가 기 정의된 형태인, 상품을 식별하기 위한 식별 번호를 나타내는 20자리의 숫자를 충족하는지 여부를 판단할 수 있다. 예를 들어, 서버(2000)는 인식된 텍스트 숫자, 말뭉치, 단어 등이 정확하게 인식되었는지 여부를 검증할 수 있다. 서버(2000)는 텍스트 인식 결과가 유효하지 않다고 판단되면, 보다 정밀한 텍스트 분리 및 인식 작업을 다시 수행하기 위해, 제2 세퍼레이터(620)를 이용할 수 있다.
서버(2000)는 컬러 클러스터의 수가 기 설정된 수 미만이면, 제2 세퍼레이터(620)를 이용할 수 있다. 또한, 서버(2000)는 전술한 것과 같이 텍스트 인식 결과의 유효성에 기초하여 제2 세퍼레이터(620)를 이용할 수 있다.
서버(2000)는 제2 세퍼레이터(620)를 이용하여, 텍스트의 언어, 글씨체, 말뭉치 및 로고 중 적어도 하나에 기초하여 텍스트 영역들을 결정함으로써 텍스트를 분리할 수 있다. 제2 세퍼레이터(620)는, 텍스트를 포함하는 원본 이미지를 입력 받아, 텍스트의 일 단위(예를 들어, 문자 그룹)을 포함하는 이미지를 출력하는, 인공지능 모델일 수 있다. 제2 세퍼레이터(620)의 출력은 익스트랙터(630) 및 인페인터(640)로 순차적으로 전달되어, 제1 세퍼레이터(610)를 이용하여 텍스트를 분리 및 인식하는 것과 같은 방식의 연산이 다시 수행될 수 있다.
도 7a는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 컬러 정보를 이용하는 동작을 설명하기 위한 도면이다.
도 7a 및 도 7b에서 설명하는 세퍼레이터는, 도 6의 제1 세퍼레이터(610)에 대응될 수 있다.
일 실시예에서, 서버(2000)는 컬러 클러스터링 알고리즘을 이용하여 이미지 내에서 텍스트가 아닌 다른 객체(예를 들어, 배경, 로고 등)의 컬러들을 필터링할 수 있다. 서버(2000)는 세퍼레이터를 이용하여 오버랩 된 텍스트를 포함하는 원본 이미지(710) 내에서 검정색을 강조하여 컬러 클러스터링을 할 수 있다.
일 실시예에서, 서버(2000)는 원본 이미지(710)를 CYMK 색공간으로 변환할 수 있다. 서버(2000)는 원본 이미지(710)의 CYMK 색공간에서, 검정색을 나타내는 K 채널의 임계값을 기준으로 컬러들을 필터링하여, 1차 필터링 된 이미지(720)를 획득할 수 있다(step 1). 서버(2000)가 원본 이미지를 1차 필터링 한 결과, 원본 이미지(710)로부터 밝은 유채색 (예를 들어, 노란색 등) 등이 제거될 수 있다.
일 실시예에서, 서버(2000)는 1차 필터링 된 이미지(720)를 Lab 색공간으로 변환할 수 있다. 서버(2000)는 Lab 색공간에서 컬러 클러스터링을 수행하고, 컬러 클러스터 중에서 검정색에 인접한 클러스터에 대한 정보를 추출함으로써, 2차 필터링 된 이미지(730)를 획득할 수 있다(step 2).
일 실시예에 따른 서버(2000)는, 2차 필터링 된 이미지(730)에 대하여, 텍스트 및/또는 텍스트의 문자들에 대응하는 픽셀들을 추출하고, 손상된 픽셀들을 복원할 수 있다.
도 7b는 본 개시의 일 실시예에 따른 서버가 텍스트 분리를 위해 컬러 정보를 이용하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 컬러 클러스터링 알고리즘을 이용하여 이미지 내에서 텍스트가 아닌 다른 객체(예를 들어, 배경, 로고 등)의 컬러들을 필터링할 수 있다. 예를 들어, 서버(2000)는 오버랩 된 텍스트를 포함하는 원본 이미지(712)를 획득하고, 원본 이미지(712)의 색 분포(714)를 획득할 수 있다. 서버(2000)는 예를 들어, 컬러 분포 그래프, RGB 히스토그램 등을 획득할 수 있으나, 이에 한정되는 것은 아니다. 서버(2000)는 이미지 내 컬러를 N개로 클러스터링하기 위해, 색 분포(700)에 기초하여 타겟 수 N을 결정할 수 있다. 예를 들어, 서버(2000)는 색 분포에 기초하여 이미지 내의 우세한 컬러 N개를 결정하고 컬러 클러스터링을 수행할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 서버(2000)는 타겟 수 N을 사용자로부터 입력 받을 수도 있다.
서버(2000)는 컬러 클러스터링을 반복 수행할 수 있다. 예를 들어, 서버(2000)는 원본 이미지(712)에 첫번째 컬러 클러스터링을 수행하여, 원본 이미지(710) 내에서 컬러 수를 감소시킨, 1차 필터링 된 이미지(722)를 획득할 수 있다. 구체적으로, 서버(2000)는 원본 이미지(712) 내 컬러를 3개로 클러스터링하고, 클러스터 내 포함되지 않는 컬러는 필터링할 수 잇다. 이후, 서버(2000)는 1차 필터링 된 이미지(722)에 두번째 컬러 클러스터링을 수행하여, 1차 필터링 된 이미지(722) 내 컬러를 정밀하게 필터링할 수 있다. 구체적으로, 서버(2000)는 1차 필터링 된 이미지(722) 내 컬러를 3개로 클러스터링하고, 클러스터 내 포함되지 않는 컬러를 필터링하여 2차 필터링 된 이미지(732)를 획득할 수 있다.
일 실시예에 따른 서버(2000)는, 2차 필터링 된 이미지(732)에 대하여, 텍스트 및/또는 텍스트의 문자들에 대응하는 픽셀들을 추출하고, 손상된 픽셀들을 복원할 수 있다.
도 8은 본 개시의 일 실시예에 따른 서버가 이미지 내에서 텍스트 영역들을 검출하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 이미지 내에서 텍스트에 대응되는 영역들을 검출할 수 있다. 서버(2000)는 세퍼레이터를 이용하여 텍스트를 검출할 수 있다. 텍스트 검출 모델은 입력 이미지(800)를 입력 받아, 이미지 내에서 텍스트의 위치들을 검출한 결과를 나타내는 텍스트 영역 맵(810)을 출력하는 인공지능 모델일 수 있다.
일 실시예에서, 서버(2000)는 훈련용 이미지들을 포함하는 훈련 데이터셋에 기초하여 텍스트 검출 모델을 훈련시킬 수 있다. 훈련용 이미지는, 이미지 내 텍스트의 문자들에 문자 박스들이 레이블링 되어 있을 수 있다. 또한, 훈련용 이미지는, 이미지 내 텍스트의 관련 문자들을 엮기 위한, 관련도 박스(affinity box)들이 레이블링 되어 있을 수 있다. 관련 문자들이란 하나의 단어, 하나의 문장을 구성하는 문자들일 수 있으나, 이에 한정되는 것은 아니다.
텍스트 검출 모델은 입력 이미지(800) 내에 텍스트의 존재를 나타내는 2D 가우시안 스코어를 계산할 수 있다. 서버(2000)는 가우시안 스코어에 기초하여 입력 이미지(800) 내에서 텍스트 존재 영역들을 나타내는 텍스트 영역 맵(810)을 출력할 수 있다.
일 실시예에서, 서버(2000)는 입력 이미지에 대하여 텍스트 영역 맵(810)을 획득하고, 텍스트 영역 맵(810)에 기초하여 세퍼레이터를 이용한 텍스트 분리 동작을 수행할 수 있다. 이 경우, 서버(2000)가 이용하는 세퍼레이터는 입력 이미지 외에 텍스트 영역 맵(810)을 더 입력 받을 수 있다.
일 실시예에서, 텍스트 검출 모델은 세퍼레이터에 포함될 수 있다. 예를 들어, 제1 세퍼레이터 및/또는 제2 세퍼레이터가 텍스트 검출 모델을 포함하여, 텍스트 검출을 먼저 수행하고, 이후에 제1 세퍼레이터 및/또는 제2 세퍼레이터의 동작을 수행할 수 있다.
도 9는 본 개시의 일 실시예에 따른 서버가 이미지로부터 텍스트 영역들을 분리하는 동작을 설명하기 위한 도면이다.
도 9에서 설명하는 세퍼레이터(900)는, 도 6의 제2 세퍼레이터(620)에 대응될 수 있다.
일 실시예에서, 서버(2000)는 세퍼레이터(900)를 이용하여 입력 이미지(902) 내에서 복수의 텍스트 영역들을 분리할 수 있다.
예를 들어, 서버(2000)는 입력 이미지(902)로부터 제1 텍스트 영역(910)을 획득할 수 있다. 제1 텍스트 영역(910)은 제1 텍스트 및 제2 텍스트를 포함할 수 있다. 여기서, 제1 텍스트는 하나의 문자 그룹(예를 들어, 단어, 문장, 말뭉치 등)에 대응하는 텍스트를 말하며, 제2 텍스트는 입력 이미지(902)로부터 제1 텍스트 영역을 분리함에 따라 함께 분리된 텍스트를 말한다. 제2 텍스트는 제1 텍스트와 오버랩 되어 있을 수 있다. 따라서, 제2 텍스트는 제1 텍스트를 복원하는동안 제1 텍스트에 대하여 노이즈로 간주된다. 예를 들어, 제2 텍스트의 적어도 일부가 제1 텍스트에 오버랩 되어 있을 수 있다. 서버(2000)는 제1 텍스트 영역(910)에 있는 제1 텍스트를 인식하기 위해, 제1 텍스트에 대응되는 픽셀들만을 추출하고, 제1 텍스트가 제2 텍스트와 오버랩 됨으로써 손실된 픽셀을 복원할 수 있다.
서버(2000)는 입력 이미지(902) 내에 포함되는 모든 텍스트에 대하여 각각, 텍스트 영역들을 분리한다. 예를 들어, 서버(2000)는 제2 텍스트 영역(912)을 획득할 수 있다. 제2 텍스트 영역(912)에는 온전한 하나의 문자 그룹에 대응되는 제1 텍스트가 포함되고, 제2 텍스트 영역(912) 내의 제1 텍스트에 대하여 노이즈로 간주되는 제2 텍스트가 포함될 수 있다. 또한, 서버(2000)는 제3 텍스트 영역(914)을 획득할 수 있다. 제3 텍스트 영역(914)에는 제1 텍스트 및 제2 텍스트가 포함될 수 있다.
일 실시예에 따른 서버(2000)는 세퍼레이터(900)를 이용하여 복수의 텍스트 영역들을 분리할 때, 텍스트 영역에 포함되는 제1 텍스트 및 제2 텍스트를 구분할 수 있다. 예를 들어, 세퍼레이터(900)는 제1 텍스트와 제2 텍스트에 서로 다른 레이블을 부여하도록 훈련된 인공지능 모델일 수 있다.
일 실시예에서, 세퍼레이터(900)는 텍스트의 언어를 구별하도록 훈련된 것일 수 있다. 예를 들어, 세퍼레이터(900)는 텍스트의 언어(예를 들어, 영어, 한국어 등)를 구별하여, 서로 다른 언어들을 기준으로 텍스트 영역을 분리할 수 있다. 일부 실시예에서, 서버(2000)는 언어 종류를 지정하는 사용자 입력을 획득할 수 있다. 이 경우, 세퍼레이터(900)는 사용자 입력을 추가로 입력 데이터로 활용할 수 있다.
일 실시예에서, 세퍼레이터(900)는 텍스트의 폰트를 구별하도록 훈련된 것일 수 있다. 예를 들어, 세퍼레이터(900)는 텍스트의 폰트를 구별하여, 서로 다른 폰트들을 기준으로 텍스트 영역을 분리할 수 있다.
일 실시예에서, 세퍼레이터(900)는 텍스트의 말뭉치를 구별하도록 훈련된 것일 수 있다. 예를 들어, 세퍼레이터(900)는 텍스트의 말뭉치(예를 들어, 중량(g))를 구별하여, 말뭉치를 기준으로 텍스트 영역을 분리할 수 있다. 이 경우, 말뭉치에 포함되는 문자들이 서로 다른 언어의 문자들(예를 들어, 한글과 알파벳)이거나, 서로 다른 폰트를 갖더라도 하나의 말뭉치로 구별될 수 있다.
서버(2000)는, 세퍼레이터(900)를 통해 텍스트의 언어, 글씨체, 말뭉치(corpus) 및 로고 등을 구별하기 위해서, 하나의 문자 그룹 내 문자들에 대응하는 픽셀들에 레이블이 주석된 훈련 데이터를 이용하여 세퍼레이터(900)를 훈련시킬 수 있다.
일 실시예에 따른 서버(2000)는, 이미지 내에서 복수의 텍스트 영역들을 획득하고, 각각의 텍스트 영역에 대하여 각각의 텍스트 영역에 포함되는 제1 텍스트를 추출 및/또는 복원할 수 있다.
도 10은 본 개시의 일 실시예에 따른 서버가 텍스트 영역 내에서 제1 텍스트를 추출하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)가 세퍼레이터를 이용하여 텍스트를 분리하면, 텍스트 영역이 획득된다. 서버(2000)는 단어, 문장, 말뭉치 등을 기준으로 문자들을 포함하는 문자 그룹을 결정하여 텍스트 영역을 결정한다. 서버(2000)는 익스트랙터(1000)를 이용하여 텍스트 영역 내에서 텍스트에 대응하는 픽셀들을 추출할 수 있다. 도 10에서는, 설명의 편의를 위해, 텍스트 영역의 문자 그룹 내 문자들 전체를 표시하지 않고, 하나의 문자만을 도시하였다.
예를 들어, 영어 텍스트를 포함하는 제1 텍스트 영역(1010)에 제1 텍스트(1002) 및 제2 텍스트(1004)가 포함될 수 있다. 여기서, 제1 텍스트(1002)는 알파벳 문자 'A'이고, 제1 텍스트(1002)에 오버랩 된 제2 텍스트(1004)는 알파벳 문자 'L'일 수 있다. 제1 텍스트 영역(1010)은 제1 텍스트(1002) 및 제2 텍스트(1004)의 정보(1020)가 포함되어 있을 수 있다. 예를 들어, 제1 텍스트(1002)의 문자와 제2 텍스트(1004)의 문자에 각각 서로 다른 레이블이 부여되어 있을 수 있다.
서버(2000)는 제1 텍스트 영역(1010) 및 제1 텍스트 영역(1010)에 포함되는 제1 텍스트(1002) 및 제2 텍스트(1004)의 정보(1020)에 기초하여, 제1 텍스트 영역(1010) 내 제1 텍스트(1002)의 일부 영역이 손상된 이미지(1030)를 획득할 수 있다.
같은 방식으로, 서버(2000)는 한국어 텍스트를 포함하는 제2 텍스트 영역(1012)을 획득할 수 있다. 제2 텍스트 영역(1012)에는 제1 텍스트(1002) 및 제2 텍스트(1004)가 포함될 수 있다. 또한, 서버(2000)는 제2 텍스트 영역(1012)에 포함되는 제1 텍스트(1002) 및 제2 텍스트(1004)의 정보(1022)를 획득할 수 있다. 서버(2000)는 제2 텍스트 영역(1012) 및/또는 제2 텍스트 영역(1012)에 포함되는 제1 텍스트(1002) 및 제2 텍스트(1004)의 정보(1022)에 기초하여, 제2 텍스트 영역(1012) 내 제1 텍스트(1002)의 일부 영역이 손상된 이미지(1032)를 획득할 수 있다.
서버(2000)는 텍스트 영역 내 제1 텍스트(1002)의 일부 영역이 손상된 이미지를 인페인팅할 수 있다. 이를 도 11a 및 도 11b를 참조하여 더 설명한다.
도 11a는 본 개시의 일 실시예에 따른 서버가 손상된 텍스트를 포함하는 이미지를 인페인팅하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 인페인터(1100)를 이용하여 이미지 내 손상된 픽셀을 복원할 수 있다.
인페인터(1100)는 제1 텍스트가 제2 텍스트와 오버랩 되었던 영역을 인페인팅함으로써 제1 텍스트를 복원할 수 있다. 예를 들어, 도 10에서 설명한 예시와 같이, 제1 텍스트는 알파벳 문자 'A'이고, 제1 텍스트에 오버랩 된 제2 텍스트는 알파벳 문자 'L'일 수 있다. 이 경우, 인페인터(1100)는 제1 텍스트의 일부 영역이 손상된 이미지(1110)를 입력 받아, 손상된 영역이 복원된, 인페인팅 된 이미지(1120)를 출력할 수 있다.
같은 방식으로, 서버(2000)는 한국어 텍스트를 복원할 수 있다. 서버(2000)는 제1 텍스트의 한글 문자의 일부 영역이 손상된 이미지(1112)를 인페인터(1100)에 입력하고, 손상된 영역이 복원된, 인페인팅 된 이미지(1122)를 획득할 수 있다.
일 실시예에서, 서버(2000)는 인페인터(1100)를 이용하여 손상된 영역을 포함하는 이미지를 복원하기 이전에, 전처리를 수행할 수 있다. 예를 들어, 서버(2000)는 손상된 영역을 포함하는 이미지를 그레이스케일로 변환하여 컬러 채널 수를 1개로 감소시킬 수 있다. 이에 따라, 컬러 채널 수를 감소시킴에 따라 연산의 복잡성을 감소시킬 수 있다.
인페인터(1100)는 알려진 다양한 심층 신경망 아키텍처 및 알고리즘을 이용하거나, 알려진 다양한 심층 신경망 아키텍처 및 알고리즘의 변형을 통해 구현될 수 있다. 일 실시예에 따른 서버(2000)는 인페인터(1100)를 훈련시키기 위한 훈련 데이터를 생성하고, 훈련 데이터셋을 이용하여 인페인터(1100)를 훈련시킬 수 있다. 이를 도 11b을 참조하여 더 설명한다.
도 11b는 본 개시의 일 실시예에 따른 서버가 인페인터의 훈련 데이터를 생성하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 인페인터(1100)를 훈련시키기 위한 훈련 데이터(1150)를 생성할 수 있다. 서버(2000)는 정답 데이터(1130) 및 노이즈 데이터(1140)에 기초하여 훈련 데이터(1150)를 생성할 수 있다.
서버(2000)는 정답 데이터(1130)에 노이즈 데이터(1140)를 오버랩시킴으로써 훈련 데이터(1150)를 생성할 수 있다. 예를 들어, 서버(2000)는 정답 데이터(1130)로부터 정답 데이터(1130)에 오버랩 된 노이즈 데이터(1140)의 픽셀들을 제거함으로써, 정답 데이터(1130)가 손상된, 훈련 데이터(1150)를 생성할 수 있다. 여기서, 정답 데이터(1130)는 전술한 실시예의 제1 텍스트에 대응되며, 노이즈 데이터(1140)는 제2 텍스트에 대응된다.
일 실시예에서, 서버(2000)가 훈련 데이터(1150)를 생성할 때, 서버(2000)는 텍스트의 언어, 폰트, 말뭉치 중 적어도 하나에 기초하여 훈련 데이터(1150)를 생성할 수 있다. 서버(2000)는 오버랩 가능성이 높은 텍스트를 정답 데이터(1130) 및 노이즈 데이터(1140)로 사용하여 훈련 데이터(1150)를 생성할 수 있다. 오버랩 가능성이 높은 텍스트는 텍스트의 연관도에 기초하여 결정될 수 있다. 예를 들어, 오버랩 가능성이 높은 텍스트는 텍스트의 언어, 폰트, 말뭉치 중 적어도 하나에 기초하여 기 설정된 것일 수 있다. 예를 들어, 오버랩 가능성이 높은 텍스트는 사용자 입력에 의해 오버랩 가능성이 높은 텍스트로 설정된 것일 수 있다. 구체적인 예를 들면, A 마트에서 채끝 등심(SIRLOIN) 상품을 판매하고, 상품 라벨에 상호 'A 마트'와 상품명 'SIRLOIN'이 오버랩 되는 경우가 있으면, 'SIRLOIN'과 'A-MART'가 오버랩 가능성이 높은 텍스트로 설정될 수 있다. 도 11b에서는 'SIRLOIN'을 정답 데이터(1130), 'A-MART'를 노이즈 데이터(1140)로 하여 훈련 데이터(1150)를 생성하는 예시를 도시하였으나, 'SIRLOIN'을 노이즈 데이터(1140), 'A-MART'를 정답 데이터(1130)로 설정하여 훈련 데이터(1150)가 생성될 수도 있다. 같은 방식으로, 서버(2000)는 텍스트의 연관도에 기초하여 설정된, 한국어 텍스트의 정답 데이터(1130)와 노이즈 데이터(1140)를 이용하여 훈련 데이터(1150)를 생성할 수도 있다.
도 12는 본 개시의 일 실시예에 따른 텍스트 분리 네트워크를 설명하기 위한 도면이다.
일 실시예에서, 텍스트 분리 네트워크는 제1 텍스트 분리 네트워크(1200)와 제2 텍스트 분리 네트워크(1202)로 구별될 수 있다.
제1 텍스트 분리 네트워크(1200)는 세퍼레이터(1210), 익스트랙터(1220) 및 인페인터(1230)를 포함할 수 있다. 제1 텍스트 분리 네트워크(1200)에 포함되는 세퍼레이터(1210), 익스트랙터(1220) 및 인페인터(1230)에 관해서는, 이전의 도면들에 대한 설명에서 기술하였으므로 반복되는 설명은 생략한다.
제2 텍스트 분리 네트워크(1202)는 세퍼레이터(1210) 및 익스트랙터(1220)만을 포함할 수 있다. 제2 텍스트 분리 네트워크(1200)에 포함되는 세퍼레이터(1210) 및 익스트랙터(1220)는 제1 텍스트 분리 네트워크(1200)의 세퍼레이터(1210) 및 익스트랙터(1220)와 동일한 기능을 수행한다. 제2 텍스트 분리 네트워크(1202)는 인페인터(1230)를 포함하지 않으므로, 제1 텍스트 분리 네트워크(1200)에 비해 텍스트 분리 연산의 연산량이 상대적으로 적다. 즉, 제2 텍스트 분리 네트워크(1202)는 제1 텍스트 분리 네트워크의 라이트(lite) 버전일 수 있다.
서버(2000)는 제1 텍스트 분리 네트워크(1200) 또는 제2 텍스트 분리 네트워크(1202)를 선택적으로 이용할 수 있다.
일 실시예에서, 서버(2000)는 제2 텍스트 분리 네트워크(1202)를 우선적으로 사용하고, 제1 텍스트 분리 네트워크(1200)를 후순위로 사용할 수 있다. 서버(2000)는 제2 텍스트 분리 네트워크(1202)를 이용하여 분리된 텍스트를 포함하는 이미지를 획득할 수 있다. 서버(2000)는 광학 문자 인식(Optical character recognition; OCR) 모델을 이용하여, 이미지에 포함되는 텍스트(예를 들어, 일반 문자, 특수 문자(special character) 및 기호(symbol) 등)를 인식할 수 있다. 서버(2000)는 OCR 인식 결과 인식 신뢰도가 기 설정된 값 이상인지 여부에 기초하여 인식 결과의 유효성을 판단할 수 있다. 서버(2000)는 텍스트 인식 결과가 유효하지 않다고 판단되면, 보다 정밀한 텍스트 분리 작업 및 텍스트 인식을 다시 수행하기 위해, 인페인터(1230)를 더 포함하는 제1 텍스트 분리 네트워크(1200)를 이용할 수 있다.
일 실시예에서, 서버(2000)는 보다 빠른 연산 결과 출력을 위해, 제1 텍스트 네트워크(1200) 대신 제2 텍스트 분리 네트워크(1202)를 이용하여 텍스트 분리를 수행할 수 있다. 이 경우, 서버(2000)는 인페인팅 되지 않은 텍스트의 이미지를 사용자에게 제공하거나, 인페인팅 되지 않은 텍스트의 이미지에 기초하여 텍스트를 인식한 결과를 사용자에게 제공할 수 있다.
일 실시예에서, 서버(2000)는 사용자 입력에 기초하여 제1 텍스트 분리 네트워크(1200)를 이용할 지 또는 제2 텍스트 분리 네트워크(1202)를 이용할 지 여부를 결정할 수 있다. 예를 들어, 사용자가 데이터를 적게 사용하기 위해 제2 텍스트 분리 네트워크(1202)를 이용할 것을 선택할 수 있다.
일 실시예에서, 서버(2000)는 사용자 정보에 기초하여 제1 텍스트 분리 네트워크(1200)를 이용할 지 또는 제2 텍스트 분리 네트워크(1202)를 이용할 지 여부를 결정할 수 있다. 예를 들어, 서버(2000)는 무료 사용자에게 체험용 버전으로 제2 텍스트 분리 네트워크(1202)를 제공할 수 있다.
일 실시예에서, 텍스트 분리 및 인식 작업은 사용자의 전자 장치(예를 들어, 스마트폰)에 의해서 수행될 수도 있다. 사용자의 전자 장치는 서버(2000)에 비해 컴퓨팅 성능이 상대적으로 낮기 때문에, 사용자의 전자 장치는 제2 텍스트 분리 네트워크(1202)를 이용하여 텍스트 분리 및 인식 작업을 수행할 수 있다. 예를 들어, 사용자가 스마트폰을 이용하여 텍스트를 포함하는 라벨 등을 촬영하면, 스마트폰은 제2 텍스트 분리 네트워크(1202)를 이용하여 오버랩 된 텍스트를 분리할 수 있다. 스마트폰은 텍스트가 분리되면 OCR을 이용하여 분리된 텍스트를 인식할 수 있다.
도 13a는 본 개시의 일 실시예에 따른 서버가 가전 장치인 냉장고와 연계하여 동작하는 것을 설명하기 위한 도면이다.
도 13a를 참조하면, 서버(2000)는 사용자의 전자 장치(3000) 및 냉장고(4000)와 데이터 통신을 수행할 수 있다.
일 실시예에서, 사용자는 전자 장치(3000)를 이용하여 상품 라벨을 촬영할 수 있다. 도 13a 내지 도 13c를 설명함에 있어서, 사용자가 촬영하는 상품 라벨이 육류 상품의 라벨인 것을 예시로 설명할 것이나, 상품 종류는 이에 한정되는 것은 아니다. 예를 들어, 상품은 식품일 수 있다. 서버(2000)는 사용자의 전자 장치(3000)로부터 상품 라벨의 이미지를 수신할 수 있다. 이 경우, 상품 라벨의 이미지에는 오버랩 된 텍스트가 있을 수 있다.
서버(2000)는 이미지 내 오버랩 된 텍스트들을 분리하고, 분리된 텍스트를 인식하여 상품과 관련된 정보를 생성할 수 있다. 예를 들어, 서버(2000)는 육류 상품과 관련된 정보로, 상품명, 중량, 가격, 바코드, 상품 식별 번호, 제조 일자, 제조사, 판매사, 유통기한 등의 정보를 생성할 수 있다. 서버(2000)는 상품과 관련된 정보를 사용자의 전자 장치(3000) 및/또는 냉장고(4000)로 전송할 수 있다.
서버(2000)는 상품과 관련된 정보에 기초하여 냉장고(4000)를 제어할 수 있다. 예를 들어, 서버(2000)는 냉장고(4000) 내에 고기가 보관될 위치를 입력 받거나 고기가 보관될 위치를 결정(예를 들어, 냉장고(4000) 내 빈 공간으로 결정)할 수 있다. 서버(2000)는 결정된 보관 위치에 최적의 온도 등이 설정되도록하는, 고기 보관 모드가 냉장고(4000)에서 실행되도록 할 수 있다.
도 13b는 서버가 가전 장치인 냉장고와 연계하여 동작하는 것을 더 설명하기 위한 도면이다.
일 실시예에서, 사용자는 전자 장치(3000)를 이용하여 육류 상품(1301)을 촬영하고 육류 상품(1301)의 라벨 이미지를 획득할 수 있다. 서버(2000)는 전자 장치(3000)로부터 육류 상품(1301)의 라벨 이미지를 획득할 수 있다. 서버(2000)는 육류 상품(1301)의 라벨 이미지에 대한 텍스트 분리 및 텍스트 인식을 수행하여 육류 상품(1301)과 관련된 정보를 전자 장치(3000)로 제공할 수 있다.
일 실시예에서, 사용자의 전자 장치(3000)는 홈 내 여러 가전들을 원격으로 관리할 수 있는 애플리케이션을 제공할 수 있다. 애플리케이션은 예를 들어, 냉장고(4000)를 관리/제어할 수 있는 애플리케이션일 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)에 설치된 애플리케이션의 제1 화면(1310)을 참조하면, 애플리케이션은 상품 라벨 인식을 위한 인터페이스를 포함할 수 있다. 예를 들어, 제1 화면(1310)에는 육류 라벨 스캔 버튼(1312)이 포함될 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 사용자가 육류 라벨 스캔 버튼을 선택함에 따라, 상품 라벨 인식을 수행할 수 있도록 하는 제2 화면(1320)을 표시할 수 있다. 예를 들어, 전자 장치(3000)는 제2 화면(1320)에 상품 라벨이 포함되도록 가이드하는 사각 박스(1322)(다만, 사각형에 한정되지 않으며, 원형 등 유사한 기능을 할 수 있는 다른 형태를 포함함)를 표시하고, '육류 라벨을 촬영하세요' 등의 가이드를 표시할 수 있다. 일부 실시예에서, 전자 장치(3000)는 제2 화면(1320)에 표시되는 이미지로부터 객체가 인식되지 않는 경우, '카메라를 통해 상품을 비춰 주세요' 등의 가이드를 표시할 수 있다. 전자 장치(3000)는 카메라로부터 획득되는 프리뷰 이미지를 화면에 표시할 수 있다. 사용자는 제2 화면(1320)을 보면서, 상품의 라벨이 사각 박스(1322) 이미지 내에 완전히 포함되도록 카메라의 시야를 조정할 수 있다.
전자 장치(3000)는 서버(2000)로 상품 라벨 이미지를 전송할 수 있다. 예를 들어, 전자 장치(3000)의 사용자가 애플리케이션을 통해서 육류 라벨 이미지를 서버(2000)로 전송할 수 있다. 전자 장치(3000)는, 상품 라벨 이미지에 기초하여 서버(2000)에서 생성된 상품(예: 육류 상품(1301))과 관련된 정보를 수신할 수 있다. 전자 장치(3000)는, 서버(2000)로부터 수신된 상품과 관련된 정보를 제3 화면(1330)에 표시할 수 있다. 예를 들어, 전자 장치(3000)는 육류 종류, 원산지, 부위, 중량, 개체 이력 번호 등 육류 상품(1301)을 나타내는 정보(1332)를 표시할 수 있다. 예를 들어, 전자 장치(3000)는 육류 보관하기 등, 가전 장치의 제어와 관련된 액션 정보(1334)를 표시할 수 있다. 가전 장치는 예를 들어, 냉장고(4000)일 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 상품과 관련된 가전 장치의 액션 정보(1334)를 나타내는, 제4 화면(1340)을 표시할 수 있다. 예를 들어, 사용자가 냉장고(4000)에 육류를 보관하기 위해 제3 화면(1330)에서 '육류 보관하기'의 액션을 선택하는 경우, 전자 장치(3000)는 육류 보관과 관련된 항목들을 포함하는 제4 화면(1340)을 표시할 수 있다. 제4 화면(1340)에는 예를 들어, 육류 사진, 상품명, 입고일, 보관 위치 등이 표시될 수 있으나, 이에 한정되는 것은 아니다. 또한, 제4 화면(1340)은 전자 장치(3000) 또는 서버(2000)가 냉장고(4000)를 제어하기 위한 인터페이스를 포함할 수 있다. 예를 들어, 전자 장치(3000)는 제4 화면(1340)에 냉장고(4000)를 제어하기 위한 버튼(1342)(예: '냉장고에 보관 시작')을 표시할 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 사용자가 냉장고(4000)를 제어하기 위한 버튼(1342)을 선택하면, 사용자에게 냉장고(4000)의 조작과 관련된 가이드(1352)를 제공할 수 있다. 예를 들어, 전자 장치(3000)는 제5 화면(1350)에서, 사용자가 냉장고(4000)에 육류를 보관할 수 있도록 하는 가이드(1352)(예: '냉장고 멀티팬트리에서 육류 보관 모드를 시작했습니다. 고기를 넣어주세요')를 표시할 수 있다.
전자 장치(3000)는 냉장고(4000)가 멀티팬트리 칸을 육류 보관 모드로 동작하도록 하기 위해, 냉장고(4000)에 대한 제어 명령을 전송할 수 있다. 전자 장치(3000)는 냉장고(4000)에 대한 제어 명령을 서버(2000)를 통해 냉장고(4000)로 전송할 수도 있고, 냉장고(4000)로 직접 전송할 수 있다.
도 13c는 서버와 연계하여 동작하는 가전 장치의 동작을 설명하기 위한 도면이다.
일 실시예에서, 서버(2000)는 도 13a 및 도 13b에서 전술한 것과 같이 냉장고(4000)와 연계하여 동작할 수 있다. 구체적으로, 서버(2000)는 상품과 관련된 정보를 냉장고(4000)로 전송할 수 있다. 이 경우, 상품과 관련된 정보가 냉장고(4000)의 디스플레이(4910)에 표시될 수 있다.
예를 들어, 전술한 예시와 같이 상품 라벨이 육류 상품 라벨인 경우, 냉장고(4000)의 디스플레이(4910)에는 육류 종류, 원산지, 부위, 중량, 개체 이력 번호 등 육류 상품을 나타내는 정보가 표시될 수 있다.
예를 들어, 인식된 육류 상품 라벨에 대응하는 육류를 사용자가 냉장고에 보관하는 경우, 냉장고(4000)의 디스플레이(4910)에는 육류의 보관 위치, 보관 기간, 보관 온도, 동작 모드 등, 육류 상품과 관련된 정보가 표시될 수 있다. 또는, 냉장고(4000)의 디스플레이(4910)에는 육류 상품의 레시피를 나타내는 텍스트, 이미지 및 동영상, 육류 요리 관련 식재료의 추천, 식재료 구매 링크 제공 등, 상품과 관련된 다양한 정보가 표시될 수 있다.
도 14a는 본 개시의 일 실시예에 따른 서버가 가전 장치인 오븐과 연계하여 동작하는 것을 설명하기 위한 도면이다.
도 14a를 참조하면, 서버(2000)는 사용자의 전자 장치(3000) 및 오븐(5000)과 데이터 통신을 수행할 수 있다.
일 실시예에서, 사용자는 전자 장치(3000)를 이용하여 상품 라벨을 촬영할 수 있다. 도 14a 내지 도 14b를 설명함에 있어서, 사용자가 촬영하는 상품 라벨이 육류 상품의 라벨인 것을 예시로 설명할 것이나, 상품 종류는 이에 한정되는 것은 아니다. 예를 들어, 상품은 식품일 수 있다. 서버(2000)는 사용자의 전자 장치(3000)로부터 상품 라벨의 이미지를 수신할 수 있다. 이 경우, 상품 라벨의 이미지에는 오버랩 된 텍스트가 있을 수 있다.
서버(2000)는 이미지 내 오버랩 된 텍스트들을 분리하고, 분리된 텍스트를 인식하여 상품과 관련된 정보를 생성할 수 있다. 예를 들어, 서버(2000)는 육류 상품과 관련된 정보로, 상품명, 중량, 가격, 바코드, 상품 식별 번호, 제조 일자, 제조사, 판매사, 유통기한 등의 정보를 생성할 수 있다. 서버(2000)는 상품과 관련된 정보를 사용자의 전자 장치(3000) 및/또는 오븐(5000)으로 전송할 수 있다.
서버(2000)는 상품과 관련된 정보에 기초하여 오븐(5000)을 제어할 수 있다. 예를 들어, 서버(2000)는 스테이크 조리를 위한 설정인 온도, 시간, 동작 모드(예를 들어, 예열 모드, 컨벡션 모드 등)를 결정할 수 있다. 서버(2000)는 결정된 오븐의 제어 동작과 관련된 설정들을 오븐(5000)으로 전송하여, 스테이크 조리를 위한 설정들이 오븐(5000)에서 자동으로 적용되도록 할 수 있다.
도 14b는 서버가 가전 장치인 오븐과 연계하여 동작하는 것을 더 설명하기 위한 도면이다.
일 실시예에서, 사용자는 전자 장치(3000)를 이용하여 육류 상품(1401)을 촬영하고 육류의 상품 라벨 이미지를 획득할 수 있다. 서버(2000)는 전자 장치(3000)로부터 상품 라벨의 이미지를 획득하고, 텍스트 분리 및 인식을 수행하여 상품과 관련된 정보를 전자 장치(3000)로 제공할 수 있다.
일 실시예에서, 사용자의 전자 장치(3000)는 애플리케이션은 홈 내 여러 가전들을 원격으로 관리할 수 있는 애플리케이션을 제공할 수 있다. 애플리케이션은 예를 들어, 오븐(5000)을 관리/제어할 수 있는 애플리케이션일 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)에 설치된 애플리케이션의 제1 화면(1410)을 참조하면, 애플리케이션은 상품 라벨 인식을 위한 인터페이스를 포함할 수 있다. 예를 들어, 제1 화면(1410)에는 육류 라벨 스캔 버튼(1412)이 포함될 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 사용자가 육류 라벨 스캔 버튼(1412)을 선택함에 따라, 상품 라벨 인식을 수행할 수 있도록 하는 제2 화면(1420)을 표시할 수 있다. 예를 들어, 전자 장치(3000)는 제2 화면(1420)에 상품의 라벨이 포함되도록 가이드하는 사각 박스(1422)(다만, 사각형에 한정되지 않으며, 원형 등 유사한 기능을 할 수 있는 다른 형태를 포함함)를 표시하고, '육류 라벨을 촬영하세요' 등의 가이드를 표시할 수 있다. 일 실시예에서, 전자 장치(3000)는 제2 화면(1420)에 표시되는 이미지로부터 객체가 인식되지 않는 경우, '카메라를 통해 상품을 비춰 주세요' 등의 가이드를 표시할 수 있다. 전자 장치(3000)는 카메라로부터 획득되는 프리뷰 이미지를 제2 화면(1420)에 표시할 수 있다. 사용자는 제2 화면(1420)을 보면서, 상품의 라벨이 사각 박스(1422) 이미지 내에 완전히 포함되도록 카메라의 시야를 조정할 수 있다.
전자 장치(3000)는 서버(2000)로 상품 라벨 이미지를 전송하고, 서버(2000)로부터 상품과 관련된 정보를 제3 화면(1430)에 표시할 수 있다. 예를 들어, 전자 장치(3000)는 육류 종류, 원산지, 부위, 중량, 개체 이력 번호 등 육류 상품(1401)을 나타내는 정보(1432)를 표시할 수 있다. 예를 들어, 전자 장치(3000)는 육류 해동하기, 요리하기, 레시피 등 가전 장치를 제어와 관련된 액션 정보(1434)를 표시할 수 있다. 가전 장치는 예를 들어, 오븐(5000)일 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 상품과 관련된 가전 장치의 액션 정보(1434)를 나타내는, 제4 화면(1440)을 표시할 수 있다. 예를 들어, 사용자가 육류로 스테이크 요리를 하기 위해 제3 화면(1430)에서 '요리하기'의 액션을 선택하는 경우, 전자 장치(3000)는 스테이크 조리와 관련된 정보를 포함하는 제4 화면(1440)을 표시할 수 있다. 제4 화면(1440)에는 예를 들어, 레시피, 요리를 위한 설정 및 준비사항 등이 표시될 수 있으나, 이에 한정되는 것은 아니다. 또한, 제4 화면(1440)은 전자 장치(3000) 또는 서버(2000)가 오븐(5000)을 제어하기 위한 인터페이스를 포함할 수 있다. 예를 들어, 전자 장치(3000)는 제4 화면(1440)에 오븐(5000)을 제어하기 위한 버튼(1442) '오븐에서 조리 시작'을 표시할 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(3000)는 사용자가 오븐(5000)을 제어하기 위한 버튼(1442)을 선택하면, 사용자에게 오븐(5000)의 조작과 관련된 가이드(1452)를 제공할 수 있다. 예를 들어, 전자 장치(3000)는 제5 화면(1450)에서, 사용자가 스테이크 조리를 할 수 있도록 하는 가이드(1452) '스테이크 조리를 위한 오븐 설정을 완료했습니다. 오븐에 고기를 넣어주세요'를 표시할 수 있다.
전자 장치(3000)는 오븐(5000)의 조리 동작 모드 설정을 위해, 오븐(5000)에 대한 제어 명령을 서버(2000) 또는 오븐(5000)으로 전송할 수 있다.
도 15는 일 실시예에 따른 서버가 가전 장치와 연계하여 동작하는 것을 설명하기 위한 흐름도이다.
도 15를 참조하면, 일 실시예에 따른 서버(2000)는 전자 장치(3000) 및 가전 장치(1500)와 데이터 통신을 수행할 수 있다. 전자 장치(3000)는 전술한 예시인 스마트 폰을 포함할 수 있으나, 이에 한정되는 것은 아니다. 가전 장치(1500)는 전술한 예시인, 냉장고(4000) 및 오븐(5000)을 포함할 수 있으나, 이에 한정되는 것은 아니다.
단계 S1510에서, 전자 장치(3000)는 상품 라벨 이미지를 촬영할 수 있다. 전자 장치(3000)는 사용자의 카메라 조작에 의해 상품 라벨 이미지를 촬영할 수 있다. 이 경우, 상품 라벨 이미지에는 오버랩 된 텍스트가 포함될 수 있다.
단계 S1515에서, 전자 장치(3000)는 상품 라벨 이미지를 서버(2000)로 전송할 수 있다.
단계 S1520에서, 서버(2000)는 상품 라벨 이미지로부터 텍스트를 분리할 수 있다. 서버(2000)는 텍스트 분리 네트워크를 이용하여, 상품 라벨 이미지 내에 오버랩 된 텍스트를 분리 및 추출할 수 있다. 서버(2000)는 세퍼레이터, 익스트랙터 및 인페인터를 포함하는 제1 텍스트 분리 네트워크를 이용하여 텍스트를 분리할 수 있다. 서버(2000)는 세퍼레이터 및 익스트랙터를 포함하는 제2 텍스트 분리 네트워크를 이용하여 텍스트를 분리할 수 있다. 세퍼레이터는 컬러 클러스터링 알고리즘을 이용하는 제1 세퍼레이터 및 인공지능 모델인 텍스트 분리 모델을 포함하는 제2 세퍼레이터를 포함할 수 있다. 서버(2000)는 분리된 텍스트를 인식할 수 있다. 서버(2000)는 인식된 텍스트에 기초하여 상품과 관련된 정보를 생성할 수 있다. 상품과 관련된 정보는 예를 들어, 상품명, 중량, 가격, 바코드, 상품 식별 번호, 제조 일자, 제조사, 판매사, 유통기한 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
단계 S1525에서, 서버(2000)는 상품과 관련된 정보를 전자 장치(3000)로 전송할 수 있다.
단계 S1530에서, 전자 장치(3000)는 상품과 관련된 정보를 표시할 수 있다. 전자 장치(3000)가 상품과 관련된 정보를 표시하는 것은 도 13b 및 도 14b에서 기술하였으므로, 반복되는 설명은 생략한다.
단계 S1532, S1534, S1536에서, 전자 장치(3000) 및/또는 서버(2000)는 가전 장치(1500)를 제어할 수 있다. 예를 들어, 전자 장치(3000)는 가전 제어 요청을 서버(2000)로 전송하고(S1532), 서버(2000)가 가전 장치(1500)로 가전 제어 명령을 전송할 수 있다(S1534). 또는, 전자 장치(2000)가 가전 장치(1500)로 가전 제어 명령을 전송할 수도 있다(S1536).
단계 S1540에서, 가전 장치(1500)는 제어 명령에 대응되는 동작을 수행할 수 있다. 예를 들어, 가전 장치(1500)가 냉장고(4000)인 경우, 냉장고(4000)의 동작 모드에 따라 온도를 설정하고, 보관 위치에 보관 상품에 관련된 정보를 저장할 수 있다. 예를 들어, 가전 장치(1500)가 오븐(5000)인 경우, 오븐(5000)의 동작 모드에 따라 온도 등 조리와 관련된 설정을 할 수 있다.
도 16은 본 개시의 일 실시예에 따른 서버의 블록도이다.
일 실시예에 따른 서버(2000)는 통신 인터페이스(2100), 메모리(2200) 및 프로세서(2300)를 포함할 수 있다.
통신 인터페이스(2100)는 통신 회로를 포함할 수 있다. 통신 인터페이스(2100)는 예를 들어, 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 블루투스(Bluetooth), 지그비(ZigBee), WFD(Wi-Fi Direct), 적외선 통신(IrDA, infrared Data Association), BLE (Bluetooth Low Energy), NFC(Near Field Communication), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Alliances, WiGig) 및 RF 통신을 포함하는 데이터 통신 방식 중 적어도 하나를 이용하여, 서버(2000)와 다른 디바이스들 간의 데이터 통신을 수행할 수 있는, 통신 회로를 포함할 수 있다.
통신 인터페이스(2100)는 서버(2000)의 동작을 수행하기 위한 데이터를 외부 전자 장치와 송수신할 수 있다. 예를 들어, 서버(2000)는 통신 인터페이스(2100)를 통해 오버랩 된 텍스트를 포함하는 이미지를 외부의 전자 장치(예를 들어, 사용자의 스마트폰 등)로부터 수신하고, 텍스트 분리 및 인식을 통해 생성된 상품과 관련된 정보를 외부의 전자 장치로 송신할 수 있다. 또한, 서버(2000)는 통신 인터페이스(2100)를 통해 가전 장치를 제어하기 위한 데이터를 가전 장치와 송수신할 수 있다.
메모리(2200)는 프로세서(2300)가 판독할 수 있는 명령어들, 데이터 구조, 및 프로그램 코드(program code)가 저장될 수 있다. 메모리(2200)는 하나 이상일 수 있다. 개시된 실시예들에서, 프로세서(2300)가 수행하는 동작들은 메모리(2200)에 저장된 프로그램의 명령어들 또는 코드들을 실행함으로써 구현될 수 있다.
메모리(2200)는 ROM(Read-only memory)(예를 들어, PROM(Programmable read-only memory), EPROM(Erasable programmable read-only memory), EEPROM(Electrically erasable programmable read-only memory)), 플래시 메모리(Flash memory)(예를 들어, 메모리 카드, SSD(Solid-state drive)) 및 아날로그 기록 타입(예를 들어, HDD(Hard disk drive), 자기테이프, 광학 디스크)와 같은 비휘발성 메모리 및, RAM(random-access memory)(예를 들어, DRAM(Dynamic random-access memory), SRAM(Static random-access memory))과 같은 휘발성 메모리를 포함할 수 있다.
메모리(2200)는 서버(2000)가 오버랩 된 텍스트를 분리 및 추출하기 위해 동작하도록 하는 하나 이상의 인스트럭션 및 프로그램을 저장할 수 있다. 예를 들어, 메모리(2200)에는 세퍼레이터(2100), 익스트랙터(2220) 및 인페인터(2230)가 저장될 수 있다. 이전의 도면들에서 전술한 것과 같이, 제1 텍스트 분리 네트워크는 세퍼레이터(2100), 익스트랙터(2200) 및 인페인터(2230)를 포함할 수 있고, 제2 텍스트 분리 네트워크는 세퍼레이터(2100) 및 익스트랙터(2200)를 포함할 수 있다. 세퍼레이터(2100)는 컬러 클러스터링 알고리즘을 이용하는 제1 세퍼레이터 및 인공지능 모델인 텍스트 분리 모델을 포함하는 제2 세퍼레이터를 포함할 수 있다.
프로세서(2300)는 서버(2000)의 전반적인 동작들을 제어할 수 있다. 예를 들어, 프로세서(2300)는 메모리(2200)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행함으로써, 서버(2000)가 오버랩 된 텍스트를 분리하고 인식하도록 하는 전반적인 동작들을 제어할 수 있다. 프로세서(2300)는 하나 이상일 수 있다.
하나 이상의 프로세서(2300)는 CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), 및 NPU (Neural Processing Unit) 중 적어도 하나를 포함할 수 있다. 하나 이상의 프로세서(2300)는, 하나 이상의 전자부품을 포함하는 집적된 시스템 온 칩(SoC) 형태로 구현될 수 있다. 하나 이상의 프로세서(2300) 각각은 별개의 하드웨어(H/W)로 구현될 수도 있다.
프로세서(2300)는 세퍼레이터(2210)를 이용하여, 입력 이미지 내에서 복수의 텍스트 영역들을 분리할 수 있다. 프로세서(2300)는 단어, 문장, 말뭉치 등을 기준으로 문자들을 포함하는 문자 그룹을 결정하여 텍스트 영역을 결정할 수 있다. 이 경우, 입력 이미지 내에는 오버랩 된 텍스트가 있을 수 있다. 예를 들어, 제1 텍스트 위에 제2 텍스트가 오버랩 되어 있을 수 있다. 프로세서(2300)는 입력 이미지 내에 포함되는 모든 텍스트에 대하여 각각 텍스트 영역들을 분리함으로써, 오버랩 된 텍스트 각각에 대응하는 텍스트 영역들을 획득할 수 있다. 세퍼레이터(2210)의 동작들과 관련된 설명은 전술한 도면들에서 이미 설명하였으므로, 간결함을 위해 반복되는 설명은 생략한다.
프로세서(2300)는 익스트랙터(2220)를 이용하여, 텍스트 영역 내에서 텍스트에 대응하는 픽셀들을 추출할 수 있다. 예를 들어, 프로세서(2300)는 제1 텍스트를 포함하는 제1 텍스트 영역에서, 제1 텍스트에 오버랩 된 제2 텍스트는 제외하고, 제1 텍스트에 대응하는 픽셀들만을 추출할 수 있다. 이 경우, 제1 텍스트 영역에서 제1 텍스트에 오버랩 되었던 제2 텍스트가 제거됨에 따라, 제1 텍스트의 일부 영역이 손상된 이미지가 획득될 수 있다. 익스트랙터(2220)의 동작들과 관련된 설명은 전술한 도면들에서 이미 설명하였으므로, 간결함을 위해 반복되는 설명은 생략한다.
프로세서(2300)는 인페인터(2230)를 이용하여 이미지 내 손상된 픽셀을 복원할 수 있다. 프로세서(2300)는 인페인터(2230)를 이용하여 제1 텍스트 영역에서 제1 텍스트가 제2 텍스트와 오버랩 되었던 영역을 인페인팅함으로써 제1 텍스트를 복원할 수 있다. 인페인터(2230)의 동작들과 관련된 설명은 전술한 도면들에서 이미 설명하였으므로, 간결함을 위해 반복되는 설명은 생략한다.
한편, 전술한 메모리(2200)에 저장되어 프로세서(2300)에 의해 실행되는 모듈들은, 설명의 편의를 위한 것이며 반드시 이에 한정되는 것은 아니다. 전술한 실시예들을 구현하기 위해 다른 모듈이 추가될 수 있으며, 하나의 모듈이 세부적인 기능들에 따라 구별되는 복수의 모듈들로 분할될 수 있고, 전술한 모듈들 중 일부의 모듈들이 합쳐져 하나의 모듈로 구현될 수도 있다. 예를 들어, 세퍼레이터(2210), 익스트랙터(2220) 및 인페인터(2230)가 하나로 합쳐져 제1 텍스트 분리 네트워크로 지칭될 수 있으며, 세퍼레이터(2210) 및 익스트랙터(2220)가 하나로 합쳐져 제2 텍스트 분리 네트워크로 지칭될 수도 있으나, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시예에 따른 방법에 의해 제1 동작, 제2 동작, 제3 동작이 수행될 때, 제1 동작, 제2 동작, 및 제3 동작 모두 제1 프로세서에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 제1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제3 동작은 제2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다. 여기서, 제2 프로세서의 예시인 인공지능 전용 프로세서는, 인공지능 모델의 훈련/추론을 위한 연산들이 수행될 수도 있다. 그러나, 본 개시의 실시예들이 이에 한정되는 것은 아니다.
본 개시에 따른 하나 이상의 프로세서(2300)는 싱글 코어 프로세서(single-core processor)로 구현될 수도 있고, 멀티 코어 프로세서(multi-core processor)로 구현될 수도 있다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 코어에 의해 수행될 수도 있고, 하나 이상의 프로세서에 포함된 복수의 코어에 의해 수행될 수도 있다.
도 17은 본 개시의 일 실시예에 따른 전자 장치의 블록도이다.
일 실시예에서, 전술한 서버(2000)의 동작들은 전자 장치(3000)에서 수행될 수도 있다.
일 실시예에 따른 전자 장치(3000)는 통신 인터페이스(3100), 디스플레이(3200), 카메라(3300), 메모리(3400) 및 프로세서(3500)를 포함할 수 있다. 전자 장치(3000)의 통신 인터페이스(3100), 메모리(3400) 및 프로세서(3500)는 도 16의 서버(2000)의 통신 인터페이스(2100), 메모리(2200) 및 프로세서(2300)에 각각 대응되므로, 반복되는 설명은 생략한다.
디스플레이(3200)는 전자 장치(3000)에서 처리되는 정보를 출력할 수 있다. 한편, 디스플레이(3200)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이는 액정 디스플레이(Liquid crystal display; LCD), 박막 트랜지스터 액정 디스플레이(Thin-film-transistor liquid crystal display; TFT LCD), 유기 발광 다이오드(Organic light-emitting diode; OLED), 플렉시블 디스플레이(Flexible display), 3차원 디스플레이(3D display), 마이크로 디스플레이(Micro display), 헤드 마운트 디스플레이(Head-mounted display; HMD) 중 적어도 하나를 포함할 수 있다. 전자 장치(3000)는 상품 라벨의 인식을 통해 획득된 상품과 관련된 정보를 디스플레이(3200)에 표시할 수 있다.
카메라(들)(3300)는 객체를 촬영하여 비디오 및/또는 이미지를 획득할 수 있다. 카메라(들)(3300)는 하나 이상일 수 있다. 카메라(들)(3300)는 예를 들어, RGB 카메라, 망원 카메라, 광각 카메라, 초광각 카메라 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 카메라(들)(3300)는 복수의 프레임들을 포함하는 비디오를 획득할 수 있다. 카메라(들)(3300)의 구체적인 종류 및 세부 기능은 통상의 기술자가 명확하게 추론할 수 있으므로, 설명을 생략한다.
도 17에는 도시 되지는 않았지만, 입출력 인터페이스를 더 포함할 수 있다. 입출력 인터페이스는 사용자의 입력을 수신하는 입력 인터페이스 및 디스플레이(3200)에서 출력되는 영상/동영상 신호 외 다른 신호를 출력하는 출력 인터페이스를 더 포함할 수 있다.
입력 인터페이스는, 사용자로부터의 입력을 수신하기 위한 것이다. 입력 인터페이스는, 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
출력 인터페이스는 스피커를 포함할 수 있다. 스피커는 통신 인터페이스(3100)로부터 수신되거나 메모리(3400)에 저장된 오디오 신호를 출력할 수 있다.
도 18은 본 개시의 일 실시예에 따른 냉장고의 블록도이다.
일 실시예에 따른 냉장고(4000)는 본체(4010), 저장실(4100), 도어(4200), 냉기 공급 장치(4300), 전력 모듈(4400), 프로세서(4500), 메모리(4600), 통신 모듈(4700), 입력 인터페이스(4800) 및 출력 인터페이스(4900)를 포함할 수 있다.
본체(4010)는 내상과, 내상의 외측에 배치되는 외상과, 내상과 외상의 사이에 마련되는 단열재를 포함할 수 있다.
내상은 저장실(4100)을 형성하는 케이스(case), 플레이트(plate), 패널(panel) 또는 라이너(liner) 중 적어도 하나를 포함할 수 있다. 내상은 하나의 몸체로 형성될 수도 있으며 또는 복수의 플레이트들이 조립되어 형성될 수 있다. 외상은 본체(4010)의 외관을 형성할 수 있으며, 내상과 외상의 사이에 단열재가 배치되도록 내상의 외측에 결합될 수 있다.
단열재는 저장실(4100) 내부의 온도가 저장실(4100) 외부 환경에 의해 영향을 받지 않고 설정된 적정 온도로 유지될 수 있도록 저장실(4100) 내부와 저장실(4100) 외부를 단열할 수 있다. 일 실시예에 따르면 단열재는 발포 단열재를 포함할 수 있다. 내상과 외상의 사이에 폴리우레탄과 발포제가 혼합된 우레탄폼을 주입 및 발포시킴으로써 발포 단열재를 성형할 수 있다.
일 실시예에 따르면 단열재는 발포 단열재 이외에 추가로 진공 단열재를 포함하거나, 단열재는 발포 단열재 대신 진공 단열재만으로 구성될 수도 있다. 진공 단열재는 심재와, 심재를 수용하고 내부를 진공 또는 진공에 가까운 압력으로 밀봉하는 외피재를 포함할 수 있다. 다만, 단열재는 상기한 발포 단열재 또는 진공 단열재에 한정되는 것은 아니고 단열을 위해 사용될 수 있는 다양한 소재를 포함할 수 있다.
저장실(4100)은 내상에 의해 한정되는 공간을 포함할 수 있다. 저장실(4100)은 저장실(4100)에 대응되는 공간을 한정하는 내상을 더 포함할 수 있다. 저장실(4100)에는 식품, 약품, 화장품 등 다양한 물품이 저장될 수 있으며, 저장실(4100)은 물품을 출납하기 위해 적어도 일측이 개방되도록 형성될 수 있다.
냉장고(4000)는 한 개 또는 그 이상의 저장실(4100)을 포함할 수 있다. 냉장고(4000)에 2 개 이상의 저장실(4100)이 형성될 때 각각의 저장실(4100)은 서로 다른 용도를 가질 수 있으며 서로 다른 온도로 유지될 수 있다. 이를 위해 각각의 저장실(4100)은 단열재를 포함하는 격벽에 의해 서로 구획될 수 있다.
저장실(4100)은 용도에 따라 적정한 온도 범위에서 유지되도록 마련될 수 있으며, 그 용도 및/또는 온도 범위에 따라 구분되는 냉장실(4120), 냉동실(4130) 또는 변온실(4140)을 포함할 수 있다. 냉장실(4120)은 물품을 냉장 보관하기에 적정한 온도로 유지될 수 있고, 냉동실(4130)은 물품을 냉동 보관하기에 적정한 온도로 유지될 수 있다. 냉장은 물품을 얼지 않는 한도에서 차갑게 냉각하는 것을 의미할 수 있으며, 일례로 냉장실(4120)은 섭씨 0도에서 섭씨 영상 7도 범위에서 유지될 수 있다. 냉동은 물품을 얼리거나 언 상태로 유지되도록 냉각하는 것을 의미할 수 있으며, 일례로 냉동실(4130)은 섭씨 영하 20도 내지 섭씨 영하 1도 범위에서 유지될 수 있다. 변온실(4140)은 사용자의 선택 또는 이와 무관하게 냉장실(4120) 또는 냉동실(4130) 중 어느 하나로 사용될 수 있다.
저장실(4100)은 냉장실(4120), 냉동실(4130) 및 변온실(4140) 등의 명칭 이외에도 야채실, 신선실, 쿨링실 및 제빙실 등 다양한 명칭으로 불릴 수 있으며, 이하에서 사용되는 냉장실(4120), 냉동실(4130) 및 변온실(4140) 등의 용어는 각각 대응되는 용도 및 온도 범위를 갖는 저장실(4100)을 포괄하는 의미로 이해되어야 할 것이다.
일 실시예에 따르면 냉장고(4000)는 저장실(4100)의 개방된 일측을 개폐하도록 구성되는 적어도 하나의 도어(4200)를 포함할 수 있다. 도어(4200)는 한 개 또는 그 이상의 저장실(4100) 각각을 개폐하도록 구비되거나, 도어(4200) 하나가 복수의 저장실(4100)을 개폐하도록 구비될 수 있다. 도어(4200)는 본체(4010)의 전면에 회전 또는 슬라이딩 가능하게 설치될 수 있다.
도어(4200)는 도어(4200)가 닫힐 시에 저장실(4100)을 밀폐하도록 구성될 수 있다. 도어(4200)는 도어(4200)가 닫힐 시에 저장실(4100)을 단열하도록 본체(4010)와 마찬가지로 단열재를 포함할 수 있다.
일 실시예에 따르면 도어(4200)는 도어(4200)의 전면을 형성하는 도어 외판과, 도어(4200)의 후면을 형성하고 저장실(4100)을 마주보는 도어 내판과, 상부 캡과, 하부 캡 및 이들의 내부에 마련되는 도어 단열재를 포함할 수 있다.
도어 내판의 테두리에는 도어(4200)가 닫혔을 때 본체(4010)의 전면에 밀착됨으로써 저장실(4100)을 밀폐하는 가스켓이 마련될 수 있다. 도어 내판은 물품을 보관할 수 있는 도어 바스켓이 장착되도록 후방으로 돌출되는 다이크(dyke)를 포함할 수 있다.
일 실시예에 따르면 도어(4200)는 도어 바디와, 도어 바디의 전측에 분리 가능하게 결합되고 도어(4200)의 전면을 형성하는 전방 패널을 포함할 수 있다. 도어 바디는 도어 바디의 전면을 형성하는 도어 외판, 도어 바디의 후면을 형성하고 저장실(4100)을 마주보는 도어 내판, 상부 캡, 하부 캡 및 이들의 내부에 마련되는 도어 단열재를 포함할 수 있다.
냉장고(4000)는 도어(4200) 및 저장실(4100)의 배치에 따라 프렌치 도어 타입(French Door Type), 사이드 바이 사이드 타입(Side-by-side Type), BMF(Bottom Mounted Freezer), TMF(Top Mounted Freezer) 또는 1도어 냉장고(4000) 등으로 구별될 수 있다.
일 실시예에 따르면 냉장고(4000)는 저장실(4100)에 냉기를 공급하도록 마련되는 냉기 공급 장치(4300)를 포함할 수 있다.
냉기 공급 장치(4300)는 냉기를 생성하고 냉기를 안내하여 저장실(4100)을 냉각할 수 있는 기계, 기구, 전자 장치 및/또는 이들을 조합한 시스템을 포함할 수 있다.
일 실시예에 따르면 냉기 공급 장치(4300)는 냉매의 압축, 응축, 팽창 및 증발 과정을 포함하는 냉동 사이클을 통해 냉기를 생성할 수 있다. 이를 위해 냉기 공급 장치(4300)는 냉동 사이클을 구동시킬 수 있는 압축기, 응축기, 팽창 장치 및 증발기를 갖는 냉동 사이클 장치를 포함할 수 있다. 일 실시예에 따르면 냉기 공급 장치(4300)는 열전 소자와 같은 반도체를 포함할 수 있다. 열전 소자는 펠티어 효과를 통한 발열 및 냉각 작용으로 저장실(4100)을 냉각할 수 있다.
일 실시예에 따르면 냉장고(4000)는 냉기 공급 장치(4300)에 속한 적어도 일부 부품들이 배치되도록 마련되는 기계실을 포함할 수 있다.
기계실은 기계실에 배치되는 부품에서 발생되는 열이 저장실(4100)에 전달되는 것을 방지하기 위해 저장실(4100)과 구획 및 단열되도록 마련될 수 있다. 기계실 내부에 배치된 부품을 방열하도록 기계실 내부는 본체(4010)의 외부와 연통되도록 구성될 수 있다.
일 실시예에 따르면 냉장고(4000)는 물 및/또는 얼음을 제공하도록 도어(4200)에 마련되는 디스펜서를 포함할 수 있다. 디스펜서는 사용자가 도어(4200)를 개방하지 않고 접근 가능하도록 도어(4200)에 마련될 수 있다.
일 실시예에 따르면 냉장고(4000)는 얼음을 생성하도록 마련되는 제빙 장치를 포함할 수 있다. 제빙 장치는 물을 저수하는 제빙 트레이와, 제빙 트레이로부터 얼음을 분리시키는 이빙 장치와, 제빙 트레이에서 생성된 얼음을 저장하는 아이스 버킷을 포함할 수 있다.
일 실시예에 따르면 냉장고(4000)는 냉장고(4000)를 제어하기 위한 제어부를 포함할 수 있다.
제어부는 냉장고(4000)를 제어하기 위한 프로그램 및/또는 데이터를 저장 또는 기록하는 메모리(4600)와, 메모리(4600)에 기록된 프로그램 및/또는 데이터에 따라 냉기 공급 장치(4300) 등을 제어하기 위한 제어 신호를 출력하는 프로세서(4500)를 포함할 수 있다.
메모리(4600)는 냉장고(4000)의 동작에 필요한 다양한 정보, 데이터, 명령어, 프로그램 등을 저장 또는 기록한다. 메모리(4600)는 냉장고(4000)에 포함된 구성들을 제어하기 위한 제어 신호를 생성하는 중에 발생하는 임시 데이터를 기록할 수 있다. 메모리(4600)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나 또는 이들의 조합을 포함할 수 있다.
프로세서(4500)는 냉장고(4000) 전반의 동작을 제어한다. 프로세서(4500)는 메모리(4600)에 저장된 프로그램을 실행하여, 냉장고(4000)의 구성 요소들을 제어할 수 있다. 프로세서(4500)는 인공지능 모델의 동작을 수행하는 별도의 NPU를 포함할 수 있다. 또한 프로세서(4500)는 중앙 처리부, 그래픽 전용 프로세서(GPU) 등을 포함할 수 있다. 프로세서(4500)는 냉기 공급 방치의 동작을 제어하기 위한 제어 신호를 생성할 수 있다. 예를 들어, 프로세서(4500)는 온도 센서로부터 저장실(4100)의 온도 정보를 수신하고, 저장실(4100)의 온도 정보에 기초하여 냉기 공급 장치(4300)의 동작을 제어하기 위한 냉각 제어 신호를 생성할 수 있다.
또한, 프로세서(4500)는 메모리(4600)에 기록/저장된 프로그램 및/또는 데이터에 따라 사용자 인터페이스의 사용자 입력을 처리하고, 사용자 인터페이스의 동작을 제어할 수 있다. 사용자 인터페이스는 입력 인터페이스(4800)와 출력 인터페이스(4900)를 이용하여 제공될 수 있다. 프로세서(4500)는 사용자 인터페이스로부터 사용자 입력을 수신할 수 있다. 또한, 프로세서(4500)는 사용자 입력에 응답하여 사용자 인터페이스에 영상을 표시하기 위한 표시 제어 신호 및 영상 데이터를 사용자 인터페이스에 전달할 수 있다.
프로세서(4500)와 메모리(4600)는 일체로 마련되거나 또는 별도로 마련될 수 있다. 프로세서(4500)는 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(4500)는 메인 프로세서와 적어도 하나의 서브 프로세서를 포함할 수 있다. 메모리(4600)는 하나 이상의 메모리를 포함할 수 있다.
일 실시예에 따르면 냉장고(4000)는 냉장고(4000)에 포함된 구성들을 모두 제어하는 프로세서(4500) 및 메모리(4600)를 포함하고 냉장고(4000)의 구성들을 개별 제어하는 복수의 프로세서(4500)들과 복수의 메모리(4600)들을 포함할 수 있다. 예를 들어, 냉장고(4000)는 온도센서의 출력에 따라 냉기 공급 장치(4300)의 동작을 제어하는 프로세서(4500) 및 메모리(4600)를 포함할 수 있다. 또한, 냉장고(4000)는 사용자 입력에 따라 사용자 인터페이스의 동작을 제어하는 프로세서(4500)와 메모리(4600)를 별도로 구비할 수 있다.
통신 모듈(4700)은 주변의 접속 중계기(AP: Access Point)를 통해 서버, 모바일 장치, 다른 가전 기기 등의 외부 장치와 통신할 수 있다. 접속 중계기(AP)는 냉장고(4000) 또는 사용자 기기가 연결된 지역 네트워크(LAN)를 서버가 연결된 광역 네트워크(WAN)에 연결시킬 수 있다. 냉장고(4000) 또는 사용자 기기는 광역 네트워크(WAN)를 통해 서버에 연결될 수 있다.
입력 인터페이스(4800)는 키(4810), 터치스크린(4820), 마이크로폰 등을 포함할 수 있다. 입력 인터페이스(4800)는 사용자 입력을 수신하여 프로세서(4500)로 전달할 수 있다.
출력 인터페이스(4900)는 디스플레이(4910), 스피커(4920) 등을 포함할 수 있다. 출력 인터페이스(4900)는 프로세서(4500)에서 생성된 다양한 알림, 메시지, 정보 등을 출력할 수 있다.
일 실시예에서, 세탁기(4000)는 서버(2000) 및/또는 전자 장치(3000)와 데이터 통신을 수행할 수 있다. 세탁기(4000)는 서버(2000) 및/또는 전자 장치(3000)로부터 제어 동작과 관련된 데이터(예를 들어, 동작 모드 설정)를 수신하고, 수신된 데이터에 대응되는 기능을 세탁기(4000)에서 실행할 수 있다. 세탁기(4000)가 서버 및/또는 전자 장치(3000)에 의해 제어되는 것에 관한 설명은 전술하였으므로, 반복되는 설명은 생략한다.
도 19는 본 개시의 일 실시예에 따른 오븐의 블록도이다.
일 실시예에 따른 오븐(5000)은 프로세서(5100), 구동부(5200), 센서부(5300), 통신 모듈(5400), 사용자 인터페이스(5500), 조명(5600) 및 메모리(5700)를 포함할 수 있다.
프로세서(5100)는, 오븐(5000)의 동작을 전반적으로 제어할 수 있다. 프로세서(5100)는 메모리(5700)에 저장된 프로그램들을 실행함으로써, 구동부(5200), 센서부(5300), 통신 모듈(5400), 사용자 인터페이스(5500), 조명(5600), 메모리(5700)를 제어할 수 있다.
일 실시예에서, 오븐(5000)은 인공 지능(AI) 프로세서를 탑재한 스마트 오븐일 수 있다. 인공 지능(AI) 프로세서는, 인공 지능(AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 오븐(5000)에 탑재될 수도 있다.
메모리(5700)는, 프로세서(5100)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 레시피 정보, 면적 테이블, 간격 테이블, 크롭 영역의 사이즈 정보, 왜곡 보정 값, 밝기 단계 테이블 등)을 저장할 수도 있다. 메모리(5700)는 인공지능 모델을 저장할 수도 있다. 예를 들어, 메모리(5700)는 객체 인식을 위한 인공지능 모델, 레시피 추천을 위한 인공지능 모델 등을 저장할 수도 있다.
메모리(5700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 오븐(5000)은 인터넷(Internet)상에서 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버와 연동할 수도 있다.
구동부(5200)는, 히터(5210), 순환팬(132), 냉각팬(5230)을 포함할 수 있으나, 이에 한정되는 것은 아니다. 구동부(5200)는 오븐(5000)의 종류에 따라 변경될 수 있다.
오븐(5000)의 내부 공간(예컨대, 조리실)에는 음식을 가열시키는 히터(5210)가 마련될 수 있다. 히터(5210)는 전기 저항체를 포함하는 전기 히터 또는 가스를 연소시켜 열을 발생시키는 가스 히터일 수 있다.
내부 공간(조리실)의 후방에는 내부 공기를 순환시켜 음식이 골고루 가열되도록 하는 순환 팬(5220)과 순환 팬(5220)을 구동시키는 순환 모터가 마련될 수 있다. 또한, 순환 팬(5220)의 전방에는 순환 팬(5220)을 커버하는 팬 커버가 마련될 수 있으며, 팬 커버에는 공기가 유동될 수 있도록 통공이 형성될 수 있다.
냉각팬(5230)은 공기를 상측에서 흡입하여 반경 방향으로 토출시키는 원심팬일 수 있다. 냉각팬(5230)은 냉각 유로에 배치될 수 있다. 냉각팬(5230)은, 편평하게 형성되는 회전판과, 회전판의 중심부에 형성되고 냉각 모터의 회전축이 결합되는 허브와, 회전판의 중심부에서 테두리부로 형성되는 복수의 날개를 포함할 수 있다. 허브는 하부로 갈수록 반경이 커지는 원추 형상으로 형성될 수 있고, 따라서, 상측에서 흡입된 공기를 하부 방향으로 확산시킬 수 있다.
센서부(5300)는, 깊이 센서(5310), 무게 감지 센서(5320), 적외선 센서(5330), 내부 공간의 습도를 센싱하는 습도 센서(5340), 내부 공간의 가스 정도를 센싱하는 가스 센서(5350), 온도 센서(5360)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 통상의 기술자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
통신 모듈(5400)은, 오븐(5000)과 서버 장치(미도시), 또는 오븐(5000)과 모바일 단말(미도시) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신 모듈(5400)은, 근거리 통신모듈(5410), 원거리 통신모듈(5420) 등을 포함할 수 있다.
근거리 통신모듈(5410), 블루투스, BLE(Bluetooth Low Energy), 근거리 무선 통신 (Near Field Communication; NFC), WLAN(와이파이), 지그비(Zigbee), 적외선(IrDA, infrared Data Association), WFD(Wi-Fi Direct), UWB(ultra wideband), Ant+ 등의 통신 기술을 이용하는 통신 모듈을 포함할 수 있으나, 이에 한정되는 것은 아니다. 원거리 통신부(5420)는 오븐(5000)이 IoT(사물 인터넷) 환경에서 원격으로 서버 장치(미도시)에 의해 제어되는 경우, 서버(2000)와 통신하는데 사용될 수 있다. 원거리 통신모듈(5420)은 인터넷, 컴퓨터 네트워크(예: LAN 또는 WAN), 이동 통신부를 포함할 수 있다. 이동 통신부는, 3G 모듈, 4G 모듈, 5G 모듈, LTE 모듈, NB-IoT 모듈, LTE-M 모듈 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
사용자 인터페이스(5500)는, 출력 인터페이스(5510)와 입력 인터페이스(5520)를 포함할 수 있다. 출력 인터페이스(5510)는, 오디오 신호 또는 비디오 신호의 출력을 위한 것으로, 디스플레이부와 음향 출력부 등을 포함할 수 있다.
디스플레이부와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부는 출력 인터페이스(5510) 이외에 입력 인터페이스(5520)로도 사용될 수 있다. 디스플레이부는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 발광 다이오드(LED, light-emitting diode), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 오븐(5000)의 구현 형태에 따라 오븐(5000)은 디스플레이부를 2개 이상 포함할 수도 있다.
음향 출력부는 통신 모듈(5400)로부터 수신되거나 메모리(5700)에 저장된 오디오 데이터를 출력할 수 있다. 또한, 음향 출력부는 오븐(5000)에서 수행되는 기능과 관련된 음향 신호를 출력할 수 있다. 음향 출력부는 스피커(speaker), 부저(Buzzer) 등을 포함할 수 있다.
본 개시의 일 실시예에 의하면, 디스플레이부는 오븐(5000)의 내부 공간의 모니터링 영상을 출력하거나, 식재료에 맞는 레시피 정보를 출력할 수 있다. 또한, 디스플레이부는 트레이가 삽입된 높이에 따라 결정된 조리 온도의 보정 값을 출력할 수도 있다.
입력 인터페이스(5520)는, 사용자로부터의 입력을 수신하기 위한 것이다. 입력 인터페이스(5520)는, 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 중 적어도 하나일 수 있으나, 이에 한정되는 것은 아니다.
입력 인터페이스(5520)는, 음성 인식 모듈을 포함할 수 있다. 예를 들어, 오븐(5000)은 마이크로폰을 통해 아날로그 신호인 음성 신호를 수신하고, ASR(Automatic Speech Recognition) 모델을 이용하여 음성 부분을 컴퓨터로 판독 가능한 텍스트로 변환할 수 있다. 오븐(5000)은 자연어 이해(Natural Language Understanding, NLU) 모델을 이용하여 변환된 텍스트를 해석하여, 사용자의 발화 의도를 획득할 수 있다. 여기서 ASR 모델 또는 NLU 모델은 인공지능 모델일 수 있다. 인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다.
조명(5600)은, 오븐(5000)의 내부 공간의 일면에 배치될 수 있으며, 내부 조명으로 표현될 수 있다. 예를 들어, 조명(5600)은 천장에 배치될 수도 있고, 옆 면에 배치될 수도 있으나, 이에 한정되는 것은 아니다. 조명(5600)은 오븐(5000)의 문이 개방되거나 오븐(5000)이 동작할 때 턴온될 수 있다. 조명(5600)은 유리 커버에 의해 보호될 수 있다.
본 개시의 일 실시예에 의하면, 조명(5600)은 다양한 밝기 단계를 가질 수 있다. 예를 들어, 조명(5600)은 어두운 단계부터 밝은 단계의 빛을 발광할 수 있다. 조명(5600)의 밝기는 프로세서(5100)에 의해 조절될 수 있다. 조명(5600)은 할로겐 조명일 수도 있고, LED 조명일 수도 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 오븐(5000)은 서버(2000) 및/또는 전자 장치(3000)와 데이터 통신을 수행할 수 있다. 오븐(5000)은 서버(2000) 및/또는 전자 장치(3000)로부터 제어 동작과 관련된 데이터(예를 들어, 동작 모드 설정)를 수신하고, 수신된 데이터에 대응되는 기능을 오븐(5000)에서 실행할 수 있다. 오븐(5000)이 서버 및/또는 전자 장치(3000)에 의해 제어되는 것에 관한 설명은 전술하였으므로, 반복되는 설명은 생략한다.
본 개시는, 오버랩 된 텍스트를 포함하는 이미지에서 오버랩 된 텍스트를 분리하기 위해 텍스트 영역을 결정하고 텍스트 영역에서 문자 그룹에 대응하는 픽셀들만을 추출한 후, 이를 복원하여 온전한 텍스트를 포함하는 이미지를 획득하는 방법 및 복원된 텍스트를 인식하여 정보를 생성하는 방법을 제시한다.
본 개시에서 이루고자 하는 기술적 과제는, 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 측면에 따르면, 서버가 이미지로부터 텍스트를 획득하는 방법이 제공될 수 있다. 상기 방법은, 제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득하는 단계를 포함할 수 있다. 상기 방법은, 상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리하는 단계를 포함할 수 있다. 상기 방법은, 상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출하는 단계를 포함할 수 있다. 상기 방법은, 상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을 인페인팅함으로써, 상기 제1 텍스트를 복원하는 단계를 포함할 수 있다.
상기 제1 텍스트 영역을 분리하는 단계는, 상기 이미지 내의 상기 제1 텍스트 및 상기 제2 텍스트를 복수의 문자 그룹들로 세그먼트함으로써 복수의 텍스트 영역들을 결정하는 단계를 포함할 수 있다.
상기 제1 텍스트 영역을 분리하는 단계는, 상기 복수의 텍스트 영역들 중에서 상기 제1 텍스트 영역을 분리하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 컬러스페이스에 인접한 컬러의 문자들을 그룹화하기 위해 상기 이미지에 컬러 클러스터링 알고리즘을 적용하여, 상기 복수의 텍스트 영역들을 결정하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 이미지 내 상기 제1 텍스트를 선택하는 사용자 입력을 수신하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 이미지 내 상기 사용자 입력에 대응하는 상기 제1 텍스트 영역에 상기 컬러 클러스터링 알고리즘을 적용하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 이미지에 기초하여, 상기 이미지 내에서 상기 제1 텍스트 및 상기 제2 텍스트의 위치를 나타내는 텍스트 영역 맵을 획득하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 텍스트 영역 맵에 기초하여 상기 복수의 텍스트 영역들을 결정하는 단계를 포함할 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 텍스트 영역 맵에 기초하여 상기 컬러 클러스터링 알고리즘을 적용하는 것일 수 있다.
상기 복수의 텍스트 영역들을 결정하는 단계는, 상기 제1 텍스트 및 상기 제2 텍스트 각각의 언어, 글씨체, 텍스트의 서식, 말뭉치(corpus) 및 로고 중 적어도 하나에 기초하여 상기 복수의 텍스트 영역들을 결정하는 것일 수 있다.
상기 방법은, 상기 제1 텍스트에 광학 문자 인식(Optical character recognition; OCR)을 적용하는 단계를 포함할 수 있다.
상기 이미지는 식품과 관련된 라벨의 이미지를 포함할 수 있다.
상기 제1 텍스트는 식품과 관련된 텍스트를 포함할 수 있다.
상기 방법은, 상기 제1 텍스트에 광학 문자 인식을 적용한 결과에 기초하여, 상기 식품과 관련된 정보를 제공하는 단계를 포함할 수 있다.
상기 방법은, 식품과 관련된 정보를 외부 장치로 전송하는 단계를 포함할 수 있다.
본 개시의 일 측면에 따르면, 이미지로부터 텍스트를 획득하는 서버가 제공될 수 있다. 상기 서버는, 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 하나 이상의 프로세서를 포함할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지로부터 상기 제1 텍스트에 대응하는 텍스트 영역을 분리할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트의 상기 텍스트 영역에서 상기 제1 텍스트의 하나 이상의 문자들과 관련된 픽셀들을 추출하여, 상기 제1 텍스트의 일부 영역이 손상된 상기 제1 텍스트의 이미지를 획득할 수 있다. 상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 영역을 인페인팅함으로써, 상기 제1 텍스트를 복원할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지 내의 텍스트를 복수의 문자 그룹들로 세그먼트함으로써 복수의 텍스트 영역들을 결정할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 복수의 텍스트 영역들 중에서 상기 제1 텍스트에 대응하는 텍스트 영역을 분리할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지에 컬러 클러스터링 알고리즘을 적용하여, 인접한 컬러의 문자들이 그룹화되도록 함으로써 상기 텍스트 영역들을 결정할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지 내 텍스트를 선택하는 사용자 입력을 수신할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지 내 상기 사용자 입력에 대응하는 영역에 상기 컬러 클러스터링 알고리즘을 적용할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 이미지에 기초하여, 상기 이미지 내에서 텍스트의 위치를 나타내는 텍스트 영역 맵을 획득할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 텍스트 영역 맵에 기초하여 상기 복수의 텍스트 영역들을 결정할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 텍스트 영역 맵에 기초하여 상기 컬러 클러스터링 알고리즘을 적용할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 텍스트의 언어, 글씨체, 텍스트의 서식, 말뭉치(corpus) 및 로고 중 적어도 하나에 기초하여 상기 복수의 텍스트 영역들을 결정할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트에 광학 문자 인식(Optical character recognition; OCR)을 적용할 수 있다.
상기 이미지는 식품과 관련된 라벨의 이미지를 포함할 수 있다.
상기 제1 텍스트는 식품과 관련된 텍스트를 포함할 수 있다.
상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 텍스트에 광학 문자 인식을 적용한 결과에 기초하여, 상기 식품과 관련된 정보를 제공할 수 있다.
한편, 본 개시의 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다.
또한, 컴퓨터에 의해 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 서버가 이미지로부터 텍스트를 획득하는 방법에 있어서,
    제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득하는 단계;
    상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리하는 단계;
    상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출하는 단계; 및
    상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을 인페인팅함으로써, 상기 제1 텍스트를 복원하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 텍스트 영역을 분리하는 단계는,
    상기 이미지 내의 상기 제1 텍스트 및 상기 제2 텍스트를 복수의 문자 그룹들로 세그먼트함으로써 복수의 텍스트 영역들을 결정하는 단계; 및
    상기 복수의 텍스트 영역들 중에서 상기 제1 텍스트 영역을 분리하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 복수의 텍스트 영역들을 결정하는 단계는,
    컬러 스페이스에서 인접한 컬러의 문자들을 그룹화하기 위해 상기 이미지에 컬러 클러스터링 알고리즘을 적용하여,상기 복수의 텍스트 영역들을 결정하는 단계를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 복수의 텍스트 영역들을 결정하는 단계는,
    상기 이미지 내 상기 제1 텍스트를 선택하는 사용자 입력을 수신하는 단계; 및
    상기 이미지 내 상기 사용자 입력에 대응하는 상기 제1 텍스트 영역에 상기 컬러 클러스터링 알고리즘을 적용하는 단계를 포함하는, 방법.
  5. 제3항에 있어서,
    상기 복수의 텍스트 영역들을 결정하는 단계는,
    상기 이미지에 기초하여, 상기 이미지 내에서 상기 제1 텍스트 및 상기 제2 텍스트의 위치를 나타내는 텍스트 영역 맵을 획득하는 단계; 및
    상기 텍스트 영역 맵에 기초하여 상기 복수의 텍스트 영역들을 결정하는 단계를 포함하는, 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 복수의 텍스트 영역들을 결정하는 단계는,
    상기 제1 텍스트 및 상기 제2 텍스트 각각의 언어, 글씨체, 텍스트의 서식, 말뭉치(corpus) 및 로고 중 적어도 하나에 기초하여 상기 복수의 텍스트 영역들을 결정하는 것인, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 이미지는 식품과 관련된 라벨의 이미지를 포함하고,
    상기 제1 텍스트는 식품과 관련된 텍스트를 포함하고,
    상기 방법은,
    상기 제1 텍스트에 광학 문자 인식을 적용한 결과에 기초하여, 상기 식품과 관련된 정보를 제공하는 단계를 더 포함하는, 방법.
  8. 이미지로부터 텍스트를 획득하는 서버에 있어서,
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    제1 텍스트 및 상기 제1 텍스트와 오버랩 된 제2 텍스트를 포함하는 이미지를 획득하고,
    상기 이미지로부터 상기 제1 텍스트에 대응하는 제1 텍스트 영역을 분리하고,
    상기 제1 텍스트의 손상되지 않은 부분 및 손상된 부분을 획득하기 위해, 상기 제1 텍스트 영역으로부터 상기 제1 텍스트에 대응하는 픽셀들을 추출하고,
    상기 제1 텍스트의 이미지 내에서 상기 제1 텍스트가 상기 제2 텍스트와 오버랩 되었던 상기 제1 텍스트의 상기 손상된 부분을 인페인팅함으로써, 상기 제1 텍스트를 복원하는, 서버.
  9. 제8항에 있어서,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 이미지 내의 상기 제1 텍스트 및 상기 제2 텍스트를 복수의 문자 그룹들로 세그먼트함으로써 복수의 텍스트 영역들을 결정하고,
    상기 복수의 텍스트 영역들 중에서 상기 제1 텍스트 영역을 분리하는, 서버.
  10. 제9항에 있어서,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    컬러 스페이스에서 인접한 컬러의 문자들을 그룹화하기 위해 상기 이미지에 컬러 클러스터링 알고리즘을 적용하여, 상기 복수의 텍스트 영역들을 결정하는, 서버.
  11. 제10항에 있어서,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 이미지 내 상기 제1 텍스트를 선택하는 사용자 입력을 수신하고,
    상기 이미지 내 상기 사용자 입력에 대응하는 상기 제1 텍스트 영역에 상기 컬러 클러스터링 알고리즘을 적용하는, 서버.
  12. 제10항에 있어서,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 이미지에 기초하여, 상기 이미지 내에서 상기 제1 텍스트 및 상기 제2 텍스트의 위치를 나타내는 텍스트 영역 맵을 획득하고,
    상기 텍스트 영역 맵에 기초하여 상기 복수의 텍스트 영역들을 결정하는, 서버.
  13. 제9항 내지 제 12항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제1 텍스트 및 상기 제2 텍스트 각각의 언어, 글씨체, 텍스트의 서식, 말뭉치(corpus) 및 로고 중 적어도 하나에 기초하여 상기 복수의 텍스트 영역들을 결정하는, 서버.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 이미지는 식품과 관련된 라벨의 이미지를 포함하고,
    상기 제1 텍스트는 식품과 관련된 텍스트를 포함하고,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제1 텍스트에 광학 문자 인식을 적용한 결과에 기초하여, 상기 식품과 관련된 정보를 제공하는, 서버.
  15. 제1항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2023/012109 2022-08-26 2023-08-16 이미지로부터 텍스트를 획득하는 방법 및 서버 WO2024043602A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/238,897 US20240071115A1 (en) 2022-08-26 2023-08-28 Method and server for obtaining text from image

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220107899 2022-08-26
KR10-2022-0107899 2022-08-26
KR10-2023-0006301 2023-01-16
KR1020230006301A KR20240029493A (ko) 2022-08-26 2023-01-16 이미지로부터 텍스트를 획득하는 방법 및 서버

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/238,897 Continuation US20240071115A1 (en) 2022-08-26 2023-08-28 Method and server for obtaining text from image

Publications (1)

Publication Number Publication Date
WO2024043602A1 true WO2024043602A1 (ko) 2024-02-29

Family

ID=90013581

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/012109 WO2024043602A1 (ko) 2022-08-26 2023-08-16 이미지로부터 텍스트를 획득하는 방법 및 서버

Country Status (1)

Country Link
WO (1) WO2024043602A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191724A (ja) * 2009-02-18 2010-09-02 Seiko Epson Corp 画像処理装置および制御プログラム
JP2011146029A (ja) * 2009-12-14 2011-07-28 Fujitsu Ltd 文字認識装置、文字認識プログラムおよび文字認識方法
KR20140045573A (ko) * 2011-09-06 2014-04-16 퀄컴 인코포레이티드 이미지 지역들을 이용한 텍스트 검출
JP2016029546A (ja) * 2014-07-25 2016-03-03 楽天株式会社 画像処理装置、画像処理方法、および画像処理プログラム
KR20220043824A (ko) * 2020-09-29 2022-04-05 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 문자 구조화 추출 방법, 장치, 기기 및 저장 매체

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191724A (ja) * 2009-02-18 2010-09-02 Seiko Epson Corp 画像処理装置および制御プログラム
JP2011146029A (ja) * 2009-12-14 2011-07-28 Fujitsu Ltd 文字認識装置、文字認識プログラムおよび文字認識方法
KR20140045573A (ko) * 2011-09-06 2014-04-16 퀄컴 인코포레이티드 이미지 지역들을 이용한 텍스트 검출
JP2016029546A (ja) * 2014-07-25 2016-03-03 楽天株式会社 画像処理装置、画像処理方法、および画像処理プログラム
KR20220043824A (ko) * 2020-09-29 2022-04-05 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 문자 구조화 추출 방법, 장치, 기기 및 저장 매체

Similar Documents

Publication Publication Date Title
EP3824233A1 (en) Method and system for providing information related to state of object in refrigerator
WO2019240432A1 (en) Refrigerator, server and method of controlling thereof
WO2018212493A1 (en) Refrigerator and method of food management thereof
WO2020096235A2 (ko) 식품 관리 시스템, 서버 장치 및 냉장고
WO2016036192A1 (en) Image display apparatus and image display method
WO2018117619A1 (en) Display apparatus, content recognizing method thereof, and non-transitory computer readable recording medium
WO2016137221A1 (en) Electronic device and image display method thereof
WO2021261836A1 (en) Image detection apparatus and operation method thereof
WO2020085665A1 (en) Method and system for providing information about objects in refrigerator
WO2014098465A1 (en) Method and terminal for reproducing content
WO2017131348A1 (en) Electronic apparatus and controlling method thereof
WO2020076014A1 (en) Electronic apparatus and method for controlling the electronic apparatus
WO2020141788A1 (en) Home appliance and control method thereof
WO2018124842A1 (ko) 컨텐트에 관한 정보를 제공하는 방법 및 디바이스
WO2019031676A1 (ko) 이미지 처리 방법 및 그에 따른 장치
WO2016129840A1 (en) Display apparatus and information providing method thereof
WO2022075738A1 (ko) 몰입감 있는 mixed reality를 제공하기 위한 mr 제공 장치 및 그 제어 방법
WO2020218686A1 (en) Display device and controlling method of display device
WO2024043602A1 (ko) 이미지로부터 텍스트를 획득하는 방법 및 서버
WO2019088627A1 (en) Electronic apparatus and controlling method thereof
WO2019088592A1 (ko) 전자 장치 및 이의 제어방법
WO2021141300A1 (en) Electronic device and method of operating the same
WO2020111567A1 (en) Electronic device and operation method thereof
WO2024106761A1 (ko) 전자 장치 및 그 동작 방법
WO2024136149A1 (ko) 영상을 처리하는 방법 및 장치

Legal Events

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

Ref document number: 23857636

Country of ref document: EP

Kind code of ref document: A1