KR20220131968A - 데이터 캡처 시스템을 위한 수송체 세분화 - Google Patents

데이터 캡처 시스템을 위한 수송체 세분화 Download PDF

Info

Publication number
KR20220131968A
KR20220131968A KR1020227028901A KR20227028901A KR20220131968A KR 20220131968 A KR20220131968 A KR 20220131968A KR 1020227028901 A KR1020227028901 A KR 1020227028901A KR 20227028901 A KR20227028901 A KR 20227028901A KR 20220131968 A KR20220131968 A KR 20220131968A
Authority
KR
South Korea
Prior art keywords
point cloud
server
bounding box
calibration data
processor
Prior art date
Application number
KR1020227028901A
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 제브라 테크놀로지스 코포레이션
Publication of KR20220131968A publication Critical patent/KR20220131968A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Traffic Control Systems (AREA)
  • Processing Of Solid Wastes (AREA)

Abstract

서버는 교정 데이터를 저장하는 메모리; 및 메모리와 접속된 프로세서를 포함하며, 프로세서는, 치수화될 물체를 운반하는 홀더 및 본체를 갖는 수송체를 포함하는 캡처 볼륨을 묘사하는 포인트 클라우드를 획득하고; 수송체와 연관된 위치들의 세트를 획득하고; 위치들의 세트 및 교정 데이터에 기반하여, 수송체의 본체 및 홀더의 마스트를 제외한 포인트 클라우드의 제1 부분을 선택하고; 교정 데이터에 기반하여, 홀더의 베이스를 제외한, 제1 부분으로부터 포인트 클라우드의 제2 부분을 선택하고; 포인트 클라우드의 제2 부분에 기반하여 물체를 치수화하도록 구성된다.

Description

데이터 캡처 시스템을 위한 수송체 세분화
패키지들과 같은 물체들의 수송 및 저장은 패키지의 치수들(dimensions)에 대한 지식을 필요로 할 수 있다. 이러한 정보는 컨테이너(예를 들어, 트레일러) 내의 이용가능한 공간의 이용을 최적화하는 것, 그 패키지에 대한 배송 또는 저장 비용을 결정하는 것 등에 활용될 수 있다. 그러나, 패키지 치수들은 미리 알려지지 않을 수 있고, 따라서 작업자들은 패키지들을 수동으로 측정함으로써 패키지 치수들을 얻도록 요구될 수 있다. 수동 측정들을 하는 것은 시간 소모적이고 에러가 발생하기 쉬울 수 있다. 패키지 치수들을 자동으로 측정하기 위한 시스템들은 또한 예를 들어, 움직이는 패키지들, 어두운(예를 들어, 검은색) 표면들을 갖는 패키지들 등을 측정할 때 정확도가 감소할 수 있다.
아래의 상세한 설명과 함께, 유사한 참조 번호들이 별개의 도면들 전체에 걸쳐 동일하거나 기능적으로 유사한 요소들을 지칭하는 첨부 도면들은 명세서 내에 포함되고 그 일부를 형성하고, 청구된 발명을 포함하는 개념들의 실시예들을 추가로 도시하고, 그들 실시예들의 다양한 원리들 및 이점들을 설명하는 역할을 한다.
도 1은 예시적인 데이터 캡처 시스템의 블록도이다.
도 2는 도 1의 시스템의 추가적인 구성요소들을 예시하는 블록도이다.
도 3은 도 1의 데이터 캡처 시스템의 예시적인 구현을 나타내는 도면이다.
도 4는 물체 치수화(object dimensioning)를 위한 데이터 캡처 방법의 흐름도이다.
도 5는 도 1의 시스템에 의해 생성된 예시적인 포인트 클라우드를 나타내는 도면이다.
도 6은 도 4의 방법의 블록(420)에서의 절단면의 생성을 나타내는 도면이다.
도 7은 도 4의 방법의 블록(420)의 예시적인 수행을 나타내는 도면이다.
도 8은 도 4의 방법의 블록(425)의 예시적인 수행을 나타내는 도면이다.
도 9는 도 4의 방법의 블록(425)의 다른 예시적인 수행을 나타내는 도면이다.
도 10 및 도 11은 도 4의 방법의 블록(440)의 예시적인 수행을 나타내는 도면들이다.
도 12는 도 4의 방법의 블록(450)의 예시적인 수행에서 이용되는 포인트 밀도 구배들(point density gradients)을 나타내는 도면이다.
통상의 기술자들은 도면들 내의 요소들이 반드시 축척에 맞게 그려진 것은 아니고 간략하고 명확하게 도시된다는 것을 알 것이다. 예를 들어, 도면들에서 요소들 중 일부의 치수들은, 본 발명의 실시예들의 이해를 향상시키는데 도움을 주기 위해 다른 요소들에 비해 과장될 수 있다.
장치 및 방법 구성요소들은, 도면들에서 적절한 경우 종래의 심볼들로 표현되어 있고, 도면들은 본 명세서의 설명의 이익을 갖는 관련 기술분야의 통상의 기술자에게 쉽게 명백할 상세들로 본 개시내용을 모호하게 하지 않기 위해, 본 발명의 실시예들의 이해와 관련된 특정 상세들만을 도시한다.
본 명세서에 개시된 예들은 서버에 관한 것이며, 이 서버는 교정 데이터를 저장하는 메모리; 및 메모리와 접속된 프로세서를 포함하며, 프로세서는, 치수화될 물체를 운반하는 홀더 및 본체를 갖는 수송체(transporter)를 포함하는 캡처 볼륨을 묘사하는 포인트 클라우드를 획득하고; 수송체와 연관된 위치들의 세트를 획득하고; 위치들의 세트 및 교정 데이터에 기반하여, 수송체의 본체 및 홀더의 마스트를 제외한 포인트 클라우드의 제1 부분을 선택하고; 교정 데이터에 기반하여, 홀더의 베이스를 제외한, 제1 부분으로부터 포인트 클라우드의 제2 부분을 선택하고; 포인트 클라우드의 제2 부분에 기반하여 물체를 치수화하도록 구성된다.
본 명세서에 개시된 추가적인 예들은 방법에 관한 것이며, 이 방법은, 교정 데이터를 저장하는 단계; 치수화될 물체를 운반하는 홀더 및 본체를 갖는 수송체를 포함하는 캡처 볼륨을 묘사하는 포인트 클라우드를 획득하는 단계; 수송체와 연관된 위치들의 세트를 획득하는 단계; 위치들의 세트 및 교정 데이터에 기반하여, 수송체의 본체 및 홀더의 마스트를 제외한 포인트 클라우드의 제1 부분을 선택하는 단계; 교정 데이터에 기반하여, 홀더의 베이스를 제외한, 제1 부분으로부터 포인트 클라우드의 제2 부분을 선택하는 단계; 및 포인트 클라우드의 제2 부분에 기반하여 물체를 치수화하는 단계를 포함한다.
도 1은 물체 치수화를 위한 데이터 캡처 시스템(100)을 도시한다. 데이터 캡처 시스템(100)은 캡처 볼륨 내의 물체를 묘사하는 이미지 데이터를 캡처하도록 구성된다. 이미지 데이터(예를 들어, 실질적으로 동시에 캡처된 2차원 이미지들의 세트)는 치수화될 물체를 나타내는 포인트 클라우드를 생성하도록 처리될 수 있다. 물체에 대한 치수들은 그 후 포인트 클라우드에 기반하여 결정될 수 있다.
특히, 시스템(100)은 복수의 캡처 노드(104)를 포함한다. 도시된 예에서, 4개의 캡처 노드(104-1, 104-2, 104-3 및 104-4)가 도시되어 있다. 다른 예들에서는, 더 많거나 더 적은 수의 캡처 노드들(104)이 제공될 수 있다. 이하에서 더 상세히 논의되는 바와 같이, 각각의 캡처 노드(104)는 전술된 캡처 볼륨의 각각의 이미지들을 캡처하도록 제어가능한 카메라 세트를 포함한다. 더 구체적으로는, 각각의 캡처 노드(104)의 카메라들은 캡처 볼륨의 주어진 영역의 이미지들을 캡처한다. 또한, 캡처 노드들(104)의 커버리지 영역들은 실질적으로 전체 캡처 볼륨을 포함한다. 주어진 노드(104)의 카메라들에 의해 캡처된 이미지들로부터, 그 노드(104)와 연관된 컴퓨팅 디바이스는 (예를 들어, 사진측량법 애플리케이션 또는 다른 적절한 포인트 클라우드 생성 메커니즘의 실행을 통해) 포인트 클라우드를 생성한다.
따라서, 도시된 예에서, 캡처 노드들(104)은, 각각이 물체를 포함하는 캡처 볼륨의 각각의 영역을 묘사하는 4개의 포인트 클라우드를 생성한다. 영역들, 및 그에 따라 캡처 노드들(104)에서 생성된 포인트 클라우드들은 일반적으로 그 경계들에서 중첩한다.
시스템(100)은 또한 간단히 서버(108)라고도 지칭되는 데이터 캡처 서버(108)를 포함한다. 서버(108)는 캡처 노드들(104) 각각의 컴퓨팅 디바이스들에 접속되고, 캡처 노드들(104)로부터 전술한 포인트 클라우드들을 수신한다. 서버(108)는 캡처 노드들(104)로부터의 포인트 클라우드들을 조합하여 캡처 볼륨의 적어도 일부를 묘사하는 단일 포인트 클라우드를 생성하도록 구성된다. 서버(108)는, 아래에 더 상세히 설명되는 바와 같이, 물체를 포함하고 물체를 운반하는 지게차 또는 다른 수송체와 같은 다른 구조체들을 제외하는 조합된 포인트 클라우드의 일부를 선택하도록 추가로 구성된다. 물체를 나타내는 포인트 클라우드의 일부가 선택되었다면, 서버(108)는 그 물체에 대한 치수들을 결정할 수 있다.
개별 캡처 노드들(104)에서 캡처 볼륨의 영역들에 대한 포인트 클라우드들을 생성하고, 서버(108)에서 노드 특정 포인트 클라우드들을 조합하는 것은 포인트 클라우드 생성의 계산적으로 요구되는 작업이 병렬화될 수 있게 한다. 이러한 병렬화는 시스템(100)이 완전한 포인트 클라우드를 생성하고, 포인트 클라우드 생성이 모든 카메라들로부터의 이미지들의 완전한 세트에 기반하여, 단일 디바이스에서 수행되는 시스템에서보다 더 빠르게 캡처 볼륨 내의 물체에 대한 치수들을 결정하는 것을 가능하게 할 수 있다.
도 1은 또한 서버(108)의 특정 내부 구성요소들을 도시한다. 서버(108)는 메모리(116)와 같은 비일시적 컴퓨터 판독가능한 저장 매체와 상호접속된, 프로세서(112)로도 지칭되는 중앙 처리 유닛(CPU)을 포함한다. 메모리(116)는 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM)) 및 비휘발성 메모리(예를 들어, 판독 전용 메모리(ROM), 전기적 소거가능한 프로그래머블 판독 전용 메모리(EEPROM), 플래시 메모리)의 임의의 적절한 조합을 포함한다. 프로세서(112) 및 메모리(116)는 각각 하나 이상의 집적 회로(IC)를 포함한다.
서버(108)는 또한 서버(108)가 예를 들어 네트워크(124)를 통해 다른 컴퓨팅 디바이스들과 데이터를 교환할 수 있게 하는 통신 인터페이스(120)를 포함한다. 따라서, 통신 인터페이스(120)는 서버(108)가 네트워크(124)를 통해 통신할 수 있게 하는 임의의 적절한 하드웨어(예를 들어, 전송기들, 수신기들, 네트워크 인터페이스 제어기들 등)를 포함한다.
서버(108)는 또한 입력 디바이스들(예를 들어, 키보드, 마우스, 마이크로폰 등) 및 출력 디바이스들(예를 들어, 디스플레이, 스피커 등)의 적절한 조합을 포함할 수 있는 입력/출력 어셈블리(128)를 더 포함할 수 있다. 서버(108)의 구성요소들은 통신 버스들(도시되지 않음)에 의해 상호접속되고, 전술한 통신 버스들을 통해 또는 별개의 전력 버스들(도시되지 않음)에 의해 배터리 또는 다른 전원으로부터 전력을 공급받는다.
서버(108)의 메모리(116)는 각각이 프로세서(112)에 의해 실행가능한 복수의 컴퓨터 판독가능한 명령어들을 포함하는 복수의 애플리케이션들을 저장한다. 프로세서(112)에 의한 전술한 명령어들의 실행은 서버(108)로 하여금 본 명세서에서 논의되는 바와 같은 특정 기능을 구현하게 한다. 따라서, 애플리케이션들은 아래의 논의에서 그 기능을 수행하도록 구성된다고 한다. 이 예에서, 서버(108)의 메모리(116)는 포인트 클라우드 생성기 애플리케이션(132), 및 치수화 애플리케이션(136)(본 명세서에서 각각 애플리케이션들(132 및 136)이라고도 간단히 지칭됨)을 저장한다.
서버(108)는, 프로세서(112)에 의한 애플리케이션(132)의 실행을 통해, 적어도 캡처 노드들(104)의 서브세트(최대로 캡처 노드들(104) 모두를 포함함)로부터 포인트 클라우드들을 획득하고, 그로부터 조합된 포인트 클라우드를 생성하도록 구성된다. 애플리케이션(136)의 실행을 통해, 서버(108)는 조합된 포인트 클라우드 내의 물체를 검출하고 물체에 대한 치수들을 결정하도록 구성될 수 있다.
애플리케이션들(132 및 136)은, 다른 예들에서, 단일 애플리케이션으로서, 또는 2개 초과의 애플리케이션들로서 구현될 수 있다. 다른 예들에서, 프로세서(112)는, 애플리케이션들(132 및 136)의 실행에 의해 구성되는 바와 같이, 필드 프로그래머블 게이트 어레이들(FPGA들) 및/또는 주문형 집적 회로들(ASIC들)과 같은, 하나 이상의 구체적으로 구성된 하드웨어 요소로서 구현된다. 추가 예들에서, 애플리케이션(136)과 같은, 애플리케이션의 실행을 통해 서버(108)에 의해 구현되는 기능은, 서버(108)에 의해서가 아니라, 네트워크(124)를 통해 액세스가능한 치수화 서버와 같은, 별도의 컴퓨팅 디바이스에 의해 구현될 수 있다.
도 2를 참조하면, 캡처 노드(104)의 예시적인 구성요소들이 도시되어 있다. 도 1에 도시된 캡처 노드들(104) 각각은 도 2에 도시되고 아래에 논의되는 구성요소들을 포함할 수 있다.
캡처 노드(104)는 복수의 이미지 센서(200-1, 200-2, ... 200-n)를 포함한다. 예를 들어, 각각의 캡처 노드(104)는 4개의 이미지 센서(200)를 포함할 수 있다. 이미지 센서들(200)은 또한 카메라들(200)로 지칭될 수 있다. 카메라들(200)이 서로에 대해 별개의 물리적 위치들에 배치됨에 따라, 각각의 카메라(200)는 별개의 시야(FOV)를 갖는다. 주어진 캡처 노드(104)의 카메라들(200)의 FOV들은 중첩한다(예를 들어, 40%만큼 중첩하고, 더 크고 더 작은 중첩들이 또한 고려된다). 도 2는 캡처 노드(104)에 대한 FOV(202)를 전체로서 도시한다. FOV(202)는 캡처 노드(104)가 포인트 클라우드를 생성할 수 있는 캡처 볼륨의 영역을 포함한다. 포인트 클라우드는 캡처 볼륨 내의 물체(203)의 적어도 일부를 묘사할 수 있다.
캡처 노드(104)는 또한 프로젝터(204)를 포함한다. 다른 예들에서, 복수의 프로젝터(204)가 캡처 노드(104)에 포함될 수 있다. 추가 예들에서, 특정 캡처 노드들(104)은 하나 이상의 프로젝터(204)를 포함할 수 있는 반면, 다른 캡처 노드들은 프로젝터(204)를 생략할 수 있다. 프로젝터(204)는 예를 들어 캡처 볼륨 내의 물체(203)를 조명하기 위해 캡처 볼륨 상에 구조화된 광 패턴을 투영하도록 제어가능하다. 구조화된 광 패턴은 카메라들(200)에 의해 캡처된 이미지들에서 쉽게 검출가능하도록 선택될 수 있어, 위에 언급된 포인트 클라우드의 생성을 용이하게 한다.
캡처 노드(104)는 또한 카메라들(200) 및 프로젝터(204)와 접속된 컴퓨팅 디바이스(208)를 포함한다. 컴퓨팅 디바이스(208)는 FOV(202) 내의 캡처 볼륨의 이미지들을 캡처하도록 카메라들(200)을 제어할 수 있는 반면, 프로젝터(204)는 캡처 볼륨을 조명한다. 컴퓨팅 디바이스(208)는 또한 카메라들(200)에 의해 캡처된 이미지들로부터 포인트 클라우드를 생성한다. 이제 명백한 바와 같이, 포인트 클라우드는 캡처 볼륨의 일부를 나타내고, 따라서 (캡처 볼륨 내의 물체(203)의 위치에 따라) 물체(203)의 일부 또는 전부를 나타내거나 아무것도 나타내지 않을 수 있다.
도 3을 참조하면, 시스템(100)의 특정 구성요소들이 예시적인 배치로 도시되어 있다. 도 3에 도시된 예시적인 배치는, 예를 들어, 각각의 노드(104)의 카메라들(200) 및 프로젝터(204)가 실질적으로 원통형의 하우징 내에 포함된, 전술한 4개의 캡처 노드(104)를 포함한다. 각각의 노드(104)에 대해 매우 다양한 다른 구조적 배열들이 또한 이용될 수 있다.
노드들(104)은, 예컨대, 도관들(304)을 통해 노드들(104)과 연결된 중앙 지지 구조체(300)에 의해 지지된다. 노드들(104)은 또한, 설비의 천장(도시되지 않음)으로부터 연장되는 지지 부재들에 의해 지지될 수 있다. 도관들(304)은, 시스템(100)에서 이용될 때, 통신 라인들 및 냉각 유체(예컨대, 조절된 공기 등)를 운반할 수 있다. 중앙 지지 구조체(300)는 따라서, 냉각 또는 다른 조절 장비를 포함할 수 있고, 또한 서버(108)를 포함할 수 있다.
앞서 살펴본 바와 같이, 노드들(104)의 카메라들(200)은 각각의 카메라(200)의 시야가, 10 x 10 x 10 풋 볼륨(foot volume)과 같은, 캡처 볼륨(308)의 적어도 일부를 포함하도록 배치된다. 게다가, 각각의 노드(104) 내의 인접한 카메라들(200)의 시야들은, 예컨대, 약 40%만큼 중첩한다. 또한, 카메라들(200)은 캡처 볼륨(308)의 실질적으로 완전한 커버리지를 제공한다(예컨대, 캡처 볼륨(308)에서의 각각의 위치가 적어도 2개의 카메라(200)의 시야 내에 있다).
물체(203)는 캡처 및 치수화 동안 정지 상태로 유지되도록 캡처 볼륨(308) 내에 배치될 수 있거나, 또는 물체(203)는 임의의 적절한 이동 메커니즘을 통해 캡처 볼륨(308)을 거쳐 수송될 수 있다. 시스템(100)은, 다시 말해서, 정지하거나 움직이는 물체(203)를 치수화할 수 있다. 도시된 예에서, 이동 메커니즘은 지게차(309)와 같은 수송체이다. 지게차(309)는 예를 들어, 운전자, 엔진 및 다른 구성요소들을 위한 운전석, 시트 등을 포함하는 본체(310)를 포함한다. 지게차(309)는 또한 물체(203)를 지지하기 위한 홀더(311)를 포함한다. 본 예에서, 홀더(311)는 도 3에 도시된 바와 같이 가드 등을 포함할 수 있는 마스트(311a)를 포함한다. 홀더(311)는 또한 도 3에 예시된 한 쌍의 포크들과 같은 베이스(311b)를 포함한다. 일반적으로, 마스트(311a)는 물체(203)에 대한 후방 지지 표면을 확립하는 반면, 베이스(311b)는 물체(203)에 대한 하부 지지 표면을 확립한다.
시스템(100)은 물체(203)가 캡처 볼륨(308)에 들어갔을 때를 검출하고, 이러한 검출에 응답하여, 프로젝터들(204) 및 카메라들(200)을 구성하고, 카메라들(200)로 이미지들을 캡처하고, 포인트 클라우드 데이터를 생성하기 위해 그 구성요소들을 제어하도록 구성된다.
특히, 각각의 노드(104)의 컴퓨팅 디바이스(208)는 그 노드(104)의 카메라들(200)에 의해 캡처된 이미지들로부터 포인트 클라우드를 생성하도록 구성된다. 따라서, 주어진 노드(104)에 의해 생성된 포인트 클라우드는 그 노드(104)의 FOV(202)에 대응하는 캡처 볼륨(308)의 일부를 묘사한다. 노드들(104)에 의해 생성된 포인트 클라우드들은 각각의 노드(104)에 특정한 로컬 레퍼런스 프레임을 이용할 수 있거나, 시스템(100)이 배치될 때 캡처 볼륨(308)에 대해 확립된 공통 레퍼런스 프레임(312)을 이용할 수 있다. 노드들(104)이 공통 레퍼런스 프레임(312)을 이용하여 포인트 클라우드들을 생성할 때, 각각의 노드(104)의 컴퓨팅 디바이스(208)는 공통 레퍼런스 프레임(312)의 원점에 대한 그 노드(104)의 카메라들(200)의 물리적 위치를 정의하는 교정 데이터를 저장할 수 있다. 노드들(104)이 로컬 레퍼런스 프레임들을 이용할 때, 서버(108)는 교정 데이터를 이용하여 공통 레퍼런스 프레임(312)에 노드-특정 포인트 클라우드들을 등록할 수 있다.
노드들(104)은 또한 포인트 클라우드 생성을 위해 캡처되고 이용되는 이미지들에서, 지게차(309)에 부착된 기준 마커들의 세트를 검출하도록 구성된다. 기준 마커들은 IR-반사성 마커들, 반사성 테이프 등을 포함하는 다양한 마커 유형들 중 임의의 것을 포함할 수 있다. 마커들은 지게차(309) 상의 미리 정의된 위치들에 배치되고, 캡처된 이미지들 내의 마커들의 검출 시에, 각각의 노드(104)는 (예를 들어, 레퍼런스 프레임(312) 내의) 각각의 마커의 검출된 위치들을 서버(108)에 제공하도록 구성된다. 마커들은, 일부 예들에서, 각각의 마커를 다른 마커들과 구별할 뿐만 아니라, 잘못된 마커 검출들을 완화하고 시스템이 상이한 수송체들 사이를 구별할 수 있게 하기 위해 별개의 식별자들로 인코딩될 수 있다. 별개의 식별자들로 마커들을 인코딩하는 것은 또한 서버(108)가 지게차의 배향을 결정하게 할 수 있는데, 그 이유는 지게차가 다양한 방향들로부터 캡처 볼륨(308)에 진입할 수 있기 때문이다.
따라서, 노드들(104)은 각각 포인트 클라우드 및 하나 이상의 마커 위치 및 식별자를 서버(108)에 제공할 수 있다. 후술하는 바와 같이, 서버(108)는 마커 위치들 및 지게차-특정 교정 데이터를 이용하여, 물체(203)를 포함하지만 지게차(309)(본체(310) 및 홀더(311) 둘 다)를 제외하는 조합된 포인트 클라우드의 일부를 선택한다. 물체(203)를 격리하는 것은 물체(203)의 후속 치수화를 용이하게 한다.
지게차(309)는 또한 그 위에 배치되고 추가적인 기준 마커들, 미리 정의된 컬러 또는 표면 패턴 등에 의해 검출가능한 레퍼런스 표면(314)을 포함할 수 있다. 아래에 논의되는 바와 같이, 일부 예들에서, 노드들(104)에 의해 검출되는 레퍼런스 표면(314)의 위치는 서버(108)에 보고될 수 있고, 서버(108)는 조합된 포인트 클라우드의 품질(예를 들어, 잡음 레벨)을 평가하기 위해 레퍼런스 표면(314)을 이용할 수 있다.
도 4를 참조하면, 물체 치수화를 위한 데이터 캡처 방법(400)이 도시된다. 방법(400)은 시스템(100)에서, 특히 서버(108)에 의한 그 수행과 관련하여 설명될 것이다. 일반적으로, 방법(400)의 수행은 서버(108)가 캡처 볼륨(308)의 일부를 각각 나타내는 개별 포인트 클라우드들을 노드들(104)로부터 획득하고, 공통 레퍼런스 프레임(312)에 따라 조합된 포인트 클라우드를 생성할 수 있게 한다. 조합된 포인트 클라우드로부터, 서버(108)는 그 후 물체(203)에 대한 치수들을 결정할 수 있다.
블록(405)에서, 서버(108)는 물체(예를 들어, 물체(203))가 캡처 볼륨(308) 내에서 검출되는지, 또는 캡처 볼륨(308)에 인접하여 검출되는지를 결정하도록 구성된다. 블록(405)에서의 물체 검출은 다양한 적절한 트리거 메커니즘들 중 임의의 것에 기반할 수 있다. 예를 들어, 캡처 볼륨(308)의 주변 근처에 배치된 라이더 센서, IR 센서 등은 물체(203)가 캡처 볼륨(308)에 진입할 때 검출 신호를 생성할 수 있다. 다른 예들에서, 노드들(104) 중 적어도 하나는 적어도 하나의 카메라(200)를 통해 캡처된 이미지들의 스트림을 서버(108)에 전송하도록 구성될 수 있다. 서버(108)는 이미지들을 처리하여 그 안에서 움직이는 물체들을 검출할 수 있다. 블록(405)에서의 결정이 긍정적일 때, 서버는 블록(410)으로 진행한다. 블록(405)에서의 결정이 부정적일 때, 서버(108)는 블록(405)의 수행을 반복할 수 있다.
블록(410)에서, 서버(108)는 노드들(104) 중 적어도 하나가 이미지들을 캡처하고 그로부터 포인트 클라우드를 생성하게 하는 트리거 커맨드를 생성한다. 예를 들어, 서버(108)는 노드들(104)의 서브세트 또는 노드들(104) 모두를 선택하고, 트리거 커맨드를 각각의 선택된 노드(104)에 전송할 수 있다. 트리거 커맨드를 수신하는 각각의 노드(104)에서, 대응하는 컴퓨팅 디바이스(208)는 실질적으로 동시에 이미지들을 캡처하도록 적어도 카메라들(200)의 서브세트를 제어하고, 적절한 포인트 클라우드 생성 메커니즘(예를 들어, 사진측량법 애플리케이션 등)의 실행을 통해 이미지들로부터 포인트 클라우드를 생성한다.
트리거 커맨드를 생성하고 노드들(104)에 트리거 커맨드를 전송하여 노드들(104)에서 포인트 클라우드 생성을 개시하였으면, 서버(108)는 블록(415)으로 진행한다. 블록(415)에서, 서버(108)는 레퍼런스 프레임(312)에서, 노드들(104)에 의해 검출된 임의의 기준 마커들의 위치들 및 식별자들뿐만 아니라 노드들(104) 각각으로부터의 포인트 클라우드들을 수신하도록 구성된다. 서버(108)는 노드들(104)로부터 수신된 포인트 클라우드들로부터 단일의 조합된 포인트 클라우드를 생성하도록 구성된다. 일부 예들에서, 조합된 포인트 클라우드의 생성은 각각의 수신된 노드-특정 포인트 클라우드를 레퍼런스 프레임(312)에 등록하는 것을 포함한다. 다른 예들에서, 조합된 포인트 클라우드는 각각의 노드-특정 포인트 클라우드의 부분들을 선택하고 다른 부분들을 제외함으로써 생성될 수 있지만, 이러한 기능은 본 논의의 범위 밖에 있다.
도 5는 지게차(309) 및 물체(203)를 묘사하는, 블록(415)에서 생성된 예시적인 포인트 클라우드(501)를 도시한다. 또한, 도 5에는 기준 마커들(500, 504, 508 및 512)이 표시된다. 앞서 언급된 바와 같이, 마커들(500-512)의 위치들은, 카메라들(200)을 통해 캡처된 이미지들에서 마커들을 검출하도록 구성된 노드들(104)에 의해 서버(108)에 보고된다. 각각의 마커(500-512)는, 서버(108)에서 수신된 바와 같이, 위치(도 5에 도시된 바와 같음) 및 식별자(예를 들어, 도 5에 도시된 참조 번호들)에 의해 정의된다.
블록(420)에서, 서버(108)는 수송체의 본체(310) 및 홀더(311)의 마스트(311a)를 제외한 조합된 포인트 클라우드의 제1 부분을 선택하도록 구성된다. 서버(108)는 마커들(500-512)의 위치들에 대한 지게차(309)의 다양한 구조적 피처들의 위치들을 정의하는 지게차 교정 데이터를, 예를 들어, 메모리(116)에 저장한다. 예를 들어, 교정 데이터는 마커들(500-512)에 대한 위치들뿐만 아니라 로컬 레퍼런스 프레임에서의 지게차(309)의 다른 구조적 피처들의 위치들을 정의할 수 있다. 레퍼런스 프레임(312)에서의 마커들(500-512)의 위치들에 기반하여, 레퍼런스 프레임(312)에서의 지게차(309)의 다른 구조적 피처들의 위치들이 결정될 수 있다. 지게차들과 같은 상이한 유형들의 수송체들이 시설에 배치될 때, 서버(108)는 각각의 지게차에 대한 별개의 교정 데이터를 저장할 수 있다. 블록(420)에서, 서버(108)는 또한 예를 들어 지게차 상의(예컨대, 레퍼런스 표면(314) 상의) 표시(예를 들어, 바코드)에 기반하여 교정 데이터의 세트들 중 하나를 선택할 수 있다. 다른 예들에서, 마커들(500-512) 자체는 고유 식별자들을 인코딩할 수 있고, 캡처된 데이터에서 검출된 마커들의 세트는 어느 지게차가 존재하는지를 결정하는데 참고될 수 있다.
특히, 도 6을 참조하면, 지게차 교정 데이터는 마커들(500-512)에 대한 홀더(311)의 마스트(311a)의 전방 표면(600)의 위치를 정의한다. 예를 들어, 지게차 교정 데이터는 전방 표면(600)을 포함하는 평면과 마커(504) 사이의 오프셋(604)뿐만 아니라, 전술한 평면과 마커(500) 사이의 오프셋(608)을 정의할 수 있다. 도 6에서 보이지 않는 마커들(508 및 512)에 대해 유사한 오프셋들이 저장될 수 있다. 오프셋들(604 및 608), 및 포인트 클라우드 내의 마커들(500 및 504)의 위치들에 기반하여, 절단면(612)이 레퍼런스 프레임에 정의되고, 이는 전방 표면(600)에 평행하고 전방 표면(600)을 포함할 수 있다. 관련 기술분야의 통상의 기술자에게 명백한 바와 같이, 평면(612)은 예를 들어, 특정 마커들이 초기 데이터 캡처에서 검출되지 않았던 경우 마커들(500-512)의 서브세트에 기반하여 생성될 수 있다. 본 예에서, 마커들(500-512) 중 적어도 3개가 평면(612)을 생성하는데 이용될 수 있다.
절단면(612)을 생성하는 다른 메커니즘들이 또한 고려된다. 예를 들어, 지게차 교정 데이터는 마스트 평면(즉, 마스트(311a)의 길이를 가로지르는 평면)으로부터 절단면(612)까지의 배향 및 거리를 정의할 수 있다. 이러한 구현들에서, 서버(108)는 (예를 들어, 마스트 평면 상의 포인트들로서 마커들(500-512)을 이용하여) 마커들(500-512)의 위치들에 기반하여 마스트 평면을 생성하고, 전술한 오프셋을 추가하여 절단면(612)을 생성할 수 있다.
절단면(612)을 생성하였으면, 서버(108)는 절단면(612) "뒤"에 있는 포인트들을 제외하는 포인트 클라우드의 제1 부분을 선택하도록 구성될 수 있다. 즉, 마커들(500-512)을 포함하는 포인트 클라우드의 부분은 폐기되거나 유지되지만 후속 처리로부터 제외될 수 있다. 블록(420)의 수행의 결과로서, 서버(108)는 도 7에 도시된 바와 같이, 물체(203) 및 홀더(311)의 베이스(311b)의 적어도 일부를 여전히 나타내지만 지게차(309)의 나머지를 생략하는 제1 부분(700)을 선택한다.
도 4로 돌아가서, 블록(425)에서, 서버(108)는 제1 부분(700)으로부터 포인트 클라우드(501)의 제2 부분을 선택하도록 구성된다. 제2 부분은 물체(203)를 포함하지만 홀더(311)의 나머지(즉, 제1 부분(700)에 여전히 나타내진 베이스(311b))를 제외하도록 선택된다. 제2 부분을 선택하기 위해, 서버(108)는 베이스(311b)의 하부 표면을 식별한다. 예를 들어, 도 7을 다시 참조하면, 서버(108)는 레퍼런스 프레임(312)의 각각의 축들에 평행한 면들을 갖는 축-정렬 경계 박스(AABB)와 같은 경계 박스(704)를 생성할 수 있다. 경계 박스는 절단면(612)에 대해 미리 정의된 각도를 갖는 하부 표면(708)을 갖고, 각도는 마스트(311a)와 베이스(311b) 사이의 각도로서 지게차 교정 데이터에서 정의된다. 하부 표면(708)은 부분(700)에서의 최저 포인트(즉, 최저 Z 좌표를 갖는 포인트)의 높이(즉, Z 축을 따르는 위치)에 위치된다.
경계 박스(704)는 또한 각각, 부분(700)에 존재하는 최대 및 최소 Y 값들에서 Y 축을 따라 위치된, 예를 들어 레퍼런스 프레임(312)의 XZ 평면에 평행한 측면 표면들(712 및 716)을 포함한다. 유사하게, 경계 박스(704)의 상부 및 전방 표면들은 부분(700)에서의 포인트들의 한도들에 의해 정의된다. 경계 박스(704)의 후방 표면은 절단면(612)과 동일 평면 상에 있다.
베이스(311b)의 하부 표면(경계 박스(704)의 하부 표면(708)인 것으로 가정됨)을 식별하였으면, 서버(108)는 베이스(311b)의 높이에 대응하는 오프셋을 하부 표면에 적용하여, 추가의 절단면을 생성할 수 있다. 도 8을 참조하면, 절단면(800)은 지게차 교정 데이터에 표시된 바와 같이, 베이스(311b)의 높이에 대응하는 오프셋(804)에서 도시된다. 제1 부분(700)으로부터 포인트 클라우드의 제2 부분을 선택하기 위해, 서버(108)는 절단면(800) 아래의 임의의 포인트들을 폐기할 수 있다. 대안적으로, 서버(108)는 절단면(800)과 경계 박스(704)의 하부 표면(708) 사이의 임의의 포인트들을 폐기할 수 있다.
추가 예들에서, 서버(108)는 전술한 바와 같은 절단면(800)뿐만 아니라 측면 절단 표면들을 정의함으로써 절단 박스를 생성할 수 있다. 도 9를 참조하면, 절단 박스의 상부 표면을 형성하는 절단면(800)에 더하여, 서버(108)는 (본 예에서 Y 축을 따라) 경계 박스(704)의 중심을 결정하고, 베이스(311b)의 포크들 사이의 거리의 절반에 대응하는 대향 오프셋들(900)을 중심에 적용할 수 있다. 포크들 사이의 거리는 지게차 교정 데이터에 지정될 수 있다. 오프셋들(900)에 기반하여, 서버(108)는 도 9에 도시된 바와 같이 절단 박스(904)에 대한 측면 표면들을 정의할 수 있다. 서버(108)는 그 후 절단 박스 내에 있는, 부분(700)으로부터 임의의 포인트들을 폐기할 수 있다. 도 9에 도시된 접근법은 포크들의 측면들 위에 걸려 있는 물체의 부분들을 제외하는 것을 피하는데 바람직할 수 있다.
도 4로 돌아가서, 블록(430)에서, 서버(108)는 그 후 물체 경계 박스를 생성하도록 구성된다. 위의 논의로부터 명백한 바와 같이, 포인트 클라우드의 제2 부분은 물체(203) 자체를 제외한 실질적으로 캡처 볼륨 전부를 제외한다. 따라서, 서버(108)는 임의의 적절한 평면 피팅 동작들 또는 다른 경계 박스 생성 메커니즘들을 통해 외측 경계 물체(203)에 대응하는 경계 박스를 생성할 수 있다.
블록(435)에서, 서버(108)는 전술한 경계 박스에 기반하여 물체(203)의 치수들, 예컨대 물체(203)의 폭, 높이 및/또는 길이, 물체의 볼륨 등을 결정하도록 구성된다.
일부 예들에서, 서버(108)는 물체(203)를 치수화하기 전에 블록(430)에서 생성된 경계 박스를 정밀화하도록 구성될 수 있다. 이러한 정밀화가 구현될 때, 도 4에 파선들로 도시된 바와 같이, 서버(108)는 블록(435)에서의 치수화 전에 블록(430)으로부터 블록(440)으로 진행한다. 일반적으로, 블록(440)에서의 경계 박스의 정밀화는 경계 박스의 표면들에 대한 다양한 깊이들에서 포인트 클라우드의 제2 부분의 포인트 밀도를 평가하고, 이러한 표면들 중 임의의 것을 조정할지를 결정하는 것을 포함한다. 포인트 클라우드는 물체(203)의 표면들을 정의하는 포인트들에서의 잡음의 정도를 포함할 수 있으며, 이는 경계 박스의 표면들이 물체(203) 자체보다 더 크게 할 수 있다. 블록(440)에서의 경계 박스의 정밀화는 서버(108)가 경계 박스의 정확도를 증가시키는 것을 가능하게 할 수 있다.
도 10을 참조하면, 블록(440)이 수행될 때, 서버(108)는 경계 박스의 표면들 중 적어도 하나에 대해, 경계 박스의 모든 표면들까지 그리고 이들을 포함하여, 아래의 동작들의 시퀀스를 반복할 수 있다. 도 10은 물체(203)를 정의하는 포인트들(파선들)을 포함하는 경계 박스(1000)(실선들)를 도시한다. 경계 박스(1000) 내의 포인트들은, 다시 말해서, 실질적으로 전체 지게차(309)를 제외한, 블록(425)에서 선택된 제2 부분이다.
상세도(1004)에 도시된 바와 같이, 경계 박스(1000)의 경계(1008)는 복수의 포인트들(1012)에 기반하여 생성된다. 경계(1008)를 정밀화하기 위해, 도 11을 참조하면, 서버(108)는 경계(1008)에 평행하고 경계(1008)로부터 시작하여 물체(203)로의 미리 정의된 깊이들에서의 복수의 슬라이스들 또는 영역들을 생성하도록 구성된다. 도 11에는 3개의 예시적인 슬라이스(1100-1, 1100-2 및 1100-3)가 도시되어 있지만, 다른 예들에서는 더 적거나 더 많은 수들의 슬라이스들이 이용될 수 있다.
각각의 슬라이스(1100)에 대해, 서버(108)는 관련 슬라이스(1100)가 포인트들(1012)로 얼마나 조밀하게 채워졌는지를 나타내는 포인트 밀도 또는 포인트 카운트를 결정하도록 구성된다. 도 11에 도시된 바와 같이, 슬라이스(1100-3)는 단일 포인트만을 포함하는 반면, 슬라이스들(1100-2 및 1100-3)은 각각 8개 및 6개의 포인트를 포함한다.
서버(108)는 최대 포인트 밀도를 갖는 슬라이스(1100)(즉, 도시된 예에서 슬라이스(1100-2))를 선택하고, 그 슬라이스(1100)의 위치와 매칭하도록 경계(1008)를 업데이트하도록 구성된다. 예를 들어, 도 11의 하부에 도시된 바와 같이, 경계(1008)는 그 위치가 슬라이스(1100-2)의 중간인 업데이트된 경계(1104-2)로 대체될 수 있다. 다른 예들에서, 선택된 슬라이스(1100)의 중간이 아니라 선택된 슬라이스(1100)의 경계가 이용될 수 있다. 경계 박스(1000)의 남아 있는 표면들 각각에 대해 위의 프로세스를 반복할 때, 업데이트된 경계 박스는 블록(435)에서 치수화에 이용될 수 있다.
경계 박스의 표면들에 대한 포인트 밀도들을 평가하기 위한 슬라이스들의 이용은 또한 일부 예들에서 원래의 포인트 클라우드의 품질을 평가하는데 이용될 수 있다. 도 4로 돌아가서, 일부 예들에서 서버(108)는 블록(420)으로 직접 진행하기 보다는 블록(415)으로부터 블록(445)으로 진행할 수 있다. 블록(445)에서, 서버(108)는 도 3에 도시된 레퍼런스 표면(314)과 같은 포인트 클라우드 내의 레퍼런스 표면에 대한 잡음의 정도를 추정하도록 구성된다. 레퍼런스 표면(314)이 지게차(309) 상에 있기 때문에, 레퍼런스 표면의 위치는 지게차 교정 데이터에 따라, 앞서 언급된 마커들(500-512)의 위치들로부터 결정될 수 있다.
레퍼런스 표면(314)에 대한 잡음을 추정하기 위해, 서버(108)는 레퍼런스 표면(314)만을 포함하는 포인트 클라우드의 일부를 선택하고, 레퍼런스 표면(314)을 정의하는 포인트들을 포함하는 슬라이스들의 세트 각각에 대한 포인트 밀도들을 결정하기 위해 전술한 정밀화 절차를 수행할 수 있다. 레퍼런스 표면(314)이 평면 표면이기 때문에, 낮은 레벨의 잡음이 도 12의 그래프(1200)에 도시된 것과 같은 피크를 표시하는 슬라이스들의 시퀀스에서의 포인트 밀도들을 낳을 것으로 예상된다. 도 12의 그래프(1204)에 도시된 바와 같이, 더 점진적인 포인트 밀도 변화는 포인트 클라우드 내의 과도한 잡음을 나타낼 수 있다. 따라서, 서버(108)는 각각의 슬라이스에 대한 포인트 밀도 측정치들 사이의 구배를 결정하도록 구성될 수 있고, 더 큰 구배들은 더 낮은 잡음도들을 나타낸다. 예를 들어, 위의 구배들의 평균은 포인트 클라우드 내의 잡음의 레벨의 표시자로서 이용될 수 있다.
블록(450)에서, 서버(108)는 블록(445)에서 결정된 잡음의 레벨이 임계치를 초과하는지를 결정한다. 예를 들어, 블록(445)에서 결정된 평균 구배가 임계치를 초과할 때, 블록(450)에서의 결정은 긍정적이고, 서버(108)는 블록(420)이 아니라 블록(455)으로 진행할 수 있다. 블록(455)에서, 서버(108)는 포인트 클라우드 품질이 물체(203)의 치수화에 적합하지 않다는 것을 나타내는 경보를 (예를 들어, 다른 컴퓨팅 디바이스에 그리고/또는 서버(108)의 디스플레이, 스피커 등을 통해) 생성할 수 있다. 다른 예들에서, 서버(108)는 그 후 잡음 감소 동작을 수행할 수 있다. 블록(450)에서의 결정이 부정적일 때, 전술한 프로세스는 블록(420)에서 계속된다.
전술한 명세서에서, 특정 실시예들이 설명되었다. 그러나, 관련 기술분야의 통상의 기술자는 아래의 청구항들에 제시된 바와 같이 본 발명의 범위로부터 벗어나는 것 없이 다양한 수정들 및 변경들이 이루어질 수 있는 것을 이해한다. 따라서, 명세서 및 도면들은 제한적 의미라기보다는 예시적인 것으로 간주되어야 하며, 모든 이러한 수정들은 본 교시들의 범위 내에 포함되는 것으로 의도된다.
이러한 이익들, 이점들, 문제점들에 대한 해결책들 및 발생할 또는 더욱 표명될 임의의 이익, 이점 또는 해결책을 초래할 수 있는 임의의 요소(들)가 임의의 또는 모든 청구항들의 중대한, 요구되는 또는 본질적인 특징들 또는 요소들로서 해석되어서는 안 된다. 본 발명은 오로지 이 출원의 계류 중에 이루어진 임의의 보정들을 포함하는 첨부된 청구항들 및 허여된 이러한 청구항들의 모든 등가물들에 의해서만 정의된다.
더욱이 본 문헌에서, 제1 및 제2, 상부 및 하부 등과 같은 관계 용어들은 이러한 엔티티들 또는 액션들 사이에 임의의 실제 이러한 관계 또는 순서를 반드시 요구 또는 암시하지는 않고 하나의 엔티티 또는 액션을 또 다른 엔티티 또는 액션과 구별하기 위해서만 사용될 수 있다. 용어들 "포함한다", "포함하는", "갖는다", "갖는" 또는 그 임의의 다른 변형은, 비배타적인 포함을 커버하는 것으로 의도되어, 요소들의 리스트를 포함하고 갖는 프로세스, 방법, 물품 또는 장치는 단지 이러한 요소들만을 포함하는 것이 아니라, 명확히 열거되지 않거나 이러한 프로세스, 방법, 물품 또는 장치에 내재적인 다른 요소들을 포함할 수 있다. "~을 포함한다", "~을 갖는다" 앞에 언급된 요소는, 더 이상의 제한 없이도, 그 요소를 포함하고 갖는 프로세스, 방법, 물품, 또는 장치의 동일한 추가 요소들의 존재를 제외하지 않는다. 단수형 용어들은 본 명세서에서 달리 명시적으로 언급되지 않는 한 하나 이상으로 정의된다. 용어들 "실질적으로", "본질적으로", "대략", "약" 또는 이들의 임의의 다른 버전은 관련 기술분야의 통상의 기술자에 의해 이해되는 바와 가깝게 정의되고, 하나의 비제한적 실시예에서, 이 용어는 10% 범위 내에 있는 것, 다른 실시예에서 5% 범위 내에 있는 것, 또 다른 실시예에서 1% 범위 내에 있는 것, 또 다른 실시예에서 0.5% 범위 내에 있는 것으로 정의된다. 본 명세서에서 사용되는 용어 "결합된"은 반드시 직접적이고 반드시 기계적일 필요는 없지만 연결되는 것으로서 정의된다. 특정 방식으로 "구성되는" 디바이스 또는 구조는 적어도 그 방식으로 구성되지만, 열거되지 않은 방식들로 또한 구성될 수 있다.
일부 실시예들은 마이크로프로세서들, 디지털 신호 프로세서들, 맞춤형 프로세서들 및 FPGA들(field programmable gate arrays)과 같은 하나 이상의 일반 또는 특수 프로세서(또는 "처리 디바이스") 및 본 명세서에 설명된 방법 및/또는 장치의 기능들 중 일부, 대부분, 또는 전부를 특정 비-프로세서 회로들과 함께 구현하기 위해 하나 이상의 프로세서를 제어하는 (소프트웨어 및 펌웨어 둘 다를 포함하는) 고유한 저장된 프로그램 명령어들로 구성될 수 있다는 것이 이해될 것이다. 대안적으로, 일부 또는 모든 기능들은 저장된 프로그램 명령어들을 갖지 않는 상태 머신에 의해 또는 각각의 기능 또는 특정 기능들의 일부 조합들이 맞춤형 논리로서 구현되는 하나 이상의 ASIC(application specific integrated circuit)에서 구현될 수 있다. 물론, 두 가지 접근법의 조합이 이용될 수 있다.
또한, 실시예는, 본 명세서에서 설명되고 청구된 바와 같은 방법을 수행하도록 컴퓨터(예를 들어, 프로세서를 포함함)를 프로그래밍하기 위한 컴퓨터 판독가능한 코드가 저장된 컴퓨터 판독가능한 저장 매체로서 구현될 수 있다. 이러한 컴퓨터 판독가능한 저장 매체의 예들로는 하드 디스크, CD-ROM, 광학 저장 디바이스, 자기 저장 디바이스, ROM, PROM(Programmable Read Only Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read Only Memory) 및 플래시 메모리를 포함하지만, 이에 제한되지 않는다. 추가로, 예를 들어, 이용가능한 시간, 현재 기술, 및 경제적 고려사항들에 의해 유발된 아마도 상당한 노력 및 많은 설계 선택사항들에도 불구하고, 본 명세서에 개시된 개념들 및 원리들에 의해 안내받을 때, 관련 기술분야의 통상의 기술자는 이러한 소프트웨어 명령어들 및 프로그램들 및 IC들을 최소한의 실험으로 쉽게 발생시킬 수 있을 것이라 예상된다.
본 개시내용에 대한 요약서는 독자가 기술적 개시내용의 본질을 신속하게 알아내도록 허용하기 위해 제공된다. 이러한 요약서는 청구항들의 범위 또는 의미를 해석하거나 제한하는데 이용되지는 않을 것이라는 이해 하에 제출된다. 게다가, 상술한 상세한 설명에서, 다양한 특징들은 개시내용을 간소화할 목적으로 다양한 실시예들에서 함께 그룹화된다는 것을 알 수 있다. 이러한 개시내용의 방법은 청구되는 실시예들이 각각의 청구항에 명확히 기재된 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로서 해석되지 않아야 한다. 오히려, 이하의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들보다 더 적게 있다. 따라서, 이하의 청구항들은 상세한 설명에 이로써 포함되며, 각각의 청구항은 별개로 청구된 주제로서 독립적이다.

Claims (20)

  1. 서버로서,
    교정 데이터를 저장하는 메모리; 및
    상기 메모리와 접속된 프로세서
    를 포함하며, 상기 프로세서는,
    치수화(dimension)될 물체를 운반하는 홀더 및 본체를 갖는 수송체(transporter)를 포함하는 캡처 볼륨을 묘사하는 포인트 클라우드(point cloud)를 획득하고;
    상기 수송체와 연관된 위치들의 세트를 획득하고;
    상기 위치들의 세트 및 상기 교정 데이터에 기반하여, 상기 수송체의 본체 및 상기 홀더의 마스트를 제외한 상기 포인트 클라우드의 제1 부분을 선택하고;
    상기 교정 데이터에 기반하여, 상기 홀더의 베이스를 제외한, 상기 제1 부분으로부터 상기 포인트 클라우드의 제2 부분을 선택하고;
    상기 포인트 클라우드의 상기 제2 부분에 기반하여 상기 물체를 치수화하도록
    구성되는, 서버.
  2. 제1항에 있어서,
    통신 인터페이스를 더 포함하며;
    상기 프로세서는, 상기 포인트 클라우드를 획득하기 위해, 상기 통신 인터페이스를 통해 복수의 캡처 노드로부터 초기 포인트 클라우드들을 수신하고, 상기 초기 포인트 클라우드들을 조합하여 상기 포인트 클라우드를 생성하도록 추가로 구성되는, 서버.
  3. 제1항에 있어서,
    상기 프로세서는, 상기 제1 부분을 선택하기 위해,
    상기 마스트의 전방 표면에 대응하는 절단면을 생성하고;
    상기 절단면의 미리 결정된 측면 상의 포인트들을 폐기하도록
    구성되는, 서버.
  4. 제3항에 있어서,
    상기 프로세서는, 상기 제2 부분을 선택하기 위해,
    상기 베이스의 하부 표면을 검출하고;
    상기 교정 데이터에 따라 상기 베이스의 상부 표면을 생성하고;
    상기 하부 표면과 상기 상부 표면 사이의 포인트들을 폐기하도록
    구성되는, 서버.
  5. 제4항에 있어서,
    상기 프로세서는, 상기 하부 표면을 검출하기 위해, 상기 제1 부분에 기반하여 상기 물체 및 상기 베이스를 포함하는 경계 박스를 생성하도록 구성되는, 서버.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 경계 박스의 중심을 식별하고;
    상기 중심 및 상기 교정 데이터에 따라 상기 베이스의 측면들에 대응하는 측면 표면들을 생성하고;
    상기 하부 표면, 상기 상부 표면, 및 상기 측면 표면들 사이의 포인트들을 폐기하도록
    추가로 구성되는, 서버.
  7. 제5항에 있어서,
    상기 프로세서는 상기 절단면에 대해 미리 정의된 각도를 갖는 상기 하부 표면을 생성하도록 구성되는, 서버.
  8. 제1항에 있어서,
    상기 프로세서는, 상기 물체를 치수화하기 위해,
    상기 포인트 클라우드의 상기 제2 부분으로부터 상기 물체에 대응하는 경계 박스를 생성하고;
    상기 경계 박스의 표면에 인접한 복수의 슬라이스 각각에 대한 포인트 밀도들(point densities)을 결정하고;
    최대 포인트 밀도를 갖는 슬라이스들 중 하나에 대응하는 업데이트된 경계 박스 표면을 선택하도록
    추가로 구성되는, 서버.
  9. 제8항에 있어서,
    상기 프로세서는 상기 포인트 밀도들의 결정 및 상기 경계 박스의 각각의 남아 있는 표면에 대한 업데이트된 경계 박스 표면의 선택을 반복하도록 추가로 구성되는, 서버.
  10. 제1항에 있어서,
    상기 프로세서는,
    상기 위치들의 세트 및 상기 교정 데이터에 기반하여 상기 수송체의 레퍼런스 표면을 검출하고;
    상기 레퍼런스 표면으로부터 상기 포인트 클라우드 내의 잡음의 레벨을 추정하도록
    추가로 구성되는, 서버.
  11. 방법으로서,
    교정 데이터를 저장하는 단계;
    치수화될 물체를 운반하는 홀더 및 본체를 갖는 수송체를 포함하는 캡처 볼륨을 묘사하는 포인트 클라우드를 획득하는 단계;
    상기 수송체와 연관된 위치들의 세트를 획득하는 단계;
    상기 위치들의 세트 및 상기 교정 데이터에 기반하여, 상기 수송체의 본체 및 상기 홀더의 마스트를 제외한 상기 포인트 클라우드의 제1 부분을 선택하는 단계;
    상기 교정 데이터에 기반하여, 상기 홀더의 베이스를 제외한, 상기 제1 부분으로부터 상기 포인트 클라우드의 제2 부분을 선택하는 단계; 및
    상기 포인트 클라우드의 상기 제2 부분에 기반하여 상기 물체를 치수화하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 포인트 클라우드를 획득하는 단계는 통신 인터페이스를 통해 복수의 캡처 노드로부터 초기 포인트 클라우드들을 수신하는 단계, 및 상기 초기 포인트 클라우드들을 조합하여 상기 포인트 클라우드를 생성하는 단계를 포함하는, 방법.
  13. 제11항에 있어서,
    상기 제1 부분을 선택하는 단계는,
    상기 마스트의 전방 표면에 대응하는 절단면을 생성하는 단계; 및
    상기 절단면의 미리 결정된 측면 상의 포인트들을 폐기하는 단계
    를 포함하는, 방법.
  14. 제13항에 있어서,
    상기 제2 부분을 선택하는 단계는,
    상기 베이스의 하부 표면을 검출하는 단계;
    상기 교정 데이터에 따라 상기 베이스의 상부 표면을 생성하는 단계; 및
    상기 하부 표면과 상기 상부 표면 사이의 포인트들을 폐기하는 단계
    를 포함하는, 방법.
  15. 제14항에 있어서,
    상기 하부 표면을 검출하는 단계는, 상기 제1 부분에 기반하여, 상기 물체 및 상기 베이스를 포함하는 경계 박스를 생성하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 경계 박스의 중심을 식별하는 단계;
    상기 중심 및 상기 교정 데이터에 따라 상기 베이스의 측면들에 대응하는 측면 표면들을 생성하는 단계; 및
    상기 하부 표면, 상기 상부 표면, 및 상기 측면 표면들 사이의 포인트들을 폐기하는 단계
    를 더 포함하는, 방법.
  17. 제15항에 있어서,
    상기 절단면에 대해 미리 정의된 각도를 갖는 상기 하부 표면을 생성하는 단계를 더 포함하는, 방법.
  18. 제11항에 있어서,
    상기 물체를 치수화하는 단계는,
    상기 포인트 클라우드의 상기 제2 부분으로부터 상기 물체에 대응하는 경계 박스를 생성하는 단계;
    상기 경계 박스의 표면에 인접한 복수의 슬라이스 각각에 대한 포인트 밀도들을 결정하는 단계; 및
    최대 포인트 밀도를 갖는 슬라이스들 중 하나에 대응하는 업데이트된 경계 박스 표면을 선택하는 단계
    를 포함하는, 방법.
  19. 제18항에 있어서,
    상기 포인트 밀도들의 결정 및 상기 경계 박스의 각각의 남아 있는 표면에 대한 업데이트된 경계 박스 표면의 선택을 반복하는 단계를 더 포함하는, 방법.
  20. 제11항에 있어서,
    상기 위치들의 세트 및 상기 교정 데이터에 기반하여 상기 수송체의 레퍼런스 표면을 검출하는 단계; 및
    상기 레퍼런스 표면으로부터 상기 포인트 클라우드 내의 잡음의 레벨을 추정하는 단계
    를 더 포함하는, 방법.
KR1020227028901A 2020-02-25 2021-02-17 데이터 캡처 시스템을 위한 수송체 세분화 KR20220131968A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/800,805 2020-02-25
US16/800,805 US11227404B2 (en) 2020-02-25 2020-02-25 Transporter segmentation for data capture system
PCT/US2021/018390 WO2021173402A1 (en) 2020-02-25 2021-02-17 Transporter segmentation for data capture system

Publications (1)

Publication Number Publication Date
KR20220131968A true KR20220131968A (ko) 2022-09-29

Family

ID=75339193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227028901A KR20220131968A (ko) 2020-02-25 2021-02-17 데이터 캡처 시스템을 위한 수송체 세분화

Country Status (7)

Country Link
US (1) US11227404B2 (ko)
KR (1) KR20220131968A (ko)
CN (1) CN113379827A (ko)
BE (1) BE1028059B1 (ko)
DE (1) DE102021104352A1 (ko)
GB (1) GB2595753A (ko)
WO (1) WO2021173402A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995157B2 (en) * 2020-12-04 2024-05-28 Caterpillar Inc. Intelligent LiDAR scanning
US20230112666A1 (en) * 2021-10-12 2023-04-13 Zebra Technologies Corporation System and Method for Detecting Calibration of a 3D Sensor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465997B2 (en) 2012-09-26 2016-10-11 General Electric Company System and method for detection and tracking of moving objects
US9811714B2 (en) 2013-08-28 2017-11-07 Autodesk, Inc. Building datum extraction from laser scanning data
DE102014011821A1 (de) * 2014-08-08 2016-02-11 Cargometer Gmbh Vorrichtung und Verfahren zur Volumenbestimmung eines durch ein Flurförderzeug bewegten Objekts
US10769806B2 (en) * 2015-09-25 2020-09-08 Logical Turn Services, Inc. Dimensional acquisition of packages
US10145955B2 (en) 2016-02-04 2018-12-04 Symbol Technologies, Llc Methods and systems for processing point-cloud data with a line scanner
US9898833B1 (en) * 2016-07-15 2018-02-20 Northrop Grumman Systems Corporation Apparatus and method for determining the dimensions of a package while in motion
US10451405B2 (en) 2016-11-22 2019-10-22 Symbol Technologies, Llc Dimensioning system for, and method of, dimensioning freight in motion along an unconstrained path in a venue
US11558601B2 (en) 2017-11-06 2023-01-17 Symbol Technologies, Llc Methods and apparatus for initializing object dimensioning systems
US10930001B2 (en) 2018-05-29 2021-02-23 Zebra Technologies Corporation Data capture system and method for object dimensioning
CN109145969B (zh) * 2018-08-03 2020-07-28 百度在线网络技术(北京)有限公司 三维物体点云数据的处理方法、装置、设备及介质
CN109948661B (zh) * 2019-02-27 2023-04-07 江苏大学 一种基于多传感器融合的3d车辆检测方法

Also Published As

Publication number Publication date
US20210264634A1 (en) 2021-08-26
US11227404B2 (en) 2022-01-18
BE1028059A1 (nl) 2021-09-07
GB202102589D0 (en) 2021-04-07
DE102021104352A1 (de) 2021-08-26
BE1028059B1 (nl) 2022-05-04
CN113379827A (zh) 2021-09-10
GB2595753A (en) 2021-12-08
WO2021173402A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US10240914B2 (en) Dimensioning system with guided alignment
US10713610B2 (en) Methods and systems for occlusion detection and data correction for container-fullness estimation
KR20220131968A (ko) 데이터 캡처 시스템을 위한 수송체 세분화
US11062472B1 (en) Transporter segmentation for data capture system
WO2020043350A1 (en) Method(s) and system(s) for vehicular cargo management
CA3005452C (en) Methods and systems for container fullness estimation
JP2016050840A5 (ko)
JP2017151652A (ja) 物体状態特定方法、物体状態特定装置、および、搬送車
US20150178956A1 (en) Apparatus, systems, and methods for processing a height map
JP2017151650A (ja) 物体状態特定方法、物体状態特定装置、および、搬送車
US11138748B2 (en) Method and apparatus for classifying depth scans
JP6523196B2 (ja) 推定装置、方法及びプログラム
US20200193624A1 (en) Method and apparatus for dimensioning objects
US20200380706A1 (en) Method, System and Apparatus for Detecting Support Structure Obstructions
US11348273B2 (en) Data capture system
US20210272316A1 (en) Method, System and Apparatus for Object Detection in Point Clouds
JP2022003334A (ja) 周辺情報処理方法
CA3113942C (en) Method, system and apparatus for support structure depth determination
US11804051B2 (en) Parallel data capture system
CN112346041A (zh) 确定两个传感器的传感器数据中的视差问题的方法和设备
US12026916B2 (en) Method and apparatus for in-field stereo calibration
US20230154048A1 (en) Method and Apparatus for In-Field Stereo Calibration
CN112485807A (zh) 物体识别装置