KR20140103021A - 객체 인식이 가능한 전자 장치 - Google Patents

객체 인식이 가능한 전자 장치 Download PDF

Info

Publication number
KR20140103021A
KR20140103021A KR1020130142645A KR20130142645A KR20140103021A KR 20140103021 A KR20140103021 A KR 20140103021A KR 1020130142645 A KR1020130142645 A KR 1020130142645A KR 20130142645 A KR20130142645 A KR 20130142645A KR 20140103021 A KR20140103021 A KR 20140103021A
Authority
KR
South Korea
Prior art keywords
candidates
finder pattern
finder
candidate
ratio
Prior art date
Application number
KR1020130142645A
Other languages
English (en)
Inventor
빅토 볼로디미로비치 폴리안코
앤턴 배드무비치 미하일렌코
조규성
조익환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/177,728 priority Critical patent/US20140231523A1/en
Publication of KR20140103021A publication Critical patent/KR20140103021A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1469Methods for optical code recognition the method including quality enhancement steps using sub-pixel interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)

Abstract

본 개시의 실시예들은, 전자 장치에서의 객체 인식 방법 및 장치(휴대 단말)에 관한 것으로 특히 객체들 중에서 바코드를 검출할 수 있도록 한 방법 및 장치(휴대 단말)에 관한 것이다. 본 개시에 따른 방법은 디지털 이미지에서 바코드(barcode)의 파인더 패턴(finder pattern)이 될 가능성이 있는 파인더 패턴 후보들을 검출하는 단계; 상기 파인더 패턴 후보들의 윤곽선 정보를 추출하는 단계; 상기 윤곽선 정보를 적어도 일부 이용하여, 상기 파인더 패턴 후보들 중에서 하나 이상의 파인더 패턴을 결정하는 단계; 및 상기 하나 이상의 파인더 패턴 및 상기 윤곽선 정보 중 적어도 일부를 이용하여 정렬 패턴 (alignment pattern)을 검출하는 단계를 포함할 수 있다.

Description

객체 인식이 가능한 전자 장치{OBJECT RECOGNITION DEVICE}
본 개시는 전자 장치에 관한 것으로 더 상세하게는 객체를 인식할 수 있는 기능을 포함하는 전자 장치 및 이를 동작하는 방법에 관한 것이다.
객체 인식은 컴퓨터를 사용하여 이미지, 문자, 바코드 등을 인식하는 것이다. 전자장치들은 이와 같이 객체를 인식하는 기술을 포함할 수 있다. 특히, 최근의 전자 장치들은 정방형의 바코드를 인식할 수 있다. 예를 들어, 스마트폰, 태블릿 PC 등과 같은 휴대 단말들에 큐알(Quick Response; QR) 코드를 인식하는 기술이 적용되고 있다. 또한, 바코드 인식 기술은 다양한 종류의 전자장치 (electronic devices) 또는 가전기기 (appliances) 등에도 적용되고 있다.
바코드 인식 기술을 포함하는 전자 장치는 카메라를 이용하여 바코드를 인식할 수 있다. 그런데, 카메라가 바코드를 비스듬하게 촬영할 경우, 바코드에서 카메라와 멀리 떨어진 부분은 작게 촬영되고 상대적으로 카메라와 가까운 부분은 크게 촬영될 수 있다. 그런데, 종래의 바코드 인식 기술은 이러한 카메라의 자세(pose)가 고려되지 않고 있다. 따라서, 바코드에서 데이터가 추출되지 못하거나, 추출된 데이터에 오류가 있을 수 있다.
본 개시의 실시예들 중 적어도 일부는, 다른 용도 외에도 전술한 사항을 해결할 수 있는 방법을 제시할 수 있다. 본 개시의 실시예들에 따르면, 바코드에서 카메라의 자세와 관련된 정보가 검출될 수 있다. 이에 따라 바코드에서 데이터가 추출되지 못하거나 추출된 데이터에 오류가 발생되는 문제가 방지될 수 있다. 또한, 실시예들에 따르면, 카메라의 자세가 고려되기 때문에 바코드가 정확히 검출될 수 있다. 또한, 카메라와 바코드가 비스듬하여 바코드의 인식이 어려울 것으로 결정된 경우 이러한 내용이 사용자에게 피드백으로 제공될 수 있다. 이러한 비드백을 제공받은 사용자는 카메라의 자세를 조정함으로써 바코드가 정확히 인식되게 할 수 있다. 여기서, 자세(pose)는 본 개시에서 촬영 각도, 상태 등으로 지칭될 수 있다.
본 개시의 실시예들은, 전자 장치에서의 객체 인식 방법 및 장치(휴대 단말)에 관한 것으로 특히 객체들 중에서 바코드를 검출할 수 있도록 한 방법 및 장치(휴대 단말)에 관한 것이다. 하기 실시예들은 주되게 휴대 단말 또는 모바일 장치에 관하여 기술되었으나, 객체 인식이 가능한 다른 다양한 전자장치에도 쉽게 이용될 수 있음은 본 기술분야의 통상의 지식을 가진 자에게 자명할 것이다.
본 개시에 따른 방법은 디지털 이미지에서 바코드(barcode)의 파인더 패턴(finder pattern)이 될 가능성이 있는 파인더 패턴 후보들을 검출하는 단계; 상기 파인더 패턴 후보들의 윤곽선 정보를 추출하는 단계; 상기 윤곽선 정보를 적어도 일부 이용하여, 상기 파인더 패턴 후보들 중에서 하나 이상의 파인더 패턴을 결정하는 단계; 및 상기 하나 이상의 파인더 패턴 및 상기 윤곽선 정보 중 적어도 일부를 이용하여 정렬 패턴 (alignment pattern)을 검출하는 단계를 포함할 수 있다.
본 개시에 따른 전자 장치 예를 들어, 휴대 단말은 디지털 이미지를 저장하도록 구성된 메모리; 및 상기 디지털 이미지를 처리하도록 구성된 프로세서를 포함하며, 상기 프로세서는 상기 디지털 이미지에서 바코드(barcode)의 파인더 패턴(finder pattern)이 될 가능성이 있는 파인더 패턴 후보들을 검출하고; 상기 파인더 패턴 후보들의 윤곽선 정보를 추출하고; 상기 윤곽선 정보를 적어도 일부 이용하여, 상기 파인더 패턴 후보들 중에서 하나 이상의 파인더 패턴을 결정하고; 상기 하나 이상의 파인더 패턴 및 상기 윤곽선 정보 중 적어도 일부를 이용하여 정렬 패턴 (alignment pattern)을 검출할 수 있다.
이상으로 본 개시에 따른 객체 인식 방법 및 전자 장치에 따르면, 본 개시는 바코드에서 카메라의 자세와 관련된 정보를 검출할 수 있다. 이에 따라 바코드에서 데이터가 추출되지 못하거나 추출된 데이터에 오류가 발생되는 문제가 방지될 수 있다.
도 1은 본 개시의 일 실시예에 따른 객체 처리 시스템을 도시한 블록 다이어그램이다.
도 2는 본 개시의 일 실시예에 따라 도 1의 메인 유닛의 블록 다이어그램이다.
도 3은 본 개시의 객체 추적 기능이 적용되는 단말기의 구성을 나타낸 도면이다.
도 4는 본 개시의 객체 추적 기능이 적용되는 플랫폼의 일례를 나타낸 도면이다.
도 5는 본 개시의 일 실시예에 따른 바코드 검출 방법의 전체적인 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 파인더 패턴의 후보 검출 방법을 설명하기 위한 흐름도이다.
도 7은 큐알 코드의 일례를 나타낸 도면이다.
도 8은 스캔 과정에서 검출된 후보의 2진화 이미지(binarized image)를 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른, 검출된 후보들 중 파인더 패턴을 결정하는 방법을 설명하기 위한 흐름도이다.
도 10은 파인더 패턴의 윤곽선의 일례를 나타낸 도면이다.
도 11은 본 개시의 다른 실시예에 따른, 검출된 후보들 중 파인더 패턴을 결정하는 방법을 설명하기 위한 흐름도이다.
도 12는 파인더 패턴을 이용한 바코드의 버전(version)을 계산하는 과정의 일례를 설명하기 위한 도면이다.
도 13은 파인더 패턴을 이용한 얼라이먼트 패턴을 검출하는 과정의 일례를 설명하기 위한 도면이다.
본 개시에서 전자 장치는 카메라를 구비한 장치로써, 예컨대, 스마트폰, 태블릿 PC, 노트북 PC, 디지털 카메라, 컴퓨터 모니터, PDA(Personal Digital Assistant), 전자수첩, 데스크탑 PC, PMP(Portable Multimedia Player), 미디어 플레이어(Media Player)(예컨대, MP3 플레이어), 음향기기, 손목시계, 게임용 단말기, 터치스크린을 가지는 가전기기(예, 냉장고, TV, 세탁기) 등을 포함할 수 있다.
이하에서 본 개시에 따른 바코드 검출 방법 및 전자 장치에 대해 상세히 설명한다. 이하에서 사용되는 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 개시의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다. 따라서 아래 설명과 첨부된 도면은 본 개시의 바람직한 실시예에 불과할 뿐이고, 본 개시의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있다. 또한, 첨부 도면에서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 따라서 본 개시는 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. 본 개시와 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략된다.
도 1은 본 개시의 일 실시예에 따른 객체 처리 시스템을 도시한 블록 다이어그램이다.
도 1을 참조하면, 객체 처리 시스템(100)은 클라이언트(110), 서버(120) 및 통신망을 포함할 수 있다.
이와 같은 구성을 포함하는 본 개시의 객체 처리 시스템(100)은 앞서 설명한 객체 추적 기능을 지원하는 클라이언트(110)에 장착하고, 이를 기반으로 객체 추적 기능을 지원한다. 이때 본 개시의 객체 처리 시스템(100)은 클라이언트(110)의 통신 유닛을 이용하여 통신망을 통해 서버(120)와 클라이언트(110) 간의 통신 채널을 형성하도록 지원할 수 있다. 이에 따라 객체 추적 기능을 지원하는 과정에서 요구되는 다양한 정보는 서버(120)를 통해 클라이언트(110)로 제공될 수 있다. 또는 본 개시에서 클라이언트(110)는 서버(120)에 저장된 데이터들을 서버(120)로부터 수신하여 저장하고, 저장된 데이터들을 기반으로 객체 추적 기능을 지원할 수 있다.
객체 처리 시스템(100)에서 클라이언트(110)는 상술한 전자 장치들 중에 어느 하나로 구현될 수 있고, 통신망을 통하여 서버(120)에 접속을 수행한다. 그리고 클라이언트(110)는 획득된 이미지 정보를 서버(120)에 제공할 수 있다. 특히 클라이언트(110)는 획득된 이미지 정보를 실시간으로 서버(120)에 제공할 수 있다. 그러면 서버(120)는 수신된 이미지 정보들을 기반으로 객체 추적을 위한 위상 상관 연산을 수행하고 그 결과 값을 클라이언트(110)에 제공할 수 있다. 클라이언트(110)는 서버(120)가 제공한 값들을 기반으로 이미지 정보에서의 객체 추적에 대한 연산을 생략하고 보다 용이한 객체 추적을 데이터 처리를 지원할 수 있다. 한편 클라이언트(110)는 서버(120)가 제공하는 원격 참조 데이터 및 컨텐츠 데이터를 수신할 수 있다. 그리고 클라이언트(110)는 원격 참조 데이터를 이용하여 이미지 정보의 인식 및 객체 구분(localization)를 진행할 수 있다. 또한 클라이언트(110)는 컨텐츠 데이터를 증강 현실(Augmented Reality; AR) 서비스에 적용하도록 제어할 수 있다.
객체 처리 시스템(100)에서 클라이언트(110)는 상술한 전자 장치에 적용되고, 메인 유닛이 될 수 있는 객체 처리 유닛(111)을 포함할 수 있다. 객체 처리 유닛(111)은 다수의 입력 유닛들 예컨대, 카메라, 미디어 유닛, 오디오 유닛 및 센서 유닛으로부터 각각 카메라 입력 데이터, 미디어 입력 데이터, 오디오 입력 데이터 및 센서 입력 데이터를 수신할 수 있다. 센서 입력 데이터는 예컨대, 가속도계, 자이로스코프, 마그네틱 센서, 온도 센서, 중력 센서 등 중에서 적어도 하나의 입력 데이터를 포함할 수 있다. 객체 처리 유닛(111)은 입력 데이터에 대한 필요한 프로세싱을 위해, 메모리(112), CPU(Central Processing Unit)(113) 및 GPU(Graphic Processing Unit)(114)를 사용할 수 있다. 객체 처리 유닛(111)은 또한, 타겟(target)(예컨대, QR코드)를 식별(identifying)하고 인식(recognizing; 예컨대, 객체들(objects) 중에서 타겟(예, QR 코드)를 검출)하기 위하여 레퍼런스(reference) 데이터베이스(Database; DB)를 사용할 수 있다. 이러한 레퍼런스 DB는 클라이언트(110)에 구비된 로컬 레퍼런스 DB(115)와 서버(120)에 구비된 리모트 레퍼런스 DB(121)를 포함할 수 있다. 객체 처리 유닛(111)에서 출력되는 출력 데이터는 예컨대, 식별 정보(identification information) 및 객체 구분 정보(localization information)를 포함할 수 있다. 위치 측정 정보는 타겟의 2차원적인 자세(2 dimensional(2D) pose) 및/또는 3차원적인 자세(3 dimensional pose)를 결정하기 위해 사용될 수 있다. 식별 정보는 오브젝트가 무엇인지 결정하기 위해 활용될 수 있다. AR 콘텐츠 관리 유닛(116)은 객체 처리 유닛(111)의 출력 데이터 및 리모트/로컬 콘텐츠 DB(122, 117)에 저장된 콘텐츠를 가지고 최종 비디오/오디오 출력 데이터를 조직화하기(organize) 위해 사용될 수 있다.
객체 처리 시스템(100)에서 서버(120)는 클라이언트(110)의 접속을 지원한다. 그리고 서버(120)는 클라이언트(110)의 요청에 따라 객체 추적 기능 및 증강 현실 서비스 기능을 지원한다. 이를 위하여 서버(120)는 객체 추적 기능 지원을 위한 원격 참조 DB(121)를 저장할 수 있다. 또한 서버(120)는 증강 현실 서비스 기능 지원을 위해 증강 현실에 적용할 원격 컨텐츠 DB(122)를 저장할 수 있다. 서버(120)는 클라이언트(110)의 요청에 따라 특정 이미지 정보의 인식 과정, 객체 구분(localization) 과정, 객체 추적 과정 중 적어도 하나의 연산을 수행할 수 있다. 그리고 서버(120)는 각 과정에서의 수행 결과를 클라이언트(110)의 요청에 따라, 클라이언트(110)에게 제공할 수 있다.
객체 처리 시스템(100)에서 통신망은 클라이언트(110)와 서버(120) 사이에 배치될 수 있다. 그리고 통신망은 두 구성 간의 통신 채널을 형성할 수 있다. 통신망은 클라이언트(110)가 이동 통신 기능을 지원하는 경우 이동통신 네트워크 장치들로 구성될 수 있다. 또한 통신망은 서버(120)가 인터넷 네트워크를 통하여 통신 장치를 연결하는 경우 해당 인터넷 네트워크를 지원하는 장치들로 구성될 수 있다. 그리고 통신망은 이종망 간의 데이터 전달을 위한 네트워크를 장치를 더 포함할 수 있다. 따라서 본 개시의 통신망은 특정 통신 방식이나 통신 유닛 등으로 한정되는 것이 아니라, 클라이언트(110)와 서버(120) 간에 데이터 송수신을 수행할 수 있는 다양한 장치 및 방법이 적용된 장치로 이해되어야 할 것이다.
도 2는 본 개시의 일 실시예에 따라 도 1의 메인 유닛의 블록 다이어그램이다.
도 2를 참조하면, 객체 처리 유닛(111)은 입력 제어 유닛(210), 인식 유닛(220), 객체 구분(localization) 유닛(230) 및 추적 유닛(240)을 포함할 수 있다.
입력 제어 유닛(210)은 메인 유닛(111)에 제공되는 입력 데이터를 분류할 수 있다. 그리고 입력 제어 유닛(210)은 현재 메인 유닛(111)의 기능 수행 상태에 따라 입력 데이터의 전달루트를 결정할 수 있다. 예컨대 입력 제어 유닛(210)은 초기 이미지 정보가 획득되면 해당 이미지 정보를 인식 유닛(220)에 제공할 수 있다. 이미지 정보는 메인 유닛(111)과 연결된 카메라 또는 메인 유닛(111)을 포함한 단말기에 배치된 카메라로부터 획득될 수 있다.
입력 제어 유닛(210)은 인식 유닛(220)에 의한 이미지 인식 과정 및 객체 구분 유닛(230)에 의하여 객체 구분(localization) 과정이 완료되면 이미지 정보를 직접 추적 유닛(240)에 전달할 수 있다. 또는 입력 제어 유닛(210)은 이미지 정보를 인식 유닛(220) 및 추적 유닛(240)에 동시에 전달할 수 있다. 이에 따라 이미지 정보에 대한 인식 처리 및 객체 추적 처리가 병렬적으로 수행될 수도 있다.
입력 제어 유닛(210)은 추적 유닛(240)에 의한 객체 추적 기능 수행 중인 경우 이미지 정보를 인식 유닛(220)에 제공하지 않도록 제어할 수 있다. 그리고 입력 제어 유닛(210)은 객체 추적에 실패한 경우 이미지 정보를 인식 유닛(220)에 다시 제공하도록 지원할 수 있다. 또한 입력 제어 유닛(210)은 AR 컨텐츠가 추적 중인 객체들에 적용되는 경우 다른 입력 정보들 예컨대 오디오 정보나 센서 정보 등을 추적 유닛(240)에 제공할 수 있다.
인식 유닛(220)은 입력 제어 유닛(210)로부터 이미지 정보를 수신하면 이에 대한 인식 과정을 수행할 수 있다. 즉 인식 유닛(220)은 수신된 이미지 정보에서 특징 검출(221), 디스크립터 계산(Descriptors calculation)(222), 이미지 쿼리(image query) 과정(223)을 수행할 수 있다.
특징 검출(221)은 이미지에서 특징 점들을 검출하는 과정이 될 수 있다. 특징 검출(221)은 이진화 과정을 포함할 수 있다. 즉 이진화 과정에 수행되면 컬러 이미지가 흑백 이미지로 변환된다. 또한, 본 개시에 따른 특징 검출(221)은 바코드 검출 과정을 포함할 수 있다.
디스크립터는 검출된 특징 정보를 기반으로 산출된 해당 이미지의 고유 특성을 정의한 정보가 될 수 있다. 이러한 디스크립터는 이미지 정보에서 일정 부분별로 특징 점들의 위치나 특징 점들 간의 배치 형태, 특징 점들의 고유 특성 중 적어도 하나에 의하여 정의될 수 있다. 즉 디스크립터는 이미지 정보의 일정 지점의 고유 특성을 간략화한 값이 될 수 있다. 따라서 하나의 이미지 정보에서 적어도 하나의 디스크립터가 추출될 수 있다.
디스크립터 계산(222)이 완료되면, 인식 유닛(220)은 이미지 쿼리 과정(223)을 통하여 참조 데이터와 비교를 수행한다. 즉 인식 유닛(220)은 계산된 디스크립터들과 동일한 디스크립터 또는 일정 오차 범위 이내에 있는 디스크립터들을 가지는 참조 데이터가 있는지 확인한다. 참조 데이터는 메인 유닛(111)의 운용을 위해 마련된 내부 메모리로부터 제공될 수 있다. 또한 참조 데이터는 메인 유닛(111)의 운용을 위해 외부 저장 장치 예컨대, 별도 서버 등으로부터 제공될 수도 있다. 참조 데이터는 특정 이미지에 대하여 사전에 저장된 이미지 정보가 될 수 있다. 예컨대, 얼굴 인식 과정은 인증된 얼굴들의 인식을 위해 외부 참조 얼굴 데이터베이스가 요구되고 서로 다른 얼굴의 차이를 확인하는 과정이 포함될 수 있다. 한편 QR 코드는 보통의 경우 다이내믹하게 업데이트될 필요가 없다. 또한 QR 코드는 데이터베이스에서 QR 코드를 인식하기 위해 단지 특정 룰(rule)들이 요구된다. 따라서, QR 코드는 일반적으로 내부 참조 데이터를 가질 수 있다. 인식 유닛(220)은 참조 데이터의 활용을 통하여 이미지 인식 과정에 대한 연산을 간소화할 수 있다. 그리고 인식 유닛(220)은 참조 데이터를 활용하여 타겟 객체 식별을 수행할 수 있다.
객체 구분 유닛(230)은 이미지 정보를 구성하는 다양한 객체들을 구분하는 구성이다. 이러한 객체 구분 유닛(230)은 특징 매칭(231) 및 초기 각도 평가(Initial Pose Estimation) 단계(232)를 포함한다. 즉 객체 구분 유닛(230)은 이미지 정보에서 구분된 객체들의 특징점들을 추출한다. 그리고 객체 구분 유닛(230)은 특정 객체들의 특징점들을 참조 데이터의 일정 객체와 매칭한다. 이때 객체 구분 유닛(230)은 특징점들의 매칭 정보가 없는 경우 매칭 정보를 새로 갱신할 수 있다. 객체에 대한 특징 매칭이 완료되면 객체 구분 유닛(230)은 이미지 정보에 포함된 적어도 하나의 객체들의 초기 각도 평가를 수행한다. 객체 구분 유닛(230)은 메인 유닛(111)이 객체 추적 기능을 활성화하는 경우 매칭 정보 및 초기 각도 정보 중 적어도 하나를 포함하는 객체 관련 정보를 추적 유닛(240)에 제공한다.
추적 유닛(240)은 인식된 타겟 객체들의 초기 각도 평가를 객체 구분 유닛(230)로부터 전달받는다. 그리고 추적 유닛(240)은 연속적으로 타겟 객체의 각도 연산을 통해 트래킹을 유지할 수 있다. 추적 유닛(240)은 객체 각도에 포함되는 인식 정보 및 객체 구분(localization) 정보의 기본 출력(basic Output)을 가질 수 있다.
도 3은 본 개시의 객체 추적 기능이 적용되는 단말기의 구성을 나타낸 도면이다. 즉 도 3에 도시한 단말기(300)는 상술한 메인 유닛이 탑재되는 전자 장치의 일예가 될 수 있다.
도 3을 참조하면, 단말기(300)는, 단말기(300)의 전반적인 동작 및 단말기(300)의 내부 구성들 간의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행하고, 배터리(351)에서 내부 구성들로의 전원 공급을 제어하는 제어부(305)를 포함한다. 제어부(305)는 콜 프로세서(310), 어플리케이션 프로세서(320) 및 메모리(340)를 포함할 수 있다.
콜 프로세서(310)는 RF부(330)와 신호 송수신을 수행하며, 메모리(340) 및 SIM 카드(311)와 신호 송수신을 수행할 수 있다. 그리고 콜 프로세서(310)는 어플리케이션 프로세서(320)와 통신하여 어플리케이션 프로세서(320)에 의하여 처리되는 기능 중 RF부(330), 메모리(340) 및 SIM 카드(311) 접근이 필요한 업무 처리를 지원할 수 있다.
어플리케이션 프로세서(320)는 상술한 객체 처리 유닛(111)으로써 동작할 수 있다. 또한 어플리케이션 프로세서(320)는 하나 이상의 중앙처리유닛(Central Processing Unit; CPU)을 포함할 수 있다. 또한, 어플리케이션 프로세서(320)는 하나 이상의 그래픽처리유닛(Graphic Processing Unit; GPU)을 더 포함할 수 있다.
어플리케이션 프로세서(320)는 배터리(351)가 연결되는 전원 관리부(350)로부터 전원을 공급받는다. 어플리케이션 프로세서(320)는 RF부(330) 이외의 다양한 통신 유닛 예컨대 와이파이 유닛(321), 블루투스(Bluetooth; BT) 유닛(322), GPS 유닛(323), NFC(Near Field Communication) 유닛(324) 등과 신호 송수신을 수행하고 각 유닛에 의해 수행되는 기능을 지원한다.
어플리케이션 프로세서(320)는 터치 패널 및 키 입력부 등을 포함하는 사용자 입력부(325)와 연결될 수 있다. 여기서 터치 패널은 표시부(326)의 화면에 설치될 수 있다. 터치패널은 화면에 대한 터치입력기구(예, 손가락, 펜 등)의 제스처에 응답하여 터치이벤트를 발생하고, 터치이벤트를 AD(Analog to Digital) 변환하여 어플리케이션 프로세서(320)로 전달할 수 있다. 키 입력부는 터치 키를 포함할 수 있다. 터치키는 사용자의 터치를 감지하기 위해 정전용량 방식이나 저항막 방식 등으로 구현될 수 있다. 터치키는 사용자의 터치에 응답하여 이벤트를 발생하고, 이를 AP(320)로 전달할 수 있다. 키입력부는 터치 방식 외에 다른 방식의 키(예, 돔(dome) 키)도 포함할 수 있다.
어플리케이션 프로세서(320)는 메모리(340)와 신호 송수신을 수행할 수 있다. 여기서 메모리(340)는 메인 메모리(main memory unit)과 보조메모리(secondary memory unit)을 포함할 수 있다. 보조 메모리는 부팅 프로그램, 적어도 하나 이상의 운영체제 및 어플리케이션들을 저장할 수 있다. 메인 메모리는 보조 메모리로부터 로딩된 각종 프로그램 예컨대, 부팅 프로그램, 운영체제 및 어플리케이션들을 저장할 수 있다. 어플리케이션 프로세서(320)로 배터리(351)의 전원이 공급되면 먼저 부팅 프로그램이 메인 메모리로 로딩(loading)된다. 이러한 부팅 프로그램은 운영체제를 메인메모리로 로딩한다. 운영체제는 어플리케이션들을 메인메모리로 로딩한다. 어플리케이션 프로세서(320)는 이와 같은 프로그램에 액세스하여 프로그램의 명령어를 해독하고, 해독 결과에 따른 기능(예컨대, 객체 인식, 객체 구분(localization), 객체 추적)을 실행할 수 있다.
어플리케이션 프로세서(320)는 표시부(326), 카메라(327), 진동 모터(328), 오디오 처리부(380) 등과 연결될 수 있다.
여기서 표시부(326)는 제어부(305) 특히, 어플리케이션 프로세서(320)의 제어 하에 데이터를 화면에 표시한다. 즉 제어부(305)가 데이터를 처리(예컨대, 디코딩(decoding))하여 버퍼에 저장하면, 표시부(326)는 버퍼에 저장된 데이터를 아날로그 신호로 변환하여 화면에 표시한다. 표시부(326)에 전원이 공급되면, 표시부(326)는 잠금 이미지를 화면에 표시한다. 잠금 이미지가 표시되고 있는 상태에서 잠금 해제 정보가 검출되면, 제어부(305)는 잠금을 해제한다. 표시부(326)는 제어부(305)의 제어 하에 잠금 이미지 대신 예컨대, 홈 이미지를 표시한다. 홈 이미지는 배경(background) 이미지(예컨대, 사용자에 의해 설정된 사진)와 이 위에 표시되는 다수의 아이콘을 포함한다. 여기서 아이콘들은 각각 어플리케이션 또는 콘텐츠(예, 사진 파일, 비디오 파일, 녹음 파일, 문서, 메시지 등)를 지시한다. 아이콘들 중 하나 예컨대, 객체 추적 어플리케이션의 아이콘이 터치입력기구에 의해 터치되면, 제어부(305)는 카메라(327)를 구동하고, 카메라(327)로부터 수신한 이미지를 이용하여 객체 추적 어플리케이션을 실행할 수 있다. 표시부(326)는 객체 추적 어플리케이션의 실행에 따른 이미지(예, 프리뷰 이미지와 객체 추적 정보)를 제어부(305)로부터 수신하고, 이를 아날로그 신호로 변환하여 출력할 수 있다.
카메라(327)는 피사체를 촬영하여 어플리케이션 프로세서(320)로 출력하는 기능을 수행한다. 카메라(327)는 빛을 모으기 위한 렌즈와, 이러한 빛을 전기적인 신호로 변환하는 이미지 센서와, 이미지 센서로부터 입력되는 전기 신호를 프레임(로우 데이터(raw data))으로 처리하는 이미지 신호 프로세서(Image Signal Processor; ISP)를 포함한다. ISP는 AP(320)의 제어 하에, ISP의 버퍼(일명, 대기열(queue))에 대기 중인 프레임을 프리뷰 이미지로 리사이징(resizing)할 수 있다. 일반적으로 ISP는 프레임을 화면의 크기에 맞게 축소한다. 그리고 ISP는 프리뷰 이미지를 AP(320)로 출력한다. 그러면, AP(320)는 프리뷰 이미지를 화면에 표시하도록 표시부(326)를 제어한다. 물론, 이러한 리사이징은 AP(320)에서 수행될 수도 있다. 예컨대, 프레임은 카메라(327)에서 AP(320)의 버퍼로 전달되고, AP(320)는 프레임을 프리뷰 이미지로 가공하여 표시부(326)로 출력할 수 있다.
오디오 처리부(380)는 마이크(381), 스피커(382), 리시버(383), 이어폰 연결 장치(384) 등을 포함할 수 있다. 어플리케이션 프로세서(320)는 센서 허브(360)와 연결될 수 있다. 센서 허브(360)는 다양한 센서들을 포함하는 센서부(370)와 연결될 수 있다. 센서부(370)는 마그네틱 센서(371), 자이로 센서(372), 바로 미터(373), 가속도 센서(374) 그립 센서(375), 온도/습도 센서(376), 근접 센서(377), 조도 센서(378), RGB 센서(379a) 및 제스처 센서(379b) 중 적어도 하나를 포함할 수 있다.
도 4는 본 개시의 객체 추적 기능이 적용되는 플랫폼의 일례를 나타낸 도면이다.
도 4를 참조하면, 본 개시의 객체 추적 기능이 적용되는 플랫폼은 크게 어플리케이션 계층(410), 어플리케이션 프레임워크 계층(420), 라이브러리 계층(430) 및 커널 계층(440)을 포함할 수 있다.
커널 계층(440)은 예로서 리눅스 커널로 구성될 수 있다. 커널 계층(440)은 표시 드라이버, 카메라 드라이버, BT 드라이버, 공유 메모리 드라이버, 바이더 드라이버, USB 드라이버, 키패드 드라이버, 와이파이 드라이버, 오디오 드라이버, 파워 관리부가 배치될 수 있다.
라이브러리 계층(430)은 서페이스 매니저, 미디어 프레임워크, SQLite, OpenGL/ES, FreeType, Webkit, SGL, SSL, Libc 등을 포함한다. 라이브러리 계층(430)은 안드로이드 런타임 구성을 포함할 수 있다. 안드로이드 런타임은 코어 라이브러리 및 Dalvik Virtual Machine을 포함할 수 있다. Dalvik Virtual Machine은 객체 추적 기능이 지원되는 단말기의 위젯 기능 또는 실시간 실행이 요구되는 기능, 사전 설정된 스케줄에 따라 주기적으로 실행이 요구되는 기능 등을 지원할 수 있다.
어플리케이션 프레임워크 계층(420)은 활동 매니저, 윈도우 매니저, 컨텐츠 프로바이더, 뷰 시스템, 알림 매니저, 패키지 매니저, 텔레포니 매니저, 리소스 매니저, 로케이션 매니저 등이 배치될 수 있다. 어플리케이션 계층(410)은 홈 어플리케이션(Application : 이하 앱), 다이얼러 앱, SMS/MMS 앱, 인스턴트 메신저(IM) 앱, 카메라 앱, 알람 앱, 계산기 앱, 컨텐츠 앱, 보이스 다이얼 앱, 이메일 앱, 캘린더 앱, 미디어 플레이어 앱, 앨범 앱, 시계 앱 등이 배치될 수 있다.
이하에서는 본 개시의 객체 추적 기능 중에서 특히 바코드 검출에 대하여 도 5 내지 도 13을 참조하여 보다 상세하게 설명한다.
도 5는 본 개시의 일 실시예에 따른 바코드 검출 방법의 전체적인 흐름도이다.
도 3 및 도 5를 참조하면, 단계 510에서 본 개시에 따른 제어부(305) 특히, 어플리케이션 프로세서(320)는 카메라(327)로부터 이미지를 수신하고, 이미지에서 파인더 패턴(finder pattern)이 될 수 있는 후보들을 검출할 수 있다. 여기서 파인더 패턴은 해당 바코드의 위치를 찾기 위한 심볼이다. 예컨대, 정사각형 형태인 QR 코드의 경우, 네 모서리 중 3 곳에 파인더 패턴들이 각각 위치한다. 따라서, 이러한 파인더 패턴들이 검색되면, 해당 바코드의 영역이 결정되고, 결정된 영역에서 데이터가 추출될 수 있다. 단계 510 즉, 후보 검출 방법의 일례는 도 6 내지 8을 참조하여 상세하게 설명한다.
다음으로 단계 520에서 제어부(305)는 후보들의 윤곽선(contour)을 검출한다. 여기서, 윤곽선의 사이즈(예, 폭, 높이, 넓이 등을 나타내는 값)가 제어부(305)에 의해 선택된 제 1 값보다 작은 경우, 해당 후보를 리스트에서 폐기할 수 있다. 또한, 윤곽선의 사이즈가 제어부(305)에 의해 선택된 제 2 값보다 큰 경우, 해당 후보를 리스트에서 폐기할 수 있다.
단계 530에서 제어부(305)는 검출된 윤곽선들을 이용하여 후보들 중에서 파인더 패턴들을 결정한다. 파인더 패턴 결정 방법의 일례는 도 9 및 도 10을 참조하여 상세하게 설명한다.
단계 540에서 제어부(305)는 파인더 패턴들을 이용하여 해당 바코드의 버전 및 크기(size)를 결정한다. 제어부(305)는 사이즈(size) 정보와 상기 결정된 파인더 패턴들의 위치 정보(예, 꼭지점 좌표)를 이용하여 이미지에서 해당 바코드를 객체 구분(localization)할 수 있다. 이미지로부터 객체 구분된(즉, 이미지에서 분리된) 해당 바코드는 복원을 위하여 와핑(warping) 처리되고, 와핑 처리된 바코드에서 데이터가 추출될 수 있다.
한편, 좀 더 정확한 객체 구분 및 복원을 위해 단계 550에서 제어부(305)는 상기 결정된 버전 및 사이즈를 이용하여 해당 바코드의 얼라이먼트(alignment) 패턴을 검출할 수 있다. 얼라이먼트 패턴이 검출되면 제어부(305)는 얼라이먼트 패턴을 이용하여, 이미지에서 해당 바코드를 객체 구분할 수 있다. 이러한 얼라이먼트 패턴의 검출 방법은 도 11 및 도 12를 참조하여 상세히 설명한다.
도 6은 본 개시의 일 실시예에 따른 파인더 패턴의 후보 검출 방법을 설명하기 위한 흐름도이다. 도 7은 큐알 코드의 일례를 나타낸 도면이다. 도 8은 스캔 과정에서 검출된 후보의 2진화 이미지(binarized image)를 도시한 도면이다.
도 6을 참조하면, 단계 610에서 제어부(305)는 수평 방향으로 이미지의 첫 줄을 스캔할 수 있다. 여기서 스캔은 픽셀 단위로 수행될 수 있다. 예컨대, 화면의 해상도가 640(가로 픽셀의 개수)*480(세로 픽셀의 개수)인 경우, X축 좌표는 (0, 640)이고, Y축 좌표는 (0, 480)이다. 그렇다면, 수평 방향(X축 방향)으로 총 480번의 스캔이 이루어진다.
단계 620에서 제어부(305)는 스캔된 줄에서 파인더 패턴의 후보 C_current가 검출되는지 여부를 결정한다. 예컨대, 이미지에는 QR 코드가 포함될 수 있다. 도 7을 참조하면, QR 코드는 3개의 파인더 패턴들(710, 720, 730)을 포함한다. 제 1 파인더 패턴(710)은 좌상귀에 위치하고, 제 2 파인더 패턴(720)은 우상귀에 위치하고, 제 3 파인더 패턴(730)은 좌하귀에 위치한다. 도 8을 참조하면, 제어부(205)는 스캔된 줄에서 검정색, 흰색, 검정색, 흰색 및 검정색, 이렇게 순차적인 패턴을 검출할 수 있다. 이러한 순차적인 패턴에서 검정색의 폭 : 흰색의 폭 : 검정색의 폭 : 흰색의 폭 : 검정색의 폭 간의 비율(ratio)이 1 : 1 : 3 : 1 : 1 인 경우, 제어부(205)는 해당 패턴을 후보 C_current로 결정한다. 여기서, 폭의 단위는 픽셀 단위일 수 있다.
후보 C_current가 검출되면 단계 630에서 제어부(305)는 수직 및 대각선 방향을 검사한다. 즉, 제어부(305)는 해당 패턴의 중심점(x, y 좌표)을 기준으로 수직 방향으로 스캔할 수 있다. 또한, 제어부(305)는 해당 패턴의 중심점을 기준으로 비스듬한 방향(예, 45도 방향)으로 스캔할 수 있다. 후보 C_current가 검출되지 않으면 프로세스는 단계 690으로 진행된다.
검사 완료 후 단계 640에서 제어부(305)는 상기 비율이 유지되는지 여부를 결정한다. 즉, 수직 방향으로 스캔한 결과 후보 C_current와 동일한 비율을 갖는 패턴이 검출된 경우 제어부(305)는 비율이 유지된 것으로 결정할 수 있다. 또한, 대각선 방향으로 스캔한 결과 후보 C_current와 동일한 비율을 갖는 패턴이 검출된 경우 제어부(305)는 비율이 유지된 것으로 결정할 수 있다. 또한, 대각선 방향 및 수직 방향 모두 동일한 비율을 갖는 패턴이 검출되는 경우에만 제어부(305)는 비율이 유지된 것으로 결정할 수도 있다.
제어부(305)에 의해 선택된 오차 범위 내에서 비율이 유지되면 프로세스는 단계 650으로 진행된다. 단계 650에서 제어부(305)는 현재 후보 C_current에 인접한 이전 후보 C_previous가 존재하는지 여부를 결정한다. 여기서, 인접의 조건은, 도 8을 참조하면, 후보 C_current의 중심점(810)에서 제어부(305)에 의해 선택된 거리(820) 이내에 동일한 비율의 패턴이 존재하는 경우가 될 수 있다.
인접한 이전 후보 C_previous가 없는 경우 프로세스는 단계 660으로 진행된다. 여기서 인접한 후보가 없다는 것은 제어부(305)가 새로운 후보를 검출한 것을 의미한다. 따라서 단계 660에서 제어부(305)는 후보 C_current의 위치 정보를 리스트에 새로 추가한다. 위치 정보는 중심점 좌표, 중심점 좌표를 기준으로 한 후보 C_current의 폭(X축 길이)과 높이(Y축 길이)를 포함할 수 있다. 위치 정보는 위의 실시예로 한정되는 것은 아니다. 다른 예로, 위치 정보는 중심점 좌표와 해당 후보의 경계를 나타내는 좌표들을 포함할 수도 있다. 후보가 추가된 후 프로세스는 단계 690으로 진행된다.
인접한 이전 후보 C_previous가 있는 경우 프로세스는 단계 670으로 진행된다. 여기서 인접한 후보가 있다는 것은 제어부(305)가 기존의 후보를 다시 검출한 것을 의미한다. 따라서 단계 670에서 제어부(305)는 이전 후보 C_previous의 위치 정보를 업데이트한다. 예컨대, 제어부(305)는 이전 후보의 중심점 좌표와 현재 후보의 중심점 좌표의 평균을 구하고, 그 평균을 이전 후보의 중심점 좌표로 업데이트할 수 있다. 또한, 제어부(305)는 이전 후보의 폭과 현재 후보의 폭의 평균을 구하고, 그 평균을 이전 후보의 폭으로 업데이트할 수 있다. 또한, 제어부(305)는 이전 후보의 높이와 현재 후보의 높이의 평균을 구하고, 그 평균을 이전 후보의 높이로 업데이트할 수 있다. 후보가 업데이트된 후 프로세스는 단계 690으로 진행된다.
한편, 비율이 유지되지 않으면 프로세스는 단계 680으로 진행된다. 단계 680에서 제어부(305)는 단계 620에서 검출된 후보를 폐기한다. 후보 폐기 후 프로세서는 단계 690으로 진행된다.
단계 690에서 제어부(305)는 스캔되지 않은, 남은 줄이 있는지 여부를 결정한다. 남은 줄이 있는 경우 단계 695에서 제어부(305)는 다음 줄을 스캔한다. 다음 줄의 스캔 후 프로세스는 단계 620으로 복귀된다. 남은 줄이 없는 경우 즉, 이미지가 모두 스캔된 경우 후보 검출을 위한 프로세스는 종료된다.
위의 예시에서 픽셀은 스캔을 위한 하나의 단위일 뿐, 본 개시의 기술적 사상을 한정하는 것은 아니다. 예컨대, 스캔은 블록(block) 단위로 수행될 수 있다. 여기서, 블록은 해당 바코드에서 1 비트(bit)를 나타내는 영역일 수 있다. 또한, 위의 예시에서 검출의 타겟은 QR 코드로 예시되었으나, 이에 한정되는 것은 아니다. 즉 검출의 타겟은 QR 코드 이외에, 파인더 패턴을 가지는 다른 정방형의 바코드가 될 수 있다. 또한, 위의 예시에서 순차적인 패턴과 그 비율은 각각, "검정색, 흰색, 검정색, 흰색 및 검정색", "1 : 1 : 3 : 1 : 1"로 예시되었으나, 이에 한정되는 것은 아니다. 즉 검출의 타겟이 무슨 바코드인지에 따라 순차적인 패턴과 그 비율은 달라질 수 있다.
도 9는 본 개시의 일 실시예에 따른, 검출된 후보들 중 파인더 패턴을 결정하는 방법을 설명하기 위한 흐름도이다. 도 10은 파인더 패턴의 윤곽선의 일례를 나타낸 도면이다.
도 9를 참조하면, 단계 910에서 제어부(305)는 검출된 후보들 중에서 3개를 선택할 수 있다. 여기서 본 개시의 기술적 사상이 3개라는 개수에 한정되는 것은 아니다. 즉 검출의 타겟이 무슨 바코드인지에 따라 선택되는 개수가 결정될 수 있다. 아래 설명에서는 검출의 타겟이 QR 코드이고 이에 따라, 선택의 개수는 3으로 가정한다.
단계 920에서 제어부(305)는 선택된 후보들의 중심점들 간의 거리를 확인한다. 도 10을 참조하면, 후보들 중 제 1 후보(1010), 제 2 후보(1020) 및 제 3 후보(1030)가 선택될 수 있다. 제어부(305)는 제 1 중심점(1011)과 제 2 중심점(1021)을 연결하는 제 1 선분(1040)의 제 1 길이를 계산한다. 제어부(305)는 제 2 중심점(1021)과 제 3 중심점(1031)을 연결하는 제 2 선분(1050)의 제 2 길이를 계산한다. 여기서 길이의 단위는 픽셀, 블록 등이다.
단계 930에서 제어부(305)는 비율 L(= 제 1 길이/제 2 길이 또는 제 2 길이/제 1 길이)이 제어부(305)에 의해 선택된 임계치보다 작은지 여부를 결정한다. 여기서 제 1 길이 및 제 2 길이 중에서 작은 값이 분모가 될 수 있다. 그러면 비율 L은 '1'이거나 "1"보다 크다. 여기서, 카메라의 시야각이 피사체(즉, 바코드)에 대해 이상적으로 직각(90도)인 경우, 비율 L은 "1"일 수 있다. 카메라의 시야각이 피사체에 대해 비스듬해질수록 비율 L은 점점 커질 수 있다. 카메라의 시야각이 예컨대, 60도보다 작으면 비율 L은 임계치를 초과할 수 있고 그렇다면, 해당 바코드의 인식은 불가능할 수 있다.
비율 L이 임계치보다 작은 경우 단계 940에서 제어부(305)는 후보들이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한지 여부를 결정한다. 구체적으로, 도 10을 참조하면, 제어부(305)는 제 1 후보(1010)의 변(side) a1, 제 2 후보(1020)의 변 b1 및 제 3 후보(1030)의 변 c1이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한지 여부를 결정할 수 있고, 서로 평행(조건 1)한 경우 프로세스는 단계 950으로 진행될 수 있다. 또한 제어부(305)는 제 1 후보(1010)의 변 a2, 제 2 후보(1020)의 변 b2 및 제 3 후보(1030)의 변 c2가 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한지 여부를 결정할 수 있고, 서로 평행(조건 2)한 경우 프로세스는 단계 950으로 진행될 수 있다. 여기서, a2, b2 및 c2는 각각, a1, b1 및 c1과 동일한 꼭지점을 공유한다. 또한 제어부(305)는 a1과 b1을 연결하는 선분 1060, 선분 1040, a3와 b3를 연결하는 선분 1070이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한지 여부를 결정할 수 있고, 서로 평행(조건 3)한 경우 프로세스는 단계 950으로 진행될 수 있다. 여기서 a3 및 b3는 각각, a1 및 b1에 대향하는 위치에 있다. 또한 제어부(305)는 b2와 c2를 연결하는 선분 1080, 선분 1050, b4와 c4를 연결하는 선분 1090이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한지 여부를 결정할 수 있고, 서로 평행(조건 4)한 경우 프로세스는 단계 950으로 진행될 수 있다.
후보들이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행한 경우(예컨대, 상기 조건 1, 2, 3 및 4에서 적어도 하나가 만족할 경우), 단계 950에서 제어부(305)는 선택된 3개의 후보들을 해당 바코드의 파인더 패턴들로 결정할 수 있다.
한편, 비율 L이 임계치보다 작지 않은 경우(즉, 비율 L이 임계치이거나 그 보다 큰 경우), 프로세스는 단계 960으로 진행된다. 또한, 후보들이 제어부(305)에 의해 선택된 오차 범위 내에서 서로 평행하지 않을 경우(예컨대, 상기 조건 1, 2, 3 및 4이 모두 만족되지 않을 경우), 프로세스는 단계 960으로 진행된다.
단계 960에서 제어부(960)는 검출된 후보들 중에서 3개를 선택할 수 있는 경우의 수가 남았는지 여부를 결정한다. 예컨대, 검출된 후보가 A, B, C, D 이렇게 4개인 경우, 3개를 선택할 수 있는 경우의 수는 ABC, ABD, ACD, BCD 이렇게, 총 4개이다. 경우의 수가 남은 경우 단계 970에서 제어부(305)는 3개의 후보를 다시 선택(예컨대, 이전에 선택된 게 ABC인 경우 재선택은 ABD일 수 있음)한다. 재선택 후 프로세스는 단계 920으로 복귀된다. 경우의 수가 남지 않은 경우 단계 980에서 제어부(305)는 이미지에서 바코드의 인식이 실패되었음을 결정할 수 있다. 이와 같이 바코드의 인식이 실패된 것으로 결정된 경우 제어부(305)는 사용자에게 인식이 불가능하다는 내용의 메시지를 제공할 수 있다. 이러한 메시지는 청각적인 피드백(예, 스피커를 통해 출력되는 음성), 시각적인 피드백(화면에 표시되는 메시지) 또는 촉각적인 피드백(예, 모터의 진동)으로 제공될 수 있다. 이러한 피드백을 제공받은 사용자는 단말기(300)가 바코드를 인식할 수 있게 촬영 각도를 조정할 수 있다.
한편, 위의 예시에서, 제 1 길이 및 제 2 길이 중에서 큰 값이 분모가 될 수 있다. 그러면 비율 L은 "1"이거나 "1"보다 작다. 이에 따라 단계 930은 위의 예시와 반대로, 비율 L이 제어부(305)에 의해 선택된 임계치보다 큰지 여부를 결정하는 과정이 될 수도 있다. 즉 L > 임계치인 경우 프로세스는 단계 940으로 진행되고 L < 임계치인 경우 프로세스는 단계960으로 진행될 수도 있다.
또한, 위의 예시에서, 비율은 두 값의 차이를 나타내는 값인 것으로 예시되었으나 이에 한정되는 것은 아니다. 예컨대, 제 1 파인더 패턴과 제 2 파인더 패턴 간의 거리를 나타내는 값 A, 제 2 파인더 패턴과 제 3 파인더 패턴 간의 거리를 나타내는 값 B, 제 1 파인더 패턴과 제 3 파인더 패턴 간의 거리를 나타내는 값 C가 있는 경우, 그 비율(ratio)은 A : B : C 일 수 있다.
도 11은 본 개시의 다른 실시예에 따른, 검출된 후보들 중 파인더 패턴을 결정하는 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 단계 1110에서 제어부(305)는 검출된 후보들 중 3개를 선택한 다음, 단계 1120으로 진행하여 선택된 후보들의 중심점들 간의 거리를 확인한 다음, 단계 1130으로 진행하여 비율 L이 제어부(305)에 의해 선택된 임계치보다 작은지 여부를 결정하고, 비율 L이 임계치보다 작은 경우 단계 1140으로 진행하여 선택된 3개의 후보들을 해당 바코드의 파인더 패턴들로 결정할 수 있다. 이상으로, 도 9의 실시예와 다른 점은 단계 940이 생략될 수 있다는 점이다.
한편, 비율 L이 임계치보다 큰 경우 단계 1150에서 제어부(960)는 검출된 후보들 중에서 3개를 선택할 수 있는 경우의 수가 남았는지 여부를 결정한다. 경우의 수가 남은 경우 단계 1160에서 제어부(305)는 남은 경우의 수에서 하나를 다시 선택한다. 재선택 후 프로세스는 단계 1120으로 복귀된다. 경우의 수가 남지 않은 경우 단계 1170에서 제어부(305)는 이미지에서 바코드의 인식이 실패되었음을 결정할 수 있다.
도 12는 파인더 패턴을 이용한 바코드의 버전(version)을 계산하는 과정의 일례를 설명하기 위한 도면이다. 다음 수학식 1은 바코드의 버전을 계산하는데 이용될 수 있는 수학식이다.
Figure pat00001
도 12를 참조하면, 위 수학식 1에서 A1은 제1 파인더 패턴(1210)의 제 1 중심점(1211)에서 제 1 파인더 패턴(1210)의 변 1212까지의 길이를 나타내는 값이다. A2는 제 2 파인더 패턴(1220)의 제 2 중심점(1221)에서 제 2 파인더 패턴(1220)의 변 1222까지의 길이를 나타내는 값이다. B는 제 1 중심점(1211)과 제 2 중심점(1221)을 연결하는 선분의 길이를 나타내는 값이다.
제어부(305)는 위와 같은 수학식 1을 이용하여 바코드의 버전을 계산하고, 룩업 테이블에 액세스하여 상기 계산된 버전에 대응되는 바코드의 사이즈 정보를 확인한다. 여기서 룩업 테이블은 각 버전들에 대응되는 사이즈 정보들을 가지는 테이블로써, 단말기(300)의 메모리(340)에 저장될 수 있다. 사이즈 정보는, 정사각형의 바코드(예, QR 코드)인 경우, 한 변의 길이를 나타내는 값을 포함할 수 있다. 또한 사이즈 정보는 한 변의 길이를 나타내는 값 이외에, 해당 바코드의 사이즈를 알 수 있도록 하는 다양한 정보를 포함할 수 있다.
다시 도 12를 참조하면, 제어부(305)는 파인더 패턴들(1210, 1220, 1230) 각각의 위치 정보를 통해서, 해당 바코드의 꼭지점 좌표들 중에서 3개(1240, 1250, 1260)를 알 수 있다. 따라서, 해당 바코드의 사이즈 정보가 확인되면 제어부(305)는 이미 알고 있는 3개의 꼭지점 좌표들(1240, 1250, 1260)과 상기 확인된 사이즈 정보를 이용하여 남은 꼭지점 좌표(1270)를 계산할 수 있다. 그리고 제어부(305)는 꼭지점 좌표들(1240, 1250, 1260, 1270)을 이용하여 이미지에서 해당 바코드를 객체 구분할 수 있다. 그런 다음 제어부(305)는 이렇게 객체 구분된 바코드를 와핑 처리할 수 있다. 이러한 와핑 처리 과정은 해당 바코드의 좌표 값들을 보정하는 과정이 포함될 수 있다. 이러한 보정 과정은 일명, 호모그라피 계산(homography calcuration)으로 지칭될 수 있다. 제어부(305)는 와핑 처리된 바코드에서 데이터를 추출할 수 있다. 또한 제어부(305)는 추출된 데이터에 해당되는 기능(예, 웹 사이트 접속)을 수행할 수 있다.
한편, 제어부(305)는 얼라이먼트 패턴을 이용하여 해당 바코드를 좀 더 정확히 객체 구분할 수 있다. 그러기 위해, 제어부(305)는 얼라이먼트 패턴을 검출할 수 있다.
도 13은 파인더 패턴을 이용한 얼라이먼트 패턴을 검출하는 과정의 일례를 설명하기 위한 도면이다.
도 13을 참조하면, 파인더 패턴들(1310, 1320, 1330)이 검출되고 이들을 통해 해당 바코드의 꼭지점들(1350, 1360, 1370)이 확인된 상태에서, 제어부(305)는 제 2 파인더 패턴(1320)의 한 변 1321에서 연장된 선분 1322를 계산한다. 또한 제어부(305)는 제 3 파인더 패턴(1330)의 한 변 1331에서 연장된 선분 1332를 계산한다. 그리고 나서 제어부(305)는 이러한 선분들 1322와 1332이 교차되는 지점 1340의 좌표를 계산한다.
제어부(305)는 교차 지점(1340)을 중심으로 왼상/하/좌/우 각각에 검정색의 패턴들이 위치하는지 여부를 확인한다. 확인 결과 검정색 패턴들이 위치한 경우 제어부(305)는 수평 방향의 비율과 수직 방향의 비율을 확인한다. 수평 방향의 비율이 1(흑) : 1(백) : 1(흑)이고 수직 방향의 비율이 1(흑) : 1(백) : 1(흑)인 경우, 제어부(305)는 검정색 패턴들을 얼라이먼트 패턴으로 결정한다. 그리고 제어부(305)는 교차 지점(1340)을 얼라이먼트 패턴의 중심점으로 결정한다.
얼라이먼트 패턴의 중심점(1340)이 결정되면 제어부(305)는 해당 바코드의 제 1 꼭지점(1350)에서 연장되어 얼라이먼트 패턴의 중심점(1340)을 지나는 선분 1380을 계산한다. 그런 다음, 제어부(305)는 중심점(1340)으로부터 거리 C 만큼 떨어진 곳에 위치한 "선분 1380의 좌표 1390"을 해당 바코드의 꼭지점 좌표로 결정할 수 있다. 여기서 거리 C는 제어부(305)가 해당 바코드의 사이즈 정보를 참조하여 선택한 값일 수 있다. 예컨대, QR 코드인 경우 거리 C는 6.5 블록일 수 있다. 이와 같이 꼭지점 좌표 1390이 결정되면 제어부(305)는 꼭지점 좌표들(1350, 1360, 1370, 1390)을 이용하여 이미지에서 해당 바코드를 객체 구분할 수 있다. 그런 다음 제어부(305)는 이렇게 객체 구분된 바코드를 와핑 처리할 수 있다. 제어부(305)는 와핑 처리된 바코드에서 데이터를 추출할 수 있다. 또한 제어부(305)는 추출된 데이터에 해당되는 기능(예, 웹 사이트 접속)을 수행할 수 있다.
상술한 바와 같은 본 개시에 따른 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어 장치가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다. 하드웨어 장치는 본 개시를 수행하기 위해 하나 이상의 소프트웨어 유닛으로서 작동하도록 구성될 수 있다.
본 개시에 따른 방법 및 장치는 전술한 실시 예에 국한되지 않고 본 개시의 기술 사상이 허용하는 범위에서 다양하게 변형하여 실시할 수가 있다.
100: 객체 처리 시스템
110: 클라이언트 120: 서버
210: 입력 제어 유닛 220: 인식 유닛
230: 객체 구분 유닛 240: 추적 유닛
300: 단말기 305: 제어부
310: 콜 프로세서 320: 어플리케이션 프로세서
330: RF 유닛 340: 메모리

Claims (32)

  1. 전자 장치를 동작시키는 방법에 있어서,
    디지털 이미지에서 바코드(barcode)의 파인더 패턴(finder pattern)이 될 가능성이 있는 파인더 패턴 후보들을 검출하는 단계;
    상기 파인더 패턴 후보들의 윤곽선 정보를 추출하는 단계;
    상기 윤곽선 정보를 적어도 일부 이용하여, 상기 파인더 패턴 후보들 중에서 하나 이상의 파인더 패턴을 결정하는 단계; 및
    상기 하나 이상의 파인더 패턴 및 상기 윤곽선 정보 중 적어도 일부를 이용하여 정렬 패턴 (alignment pattern)을 검출하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 파인더 패턴 및 정렬 패턴을 이용하여 상기 바코드의 왜곡된 영상을 정면 영상으로 복원 (warping)하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 바코드는 QR 코드를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 하나 이상의 파인더 패턴에 적어도 일부 기초하여 상기 바코드의 버전 또는 사이즈 중 하나 또는 그 이상을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 윤곽선 정보는 상기 파인더 패턴 후보들의 최외곽 윤곽선을 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 상기 윤곽선 정보를 추출하는 단계는,
    상기 파인더 패턴 후보들 중 하나를 둘러싸는 영역으로부터 윤곽선을 추출하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 상기 파인더 패턴을 결정하는 단계는,
    상기 파인더 패턴 후보들 중에서 선택된 쌍(pair)의 윤곽선들의 대응하는 사이드들이 실질적으로 평행한지를 판단하는 단계;
    상기 윤곽선들이 상기 파인더 패턴 후보들의 중심간에 연결된 선들에 평행한지를 판단하는 단계; 및
    상기 파인더 패턴들의 중심을 연결한 선들의 길이들 간의 비율이 선택된 값보다 같거나 작은지를 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 파인더 패턴 후보들 중에서 상기 전자 장치에 의해 결정된 개수만큼 선택된 후보들 간의 거리들을 확인하는 단계; 및
    상기 거리들의 차이를 나타내는 비율이 상기 전자 장치에 의해 선택된 조건을 만족하는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 비율이 상기 선택된 조건을 만족하는 경우 상기 선택된 후보들을 상기 바코드의 파인더 패턴들로 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 비율이 상기 선택된 조건을 만족하는지 여부를 결정하는 단계는,
    제 1 길이와 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 크거나 또는 작은지 여부를 결정하는 단계를 포함하고,
    상기 제 1 길이는 제 1 후보의 중심점과 제 2 후보의 중심점 간의 거리를 나타내는 값이고, 상기 제 2 길이는 상기 제 2 후보의 중심점과 제 3 후보의 중심점 간의 거리를 나타내는 값인 것을 특징으로 하는 방법.
  11. 제 10 항에 있어서,
    상기 비율이 상기 선택된 조건을 만족하는지 여부를 결정하는 단계는,
    제 1 길이와 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 크거나 또는 작은 경우 상기 선택된 후보들이 평행한지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    상기 후보들이 평행한지 여부를 결정하는 단계는,
    상기 선택된 후보들 중 어느 하나의 변과 다른 하나의 변이 평행한지 여부를 결정하는 단계와,
    상기 선택된 후보들 중 어느 하나의 중심점과 다른 하나의 중심점을 연결하는 선분과, 상기 후보들 중 어느 하나의 변이 평행한지 여부를 결정하는 단계 중에서 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  13. 제 8 항에 있어서,
    상기 비율이 상기 선택된 조건을 만족하지 않는 경우 상기 검출된 후보들 중에서 상기 전자 장치에 의해 결정된 개수만큼 후보들을 재선택하는 단계; 및
    상기 재선택된 후보들 간의 거리들의 차이를 나타내는 비율이 상기 전자 장치에 의해 선택된 조건을 만족하는지 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 전자 장치를 동작시키는 방법에 있어서,
    디지털 이미지에서 큐알 코드의 파인더 패턴이 될 가능성이 있는 파인더 패턴 후보들 중에서 세 개의 파인더 패턴 후보들을 선택하는 단계;
    상기 선택된 파인더 패턴 후보들 중 제 1 후보 및 제 2 후보 간의 거리를 나타내는 제 1 길이와 상기 제 2 후보 및 제 3 후보 간의 거리를 나타내는 제 2 길이를 확인하는 단계;
    상기 제 1 길이와 상기 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 작은지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    상기 비율이 상기 선택된 값보다 작은 경우 상기 선택된 파인더 패턴 후보들을 상기 큐알 코드의 파인더 패턴들로 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제 14 항에 있어서,
    상기 비율이 상기 선택된 값보다 작은 경우 상기 선택된 파인더 패턴 후보들이 평행한지 여부를 결정하는 단계; 및
    상기 선택된 파인더 패턴 후보들이 평행한 경우 상기 선택된 파인더 패턴 후보들을 상기 큐알 코드의 파인더 패턴들로 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    상기 비율이 상기 선택된 값보다 큰 경우 상기 파인더 패턴 후보들 중에서 3개를 선택할 수 있는 경우의 수가 남았는지 여부를 결정하는 단계; 및
    상기 경우의 수가 남은 경우 3개의 파인더 패턴 후보를 재선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 16 항에 있어서,
    상기 선택된 파인더 패턴 후보들이 평행하지 않은 경우 상기 파인더 패턴 후보들 중에서 3개를 선택할 수 있는 경우의 수가 남았는지 여부를 결정하는 단계; 및
    상기 경우의 수가 남은 경우 3개의 파인더 패턴 후보를 재선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 전자 장치에 있어서,
    디지털 이미지를 저장하도록 구성된 메모리; 및
    상기 디지털 이미지를 처리하도록 구성된 프로세서를 포함하며, 상기 프로세서는
    상기 디지털 이미지에서 바코드(barcode)의 파인더 패턴(finder pattern)이 될 가능성이 있는 파인더 패턴 후보들을 검출하고;
    상기 파인더 패턴 후보들의 윤곽선 정보를 추출하고;
    상기 윤곽선 정보를 적어도 일부 이용하여, 상기 파인더 패턴 후보들 중에서 하나 이상의 파인더 패턴을 결정하고;
    상기 하나 이상의 파인더 패턴 및 상기 윤곽선 정보 중 적어도 일부를 이용하여 정렬 패턴 (alignment pattern)을 검출하는 것을 특징으로 하는 장치.
  20. 제 19 항에 있어서,
    상기 프로세서는 상기 파인더 패턴 및 정렬 패턴을 이용하여 상기 바코드의 왜곡된 영상을 정면 영상으로 복원 (warping)하는 것을 특징으로 하는 전자 장치.
  21. 제 19 항에 있어서,
    상기 바코드는 QR 코드를 포함하는 것을 특징으로 하는 전자 장치.
  22. 제 19 항에 있어서,
    상기 프로세서는 상기 하나 이상의 파인더 패턴에 적어도 일부 기초하여 상기 바코드의 버전 또는 사이즈 중 하나 또는 그 이상을 결정하는 것을 특징으로 하는 전자 장치.
  23. 제 19 항에 있어서,
    상기 윤곽선 정보는 상기 파인더 패턴 후보들의 최외곽 윤곽선을 포함하는 것을 특징으로 하는 전자 장치.
  24. 제 19 항에 있어서,
    상기 프로세서는 상기 파인더 패턴 후보들 중 하나를 둘러싸는 영역으로부터 윤곽선을 추출하는 것을 특징으로 하는 전자 장치.
  25. 제 19 항에 있어서,
    상기 프로세서는 상기 파인더 패턴 후보들 중에서 선택된 쌍(pair)의 윤곽선들의 대응하는 사이드들이 실질적으로 평행한지를 판단하고,
    상기 윤곽선들이 상기 파인더 패턴 후보들의 중심간에 연결된 선들에 평행한지를 판단하고,
    상기 파인더 패턴들의 중심을 연결한 선들의 길이들 간의 비율이 선택된 값보다 같거나 작은지를 판단하는 것을 특징으로 하는 전자 장치.
  26. 제 19 항에 있어서,
    상기 프로세서는,
    상기 파인더 패턴 후보들 중에서 상기 전자 장치에 의해 결정된 개수만큼 선택된 후보들 간의 거리들을 확인하고,
    상기 비율이 상기 선택된 조건을 만족하는 경우 상기 선택된 후보들을 상기 바코드의 파인더 패턴들로 결정하는 것을 특징으로 하는 전자 장치.
  27. 제 19 항에 있어서,
    상기 프로세서는,
    제 1 길이와 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 크거나 또는 작은지 여부를 결정하고,
    상기 제 1 길이는 제 1 후보의 중심점과 제 2 후보의 중심점 간의 거리를 나타내는 값이고, 상기 제 2 길이는 상기 제 2 후보의 중심점과 제 3 후보의 중심점 간의 거리를 나타내는 값인 것을 특징으로 하는 전자 장치.
  28. 제 27 항에 있어서,
    상기 프로세서는,
    제 1 길이와 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 크거나 또는 작은 경우 상기 선택된 후보들이 평행한지 여부를 결정하는 것을 특징으로 하는 전자 장치.
  29. 제 28 항에 있어서,
    상기 프로세서는,
    상기 선택된 후보들 중 어느 하나의 변과 다른 하나의 변이 평행한지 여부를 결정하는 단계와, 상기 선택된 후보들 중 어느 하나의 중심점과 다른 하나의 중심점을 연결하는 선분과, 상기 후보들 중 어느 하나의 변이 평행한지 여부를 결정하는 단계 중에서 적어도 하나를 수행하는 것을 특징으로 하는 전자 장치.
  30. 제 19 항에 있어서,
    상기 프로세서는,
    상기 비율이 상기 선택된 조건을 만족하지 않는 경우 상기 검출된 후보들 중에서 상기 전자 장치에 의해 결정된 개수만큼 후보들을 재선택하는 것을 특징으로 하는 전자 장치.
  31. 제 19 항에 있어서,
    상기 프로세서는,
    적어도 하나의 어플리케이션 프로세서를 포함하는 것을 특징으로 하는 전자 장치.
  32. 전자 장치에 있어서,
    디지털 이미지를 저장하도록 구성된 메모리; 및
    상기 디지털 이미지를 처리하도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    상기 디지털 이미지에서 큐알 코드의 파인더 패턴이 될 가능성이 있는 파인더 패턴 후보들 중에서 세 개의 파인더 패턴 후보들을 선택하고,
    상기 선택된 파인더 패턴 후보들 중 제 1 후보 및 제 2 후보 간의 거리를 나타내는 제 1 길이와 상기 제 2 후보 및 제 3 후보 간의 거리를 나타내는 제 2 길이를 확인하고,
    상기 제 1 길이와 상기 제 2 길이의 비율이 상기 전자 장치에 의해 선택된 값보다 작은지 여부를 결정하는 것을 특징으로 하는 전자장치.
KR1020130142645A 2013-02-15 2013-11-22 객체 인식이 가능한 전자 장치 KR20140103021A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/177,728 US20140231523A1 (en) 2013-02-15 2014-02-11 Electronic device capable of recognizing object

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361765471P 2013-02-15 2013-02-15
US61/765,471 2013-02-15

Publications (1)

Publication Number Publication Date
KR20140103021A true KR20140103021A (ko) 2014-08-25

Family

ID=51747565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130142645A KR20140103021A (ko) 2013-02-15 2013-11-22 객체 인식이 가능한 전자 장치

Country Status (1)

Country Link
KR (1) KR20140103021A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019132093A1 (ko) * 2017-12-28 2019-07-04 한화테크윈주식회사 바코드 검출 장치 및 이를 이용한 바코드 검출 방법
KR20190104247A (ko) * 2015-01-19 2019-09-06 스냅 인코포레이티드 광학 바코드에 대한 맞춤형 기능 패턴들
KR102263184B1 (ko) * 2020-12-14 2021-06-09 주식회사 대곤코퍼레이션 저 품질 바코드 판독시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190104247A (ko) * 2015-01-19 2019-09-06 스냅 인코포레이티드 광학 바코드에 대한 맞춤형 기능 패턴들
WO2019132093A1 (ko) * 2017-12-28 2019-07-04 한화테크윈주식회사 바코드 검출 장치 및 이를 이용한 바코드 검출 방법
KR102263184B1 (ko) * 2020-12-14 2021-06-09 주식회사 대곤코퍼레이션 저 품질 바코드 판독시스템

Similar Documents

Publication Publication Date Title
US10580206B2 (en) Method and apparatus for constructing three-dimensional map
US8230075B1 (en) Method and device for identifying devices which can be targeted for the purpose of establishing a communication session
US20180136806A1 (en) Display control apparatus, display control method, and program
US9077891B1 (en) Depth determination using camera focus
US9349191B2 (en) Method and electronic device for processing object
US9195872B2 (en) Object tracking method and apparatus
KR20150059466A (ko) 전자장치에서 이미지 내의 특정 객체를 인식하기 위한 방법 및 장치
US9224064B2 (en) Electronic device, electronic device operating method, and computer readable recording medium recording the method
WO2020048392A1 (zh) 应用程序的病毒检测方法、装置、计算机设备及存储介质
CN110795019B (zh) 软键盘的按键识别方法、装置及存储介质
US20140232748A1 (en) Device, method and computer readable recording medium for operating the same
US10748000B2 (en) Method, electronic device, and recording medium for notifying of surrounding situation information
WO2018184255A1 (zh) 图像校正的方法和装置
US20150286867A1 (en) Method of tracking marker and electronic device thereof
CN110738185B (zh) 表单对象的识别方法、装置及存储介质
CN109816628B (zh) 人脸评价方法及相关产品
US9262689B1 (en) Optimizing pre-processing times for faster response
JP2017163195A (ja) 画像処理システム、プログラム、画像処理方法
KR20140103021A (ko) 객체 인식이 가능한 전자 장치
US20140231523A1 (en) Electronic device capable of recognizing object
JP6171660B2 (ja) 情報処理装置、情報処理システム及びプログラム
KR20220085834A (ko) 전자 기기 및 포커싱 방법
US9413477B2 (en) Screen detector
JP2016021097A (ja) 画像処理装置、画像処理方法、およびプログラム
CN114170366B (zh) 基于点线特征融合的三维重建方法及电子设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid