KR101923373B1 - Method for 3d-scanning a subject using a calibration object - Google Patents

Method for 3d-scanning a subject using a calibration object Download PDF

Info

Publication number
KR101923373B1
KR101923373B1 KR1020170133676A KR20170133676A KR101923373B1 KR 101923373 B1 KR101923373 B1 KR 101923373B1 KR 1020170133676 A KR1020170133676 A KR 1020170133676A KR 20170133676 A KR20170133676 A KR 20170133676A KR 101923373 B1 KR101923373 B1 KR 101923373B1
Authority
KR
South Korea
Prior art keywords
correction
model
scanner
subject
scanning
Prior art date
Application number
KR1020170133676A
Other languages
Korean (ko)
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 KR1020170133676A priority Critical patent/KR101923373B1/en
Application granted granted Critical
Publication of KR101923373B1 publication Critical patent/KR101923373B1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2504Calibration devices
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/107Measuring physical dimensions, e.g. size of the entire body or parts thereof
    • A61B5/1079Measuring physical dimensions, e.g. size of the entire body or parts thereof using optical or photographic means
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2518Projection by scanning of the object

Landscapes

  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Animal Behavior & Ethology (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Dentistry (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

The present invention provides a method for automatically reconfiguring a 3D model of an object and calibrating an error by using a turntable type 3D scanning system. A method for providing a 3D scanning object measurement service using a calibration object comprises the following steps of: interlocking and connecting with a 3D scanner; inputting and storing a specification of a calibration object located on a base surface of the connected 3D scanner; executing 3D scan of a subject which is located on the calibration object and executes the 3D scan together with the calibration object; generating the 3D model as a result of the 3D scan, and re-adjusting a coordinate of the subject by using the specification of the calibration body in order to calibration the error of the generated 3D model; and calibrating the 3D model by using the re-adjusted coordinate.

Description

보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법{METHOD FOR 3D-SCANNING A SUBJECT USING A CALIBRATION OBJECT}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a 3D scanning object measurement service using a correction object,

본 발명은 3D 스캐너를 이용한 객체 측정 서비스 제공 방법에 관한 것으로, 이미 치수를 알고있는 보정체 위에 피사체를 위치한 후 3D 스캔으로 함께 3D 모델을 생성한 후 보정체를 이용하여 피사체의 측정 오차나 왜곡을 보정할 수 있는 방법을 제공한다.The present invention relates to a method of providing an object measurement service using a 3D scanner, wherein a 3D model is generated by a 3D scan after locating a subject on an already known correction object, and then a measurement error or a distortion of the object Provides a way to calibrate.

디지털 3D 모델은 실제 물체의 형상을 수치적인 3D 데이터로 표현하는 것이며, 오늘날, 3D 모델의 적용분야는 매우 광범위하고, 더욱이 3D 그래픽 장치의 성능향상과 컴퓨터와 같은 계산장치의 가격하락으로 3D 모델 관련산업은 더욱 성장하고 있는 추세이다. 신체나 산업제품의 3D모델을 활용한 분야로는 패션디자인, 생산제품의 디자인 및 개발, 그리고 마케팅 산업에서도 이용되고 있으며, 건축 디자인과 역설계(reverse engineering) 등의 분야에도 적용할 수 있다.The digital 3D model represents the actual object shape as numerical 3D data. Today, the application field of the 3D model is very wide. Moreover, due to the improvement of the performance of the 3D graphic device and the decrease of the price of the calculation device such as a computer, The industry is growing more and more. The 3D models of body and industrial products are also used in fashion design, design and development of production products, and marketing industries, and can also be applied to fields such as architectural design and reverse engineering.

이때, 3D 모델을 얻는 방법은 3D 센서를 이용하는 방법으로 이루어지고 있다. 이와 관련하여, 선행기술인 한국공개특허 제2016-0105598호(2016년09월07일 공개)에는, 3D센서를 이용하여 체형진단의 객관화 및 체형질환 진단플랫폼으로서 과학적으로 접근하고, 각종 체형 진단 및 척추질환, 수술전후 등을 비교, 진단 예측하여 질환, 질병의 특성 판단에 대한 객관화된 기준을 제시하기 위하여, 기둥의 상부에 3D센서가 구비되고, 상기 기둥과 떨어져서 턴테이블이 구비되는데, 상기 턴테이블에는 측정대상자가 올라가 서있게 되며, 상기 3D센서가 작동되면 제어부를 통하여 상기 턴테이블이 한방향으로 회전되면서 3D센서의 빔이 전신에 조사되어 3차원의 신체측정을 하는 구성을 개시한다.At this time, a method of obtaining a 3D model is performed by using a 3D sensor. In this regard, Korean Patent Laid-Open Publication No. 2016-0105598 (published on Sep. 07, 2016) discloses a technique for objectively diagnosing a body type diagnosis using a 3D sensor and a scientific approach as a body type disease diagnosis platform, A 3D sensor is provided on the upper part of the column and a turntable is provided apart from the column in order to compare and diagnose the disease, When the 3D sensor is operated, the turntable is rotated in one direction through the control unit, and the beam of the 3D sensor is irradiated to the whole body to perform three-dimensional body measurement.

다만, 3D 스캐닝을 이용한 3D 형상정보를 구축하기 위해서는 피측정물의 촬영부터 시작하여 획득된 데이터의 합성과정까지 여러 단계를 거치는데, 이는 많은 시간과 복잡하며 번거로운 수작업을 요구하며, 스캐너 자체의 캘리브레이션이 완벽하지 않음이나 여러 각도에서 스캔한 데이터를 하나로 합치는 과정에서 오차와 왜곡이 발생한다.However, in order to construct 3D shape information using 3D scanning, it takes many steps from the shooting of the measured object to the synthesis of the acquired data. This requires a lot of time, complicated and cumbersome manual work, and the calibration of the scanner itself Errors and distortions occur when combining data scanned from multiple angles or incomplete.

본 발명의 일 실시예는, 턴테이블형 3D 스캐닝 시스템을 사용하여 물체의 3D 모델을 자동적으로 재구성 및 오차를 보정하는 방법을 제공하고, 치수를 이미 알고 있는 보정체를 피사체와 함께 촬영함으로써, 보정체의 수치를 이용하여 오차가 발생하는 피사체를 이루는 각 점의 좌표를 보정하고, 정확한 3D 점군집 데이터를 이용하여 면표현(facet representation)에 의해 3D 모델로 재구성하고, 이는 쉽게 STL 포맷으로 변환이 가능하여 CAD 소프트웨어 및 3D 프린팅 프로세서에도 쉽게 접목할 수 있고, 턴테이블형 스캐너 뿐만 아니라 턴테이블 없이 궤도를 따라 움직이며 스캔하는 단수나 복수의 스캐너 시스템, 고정된 장소에 위치한 단수의 스캐너 시스템, 여러 방향에 위치한 복수의 스캐너 구조에도 적용가능한, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.An embodiment of the present invention provides a method of automatically reconstructing and correcting an error of a 3D model of an object using a turntable type 3D scanning system and photographing a correction object already known with the object together with the object, , The coordinates of each point constituting the object of error are corrected and reconstructed into a 3D model by facet representation using accurate 3D point cluster data and this can be easily converted to the STL format It can be easily integrated with CAD software and 3D printing processor. It can be used not only as a turntable scanner but also as a single or multiple scanner system that moves along a trajectory without a turntable, a single scanner system in a fixed location, Provides 3D scanning object measurement service, which can be applied to scanner structure Method can be provided. It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 3D 스캐너와 연동하여 연결하는 단계, 연결된 3D 스캐너의 베이스면(턴테이블 시스템의 턴테이블면이나 턴테이블이 없는 경우 베이스 플로어를 칭함) 상에 위치한 보정체의 스펙을 입력 및 저장하는 단계, 보정체 상에 위치하고 3D 스캔이 실시될 피사체를, 보정체와 함께 기 설정된 3D 스캔을 실시하는 단계, 3D 스캔의 결과로 3D 모델을 생성하고, 생성된 3D 모델의 오차를 제거하기 위하여 보정체의 스펙을 이용하여 피사체를 이루는 좌표를 재조정하는 단계, 및 재조정된 좌표를 이용하여 3D 모델을 보정하는 단계를 포함한다.According to another aspect of the present invention, there is provided a 3D scanner comprising: a base (a turntable surface of a turntable system or a base floor when there is no turntable; A step of inputting and storing the specification of the correction object on the correction object, performing a predetermined 3D scan with the object to be subjected to 3D scanning on the correction object, and generating a 3D model as a result of the 3D scanning Correcting the coordinates of the subject using the specification of the correction object to remove errors of the generated 3D model, and correcting the 3D model using the re-adjusted coordinates.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 복잡하고 많은 시간이 소요되는 과정에서 생기는 불필요한 준비과정이나 진행단계별 수작업 요소들을 자동화하여 작업자의 숙련도에 따라 발생하는 데이터 품질의 차이를 최소화 할 수 있도록 하였으며, 작업자의 실수로 인해 발생하는 데이터의 부재를 사전에 예방 할 수 있어 결과적으로 3D 스캐너를 통한 3 차원데이터 획득과정의 시간적, 데이터적 효율성과 형상정밀도를 증가시킬 수 있으며, 오차를 최소화할 수 있으며, 다양한 종류의 스캐너라도 간단한 방법으로 오차를 보정할 수 있다.According to any one of the above-mentioned objects of the present invention, it is possible to minimize the difference in data quality caused by the skill of the operator by automating unnecessary preparatory processes or manual elements according to progress steps, which are complicated and time- As a result, it is possible to prevent the occurrence of the data caused by the operator's mistake in advance. As a result, it is possible to increase the time, data efficiency and shape accuracy of the 3D data acquisition process through the 3D scanner, And it is possible to correct errors by a simple method even for various kinds of scanners.

도 1은 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 시스템을 설명하기 위한 구성도이다.
도 2는 본 발명의 일 실시예에 따른 턴테이블형 3D 스캐너의 동작을 설명하기 위한 도면이다.
도 3은 도 1에 도시된 보정체를 이용한 3D 스캐닝 객체 측정 서비스 중 3D 모델 생성 및 보정체의 XY 좌표를 생성하는 일 실시예를 도시한 도면이다.
도 4는 도 1의 보정체를 이용하여 피사체의 3D 모델에서의 오차를 보정하기 위한 일 실시예를 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 객체 측정 서비스가 적용되는 스캐너의 일 실시예를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
1 is a block diagram illustrating a system for providing a 3D scanning object measurement service using a correction object according to an exemplary embodiment of the present invention.
2 is a view for explaining the operation of a turntable type 3D scanner according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of generating 3D models and generating XY coordinates of a correction object among 3D scanning object measurement services using the correction object shown in FIG.
4 is a view for explaining an embodiment for correcting an error in a 3D model of a subject using the correction tool of FIG.
5 and 6 are views for explaining an embodiment of a scanner to which an object measurement service according to an embodiment of the present invention is applied.
7 is a flowchart illustrating a method of providing a 3D scanning object measurement service using a correction object according to an exemplary embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "including" an element, it is to be understood that the element may include other elements as well as other elements, And does not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.

명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다. The terms "about "," substantially ", etc. used to the extent that they are used throughout the specification are used in their numerical value or in close proximity to their numerical values when the manufacturing and material tolerances inherent in the stated meanings are presented, Accurate or absolute numbers are used to help prevent unauthorized exploitation by unauthorized intruders of the referenced disclosure. The word " step (or step) "or" step "does not mean" step for. &Quot;

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다. In this specification, the term " part " includes a unit realized by hardware, a unit realized by software, and a unit realized by using both. Further, one unit may be implemented using two or more hardware, or two or more units may be implemented by one hardware.

본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다. In this specification, some of the operations or functions described as being performed by a terminal, a device, or a device may be performed instead in a server connected to the terminal, device, or device. Likewise, some of the operations or functions described as being performed by the server may also be performed in a terminal, device or device connected to the server.

본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.In this specification, some of the operations or functions described in the mapping or matching with the terminal are used for mapping or matching the unique number of the terminal or the identification information of the individual, which is the identification data of the terminal . ≪ / RTI >

본 명세서에 있어서, 적어도 하나의(At least one)의 의미는 단수 또는 복수로 해석될 수 있고, 적어도 하나의 라는 용어를 사용한 경우, 이하에서 중복으로 삭제할 수 있고, 이는 정의된 용어와 동일한 용어로 해석될 수 있다.In this specification, at least one meaning may be interpreted as singular or plural, and when using at least one term, it may be deleted in duplicate below, Can be interpreted.

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 시스템을 설명하기 위한 구성도이다. 도 1을 참조하면, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 시스템(1)은, 턴테이블형 3D 스캐너(100), 사용자 단말(300)을 포함할 수 있다. 다만, 이러한 도 1의 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통해 본 발명이 한정 해석되는 것은 아니다.1 is a block diagram illustrating a system for providing a 3D scanning object measurement service using a correction object according to an exemplary embodiment of the present invention. Referring to FIG. 1, a 3D scanning object measurement service providing system 1 using a correction object may include a turntable 3D scanner 100 and a user terminal 300. However, the 3D scanning object measurement service providing system 1 using the correction object of FIG. 1 is only an embodiment of the present invention, and thus the present invention is not limited to FIG.

이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 턴테이블형 3D 스캐너(100)는, 네트워크(200)를 통하여 사용자 단말(300)과 연결될 수 있다. 또한, 사용자 단말(300)은, 네트워크(200)를 통하여 턴테이블형 3D 스캐너(100)와 연결될 수 있다.At this time, the respective components of FIG. 1 are generally connected through a network 200. For example, as shown in FIG. 1, a turntable-type 3D scanner 100 may be connected to a user terminal 300 through a network 200. In addition, the user terminal 300 may be connected to the turntable 3D scanner 100 through the network 200.

여기서, 네트워크(200)는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(200)의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5rd Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크, 네트워크에 USB 등 유무선 통신 등이 포함되나 이에 한정되지는 않는다.Here, the network 200 refers to a connection structure capable of exchanging information between nodes such as a plurality of terminals and servers. An example of such a network 200 is RF, 3rd Generation Partnership Project (3GPP) Network, an LTE (Long Term Evolution) network, a 5rd Generation Partnership Project (5 GPP) network, a World Interoperability for Microwave Access (WIMAX) network, the Internet, a LAN (Local Area Network) Wired communication such as USB to a Wide Area Network (WAN), a Personal Area Network (PAN), a Bluetooth network, an NFC network, a satellite broadcasting network, an analog broadcasting network, a DMB (Digital Multimedia Broadcasting) network, But is not limited to.

턴테이블형 3D 스캐너(100)는, 피사체를 스캔 및 촬영하고 사용자 단말(300)로 데이터를 전송하는 장치일 수 있다. 이때, 3D 스캐너(100)의 컴퓨팅 자원이 기 설정된 조건을 충족한다면 사용자 단말(300)은 구비되지 않을 수 있고, 일체로 구현될 수 있음은 물론이라 할 것이다. 이에 따라, 턴테이블형 3D 스캐너(100)와 사용자 단말(300)이 분리되어 구현되는 것이 필수적인 것은 아니고, 네트워킹 자원 및 컴퓨팅 자원에 따라 다양하게 구현될 수 있음은 자명하다 할 것이다. 또한, 턴테이블형 3D 스캐너(100)는, 피사체(130)를 보정체(120)와 함께 스캔하여 3D 모델을 생성하는 장치일 수 있다. 그리고, 턴테이블 3D 스캐너(100)는, 피사체(130)의 오차를 보정체(120)를 통하여 사용자 단말(300)에서 보정하도록 스캔 결과 등의 데이터를 사용자 단말(300)로 제공하는 장치일 수 있다. 여기서, 턴테이블 3D 스캐너(100)는, 턴테이블(110)을 회전하여 피사체(130) 및 보정체(120)가 360도로 촬영되도록 하는 장치일 수도 있고 턴테이블이 없이 단수나 복수의 스캐너가 궤도를 따라 움직이며 스캔을 하는 장치일 수도 있고 고정된 단수의 스캐너가 스캔을 하는 장치일 수도 있고 여러 방향에 위치한 복수의 스캐너가 스캔을 하는 장치일 수도 있다.The turntable 3D scanner 100 may be a device that scans and photographs a subject and transmits data to the user terminal 300. [ At this time, if the computing resources of the 3D scanner 100 satisfy predetermined conditions, the user terminal 300 may not be provided and may be integrally implemented. Accordingly, it is not essential that the turntable type 3D scanner 100 and the user terminal 300 are separately implemented, but it can be variously embodied according to networking resources and computing resources. The turntable 3D scanner 100 may be a device that scans the subject 130 together with the correction unit 120 to generate a 3D model. The turntable 3D scanner 100 may be a device for providing data such as a scan result to the user terminal 300 so that the user terminal 300 corrects the error of the subject 130 through the correction unit 120 . Here, the turntable 3D scanner 100 may be an apparatus that rotates the turntable 110 to photograph the subject 130 and the corrector 120 at 360 degrees, or may be a device in which a single scanner or a plurality of scanners move along a trajectory without a turntable And may be a device for performing a scan or a fixed number of scanners for scanning, or a plurality of scanners located in various directions for scanning.

사용자 단말(300)은, 턴테이블형 3D 스캐너(100)와 연결되어 피사체(130)와 보정체(120)를 촬영한 결과를 이용하여 3D 모델을 생성 및 화면에 출력하는 단말일 수 있다. 그리고, 사용자 단말(300)은, 턴테이블형 3D 스캐너(100)에서 출력된 정보를 이용하여 피사체(130)가 그대로 3D 모델로 형성되지 못하는 현상(오차 발생)을 제거하는 보정 작업을 수행하는 단말일 수 있다. 이를 위하여, 사용자 단말(300)은, 보정체(120)의 스펙을 이용하여 보정을 수정하는 단말일 수 있다.The user terminal 300 may be a terminal connected to the turntable type 3D scanner 100 and generating and outputting a 3D model using the result of photographing the subject 130 and the correction object 120. [ The user terminal 300 is a terminal for performing a correction operation for eliminating the phenomenon (error generation) that the subject 130 can not be formed as a 3D model as it is by using the information output from the turntable type 3D scanner 100 . For this, the user terminal 300 may be a terminal that corrects the correction using the specification of the correction body 120. [

여기서, 사용자 단말(300)은, 네트워크(200)를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, IPTV, 셋탑 박스, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 사용자 단말(300)은, 네트워크(200)를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 사용자 단말(300)은, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the user terminal 300 may be implemented as a computer capable of connecting to a remote server or terminal through the network 200. [ Here, the computer may include, for example, an IPTV, a set-top box, a notebook equipped with a web browser (Web browser), a desktop, a laptop, and the like. At this time, the user terminal 300 may be implemented as a terminal capable of connecting to a remote server or terminal through the network 200. [ The user terminal 300 is a wireless communication device that is guaranteed to be portable and mobility, for example, a personal communication system (PCS), a global system for mobile communications (GSM), a personal digital cellular (PDC) ), A PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication) -2000, Code Division Multiple Access (CDMA) -2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) based wireless communication device, such as a smartphone, a smartpad, a tablet PC, and the like.

도 2는 본 발명의 일 실시예에 따른 턴테이블형 3D 스캐너의 동작을 설명하기 위한 도면이고, 도 3은 도 1에 도시된 보정체를 이용한 3D 스캐닝 객체 측정 서비스 중 3D 모델 생성 및 보정체의 XY 좌표를 생성하는 일 실시예를 도시한 도면이고, 도 4는 도 1의 보정체를 이용하여 피사체의 3D 모델에서의 오차를 보정하기 위한 일 실시예를 설명하기 위한 도면이고, 도 5 및 도 6은 본 발명의 일 실시예에 따른 객체 측정 서비스가 적용되는 스캐너의 일 실시예를 설명하기 위한 도면이다.FIG. 2 is a view for explaining the operation of the turntable-type 3D scanner according to the embodiment of the present invention. FIG. 3 is a view for explaining the operation of the 3D scanning object measurement service using the correction object shown in FIG. FIG. 4 is a view for explaining an embodiment for correcting an error in a 3D model of a subject using the correction tool of FIG. 1, and FIGS. 5 and 6 Is a view for explaining an embodiment of a scanner to which an object measurement service according to an embodiment of the present invention is applied.

도 2를 설명할 때, 도 1의 사용자 단말(300)의 블록 구성을 함께 설명하기로 한다. 이때, 도 1을 참조하면, 본 발명의 일 실시예에 따른 사용자 단말(300)은, 연결부(310), 저장부(320), 실시부(330), 조정부(340), 보정부(350)를 포함할 수 있다.Referring to FIG. 2, the block configuration of the user terminal 300 of FIG. 1 will be described together. 1, a user terminal 300 according to an exemplary embodiment of the present invention includes a connection unit 310, a storage unit 320, an implementation unit 330, an adjustment unit 340, a correction unit 350, . ≪ / RTI >

본 발명의 일 실시예에 따른 서버(미도시) 또는 서버와 연동되어 동작하는 다른 서버(미도시)가 사용자 단말(300)로 보정체를 이용한 3D 스캐닝 객체 측정 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 턴테이블형 사용자 단말(300)은, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 사용자 단말(300)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: world wide web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(hyper text mark-up language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다.A server (not shown) or another server (not shown) operating in conjunction with a server according to an embodiment of the present invention may send a 3D scanning object measurement service application, a program, an app page, Pages, etc., the turntable user terminal 300 may install or open a 3D scanning object measurement service application, a program, an app page, a web page, etc. using the correction object. Also, a service program may be executed in the user terminal 300 using a script executed in a web browser. Here, a web browser is a program that enables a WWW (World Wide Web) service, and is a program for receiving and displaying hypertext described in hypertext mark-up language (HTML), for example, Netscape (Netscape) An Explorer, chrome, and the like. Further, the application refers to an application on the terminal, for example, an app (app) running on a mobile terminal (smart phone).

이때, 네트워크(200)의 연결은, 턴테이블형 3D 스캐너(100), 사용자 단말(300)이 네트워크(200)로 연결되어 있는 단말과 통신을 위해 통신 접점에 통신 객체를 생성하는 것을 의미한다. 사용자 단말(300)는 통신 객체를 통해 서로 데이터를 교환할 수 있다.At this time, the connection of the network 200 means that a communication object is created at the communication contact for communication with the turntable 3D scanner 100 and the user terminal 300 connected to the network 200. The user terminal 300 may exchange data with each other through a communication object.

이하에서, 도 2를 통하여 3D 스캐닝의 개념을 설명한 후, 사용자 단말(100)의 구성을 설명한 도 1의 블록 구성도를 설명하기로 한다.Hereinafter, the concept of 3D scanning will be described with reference to FIG. 2, and a block diagram of FIG. 1 will be described, which describes the configuration of the user terminal 100. FIG.

도 2를 참조하면, 스캐닝이란 물체의 기하학적인 형상을 전자동 혹은 반자동적인 방법으로 물체의 3D 모델을 구하는 과정을 말한다. 일반적으로 스캔된 데이터는 점군집(point cloud) 데이터라고 불리는데, 이는 각각의 스캔된 점 데이터는 3차원 공간상에서 하나의 위치좌표 값을 가지기 때문이다.Referring to FIG. 2, scanning refers to a process of obtaining a 3D model of an object in a fully automatic or semiautomatic manner by geometric shape of the object. Generally, scanned data is referred to as point cloud data because each scanned point data has one position coordinate value in three-dimensional space.

3D 스캐닝 시스템은 스캐닝을 하는 방법에 따라 구분될 수 있다. 광학적 방법은 포토그래피 원리(photographic principle)를 이용하고, 초음파방식은 스캐닝을 하는데 초음파 파형(wave)을 이용하며, 그 외에도 RTG 방사선을 이용하는 x-ray 방법, 그리고 삼각법(triangulation principle)을 이용하는 레이저방법, 구조광(Structured light)과 TOF(Time of Flight) 방식등이 있다.The 3D scanning system can be classified according to the method of scanning. The optical method uses the photographic principle, the ultrasonic method uses the ultrasonic wave for scanning, the x-ray method using the RTG radiation, and the laser method using the triangulation principle , Structured light and TOF (Time of Flight).

그 중에서 삼각법은 기준선(base line)의 양 끝단 점의 위치를 알고 있으면 기준선으로부터 한점까지의 거리를 계산할 수 있는 방법을 사용한다. (a)를 참조하면, 한 개의 레이저 프로젝터와 한 개의 카메라를 사용한 형태로 삼각법을 이용할 수 있는 전형적인 레이저-비전 장치 시스템이다. 레이저 프로젝터는 물체를 스캔하기 위하여 물체의 표면에 레이저 라인을 주사하게 된다. 이때, 물체의 표면에 형성된 레이저 띠(laser stripe)가 카메라에 의해 획득된다. 레이저 띠의 각 점들은 영상화면 상의 각 픽셀에 해당된다.Trigonometry uses a method that can calculate the distance from the baseline to one point if you know the position of both end points of the base line. (a), it is a typical laser-vision device system that can use trigonometry in the form of using one laser projector and one camera. The laser projector injects a laser line onto the surface of the object to scan the object. At this time, a laser stripe formed on the surface of the object is obtained by the camera. Each point of the laser band corresponds to each pixel on the image screen.

이때, 기준선의 길이 l과 두 사이각 α, β를 알고 있으면 삼각법에 의하여 기준선으로부터 목표점 까지의 거리 d는 이하 수학식 1과 같이 쉽게 구할 수 있다.At this time, the distance d from the reference line to the target point by the trigonometrical method can be easily obtained as shown in Equation (1) by knowing the angle between the length l of the reference line and the angle?

[수학식 1][Equation 1]

d=lsinαsinβ/sin(α+β)d = lsin? sin? / sin (? +?)

이에 따라, 스캔된 물체의 표면에 대한 모든 점군집(point cloud) 데이터를 수집할 수 있다.Thus, all point cloud data for the surface of the scanned object can be collected.

이러한 3D 점군집 데이터를 이용하여 스캔된 물체의 3D 모델을 재구성(reconstruction)할 수 있다. 그리고, 재구성된 3D 모델은 3D 프린터로 출력될 수 있거나 다른 다양한 목적으로 사용될 수 있다.A 3D model of the scanned object can be reconstructed using the 3D point cluster data. The reconstructed 3D model can then be output to a 3D printer or used for various other purposes.

또한, 본 발명의 일 실시예에 따른 턴테이블형 3D 스캐너(100)는, (b)와 같이 레이저 프로젝터, 카메라, 턴테이블(110)로 3개의 모듈로 구성될 수 있다. 다만, 이하의 실시예에 한정되는 것은 아니다. 여기서, 레이저 프로젝터는 스캔하고자 하는 물체의 표면에 레이저 띠를 주사하는데 사용되고, 카메라 모듈은 촛점조절렌즈와 CMOS 영상센서를 가진 GigE(Gigabit Ethernet) 고속카메라를 포함할 수 있다. 이때, CMOS 영상센서의 픽셀 사이즈는 1312 x 1082 픽셀이고, 그레이 영상(gray image)을 제공할 수 있고, GigE 카메라는 100m 정도 되는 LAN 케이블의 거리를 초당 135 프레임까지 고속으로 영상을 전송할 수 있다. 턴테이블(110)은 스캔하고자 하는 물체를 360도 회전시켜서 물체의 전체 표면에 대한 3D 점군집 데이터를 형성할 수 있게 한다. 회전기구가 일정한 각도로 회전할 때마다 레이저 띠에 의해 형성된 점군집 데이터는 LAN 카드를 통해서 사용자 단말(300)로 전송될 수 있다.In addition, the turntable 3D scanner 100 according to an embodiment of the present invention may be composed of three modules as a laser projector, a camera, and a turntable 110 as shown in (b). However, the present invention is not limited to the following examples. Here, the laser projector is used to scan a laser beam on the surface of an object to be scanned, and the camera module may include a GigE (Gigabit Ethernet) high-speed camera having a focal lens and a CMOS image sensor. At this time, the pixel size of the CMOS image sensor is 1312 x 1082 pixels, and gray image can be provided, and the GigE camera can transmit the image at a high speed up to 135 frames per second at the distance of the LAN cable of about 100m. The turntable 110 rotates the object to be scanned by 360 degrees so as to form 3D point cluster data on the entire surface of the object. The point cluster data formed by the laser bands can be transmitted to the user terminal 300 through the LAN card every time the rotation mechanism rotates at a certain angle.

상술한 구성 및 동작 과정으로 구동되는 턴테이블형 3D 스캐너(100)를 이용하여 본 발명의 일 실시예에 따른 객체 측정 서비스를 도 1의 블록 구성도, 도 3 및 도 4를 이용하여 설명하기로 한다.The object measurement service according to one embodiment of the present invention will be described with reference to a block diagram of FIG. 1, FIG. 3, and FIG. 4 using a turntable 3D scanner 100 driven by the above-described configuration and operation .

연결부(310)는, 턴테이블형 3D 스캐너(100)와 연동하여 연결할 수 있다.The connection unit 310 can be linked with the turntable 3D scanner 100 in a linkable manner.

저장부(320)는, 연결된 턴테이블형 3D 스캐너(100)의 턴테이블(110)(베이스면) 상에 위치한 보정체(120)의 스펙을 입력 및 저장할 수 있다. 이때, 스펙은, 길이, 넓이, 높이, 너비, 두께, 및 지름 중 적어도 하나를 포함하는 보정체(120)를 측정한 결과 일 수 있다.The storage unit 320 can input and store specifications of the correction unit 120 on the turntable 110 (base surface) of the connected turntable type 3D scanner 100. At this time, the specification may be a result of measuring the correction member 120 including at least one of length, width, height, width, thickness, and diameter.

실시부(330)는, 보정체(120) 상에 위치하고 3D 스캔이 실시될 피사체(130)를, 턴테이블형 3D 스캐너(100)의 턴테이블(110)(베이스면) 및 보정체(120)와 함께 기 설정된 횟수의 턴(Turn)으로 3D 스캔을 실시할 수 있다.The implementing unit 330 may be configured to perform a 3D scanning of the subject 130 located on the correcting member 120 with the turntable 110 (base surface) of the turntable 3D scanner 100 and the correcting unit 120 A 3D scan can be performed with a predetermined number of turns.

조정부(340)는, 3D 스캔의 결과로 3D 모델을 생성하고, 생성된 3D 모델의 오차를 제거하기 위하여 보정체(120)의 스펙을 이용하여 피사체(130)를 이루는 좌표를 재조정할 수 있다.The adjustment unit 340 may re-adjust the coordinates of the subject 130 using the specification of the correction object 120 to generate a 3D model as a result of the 3D scan and remove the error of the generated 3D model.

도 3을 참조하면, (a) 조정부(340)는, 3D 스캔의 결과로 3D 모델을 생성하고, 생성된 3D 모델의 오차를 제거하기 위하여 보정체(120)의 스펙을 이용하여 피사체(130)를 이루는 좌표를 재조정할 때, (b) 턴테이블(110)의 면을 0으로 설정하고, 베이스면에 수직인 방향을 Z 축으로 정의하고, 보정체(120)의 높이를 이용하여 피사체(130)를 이루는 모든 점들의 Z 축 방향의 좌표를 재조정할 수 있다.3, the adjustment unit 340 generates a 3D model as a result of the 3D scan and uses the specification of the correction object 120 to remove the error of the generated 3D model, (B) the plane of the turntable 110 is set to 0, the direction perpendicular to the base plane is defined as the Z-axis, and the height of the subject 130 is adjusted using the height of the correcting member 120, The coordinates in the Z-axis direction of all points constituting the coordinate system can be readjusted.

그리고, 조정부(340)는, (c) 스캔으로 생성된 3D 모델에서 턴테이블(110)을 제거하고(모델에서 베이스면을 제거하고), 보정체(120)의 전면, 후면, 좌면, 우면, 상부면을 인식하고, (d) 형성된 3D 모델의 턴테이블(110)의 상부면(베이스면)에서부터 보정체의 상부면까지의 3D 모델의 측정된 높이(보정체의 3D 모델상의 두께)를 tm이라고 설정하고, (e) 보정체(120)의 Z 좌표를 무시하여 인식된 좌, 우, 앞, 뒤 각각 면에 해당하는 X, Y 평면상의 직선의 방정식을 생성할 수 있다. The adjusting unit 340 removes the turntable 110 from the 3D model created by the scan and removes the base surface from the model to obtain the front, back, seat, (D) sets the measured height (thickness on the 3D model of the correction body) of the 3D model from the upper surface (base surface) of the turntable 110 of the formed 3D model to the upper surface of the correction body as tm And (e) ignoring the Z coordinate of the correcting body 120, the equation of the straight line on the X, Y plane corresponding to the recognized left, right, front, and back sides can be generated.

도 4를 참조하면, 보정체(120)는 길이(Lengh), 너비(Width), 높이(Thickness)가 각각 l, w, t인 직육면체라고 가정하면, 조정부(340)에서 피사체(130)를 이루는 모든 점에 대하여 XYZ 좌표를 재계산할 때에는 이하의 조건을 가지고 재계산할 수 있다.4, assuming that the correction unit 120 is a rectangular parallelepiped having a length (Lengh), a width (Width), and a height (Thickness) When recalculating the XYZ coordinates for all points, it can be recalculated with the following conditions.

즉, (b) 보정체(120)의 전면 및 후면을 이루는 직선이, 기 설정된 방향으로 피사체(130) 상의 점인 p를 지나는 직선과 만나는 점 중 p의 좌측의 점을 L, p의 우측의 점을 R로 설정하고, p를 기준으로 L까지의 거리를 pL, R에서 L까지의 거리를 RL로 설정한다.That is, (b) a point on the left side of p, which is a point where a straight line that forms the front and rear surfaces of the correcting body 120 meets a straight line passing p, which is a point on the subject 130 in a predetermined direction, is L, Is set to R, the distance from p to p is defined as pL, and the distance from R to L is set as RL.

또한, (c) 보정체(120)의 좌면 및 우면을 이루는 직선이, 기 설정된 방향으로 피사체(130) 상의 점인 p를 지나는 직선과 만나는 점 중 p의 후방측의 점을 B, p의 전방측의 점을 F로 설정하고, p를 기준으로 B까지의 거리를 pB, F에서 B까지의 거리를 FB로 설정한다.(C) a point on the rear side of p, which is a point where a straight line that forms the left and right sides of the correcting member 120 meets a straight line passing p, which is a point on the subject 130 in a predetermined direction, Is set to F, the distance from p to p is set to pB, and the distance from F to B is set to FB.

또한, p를 기준으로 L이 오른쪽에 위치한 경우 pL의 부호는 음수로 설정하고, p를 기준으로 B가 전방측에 위치하면 pB의 부호는 음수로 설정하며, (d) 이하 수학식 2를 통하여 오차가 보정될 수 있다.If L is located on the right side of p, the sign of pL is set to a negative value. If B is located on the front side with respect to p, the sign of pB is set to a negative number. The error can be corrected.

[수학식 2]&Quot; (2) "

x' = w * pL / RLx '= w * pL / RL

y' = l * pB / FBy '= l * pB / FB

z' = ( z - tm ) * t / tmz '= (z - tm) * t / tm

이때, tm은 턴테이블(110) 상부면부터(베이스면으로부터) 보정체(120)의 상부면까지의(3D 모델상의 측정된) 높이를 의미한다.Here, tm means the height (measured on the 3D model) from the top surface of the turntable 110 (from the base surface) to the top surface of the correction body 120.

그리고 나서, 조정부(340)는, 피사체(130)를 이루는 모든 점에 대하여 XYZ 좌표를 재계산할 수 있고, 보정부(350)는, 재조정된 좌표를 이용하여 3D 모델을 보정할 수 있다.Then, the adjustment unit 340 can recalculate the XYZ coordinates with respect to all the points forming the subject 130, and the correction unit 350 can correct the 3D model using the re-adjusted coordinates.

한편, 턴테이블형 3D 스캐너(100)로 촬영되는 영상평면(Image Plane)과 레이저 평면(Laser Plane) 좌표계 사이의 상대위치값을 보정하기 위하여 캘리브레이션 물체(Calibration Object)인 보정체(120)가 이용될 수 있다.A correction object 120, which is a calibration object, is used to correct a relative position value between an image plane and a laser plane coordinate system photographed by the turntable type 3D scanner 100 .

그리고, 보정체(120)의 너비 및 길이는 피사체(130)의 너비 및 길이보다 클 수 있다.The width and length of the corrector 120 may be greater than the width and length of the subject 130.

덧붙여서, 본 발명의 일 실시예에 따른 객체 측정 서비스는 본 연구에서는 영상평면(image plane)과 레이저 평면(laser plane) 좌표계 사이의 상대위치값을 캘리브레이션 물체(calibration object)를 이용하여 바로 구하는 방법을 이용할 수도 있고, 이때의 캘리브레이션 물체는 격자 무늬의 물체일 수 있다.In addition, the object measurement service according to an exemplary embodiment of the present invention includes a method of directly obtaining a relative position value between an image plane and a laser plane coordinate system using a calibration object Alternatively, the calibration object at this time may be a lattice patterned object.

이하, 상술한 구성을 가지는 보정체를 이용한 3D 스캐닝 객체 측정 서비스는 도 5 및 도 6과 같은 스마트 단말부터 사람이나 물체를 스캔하는 시스템이라면 어디든지 이용될 수 있다.Hereinafter, the 3D scanning object measurement service using the correction object having the above-described configuration can be used in any system for scanning a person or an object from a smart terminal as shown in FIGS. 5 and 6. FIG.

이와 같은 도 2 내지 도 6의 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The method of providing the 3D scanning object measurement service using the correction objects of FIGS. 2 to 6 is the same as the description of the method of providing the 3D scanning object measurement service using the correction object as described above with reference to FIG. 1 The description will be omitted because it can be easily deduced from the description.

도 7은 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법을 설명하기 위한 동작 흐름도이다. 이하, 도 7을 통해 각 구성들 상호간에 데이터가 송수신되는 과정의 일 예를 설명할 것이나, 이와 같은 실시예로 본원이 한정 해석되는 것은 아니며, 앞서 설명한 다양한 실시예들에 따라 도 7에 도시된 데이터가 송수신되는 과정이 변경될 수 있음은 기술분야에 속하는 당업자에게 자명하다.7 is a flowchart illustrating a method of providing a 3D scanning object measurement service using a correction object according to an exemplary embodiment of the present invention. Hereinafter, an example of a process in which data is transmitted and received between the respective components will be described with reference to FIG. 7. However, the present invention is not limited to such an embodiment, It is apparent to those skilled in the art that the process of transmitting and receiving data can be changed.

도 7을 참조하면, 사용자 단말은, 3D 스캐너와 연동하여 연결하고(S7100), 연결된 3D 스캐너의 베이스면 상에 위치한 보정체의 스펙을 입력 및 저장할 수 있다(S7200).Referring to FIG. 7, the user terminal may interlock with the 3D scanner (S7100), and may input and store the specification of the correction object located on the base surface of the connected 3D scanner (S7200).

또한, 사용자 단말은, 보정체 상에 위치하고 3D 스캔이 실시될 피사체를, 3D 스캔을 실시하고(S7300), 3D 스캔의 결과로 3D 모델을 생성하고, 생성된 3D 모델의 오차를 제거하기 위하여 보정체의 스펙을 이용하여 피사체를 이루는 좌표를 재조정할 수 있다(S7400).In addition, the user terminal performs a 3D scan on a subject positioned on the correction object and to perform a 3D scan (S7300), generates a 3D model as a result of the 3D scan, Coordinates of the subject can be readjusted using the spec of the congestion (S7400).

마지막으로, 사용자 단말은, 재조정된 좌표를 이용하여 3D 모델을 보정한다(S7500).Finally, the user terminal corrects the 3D model using the re-adjusted coordinates (S7500).

상술한 단계들(S7100~S7500)간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들(S7100~S7500)간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.The order between the above-described steps S7100 to S7500 is merely an example, but is not limited thereto. That is, the order between the above-described steps S7100 to S7500 may be mutually varied, and some of the steps may be executed or deleted at the same time.

이와 같은 도 7의 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 6을 통해 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The method of providing the 3D scanning object measurement service using the correction object of FIG. 7 is the same as the description of the method of providing the 3D scanning object measurement service using the correction object described above with reference to FIGS. 1 to 6 The description will be omitted because it can be easily deduced from the description.

알고리즘은 정리하면 다음과 같다. 베이스면 위에 이미 치수를 알고있는 보정체 (예를 들어 넓이 w, 길이 l, 두깨 t 인 직육면체)를 올려놓고 스캔하고자하는 물체 (피사체)를 그 위에 올려 놓는다. 보정체의 넓이와 길이는 피사체의 그것보다 약간 더 크도록 한다. 3D 스캔을 실시하여 베이스면, 보정체, 피사체가 함께있는 3D 모델을 생성한다.The algorithm is summarized as follows. Place an object (subject) to be scanned on the base surface with the corrector already known in dimensions (for example, a rectangular parallelepiped with width w, length l, and thickness t). Make sure the width and length of the corrector is slightly larger than that of the subject. A 3D scan is performed to create a 3D model with a base surface, a correction object, and a subject together.

3D 모델에서 베이스 면을 인식하고 그 면에 수직인 방향을 z 방향으로 정의하고 그 면의 z 좌표를 0 으로 모든 점들의 좌표를 새로 계산한다. 베이스 면을 제거해 보정체위에 피사체가 놓여진 모양을 분리해낸다. 보정체의 좌, 우, 앞, 뒤, 윗 면을 인식한다. 3D 모델 상의 베이스 면으로부터 보정체 윗면까지의 측정된 높이를 tm 이라한다. 보정체의 윗면을 기준으로 보정체와 물체를 분리한다.In the 3D model, the base plane is recognized, the direction perpendicular to the plane is defined as the z direction, and the z coordinate of the plane is set to zero to newly calculate the coordinates of all the points. Remove the base surface to isolate the subject in the corrected position. Recognize the left, right, front, rear, and top sides of the corrector. The measured height from the base surface on the 3D model to the top of the fixture is called tm. Separate the fixture and the object from the top of the fixture.

보정체의 좌, 우, 앞, 뒤 각각 면의 z 좌표를 무시하여 각각 면에 해당하는 x, y 평면 상의 직선의 방정식을 구한다. 물체를 이루는 모든 점 p에 대하여 다음과 같이 x, y, z 좌표를 새로 계산한다. 앞면과 뒷면에 해당하는 직선들이 정의하는 방향으로 p를 지나는 가상의 직선을 그어 그것이 왼쪽의 직선과 만나는 점을 구하여 L 이라하고 오른쪽의 직선과 만나는 점을 구하여 R 이라한다. p와 L 사이의 거리를 pL 이라고 하고 R과 L 사이의 거리를 RL 이라고한다. p가 L 보다 왼쪽에 있으면 pL 의 부호는 음수로 한다. 왼쪽면과 오른쪽 면에 해당하는 직선들이 정의하는 방향으로 p를 지나는 가상의 직선을 그어 그것이 뒤쪽의 직선과 만나는 점을 구하여 B 라하고 앞쪽의 직선과 만나는 점을 구하여 F 라한다. p와 B 사이의 거리를 pB 라 하고 F 와 B 사이의 거리를 FB 라한다. p가 B 보다 뒤에 있으면 pB 의 부호는 음수로 한다.Ignores the z coordinates of the left, right, front, and back sides of the corrector, and finds the equation of the straight line on the x, y plane corresponding to each plane. Compute the x, y and z coordinates for all points p of the object as follows: Draw a hypothetical straight line passing through p in the direction defined by the straight lines corresponding to the front and back sides, and obtain the point at which it meets the straight line on the left side. Let L be the point that meets the straight line on the right side. The distance between p and L is called pL and the distance between R and L is called RL. If p is to the left of L, the sign of pL is negative. Draw a hypothetical straight line passing through p in the direction defined by the straight lines corresponding to the left and right sides. Find the point at which it meets the straight line at the back, Let the distance between p and B be pB and the distance between F and B be FB. If p is after B, the sign of pB is negative.

점 p(x, y, z) 의 새로운 좌표 x', y', z' 를 다음과 같이 계산한다.The new coordinates x ', y', z 'of the point p (x, y, z) are calculated as follows.

x' = w * pL / RLx '= w * pL / RL

y' = l * pB / FBy '= l * pB / FB

z' = ( z - tm ) * t / tmz '= (z - tm) * t / tm

도 7을 통해 설명된 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The method of providing a 3D scanning object measurement service using a correction object according to an embodiment described with reference to FIG. 7 may be performed in the form of a recording medium including an application executed by a computer or a command executable by a computer such as a program module Can be implemented. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer readable medium may include both computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

전술한 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.The method of providing a 3D scanning object measurement service using a correction object according to an embodiment of the present invention may include an application installed in a terminal (which may include a program included in a platform or an operating system basically installed in the terminal) And may be executed by an application (that is, a program) directly installed on a master terminal by a user via an application providing server such as an application store server, an application, or a web server associated with the service. In this regard, the 3D scanning object measurement service providing method using the correction object according to an embodiment of the present invention is basically installed in a terminal or implemented as an application (i.e., a program) directly installed by a user, And can be recorded on a computer-readable recording medium.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

Claims (5)

사용자 단말에서 실행되는 객체 측정 서비스 제공 방법에 있어서,
3D 스캐너와 연동하여 연결하는 단계;
상기 3D 스캐너의 베이스면 상에 위치한 보정체의 스펙을 입력 및 저장하는 단계;
상기 보정체 상에 위치하고 3D 스캔이 실시될 피사체를, 상기 3D 스캐너의 베이스면 및 보정체와 함께 3D 스캔을 실시하는 단계;
상기 3D 스캔의 결과로 3D 모델을 생성하고, 상기 생성된 3D 모델의 오차를 제거하기 위하여 상기 보정체의 스펙을 이용하여 상기 피사체를 이루는 좌표를 재조정하는 단계; 및
상기 재조정된 좌표를 이용하여 상기 3D 모델을 보정하는 단계;
를 포함하며,
상기 3D 스캔을 실시하는 단계는, 상기 3D 스캐너의 베이스면 위에 적어도 하나의 이미 치수를 알고있는 상기 보정체를 놓고 그 위에 피사체를 올려놓고 함께 스캔하는 것인
보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법.
A method of providing an object measurement service executed in a user terminal,
Linking with a 3D scanner;
Inputting and storing a specification of a correction object located on a base surface of the 3D scanner;
Performing a 3D scan on a subject positioned on the correction object and to be subjected to a 3D scan together with a base surface and a correction object of the 3D scanner;
Creating a 3D model as a result of the 3D scan, and re-adjusting the coordinates of the subject using the specification of the correction object to eliminate the error of the 3D model; And
Correcting the 3D model using the re-adjusted coordinates;
/ RTI >
Wherein the step of performing the 3D scanning includes placing the object having at least one known dimension on the base surface of the 3D scanner, placing the object on the object,
A method for providing a 3D scanning object measurement service using a correction object.
제 1 항에 있어서,
상기 피사체를 이루는 좌표를 재조정하는 단계는,
상기 3D 스캐너의 베이스면에 수직인 방향을 Z 축으로 정의하고, 상기 3D 스캐너의 베이스면을 Z 축 0으로 하고, 상기 보정체의 높이를 이용하여 상기 피사체를 이루는 모든 점들의 Z 축 방향의 좌표를 재조정하는 단계를 포함하는 것인, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법.
The method according to claim 1,
Wherein the step of rearranging coordinates constituting the subject comprises:
A direction perpendicular to the base surface of the 3D scanner is defined as a Z axis, a base surface of the 3D scanner is defined as a Z axis, and coordinates of all points forming the subject in the Z axis direction Wherein the step of reconstructing the 3D scanning object measurement service comprises the step of reconstructing the 3D scanning object measurement service using the correction object.
제 1 항에 있어서,
상기 스펙은, 길이, 넓이, 높이, 너비, 두께, 지름 중 적어도 하나를 포함하는 상기 보정체를 측정한 결과인 것인, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법.
The method according to claim 1,
Wherein the specification is a result of measuring the calibration object including at least one of a length, a width, a height, a width, a thickness, and a diameter of the 3D scanning object.
제 1 항에 있어서,
상기 보정체의 스펙을 이용하여 상기 피사체를 이루는 좌표를 재조정하는 단계는,
3D 모델에서 베이스 면을 인식하고 그 면에 수직인 방향을 z 방향으로 정의하고 이것에 맞추어 3D 모델을 이루는 점들의 좌표를 새로 계산하는 단계;
베이스 면을 제거해 보정체위에 피사체가 놓여진 모양을 분리해내는 단계;
보정체의 좌, 우, 앞, 뒤, 윗 면을 인식하는 단계;
보정체의 윗면을 기준으로 보정체와 피사체를 분리하는 단계;
상기 피사체를 이루는 모든 점에 대하여 XYZ 좌표를 재계산하는 단계;
를 수행함으로써 실행되는 것인, 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법.
The method according to claim 1,
Wherein the step of rearranging the coordinates of the object using the specification of the correction object comprises the steps of:
A step of recognizing the base surface in the 3D model, defining a direction perpendicular to the plane in the z direction, and calculating coordinates of the points forming the 3D model in accordance with the direction;
Removing the base surface and separating the object placed on the corrected position;
Recognizing the left, right, front, rear, and upper sides of the correction body;
Separating the correction object and the object based on the upper surface of the correction object;
Recalculating XYZ coordinates for all the points constituting the subject;
Wherein the 3D scanning object measurement service is executed by executing a calibration object.
제 4 항에 있어서,
상기 보정체는 길이(Lengh), 너비(Width), 높이(Thickness)가 각각 l, w, t인 직육면체이고, 생성된 3D 모델 상의 베이스 면으로부터 보정체 윗면까지의 측정된 높이(보정체의 3D 모델상의 두께)를 tm 이라할때,
상기 피사체를 이루는 모든 점에 대하여 XYZ 좌표를 재계산하는 단계는,
보정체의 좌, 우, 앞, 뒤 각각 면의 z 좌표를 무시하여 각각 면에 해당하는 x, y 평면 상의 직선의 방정식들을 구하는 단계;
앞면과 뒷면에 해당하는 직선들이 정의하는 방향으로 p를 지나는 가상의 직선을 그어 그것이 왼쪽의 직선과 만나는 점을 구하여 L 이라 설정하고 오른쪽의 직선과 만나는 점을 구하여 R 이라 설정하고, p와 L 사이의 거리를 pL 이라고 하고 R과 L 사이의 거리를 RL 이라고하며. p가 L 보다 왼쪽에 있으면 pL 의 부호는 음수로 설정 하는 단계;
왼쪽면과 오른쪽 면에 해당하는 직선들이 정의하는 방향으로 p를 지나는 가상의 직선을 그어 그것이 뒤쪽의 직선과 만나는 점을 구하여 B 라설정하고 앞쪽의 직선과 만나는 점을 구하여 F 라 설정하고, p와 B 사이의 거리를 pB 라 하고 F 와 B 사이의 거리를 FB 라하며. p가 B 보다 뒤에 있으면 pB 의 부호는 음수로 설정하는 단계;
피사체를 이루는 각각의 점 p(x, y, z) 의 새로운 좌표 x', y', z' 를 다음과 같이 계산하는 보정체를 이용한 3D 스캐닝 객체 측정 서비스 제공 방법
x' = w * pL / RL
y' = l * pB / FB
z' = ( z - tm ) * t / tm
5. The method of claim 4,
The corrector is a rectangular parallelepiped having a length (Lengh), a width (Width), and a height (Thickness) of 1, w and t, respectively. The measured height from the base surface on the generated 3D model to the upper surface Thickness on the model) is tm,
The step of recalculating the XYZ coordinates with respect to all the points constituting the subject includes:
Calculating the equations of a straight line on the x, y plane corresponding to each plane by ignoring the z coordinate of the left, right, front, and back sides of the correction body;
Draw a hypothetical straight line passing through p in the direction defined by the straight lines corresponding to the front side and the back side. Find a point where it meets the straight line on the left side, set it as L, The distance between R and L is called RL and the distance between R and L is called RL. if p is to the left of L, setting the sign of pL to a negative number;
Draw a hypothetical straight line passing through p in the direction defined by the straight lines corresponding to the left and right sides. Find the point at which it meets the straight line at the back and set it to B. Find the point that meets the front line and set it to F, Let B be the distance between B and PB, and the distance between F and B be FB. setting pB to a negative sign if p is after B;
A method of providing a 3D scanning object measurement service using a correction object which calculates new coordinates x ', y', z 'of each point p (x, y, z) constituting a subject as follows
x '= w * pL / RL
y '= l * pB / FB
z '= (z - tm) * t / tm
KR1020170133676A 2017-10-14 2017-10-14 Method for 3d-scanning a subject using a calibration object KR101923373B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170133676A KR101923373B1 (en) 2017-10-14 2017-10-14 Method for 3d-scanning a subject using a calibration object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170133676A KR101923373B1 (en) 2017-10-14 2017-10-14 Method for 3d-scanning a subject using a calibration object

Publications (1)

Publication Number Publication Date
KR101923373B1 true KR101923373B1 (en) 2018-11-29

Family

ID=64567054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170133676A KR101923373B1 (en) 2017-10-14 2017-10-14 Method for 3d-scanning a subject using a calibration object

Country Status (1)

Country Link
KR (1) KR101923373B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110966932A (en) * 2019-11-22 2020-04-07 杭州思看科技有限公司 Structured light three-dimensional scanning method based on known mark points
KR20220013601A (en) * 2020-07-27 2022-02-04 라온피플 주식회사 Method for correcting error of three dimension coordinate and apparatus for performing the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682947B2 (en) * 2006-07-27 2011-05-11 パルステック工業株式会社 Three-dimensional shape measuring method, three-dimensional shape measuring apparatus and calibration object

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682947B2 (en) * 2006-07-27 2011-05-11 パルステック工業株式会社 Three-dimensional shape measuring method, three-dimensional shape measuring apparatus and calibration object

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110966932A (en) * 2019-11-22 2020-04-07 杭州思看科技有限公司 Structured light three-dimensional scanning method based on known mark points
CN110966932B (en) * 2019-11-22 2021-07-06 杭州思看科技有限公司 Structured light three-dimensional scanning method based on known mark points
KR20220013601A (en) * 2020-07-27 2022-02-04 라온피플 주식회사 Method for correcting error of three dimension coordinate and apparatus for performing the same
KR102486249B1 (en) 2020-07-27 2023-01-10 라온피플 주식회사 Method for correcting error of three dimension coordinate and apparatus for performing the same

Similar Documents

Publication Publication Date Title
JP6722323B2 (en) System and method for imaging device modeling and calibration
US9472021B2 (en) Method and system for three-dimensionally reconstructing non-rigid body based on multi-depth-map
EP2751521B1 (en) Method and system for alignment of a pattern on a spatial coded slide image
US11290704B2 (en) Three dimensional scanning system and framework
US9886759B2 (en) Method and system for three-dimensional data acquisition
CN111637850B (en) Self-splicing surface point cloud measuring method without active visual marker
WO2019160032A1 (en) Three-dimensional measuring system and three-dimensional measuring method
US9275431B2 (en) Method and system for calibrating laser measuring apparatus
WO2012053521A1 (en) Optical information processing device, optical information processing method, optical information processing system, and optical information processing program
WO2011010438A1 (en) Parallax detection apparatus, ranging apparatus and parallax detection method
US20130083990A1 (en) Using Videogrammetry to Fabricate Parts
CN110517209B (en) Data processing method, device, system and computer readable storage medium
CN110940312A (en) Monocular camera ranging method and system combined with laser equipment
KR101923373B1 (en) Method for 3d-scanning a subject using a calibration object
CN110738731A (en) 3D reconstruction method and system for binocular vision
US9514528B2 (en) Image processing apparatus, distortion-corrected map creation apparatus, and semiconductor measurement apparatus
JP2013036831A (en) Calibration apparatus and distortion error calculation method
US11348271B2 (en) Image processing device and three-dimensional measuring system
US20240087167A1 (en) Compensation of three-dimensional measuring instrument having an autofocus camera
CN111432117A (en) Image rectification method, device and electronic system
EP4242609A1 (en) Temperature measurement method, apparatus, and system, storage medium, and program product
Tagoe et al. Determination of the Interior Orientation Parameters of a Non-metric Digital Camera for Terrestrial Photogrammetric Applications
EP3988895B1 (en) Compensation of three-dimensional measuring instrument having an autofocus camera
US11143499B2 (en) Three-dimensional information generating device and method capable of self-calibration
KR101424118B1 (en) Method and Apparatus for 3D Scanning

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant