KR102588687B1 - 영상 기반 바코드 인식 장치 및 방법 - Google Patents
영상 기반 바코드 인식 장치 및 방법 Download PDFInfo
- Publication number
- KR102588687B1 KR102588687B1 KR1020180113905A KR20180113905A KR102588687B1 KR 102588687 B1 KR102588687 B1 KR 102588687B1 KR 1020180113905 A KR1020180113905 A KR 1020180113905A KR 20180113905 A KR20180113905 A KR 20180113905A KR 102588687 B1 KR102588687 B1 KR 102588687B1
- Authority
- KR
- South Korea
- Prior art keywords
- barcode
- image
- focus
- command
- product
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (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)
- Studio Devices (AREA)
Abstract
바코드 인식 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 바코드 인식 방법은, 센서로부터 제품이 입고되었음을 알리는 트리거링 메시지를 수신하는 단계; 상기 트리거링 메시지를 수신함에 따라 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계; 설정된 카메라 초점에 따라 제품 영상을 획득하는 단계; 상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하는 단계; 전처리된 영상으로부터 바코드 영역을 추출하는 단계; 및 상기 추출된 바코드 영역으로부터 바코드 정보를 도출하는 단계를 포함할 수 있다.
Description
본 발명은 영상 기반 바코드 인식 장치 및 방법에 관한 것으로, 더욱 상세하게는 공장 생산 라인 내 제품 상의 바코드를 영상 기반으로 인식하는 장치 및 방법에 관한 것이다.
공장 내에서 공정 라인 중에 제품을 이송하는 방식에는 여러가지가 있다. 가장 흔히 사용되는 것이 컨베이어 벨트를 이용한 공정간 제품 이송 방법이고, 스퀴드 방식으로 제품을 고정틀에 얹어 놓고 제품을 이용하는 방식도 사용된다. 또한, 대형 제품의 경우 지게차나 AGV(Auto Guided Vehicle)를 이용하여 제품을 이송하기도 한다. 최근 제품의 다양화 및 다각화가 일어나면서 제품의 종류에 따른 수많은 공정 라인이 필요하게 되었고 다품종 소량 생산 체제로 진입하게 되었다.
이러한 환경에서 작업자가 각각의 제품을 확인하기 위해 핸드 바코드리드건을 이용하여 부품에 부착된 바코드를 체크하는 과정이 통상적으로 발생한다. 하지만, 이러한 반복 작업은 작업자의 피로를 발생시키게 되고, 실제 A제품의 부품을 조립하는 경우에도 B제품 바코드를 찍게 되는 등 오사양/오조립이 빈번하게 발생하게 된다.
따라서, 휴먼 팩터 에러와 제품의 이송과정까지 한 번에 파악할 수 있는 바코드 인식 기술이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 영상을 기반으로 하여 공장 내 생산 라인 내 제품의 바코드를 인식하는 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 상기 바코드 인식 방법을 사용하는 바코드 인식 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 바코드 인식 방법은, 센서로부터 제품이 입고되었음을 알리는 트리거링 메시지를 수신하는 단계; 상기 트리거링 메시지를 수신함에 따라 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계; 설정된 카메라 초점에 따라 제품 영상을 획득하는 단계; 상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하는 단계; 전처리된 영상으로부터 바코드 영역을 추출하는 단계; 및 상기 추출된 바코드 영역으로부터 바코드 정보를 도출하는 단계를 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계는, 초기 초점을 기준으로 설정되는 탐색 범위 내에서 일정한 간격을 두고 복수의 초점에 대해 상기 바코드의 엣지를 추출하여, 추출된 엣지를 구성하는 픽셀 값들의 합을 산출하는 단계; 및 산출된 엣지 픽셀 값들의 합이 최대인 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하는 단계를 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계는, 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하는 단계; 및 엣지 픽셀 값들의 합이 최대인 카메라 초점을 바코드 영상 획득을 위한 초점으로 설정하는 단계를 포함할 수 있다.
상기 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하는 단계는, 초기 초점을 기준으로 탐색 범위를 설정하는 단계; 및 상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하는 단계를 포함할 수 있다.
상기 탐색 범위의 상한 또는 하한으로부터 일정한 초점 간격을 두고 반복하여 상기 바코드의 엣지를 추출하는 단계는, 제1 초점에서 엣지 픽셀 값들의 합을 산출하는 단계; 상기 제1 초점을 설정한 시점에 후행하는 시점에서 제2 초점 대해 엣지 픽셀 값들의 합을 산출하는 단계; 및 상기 제1 초점에서 산출한 엣지 픽셀 값들의 합이 상기 제2 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 상기 제1 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하는 단계를 포함할 수 있다.
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하는 단계는, 상기 제품 영상에 대한 영상 개선을 수행하는 단계; 및 개선된 제품 영상에서 바코드 영역을 추출하는 단계를 포함할 수 있다.
상기 제품 영상에 대한 영상 개선을 수행하는 단계는, 상기 제품 영상으로부터 블러 영상을 차감하여 샤프닝 처리를 수행하는 단계; 샤프닝 처리된 영상에 대해 영상 픽셀의 곱을 산출하는 단계; 및 상기 샤프닝으로부터 발생한 노이즈를 제거하는 단계를 포함할 수 있다.
상기 바코드 영역을 추출하는 단계는, 입력된 영상의 히스토그램을 추출하는 단계; 상기 영상의 히스토그램 및 적응적 임계치를 이용하여 영상에 대한 이진화를 수행하는 단계; 및 이진화된 영상에 대한 레이블링을 수행하는 단계를 포함할 수 있다.
상기 영상에 대한 이진화를 수행하는 단계는, 영상을 복수의 소구역으로 구분하는 단계; 상기 소구역별로 해당 소구역의 밝기에 따라 임계치를 부여하는 단계; 및 소구역 별로 해당 임계치에 따라 이진화를 수행하는 단계를 포함할 수 있다.
여기서, 상기 픽셀 값은 해당 픽셀의 명암을 나타내는 값일 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 바코드 인식 장치는, 적어도 하나의 프로세서 및 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함할 수 있으며, 적어도 하나의 명령은, 상기 프로세서로 하여금, 센서로부터 제품이 입고되었음을 알리는 트리거링 메시지를 수신하도록 하는 명령; 상기 트리거링 메시지를 수신함에 따라 상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령; 설정된 카메라 초점에 따라 제품 영상을 획득하도록 하는 명령; 상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령; 전처리된 영상으로부터 바코드 영역을 추출하도록 하는 명령; 및 상기 추출된 바코드 영역으로부터 바코드 정보를 도출하도록 하는 명령을 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은, 초기 초점을 기준으로 설정되는 탐색 범위 내에서 일정한 간격을 두고 복수의 초점에 대해 상기 바코드의 엣지를 추출하여, 추출된 엣지를 구성하는 픽셀 값들의 합을 산출하도록 하는 명령; 및 산출된 엣지 픽셀 값들의 합이 최대인 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은, 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령; 및 엣지 픽셀 값들의 합이 최대인 카메라 초점을 바코드 영상 획득을 위한 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령은, 초기 초점을 기준으로 탐색 범위를 설정하도록 하는 명령; 및 상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령을 포함할 수 있다.
이때, 상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령은, 제1 초점에서 엣지 픽셀 값들의 합을 산출하도록 하는 명령; 상기 제1 초점을 설정한 시점에 후행하는 시점에서 제2 초점 대해 엣지 픽셀 값들의 합을 산출하도록 하는 명령; 및 상기 제1 초점에서 산출한 엣지 픽셀 값들의 합이 상기 제2 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 상기 제1 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령은, 상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령; 및 개선된 제품 영상에서 바코드 영역을 추출하도록 하는 명령을 포함할 수 있다.
상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령은, 상기 제품 영상으로부터 블러 영상을 차감하여 샤프닝 처리를 수행하도록 하는 명령; 샤프닝 처리된 영상에 대해 영상 픽셀의 곱을 산출하도록 하는 명령; 및 상기 샤프닝으로부터 발생한 노이즈를 제거하도록 하는 명령을 포함할 수 있다.
상기 바코드 영역을 추출하도록 하는 명령은, 입력된 영상의 히스토그램을 추출하도록 하는 명령; 상기 영상의 히스토그램 및 적응적 임계치를 이용하여 영상에 대한 이진화를 수행하도록 하는 명령; 및 이진화된 영상에 대한 레이블링을 수행하도록 하는 명령을 포함할 수 있다.
상기 영상에 대한 이진화를 수행하도록 하는 명령은, 상기 영상을 복수의 소구역으로 구분하도록 하는 명령; 상기 소구역별로 해당 소구역의 밝기에 따라 임계치를 부여하도록 하는 명령; 및 소구역 별로 해당 임계치에 따라 이진화를 수행하도록 하는 명령을 포함할 수 있다.
여기서, 픽셀 값은 해당 픽셀의 명암을 나타내는 값일 수 있다.
상기와 같은 본 발명의 실시예들에 따르면 바코드 인식 속도를 현저히 향상시킬 수 있으며 생산성 또한 향상시킬 수 있다.
그에 따라 본 발명은, 기존의 핸드 바코드를 이용한 생산시스템 대비 작업자의 피로도를 감소시키며 작업의 복잡도를 감소시킬 수 있다.
또한, 넓은 상하좌우 인식각도에서 바코드 인식이 가능하며, 제품과 카메라 간의 거리가, 생산 라인 내에서 작업의 생산성을 확보할 수 있는 거리인 2미터 가량인 경우 효율적이고 신속한 바코드 인지 성능을 제공한다.
또한, 기존에 핸드 바코드 사용으로 인해 빈번히 발생하였던 오사양, 오조립을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 기반 원거리 바코드 인식 방법의 개략적인 동작 순서도이다.
도 2는 본 발명에 따른 자동 초점 설정 방법의 제1 실시예의 동작 순서도이다.
도 3은 본 발명에 따른 자동 초점 설정 방법의 제2 실시예의 동작 순서도이다.
도 4는 본 발명에 따른 자동 초점 설정 방법의 제2 실시예를 사용하여 엣지를 추출한 결과의 예를 도시한다.
도 5는 본 발명의 일 실시예에 따른 전처리 절차의 동작 순서도이다.
도 6은 본 발명의 일 실시예에 따라 샤프닝 처리가 수행된 결과 영상의 일 예를 도시한다.
도 7은 본 발명에 적용되는 미디언 필터의 개념을 나타낸 도면이다.
도 8은 본 발명에 따라 포커스 범위 확장을 위한 영상 개선 방법의 각 단계별 영상을 처리 순서에 따라 나타낸 도면이다.
도 9는 본 발명에 적용될 수 있는 영상 히스토그램의 개념을 나타낸 도면이다.
도 10는 본 발명에 적용될 수 있는 이진화의 개념을 나타낸 도면이다.
도 11a는 일반적인 이진화 방법을 사용한 경우 원 영상 대비 결과 영상을, 도 11b 는 본 발명에 적용되는 적응적 임계치를 이용한 이진화 방법을 사용한 경우의 원 영상 대비 결과 영상을 나타낸 도면이다.
도 12a 내지 도 12d는 본 발명에 적용될 수 있는 레이블링을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른 사용자 인터페이스에 의해 제공되는 화면의 예시도이다.
도 14는 본 발명의 일 실시예에 따른 바코드 인식 장치의 블록 구성도이다.
도 2는 본 발명에 따른 자동 초점 설정 방법의 제1 실시예의 동작 순서도이다.
도 3은 본 발명에 따른 자동 초점 설정 방법의 제2 실시예의 동작 순서도이다.
도 4는 본 발명에 따른 자동 초점 설정 방법의 제2 실시예를 사용하여 엣지를 추출한 결과의 예를 도시한다.
도 5는 본 발명의 일 실시예에 따른 전처리 절차의 동작 순서도이다.
도 6은 본 발명의 일 실시예에 따라 샤프닝 처리가 수행된 결과 영상의 일 예를 도시한다.
도 7은 본 발명에 적용되는 미디언 필터의 개념을 나타낸 도면이다.
도 8은 본 발명에 따라 포커스 범위 확장을 위한 영상 개선 방법의 각 단계별 영상을 처리 순서에 따라 나타낸 도면이다.
도 9는 본 발명에 적용될 수 있는 영상 히스토그램의 개념을 나타낸 도면이다.
도 10는 본 발명에 적용될 수 있는 이진화의 개념을 나타낸 도면이다.
도 11a는 일반적인 이진화 방법을 사용한 경우 원 영상 대비 결과 영상을, 도 11b 는 본 발명에 적용되는 적응적 임계치를 이용한 이진화 방법을 사용한 경우의 원 영상 대비 결과 영상을 나타낸 도면이다.
도 12a 내지 도 12d는 본 발명에 적용될 수 있는 레이블링을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른 사용자 인터페이스에 의해 제공되는 화면의 예시도이다.
도 14는 본 발명의 일 실시예에 따른 바코드 인식 장치의 블록 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
공장 내부에서 혼류 생산이 일어나는 경우 여러 모델에 대응하여 동작할 필요가 있다. 각 모델에 대한 대응을 위해서 제품의 변경이 어떻게 이루어졌는지 확인 및 추적하는 작업 또한 필요하다. 본 발명에서는 이러한 제품 확인 및 추적을 위해 기존에 사용되던 근거리 핸드바코드 리더 대신 원거리 바코드 인식이 가능한 영상을 이용해 바코드를 인식하는 장치 및 방법을 제공하고자 한다.
본 발명에서는 특히, 바코드 인식에 소요되는 시간을 축소하는 데 초점을 맞추었으며, 이를 위해 제품의 이동이 이루어지는 짧은 시간 동안에 바코드 인식을 가능토록 하기 위한 자동 줌인/아웃, 자동 초점, 고속화 처리를 위한 방법들을 제안한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 영상 기반 원거리 바코드 인식 방법의 개략적인 동작 순서도이다.
도 1의 실시예는 이송 라인을 통해 AGV(Automatic Guided Vehicle)를 이용해 물품이 이송되는 경우 본 발명의 일 실시예에 따른 바코드 인식 장치에 의해 수행되는 바코드 인식 방법의 각 단계를 설명한다. 도 1의 실시예가 적용될 수 있는 공정 라인은 예를 들어, 자동차 공장의 도어트림 공정 라인일 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 바코드 인식 장치가, 적외선 센서로부터 AGV(Automatic Guided Vehicle) IN이라는 트리거링 메시지를 수신함으로써, 바코드 인식 절차를 시작한다(S110). 여기서, 적외선 센서는 작업대 어느 부위에나 설치 가능하며, 예를 들어, 작업대 왼쪽 입구 쪽, 그리고 작업대 출구 쪽에 설치 될 수 있다.
본 발명에 따른 바코드 인식 장치는 IIoT(Industrial Internet of Things) 센서 모듈과 연동할 수 있다. 제품이 들어오는 입구 쪽에 위치하는 IIoT 센서 모듈은 제품의 입고를 검출하여 “AGV IN”이라는 메세지를 바코드 인식 장치로 전달할 수 있다. 또한, 제품이 검출 영역을 벗어나 출고되는 출구 쪽에 배치된 IIoT 센서 모듈은 제품의 출고를 검출하여 "AGV OUT"이라는 메시지를 바코드 인식 장치로 전달할 수 있다.
여기서, IIoT 센서 모듈은 적외선 센서를 포함할 수 있으며, 적외선 센서는 본 발명에서 제품의 입고 및 출고를 검출하여 이를 바코드 인식 장치로 알려주는 역할을 수행하게 된다. 따라서, 제품의 출입을 검출할 수 있다면 적외선 센서뿐 아니라 어떤 형태의 센서라도 무방하다.
본 발명에서는 이와 같이 이송되는 제품의 변경을 적외선 센서 등을 통해 체크할 수 있다.
바코드 인식 장치가 적외선 센서로부터 트리거링 메시지를 수신하면, 바코드 인식 장치의 카메라가 제품 영상에 대해 자동 초점을 설정하여(S120), 제품 내 바코드 영상을 획득한다(S130).
이를 위해 본 발명의 일 실시예에 따른 바코드 인식 방법은, AGV IN 트리거링 메시지를 수신함에 따라 카메라의 초점을 자동으로 조정하여 초점을 맞추고, 초점이 맞춰진 상태에서 바코드 영상을 획득하며 획득한 영상에 대한 전처리가 완료될 때까지 연속적으로 해당 바코드에 대한 촬영을 수행할 수 있다.
본 발명의 일 실시예에 따른 바코드 인식 방법은, 자동 초점의 수행을 위해 카메라의 오토 줌인/줌아웃을 관리하며, 초점 거리에 따라서 예를 들어, 줌인 5회, 줌아웃 5회의 동작을 통해 초점이 가장 잘 맞는 영상을 찾아낼 수 있다.
자동 초점 설정 후에 획득한 정지 영상(예를 들어, 스냅 촬영된 영상)에 대해서는 전처리 프로세스(S140)가 수행한다. 여기서, 전처리는, 영상 개선, 바코드 영역 추출, 밝기 불균형 보정, 굴곡진 바코드 인식을 위한 처리 작업을 포함할 수 있다.
전처리 후 바코드 추출 단계(S150)에서는 바코드의 시작 및 종료 패턴을 인식한다. 좀더 구체적으로, 바코드 추출 단계에서는 전처리를 마친 이미지를 로 샘플링(Raw sampling)하고 바코드의 시작/종료 패턴(Start/End pattern) 인식을 통하여 바코드의 위치를 인식하여 바코드를 추출한다.
추출된 바코드에 대해서는 코드북 매칭 및 검증을 수행하여 최종적인 바코드 인지가 수행된다(S160). 즉, 바코드 인지 단계에서는 추출된 바코드를 코드북(Codbook)과 매칭하여 바코드를 숫자로 전환하고, 전환된 바코드 숫자에 대한 검증을 통해 최종적인 바코드 인지를 수행한다.
최종 인지된 결과는 사용자 인터페이스를 통해 디스플레이된다(S170).
추가적으로, 해당 제품에 대한 모든 촬영, 인지 및 출력이 완료되고 나서 해당 제품이 이송되어 나가는 경우 적외선 센서가 이를 인지하여 AGV OUT 이라는 메세지를 본 발명에 따른 바코드 인식 장치로 전송하고, 해당 메시지를 수신하여 제품의 출고를 인지한 바코드 인식 장치는 제품에 대한 촬영을 중단하고 다음 상품이 입고될 때까지 대기한다.
본 발명은 원거리 바코드 자동 초점 설정 방법을 통해 자동 포커싱에 소요되는 시간을 대폭 축소함으로써, 신속한 바코드 인지를 수행하는 것을 기술적 특징으로 한다. 일반적인 카메라 API(Application Programming Interface)도 자동초점 세팅 함수를 가지나, 미세 조정을 포함하여 통상적으로 2~5초 정도의 시간이 소요된다.
본 발명에서 제시하는 자동 초점 설정 방법의 제1 실시예에 따르면, 미세 조정을 포함한 자동 초점 설정에 소요되는 시간이 1.5초 가량이다. 또한, 이하에서 설명될 본 발명의 자동 초점 설정 방법의 제2 실시예에 따르면, 미세 조정을 포함하여 자동 초점 설정에 소요되는 시간이 750ms~900ms에 불과하여, 기존의 일반 카메라 API로부터 기대할 수 있는 자동초점 설정 시간 대비 매우 단축된 초점 설정 시간을 얻을 수 있다.
도 2는 본 발명에 따른 자동 초점 설정 방법의 제1 실시예의 동작 순서도이다.
도 2를 참조하면, 제1 실시예에 따른 자동 초점 설정 방법에 따르면 우선, 바코드 인식 장치는 카메라의 줌인/줌아웃을 초기 위치로 이동시키고(S210), 입력되는 바코드 영상을 확인한다(S220). 바코드 인식 장치는, 입력된 영상에서 바코드의 테두리, 즉, 엣지 부분을 추출하고(S230), 엣지(Edge) 픽셀 값들의 합을 산출한다(S240). 여기서, 픽셀 값은 해당 픽셀의 명암을 나타내는 값일 수 있다.
산출된 엣지 픽셀 값들의 합이 최대값인지 체크하고(S250), 최대값이 아닌 경우 최대값을 갖는 초점을 찾아 카메라 포커스를 100단위로 증가하여 이동시키면서(S260), 상기 단계 220 내지 240을 반복한다. 엣지 픽셀 값의 합이 최대값인 경우 해당 카메라 초점에서의 바코드 영상을 획득하여(S270), 이후의 전처리 절차로 넘겨준다. 여기서, 최대값은 사전에 실험에 의해 미리 설정되는 값일 수 있다.
최대값이 사전에 설정되지 않는 경우 도 2의 실시예에 따른 방법은, 일정한 탐색 범위 내에서 복수 개로 설정된 카메라 초점들 각각에서 엣지 추출 및 엣지 픽셀의 합을 산출하고, 산출된 값들 중 최대 값을 갖는 초점에서의 바코드 영상을 획득하는 것으로 절차가 수정될 수 있다.
도 3은 본 발명에 따른 자동 초점 설정 방법의 제2 실시예의 동작 순서도이다.
본 발명에 따른 자동 초점 설정 방법의 제2 실시예는, 도 2를 통해 설명한 제1 실시예의 방법과 달리, 초기 초점을 기준으로 탐색 범위를 설정하고 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 탐색 범위 내에서 바코드의 엣지를 추출하되, 이전 초점에서 산출한 엣지 픽셀 값들의 합이 현재 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 이전 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정한다.
구체적으로, 도 3의 실시예에서는 초기 포커스 값에서 +/-50의 탐색 범위를 설정하고, 한 스텝 당 25씩 움직여 최적의 초점에 가까운 위치에서 포커스를 확정한다.
도 3을 참조하면, 예를 들어, 현재의 포커스 값을 초기 포커스 위치, 즉 초기 초점으로 설정하고(S310), 최적의 초점을 찾기 위한 탐색을 시작한다. 즉, 초기 위치에서 탐색의 하한 경계치인 'initPos - 50'의 위치로 포커스를 이동하여(S320), 엣지 픽셀들의 합(curEdgeSum)을 산출하고 저장한다(S321). 이후, 해당 시점보다 +25의 위치, 즉, 'initPos +25'로 이동하여(S330) 엣지 픽셀들의 합을 산출하고 저장한다(S331).
이후, 포커스 위치를 +25씩 이동하면서 엣지 픽셀들의 합을 산출 및 저장하게 되는데, 포커스 위치가 한 스텝(25)씩 이동할 때마다 이전 위치에서 산출한 엣지 픽셀의 합은 이전 엣지 픽셀의 합(prevEdgeSum)으로 저장된다.
한편, 이전 엣지 픽셀들의 합(prevEdgeSum)이 현재 엣지 픽셀들의 합(curEdgeSum)이 이상인 경우 또는 현재 포커스의 위치가 탐색 범위를 벗어난 경우, 즉, curPos ≥ initPos + 50인 경우에는 탐색을 중단한다(S340의 예).
현재 엣지 픽셀의 합(curEdgeSum)이 이전 엣지 픽셀의 합(prevEdgeSum)보다 큰 경우 탐색을 중단하는 이유는, 엣지 픽셀들의 합이 최대인 위치에서 한 스텝 이동한 위치에서의 엣지 픽셀들의 합은 이전 위치에서의 엣지 픽셀들의 합보다 작기 때문에 추가 탐색을 진행할 이유가 없기 때문이다. 따라서, 이 경우는 바로 이전의 포커스 위치를 최적의 포커스 위치로 설정하고(S360), 초점 설정 절차를 종료할 수 있다.
상술한 방법을 이용하는 경우, 탐색 범위로 설정한 전체 범위, 즉 "초기 위치 +/-50"에 대해 모두 스캔하지 않고도 바코드 인식을 위한 최적의 초점을 도출해 낼 수 있으며, 이로부터 탐색 속도를 높이는 효과를 얻을 수 있다.
추가적으로, 카메라 포커스가 "초기 위치 +/-50"의 범위를 넘는 경우는 탐색 범위를 벗어나 엣지 픽셀의 합이 0인 경우(S350의 예)일 수 있으며, 이러한 경우에는 카메라 API에서 기본적으로 제공하는 자동초점 함수를 적용하여 초점을 설정할 수 있다(S351).
여기서, 엣지 픽셀의 합은 엣지 영상 추출 결과에서 200~255사이의 픽셀 값을 모두 합한 값을 의미할 수 있다. 또한, 엣지 검출에는 예를 들어, 소벨 엣지 검출기(Sobel Edge detector)가 사용될 수 있다.
한편, 도 3의 실시예에서는 설명의 편의를 위해, 설정된 탐색 범위의 하한에서 시작하여 포커스 값을 증가시키면서 이동하며 엣지 픽셀 값들의 합을 산출, 상호 비교하였으나, 탐색 범위의 상한에서 시작하여 포커스 값을 감소시키면서 이동하며 엣지 픽셀 값들의 합을 산출 및 비교하는 실시예 또한 본 발명의 범주에 포함될 수 있다.
도 4는 본 발명에 따른 자동 초점 설정 방법의 제2 실시예를 사용하여 엣지를 추출한 결과의 예를 도시한다. 도 4에서는 소벨(Sobel) 필터를 이용하여 추출한 엣지 영상을 나타내고 있다.
도 5는 본 발명의 일 실시예에 따른 전처리 절차의 동작 순서도이다.
본 발명의 일 실시예에 따른 전처리는, 바코드 인식 성능을 높이기 위해 영상이 어둡거나 영상에 변질이 발생했을 때 영상을 보정 또는 개선 처리하는 과정이다.
도 5를 참조하면 전처리 절차는 크게, 영상 개선 단계(S510) 및 바코드 전체 영역 추출 단계(S520)를 포함할 수 있다.
영상 개선 단계(S510)는 세부적으로, 샤프닝(Sharpening) 단계, 영상 픽셀들의 곱을 산출하는 단계, 및 미디언(Median) 필터를 적용하는 단계를 포함할 수 있다.
바코드 전체 영역 추출 단계(S520)는, 영상의 하이라이트 부분을 처리하기 위한 히스토그램(Histgram) 추출 단계, 이진화(Binarizartion) 단계 및 레이블링(Labeling) 단계를 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따라 샤프닝 처리가 수행된 결과 영상의 일 예를 도시한다.
샤프닝 처리는 영상을 선명하게 하거나 에지를 검출하는 데 사용될 수 있다. 샤프닝 처리는, 예를 들어, 원 영상으로부터 블러(blur) 영상을 생성하고, 원 영상으로부터, 생성된 블러영상을 빼는 방식을 사용하여 수행될 수 있으며, 이 방식은 기존 영상에서 블러부분을 제거하는 효과를 기대할 수 있다. 따라서, 샤프닝 처리된 영상은 원 영상보다 더욱 선명한 화질을 갖게 된다. 도 6에 도시된 원 영상(601), 블러 영상(602) 및 블러가 제거된 샤프닝 결과 영상(603)을 통해 이러한 효과를 확인할 수 있다.
도 7은 본 발명에 적용되는 미디언 필터의 개념을 나타낸 도면이다.
미디언 필터(Median filter)는 비선형 디지털 필터로 이미지나 기타 신호로부터 신호 잡음을 제거하는 데 자주 이용되며, 통상적으로 이미지 프로세싱에서 윤곽선 감지과 같은 높은 수준의 처리를 수행하기 전 단계에서 이미지의 고성능 잡음 제거를 수행하는 데 필요하다.
도 7을 참조하면, 미디언 필터는 입력 영상에 필터 윈도우를 적용하며 픽셀 값들의 중간 값을 출력 영상으로 제공한다. 이처럼 미디언 필터는 예를 들어, 스파크처럼 급격한 색 변화가 있는 임펄스 잡음을 제거하는 데 사용될 수 있으며, 기존의 평균필터를 이용한 선형공간 필터링 방법에 비해 블러링 현상이 적고 객체의 경계를 잘 보존할 수 있다는 장점을 가진다.
도 8은 본 발명에 따라 포커스 범위 확장을 위한 영상 개선 방법의 각 단계별 영상을 처리 순서에 따라 나타낸 도면이다.
영상 개선 방법은 세부적으로, 샤프닝(Sharpening) 단계, 영상 픽셀들의 곱 산출하는 단계, 및 미디언(Median) 필터를 적용하는 단계를 포함할 수 있음을 도 5를 통해 살펴본 바 있다.
도 8의 제일 상단에는 원 영상이 도시되어 있으며, 원 영상에 대해 샤프닝 절차를 완료한 후의 영상이 제1 영상으로 표시되어 있다. 이후 영상 픽셀의 곱을 산출한 결과 영상이 제2 영상으로 표시되어 있다. 도 8을 참조하면, 영상 픽셀의 곱을 통해 바코드 영역과 배경의 차이가 잘 드러나게 된다. 이후, 미디언 필터를 적용하여 샤프닝으로 인한 노이즈를 제거한 결과가 도 8의 제3 영상으로 나타나 있다.
도 9는 본 발명에 적용될 수 있는 영상 히스토그램의 개념을 나타낸 도면이다.
도 9를 참조하면, 영상 히스토그램은 영상의 밝기 값을 수평축으로 하고 밝기 값에 대응하는 크기를 가진 픽셀수가 영상 내에 몇 개나 되는지 나타내는 빈도 수를 수직축으로 하는 그래프이다. 즉, 영상 히스토그램은 영상의 화소가 가진 명암 값을 나타내는 그래프이다.
도 10는 본 발명에 적용될 수 있는 이진화의 개념을 나타낸 도면이다.
이진화(Binarization)는 영상의 색상 값을 0과1의 값만으로 표현하는 것이다. 실제적으로는, RGB컬러 영상을 흑백 영상으로 변경한 후 특정 임계값(threshold)을 기준으로 하여 해당 픽셀의 값이 임계 값을 초과하는 경우는 255로, 임계 값 이하의 값은 0으로 변환한다.
도 10을 참조하면, 서로 다른 픽셀 값을 갖는 두 개의 그레이 영역을 포함하는 원래의 영상이 이진화 처리되어, 흑(255) 또는 백(0)으로 표현된 결과를 확인할 수 있다.
도 11a는 일반적인 이진화 방법을 사용한 경우 원 영상 대비 결과 영상을, 도 11b 는 본 발명에 적용되는 적응적 임계치를 이용한 이진화 방법을 사용한 경우의 원 영상 대비 결과 영상을 나타낸 도면이다.
본 발명의 일 실시예에 따라 이진화시 적응적 임계치를 적용하는 방법은, 이미지를 동일 크기의 여러 소구역으로 나누고, 각 소구역 별로 각각의 임계치를 설정하여 이진화를 수행하는 방법이다. 즉, 이미지 내 소구역의 위치 별로 적응적으로 임계치를 적용하는 방법이다.
적응적 임계치를 적용하여 이진화를 수행하는 이유는, 양지와 음지가 모두 포함된 이미지에서 명확하게 드러난다. 양지에서는 모든 것이 밝게 표현되므로 임계치가 높아야 상호 구별이 가능할 것이다. 반대로, 음지에서는 모든 것이 어두우므로 임계치를 상대적으로 낮추는 것이 바람직하다. 따라서, 양지와 음지로 구분되는 소구역의 경우 각 소구역에 대해 서로 다른 임계치를 설정하는 것이 바람직하다.
이때, 적응적 임계치를 적용하는 구체적인 방법 중 하나로 OpenCV's 적응적 임계치를 적용하는 방식을 사용할 수 있다. 이 방식은 대상 픽셀에 대해 그 주위의 픽셀 값들의 평균값과 해당 픽셀 값의 차이를 임계처리(Thresholding)에 이용하는 방식이다. 구체적으로, 주위의 픽셀 값들의 평균값과 해당 픽셀 값의 차이가 0보다 크면, 임계처리 결과는 255가 되고, 그렇지 않으면 0으로 설정한다. 주변픽셀의 범위는 함수의 인수로 지정할 수 있으며 3,5,7,,, 등의 값으로 설정될 수 있다.
도 11a에서, 일반적인 이진화 방법을 적용한 영상은 좌측 상단의 상당 부분을 차지하는 영역이 "0"으로 설정되어 이진화 적용 후의 영상이 원래의 영상과 많이 달라지는 결과를 보이고 있다. 반면, 도 11b에 도시된, 적응적 임계치를 사용하여 이진화를 수행한 결과 출력된 영상의 경우 기존 영상 대비 문자 및 도형이 더욱 뚜렷해진 것을 확인할 수 있다.
도 12a 내지 도 12d는 본 발명에 적용될 수 있는 레이블링을 설명하기 위한 도면이다.
도 12a는 레이블링의 기본적인 개념을 도시하고 있다. 도 12a에 도시된 이미지는 이진화된 이미지로, 각 픽셀이 0 또는 255(1-채널)의 값을 가질 경우 인접한 영역끼리 그룹을 짓는 것을 레이블링(Labeling)이라고 한다.
도 12b는 인접한 픽셀을 탐색할 때 현재 픽셀을 기준으로 위, 아래, 왼쪽, 오른쪽 총 4개의 방향에 위치하는 4 개의 이웃 픽셀을 탐색하는 4-네이버(4-neighbor) 방식을, 도 12c는 현재 픽셀을 기준으로 8 개의 이웃 픽셀, 즉, 위, 아래, 왼쪽, 오른쪽 및 4개의 대각 방향을 탐색하는 8-네이버 방식을 설명한다.
도 12d는 인접 영역에 동일한 레이블 번호(Label number)를 부여하여 그룹화한 예를 도시한다. 도 12d를 참조하면, 예를 들어, 레이블 번호가 '4'인 대각 픽셀이 그룹핑된 것을 확인할 수 있다.
이렇듯 인접한 영역들을 그룹핑하는 것이 레이블링이며, 본 발명에서는 바코드 전체 영역의 위치를 구하기 위해 레이블링을 사용한다.
도 13은 본 발명의 일 실시예에 따른 사용자 인터페이스(User Interface)에 의해 제공되는 화면의 예시도이다.
도 13을 참조하면, 본 발명에 따른 사용자 인터페이스는 실시간으로 획득한 영상을 출력하며, 최종 결정된 초점에서 스냅 촬영된 영상, 스냅 촬영 후 전처리를 거친 영상, 바코드 추출 및 인지를 거친 결과 값을 출력하여 사용자에게 제공한다. 사용자는 사용자 인터페이스를 통해 수동으로 줌인/아웃, 초점 이동, 밝기 조절을 수행할 수 있다. 사용자 인터페이스는 또한 화면을 통해 수동 촬영, 리셋, 그리고 종료를 위한 버튼을 제공할 수 있다.
바코드 영상에 대한 모든 촬영, 인지 및 출력이 완료되고 나서 해당 제품이 이송되어 나가는 경우 적외선 센서가 이를 인지하여 AGV OUT 이라는 메세지를 본 발명에 따른 바코드 인식 장치로 전송하고, 해당 메시지를 수신하여 제품의 출고를 인지한 바코드 인식 장치는 제품에 대한 모든 촬영을 중단하고 다음 상품이 입고될 때까지 대기한다.
도 14는 본 발명의 일 실시예에 따른 바코드 인식 장치의 블록 구성도이다.
본 발명의 일 실시예에 따른 바코드 인식 장치는 프로세서(110), 메모리(120), 카메라(130), 사용자 인터페이스(140), 및 통신 모듈(150)을 포함할 수 있다.
한편, 앞서 살펴본 적외선 센서 또는 IIoT 센서 모듈은 바코드 인식 장치와 별개의 장치로 구현되어 바코드 인식 장치와 연동하거나, 바코드 인식 장치 내로 통합되어 시스템 형태로 구현될 수도 있다.
메모리(120)는 프로세서를 통해 실행되는 적어도 하나의 명령 및 명령 수행의 결과를 저장할 수 있다.
여기서, 적어도 하나의 명령은, 상기 프로세서로 하여금, 센서로부터 제품이 입고되었음을 알리는 트리거링 메시지를 수신하도록 하는 명령; 상기 트리거링 메시지를 수신함에 따라 상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령; 설정된 카메라 초점에 따라 제품 영상을 획득하도록 하는 명령; 상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령; 전처리된 영상으로부터 바코드 영역을 추출하도록 하는 명령; 및 상기 추출된 바코드 영역으로부터 바코드 정보를 도출하도록 하는 명령을 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은, 초기 초점을 기준으로 설정되는 탐색 범위 내에서 일정한 간격을 두고 복수의 초점에 대해 상기 바코드의 엣지를 추출하여, 추출된 엣지를 구성하는 픽셀 값들의 합을 산출하도록 하는 명령; 및 산출된 엣지 픽셀 값들의 합이 최대인 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은, 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령; 및 엣지 픽셀 값들의 합이 최대인 카메라 초점을 바코드 영상 획득을 위한 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령은, 초기 초점을 기준으로 탐색 범위를 설정하도록 하는 명령; 및 상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령을 포함할 수 있다.
이때, 상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령은, 제1 초점에서 엣지 픽셀 값들의 합을 산출하도록 하는 명령; 상기 제1 초점을 설정한 시점에 후행하는 시점에서 제2 초점 대해 엣지 픽셀 값들의 합을 산출하도록 하는 명령; 및 상기 제1 초점에서 산출한 엣지 픽셀 값들의 합이 상기 제2 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 상기 제1 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함할 수 있다.
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령은, 상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령; 및 개선된 제품 영상에서 바코드 영역을 추출하도록 하는 명령을 포함할 수 있다.
상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령은, 상기 제품 영상으로부터 블러 영상을 차감하여 샤프닝 처리를 수행하도록 하는 명령; 샤프닝 처리된 영상에 대해 영상 픽셀의 곱을 산출하도록 하는 명령; 및 상기 샤프닝으로부터 발생한 노이즈를 제거하도록 하는 명령을 포함할 수 있다.
상기 바코드 영역을 추출하도록 하는 명령은, 입력된 영상의 히스토그램을 추출하도록 하는 명령; 상기 영상의 히스토그램 및 적응적 임계치를 이용하여 영상에 대한 이진화를 수행하도록 하는 명령; 및 이진화된 영상에 대한 레이블링을 수행하도록 하는 명령을 포함할 수 있다.
상기 영상에 대한 이진화를 수행하도록 하는 명령은, 상기 영상을 복수의 소구역으로 구분하도록 하는 명령; 상기 소구역별로 해당 소구역의 밝기에 따라 임계치를 부여하도록 하는 명령; 및 소구역 별로 해당 임계치에 따라 이진화를 수행하도록 하는 명령을 포함할 수 있다.
여기서, 픽셀 값은 해당 픽셀의 명암을 나타내는 값일 수 있다.
카메라(130)는 입고되는 제품의 이미지를 획득하여 프로세서(110)로 전달하되, 프로세서(110)에 의해 설정된 초점에 따라 바코드를 포함하는 제품의 이미지를 획득한다. 본 발명에서는 고속으로 초점을 설정하는 방법을 카메라에 적용함으로써 1대의 카메라로도 충분한 속도로 바코드 인지가 가능하다. 따라서, 본 발명에서 카메라는 1대로 충분하다 할 것이나, 복수의 카메라가 사용되는 것을 배제하지 않는다.
사용자 인터페이스(140)는 실시간으로 획득한 영상을 출력하며, 최종 결정된 초점에서 스냅 촬영된 영상, 스냅 촬영 후 전처리를 거친 영상, 바코드 추출 및 인지를 거친 결과 값을 출력하여 사용자에게 제공한다. 사용자 인터페이스(140)는 또한 줌인/아웃, 초점 이동, 밝기 조절을 위한 버튼 등을 사용자에게 제공하고 사용자로부터 입력되는 명령을 프로세서(110)로 전달한다.
통신 모듈(150)은 인지된 바코드 정보를 패킷 등이 형태로 외부로 전송한다. 바코드 정보를 전달하고자 하는 목적지에 대한 정보는 사용자 인터페이스 등을 통해 사용자가 구성(configuration) 파일을 수정함으로써 손쉽게 변경 가능하다. 구성 파일은 바코드 정보를 전달할 목적지의 IP 및 포트 번호를 포함할 수 있다. 바코드 정보는 바코드 응용 서비스를 제공하는 외부 서버 등으로 전송될 수 있다.
기존의 핸드 바코드를 이용한 생산시스템에서는 작업자의 피로도 및 복잡도를 증가시켜 불량을 유발할 수 있는 환경을 제공하였다면, 본 발명은 기존의 핸드바코드 기술이 아닌 원거리 바코드 인지 시스템을 적용시켜 인지 속도 및 작업의 정확도를 향상시키고 작업자의 편리성을 증대시킬 수 있다.
또한, 상술한 본 발명의 실시예들을 이용하면, 작업자의 동선에 방해가 되지 않고 제품의 이송시나 작업시에 제품의 영상을 통해 바코드를 자동 인지하여 작업자에게 제품 관련 정보를 제공할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 바코드 인식 장치 110: 프로세서
120: 메모리 130: 카메라
140: 사용자 인터페이스 150: 통신 모듈
120: 메모리 130: 카메라
140: 사용자 인터페이스 150: 통신 모듈
Claims (20)
- 프로그램 명령을 실행하는 프로세서를 토대로 구현되고, 입고되는 제품의 이미지로부터 상기 제품에 부착된 바코드를 인식하는, 바코드 인식 장치에 의해 수행되는 바코드 인식 방법으로서,
센서로부터 제품 검출 영역에 제품이 입고되었음을 알리는 트리거링 메시지를 수신하는 단계;
상기 트리거링 메시지를 수신함에 따라 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계;
설정된 카메라 초점에 따라 제품 영상을 획득하는 단계;
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하는 단계;
전처리된 영상으로부터 바코드 영역을 추출하는 단계;
상기 추출된 바코드 영역으로부터 바코드 정보를 도출하는 단계; 및
상기 설정된 카메라 초점에 따라 획득된 상기 제품 영상과, 상기 전처리된 영상과, 상기 추출된 바코드 영역과, 상기 바코드 정보를 포함하는 출력 화면을 디스플레이 장치를 통해서 사용자에게 표출하는 단계를 포함하는, 바코드 인식 방법. - 청구항 1에 있어서,
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계는,
초기 초점을 기준으로 설정되는 탐색 범위 내에서 일정한 간격을 두고 복수의 초점에 대해 상기 바코드의 엣지를 추출하여, 추출된 엣지를 구성하는 픽셀 값들의 합을 산출하는 단계; 및
산출된 엣지 픽셀 값들의 합이 최대인 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하는 단계를 포함하는, 바코드 인식 방법. - 청구항 1에 있어서,
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하는 단계는,
복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하는 단계; 및
엣지 픽셀 값들의 합이 최대인 카메라 초점을 바코드 영상 획득을 위한 초점으로 설정하는 단계를 포함하는, 바코드 인식 방법. - 청구항 3에 있어서,
상기 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하는 단계는,
초기 초점을 기준으로 탐색 범위를 설정하는 단계; 및
상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하는 단계를 포함하는, 바코드 인식 방법. - 청구항 4에 있어서,
상기 탐색 범위의 상한 또는 하한으로부터 일정한 초점 간격을 두고 반복하여 상기 바코드의 엣지를 추출하는 단계는,
제1 초점에서 엣지 픽셀 값들의 합을 산출하는 단계;
상기 제1 초점을 설정한 시점에 후행하는 시점에서 제2 초점 대해 엣지 픽셀 값들의 합을 산출하는 단계; 및
상기 제1 초점에서 산출한 엣지 픽셀 값들의 합이 상기 제2 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 상기 제1 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하는 단계를 포함하는, 바코드 인식 방법. - 청구항 1에 있어서,
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하는 단계는,
상기 제품 영상에 대한 영상 개선을 수행하는 단계; 및
개선된 제품 영상에서 바코드 영역을 추출하는 단계를 포함하는, 바코드 인식 방법. - 청구항 6에 있어서,
상기 제품 영상에 대한 영상 개선을 수행하는 단계는,
상기 제품 영상으로부터 블러 영상을 차감하여 샤프닝 처리를 수행하는 단계;
샤프닝 처리된 영상에 대해 영상 픽셀의 곱을 산출하는 단계; 및
상기 샤프닝으로부터 발생한 노이즈를 제거하는 단계를 포함하는, 바코드 인식 방법. - 청구항 1에 있어서,
상기 바코드 영역을 추출하는 단계는,
입력된 영상의 히스토그램을 추출하는 단계;
상기 영상의 히스토그램 및 적응적 임계치를 이용하여 영상에 대한 이진화를 수행하는 단계; 및
이진화된 영상에 대한 레이블링을 수행하는 단계를 포함하는, 바코드 인식 방법. - 청구항 8에 있어서,
상기 영상에 대한 이진화를 수행하는 단계는,
영상을 복수의 소구역으로 구분하는 단계;
상기 소구역별로 해당 소구역의 밝기에 따라 임계치를 부여하는 단계; 및
소구역 별로 해당 임계치에 따라 이진화를 수행하는 단계를 포함하는, 바코드 인식 방법. - 청구항 2에 있어서,
상기 픽셀 값은 해당 픽셀의 명암을 나타내는 값인, 바코드 인식 방법. - 입고되는 제품의 이미지를 획득하는 카메라;
프로세서; 및
상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고,
상기 적어도 하나의 명령은,
센서로부터 제품 검출 영역에 제품이 입고되었음을 알리는 트리거링 메시지를 수신하도록 하는 명령;
상기 트리거링 메시지를 수신함에 따라 상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령;
설정된 카메라 초점에 따라 제품 영상을 획득하도록 하는 명령;
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령;
전처리된 영상으로부터 바코드 영역을 추출하도록 하는 명령;
상기 추출된 바코드 영역으로부터 바코드 정보를 도출하도록 하는 명령; 및
상기 설정된 카메라 초점에 따라 획득된 상기 제품 영상과, 상기 전처리된 영상과, 상기 추출된 바코드 영역과, 상기 바코드 정보를 포함하는 출력 화면을 디스플레이 장치를 통해서 사용자에게 표출하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 11에 있어서,
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은,
초기 초점을 기준으로 설정되는 탐색 범위 내에서 일정한 간격을 두고 복수의 초점에 대해 상기 바코드의 엣지를 추출하여, 추출된 엣지를 구성하는 픽셀 값들의 합을 산출하도록 하는 명령; 및
산출된 엣지 픽셀 값들의 합이 최대인 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 12에 있어서,
상기 카메라를 통해 획득한 제품의 영상 내 바코드를 기준으로 카메라 초점을 설정하도록 하는 명령은,
복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령; 및
엣지 픽셀 값들의 합이 최대인 카메라 초점을 바코드 영상 획득을 위한 초점으로 설정하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 13에 있어서,
상기 복수의 카메라 초점에 대해 산출된 엣지 픽셀 값들의 합을 비교하도록 하는 명령은,
초기 초점을 기준으로 탐색 범위를 설정하도록 하는 명령; 및
상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 14에 있어서,
상기 탐색 범위의 상한 또는 하한으로부터 일정한 간격으로 초점 값을 감소 또는 증가시키면서 상기 탐색 범위 내에서 상기 바코드의 엣지를 추출하도록 하는 명령은,
제1 초점에서 엣지 픽셀 값들의 합을 산출하도록 하는 명령;
상기 제1 초점을 설정한 시점에 후행하는 시점에서 제2 초점 대해 엣지 픽셀 값들의 합을 산출하도록 하는 명령; 및
상기 제1 초점에서 산출한 엣지 픽셀 값들의 합이 상기 제2 초점에서 산출한 엣지 픽셀 값들의 합 이상인 경우, 추가적인 초점에 대한 바코드 엣지 추출을 중단하고, 상기 제1 초점을 바코드 영상 획득을 위한 카메라 초점으로 설정하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 11에 있어서,
상기 제품 영상으로부터 바코드 영역을 추출하기 위한 전처리를 수행하도록 하는 명령은,
상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령; 및
개선된 제품 영상에서 바코드 영역을 추출하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 16에 있어서,
상기 제품 영상에 대한 영상 개선을 수행하도록 하는 명령은,
상기 제품 영상으로부터 블러 영상을 차감하여 샤프닝 처리를 수행하도록 하는 명령;
샤프닝 처리된 영상에 대해 영상 픽셀의 곱을 산출하도록 하는 명령; 및
상기 샤프닝으로부터 발생한 노이즈를 제거하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 11에 있어서,
상기 바코드 영역을 추출하도록 하는 명령은,
입력된 영상의 히스토그램을 추출하도록 하는 명령;
상기 영상의 히스토그램 및 적응적 임계치를 이용하여 영상에 대한 이진화를 수행하도록 하는 명령; 및
이진화된 영상에 대한 레이블링을 수행하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 18에 있어서,
상기 영상에 대한 이진화를 수행하도록 하는 명령은,
상기 영상을 복수의 소구역으로 구분하도록 하는 명령;
상기 소구역별로 해당 소구역의 밝기에 따라 임계치를 부여하도록 하는 명령; 및
소구역 별로 해당 임계치에 따라 이진화를 수행하도록 하는 명령을 포함하는, 바코드 인식 장치. - 청구항 12에 있어서,
상기 픽셀 값은 해당 픽셀의 명암을 나타내는 값인, 바코드 인식 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/169,010 US10990778B2 (en) | 2017-10-30 | 2018-10-24 | Apparatus and method for recognizing barcode based on image detection |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170142723 | 2017-10-30 | ||
KR1020170142723 | 2017-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190056962A KR20190056962A (ko) | 2019-05-27 |
KR102588687B1 true KR102588687B1 (ko) | 2023-10-12 |
Family
ID=66679537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180113905A KR102588687B1 (ko) | 2017-10-30 | 2018-09-21 | 영상 기반 바코드 인식 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102588687B1 (ko) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100286677B1 (ko) * | 1995-12-28 | 2001-04-16 | 이구택 | 바코드를 이용한 코일인식 무인화시스템 |
US7213761B2 (en) * | 2005-03-23 | 2007-05-08 | Microscan Systems Incorporated | Apparatus and process for two-stage decoding of high-density optical symbols |
US8596541B2 (en) * | 2008-02-22 | 2013-12-03 | Qualcomm Incorporated | Image capture device with integrated barcode scanning |
-
2018
- 2018-09-21 KR KR1020180113905A patent/KR102588687B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20190056962A (ko) | 2019-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3740897B1 (en) | License plate reader using optical character recognition on plural detected regions | |
US9530069B2 (en) | Method and system for detecting and recognizing text in images | |
US9843730B2 (en) | Scene motion correction in fused image systems | |
US10990778B2 (en) | Apparatus and method for recognizing barcode based on image detection | |
US10803275B2 (en) | Deconvolution of digital images | |
KR101182173B1 (ko) | 차량 번호판 인식 방법 및 시스템 | |
Sidhwa et al. | Text extraction from bills and invoices | |
US20160337545A1 (en) | System and method for low light document capture and binarization with multiple flash images | |
WO2014184372A1 (en) | Image capture using client device | |
CN103198311A (zh) | 基于拍摄的图像来识别字符的方法及装置 | |
CN105869148A (zh) | 目标检测方法及装置 | |
CN110780982A (zh) | 一种图像处理方法、装置及设备 | |
CN103824257A (zh) | 一种二维码图像预处理方法 | |
JP7393106B2 (ja) | ビジョンシステムでラインを検出するためのシステム及び方法 | |
US20150112853A1 (en) | Online loan application using image capture at a client device | |
KR101778054B1 (ko) | 머신 비전을 위한 가이드 제공 방법 및 장치 | |
US10373329B2 (en) | Information processing apparatus, information processing method and storage medium for determining an image to be subjected to a character recognition processing | |
KR102588687B1 (ko) | 영상 기반 바코드 인식 장치 및 방법 | |
CN109257594B (zh) | 电视出厂检测方法、装置及计算机可读存储介质 | |
Asundi et al. | Raindrop detection algorithm for ADAS | |
KR101689705B1 (ko) | 픽셀 방향정보를 사용한 영상정보 내 패턴정보영역 검출방법 | |
US11653092B2 (en) | Compensation-free phase detection for phase detection autofocus devices | |
KR102177638B1 (ko) | 머신 비전 검사 장치의 자동 티칭 장치 및 방법 | |
Kurilovich et al. | Software for Scan Bank Cards in IOS Mobile Devices | |
KR101008538B1 (ko) | 얼굴검출기술과 카메라 센서제어를 이용한 얼굴영상 획득 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |