KR102544781B1 - 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 - Google Patents
우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 Download PDFInfo
- Publication number
- KR102544781B1 KR102544781B1 KR1020180092580A KR20180092580A KR102544781B1 KR 102544781 B1 KR102544781 B1 KR 102544781B1 KR 1020180092580 A KR1020180092580 A KR 1020180092580A KR 20180092580 A KR20180092580 A KR 20180092580A KR 102544781 B1 KR102544781 B1 KR 102544781B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- product
- image
- product information
- electronic device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000004891 communication Methods 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 103
- 239000000463 material Substances 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 230000000306 recurrent effect Effects 0.000 claims description 2
- 239000000047 product Substances 0.000 description 323
- 238000003860 storage Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 238000013500 data storage Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 5
- 239000004615 ingredient Substances 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 5
- 229910052711 selenium Inorganic materials 0.000 description 5
- 239000011669 selenium Substances 0.000 description 5
- 239000003381 stabilizer Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 235000015872 dietary supplement Nutrition 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 239000003599 detergent Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- -1 place of origin Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 229940088594 vitamin Drugs 0.000 description 1
- 229930003231 vitamin Natural products 0.000 description 1
- 235000013343 vitamin Nutrition 0.000 description 1
- 239000011782 vitamin Substances 0.000 description 1
- 229910052724 xenon Inorganic materials 0.000 description 1
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical compound [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/535—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/5846—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using extracted text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Library & Information Science (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 상품들에 대한 검색 결과를 표시하기 위한 것으로, 서버는 통신 모듈, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 연관하여 상품 정보로서 저장하는 데이터베이스를 포함하는 메모리, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 통신 모듈을 이용하여, 전자 장치로부터 외부 객체에 대한 질의 이미지를 수신하고, 상기 데이터 베이스로부터, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하고, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보를 추출하고, 상기 추출된 문자 정보와 상기 선택된 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여, 상기 복수의 상품 정보 간 우선순위를 결정하고, 상기 수신에 대한 응답으로, 상기 통신 모듈을 이용하여, 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 상기 전자 장치로 송신할 수 있다.
Description
본 발명의 다양한 실시예는 상품들에 대한 검색 결과를 표시하기 위한 방법 및 그 전자 장치에 관한 것이다.
스마트폰과 같은 전자 장치는 필수품이라 불릴 수 있을 정도로 널리 사용되고 있다. 나아가, 다양한 분야의 기술 발전으로 인해, 전자 장치의 기능이 점차 다양화되고 고성능화되고 있다. 이에 따라, 사용자들은 전자 장치를 통해 다양한 서비스들을 이용할 수 있다.
예를 들어, 카메라를 이용한 다양한 기능들이 제공될 수 있다. 카메라를 이용한 사진 또는 동영상 촬영, 영상 통화 등 종래의 기능들에서 나아가, 카메라를 통해 촬영된 이미지로부터 피사체에 대한 정보를 제공하는 서비스도 최근 제공되고 있다. 이러한 피사체에 대한 정보를 응용하면, 피사체에 대한 직접적인 정보는 물론, 관련된 다른 정보, 예를 들어, 피사체가 상품인 경우, 해당 상품 또는 유사한 상품에 대한 정보를 제공하는 서비스가 실현될 수 있다.
카메라 등을 통해 획득된 이미지로부터 상품에 대한 정보를 제공하는 서비스는 획득된 이미지 및 상품에 대한 이미지 간 유사성을 이용할 수 있다. 하지만, 이미지의 유사성만을 이용하는 경우, 전혀 다른 종류의 상품이 결과로서 제시될 수 있다. 이미지 내 문자 정보를 이용하는 기술도 제안된 바 있으나, 상품과 관련성이 적은 문자 또는 불완전한 문자열이 추출된 경우, 적절하지 아니한 상품이 결과로서 제시될 수 있다.
따라서, 본 발명의 다양한 실시예는 보다 사용자의 의도에 부합하는 상품의 검색 결과를 제공하기 위한 방법 및 그 전자 장치를 제공할 수 있다.
본 발명의 다양한 실시예에 따르면, 서버는 통신 모듈, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 연관하여 상품 정보로서 저장하는 데이터베이스를 포함하는 메모리, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 통신 모듈을 이용하여, 전자 장치로부터 외부 객체에 대한 질의 이미지를 수신하고, 상기 데이터 베이스로부터, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하고, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보를 추출하고, 상기 추출된 문자 정보와 상기 선택된 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여, 상기 복수의 상품 정보 간 우선순위를 결정하고, 상기 수신에 대한 응답으로, 상기 통신 모듈을 이용하여, 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 상기 전자 장치로 송신할 수 있다.
본 발명의 다양한 실시예에 따르면, 서버의 동작 방법은, 전자 장치로부터 외부 객체에 대한 질의 이미지를 수신하는 동작, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하는 동작, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라, 상기 복수의 상품 정보 간 우선순위를 결정하는 동작, 및 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 포함하는 검색 결과에 대한 정보를 상기 전자 장치에게 송신하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 전자 장치는, 통신 모듈, 디스플레이, 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 외부 객체에 대한 질의 이미지를 획득하고, 서버로 상기 질의 이미지를 상기 통신 모듈을 이용하여 송신하고, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여 선택된 복수의 상품 정보 중 적어도 일부 및 상기 복수의 상품 정보 중 적어도 일부 간 우선순위에 대한 정보를 포함하는, 검색 결과에 대한 정보를 상기 통신 모듈을 이용하여 수신하고, 상기 검색 결과에 포함되는 상품 정보 중 적어도 하나의 상품 정보를 상기 디스플레이에 표시할 수 있다. 상기 우선순위는, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보와 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여 결정될 수 있다.
다양한 실시예에 따른 방법 및 그 전자 장치는, 이미지에서 추출된 문자 정보는 물론 추출된 문자 정보로부터 도출되는 문자 정보를 고려하여 상품을 검색함으로써, 보다 사용자의 의도에 부합하는 상품 검색 결과를 제공할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시예들에 따른 카메라 모듈을 예시하는 블럭도이다.
도 3은 다양한 실시예들에 따른 전자 장치 및 서버의 블록도이다.
도 4는 다양한 실시예들에 따른 전자 장치에서 상품 검색 서비스를 제공하기 위한 흐름도이다.
도 5는 다양한 실시예들에 따른 서버에서 상품들에 대한 정보를 제공하기 위한 흐름도이다.
도 6은 다양한 실시예들에 따른 서버에서 이미지에 기반하여 상품들을 검색하기 위한 흐름도이다.
도 7은 다양한 실시예들에 따른 서버에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 흐름도이다.
도 8은 다양한 실시예들에 따른 문자 정보의 벡터화 결과의 예시이다.
도 9는 다양한 실시예들에 따른 서버에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 다른 흐름도이다.
도 10은 다양한 실시예들에 따른 전자 장치에서 상품들에 대한 정보를 표시하기 위한 흐름도이다.
도 11a 내지 도 11c는 다양한 실시예들에 따른 전자 장치에 표시되는 상품들에 대한 정보의 예시들이다.
도 12는 다양한 실시예들에 따른 전자 장치에서 상품 검색을 위한 질의 이미지를 획득하기 위한 흐름도이다.
도 13은 다양한 실시예들에 따른 전자 장치에서 안내 문구를 포함하는 촬영 인터페이스의 예시이다.
도 14 내지 도 16은 다양한 실시예들에 따른 상품 검색 서비스를 통한 검색 결과의 예시들이다.
도 2는 다양한 실시예들에 따른 카메라 모듈을 예시하는 블럭도이다.
도 3은 다양한 실시예들에 따른 전자 장치 및 서버의 블록도이다.
도 4는 다양한 실시예들에 따른 전자 장치에서 상품 검색 서비스를 제공하기 위한 흐름도이다.
도 5는 다양한 실시예들에 따른 서버에서 상품들에 대한 정보를 제공하기 위한 흐름도이다.
도 6은 다양한 실시예들에 따른 서버에서 이미지에 기반하여 상품들을 검색하기 위한 흐름도이다.
도 7은 다양한 실시예들에 따른 서버에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 흐름도이다.
도 8은 다양한 실시예들에 따른 문자 정보의 벡터화 결과의 예시이다.
도 9는 다양한 실시예들에 따른 서버에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 다른 흐름도이다.
도 10은 다양한 실시예들에 따른 전자 장치에서 상품들에 대한 정보를 표시하기 위한 흐름도이다.
도 11a 내지 도 11c는 다양한 실시예들에 따른 전자 장치에 표시되는 상품들에 대한 정보의 예시들이다.
도 12는 다양한 실시예들에 따른 전자 장치에서 상품 검색을 위한 질의 이미지를 획득하기 위한 흐름도이다.
도 13은 다양한 실시예들에 따른 전자 장치에서 안내 문구를 포함하는 촬영 인터페이스의 예시이다.
도 14 내지 도 16은 다양한 실시예들에 따른 상품 검색 서비스를 통한 검색 결과의 예시들이다.
이하 다양한 실시예들이 첨부된 도면을 참고하여 상세히 설명된다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참고하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 일 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 일 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150) 를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 안테나 모듈은, 일 실시예에 따르면, 도전체 또는 도전성 패턴으로 형성될 수 있고, 일 실시예에 따르면, 도전체 또는 도전성 패턴 이외에 추가적으로 다른 부품(예: RFIC)을 더 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 하나 이상의 안테나들을 포함할 수 있고, 이로부터, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 선택될 수 있다. 신호 또는 전력은 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다.
상술한 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 결과를, 그대로 또는 추가적으로 처리하여, 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예들에 따른 카메라 모듈(180)을 예시하는 블럭도(200)이다. 도 2를 참고하면, 카메라 모듈(180)은 렌즈 어셈블리(210), 플래쉬(220), 이미지 센서(230), 이미지 스태빌라이저(240), 메모리(250)(예: 버퍼 메모리), 또는 이미지 시그널 프로세서(260)를 포함할 수 있다. 렌즈 어셈블리(210)는 이미지 촬영의 대상인 피사체로부터 방출되는 빛을 수집할 수 있다. 렌즈 어셈블리(210)는 하나 또는 그 이상의 렌즈들을 포함할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 복수의 렌즈 어셈블리(210)들을 포함할 수 있다. 이런 경우, 카메라 모듈(180)은, 예를 들면, 듀얼 카메라, 360도 카메라, 또는 구형 카메라(spherical camera)를 형성할 수 있다. 복수의 렌즈 어셈블리(210)들 중 일부는 동일한 렌즈 속성(예: 화각, 초점 거리, 자동 초점, f 넘버(f number), 또는 광학 줌)을 갖거나, 또는 적어도 하나의 렌즈 어셈블리는 다른 렌즈 어셈블리의 렌즈 속성들과 다른 하나 이상의 렌즈 속성들을 가질 수 있다. 렌즈 어셈블리(210)는, 예를 들면, 광각 렌즈 또는 망원 렌즈를 포함할 수 있다.
플래쉬(220)는 피사체로부터 방출 또는 반사되는 빛을 강화하기 위하여 사용되는 빛을 방출할 수 있다. 일 실시예에 따르면, 플래쉬(220)는 하나 이상의 발광 다이오드들(예: RGB(red-green-blue) LED, white LED, infrared LED, 또는 ultraviolet LED), 또는 xenon lamp를 포함할 수 있다. 이미지 센서(230)는 피사체로부터 방출 또는 반사되어 렌즈 어셈블리(210) 를 통해 전달된 빛을 전기적인 신호로 변환함으로써, 상기 피사체에 대응하는 이미지를 획득할 수 있다. 일 실시예에 따르면, 이미지 센서(230)는, 예를 들면, RGB 센서, BW(black and white) 센서, IR 센서, 또는 UV 센서와 같이 속성이 다른 이미지 센서들 중 선택된 하나의 이미지 센서, 동일한 속성을 갖는 복수의 이미지 센서들, 또는 다른 속성을 갖는 복수의 이미지 센서들을 포함할 수 있다. 이미지 센서(230)에 포함된 각각의 이미지 센서는, 예를 들면, CCD(charged coupled device) 센서 또는 CMOS(complementary metal oxide semiconductor) 센서를 이용하여 구현될 수 있다.
이미지 스태빌라이저(240)는 카메라 모듈(180) 또는 이를 포함하는 전자 장치(101)의 움직임에 반응하여, 렌즈 어셈블리(210)에 포함된 적어도 하나의 렌즈 또는 이미지 센서(230)를 특정한 방향으로 움직이거나 이미지 센서(230)의 동작 특성을 제어(예: 리드 아웃(read-out) 타이밍을 조정 등)할 수 있다. 이는 촬영되는 이미지에 대한 상기 움직임에 의한 부정적인 영향의 적어도 일부를 보상하게 해 준다. 일 실시예에 따르면, 이미지 스태빌라이저(240)는, 일 실시예에 따르면, 이미지 스태빌라이저(240)는 카메라 모듈(180)의 내부 또는 외부에 배치된 자이로 센서(미도시) 또는 가속도 센서(미도시)를 이용하여 카메라 모듈(180) 또는 전자 장치(101)의 그런 움직임을 감지할 수 있다. 일 실시예에 따르면, 이미지 스태빌라이저(240)는, 예를 들면, 광학식 이미지 스태빌라이저로 구현될 수 있다. 메모리(250)는 이미지 센서(230)을 통하여 획득된 이미지의 적어도 일부를 다음 이미지 처리 작업을 위하여 적어도 일시 저장할 수 있다. 예를 들어, 셔터에 따른 이미지 획득이 지연되거나, 또는 복수의 이미지들이 고속으로 획득되는 경우, 획득된 원본 이미지(예: Bayer-patterned 이미지 또는 높은 해상도의 이미지)는 메모리(250)에 저장이 되고, 그에 대응하는 사본 이미지(예: 낮은 해상도의 이미지)는 표시 장치(160)을 통하여 프리뷰될 수 있다. 이후, 지정된 조건이 만족되면(예: 사용자 입력 또는 시스템 명령) 메모리(250)에 저장되었던 원본 이미지의 적어도 일부가, 예를 들면, 이미지 시그널 프로세서(260)에 의해 획득되어 처리될 수 있다. 일 실시예에 따르면, 메모리(250)는 메모리(130)의 적어도 일부로, 또는 이와는 독립적으로 운영되는 별도의 메모리로 구성될 수 있다.
이미지 시그널 프로세서(260)는 이미지 센서(230)을 통하여 획득된 이미지 또는 메모리(250)에 저장된 이미지에 대하여 하나 이상의 이미지 처리들을 수행할 수 있다. 상기 하나 이상의 이미지 처리들은, 예를 들면, 깊이 지도(depth map) 생성, 3차원 모델링, 파노라마 생성, 특징점 추출, 이미지 합성, 또는 이미지 보상(예: 노이즈 감소, 해상도 조정, 밝기 조정, 블러링(blurring), 샤프닝(sharpening), 또는 소프트닝(softening)을 포함할 수 있다. 추가적으로 또는 대체적으로, 이미지 시그널 프로세서(260)는 카메라 모듈(180)에 포함된 구성 요소들 중 적어도 하나(예: 이미지 센서(230))에 대한 제어(예: 노출 시간 제어, 또는 리드 아웃 타이밍 제어 등)를 수행할 수 있다. 이미지 시그널 프로세서(260)에 의해 처리된 이미지는 추가 처리를 위하여 메모리(250)에 다시 저장 되거나 카메라 모듈(180)의 외부 구성 요소(예: 메모리(130), 표시 장치(160), 전자 장치(102), 전자 장치(104), 또는 서버(108))로 제공될 수 있다. 일 실시예에 따르면, 이미지 시그널 프로세서(260)는 프로세서(120)의 적어도 일부로 구성되거나, 프로세서(120)와 독립적으로 운영되는 별도의 프로세서로 구성될 수 있다. 이미지 시그널 프로세서(260)가 프로세서(120)와 별도의 프로세서로 구성된 경우, 이미지 시그널 프로세서(260)에 의해 처리된 적어도 하나의 이미지는 프로세서(120)에 의하여 그대로 또는 추가의 이미지 처리를 거친 후 표시 장치(160)를 통해 표시될 수 있다.
일 실시예에 따르면, 전자 장치(101)는 각각 다른 속성 또는 기능을 가진 복수의 카메라 모듈(180)들을 포함할 수 있다. 이런 경우, 예를 들면, 상기 복수의 카메라 모듈(180)들 중 적어도 하나는 광각 카메라이고, 적어도 다른 하나는 망원 카메라일 수 있다. 유사하게, 상기 복수의 카메라 모듈(180)들 중 적어도 하나는 전면 카메라이고, 적어도 다른 하나는 후면 카메라일 수 있다.
본 발명의 다양한 실시예들은 시각적인 질의(quiry)의 결과를 쇼핑 아이템, 즉, 상품 검색의 목적에 맞는 후처리를 수행하는 것에 관련된다. 구체적으로, 본 발명의 다양한 실시예들은 단어(word)의 유사성에 기반하여 질의 이미지와 가까운 카테고리의 이미지를 검색 결과에서 상위에 배치되도록 재정렬하는 기술에 관련된다.
상품 데이터베이스(database, DB)는 각 상품의 이미지뿐만 아니라 각 상품의 다양한 속성을 나타내는 문자 정보도 포함할 수 있다. 하지만, 질의 정보로서 이미지만을 제공하는 이미지 기반 상품 검색의 경우, 상품의 문자 정보를 활용하는 데에 어려움이 있다.
문자 정보를 사용하는 기술도 있으나, 종래의 상품 검색 기술은 질의 이미지 내 상품의 로고 또는 브랜드나 문자를 인식하고 문자 매칭(matching), 즉, 검출된 문자가 상품 정보에 존재하는지를 판단한 후, 동일 문자가 존재하는 상품의 리스트 내 순위를 조정하는 방식으로 상품의 텍스트 정보를 활용하고 있다. 하지만, 문자 매칭의 경우, 상품의 구체적 카테고리 매칭이나 이미지의 특징 매칭과 독립적으로 수행되기 때문에, 상품과 큰 관련이 없는 문자가 검출될 확률이 높다. 이에 따라, 온전하지 못한 형태, 예를 들어, 임의의 글자가 누락되는 등의 형태로 문자가 검출될 수 있고, 이는 상품 검색 성능을 저하를 야기할 수 있다.
상술한 바와 같이, 종래 기술은 문자의 단순한 비교에 따라 상품을 재정렬하는 기능만을 제공하므로, 해당 문자의 일치가 이미지 내의 객체 또는 객체와 같은 종류의 객체를 찾고자 하는 사용자의 요구를 반영하지 못하고 있다. 특히, 패키지 상품의 경우, 비슷하게 생긴 외형을 가진 상품이 다수 존재하고, 많은 양의 문자 정보가 포함될 수 있다. 나아가, 패키지 상품의 검색 시, 외형의 유사도(similarity) 뿐만 아니라 상품의 종류 또한 유사할 것이 요구되므로, 기존의 유사 이미지 검색과는 다른 접근 방식이 필요할 수 있다.
따라서, 본 발명은 단어의 유사도에 기반하여 이미지 내 객체 및 검색된 상품이 서로 유사한 종류인지 여부를 파악하고, 유사한 종류 여부에 따라 상품들의 표시를 제어하는 다양한 실시예들을 제안한다. 다양한 실시예들에 의하면, 이미지 내 객체에서 추출한 문자 정보가 데이터베이스에 저장된 상품에 관한 문자 정보와 일치하지 아니하더라도, 문자 정보가 속한 카테고리가 유사할 경우 높은 우선순위가 부여될 수 있다. 특히, 사용자가 포장 상품을 검색할 때, 서버가 이미지에 기반한 유사도(similarity that is based on a image) 및 문자 정보에 기반한 유사도(similarity that is based on text informaiton)를 동시에 확인함으로써, 이미 선택된 유사한 이미지의 쇼핑 목록 내의 상품들을 사용자의 의도에 부합하는 순서로 표시할 수 있다. 이에 따라, 본 발명에 따른 기술은 유사한 종류의 상품을 검색하고자 하는 사용자의 만족도를 높일 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치(101) 및 서버(108)의 블록도(300)이다. 도 3을 참고하면, 전자 장치(101)는 이미지 획득 모듈(302) 및 표시 장치(160)를 포함할 수 있다. 서버(108)는 프로세서(312), 데이터 저장소(332), 상품 정보 저장 모듈(342)를 을 포함할 수 있다.
전자 장치(101)는 질의를 하고자 하는 이미지(이하 '질의 이미지'라 칭함)를 서버(108)로 송신하고, 서버로부터 수신되는 상품들에 대한 정보를 표시할 수 있다. 서버(108)는 전자 장치(101)로부터 수신되는 질의 이미지를 이용하여 상품들을 검색하고, 사용자에게 제공할 상품들에 대한 정보를 생성 및 제공할 수 있다.
이미지 획득 모듈(302)은 촬영 기기(예: 카메라 모듈(180)) 또는 이미지 출력 기기의 화면을 포착하는 모듈(예: 표시 장치(160)) 등을 통해 질의 이미지를 획득할 수 있다. 예를 들어, 질의 이미지는 카메라 촬영 이미지, 화면 캡처 이미지 등이 될 수 있다. 또는, 이미지 획득 모듈(302)은 메모리(예: 메모리(130))에 저장된 이미지를 질의 이미지로서 획득할 수 있다. 메모리에 저장된 이미지는 사전에 촬영된 이미지, 웹이나 다른 장치(예: 전자 장치(102), 전자 장치(104) 등)로부터 전송 받은 이미지 등을 포함할 수 있다. 표시 장치(160)는 서버(108)로부터 수신된 상품들에 대한 정보를 표시할 수 있다. 도 3에 도시되지 아니하였으나, 전자 장치(101)는 프로세서(120)를 더 포함할 수 있으며, 프로세서(120)는 이미지 획득 모듈(302) 및 표시 장치(106)의 동작을 제어할 수 있다.
프로세서(312)는 서버(108)의 전반적인 동작들을 제어할 수 있다. 프로세서(312)는 이미지 특징 추출 모듈(314), 이미지 매칭 모듈(316), 이미지 인식기(318), 문자 인식기(320), 단어 벡터 변환 모듈(322), 유사도 측정 모듈(324), 우선순위 결정 모듈(326)을 포함할 수 있다. 일 실시예에 따라, 이미지 특징 추출 모듈(314), 이미지 매칭 모듈(316), 이미지 인식기(318), 문자 인식기(320), 단어 벡터 변환 모듈(322), 유사도 측정 모듈(324) 또는 우선순위 결정 모듈(326) 중 적어도 하나는 프로세서(312)의 일부 회로로서, 하드웨어로 구성될 수 있다. 또는, 이미지 특징 추출 모듈(314), 이미지 매칭 모듈(316), 이미지 인식기(318), 문자 인식기(320), 단어 벡터 변환 모듈(322), 유사도 측정 모듈(324) 또는 우선순위 결정 모듈(326) 중 적어도 하나는 소프트웨어 모듈로서, 프로세서(312)에 일시적으로 상주된(resided) 명령어/코드 또는 명령어/코드를 저장한 저장 공간일 수 있다. 이하 설명되는, 이미지 특징 추출 모듈(314), 이미지 매칭 모듈(316), 이미지 인식기(318), 문자 인식기(320), 단어 벡터 변환 모듈(322), 유사도 측정 모듈(324), 우선순위 결정 모듈(326)의 동작은 프로세서(312)의 동작으로 이해될 수 있다.
데이터 저장소(332)는 검색의 대상이 되는 후보 상품들에 대한 정보를 저장할 수 있다. 데이터 저장소(332)는 질의의 결과로서 제공 가능한 다수의 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보를 저장할 수 있다. 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보의 집합은 '상품 정보'로 지칭될 수 있다. 후보 상품과 관련된 문자 정보는 브랜드, 제조사, 명칭, 종류, 카테고리 등을 포함할 수 있다. 데이터 저장소(332)에 저장된 상품 정보는 외부 데이터베이스(예: 상품 DB1(310a), 상품 DB2(310b))로부터 제공될 수 있다. 도 3에 도시되지 아니하였으나, 서버(108)는 프로세서 및 통신 모듈을 더 포함할 수 있고, 프로세서는 통신 모듈을 통해 주기적으로 또는 이벤트에 기반하여 외부 데이터베이스로부터 상품 정보를 수집하고, 데이터 저장소(332)에 저장할 수 있다.
이미지 특징 추출 모듈(314)은 질의 이미지의 적어도 하나의 특징점을 추출할 수 있다. 예를 들어, 이미지 특징 추출 모듈(314)은 질의 이미지를 분석이 용이한 상태로 변환하고, 변환된 상태의 질의 이미지로부터 적어도 하나의 특징점을 추출할 수 있다. 이미지 매칭 모듈(316)은 이미지 특징 추출 모듈(314)에 의해 추출된 적어도 하나의 특징점을 이용하여 상품을 검색할 수 있다. 예를 들어, 이미지 매칭 모듈(316)은 질의 이미지로부터 추출된 적어도 하나의 특징점에 기반하여, 데이터 저장소(332)에 저장된 상품 정보 내의 상품 이미지 및 질의 이미지 간 이미지에 기반한 유사도를 결정하고, 일정 수준 이상의 유사도를 가지는 상품 이미지를 선택할 수 있다. 이미지 매칭 모듈(316)은 일정 수준 이상의 유사도를 가지는 적어도 하나의 상품 이미지에 대응하는 상품 정보를 상품 정보 저장 모듈(342)로 제공할 수 있다.
상품 정보 저장 모듈(342)은 이미지에 기반하여 검색된 상품들의 상품 정보를 저장할 수 있다. 예를 들어, 상품 정보 저장 모듈(342)은 이미지 매칭 모듈(316)로부터 상품 정보를 제공받거나, 또는 데이터 저장소(332)로부터 상품 정보를 읽어올 수 있다. 도 3에서, 데이터 저장소(332) 및 상품 정보 저장 모듈(342)은 별개의 구성요소들로 표현되었으나, 다른 실시예에 따라, 데이터 저장소(332) 및 상품 정보 저장 모듈(342)은 동일한 하드웨어로 구현될 수 있다.
이미지 인식기(318)는 질의 이미지에 포함된 외부 객체를 인식할 수 있다. 이미지 인식기(318)는 질의 이미지를 분석함으로써 질의 이미지에 포함된 객체의 종류, 명칭 등을 판단할 수 있다. 문자 인식기(320)는 질의 이미지에 포함된 문자들을 인식할 수 있다. 문자 인식기(320)는 OCR(optical character reader/recognition) 기능을 이용하여 질의 이미지에 포함된 외부 객체에 인쇄되거나 새겨진 문자, 숫자 등을 인식할 수 있다. 이미지 인식기(318) 및 문자 인식기(320)에 의해, 질의 이미지에 포함된 외부 객체의 형태로부터 도출되는 문자 정보가 생성될 수 있다. 문자 정보는 하나 또는 둘 이상의 단어들을 포함할 수 있다.
단어 벡터 변환 모듈(322)은 이미지 인식기(318) 및 문자 인식기(320)에 의해 생성된 문자 정보를 유사도 판단을 위한 벡터로 변환할 수 있다. 일 실시예에 따라, 단어 벡터 변환 모듈(322)은 문자의 사전적 의미, 문자 정보로부터 도출되는 상품에 대한 관련 정보(예: 상품의 카테고리, 상품의 재료, 상품의 산지 등)가 유사 또는 동일한 경우 높은 유사도를 가지도록 문자 정보를 벡터화할 수 있다. 예를 들어, 문자 정보의 벡터화는 NNLM(neural network language model), RNNLM(recurrent neural network language model), CBOW(continuous bag-of-words), 스킵-그램(skip-gram) 등과 같은 학습 모델에 기반하여 수행될 수 있다. 이러한 모델은 사전적으로 유사한 의미를 가지는 단어들과의 유사성을 비교하기에 유리하게 설계된 기법일 수 있다. 문자 정보가 복수의 단어들을 포함하는 경우, 단어 벡터 변환 모듈(322)에 의해 생성되는 벡터는 복수의 하위(sub) 벡터들을 포함할 수 있다.
유사도 측정 모듈(324)은 질의 이미지 및 저장된 상품 정보 간 문자 정보에 기반한 유사도를 판단할 수 있다. 예를 들어, 유사도 측정 모듈(324)은 질의 이미지에 대응하는 벡터 및 상품 정보 저장 모듈(342)에 저장된 상품 정보에 대응하는 벡터를 이용하여 유사도를 판단할 수 있다. 유사도는 비교되는 두 벡터들 간 각도에 따라 평가될 수 있다.
우선순위 결정 모듈(326)은 문자 정보에 기반한 유사도에 따라 검색된 상품들 간 우선순위를 결정할 수 있다. 우선순위 결정 모듈(326)은 상품 정보 저장 모듈(342)에 저장된 상품 정보에 의해 지시되는 상품들을 문자 정보에 기반한 유사도에 따라 재정렬할 수 있다. 우선순위 결정 모듈(326)은 이미지에 기반한 유사도에 따라 결정된 상품들 간 우선순위를 문자 정보에 기반한 유사도에 따라 조절(adjuting) 또는 재정렬(re-ordering)할 수 있다. 예를 들어, 높은 유사도를 가지는 상품에 높은 우선순위가 부여될 수 있다. 높은 우선순위는, 전자 장치(101)에 표시되는 경우, 해당 상품을 리스트의 상단에 표시되도록 할 수 있다. 예를 들어, 이미지에 기반한 유사도가 높음으로 인해 상위권에 속한 상품에 대한 문자 정보에 기반한 유사도가 낮으면, 우선순위 결정 모듈(326)은 해당 상품의 우선순위를 하향 조절할 수 있다. 반대로, 이미지에 기반한 유사도가 낮더라도 문자 정보에 기반한 유사도가 높으면, 우선순위 결정 모듈(326)은 해당 상품을 상위권으로 리랭킹(re-ranking)할 수 있다.
도 3의 예에 따르면, 단어 벡터 변환 모듈(322)은 이미지 인식기(318) 및 문자 인식기(320)로부터 제공되는 문자 정보를 벡터화할 수 있다. 다른 실시예에 따라, 단어 벡터 변환 모듈(322)은 상품 정보 저장 모듈(342)에 저장된 상품 정보에 포함된 문자 정보에 대한 벡터화를 더 수행할 수 있다. 문자 정보에 기반한 유사도를 판단하기 위해, 질의 이미지 및 선택된 상품에 대응하는 벡터들이 요구될 수 있다. 다양한 실시예들에 따라, 선택된 상품에 대응하는 벡터를 생성하는 벡터화 동작은 외부 데이터베이스로부터 상품 정보가 수집된 후 데이터 저장소(332)에 저장되는 과정 중에 수행되거나 또는 이미지에 기반한 유사도에 따라 상품들이 검색된 후 수행될 수 있다.
다양한 실시예들에 따르면, 서버(예: 서버(108))는 통신 모듈, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 연관하여 상품 정보로서 저장하는 데이터베이스(예: 데이터 저장소(332))를 포함하는 메모리, 및 프로세서(예: 프로세서(312))를 포함할 수 있다. 상기 프로세서는, 상기 통신 모듈을 이용하여, 전자 장치(예: 전자 장치(101))로부터 외부 객체에 대한 질의 이미지를 수신하고, 상기 데이터 베이스로부터, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하고, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보를 추출하고, 상기 추출된 문자 정보와 상기 선택된 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여, 상기 복수의 상품 정보 간 우선순위를 결정하고, 상기 수신에 대한 응답으로, 상기 통신 모듈을 이용하여, 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 상기 전자 장치로 송신할 수 있다.
다양한 실시예들에 따르면, 상기 문자 정보는, 상기 외부 객체에 대한 이미지 인식을 통해 획득되는 상기 객체의 명칭, 또는 상기 질의 이미지에 대한 문자 인식을 통해 획득되는 적어도 하나의 문자 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(312))는, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 상기 추출된 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라, 상기 복수의 상품 정보 간 우선순위를 결정할 수 있다.
다양한 실시예들에 따르면, 상기 제1 벡터는, 상기 문자 정보에 포함되는 단어의 사전적 의미, 상기 문자 정보로부터 도출되는 상기 외부 객체에 대한 관련 정보와 유사 또는 동일한 문자를 포함하는 다른 문자 정보로부터 생성된 백터와 높은 유사도를 가지도록 생성되며, 상기 외부 객체에 대한 관련 정보는, 성분, 소재, 산지, 카테고리 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 상기 문자 정보는, 복수의 단어들을 포함하고, 상기 제1 벡터는, 복수의 하위 벡터들을 포함하고, 상기 복수의 상품 정보는, 제1 상품 정보 및 제2 상품 정보를 포함하고, 상기 제1 벡터 및 상기 제2 벡터들 간 상기 비교 결과는, 상기 제1 상품 정보와의 유사도 및 상기 제2 상품 정보와의 유사도를 포함하고, 상기 제1 상품 정보와의 유사도는, 상기 복수의 하위 벡터들 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 간 비교 값들의 평균 값을 포함할 수 있다.
다양한 실시예들에 따르면, 상기 비교 값들 각각은, 상기 질의 이미지로부터 생성된 상기 복수의 하위 벡터들 중 하나 및 상기 제1 상품에 대한 문자 정보로부터 생성된 하위 벡터들 중 하나 간 각도 차이 값에 기반하여 결정될 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(312))는, 외부 데이터베이스(예: 상품 DB1(310a), 상품 DB2(310b))로부터 다수의 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보를 수집할 수 있다.
다양한 실시예들에 따르면, 전자 장치(예: 전자 장치(101))는 통신 모듈(예: 통신 모듈(190)), 디스플레이(예: 표시 장치(160)), 메모리(예: 메모리(130)), 및 프로세서(예: 프로세서(120))를 포함하고, 상기 프로세서는, 외부 객체에 대한 질의 이미지를 획득하고, 서버(예: 서버(108))로 상기 질의 이미지를 상기 통신 모듈을 이용하여 송신하고, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여 선택된 복수의 상품 정보 중 적어도 일부 및 상기 복수의 상품 정보 중 적어도 일부 간 우선순위에 대한 정보를 포함하는, 검색 결과에 대한 정보를 상기 통신 모듈을 이용하여 수신하고, 상기 검색 결과에 포함되는 상품 정보 중 적어도 하나의 상품 정보를 상기 디스플레이에 표시할 수 있다. 상기 우선순위는, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보와 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여 결정될 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(120))는, 상기 전자 장치(예: 전자 장치(101))에 구비된 촬영 장치(예: 카메라 모듈(180))를 이용한 촬영, 상기 디스플레이(예: 표시 장치(160))에 표시된 이미지를 캡쳐, 또는 상기 메모리(예: 메모리(130))에 저장된 파일을 읽음으로써 상기 질의 이미지를 획득할 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(120))는, 상단에 상기 질의 이미지가 배치되고, 하단에 상기 복수의 상품 정보 중 적어도 일부가 상기 우선순위에 따른 순서로 배치된 화면(예: 화면(1110))을 상기 디스플레이에 표시할 수 있다.
다양한 실시예들에 따르면, 상기 화면(예: 화면(1120) 또는 화면(1130))은, 상기 복수의 상품 정보 중 하나에 관련된 키워드와 관련된 상품들을 추가 검색할 수 있는 링크를 포함하는 추가 정보 또는 상기 복수의 상품 정보의 공통된 특징들을 나타내는 추가 정보 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(120))는, 상기 검색 결과에 대한 정보에 포함되는 상기 복수의 상품 정보 중 적어도 일부에 대응하는 주소 값들의 순서에 기반하여, 상기 우선순위를 확인할 수 있다.
다양한 실시예들에 따르면, 상기 프로세서(예: 프로세서(120))는, 상기 질의 이미지를 획득하기 위한 카메라 어플리케이션을 실행하고, 상기 외부 객체의 배치에 대한 안내 문구를 포함하는 화면(예: 화면(1310))을 상기 디스플레이에 표시할 수 있다.
이하 본 발명은 상술한 바와 같은 구조를 가지는 전자 장치(101) 및 서버(108)의 동작들에 대하여 설명한다. 이하 설명의 편의를 위해, '이미지에 기반한 유사도' 는 '이미지 기반 유사도(image-based similarity)', '문자 정보에 기반한 유사도'는 '문자 기반 유사도(text-based similarity)'로 지칭될 수 있다. 또한, 질의 이미지에 대한 이미지 인식 또는 문자 인식을 통해 직접적으로 도출되는 문자들은 '문자 정보'로, 문자 정보로부터 2차적 및 간접적으로 도출되는 문자들은 '관련 정보', '관련 단어', '간접 정보' 등으로 지칭될 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치(101)에서 상품 검색 서비스를 제공하기 위한 흐름도(400)이다. 도 4에 예시된 흐름도(400)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.
도 4를 참고하면, 동작 401에서, 전자 장치(101)(예: 프로세서(120))는 외부 객체에 대한 이미지를 획득할 수 있다. 예를 들어, 이미지는 전자 장치(101)에 구비된 촬영 장치(예: 카메라 모듈(180))에 의해 획득되거나, 화면에 표시된 이미지를 캡쳐함으로써 획득되거나, 저장 장치(예: 메모리(130))에 저장된 파일로부터 획득될 수 있다.
동작 403에서, 전자 장치(101)는 획득된 이미지를 서버(108)에게 송신할 수 있다. 전자 장치(101)는 획득된 이미지를 통신 모듈(190)을 통해 서버(108)로 송신할 수 있다. 전자 장치(101)는 획득된 이미지를 질의 이미지로서 서버(108)로 송신할 수 있다. 예를 들어, 전자 장치(101)는 획득된 이미지를 상품 검색을 위해 정의된 포맷으로 패킷화한 후, 획득된 이미지를 포함하는 상품 검색을 위해 정의된 포맷의 패킷을 송신할 수 있다. 다른 예로, 전자 장치(101)는 상품 검색에 대한 요청과 함께 획득된 이미지를 송신할 수 있다.
동작 405에서, 전자 장치(101)는 송신된 이미지로부터 결정된 검색 결과에 대한 정보를 서버(108)로부터 수신할 수 있다. 검색 결과에 대한 정보는 상품들에 대한 정보 및 상품들 간 우선순위에 대한 정보를 포함할 수 있다. 상품들에 대한 정보는 상품의 구매를 위해 필요한 정보에 접근할 수 있는 주소 값(예: URL(uniform resource location))들을 포함할 수 있다. 우선순위에 대한 정보는 명시적으로 지시되거나, 또는 묵시적으로 지시될 수 있다. 예를 들어, 주소 값들이 나열된 순서를 통해, 상품들의 우선순위가 묵시적으로 표현될 수 있다.
동작 407에서, 전자 장치(101)는 상품들 중 적어도 일부에 대한 정보 표시할 수 있다. 전자 장치(101)는 표시 장치(160)에 상품들에 대한 정보를 표시하며, 이때, 검색 결과에 의해 지시되는 모든 상품들의 정보 또는 상품들 중 일부에 대한 정보가 표시될 수 있다. 검색 결과에 포함된 상품들에 대한 정보가 주소 값들인 경우, 전자 장치(101)는 주소 값들을 이용하여 상품들의 구매에 대한 정보를 획득(예: URL을 이용하여 요청 및 수신)한 후, 상품들의 구매에 대한 정보를 표시할 수 있다.
도 5는 다양한 실시예들에 따른 서버(108)에서 상품들에 대한 정보를 제공하기 위한 흐름도(500)이다. 도 5에 예시된 흐름도(500)의 동작 주체는 서버(108) 또는 서버(108)의 구성요소(예: 프로세서(312))로 이해될 수 있다.
도 5를 참고하면, 동작 501에서, 서버(108) (예: 프로세서(312))는 외부 객체에 대한 이미지를 수신할 수 있다. 이미지는 전자 장치(101)로부터 수신될 수 있다. 이미지는 상품 검색에 대한 요청과 함께 수신될 수 있다.
동작 503에서, 서버(108)는 수신된 이미지에 기반하여 복수의 상품들을 선택할 수 있다. 서버(108)는 상품 검색을 위해 수신된 이미지, 즉, 질의 이미지 및 사전에 수집된 상품 정보에 포함된 상품 이미지들 간 이미지 기반 유사도들을 측정하고, 측정된 유사도들에 따라 복수의 상품들을 선택할 수 있다. 예를 들어, 임계치 이상의 유사도를 가지는 상품들이 선택될 수 있다.
동작 505에서, 서버(108)는 외부 객체에 대한 문자 정보를 이용하여 복수의 상품들 간 우선순위를 결정할 수 있다. 서버(108)는 질의 이미지로부터 획득되는 문자 정보를 이용하여 이미지 기반 유사도에 따라 결정된 우선순위를 조절 또는 재정렬할 수 있다. 예를 들어, 서버(108)는 질의 이미지로부터 외부 객체에 대한 문자 정보를 생성하고, 생성된 문자 정보를 벡터화함으로써 질의 이미지에 대응하는 벡터를 생성한 후, 생성된 벡터를 이용하여 문자 기반 유사도를 판단하고, 문자 기반 유사도에 기반하여 우선순위를 결정할 수 있다.
동작 507에서, 서버(108)는 질의 이미지로부터 결정된 검색 결과에 대한 정보를 서버(108)로부터 송신할 수 있다. 검색 결과에 대한 정보는 복수의 상품들에 대한 정보 및 복수의 상품들 간 우선순위에 대한 정보를 포함할 수 있다. 우선순위에 대한 정보는 명시적 또는 묵시적으로 지시될 수 있다. 우선순위에 대한 정보가 명시적으로 지시되는 경우, 서버(108)는 우선순위를 나타내는 값들을 상품의 구매를 위해 필요한 정보에 접근할 수 있는 주소 값들과 함께 송신할 수 있다. 우선순위에 대한 정보가 묵시적으로 지시되는 경우, 서버(108)는 상품의 구매를 위해 필요한 정보에 접근할 수 있는 주소 값들의 배치 순서를 우선순위에 따라 조절한 후, 주소 값들을 송신할 수 있다.
도 5를 참고하여 설명한 실시예에서, 서버(108)는 선택된 복수의 상품들 간 우선순위를 결정한 후, 복수의 상품들 중 적어도 일부에 대한 정보를 송신할 수 있다. 다른 실시예에 따라, 서버(108)는 문자 기반 유사도에 기반하여 선택된 복수의 상품들 중 적어도 하나를 제외할 수 있다. 다시 말해, 서버(108)는 문자 기반 유사도에 기반하여 상품 정보 저장 모듈(342)에 저장된 상품들 중 적어도 하나를 삭제할 수 있다. 예를 들어, 서버(108)는 기준 값 이하의 이미지 기반 유사도를 가지는 적어도 하나의 상품을 제외할 수 있다. 다른 예로, 서버(108)는 상위 순위의 이미지 기반 유사도를 가지는 정해진 개수의 상품들(예: 이미지 기반 유사도의 내림차순으로 10개의 상품들) 외 나머지 적어도 하나의 상품을 제외할 수 있다. 이때, 또 다른 실시예에 따라, 서버(108)는 선택된 상품들의 개수가 임계 개수 이하이면, 기준 값 이하의 이미지 기반 유사도를 가지는 상품이 존재하더라도, 제외 동작을 생략할 수 있다.
도 5를 참고하여 설명한 실시예에서, 서버(108)는 복수의 상품들에 대한 정보를 포함하는 검색 결과에 대한 정보를 송신할 수 있다. 여기서, 검색 결과에 의해 지시되는 상품들은 동작 503에서 선택된 모든 상품들 또는 선택된 상품들 중 일부일 수 있다. 전자 장치(101)에서 동시에 표시 가능한 상품 정보의 양을 고려하여, 복수의 상품들 중 일부에 대한 정보가 송신될 수 있고, 이후 전자 장치(101)로부터의 추가적인 요청에 따라 복수의 상품들 중 나머지에 대한 정보가 더 송신될 수 있다.
도 6은 다양한 실시예들에 따른 서버(108)에서 이미지에 기반하여 상품들을 검색하기 위한 흐름도(600)이다. 도 6은 도 5의 동작 503에 대한 일 예로서, 도 6에 예시된 흐름도(600)의 동작 주체는 서버(108) 또는 서버(108)의 구성요소(예: 프로세서(312))로 이해될 수 있다.
도 6을 참고하면, 동작 601에서, 서버(108) (예: 프로세서(312))는 질의 이미지의 특징 정보를 추출할 수 있다. 예를 들어, 서버(108)는 질의 이미지를 분석이 용이한 상태로 변환하고(예: 필터링, 분할 등), 변환된 상태의 질의 이미지로부터 적어도 하나의 특징 정보를 추출할 수 있다. 특징 정보는 특징점의 위치 및 그 위치에 대응되는 디스크립터(descriptor)를 포함할 수 있다.
동작 603에서, 서버(108)는 질의 이미지의 특징 정보를 기반으로 데이터 저장소(332)에 저장된 상품 이미지들과 매칭을 수행할 수 있다. 이미지들 간 매칭을 통해, 서버(108)는 이미지 기반 유사도를 측정할 수 있으며, 이미지 기반 유사도로부터 상품 이미지 별 질의 이미지에 대한 매칭률들을 결정할 수 있다.
서버(108)는 질의 이미지와 서버(108)에 저장된 상품 이미지를 비교하는 동작을 수행할 수 있다. 이미지들을 비교하는 동작은 질의 이미지의 특징 정보 및 상품 이미지들의 특징 정보를 비교하는 동작을 통해 수행될 수 있다. 특징 정보는 일반적으로 벡터의 형태로 표현될 수 있고, 서버(108)는 벡터의 유사도를 계산하는 방식에 따라 두 이미지들 간 유사도를 파악할 수 있다. 예를 들어, 이미지 기반 유사도는 0 내지 1 사이의 숫자 값으로 표현될 수 있다. 서버(108)는 숫자 값을 기반으로 질의 이미지와 가장 유사한 상품 이미지를 순서대로 추출할 수 있다. 서버(108)는 질의 이미지와 유사도가 높은 상품 이미지들을 별도의 데이터로 관리할 수 있다. 예를 들어, 서버(108)는 상품 정보 저장 모듈(342)와 같이 상품들 중 이미지 기반 유사도가 높은 상위 N개의 상품들을 별도의 리스트로 관리할 수 있다. 리스트는 서버(108)에 저장되어 있거나, 전자 장치(101)로 전달될 수도 있다.
동작 605에서, 서버(108)는 매칭 결과를 기반으로 특정 매칭률 이상의 상품들을 선택할 수 있다. 서버(108)는 일정 수준 이상의 유사도를 가지는 적어도 하나의 상품 이미지를 확인하고, 확인된 상품 이미지에 대응하는 상품을 확인할 수 있다.
도 7은 다양한 실시예들에 따른 서버(108)에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 흐름도(700)이다. 도 8은 다양한 실시예들에 따른 문자 정보의 벡터화 결과의 예시이다. 도 7은 도 5의 동작 505에 대한 일 예로서, 도 7에 예시된 흐름도(700)의 동작 주체는 서버(108) 또는 서버(108)의 구성요소(예: 프로세서(312))로 이해될 수 있다.
동작 701에서, 서버(108) (예: 프로세서(312))는 질의 이미지에 기반하여 외부 객체에 대한 문자 정보를 생성할 수 있다. 외부 객체에 대한 문자 정보는 질의 이미지에 대한 이미지 인식 및 문자 인식을 통해 획득될 수 있다. 예를 들어, 문자 정보는 외부 객체의 이미지 인식 결과에 따른 명칭, 문자 인식 결과에 따른 외부 객체에 표현된 문자를 포함할 수 있다. 예를 들어, 도 8의 예와 같이, 질의 이미지로부터 생성된 문자 정보(810)는 'SAM', 'Selenium'을 포함할 수 있다.
동작 703에서, 서버(108)는 생성된 문자 정보로부터 제1 벡터를 생성할 수 있다. 일 실시예에 따라, 서버(108)는 문자의 사전적 의미, 문자 정보로부터 도출되는 상품에 대한 관련 정보(예: 카테고리, 성분, 재료, 산지 등)를 포함하는 다른 문자 정보로부터 생성된 백터와 높은 유사도를 가지도록 제1 벡터를 생성할 수 있다. 일 실시예에 따라, 서버(108)는 질의 이미지로부터 획득된 문자 정보에 대한 관련 정보를 확인(예: 단어 관련 사전(dictionary) 데이터베이스를 이용하여 확인)한 후, 관련 정보를 반영하여 문자 정보를 벡터화할 수 있다. 예를 들어, 제1 벡터는 NNLM, RNNLM, CBOW, 스킵-그램 등과 같은 학습 모델에 기반하여 생성될 수 있다. 이에 따라, 문자 정보는 물론 관련 정보가 반영된, 질의 이미지에 대응하는 제1 벡터가 결정될 수 있다. 예를 들어, 도 8의 예와 같이, 질의 이미지로부터 생성된 문자 정보(810)에 포함된 'SAM', 'Selenium'은 [0.428044, 0.168840, -0.62352] 및 [0.404870, 0.55059, -0.799668]로 벡터화될 수 있다.
동작 705에서, 서버(108)는 복수의 상품들에 관련된 문자 정보로부터 제2 벡터들을 생성할 수 있다. 서버(108)는 이미지 기반 유사도에 따라 선택된 복수의 상품들의 상품 정보에 포함되는 문자 정보를 확인하고, 문자 정보로부터 복수의 상품들에 대응하는 제2 벡터들을 생성할 수 있다. 예를 들어, 도 8의 예와 같이, N개의 상품들이 선택된 경우, 제1 상품에 대한 문자 정보(822-1)는 'Cleaning', 'Supply'이고, 대응하는 벡터는 [0.08676, 0.10179, -1.024182], [0.07617, 1.34426, -0.28996]로 생성되며, 제2 상품에 대한 문자 정보(822-2)는 'Laundry', 'Care'이고, 대응하는 벡터는 [0.08710, 0.16371, -0.47178], [0.12856, 0.08714, -0.19132]로 생성되며, 제N 상품에 대한 문자 정보(822-N)는 'Supplements', 'Vitamins'이고, 대응하는 벡터는 [0.16544, -0.02085, -0.64335], [0.2456841, 0.8731220, -0.54321]로 생성될 수 있다.
동작 707에서, 서버(108)는 제1 벡터 및 제2 벡터들에 기반하여 복수의 상품들 간 우선순위를 결정할 수 있다. 우선순위는 벡터들 간 비교에 따라 결정되는 문자 기반 유사도에 따라 결정될 수 있다. 제1 벡터 및 제2 벡터들 각각이 다수의 하위 벡터들을 포함하는 경우, 문자 기반 유사도는 하위 벡터 별 비교 결과의 평균으로서 결정될 수 있다. 예를 들어, 도 8과 같은 경우, 질의 이미지에 대응하는 문자 정보(810)는 2개의 하위 벡터들을 포함하며, 상품들 각각에 대응하는 문자 정보(822-1, 822-2, 822-N) 각각은 2개의 하위 벡터들을 포함한다. 제1 상품과의 문자 기반 유사도를 결정하는 경우, 질의 이미지에 대응하는 문자 정보(810)로부터 생성된 2개의 하위 벡터들 및 제1 상품에 대응하는 문자 정보(822-1)로부터 생성된 2개의 하위 벡터들 간 조합 가능한 4개의 하위 벡터 쌍들에 대한 4개의 비교 값들이 산출되고, 서버(108)는 4개의 비교 값들을 평균화함으로써 문자 기반 유사도를 결정할 수 있다. 여기서, 비교 값은 비교되는 2개의 하위 벡터들 간 각도 차이 값일 수 있다. 다른 실시예에 따라, 복수의 비교 값들을 평균화함에 있어서, 대응하는 문자의 속성에 따라 서로 다른 가중치들이 부여될 수 있다. 예를 들어, 성분이 더 중요한 상품의 경우, 성분을 나타내는 문자(예: 'Selenium')으로부터 생성된 하위 벡터(예: [0.404870, 0.55059, -0.799668])에 상대적으로 더 높은 가중치가 부여될 수 있다.
도 9는 다양한 실시예들에 따른 서버(108)에서 문자 정보에 기반하여 상품들 간 우선순위를 결정하기 위한 다른 흐름도(900)이다. 도 9은 도 5의 동작 505에 대한 일 예로서, 도 9에 예시된 흐름도(900)의 동작 주체는 서버(108) 또는 서버(108)의 구성요소(예: 프로세서(312))로 이해될 수 있다.
도 9를 참고하면, 동작 901에서, 서버(108) (예: 프로세서(312))는 질의 이미지에서 문자 정보를 획득할 수 있다. 서버(108)는 질의 이미지의 특징 정보를 추출하는 것에서 나아가 질의 이미지와 관련된 문자 정보도 추출할 수 있다. 문자 정보는 OCR 등을 이용하여 추출되는 질의 이미지에 포함된 실제 문자일 수 있고, 이미지 인식기(318)에 의해 추출되는 카테고리 명칭, 이미지의 제목, 상품명 등을 포함할 수 있다.
동작 903에서, 서버(108)는 질의 이미지와 관련된 문자 정보를 벡터화할 수 있다. 서버(108)는 질의 이미지로부터 직접적으로 도출되는 문자 정보(예: 문자 인식 및 이미지 인식으로 통해 획득되는 문자 정보)를 질의 이미지로부터 간접적으로 도출되는 관련 정보를 고려하여 벡터화할 수 있다. 예를 들어, 간접적으로 도출되는 관련 정보는 질의 이미지에 의해 표현되는 외부 객체로부터 미리 정의된 사전을 통해 확인되는 정보(예: 카테고리, 성분, 산지, 재료 등)를 포함할 수 있다.
동작 905에서, 서버(108)는 데이터 저장소에서 추출한 상품 이미지와 문자 정보를 기반으로 유사도를 측정할 수 있다. 서버(108)는 질의 이미지의 문자 정보에 대한 벡터화를 통해 획득되는 벡터를 미리 리스트화된 상품들에 대한 문자 정보로부터 획득되는 벡터들과 비교할 수 있다. 상품들에 대한 문자 정보는 상품명, 카테고리, 설명 등을 포함할 수 있다. 상품들에 대한 문자 정보는 질의 이미지의 문자 정보와 같이 벡터화된 후, 비교될 수 있다. 이때, 비교 동작은 단어 별로 비교하는 방식에 따를 수 있다. 다른 실시예에 따라, 대표 단어에 대한 비교를 통한 유사도 계산, 유사도가 높은 단어들에 대한 평균 계산, 단어 유사도의 분포를 보고 아웃라이어(outlier)를 제외한 데이터를 평균하는 방법 등이 사용될 수 있다. 이러한 방법을 통해서, 서버(108)는 질의 이미지와 리스트에 속한 상품들 간 문자 기반 유사도를 산출할 수 있다.
동작 907에서, 서버(108)는 유사도를 기반으로 상품들을 재정렬할 수 있다. 이미지 기반 유사도를 통하여 선택된 상품들은 문자 기반 유사도의 계산을 통해서 재정렬될 수 있다. 서버(108)는 이미지 기반 유사도 및 문자 기반 유사도를 종합적으로 고려할 수 있다. 예를 들어, 서버(108)는 이미지 기반 유사도 및 문자 기반 유사도의 평균이 높은 순서로 상품을 재정렬할 수 있다. 상품의 카테고리에 따라 이미지 기반 유사도를 주로 판단하여야 하는 경우, 서버(108)는 이미지 기반 유사도에 높은 가중치를 부여할 수 있다. 반대의 경우, 서버(108)는 문자 기반 유사도에 높은 가중치를 부여할 수 있다.
도 10은 다양한 실시예들에 따른 전자 장치(101)에서 상품들에 대한 정보를 표시하기 위한 흐름도(1000)이다. 도 11a 내지 도 11c는 다양한 실시예들에 따른 전자 장치(101)에 표시되는 상품들에 대한 정보의 예시들이다. 도 10은 도 4의 동작 407에 대한 일 예로서, 도 10에 예시된 흐름도(1000)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.
도 10을 참고하면, 동작 1001에서, 전자 장치(101)(예: 프로세서(120)는 상품들의 적어도 일부에 대한 우선순위를 확인할 수 있다. 여기서, 상품들은 서버(108)로부터 수신된 복수의 상품들에 대한 정보에 의해 지시되는 상품들을 포함할 수 있다. 여기서, 우선순위는 명시적으로 또는 묵시적으로 지시될 수 있다. 예를 들어, 우선순위가 상품의 구매를 위해 필요한 정보에 접근할 수 있는 주소 값의 순서에 따르는 경우, 전자 장치(101)는 주소 값들의 순서에 따라 우선순위를 확인할 수 있다.
동작 1003에서, 전자 장치(101)는 우선순위에 따라 상품들 중 적어도 일부를 디스플레이(예: 표시 장치(160))에 표시할 수 있다. 전자 장치(101)에 구비된 디스플레이의 화면 크기에 따라, 수신된 상품들에 대한 정보를 동시에 모두 표시할 수 없는 경우, 상품들 중 일부에 대한 정보만 표시될 수 있다. 이후, 사용자의 드래그(drag) 입력에 따라, 나머지 상품들에 대한 정보가 표시될 수 있다. 예를 들어, 도 11a와 같이, 전자 장치(101)는 상단에 질의 이미지(1112)를 포함하고, 하단에 우선순위에 따라 제N 상품(1114a), 제2 상품(1114b), 제1 상품(1114c)을 순서대로 포함하는 검색 결과 화면(1110)을 표시할 수 있다.
다른 실시예에 따라, 전자 장치(101)는 질의 이미지로부터 추출된 문자 정보와 높은 유사도를 가지는 상품에 관련된 키워드를 활용한 추가 정보로서 표시할 수 있다. 예를 들어, 도 11b와 같이, 전자 장치(101)는 상단에 질의 이미지(1112)를 포함하고, 하단에 우선순위에 따라 제N 상품(1114a), 제2 상품(1114b), 제1 상품(1114c)을 순서대로 포함하고, 이에 더하여 중간에 특정 상품에 관련된 키워드를 포함하는 추가 정보(1122)를 더 포함하는 검색 결과 화면(1120)을 표시할 수 있다. 여기서, 추가 정보(1122)는 해당 키워드와 관련된 상품들을 추가 검색할 수 있는 링크를 포함할 수 있다. 이를 위해, 서버(108)는 전자 장치(101)로 유사도에서 높은 점수가 나온 상품에 관련된 키워드에 대한 정보 또는 추가 검색을 위한 주소 값을 송신할 수 있다.
또 다른 실시예에 따라, 전자 장치(101)는 질의 이미지로부터 추출된 문자 정보와 높은 유사도를 가지는 상품들의 공통된 특징을 가진 상품들을 추가 검색하기 위한 항목(예: 버튼)을 더 표시할 수 있다. 예를 들어, 도 11c와 같이, 전자 장치(101)는 상단에 질의 이미지(1112)를 포함하고, 하단에 우선순위에 따라 제N 상품(1114a), 제2 상품(1114b), 제1 상품(1114c)을 순서대로 포함하고, 이에 더하여 중간에 상품들의 공통된 특징들을 나타내는 항목들로서 제1 버튼(1134a), 제2 버튼(1134b), 제2 3 버튼(1134bc)을 더 포함하는 검색 결과 화면(1130)을 표시할 수 있다. 이를 위해, 서버(108)는 전자 장치(101)로 버튼들을 통해 표현될 특징들에 대한 정보 또는 추가 검색을 위한 주소 값들을 송신할 수 있다.
도 12는 다양한 실시예들에 따른 전자 장치(101)에서 상품 검색을 위한 질의 이미지를 획득하기 위한 흐름도(1200)이다. 도 13은 다양한 실시예들에 따른 전자 장치(101)에서 안내 문구를 포함하는 촬영 인터페이스의 예시이다. 도 12는 도 4의 동작 401에 대한 일 예로서, 도 12에 예시된 흐름도(1200)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.
도 12를 참고하면, 동작 1201에서, 전자 장치(101)(예: 프로세서(120))는 카메라 어플리케이션 실행할 수 있다. 사용자가 카메라 어플리케이션의 아이콘을 터치함에 응답하여, 전자 장치(101)는 카메라 어플리케이션을 실행할 수 있다. 이에 따라, 전자 장치(101)는 카메라 모듈(180)을 활성화시킬 수 있다.
동작 1203에서, 전자 장치(101)는 상품 검색 명령이 발생하는지 판단할 수 있다. 예를 들어, 카메라 어플리케이션의 실행 화면은 상품 검색을 위한 버튼을 포함할 수 있다. 상품 검색을 위한 버튼이 터치됨을 검출함에 따라, 전자 장치(101)는 상품 검색 명령의 발생을 인식할 수 있다.
동작 1205에서, 전자 장치(101)는 촬영에 대한 안내 문구를 표시할 수 있다. 안내 문구는 외부 객체에 대한 정보의 추출이 용이하도록 질의 이미지를 캡쳐하기 위해 사용자에게 요구되는 사항을 설명하는 인터페이스일 수 있다. 에를 들어, 도 13과 같이, 전자 장치(101)는 상단에 프리뷰 이미지(1302), 하단에 안내 문구(1304)를 포함하는 화면(1310)을 표시할 수 있다. 도 13의 예에서, 안내 문구(1304)는 "상품을 화면 중앙에 놓아주세요"라는 문장을 포함하나, 이는 일 예로서, 다른 문장이 포함될 수 있다. 또한, 도 13의 예에서, 안내 문구(1304)는 프리뷰 이미지(1302)와 분리된 영역에 표시되나, 이는 일 예로서, 안내 문구(1304)의 적어도 일부는 프리뷰 이미지(1302)와 중첩적으로 표시될 수 있다.
동작 1207에서, 전자 장치(101)는 이미지를 캡쳐할 수 있다. 일 실시예에 따라, 이미지는 사용자의 촬영 버튼의 터치 입력에 응하여 캡쳐될 수 있다. 다른 실시예에 따라, 이미지는 미리 정의된 조건을 만족함에 응하여 사용자의 터치입력 없이 캡쳐될 수 있다. 예를 들어, 미리 정의된 조건은 동일한 피사체가 일정 시간 이상 프리뷰(preview) 화면에 포착되는 것, 피사체가 카메라 앵글의 일정 영역 내에 위치하는 것 등으로 정의될 수 있다.
다양한 실시 예들에 따르면, 서버(예: 서버(108))의 동작 방법은, 전자 장치(예: 전자 장치(101))로부터 외부 객체에 대한 질의 이미지를 수신하는 동작, 상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하는 동작, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라, 상기 복수의 상품 정보 간 우선순위를 결정하는 동작, 및 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 포함하는 검색 결과에 대한 정보를 상기 전자 장치에게 송신하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 문자 정보는, 상기 외부 객체에 대한 이미지 인식을 통해 획득되는 상기 객체의 명칭, 또는 상기 질의 이미지에 대한 문자 인식을 통해 획득되는 적어도 하나의 문자 중 적어도 하나를 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 제1 벡터는, 상기 문자 정보에 포함되는 단어의 사전적 의미, 상기 문자 정보로부터 도출되는 상기 외부 객체에 대한 관련 정보와 유사 또는 동일한 문자를 포함하는 다른 문자 정보로부터 생성된 백터와 높은 유사도를 가지도록 생성되며, 상기 외부 객체에 대한 관련 정보는, 성분, 소재, 산지, 카테고리 중 적어도 하나를 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 제1 벡터는, NNLM, RNNLM, CBOW 또는 스킵-그램 중 하나에 기반한 학습 모델을 이용하여 생성될 수 있다.
다양한 실시 예들에 따르면, 서버(예: 서버(108))의 동작 방법은, 외부 데이터베이스(예: 상품 DB1(310a), 상품 DB2(310b))로부터 다수의 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보를 수집하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 문자 정보는, 복수의 단어들을 포함하고, 상기 제1 벡터는, 복수의 하위 벡터들을 포함하고, 상기 제1 벡터는, 복수의 하위 벡터들을 포함하고, 상기 복수의 상품 정보는, 제1 상품 정보 및 제2 상품 정보를 포함하고, 상기 제1 벡터 및 상기 제2 벡터들 간 상기 비교 결과는, 상기 제1 상품 정보와의 유사도 및 상기 제2 상품 정보와의 유사도를 포함하고, 상기 제1 상품 정보와의 유사도는, 상기 복수의 하위 벡터들 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 간 비교 값들의 평균 값을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 비교 값들 각각은, 상기 질의 이미지로부터 생성된 상기 복수의 하위 벡터들 중 하나 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 중 하나 간 각도 차이 값에 기반하여 결정될 수 있다.
상술한 다양한 실시예들에 따른 검색 기술은 문자 기반 유사도를 이용한 우선순위의 재정렬을 수행함으로써, 사용자가 검색하고자 하는 객체와 동일한 객체뿐만 아니라 동일한 카테고리에 속하는 다른 상품들까지 제시할 수 있는 효과를 가진다. 이에 따라, 다양한 실시예들에 따른 검색 기술은 사용자 검색 목적에 부합하는 만족할 만한 결과를 제공할 수 있다.
도 14 내지 도 16은 다양한 실시예들에 따른 상품 검색 서비스를 통한 검색 결과의 예시들이다.
도 14의 질의 이미지(1402)는 성분을 나타내는 'selenium'라는 문자가 인쇄된 케이스를 포함하는 건강 보조식품을 촬영한 이미지이다. 이미지 기반 유사도만으로 상품을 검색한 경우, 케이스의 외형이 유사한 청소 세제(1412), 세탁 세제(1414)가 검색되었다. 본 발명의 다양한 실시예들에 따라, 서버(108)는 'selenium'이라는 문자 정보의 의미를 파악하고, 문자 정보가 영양제에 가까운 단어임을 판단할 수 있다. 이에 따라, 서버(108)는 영양제 종류의 상품들에 대한 검색 결과가 도출된다. 결과적으로, 이미지의 유사도만으로 판단했을 때 상위 항목이었던 청소 세제(1412)가 하위 항목으로 재정렬되고, 동일한 종류인 영양제 상품들(1422, 1424) 상위 항목으로 재정렬될 수 있다. 따라서, 사용자가 정확히 찾는 객체가 아닐지라도, 사용자는 동일한 종류의 상품들을 상위 항목에서 확인할 수 있다.
도 15의 질의 이미지(1520)는 상표를 나타내는 'Neo'라는 문자가 인쇄된 휴대용 휴지를 촬영한 이미지이다. 질의 이미지(1520)에 대하여 문자 매칭 기반으로 상품을 검색하면, 동일한 'Neo'를 상표로 사용하는 지갑(1512), 가방들(1514, 1516)이 검색될 수 있다. 즉, 질의 이미지(1502)에 포함된 단어를 그대로 검색에 사용하면, 부정확한 결과가 야기될 수 있다. 따라서, 본 발명의 다양한 실시예들과 같이, 단어의 의미를 파악하고 검색되는 이미지의 종류 정보와 비교할 필요가 있다.
도 16의 질의 이미지(1530)는 제조 국가를 나타내는 'KOREA'라는 문자 및 상품 종류를 나타내는 '면도기'라는 문자가 인쇄된 표장상자를 포함하는 전기 면도기를 촬영한 이미지이다. 문자 매칭 또는 이미지의 유사성에 기반한 경우, 상품 검색 결과는 'KOREA'를 제조 국가로하는 자동차(612), 포장상자의 외형이 유사하고 제조 국가가 'KOREA'인 후레쉬(1614) 등이 결과로서 제시될 수 있다. 그러나, '면도기'라는 문자의 의미를 인식하고, 상품의 카테고리를 반영한다면, 유사한 상품인 수동 면도기(1622)가 검색 결과로서 제시될 수 있다. 다시 말해, 도 16d과 같이, 이미지의 유사성이 조금 떨어지더라도, 인식된 단어의 의미를 조합한 결과, 수동 면도기(1622)가 검색되었다. 이와 같이, 본 발명의 다양한 실시예들에 따른 검색 기술은, OCR 단어가 오인식되거나, 포괄적인 단어가 검색되어도, 단어를 조합해서 의미를 찾기 때문에, 상품의 종류를 파악할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 어떤 구성요소가 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 통합 이전에 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
Claims (20)
- 서버에 있어서,
통신 모듈;
상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 연관하여 상품 정보로서 저장하는 데이터 베이스를 포함하는 메모리; 및
프로세서를 포함하며, 상기 프로세서는,
상기 통신 모듈을 이용하여, 전자 장치로부터 외부 객체에 대한 질의 이미지를 수신하고,
상기 데이터 베이스로부터, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하고,
상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보를 추출하고,
상기 추출된 문자 정보와 상기 선택된 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여, 상기 복수의 상품 정보 간 우선순위를 결정하고,
상기 수신에 대한 응답으로, 상기 통신 모듈을 이용하여, 상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 상기 전자 장치로 송신하고,
상기 문자 정보는, 상기 외부 객체에 대한 이미지 인식을 통해 획득되는 상기 객체의 명칭, 또는 상기 질의 이미지에 대한 문자 인식을 통해 획득되는 적어도 하나의 문자 중 적어도 하나로 구성되는 복수의 단어로부터 조합된 것이고,
상기 프로세서는, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 상기 추출된 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라, 상기 복수의 상품 정보 간 우선순위를 결정하는 서버.
- 삭제
- 삭제
- 제1항에 있어서,
상기 제1 벡터는, 상기 문자 정보에 포함되는 단어의 사전적 의미, 상기 문자 정보로부터 도출되는 상기 외부 객체에 대한 관련 정보와 유사 또는 동일한 문자를 포함하는 다른 문자 정보로부터 생성된 백터와 높은 유사도를 가지도록 생성되며,
상기 외부 객체에 대한 관련 정보는, 성분, 소재, 산지, 카테고리 중 적어도 하나를 포함하는 서버.
- 제1항에 있어서,
상기 제1 벡터는, 복수의 하위 벡터들을 포함하고,
상기 복수의 상품 정보는, 제1 상품 정보 및 제2 상품 정보를 포함하고,
상기 제1 벡터 및 상기 제2 벡터들 간 상기 비교 결과는, 상기 제1 상품 정보와의 유사도 및 상기 제2 상품 정보와의 유사도를 포함하고,
상기 제1 상품 정보와의 유사도는, 상기 복수의 하위 벡터들 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 간 비교 값들의 평균 값을 포함하는 서버.
- 제5항에 있어서,
상기 비교 값들 각각은, 상기 질의 이미지로부터 생성된 상기 복수의 하위 벡터들 중 하나 및 상기 제1 상품에 대한 문자 정보로부터 생성된 하위 벡터들 중 하나 간 각도 차이 값에 기반하여 결정되는 서버.
- 제1항에 있어서,
상기 프로세서는, 외부 데이터베이스로부터 다수의 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보를 수집하는 서버.
- 서버의 동작 방법에 있어서,
전자 장치로부터 외부 객체에 대한 질의 이미지를 수신하는 동작;
상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 이미지의 유사도에 기반하여, 상기 외부 객체에 대응하는 복수의 상품 정보를 선택하는 동작;
상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라, 상기 복수의 상품 정보 간 우선순위를 결정하는 동작; 및
상기 복수의 상품 정보 중 적어도 일부 및 상기 우선순위에 대한 정보를 포함하는 검색 결과에 대한 정보를 상기 전자 장치에게 송신하는 동작을 포함하고,
상기 문자 정보는, 상기 외부 객체에 대한 이미지 인식을 통해 획득되는 상기 객체의 명칭, 또는 상기 질의 이미지에 대한 문자 인식을 통해 획득되는 적어도 하나의 문자 중 적어도 하나로 구성되는 복수의 단어로부터 조합된 것인 방법.
- 삭제
- 제8항에 있어서,
상기 제1 벡터는, 상기 문자 정보에 포함되는 단어의 사전적 의미, 상기 문자 정보로부터 도출되는 상기 외부 객체에 대한 관련 정보와 유사 또는 동일한 문자를 포함하는 다른 문자 정보로부터 생성된 백터와 높은 유사도를 가지도록 생성되며,
상기 외부 객체에 대한 관련 정보는, 성분, 소재, 산지, 카테고리 중 적어도 하나를 포함하는 방법.
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제8항에 있어서,
상기 제1 벡터는, NNLM(neural network language model), RNNLM(recurrent neural network language model), CBOW(continuous bag-of-words) 또는 스킵-그램(skip-gram) 중 하나에 기반한 학습 모델을 이용하여 생성되는 방법.
- 제8항에 있어서,
외부 데이터베이스로부터 다수의 후보 상품들에 대한 상품 이미지 및 후보 상품과 관련된 문자 정보를 수집하는 동작을 더 포함하는 방법.
- 제8항에 있어서,
상기 제1 벡터는, 복수의 하위 벡터들을 포함하고,
상기 복수의 상품 정보는, 제1 상품 정보 및 제2 상품 정보를 포함하고,
상기 제1 벡터 및 상기 제2 벡터들 간 상기 비교 결과는, 상기 제1 상품 정보와의 유사도 및 상기 제2 상품 정보와의 유사도를 포함하고,
상기 제1 상품 정보와의 유사도는, 상기 복수의 하위 벡터들 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 간 비교 값들의 평균 값을 포함하는 방법.
- ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제13항에 있어서,
상기 비교 값들 각각은, 상기 질의 이미지로부터 생성된 상기 복수의 하위 벡터들 중 하나 및 상기 제1 상품 정보에 포함된 문자 정보로부터 생성된 하위 벡터들 중 하나 간 각도 차이 값에 기반하여 결정되는 방법.
- 전자 장치에 있어서,
통신 모듈;
디스플레이;
메모리; 및
프로세서를 포함하고, 상기 프로세서는,
외부 객체에 대한 질의 이미지를 획득하고,
서버로 상기 질의 이미지를 상기 통신 모듈을 이용하여 송신하고,
상품에 대응하는 하나 이상의 상품 이미지와 상기 상품과 관련된 문자 정보를 포함하는 상품 정보 중, 상기 하나 이상의 상품 이미지와 상기 질의 이미지의 유사도에 기반하여 선택된 복수의 상품 정보 중 적어도 일부 및 상기 복수의 상품 정보 중 적어도 일부 간 우선순위에 대한 정보를 포함하는, 검색 결과에 대한 정보를 상기 통신 모듈을 이용하여 수신하고,
상기 검색 결과에 포함되는 상품 정보 중 적어도 하나의 상품 정보를 상기 디스플레이에 표시하며,
상기 우선순위는, 상기 질의 이미지에 포함된 상기 외부 객체에 대한 문자 정보와 상기 복수의 상품 정보에 포함된 문자 정보의 비교에 기반하여 결정되고, 상기 질의 이미지에 포함된 상기 외부 객체에 대해 추출된 문자 정보로부터 생성된 제1 벡터 및 상기 복수의 상품 정보에 포함된 문자 정보로부터 생성된 제2 벡터들 간 비교 결과에 따라 결정되고,
상기 문자 정보는, 상기 외부 객체에 대한 이미지 인식을 통해 획득되는 상기 객체의 명칭, 또는 상기 질의 이미지에 대한 문자 인식을 통해 획득되는 적어도 하나의 문자 중 적어도 하나로 구성되는 복수의 단어로부터 조합된 것인 전자 장치.
- ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 프로세서는, 상기 전자 장치에 구비된 촬영 장치를 이용한 촬영, 상기 디스플레이에 표시된 이미지를 캡쳐, 또는 상기 메모리에 저장된 파일을 읽음으로써 상기 질의 이미지를 획득하는 전자 장치.
- ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 프로세서는, 상단에 상기 질의 이미지가 배치되고, 하단에 상기 복수의 상품 정보 중 적어도 일부가 상기 우선순위에 따른 순서로 배치된 화면을 상기 디스플레이에 표시하는 전자 장치.
- ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈제17항에 있어서,
상기 화면은, 상기 복수의 상품 정보 중 하나에 관련된 키워드와 관련된 상품들을 추가 검색할 수 있는 링크를 포함하는 추가 정보 또는 상기 복수의 상품 정보의 공통된 특징들을 나타내는 추가 정보 중 적어도 하나를 더 포함하는 전자 장치.
- ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 프로세서는, 상기 검색 결과에 대한 정보에 포함되는 상기 복수의 상품 정보 중 적어도 일부에 대응하는 주소 값들의 순서에 기반하여, 상기 우선순위를 확인하는 전자 장치.
- ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 프로세서는, 상기 질의 이미지를 획득하기 위한 카메라 어플리케이션을 실행하고, 상기 외부 객체의 배치에 대한 안내 문구를 포함하는 화면을 상기 디스플레이에 표시하는 전자 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180092580A KR102544781B1 (ko) | 2018-08-08 | 2018-08-08 | 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 |
US17/266,168 US11604820B2 (en) | 2018-08-08 | 2019-08-02 | Method for providing information related to goods on basis of priority and electronic device therefor |
PCT/KR2019/009655 WO2020032487A1 (ko) | 2018-08-08 | 2019-08-02 | 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180092580A KR102544781B1 (ko) | 2018-08-08 | 2018-08-08 | 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200017237A KR20200017237A (ko) | 2020-02-18 |
KR102544781B1 true KR102544781B1 (ko) | 2023-06-19 |
Family
ID=69414884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180092580A KR102544781B1 (ko) | 2018-08-08 | 2018-08-08 | 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11604820B2 (ko) |
KR (1) | KR102544781B1 (ko) |
WO (1) | WO2020032487A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645323B2 (en) * | 2020-02-26 | 2023-05-09 | Samsung Electronics Co.. Ltd. | Coarse-to-fine multimodal gallery search system with attention-based neural network models |
US11468491B2 (en) * | 2020-05-01 | 2022-10-11 | Walmart Apollo, Llc | Systems and methods of product identification within an image |
KR102399837B1 (ko) * | 2020-05-11 | 2022-05-19 | 네이버 주식회사 | 쇼핑 검색을 위한 상품 카테고리 추출 방법 |
KR102400995B1 (ko) * | 2020-05-11 | 2022-05-24 | 네이버 주식회사 | 쇼핑 검색을 위한 상품 속성 추출 방법 |
KR102427797B1 (ko) * | 2020-08-14 | 2022-08-01 | 어반랩스 주식회사 | 빅데이터 기반 맞춤형 건강기능식품 개발 서비스 제공 방법 및 장치 |
KR102275703B1 (ko) * | 2020-12-02 | 2021-07-09 | 발로 주식회사 | 건강기능식품 추천 방법, 장치, 및 시스템 |
US11294971B1 (en) * | 2021-01-25 | 2022-04-05 | Coupang Corp. | Systems and methods for modeling item similarity using converted image information |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070133947A1 (en) * | 2005-10-28 | 2007-06-14 | William Armitage | Systems and methods for image search |
JP5277941B2 (ja) | 2008-12-18 | 2013-08-28 | 大日本印刷株式会社 | 関連商品提示方法、関連商品提示システム、プログラム、記録媒体 |
WO2010116333A1 (en) | 2009-04-07 | 2010-10-14 | Alon Atsmon | System and process for builiding a catalog using visual objects |
US9135277B2 (en) | 2009-08-07 | 2015-09-15 | Google Inc. | Architecture for responding to a visual query |
KR101468231B1 (ko) | 2009-09-11 | 2014-12-04 | 삼성전자주식회사 | 라벨 검색 방법 및 장치 |
JP2014049015A (ja) | 2012-09-03 | 2014-03-17 | Toshiba Tec Corp | 商品認識装置及び商品認識プログラム |
KR101430959B1 (ko) | 2012-12-24 | 2014-08-19 | 주식회사지니 | 이동통신 단말기, 영상 분석을 이용한 제품 거래 시스템 및 그 방법 |
US20140198998A1 (en) * | 2013-01-14 | 2014-07-17 | Samsung Electronics Co., Ltd. | Novel criteria for gaussian mixture model cluster selection in scalable compressed fisher vector (scfv) global descriptor |
US10068154B2 (en) * | 2013-08-13 | 2018-09-04 | Logograb Limited | Recognition process of an object in a query image |
WO2016037844A1 (en) * | 2014-09-09 | 2016-03-17 | Thomson Licensing | Method and apparatus for image retrieval with feature learning |
KR101806169B1 (ko) | 2016-07-25 | 2017-12-07 | 오드컨셉 주식회사 | 쇼핑 정보를 제공하는 방법, 장치, 시스템 및 컴퓨터 프로그램 |
CN109964224A (zh) * | 2016-09-22 | 2019-07-02 | 恩芙润斯公司 | 用于语义信息可视化和指示生命科学实体之间显著关联的时间信号推断的系统、方法和计算机可读介质 |
-
2018
- 2018-08-08 KR KR1020180092580A patent/KR102544781B1/ko active IP Right Grant
-
2019
- 2019-08-02 WO PCT/KR2019/009655 patent/WO2020032487A1/ko active Application Filing
- 2019-08-02 US US17/266,168 patent/US11604820B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11604820B2 (en) | 2023-03-14 |
US20210303614A1 (en) | 2021-09-30 |
KR20200017237A (ko) | 2020-02-18 |
WO2020032487A1 (ko) | 2020-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102544781B1 (ko) | 우선 순위에 기반하여 상품과 관련된 정보를 제공하는 방법 및 그 전자 장치 | |
US10140549B2 (en) | Scalable image matching | |
US10891671B2 (en) | Image recognition result culling | |
CN109471945B (zh) | 基于深度学习的医疗文本分类方法、装置及存储介质 | |
US11681756B2 (en) | Method and electronic device for quantifying user interest | |
US10013633B1 (en) | Object retrieval | |
US11500918B2 (en) | Electronic device for providing information on item based on category of item | |
KR102566149B1 (ko) | 이미지에 포함된 상품 정보와 관련된 키워드를 제공하기위한 전자 장치 | |
US10650814B2 (en) | Interactive question-answering apparatus and method thereof | |
US20220092105A1 (en) | Intelligent Systems and Methods for Visual Search Queries | |
JP6365024B2 (ja) | サービス提供装置、方法、及びプログラム | |
US11501409B2 (en) | Electronic device for image synthesis and operating method thereof | |
US20180314909A1 (en) | Detection and recognition of objects lacking textures | |
KR20200017286A (ko) | 이미지에 대한 인식 정보, 인식 정보와 관련된 유사 인식 정보, 및 계층 정보를 이용하여 외부 객체에 대한 인식 결과를 제공하는 전자 장치 및 그의 동작 방법 | |
CN114821630A (zh) | 静态手势识别方法及其系统和电子设备 | |
JP2020013594A (ja) | 情報処理方法、プログラム、及び情報処理装置 | |
CN113486260B (zh) | 互动信息的生成方法、装置、计算机设备及存储介质 | |
US12008221B2 (en) | Method for providing tag, and electronic device for supporting same | |
KR102700051B1 (ko) | 관련 정보에 기반하여 외부 객체를 특정하는 전자 장치 및 그의 동작 방법 | |
US11210335B2 (en) | System and method for judging situation of object | |
US11403697B1 (en) | Three-dimensional object identification using two-dimensional image data | |
KR101910825B1 (ko) | 이미지 검색 모델을 제공하는 방법, 장치, 시스템 및 컴퓨터 프로그램 | |
CN112214626A (zh) | 图像识别方法、装置、可读存储介质及电子设备 | |
Nagaraj et al. | Relevant Musical Schema-based Human Emotion Controller using Deep Learning Techniques | |
CN117235305A (zh) | 基于双重对比学习的视频文本跨模态检索方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |