코그넥스 블로그

모바일 기기 적용 다중 코드 바코드 판독 자세히 살펴 보기

Using a mobile device to scan multiple barcodes on a box label

바코드 판독이 여러 업무 흐름에 대해 속도와 정확성 측면에서 생산성 향상을 제공할 수 있다는 사실에는 이견이 없습니다. 식료품점에서부터 스포츠 용품 매장에 이르기까지 거의 모든 소매 매장이 판매 지점에서만 아니라 재고 관리 및 보급에 이르기까지 스캔 가능한 제품 바코드의 장점을 누리고 있습니다. 유통 센터, 창고, 이벤트 티켓, 항공사... 바코드를 이용하는 산업 분야와 애플리케이션에 대한 목록의 항목은 셀수 없을 정도로 많습니다.

조직들은 보다 우수한 생산성 향상을 모색하면서 단일 스캔 한 번으로 다중 바코드를 판독할 수 있는 방안을 찾고 있습니다. 절반 정도는 GS1 바코드와 관련이 있는 팔레트 레이블 등과 같은 애플리케이션의 경우, 이러한 방안이 실현되면 분명한 장점을 얻을 수 있습니다. 재고 수취를 위한 다중 바코드 제품 레이블 스캔은 또다른 보편적인 사례입니다. 하지만 모바일 기기 솔루션은 보다 우수한 카메라와 빠른 프로세서로 보다 강력해졌으며 사용자들은 보다 첨단 다중 코드 스캔 사용을 찾고 있습니다.

한 사례를 보자면, 최근 어떤 고객이 다중 코드 바코드 판독에 대한 꼭 필요한 사용 사례라고 생각한 내용을 가지고 저희를 찾은 적이 있습니다. 이 회사의 사례에서 물품이 소모품 캐비닛에서 사용되었기 때문에 제품 레이블은 재주문 양식에 부착되었고 각 레이블에는 제품 식별을 위한 바코드 두 개가 포함되었습니다. 각 페이지는 레이블 1개에서 15개까지, 열 하나 두 개에 배치되어 포함 가능했습니다. 이 회사는 모바일 기기를 사용해서, 페이지 위에서 휴대 전화로 전체 페이지를 스캔함으로써 각 바코드 페이지를 스캔하고 싶어했습니다.

이 회사는 저희에게 경쟁 제품의 멋진 데모를 보여 줬는데 이 데모에서는 바코드를 상대적으로 빨리 강조한 후에 결과 목록을 반환했습니다. 이 데모에서 첫 번째 시도는 종이 위에서 휴대 전화로 전체 페이지를 한 번에 캡처하려는 것이었습니다만 촬영된 바코드 크기가 상대적으로 작아서 몇몇은 품질이 저하되어 멀리서 소프트웨어가 항상 모든 바코드를 판독할 수는 없었기 때문에 그다지 잘 작동하지 않았습니다.

두 번째 시도에서는 휴대 전화를 코드 가까이에 두고 페이지를 훑어 가듯이 이동시키면서 원하는 바코드를 수집하는 형태인 “배치 모드”를 사용했습니다. 휴대 전화기를 보다 가까이 위치시켰기 때문에 이 방식은 보다 잘 작동했습니다. 그러나 두 가지 문제가 있었는데 종이 위에 표시된 순서대로 바코드가 반환되지 않았다는 점(이 회사의 요구 사항에서는 매우 중요한 요소)과 때때로 일부 코드가 결과에서 이상하게 사라지는 현상이 발생했습니다. 저희가 해야 했던 일은 동일한 코드를 올바른 순서로 반환하는 것이었습니다. 간단한 일이 아닐까요? 음, 그렇지 않습니다.

다중 코드 바코드 판독 작동 방식

코그넥스는 수십 년간 고정 마운트 시스템, 휴대형 스캐너, 그리고 보다 최근에는, 모바일 바코드 터미널, 휴대 전화기, 태블릿을 이용한 바코드 스캔 시스템을 공급해 왔습니다. 다중 코드 바코드 판독은 고정 마운트 시스템에서 일반적이지만 휴대형 및 모바일 기기에서는 상대적으로 찾아보기 힘듭니다. 가장 중요한 이유는 이미지 안정성입니다. 카메라가 움직이지 않는 고정 마운트 애플리케이션(바코드 스캔 시스템이 고정 위치에 장착)은 알려진 방향으로 설정되고 스캔하는 물체에 대한 최적 스캔 거리와 화각으로 튜닝됩니다. 더군다나 조명과 동작은 보통 잘 통제되거나 이해가 가능하기 때문에 스캔 성능을 훨씬 더 잘 튜닝할 수 있습니다. 고정 마운트 스캔 구현 특성은 다중 코드 스캔에 대해 보다 많은 제어가 가능하지만 그럼에도 불구하고 작업이 쉽지는 않습니다.

실제로 이미지 스캐너 한 대로 바코드 필드 스냅샷 하나를 촬영하고 모든 바코드를 찾고 각각 디코딩할 수는 있습니다. 그러나 초점, 조명, 기울기 등의 변화로 인해서 모든 바코드들에 대해 위치 찾기와 디코딩이 가능한 경우는 거의 없습니다. 심지어 고정 마운트 애플리케이션에서도 이런 가능성은 거의 없습니다. 그 대신 카메라에서 수신되는 라이브 비디오 스트림에서 얻는 여러 개발 이미지(프레임)를 검사하고 각 스캔한 내용들로 결과를 조합함으로써 다중 코드 디코딩을 수행할 수 있습니다. 따라서 대부분의 애플리케이션에서는 단일 프레임이 모든 바코드를 다 포함하지 않을 수도 있기 때문에 10, 20, 30장 또는 이보다 더 많은 프레임을 이용해서 디코딩된 결과를 통합해야 한다는 사실을 의미합니다.

디코딩 알고리즘은 다중 프레임을 분석하고 결과를 결합하면서 중복을 제거하면서도 중요한 데이터는 거르지 않을 수 있을 정도로 정교해야 합니다. 간단한 다음 네 가지 바코드 예제들을 생각해 봅시다:


다중 코드 - 바코드 4개 예제

사용자가 다중 코드 스캐너로 이 코드를 스캔하면 결과 네 개를 기대할 것입니다. { A, B, C, A}. 이 코드를 스캔할 때 초점과 조명 상의 변화로 인해서 모든 코드를 찾기 위해 이미지(프레임) 2장을 스캔해야 한다고 가정해 봅시다. 첫번째 프레임에서 위쪽 두 개 바코드, { A, B }를 디코딩합니다:


다중 코드 - 프레임 1

두번째 프레임에서는 아래 쪽 세 개 { B, C, A }를 디코딩합니다:


다중 코드 - 프레임 2

각 프레임은 바코드 집합 하나씩 대표하지만 이 두 집합을 단순하게 합집합으로 처리할 수 없습니다. 그렇지 않으면 결과는 { A, B, C }가 되는데 두 번째 A에 대한 정보를 놓치게 됩니다. 따라서 다중 프레임에서 얻은 결과를 병합할 경우 중복되는 바코드 값을 삭제하는 것 이상의 정교한 작업이 필요합니다.

약간의 (또는 많은) 동작 추가

다중 프레임에서의 결과를 병합하기 위한 확실한 해결책은 중복 필터링 작업에서 위치 정보와 함께 바코드 값을 포함하는 것처럼 보일 수도 있습니다. 결국, 우리 예제에서 바코드 A가 두 번째로 나타날 때 첫 번째 프레임에서 나타날 때와는 위치가 분명히 다르다는 것을 쉽게 볼 수 있습니다. 사실 일부 다중 코드 구현에서는 코드가 중복되었는지 아닌지를 결정하기 위해 이런 일을 실제로 수행합니다. 그러나 이 구현 방식은 한 프레임에서 다음 프레임으로 이동할 때 바코드의 상대적인 위치가 변하지 않거나 매우 조금만 변한다는 가정에 의존합니다.

하지만 스캔할 때 보통 카메라의 라이브 미리보기를 제공해서 사용자가 스캔할 바코드 위로 모바일 기기를 조준할 수 있도록 하는 모바일 기기를 사용하는 사례를 고려해 봅시다. 사용자가 휴대 전화 위치를 조정할 때 손떨림 없이 완벽하게 움직인다고 해도 아주 많은 프레임들이 캡처되고 디코딩됩니다.

위의 예제는 사용자가 바코드 네 개를 동시에 캡처하기 위해 카메라를 움직일 수 있는 간단한 경우에 해당됩니다. 그런데 너무 코드가 많거나(저희 고객의 사례처럼 페이지 전체) 사용자가 모두 스캔하기 위해 카메라를 훑듯이 이동(“스윕”)하면 어떻게 될까요? 다시 말해 모든 코드를 캡처하기 위해 모바일 기기를 이동시켜야 하는 경우는 어떨까요.

모바일 스캐너의 움직임을 처리하는 작업은 일반적으로 스캐너가 그 움직임의 속도와 방향을 알 수 없으며 더 큰 심각한 문제는, 사용자가 모바일 기기를 들고 이동할 때 거의 확실히 변화하기 때문에 매우 어려운 문제입니다.

또다른 다중 코드 스캔의 복잡성

다중 코드 스캔에서 또다른 복잡성은 단순히 모든 바코드를 발견하는 것에 그치지 않고 더 이상 바코드를 찾지 않아도 되는 시점을 결정해야 하기 때문에 발생합니다. 위의 간단한 예제에서는 스캔해야 할 바코드 개수가 알려져 있는 상태에서 출발합니다. 따라서 스캐너는 결과를 반환하기 전에 정확하게 바코드 네 개를 찾도록 구성할 수 있습니다.

하지만 페이지 한 장에 바코드가 두 개부터 30개까지 포함될 수도 있는 저희 고객의 사용 사례 같은 경우는 어떻게 해야 할까요? 한 페이지에 포함된 바코드의 개수를 알 수 없고 바코드 일부는 누락되었거나 손상되었다면 다중 코드 시스템이 사용자에게 어떻게 알려야 할까요? 다중 코드 스캐너는 읽지도 않은 모든 코드를 어떻게 알 수 있을까요? 지금까지 다중 코드 스캔 솔루션에 대해 부실하게 생각함으로써 발생할 수 있는 문제들 중에 가장 빠지기 쉬운 함정이 누락된 코드에 대한 부분입니다. 누락된 코드는 적절하게 취급되지 않으면 다중 코드 스캔을 이용해서 실현하고자 하는 생산성 향상 효과를 허무하게 사라지게 할 수도 있습니다.

데모를 최종 확정된 결과로 받아들이지 마십시오

저희 고객의 사례에서 구현하려고 했던 데모는 다음과 같은 이유 때문에 신뢰할 수 없는 결과를 도출했습니다:

  • 이 고객이 스캔하려고 했던 바코드는 유효한 데이터를 의미하는 중복되는 바코드를 포함하고 있었는데 스캔 소프트웨어에서 동일 코드 중복 판독으로 인식되어 제거되었습니다.
  • 사용자가 휴대전화를 코드 위에서 이동시키면서 바코드가 획득되었기 때문에 스캐너 소프트웨어가 스캔의 방향을 정확하게 측정할 방법이 없어서 페이지에 나타나는 정확한 순서대로 코드를 반환할 수 없었습니다. 스캔 소프트웨어가 페이지의 “상단”이 어디인지 알지 못하기 때문에 바코드는 페이지 상의 물리적인 순서가 아닌 스캔 순서대로 반환되었습니다.

하지만 이 두 가지 문제를 해결한다고 하더라도 판독 불가능한 바코드를 만날 경우 사용자가 이 시스템을 이용해서 어떤 코드가 없고 어떤 것은 수작업으로 처리해야 하는지 알 수 있는 방법이 없습니다.

최종적으로 저희는 다중 코드 솔루션을 추천합니다만, 사용자가 코드 레이블 두 개를 각각 개별적으로 순서대로 스캔하면 애플리케이션이 사용자가 이동할 때 각각의 레이블/스캔을 검증해서 긍정적인 피드백(만일 문제가 있다면 부정적인 피드백)을 주는 방식도 있습니다. 결과적으로 이 애플리케이션은 원래의 데모만큼 바람직하지는 않지만 사용자 입장에서는 안정적이고 사용성이 높은 업무 흐름을 제공합니다.

고해상도 카메라와 강력한 프로세서로 휴대전화와 태블릿은 다중 코드 판독을 포함해서 복잡한 바코드 스캔 작업을 수행할 수 있는 성능이 점점 더 강화되고 있습니다. 그러나 바코드 전체 페이지를 스캔하거나 제품이 포함된 선반 전체를 스캔하는 시도를 가장 우수한 작업 흐름으로 생각하지는 마십시오. 이런 시나리오는 잘 꾸민 몇몇 데모에서 이상적인 상황 하에 보통 수행되어 문제가 없는 것처럼 보이지만 효율성에 영향을 주는 모든 변수를 고려해야 하는 다중 코드 작업 흐름을 설계할 때는 확실성이 가장 우선될 것입니다. 코그넥스에서 제공하는 모바일 터미널이나 다른 모바일 솔루션에 대해 자세하게 알아보려면 모바일 솔루션 제품 가이드를 다운로드 받으십시오.

추가 게시물 -

제품 지원 및 교육 신청

MyCognex 가입

질문이 있으십니까?

전 세계 어디에서든 코그넥스 담당자들이 여러분의 비전과 산업용 바코드 판독 관련 문제를 지원합니다.

연락처