KR102616306B1 - Method for controlling 3d printer and system therefor - Google Patents

Method for controlling 3d printer and system therefor Download PDF

Info

Publication number
KR102616306B1
KR102616306B1 KR1020230091599A KR20230091599A KR102616306B1 KR 102616306 B1 KR102616306 B1 KR 102616306B1 KR 1020230091599 A KR1020230091599 A KR 1020230091599A KR 20230091599 A KR20230091599 A KR 20230091599A KR 102616306 B1 KR102616306 B1 KR 102616306B1
Authority
KR
South Korea
Prior art keywords
layer
current layer
depth map
printer
output error
Prior art date
Application number
KR1020230091599A
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 주식회사 레이아웃
Application granted granted Critical
Publication of KR102616306B1 publication Critical patent/KR102616306B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • B29C64/393Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/10Processes of additive manufacturing
    • B29C64/106Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/10Processes of additive manufacturing
    • B29C64/106Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material
    • B29C64/118Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material using filamentary material being melted, e.g. fused deposition modelling [FDM]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y10/00Processes of additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • B33Y50/02Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C37/00Component parts, details, accessories or auxiliary operations, not covered by group B29C33/00 or B29C35/00
    • B29C2037/90Measuring, controlling or regulating
    • B29C2037/906Measuring, controlling or regulating using visualisation means or linked accessories, e.g. screens, printers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C37/00Component parts, details, accessories or auxiliary operations, not covered by group B29C33/00 or B29C35/00
    • B29C2037/94Safety devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Mechanical Engineering (AREA)
  • Optics & Photonics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Molecular Biology (AREA)
  • Biochemistry (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Immunology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Analytical Chemistry (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)

Abstract

3D 프린터 제어 방법 및 그 시스템이 제공된다. 몇몇 실시예들에 따른 3D 프린터 제어 방법은, 제품에 대한 레이어별 설계 데이터를 획득하는 단계, 적층 방식의 3D 프린터에서 출력되는 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 단계, 레이어별 설계 데이터에서 얻어진 현재 레이어의 설계 데이터와 촬영 이미지를 비교함으로써, 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계 및 현재 레이어에 출력 오류가 존재한다는 검사의 결과에 기초하여 3D 프린터의 출력을 정지시키는 단계를 포함할 수 있다. 이러한 방법에 따르면, 불량품 판정 지연으로 인해 발생되는 불필요한 재료 소진과 공정 지연 등의 문제가 최소화될 수 있다.A 3D printer control method and system are provided. A 3D printer control method according to some embodiments includes obtaining design data for each layer of a product, receiving a captured image of the current layer of a product output from a laminated 3D printer in real time, and designing each layer. Comparing the design data of the current layer obtained from the data and the captured image, performing a check for an output error in the current layer, and stopping the output of the 3D printer based on the result of the check that an output error exists in the current layer. may include. According to this method, problems such as unnecessary material consumption and process delays caused by delays in determining defective products can be minimized.

Description

3D 프린터 제어 방법 및 그 시스템{METHOD FOR CONTROLLING 3D PRINTER AND SYSTEM THEREFOR}3D printer control method and system {METHOD FOR CONTROLLING 3D PRINTER AND SYSTEM THEREFOR}

본 발명은 3D 프린터 제어 방법 및 그 시스템에 관한 것으로, 보다 상세하게는, 3D 프린터의 출력 공정을 실시간으로 모니터링하고 제어하는 방법 및 그 시스템에 관한 것이다.The present invention relates to a method and system for controlling a 3D printer, and more specifically, to a method and system for monitoring and controlling the output process of a 3D printer in real time.

적층 방식의 3D 프린터는 매우 얇은 레이어(layer)를 한층씩 쌓는 방식으로 제품을 출력하는 프린터를 의미한다. 이러한 3D 프린터에 기반한 제품 제조 공정은 제품을 설계하는 모델링 공정, 재료(e.g., 필라멘트, 레진 등)를 적층하여 제품을 만드는 출력(프린팅) 공정 및 출력된 제품을 건조, 연마 또는 염색하는 후처리 공정으로 나눌 수 있다.A stacked 3D printer refers to a printer that prints products by stacking very thin layers one by one. The product manufacturing process based on these 3D printers includes a modeling process to design the product, an output (printing) process to create a product by laminating materials (e.g., filament, resin, etc.), and a post-processing process to dry, polish, or dye the printed product. It can be divided into

한편, 3D 프린터를 이용하여 제품을 양산할 때에는 보통 완성된 제품에 대해서만 3D 스캐너 기반의 품질 평가가 이루어지고 있다. 즉, 출력 공정에서 오류가 발생한 경우에도 제품이 완성된 이후에 불량품 판정이 이루어지고 있으며, 이 경우 불량품 판정 지연으로 인해 불필요한 재료 소진, 공정 지연 등과 같은 다양한 비효율성 문제들이 발생된다. 따라서, 출력 공정 중에 실시간으로 출력 오류를 검출할 수 있는 기술이 요구된다.Meanwhile, when mass producing products using a 3D printer, quality evaluation based on a 3D scanner is usually performed only on the finished product. In other words, even when an error occurs in the output process, a defective product is determined after the product is completed. In this case, the delay in determining a defective product causes various inefficiency problems such as unnecessary material consumption and process delays. Therefore, technology that can detect output errors in real time during the printing process is required.

한국공개특허 제10-2023-0038839호 (2023.03.21. 공개)Korean Patent Publication No. 10-2023-0038839 (published on March 21, 2023)

본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 3D 프린터의 출력 공정 중에 실시간으로 출력 오류를 검출할 수 있는 방법 및 그 시스템을 제공하는 것이다.The technical problem to be solved through some embodiments of the present disclosure is to provide a method and system for detecting output errors in real time during the output process of a 3D printer.

본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 3D 프린터의 다양한 출력 오류들을 정확하게 검출할 수 있는 방법 및 그 시스템을 제공하는 것이다.Another technical problem to be solved through some embodiments of the present disclosure is to provide a method and system that can accurately detect various output errors of a 3D printer.

본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the description below.

상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 방법은, 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서, 제품에 대한 레이어별 설계 데이터를 획득하는 단계, 적층 방식의 3D 프린터에서 출력되는 상기 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 단계, 상기 레이어별 설계 데이터에서 얻어진 상기 현재 레이어의 설계 데이터와 상기 촬영 이미지를 비교함으로써, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계 및 상기 현재 레이어에 출력 오류가 존재한다는 상기 검사의 결과에 기초하여 상기 3D 프린터의 출력을 정지시키는 단계를 포함할 수 있다.In order to solve the above technical problem, a 3D printer control method according to some embodiments of the present disclosure is a method performed by at least one computing device, comprising the steps of acquiring design data for each layer of the product, Receiving in real time a captured image of the current layer of the product output from a 3D printer, comparing the design data of the current layer obtained from the design data for each layer with the captured image, thereby detecting an output error of the current layer. It may include performing an inspection and stopping output of the 3D printer based on a result of the inspection indicating that an output error exists in the current layer.

몇몇 실시예들에서, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계는, 상기 현재 레이어의 설계 데이터와 상기 현재 레이어의 깊이맵을 더 비교하는 단계를 포함할 수 있다.In some embodiments, performing the checking for an output error of the current layer may include further comparing design data of the current layer and a depth map of the current layer.

몇몇 실시예들에서, 상기 촬영 이미지는 제1 시점에 수신된 제1 촬영 이미지와 제2 시점에 수신된 제2 촬영 이미지를 포함하고, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계는, 상기 제1 촬영 이미지와 상기 제2 촬영 이미지 각각을 상기 현재 레이어의 설계 데이터와 비교하는 단계를 포함하며, 상기 제1 시점과 상기 제2 시점 사이의 간격은 상기 현재 레이어의 복잡도에 기초하여 결정될 수 있다.In some embodiments, the captured image includes a first captured image received at a first time point and a second captured image received at a second time point, and performing a check for an output error of the current layer includes: Comparing each of the first captured image and the second captured image with design data of the current layer, wherein the interval between the first viewpoint and the second viewpoint may be determined based on the complexity of the current layer. there is.

몇몇 실시예들에서, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계는, 상기 현재 레이어의 복잡도를 산출하는 단계, 상기 복잡도를 기초로 상기 현재 레이어에 적용될 허용 오차를 조정하는 단계 및 상기 조정된 허용 오차를 기준으로 하여, 상기 출력 오류에 대한 검사를 수행하는 단계를 포함할 수 있다.In some embodiments, performing a check for an output error of the current layer includes calculating a complexity of the current layer, adjusting a tolerance to be applied to the current layer based on the complexity, and adjusting the tolerance to be applied to the current layer. It may include performing a check for the output error based on the established tolerance.

몇몇 실시예들에서, 상기 레이어별 설계 데이터에 기초하여 상기 현재 레이어와 직전 레이어의 차이를 계산하는 단계 및 상기 계산된 차이가 기준치 이상이라는 판단에 기초하여 레이어 실종(missing)에 관한 출력 오류 검사를 수행하는 단계를 더 포함할 수 있다.In some embodiments, calculating a difference between the current layer and the previous layer based on the design data for each layer and checking output errors regarding missing layers based on a determination that the calculated difference is greater than or equal to a reference value. Additional steps may be included.

몇몇 실시예들에서, 상기 레이어별 설계 데이터에 기초하여 상기 현재 레이어와 직전 레이어의 차이를 계산하는 단계 및 상기 계산된 차이가 기준치 미만이라는 판단에 기초하여 레이어 쉬프트(shift)에 관한 출력 오류 검사를 수행하는 단계를 더 포함할 수 있다.In some embodiments, calculating a difference between the current layer and the previous layer based on the design data for each layer and checking an output error regarding a layer shift based on a determination that the calculated difference is less than a reference value. Additional steps may be included.

상술한 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 시스템은, 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은 제품에 대한 레이어별 설계 데이터를 획득하는 동작, 적층 방식의 3D 프린터에서 출력되는 상기 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 동작, 상기 레이어별 설계 데이터에서 얻어진 상기 현재 레이어의 설계 데이터와 상기 촬영 이미지를 비교함으로써, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 동작 및 상기 현재 레이어에 출력 오류가 존재한다는 상기 검사의 결과에 기초하여 상기 3D 프린터의 출력을 정지시키는 동작을 위한 인스트럭션들을 포함할 수 있다.In order to solve the above-described technical problem, a 3D printer control system according to some embodiments of the present disclosure includes one or more processors and a memory that stores a computer program executed by the one or more processors, and the computer program includes An operation of acquiring design data for each layer of a product, an operation of receiving a captured image of the current layer of the product output from a lamination type 3D printer in real time, design data of the current layer obtained from the design data of each layer, and Instructions for performing a check for an output error in the current layer by comparing the captured image and an operation for stopping the output of the 3D printer based on the result of the check that an output error exists in the current layer. It can be included.

상술한 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 제품에 대한 레이어별 설계 데이터를 획득하는 단계, 적층 방식의 3D 프린터에서 출력되는 상기 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 단계, 상기 레이어별 설계 데이터에서 얻어진 상기 현재 레이어의 설계 데이터와 상기 촬영 이미지를 비교함으로써, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계 및 상기 현재 레이어에 출력 오류가 존재한다는 상기 검사의 결과에 기초하여 상기 3D 프린터의 출력을 정지시키는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.In order to solve the above-mentioned technical problem, a computer program according to some embodiments of the present disclosure is combined with a computing device to acquire design data for each layer for a product, the product output from a 3D printer in a layered manner. receiving a captured image for the current layer in real time, performing a check for output errors of the current layer by comparing the captured image with design data of the current layer obtained from the design data for each layer, and It may be stored in a computer-readable recording medium to execute the step of stopping the output of the 3D printer based on the result of the inspection that an output error exists in the current layer.

본 개시의 몇몇 실시예들에 따르면, 현재 레이어의 촬영 이미지와 설계 데이터를 비교하여 실시간으로 3D 프린터의 출력 오류가 검출될 수 있다. 그리고, 출력 오류가 검출됨에 응답하여, 3D 프린터의 출력(동작)이 즉각적으로 정지될 수 있다. 이러한 경우, 불량품 판정 지연으로 인해 발생되는 불필요한 재료 소진, 공정 지연 등의 문제가 최소화될 수 있다.According to some embodiments of the present disclosure, output errors of the 3D printer may be detected in real time by comparing the captured image of the current layer and design data. And, in response to detecting an output error, the output (operation) of the 3D printer may be immediately stopped. In this case, problems such as unnecessary material consumption and process delays caused by delays in determining defective products can be minimized.

또한, 레이어의 복잡도에 따라 차등적인 방식으로 출력 오류 검사가 수행될 수 있다. 이러한 경우, 복잡한 레이어에서 보다 집중적으로 출력 오류 검사가 수행될 수 있으며, 그 결과 출력 오류 검사의 수행 효율성과 정확도가 함께 향상될 수 있다.Additionally, output error checking may be performed in a differential manner depending on the complexity of the layer. In this case, output error checking can be performed more intensively in complex layers, and as a result, both performance efficiency and accuracy of output error checking can be improved.

또한, 현재 레이어와 직전 레이어의 차이를 고려하여 레이어 쉬프트(shift) 또는 레이어 실종(missing)에 관한 출력 오류 검사가 선택적으로 수행될 수 있다. 이러한 경우, 모든 레이어들에서 두 출력 오류들에 대한 검사를 수행할 필요가 없게 되므로, 출력 오류 검사의 수행 효율성이 보다 향상될 수 있다. 뿐만 아니라, 다양한 출력 오류들에 대한 검사를 수행함으로써, 제품에 존재하는 출력 오류가 보다 빠짐없이 검출될 수도 있다.Additionally, an output error check regarding layer shift or layer missing may be selectively performed by considering the difference between the current layer and the previous layer. In this case, there is no need to check for two output errors in all layers, so the performance efficiency of output error checking can be further improved. In addition, by performing inspection for various output errors, all output errors present in the product can be detected.

또한, 깊이맵(depth map) 예측과 연관된 다수의 태스크들을 이용하여 딥러닝 모델을 학습시킴으로써, 딥러닝 모델의 깊이맵 예측 성능이 크게 향상될 수 있다. 또한, 이러한 딥러닝 모델을 이용함으로써, 깊이 카메라 모듈이 없는 경우에도 정확하고도 정교한 깊이맵이 획득될 수 있다. Additionally, by training a deep learning model using a number of tasks related to depth map prediction, the depth map prediction performance of the deep learning model can be greatly improved. Additionally, by using this deep learning model, an accurate and sophisticated depth map can be obtained even when there is no depth camera module.

본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects according to the technical idea of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below.

도 1 및 도 2는 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 시스템을 개략적으로 설명하기 위한 예시적인 구성도이다.
도 3은 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다.
도 4는 본 개시의 몇몇 실시예들에 따른 깊이맵 기반 출력 오류 검사 방법을 설명하기 위한 예시적인 도면이다.
도 5 및 도 6은 본 개시의 몇몇 실시예들에서 참조될 수 있는 제어 시스템의 모니터링 화면을 예시한다.
도 7은 본 개시의 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다.
도 8은 본 개시의 몇몇 실시예들에 따른 레이어 복잡도 산출 방식을 설명하기 위한 예시적인 도면이다.
도 9는 본 개시의 다른 몇몇 실시예들에 따른 레이어 복잡도 산출 방식을 설명하기 위한 예시적인 도면이다.
도 10은 본 개시의 또 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다.
도 11 및 도 12는 도 10에 도시된 레이어 차이를 고려한 출력 오류 검사 단계의 세부 과정을 부연 설명하기 위한 예시적인 도면이다.
도 13 및 도 14는 본 개시의 몇몇 실시예들에 따른 딥러닝 모델(즉, 깊이맵 생성을 위한 딥러닝 모델)의 구조와 학습 방법을 설명하기 위한 예시적인 도면이다.
도 15 및 도 16은 본 개시의 몇몇 실시예들에 따른 딥러닝 모델의 학습을 위한 데이터 증강(data augmentation) 방법을 설명하기 위한 예시적인 도면이다.
도 17은 본 개시의 몇몇 실시예들에 따른 제어 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
1 and 2 are exemplary configuration diagrams for schematically explaining a 3D printer control system according to some embodiments of the present disclosure.
Figure 3 is an example flowchart showing a 3D printer control method according to some embodiments of the present disclosure.
FIG. 4 is an exemplary diagram illustrating a depth map-based output error checking method according to some embodiments of the present disclosure.
5 and 6 illustrate monitoring screens of a control system that may be referenced in some embodiments of the present disclosure.
Figure 7 is an example flowchart showing a 3D printer control method according to some other embodiments of the present disclosure.
FIG. 8 is an exemplary diagram for explaining a layer complexity calculation method according to some embodiments of the present disclosure.
FIG. 9 is an exemplary diagram for explaining a layer complexity calculation method according to some other embodiments of the present disclosure.
Figure 10 is an example flowchart showing a 3D printer control method according to some other embodiments of the present disclosure.
FIGS. 11 and 12 are exemplary diagrams for further explaining the detailed process of the output error checking step considering the layer difference shown in FIG. 10.
13 and 14 are exemplary diagrams for explaining the structure and learning method of a deep learning model (i.e., a deep learning model for generating a depth map) according to some embodiments of the present disclosure.
15 and 16 are exemplary diagrams for explaining a data augmentation method for learning a deep learning model according to some embodiments of the present disclosure.
17 illustrates an example computing device that can implement a control system according to some embodiments of the present disclosure.

이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the attached drawings. The advantages and features of the present disclosure and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the technical idea of the present disclosure is not limited to the following embodiments and may be implemented in various different forms. The following examples are merely intended to complete the technical idea of the present disclosure and to be used in the technical field to which the present disclosure belongs. It is provided to fully inform those skilled in the art of the scope of the present disclosure, and the technical idea of the present disclosure is only defined by the scope of the claims.

각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.When adding reference numerals to components in each drawing, it should be noted that identical components are given the same reference numerals as much as possible even if they are shown in different drawings. Additionally, in describing the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present disclosure, the detailed description will be omitted.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which this disclosure pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined. The terminology used herein is for the purpose of describing embodiments and is not intended to limit the disclosure. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context.

또한, 본 개시의 구성요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성요소 사이에 또 다른 구성요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.Additionally, in describing the components of the present disclosure, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the component is not limited by the term. When a component is described as being “connected,” “coupled,” or “connected” to another component, that component may be directly connected or connected to that other component, but there is another component between each component. It will be understood that elements may be “connected,” “combined,” or “connected.”

본 개시에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used in this disclosure, “comprises” and/or “comprising” refers to a referenced component, step, operation and/or element that includes one or more other components, steps, operations and/or elements. Does not exclude presence or addition.

이하, 본 개시의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the attached drawings.

도 1은 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 시스템을 개략적으로 설명하기 위한 예시적인 구성도이다.1 is an exemplary configuration diagram schematically illustrating a 3D printer control system according to some embodiments of the present disclosure.

도 1에 도시된 바와 같이, 실시예들에 따른 3D 프린터 제어 시스템은 3D 프린터(11)에 대한 적절한 제어를 통해 원하는 제품(14)을 효율적으로 제조할 수 있는 시스템이다. 3D 프린터 제어 시스템은 제어 시스템(10), 3D 프린터(11) 및 카메라 모듈(12)을 포함하여 구성될 수 있다. 다만, 경우에 따라서는, 제어 시스템(10)과 카메라 모듈(12)이 ‘3D 프린터 제어 시스템’으로 칭해질 수도 있고, 제어 시스템(10)이 단독으로 ‘3D 프린터 제어 시스템’으로 칭해질 수도 있다.As shown in FIG. 1, the 3D printer control system according to embodiments is a system that can efficiently manufacture a desired product 14 through appropriate control of the 3D printer 11. The 3D printer control system may include a control system 10, a 3D printer 11, and a camera module 12. However, in some cases, the control system 10 and the camera module 12 may be called a '3D printer control system', and the control system 10 may be called a '3D printer control system' alone. .

제어 시스템(10)은 3D 프린터(11)에 대한 실시간 모니터링 및 제어를 수행하는 컴퓨팅 장치/시스템이다. 가령, 제어 시스템(10)은 카메라 모듈(12)로부터 3D 프린터(11)에서 출력되는 제품(14)에 대한 촬영 이미지(영상)를 실시간으로 수신하고 이러한 촬영 이미지들을 분석하여 3D 프린터(11)의 출력 오류(즉, 제품(14)에 존재하는 출력 오류)를 검출할 수 있다. 3D 프린터(11)는 적층 방식으로 제품(14)를 출력하므로, 제어 시스템(10)은 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하고 현재 레이어에 존재하는 출력 오류를 실시간으로 검출할 수 있다. 뿐만 아니라, 제어 시스템(10)은 출력 오류가 검출됨에 응답하여 즉각적으로 3D 프린터(11)의 출력(즉, 동작)을 중지시킬 수 있다. 그렇게 함으로써, 불필요한 재료 소진과 공정 지연 등의 문제가 최소화될 수 있다.The control system 10 is a computing device/system that performs real-time monitoring and control of the 3D printer 11. For example, the control system 10 receives captured images (videos) of the product 14 output from the 3D printer 11 in real time from the camera module 12 and analyzes these captured images to control the 3D printer 11. Output errors (i.e., output errors present in product 14) can be detected. Since the 3D printer 11 outputs the product 14 in a layered manner, the control system 10 can receive a captured image for the current layer in real time and detect output errors existing in the current layer in real time. In addition, the control system 10 may immediately stop output (i.e., operation) of the 3D printer 11 in response to detecting an output error. By doing so, problems such as unnecessary material exhaustion and process delays can be minimized.

제어 시스템(10)의 구체적인 모니터링 및 제어 방법에 대해서는 추후 도 3 이하의 도면들을 참조하여 상세하게 설명하도록 한다.The specific monitoring and control method of the control system 10 will be described in detail later with reference to the drawings of FIG. 3 and below.

상술한 제어 시스템(10)은 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 제어 시스템(10)의 모든 기능들이 하나의 컴퓨팅 장치에서 구현될 수도 있고, 제어 시스템(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 또는, 제어 시스템(10)의 특정 기능이 복수의 컴퓨팅 장치들에서 구현될 수도 있다.The above-described control system 10 may be implemented with at least one computing device. For example, all functions of control system 10 may be implemented in a single computing device, with a first function of control system 10 implemented in a first computing device and a second function implemented in a second computing device. It could be. Alternatively, certain functions of control system 10 may be implemented in multiple computing devices.

컴퓨팅 장치는 컴퓨팅(프로세싱) 기능을 구비한 모든 유형의 장치들을 포함할 수 있으며, 이러한 장치의 일 예시에 대해서는 도 17을 참고하도록 한다.Computing devices may include all types of devices with computing (processing) capabilities, and see FIG. 17 for an example of such a device.

참고로, 컴퓨팅 장치는 다양한 구성요소들(e.g. 메모리, 프로세서 등)이 상호작용하는 집합체이므로, 경우에 따라 ‘컴퓨팅 시스템’으로 명명될 수도 있다. 물론, 컴퓨팅 시스템이라는 용어는 복수의 컴퓨팅 장치들이 상호작용하는 집합체라는 개념도 포괄할 수 있다.For reference, a computing device is a collection of interacting various components (e.g. memory, processor, etc.), so in some cases, it may be called a ‘computing system’. Of course, the term computing system can also encompass the concept of a collection of interacting computing devices.

다음으로, 카메라 모듈(12)은 3D 프린터(11)에서 출력되는 제품(14)을 실시간으로 촬영하는 모듈이다. 예를 들어, 카메라 모듈(12)은 제품(14)의 위쪽에 배치(설치)되어 직하방으로 제품(14)을 구성하는 레이어들을 촬영할 수 있다. 도 1은 3D 프린터(11)의 상단에 1대의 카메라 모듈(12)이 설치된 경우를 예로서 도시하고 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 가령, 3D 프린터(11)의 내부에는 제품(14)의 레이어들을 측면에서 촬영하는 카메라 모듈(미도시), 직하방이 아닌 다른 각도로 제품(14)을 촬영하는 카메라 모듈(미도시) 등이 더 설치될 수도 있다. 또한, 경우에 따라서는, 제품(14)에 대한 깊이맵(depth map, 즉 깊이 이미지)을 다양한 각도에서 생성할 수 있는 깊이 카메라 모듈들(미도시)이 더 설치될 수도 있다.Next, the camera module 12 is a module that photographs the product 14 output from the 3D printer 11 in real time. For example, the camera module 12 may be placed (installed) above the product 14 and photograph the layers constituting the product 14 directly downward. Figure 1 shows an example in which one camera module 12 is installed on the top of the 3D printer 11, but the scope of the present disclosure is not limited thereto. For example, inside the 3D printer 11, there is a camera module (not shown) that photographs the layers of the product 14 from the side, a camera module (not shown) that photographs the product 14 from an angle other than directly below, etc. It may be installed. Additionally, in some cases, depth camera modules (not shown) that can generate depth maps (i.e., depth images) for the product 14 from various angles may be further installed.

카메라 모듈(12)은 촬영된 이미지(영상)를 실시간으로 제어 시스템(10)으로 송신할 수 있다. 그렇게 함으로써, 3D 프린터(11)의 출력 오류가 실시간으로 검출되고 제어될 수 있다.The camera module 12 can transmit captured images (videos) to the control system 10 in real time. By doing so, output errors of the 3D printer 11 can be detected and controlled in real time.

다음으로, 3D 프린터(11)는 3D 제품(14)에 대한 제조 능력을 구비한 프린팅 장비이다. 도시된 바와 같이, 3D 프린터(11)는 적층 방식으로 제품(14)을 제조하는 프린팅 장비일 수 있다. 예를 들어, 3D 프린터(11)는 SLA(Stereo Lithography Apparatus) 방식 또는 FDM(Fused Deposition Modeling) 방식으로 동작하는 프린팅 장비일 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.Next, the 3D printer 11 is a printing equipment equipped with manufacturing capabilities for 3D products 14. As shown, the 3D printer 11 may be a printing equipment that manufactures the product 14 in a layered manner. For example, the 3D printer 11 may be a printing device that operates in a Stereo Lithography Apparatus (SLA) method or a Fused Deposition Modeling (FDM) method, but the scope of the present disclosure is not limited thereto.

참고로, 도 1은 3D 프린터(11)가 베드(13) 상에 레이어를 적층함으로써 제품(14)을 제조하는 경우를 예로서 도시하고 있다.For reference, FIG. 1 shows an example in which the 3D printer 11 manufactures the product 14 by stacking layers on the bed 13.

몇몇 실시예들에서는, 도 2에 도시된 바와 같이, 제조 시스템(10)과 3D 프린터(11)가 일체형 양산 챔버의 형태로 제작될 수도 있다. 가령, 일체형 양산 챔버는 3D 프린터(11)의 출력 공정이 제어 시스템(10)의 화면(디스플레이)과 육안으로 확인 가능한 형태로 제작될 수 있으나(e.g., 제품의 현재 레이어(22)에 출력 오류가 존재하는지 여부가 육안과 화면을 통해 확인 가능함), 본 개시의 범위가 이에 한정되는 것은 아니다.In some embodiments, as shown in FIG. 2, the manufacturing system 10 and the 3D printer 11 may be manufactured in the form of an integrated mass production chamber. For example, an integrated mass production chamber may be manufactured in a form in which the output process of the 3D printer 11 can be visually confirmed on the screen (display) of the control system 10 (e.g., an output error in the current layer 22 of the product may occur). existence can be confirmed with the naked eye and on the screen), but the scope of the present disclosure is not limited thereto.

지금까지 도 1 및 도 2를 참조하여 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 시스템에 대하여 개략적으로 설명하였다. 이하에서는, 제어 시스템(10)에서 수행될 수 있는 다양한 방법들에 대하여 상세하게 설명하도록 한다.So far, a 3D printer control system according to some embodiments of the present disclosure has been schematically described with reference to FIGS. 1 and 2 . Below, various methods that can be performed in the control system 10 will be described in detail.

이하에서는, 이해의 편의를 제공하기 위해, 후술될 방법들의 모든 단계/동작이 도 1 및/또는 도 2에 예시된 환경의 제어 시스템(10)에서 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 특정 단계/동작의 주체가 생략된 경우, 제어 시스템(10)에서 수행되는 것으로 이해될 수 있다. 다만, 실제 환경에서는, 후술될 방법들의 일부 단계/동작이 다른 컴퓨팅 장치에서 수행될 수도 있다.Hereinafter, in order to provide convenience of understanding, the description will be continued assuming that all steps/operations of the methods to be described later are performed in the control system 10 in the environment illustrated in FIGS. 1 and/or 2. Accordingly, when the subject of a specific step/action is omitted, it can be understood as being performed in the control system 10. However, in a real environment, some steps/operations of the methods to be described later may be performed on other computing devices.

또한, 이하에서는, 도면을 직접적으로 참조하지 않는 경우에는 참조번호가 생략될 수도 있고, 본 개시의 명료함을 위해 동일 구성요소에 대한 참조번호가 실시예에 따라 변경될 수도 있다.In addition, hereinafter, when the drawings are not directly referred to, reference numbers may be omitted, and for clarity of the present disclosure, reference numbers for the same components may be changed depending on the embodiment.

도 3은 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Figure 3 is an example flowchart showing a 3D printer control method according to some embodiments of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 3에 도시된 바와 같이, 본 실시예들은 제품에 대한 레이어별 설계 데이터를 획득하는 단계 S31에서 시작될 수 있다.As shown in FIG. 3, these embodiments may begin at step S31 of acquiring design data for each layer for the product.

레이어별 설계 데이터는 레이어별로 구분 가능한 데이터로서 제품의 설계(모델링) 단계(공정)에서 얻을 수 있는 각종 데이터/정보를 포함할 수 있다. 예를 들어, 레이어별 설계 데이터는 슬라이서(slicer) 프로그램을 통해 얻어진 G코드 파일, 제품의 3D 설계 데이터(e.g., 설계 이미지(설계도), 설계 치수 등)를 레이어별로 분석한 데이터(e.g., 레이어별 설계 이미지(설계도), 레이어별 설계 치수 데이터 등)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 당해 기술 분야의 종사자라면, ‘G코드’에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다.Design data by layer is data that can be classified by layer and can include various data/information that can be obtained during the design (modeling) stage (process) of the product. For example, design data by layer is a G-code file obtained through a slicer program, 3D design data of the product (e.g., design image (blueprint), design dimensions, etc.) analyzed by layer (e.g., by layer). It may include, but is not limited to, design images (blueprints), design dimension data for each layer, etc.). If you are working in the relevant technical field, you will already be familiar with ‘G code’, so explanation of it will be omitted.

단계 S32에서, 3D 프린터에서 출력되는 제품의 현재 레이어에 대한 촬영 이미지가 실시간으로 수신될 수 있다. 가령, 제어 시스템(10)은 제품 위쪽에 배치된 카메라 모듈(12)로부터 제품의 현재 레이어를 직하방으로 촬영한 영상을 수신할 수 있다. 이렇게 촬영된 이미지의 예시에 대해서는 도 5 및 도 6 등을 참고하도록 한다.In step S32, a captured image of the current layer of the product output from the 3D printer may be received in real time. For example, the control system 10 may receive an image taken directly downward of the current layer of the product from the camera module 12 disposed above the product. Please refer to FIGS. 5 and 6 for examples of images captured in this way.

단계 S33에서, 현재 레이어의 설계 데이터와 촬영 이미지가 비교될 수 있다. 다시 말해, 레이어별 설계 데이터로부터 얻어진 현재 레이어의 설계 데이터와 촬영 이미지를 비교하는 방식으로 출력 오류 검사가 수행될 수 있다. 가령, 제어 시스템(10)은 현재 레이어의 설계 이미지와 촬영 이미지를 비교할 수도 있고 현재 레이어의 설계 치수와 촬영 이미지에서 얻어진 제조 치수를 비교할 수도 있다. 구체적인 비교 방식은 어떠한 방식이 되더라도 무방하다.In step S33, the design data of the current layer and the captured image may be compared. In other words, output error checking can be performed by comparing the design data of the current layer obtained from the design data for each layer and the captured image. For example, the control system 10 may compare the design image of the current layer with the captured image or compare the design dimensions of the current layer with manufacturing dimensions obtained from the captured image. Any specific comparison method may be used.

한편, 출력 오류 검사를 수행하는 시점 및/또는 주기는 다양하게 설정될 수 있다. 가령, 제어 시스템(10)은 현재 레이어의 출력이 완료되는 시점에 현재 레이어에 대한 출력 오류 검사(S33 참고)를 수행할 수도 있고, 현재 레이어가 출력되는 동안 미리 설정된 주기에 따라 반복적으로 출력 오류 검사(S33 참고)를 수행할 수도 있다. 이때, 미리 설정된 주기는 현재 레이어의 복잡도에 기초하여 동적으로 결정될 수도 있는데, 이에 대해서는 도 7 내지 도 9의 설명 내용을 참고하도록 한다.Meanwhile, the timing and/or cycle for performing the output error check can be set in various ways. For example, the control system 10 may perform an output error check (see S33) for the current layer at the time the output of the current layer is completed, or repeatedly check the output error according to a preset cycle while the current layer is being output. (Refer to S33) can also be performed. At this time, the preset period may be dynamically determined based on the complexity of the current layer. For this, please refer to the descriptions of FIGS. 7 to 9.

몇몇 실시예들에서는, 현재 레이어에 대한 깊이맵에 더 기초하여 현재 레이어에 대한 출력 오류 검사가 수행될 수도 있다. 가령, 도 4에 도시된 바와 같이, 직하방으로 촬영된 현재 레이어 이미지에 대응되는 깊이맵(41, 밝은 색은 깊이가 얕음(가까운 거리)을 의미함)이 획득되었다고 가정하자. 이러한 깊이맵(41)은 후술될 딥러닝 모델(도 13 참고)을 통해 생성될 수도 있고 제품의 위쪽에 설치된 깊이 카메라 모듈을 통해 생성될 수도 있다. 이 경우, 제어 시스템(10)은 깊이맵(41)과 현재 레이어의 설계 데이터(e.g., 깊이에 대한 설계 치수)를 더 비교하여 현재 레이어의 출력 오류를 검사할 수 있다(e.g., 깊이맵(41)에서 제품 영역(42)의 깊이값과 이에 대응되는 설계 치수(43 참고)를 비교하여 제조 오차가 허용 오차를 초과하는지 판단함). 그렇게 함으로써, 출력 오류에 대한 검사가 보다 철저하게 수행될 수 있다.In some embodiments, output error checking for the current layer may be performed based further on the depth map for the current layer. For example, as shown in FIG. 4, assume that a depth map (41, a bright color means shallow depth (close distance)) corresponding to the current layer image taken directly downward has been obtained. This depth map 41 may be generated through a deep learning model (see FIG. 13), which will be described later, or through a depth camera module installed on the top of the product. In this case, the control system 10 may check the output error of the current layer by further comparing the depth map 41 and the design data (e.g., design dimensions for depth) of the current layer (e.g., depth map 41 ), compare the depth value of the product area (42) with the corresponding design dimension (see 43) to determine if the manufacturing error exceeds tolerance). By doing so, checking for output errors can be performed more thoroughly.

경우에 따라서는, 현재 레이어의 복잡도가 기준치 이상이라는 판단에 기초하여 깊이맵 기반의 출력 오류 검사가 수행될 수도 있다. 즉, 제어 시스템(10)은 복잡한 레이어에 대해서만 깊이맵 기반의 출력 오류 검사를 추가적으로 수행할 수도 있다. 이러한 경우, 깊이맵 기반 출력 오류 검사가 필요한 레이어에 대해서만 선택적으로 수행되므로, 출력 오류 검사의 수행 효율성이 보다 향상될 수 있다.In some cases, a depth map-based output error check may be performed based on the determination that the complexity of the current layer is greater than the reference value. That is, the control system 10 may additionally perform depth map-based output error checking only for complex layers. In this case, since depth map-based output error checking is selectively performed only for required layers, the performance efficiency of output error checking can be further improved.

단계 S34에서, 비교 결과에 기초하여 현재 레이어에 3D 프린터의 출력 오류가 존재하는지 여부가 판단될 수 있다. 가령, 비교 결과에 따른 제조 오차가 미리 설정된 허용 오차를 초과하는 경우, 제어 시스템(10)은 현재 레이어에 출력 오류가 존재한다고(발생했다고) 판단할 수 있다. 이때, 허용 오차는 레이어별로 동일한 값으로 설정될 수도 있고 다르게 설정될 수도 있다. 예를 들어, 허용 오차는 레이어의 복잡도에 기초하여 서로 다른 값으로 설정(결정)될 수도 있는데, 이에 대해서는 도 7 내지 도 9의 설명 내용을 참고하도록 한다. 경우에 따라, 허용 오차는 레이어의 높이에 반비례하는 값으로 설정(결정)될 수도 있다(e.g., 레이어의 높이가 작은 값으로 설정될수록 출력된 제품의 정교함을 보장하기 위해 허용 오차도 더 작은 값으로 결정될 수 있음). 본 단계의 판단 결과에 따라 단계 S35 또는 단계 S36이 수행될 수 있다.In step S34, it may be determined whether an output error of the 3D printer exists in the current layer based on the comparison result. For example, if the manufacturing error according to the comparison result exceeds a preset tolerance, the control system 10 may determine that an output error exists (occurred) in the current layer. At this time, the tolerance may be set to the same value for each layer or may be set differently. For example, the tolerance may be set (determined) to different values based on the complexity of the layer. For this, refer to the descriptions of FIGS. 7 to 9. In some cases, the tolerance may be set (determined) to a value inversely proportional to the height of the layer (e.g., as the height of the layer is set to a smaller value, the tolerance is also set to a smaller value to ensure the precision of the printed product. to be determined). Depending on the determination result of this step, step S35 or step S36 may be performed.

단계 S35에서, 3D 프린터의 출력(동작)이 정지될 수 있다. 가령, 제어 시스템(10)은 현재 레이어에 출력 오류가 존재한다는 판단(즉, 검사 결과)에 기초하여 3D 프린터(11)로 출력 정지에 관한 제어 명령을 즉각적으로 송신할 수 있다. 그렇게 함으로써, 불필요한 재료 소진, 공정 지연 등의 문제가 최소화될 수 있다.In step S35, output (operation) of the 3D printer may be stopped. For example, the control system 10 may immediately transmit a control command for stopping output to the 3D printer 11 based on a determination (i.e., inspection result) that an output error exists in the current layer. By doing so, problems such as unnecessary material exhaustion and process delays can be minimized.

또한, 도 5에 도시된 바와 같이, 제어 시스템(10)은 모니터링 화면(52)에 출력 오류에 관한 정보를 표시할 수도 있다. 가령, 제어 시스템(10)은 현재 레이어의 출력 오류 발생 영역(51), 출력 오류의 유형, 발생 원인, 조치 등에 관한 정보를 모니터링 화면(52)에 표시할 수도 있다.Additionally, as shown in FIG. 5, the control system 10 may display information about output errors on the monitoring screen 52. For example, the control system 10 may display information about the output error occurrence area 51 of the current layer, the type of output error, cause of occurrence, action, etc. on the monitoring screen 52.

참고로, 도 6은 출력 오류가 발생하지 않은 경우의 모니터링 화면(61)을 예시하고 있다.For reference, Figure 6 illustrates the monitoring screen 61 when no output error occurs.

다시 도 3을 참조하여 설명한다.Description will be made again with reference to FIG. 3 .

단계 S36에서, 현재 레이어가 제품의 마지막 레이어인지 여부가 판단될 수 있다. 현재 레이어가 마지막 레이어가 아닌 경우, 상술한 단계 S32 내지 S34 등이 다음 레이어에 대하여 반복하여 수행될 수 있다.In step S36, it may be determined whether the current layer is the last layer of the product. If the current layer is not the last layer, the above-described steps S32 to S34, etc. may be repeatedly performed for the next layer.

지금까지 도 3 내지 도 6을 참조하여 본 개시의 몇몇 실시예들에 따른 3D 프린터 제어 방법에 대하여 설명하였다. 상술한 바에 따르면, 현재 레이어의 촬영 이미지와 설계 데이터를 비교하여 실시간으로 3D 프린터의 출력 오류가 검출될 수 있다. 그리고, 출력 오류가 검출됨에 응답하여, 3D 프린터의 출력(동작)이 즉각적으로 정지될 수 있다. 이러한 경우, 불량품 판정 지연으로 인해 발생되는 불필요한 재료 소진, 공정 지연 등의 문제가 최소화될 수 있다.So far, a 3D printer control method according to some embodiments of the present disclosure has been described with reference to FIGS. 3 to 6. According to the above, output errors of the 3D printer can be detected in real time by comparing the captured image of the current layer with the design data. And, in response to detecting an output error, the output (operation) of the 3D printer may be immediately stopped. In this case, problems such as unnecessary material consumption and process delays caused by delays in determining defective products can be minimized.

이하에서는, 도 7 내지 도 9를 참조하여 본 개시의 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법에 대하여 설명하도록 한다. 다만, 본 개시의 명료함을 위해 앞선 실시예들과 중복되는 내용에 대한 설명은 생략하도록 한다.Hereinafter, a 3D printer control method according to some other embodiments of the present disclosure will be described with reference to FIGS. 7 to 9. However, for clarity of the present disclosure, description of content that overlaps with the previous embodiments will be omitted.

도 7은 본 개시의 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Figure 7 is an example flowchart showing a 3D printer control method according to some other embodiments of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 7에 도시된 바와 같이, 본 실시예들은 제품의 레이어 복잡도를 고려하여 출력 오류 검사를 수행하는 방법에 관한 것이다. 이하, 본 실시예들에 대하여 상세하게 설명한다.As shown in FIG. 7, these embodiments relate to a method of performing output error checking considering the layer complexity of the product. Hereinafter, the present embodiments will be described in detail.

단계 S71에서, 제품에 대한 레이어별 설계 데이터가 획득될 수 있다. 이에 대해서는 상술한 단계 S31의 설명 내용을 참고하도록 한다.In step S71, layer-by-layer design data for the product may be obtained. For this, please refer to the description of step S31 described above.

단계 S72에서, 3D 프린터에서 출력되는 제품의 현재 레이어에 대한 촬영 이미지가 실시간으로 수신될 수 있다. 이에 대해서는 상술한 단계 S32의 설명 내용을 참고하도록 한다.In step S72, a captured image of the current layer of the product output from the 3D printer may be received in real time. For this, please refer to the description of step S32 described above.

단계 S73에서, 현재 레이어의 복잡도가 산출될 수 있다. 다만, 그 구체적인 복잡도 산출 방식은 실시예에 따라 달라질 수 있다.In step S73, the complexity of the current layer can be calculated. However, the specific complexity calculation method may vary depending on the embodiment.

몇몇 실시예들에서는, 현재 레이어의 복잡도가 G코드 명령어의 개수에 기초하여 산출될 수 있다. 가령, 도 8에 도시된 바와 같이, 제어 시스템(10)은 G코드 파일(81)에서 현재 레이어에 대한 G코드 명령어(e.g., 현재 레이어가 ‘레이어2’인 경우 82 내지 84 등)의 개수를 카운팅하고 해당 개수에 비례하는 값으로 현재 레이어의 복잡도를 산출할 수 있다(즉, G코드 명령어의 개수가 많을수록 복잡도가 높은 값으로 산출됨). 경우에 따라, 제어 시스템(10)은 G코드 명령어의 종류에 따라 서로 다른 가중치를 부여하고 이러한 가중치에 더 기초하여 현재 레이어의 복잡도를 산출할 수도 있다. 이 경우, 현재 레이어의 복잡도가 보다 정확하게 산출될 수 있다.In some embodiments, the complexity of the current layer may be calculated based on the number of G-code instructions. For example, as shown in FIG. 8, the control system 10 counts the number of G-code commands (e.g., 82 to 84, etc., if the current layer is 'layer 2') for the current layer in the G-code file 81. The complexity of the current layer can be calculated by counting and using a value proportional to the number (that is, the greater the number of G-code instructions, the higher the complexity is calculated). In some cases, the control system 10 may assign different weights depending on the type of G-code command and calculate the complexity of the current layer based on these weights. In this case, the complexity of the current layer can be calculated more accurately.

다른 몇몇 실시예들에서는, 현재 레이어의 복잡도가 설계 이미지의 복잡도에 기초하여 산출될 수 있다. 가령, 제어 시스템(10)은 현재 레이어의 설계 이미지의 픽셀값 변화 정도, 서로 다른 값을 갖는 픽셀의 개수 등에 기초하여 현재 레이어의 복잡도를 산출할 수 있다. 현재 레이어의 복잡도는 설계 이미지의 복잡도에 비례하는 값으로 산출될 수 있다.In some other embodiments, the complexity of the current layer may be calculated based on the complexity of the design image. For example, the control system 10 may calculate the complexity of the current layer based on the degree of change in pixel values of the design image of the current layer, the number of pixels with different values, etc. The complexity of the current layer can be calculated as a value proportional to the complexity of the design image.

또 다른 몇몇 실시예들에서는, 현재 레이어의 복잡도가 현재 레이어의 형상 복잡도에 기초하여 산출될 수 있다. 가령, 제어 시스템(10)은 현재 레이어와 관련된 꼭지점, 변 및/또는 면의 개수, 현재 레이어에 존재하는 서포트(support)의 개수, 홀의 개수 등에 비례하는 값으로 현재 레이어의 복잡도를 산출할 수 있다.In some other embodiments, the complexity of the current layer may be calculated based on the shape complexity of the current layer. For example, the control system 10 may calculate the complexity of the current layer as a value proportional to the number of vertices, sides, and/or faces related to the current layer, the number of supports existing in the current layer, the number of holes, etc. .

또 다른 몇몇 실시예들에서는, 현재 레이어에서 제품에서 속하는 제1 부분의 복잡도와 서포트에 속하는 제2 부분의 복잡도에 대한 가중치합을 통해 현재 레이어의 최종 복잡도가 산출될 수 있다. 이때, 제1 부분의 가중치는 제2 부분의 가중치보다 높은 값으로 설정될 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 제1 제품(91)과 제2 제품(92)이 존재하고, 현재 레이어가 ‘레이어2’라고 가정하자. 이러한 경우, 제1 제품(91)의 현재 레이어 복잡도는 제2 제품(92)보다 낮은 값으로 산출될 수 있다. 제1 제품(91)의 현재 레이어에는 제2 제품(92)보다 서포트 부분(e.g., 93)이 더 많이 포함되어 있기 때문이다(92와 94 비교, 93과 95 비교).In some other embodiments, the final complexity of the current layer may be calculated through a weighted sum of the complexity of the first part belonging to the product and the complexity of the second part belonging to the support in the current layer. At this time, the weight of the first part may be set to a higher value than the weight of the second part. For example, as shown in Figure 9, let's assume that there is a first product 91 and a second product 92, and the current layer is 'layer 2'. In this case, the current layer complexity of the first product 91 may be calculated to be lower than that of the second product 92. This is because the current layer of the first product 91 contains more support parts (e.g., 93) than the second product 92 (compare 92 and 94, compare 93 and 95).

또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 현재 레이어의 복잡도가 산출될 수 있다. 가령, 제어 시스템(10)은 제1 실시예에 따라 산출된 제1 복잡도(e.g., G코드 명령어의 개수 기반)와 제2 실시예에 따라 산출된 제2 복잡도(e.g., 형상 복잡도 기반)를 집계(e.g., 가중치합)하여 현재 레이어에 대한 최종 복잡도를 산출할 수도 있다.In some other embodiments, the complexity of the current layer may be calculated based on various combinations of the above-described embodiments. For example, the control system 10 aggregates the first complexity (e.g., based on the number of G-code instructions) calculated according to the first embodiment and the second complexity (e.g., based on shape complexity) calculated according to the second embodiment. (e.g., weight sum) may be used to calculate the final complexity for the current layer.

다시 도 7을 참조하여 설명한다.This will be described again with reference to FIG. 7 .

단계 S74에서, 현재 레이어의 복잡도를 고려하여 현재 레이어에 대한 출력 오류 검사가 수행될 수 있다. 다만, 그 구체적인 출력 오류 검사 방식은 실시예에 따라 달라질 수 있다.In step S74, an output error check for the current layer may be performed considering the complexity of the current layer. However, the specific output error checking method may vary depending on the embodiment.

몇몇 실시예들에서는, 현재 레이어의 복잡도에 기초하여 출력 오류 검사의 수행 주기(간격)가 결정될 수 있다. 가령, 현재 레이어가 출력되는 동안, 제1 시점에 제1 촬영 이미지가 수신되고 제1 시점 이후인 제2 시점에 제2 촬영 이미지가 수신되었다고 가정하자. 또한, 제어 시스템(10)이 제1 촬영 이미지와 현재 레이어의 설계 데이터를 비교하고 다시 제2 촬영 이미지와 현재 레이어의 설계 데이터를 비교하는 방식으로 출력 오류 검사를 수행한다고 가정하자. 이 경우, 제1 시점과 제2 시점 사이의 간격(즉, 주기)은 현재 레이어의 복잡도에 기초하여 결정될 수 있다. 이를테면, 현재 레이어의 복잡도가 높을수록 두 시점들 사이의 간격은 작은 값으로 결정될 수 있다. 그렇게 함으로써, 복잡한 레이어에 대해서는 보다 철저하게 출력 오류 검사가 수행될 수 있다.In some embodiments, the performance cycle (interval) of output error checking may be determined based on the complexity of the current layer. For example, let us assume that while the current layer is being output, a first captured image is received at a first time point and a second captured image is received at a second time point after the first time point. Also, assume that the control system 10 performs an output error check by comparing the first captured image with the design data of the current layer and then comparing the second captured image with the design data of the current layer. In this case, the interval (i.e., period) between the first view and the second view may be determined based on the complexity of the current layer. For example, the higher the complexity of the current layer, the smaller the interval between two viewpoints can be determined. By doing so, output error checking can be performed more thoroughly for complex layers.

다른 몇몇 실시예들에서는, 현재 레이어의 복잡도에 기초하여 현재 레이어에 적용될 허용 오차가 조정되고, 조정된 허용 오차를 기준으로 하여 현재 레이어에 대한 출력 오류 검사가 수행될 수 있다. 가령, 제어 시스템(10)은 현재 레이어의 복잡도가 높을수록 허용 오차를 더 작은 값으로 조정할 수 있다. 그렇게 함으로써, 복잡한 레이어에 보다 엄격한 오류 검사 기준이 적용될 수 있다. 경우에 따라, 제어 시스템(10)은 제품을 구성하는 전체 레이어들 중에서 복잡도가 기준치 이상인 레이어의 개수를 카운팅하고 해당 개수에 반비례하는 값으로 허용 오차를 조정할 수도 있다(e.g., 복잡한 레이어들이 많을수록 정교한 제품에 해당하므로, 허용 오차를 더 작은 값으로 조정함).In some other embodiments, the tolerance to be applied to the current layer may be adjusted based on the complexity of the current layer, and output error checking for the current layer may be performed based on the adjusted tolerance. For example, the control system 10 may adjust the tolerance to a smaller value as the complexity of the current layer increases. By doing so, more stringent error checking criteria can be applied to complex layers. In some cases, the control system 10 may count the number of layers whose complexity is higher than the standard value among all the layers that make up the product and adjust the tolerance to a value inversely proportional to the number (e.g., the more complex layers there are, the more sophisticated the product is. , so the tolerance is adjusted to a smaller value).

또 다른 몇몇 실시예들에서는, 현재 레이어의 복잡도가 기준치 이상이라는 판단에 기초하여 깊이맵 기반의 출력 오류 검사가 더 수행될 수도 있다. 이에 대해서는, 도 4에 대한 설명 내용을 참고하도록 한다.In some other embodiments, a depth map-based output error check may be further performed based on a determination that the complexity of the current layer is greater than the reference value. For this, please refer to the description of FIG. 4.

또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 출력 오류 검사가 수행될 수도 있다.In some other embodiments, output error checking may be performed based on various combinations of the above-described embodiments.

단계 S75 및 S76에서, 현재 레이어에 출력 오류가 존재한다는 판단에 기초하여 3D 프린터의 출력(동작)이 정지될 수 있다. 이에 대해서는 상술한 단계 S34 및 S35의 설명 내용을 참고하도록 한다.In steps S75 and S76, output (operation) of the 3D printer may be stopped based on a determination that an output error exists in the current layer. For this, please refer to the description of steps S34 and S35 described above.

단계 S77에서, 현재 레이어가 제품의 마지막 레이어인지 여부가 판단될 수 있다. 이에 대해서는 상술한 단계 S36의 설명 내용을 참고하도록 한다.In step S77, it may be determined whether the current layer is the last layer of the product. For this, please refer to the description of step S36 described above.

지금까지 도 7 내지 도 9를 참조하여 본 개시의 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법에 대하여 설명하였다. 상술한 바에 따르면, 레이어의 복잡도에 따라 차등적인 방식으로 출력 오류 검사가 수행될 수 있다. 이러한 경우, 복잡한 레이어에서 보다 집중적으로 출력 오류 검사가 수행될 수 있으며, 그 결과 출력 오류 검사의 수행 효율성과 정확도가 함께 향상될 수 있다.So far, a 3D printer control method according to several other embodiments of the present disclosure has been described with reference to FIGS. 7 to 9. According to the above, output error checking can be performed in a differential manner depending on the complexity of the layer. In this case, output error checking can be performed more intensively in complex layers, and as a result, both performance efficiency and accuracy of output error checking can be improved.

이하에서는, 도 10 내지 도 12를 참조하여 본 개시의 또 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법에 대하여 설명하도록 한다. 다만, 본 개시의 명료함을 위해 앞선 실시예들과 중복되는 내용에 대한 설명은 생략하도록 한다.Hereinafter, a 3D printer control method according to some other embodiments of the present disclosure will be described with reference to FIGS. 10 to 12. However, for clarity of the present disclosure, description of content that overlaps with the previous embodiments will be omitted.

도 10은 본 개시의 또 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Figure 10 is an example flowchart showing a 3D printer control method according to some other embodiments of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 10에 도시된 바와 같이, 본 실시예들은 현재 레이어와 직전 레이어의 차이에 기초하여 출력 오류 검사를 수행하는 방법에 관한 것이다. 이하, 본 실시예들에 대하여 상세하게 설명한다.As shown in FIG. 10, these embodiments relate to a method of performing output error checking based on the difference between the current layer and the previous layer. Hereinafter, the present embodiments will be described in detail.

단계 S101에서, 제품에 대한 레이어별 설계 데이터가 획득될 수 있다. 이에 대해서는 상술한 단계 S31의 설명 내용을 참고하도록 한다.In step S101, layer-by-layer design data for the product may be obtained. For this, please refer to the description of step S31 described above.

단계 S102에서, 3D 프린터에서 출력되는 제품의 현재 레이어에 대한 촬영 이미지가 실시간으로 수신될 수 있다. 이에 대해서는 상술한 단계 S32의 설명 내용을 참고하도록 한다.In step S102, a captured image of the current layer of a product output from a 3D printer may be received in real time. For this, please refer to the description of step S32 described above.

단계 S103에서, 현재 레이어와 직전 레이어의 차이가 계산될 수 있다. 가령, 제어 시스템(10)은 두 레이어들 간의 형상, 면적, 복잡도, 서포트 개수, 평균 깊이(e.g., 측면에서 측정된 깊이) 등의 차이에 기초하여 두 레이어들 간의 차이를 계산할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.In step S103, the difference between the current layer and the previous layer may be calculated. For example, the control system 10 may calculate the difference between two layers based on differences in shape, area, complexity, number of supports, average depth (e.g., depth measured from the side), etc. between the two layers. However, the scope of the present disclosure is not limited thereto.

단계 S104에서, 두 레이어들 간의 차이를 고려하여 출력 오류 검사가 수행될 수 있다. 다만, 그 구체적인 출력 오류 검사 방식은 실시예에 따라 달라질 수 있다.In step S104, output error checking may be performed considering the difference between the two layers. However, the specific output error checking method may vary depending on the embodiment.

몇몇 실시예들에서는, 두 레이어들 간의 차이가 기준치 미만이라는 판단에 기초하여 레이어 쉬프트(shift)에 관한 출력 오류 검사가 수행될 수 있다. 당해 기술 분야의 종사자라면 이러한 ‘레이어 쉬프트 오류’에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다. 예를 들어, 도 11에 도시된 바와 같이, 제어 시스템(10)은 제품(111)을 구성하는 두 레이어들(113, 114)의 차이가 기준치 미만인 경우(현재 레이어가 레이어3(113)인 경우 가정) 두 레이어들(113, 114)에 대해 레이어 쉬프트에 관한 출력 오류 검사를 수행할 수 있다. 구체적으로, 제어 시스템(10) 현재 레이어(113)와 직전 레이어(114)에 대한 측면 깊이맵(즉, 측면 촬영 이미지에 대응되는 깊이맵)을 획득하고, 측면 깊이맵에서 현재 레이어(113)의 깊이값과 직전 레이어(114)의 깊이값을 비교함으로써, 레이어 쉬프트 오류가 존재하는지 여부를 판단할 수 있다(e.g., 두 깊이값들의 차이가 설계 치수 상의 차이와 부합하는지 여부를 판단함). 참고로, 측면 깊이맵은 깊이 카메라 모듈로부터 수신되거나 딥러닝 모델(도 13 참고)을 통해 측면 촬영 이미지로부터 생성될 수 있는데, 이에 대해서는 도 13 내지 도 16의 설명 내용을 참고하도록 한다.In some embodiments, output error checking regarding layer shift may be performed based on a determination that the difference between two layers is less than a reference value. Anyone working in the relevant technical field will already be familiar with this ‘layer shift error’, so description of this will be omitted. For example, as shown in FIG. 11, the control system 10 operates when the difference between the two layers 113 and 114 constituting the product 111 is less than the reference value (if the current layer is layer 3 113). Assumption) An output error check regarding layer shift can be performed on the two layers 113 and 114. Specifically, the control system 10 acquires a side depth map (i.e., a depth map corresponding to the side captured image) for the current layer 113 and the previous layer 114, and determines the current layer 113 in the side depth map. By comparing the depth value with the depth value of the previous layer 114, it is possible to determine whether a layer shift error exists (e.g., determine whether the difference between the two depth values matches the difference in design dimensions). For reference, the side depth map may be received from a depth camera module or generated from a side captured image through a deep learning model (see FIG. 13). For this, please refer to the descriptions of FIGS. 13 to 16.

다른 몇몇 실시예들에서는, 두 레이어들 간의 차이가 기준치 이상이라는 판단에 기초하여 레이어 실종(missing)에 관한 출력 오류 검사가 수행될 수 있다. 당해 기술 분야의 종사자라면 이러한 ‘레이어 실종 오류’에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다. 예를 들어, 도 11에 도시된 바와 같이, 제품(111)을 구성하는 두 레이어들(112, 113)의 차이가 기준치 이상인 경우(현재 레이어가 레이어4(112)인 경우 가정), 제어 시스템(10)은 현재 레이어(112)의 이전 레이어들(e.g., 113, 114)에 대해 레이어 실종에 관한 출력 오류 검사를 수행할 수 있다. 구체적으로, 도 12에 도시된 바와 같이, 제어 시스템(10)은 카메라 모듈(121)로부터 현재 레이어(112)의 이전 레이어들(e.g., 113, 114)을 측면에서 촬영한 이미지를 수신하고, 해당 이미지를 분석하여 이전 레이어들(e.g., 113, 114)의 개수를 카운팅할 수 있다. 그리고, 제어 시스템(10)은 레이어별 설계 데이터에 기초하여 이전 레이어들(e.g., 113, 114)의 개수를 확인으로써(즉, 설계 데이터 상의 레이어 개수와 일치하는지 여부를 확인함), 레이어 실종 오류가 존재하는지 여부를 판단할 수 있다.In some other embodiments, output error checking for missing layers may be performed based on a determination that the difference between the two layers is greater than or equal to a reference value. Anyone working in the relevant technical field will already be familiar with this ‘missing layer error’, so explanation of this will be omitted. For example, as shown in FIG. 11, when the difference between the two layers 112 and 113 constituting the product 111 is greater than the reference value (assuming the current layer is layer 4 (112)), the control system ( 10) may perform an output error check regarding missing layers on previous layers (e.g., 113, 114) of the current layer 112. Specifically, as shown in FIG. 12, the control system 10 receives images taken from the side of the previous layers (e.g., 113, 114) of the current layer 112 from the camera module 121, and By analyzing the image, the number of previous layers (e.g., 113, 114) can be counted. And, the control system 10 checks the number of previous layers (e.g., 113, 114) based on the design data for each layer (i.e., checks whether it matches the number of layers in the design data), thereby preventing a missing layer error. It is possible to determine whether exists.

또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 출력 오류 검사가 수행될 수도 있다.In some other embodiments, output error checking may be performed based on various combinations of the above-described embodiments.

다시 도 10을 참조하여 설명한다.Description will be made again with reference to FIG. 10 .

단계 S105 및 S106에서, 출력 오류가 존재한다는 판단에 기초하여 3D 프린터의 출력(동작)이 정지될 수 있다. 이에 대해서는 상술한 단계 S34 및 S35의 설명 내용을 참고하도록 한다.In steps S105 and S106, output (operation) of the 3D printer may be stopped based on a determination that an output error exists. For this, please refer to the description of steps S34 and S35 described above.

단계 S107에서, 현재 레이어가 제품의 마지막 레이어인지 여부가 판단될 수 있다. 이에 대해서는 상술한 단계 S36의 설명 내용을 참고하도록 한다.In step S107, it may be determined whether the current layer is the last layer of the product. For this, please refer to the description of step S36 described above.

지금까지 도 10 내지 도 12를 참조하여 본 개시의 다른 몇몇 실시예들에 따른 3D 프린터 제어 방법에 대하여 설명하였다. 상술한 바에 따르면, 현재 레이어와 직전 레이어의 차이에 따라 레이어 쉬프트 또는 레이어 실종에 관한 출력 오류 검사가 선택적으로 수행될 수 있다. 이러한 경우, 모든 레이어들에서 두 출력 오류들에 대한 검사를 수행할 필요가 없게 되므로, 출력 오류 검사의 수행 효율성이 보다 향상될 수 있다. 뿐만 아니라, 다양한 출력 오류들에 대한 검사를 수행함으로써, 제품에 존재하는 출력 오류가 보다 빠짐없이 검출될 수 있다.So far, a 3D printer control method according to several other embodiments of the present disclosure has been described with reference to FIGS. 10 to 12. According to the above, output error check regarding layer shift or missing layer can be selectively performed depending on the difference between the current layer and the previous layer. In this case, there is no need to check for two output errors in all layers, so the performance efficiency of output error checking can be further improved. In addition, by performing inspection for various output errors, all output errors present in the product can be detected.

지금까지 도 3 내지 도 12를 참조하여 설명된 3D 프린터 제어 방법에 관한 다양한 실시예들은 다양한 형태로 조합될 수 있다. 가령, 제어 시스템(10)은 현재 레이어의 복잡도를 고려하여 출력 오류 검사를 수행하는 동시에 현재 레이어와 직전 레이어와의 차이를 고려하여 레이어 쉬프트 및/또는 레이어 실종에 관한 출력 오류 검사를 수행할 수도 있다.Various embodiments of the 3D printer control method described so far with reference to FIGS. 3 to 12 may be combined in various forms. For example, the control system 10 may perform an output error check in consideration of the complexity of the current layer and, at the same time, perform an output error check for layer shift and/or layer disappearance by considering the difference between the current layer and the previous layer. .

이하에서는, 도 13 내지 도 16을 참조하여 본 개시의 몇몇 실시예들에 따른 딥러닝 기반 깊이맵 생성 방법에 대하여 설명하도록 한다.Hereinafter, a deep learning-based depth map generation method according to some embodiments of the present disclosure will be described with reference to FIGS. 13 to 16.

도 13 등에 도시된 바와 같이, 후술될 깊이맵 생성 방법은 딥러닝 모델을 이용하여 2차원 이미지(e.g., 136)로부터 깊이맵(e.g., 137)을 생성하는 방법에 관한 것이다. 이러한 딥러닝 모델의 학습은 다른 컴퓨팅 장치에서 수행될 수도 있을 것이나, 이하에서는 이해의 편의를 위해 딥러닝 모델의 학습도 제어 시스템(10)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. As shown in FIG. 13, etc., the depth map generation method to be described later relates to a method of generating a depth map (e.g., 137) from a two-dimensional image (e.g., 136) using a deep learning model. Although learning of such a deep learning model may be performed on another computing device, for convenience of understanding, the following description will be continued assuming that learning of the deep learning model is also performed by the control system 10.

먼저, 도 13을 참조하여 실시예들에 따른 딥러닝 모델의 구조와 동작 원리에 대하여 설명하도록 한다.First, the structure and operating principles of deep learning models according to embodiments will be described with reference to FIG. 13.

도 13에 도시된 바와 같이, 실시예들에 따른 딥러닝 모델은 인코더(131), 디코더(132) 및 복수의 예측기들(133 내지 135)을 포함하여 구성될 수 있다.As shown in FIG. 13, a deep learning model according to embodiments may be configured to include an encoder 131, a decoder 132, and a plurality of predictors 133 to 135.

인코더(131)는 입력 이미지(136)에서 피처(e.g., 피처맵)들을 추출하는 신경망 모듈이다. 인코더(131)는 예를 들어 컨볼루션 신경망(Convolutional Neural Network, CNN), 트랜스포머와 같은 신경망에 기반하여 구현될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 인코더(131)는 어떠한 방식으로 구현되더라도 무방하다. 경우에 따라서는, 사전학습된(pretrained) 피처 추출기(e.g., 사전학습된 VGG 계열의 신경망 등)가 인코더(131)로 이용될 수도 있다. 인코더(131)는 다수의 예측기들(133 내지 135)에 의해 공유되므로, ‘공유 인코더’로 칭해질 수도 있다.The encoder 131 is a neural network module that extracts features (e.g., feature maps) from the input image 136. The encoder 131 may be implemented based on a neural network, such as a convolutional neural network (CNN) or a transformer, but the scope of the present disclosure is not limited thereto. The encoder 131 may be implemented in any way. In some cases, a pretrained feature extractor (e.g., a pretrained VGG series neural network, etc.) may be used as the encoder 131. Since the encoder 131 is shared by multiple predictors 133 to 135, it may be referred to as a ‘shared encoder’.

다음으로, 디코더(132)는 인코더(131)에서 추출된 피처들을 디코딩하는 신경망 모듈이다. 디코더(132)는 입력된 피처들에 대해 업샘플링(up-sampling) 연산 등을 수행하여 피처(e.g., 피처맵)의 크기를 증가시킬 수 있다. 디코더(131)는 예를 들어 컨볼루션 신경망 등에 기반하여 구현될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 디코더(132)도 다수의 예측기들(133 내지 135)에 의해 공유되므로, ‘공유 디코더’로 칭해질 수도 있다. 경우에 따라서는, 디코더(132)의 기능이 예측기들(133 내지 135)에 탑재된 형태로 딥러닝 모델이 구성될 수도 있다(즉, 디코더(132)가 딥러닝 모델의 구성요소에서 생략될 수도 있음).Next, the decoder 132 is a neural network module that decodes the features extracted from the encoder 131. The decoder 132 may increase the size of a feature (e.g., feature map) by performing an up-sampling operation on the input features. The decoder 131 may be implemented based on, for example, a convolutional neural network, but the scope of the present disclosure is not limited thereto. Since the decoder 132 is also shared by multiple predictors 133 to 135, it may also be referred to as a ‘shared decoder’. In some cases, the deep learning model may be configured in such a way that the function of the decoder 132 is mounted on the predictors 133 to 135 (that is, the decoder 132 may be omitted from the components of the deep learning model) has exist).

도시된 바와 같이, 인코더(131)와 디코더(132) 간에는 피처를 전달하는 스킵-커넥션(skip-connection)이 존재할 수 있다. 가령, U-Net과 같이 인코더(131)와 디코더(132) 각각이 서로 다른 레벨의 인코딩 블록들과 디코딩 블록들로 구성되고, 동일 레벨의 인코딩 블록과 디코딩 블록 사이에 피처 전달 통로로 기능하는 스킵-커넥션이 존재할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.As shown, a skip-connection that transfers features may exist between the encoder 131 and the decoder 132. For example, like U-Net, the encoder 131 and the decoder 132 are each composed of encoding blocks and decoding blocks of different levels, and a skip functions as a feature transfer path between the encoding blocks and decoding blocks of the same level. -A connection may exist. However, the scope of the present disclosure is not limited thereto.

복수의 예측기들(133 내지 135)은 서로 다른 태스크를 수행하는 신경망 모듈이다. 복수의 예측기들(133 내지 135)은 디코딩된 피처들을 입력받아 대응되는 태스크를 수행할 수 있다. 예측기들(133 내지 135)은 태스크를 수행하는 레이어이므로, 경우에 따라 ‘태스크 특화(task specific) 레이어/모듈’과 같이 칭해질 수도 있다. 예측기들(133 내지 135)은 완전연결 레이어(fully-connected layer)와 같은 신경망에 기반하여 구현될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.The plurality of predictors 133 to 135 are neural network modules that perform different tasks. A plurality of predictors 133 to 135 may receive decoded features and perform corresponding tasks. Since the predictors 133 to 135 are layers that perform tasks, they may be referred to as ‘task specific layers/modules’ in some cases. The predictors 133 to 135 may be implemented based on a neural network such as a fully-connected layer, but the scope of the present disclosure is not limited thereto.

제1 예측기(133)는 디코딩된 피처들을 기초로 입력 이미지(136)에 대한 깊이맵(137)을 예측하여 생성할 수 있다. 즉, 제1 예측기(133)는 깊이맵 예측 태스크를 수행할 수 있다.The first predictor 133 may predict and generate a depth map 137 for the input image 136 based on the decoded features. That is, the first predictor 133 can perform a depth map prediction task.

다음으로, 제2 예측기(134)는 디코딩된 피처들을 기초로 입력 이미지(136)의 클래스 레이블을 예측할 수 있다. 즉, 제2 예측기(134)는 클래스 예측 태스크(즉, 분류 태스크)를 수행할 수 있다.Next, the second predictor 134 may predict the class label of the input image 136 based on the decoded features. That is, the second predictor 134 may perform a class prediction task (ie, a classification task).

다음으로, 제3 예측기(135)는 디코딩된 피처들을 기초로 입력 이미지(136)에 대한 세그먼테이션맵(138)을 예측하여 생성할 수 있다. 즉, 제3 예측기(135)는 입력 이미지(136)의 픽셀 단위로 클래스를 예측하는 시맨틱 세그먼테이션(semantic segmentation) 태스크를 수행할 수 있다. 당해 기술 분야의 종사자면, ‘시맨틱 세그먼테이션’이라는 딥러닝 태스크에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다.Next, the third predictor 135 may predict and generate a segmentation map 138 for the input image 136 based on the decoded features. That is, the third predictor 135 may perform a semantic segmentation task of predicting the class of the input image 136 in pixel units. If you are working in the relevant technology field, you will already be familiar with the deep learning task called ‘semantic segmentation’, so description of this will be omitted.

도시된 바와 같이, 예측기들(133 내지 135) 각각은 다른 예측기의 데이터(e.g., 예측 결과, 예측기 내부의 데이터)를 더 이용하여 예측을 수행할 수도 있다(화살표 참고).As shown, each of the predictors 133 to 135 may perform prediction using data from other predictors (e.g., prediction results, data inside the predictor) (see arrows).

참고로, 도 13은 3가지의 예측기들(133 내지 135)이 딥러닝 모델의 학습에 모두 이용되는 경우를 예로서 도시하고 있으나, 경우에 따라서는 제2 예측기(134)와 제3 예측기(135) 중 적어도 하나가 딥러닝 모델의 학습에 이용되지 않을 수도 있다.For reference, Figure 13 shows an example where all three predictors 133 to 135 are used for learning a deep learning model, but in some cases, the second predictor 134 and the third predictor 135 ) at least one of them may not be used for learning the deep learning model.

이하에서는, 도 14를 참조하여 딥러닝 모델의 학습 방법에 대하여 설명하도록 한다.Below, the learning method of the deep learning model will be described with reference to FIG. 14.

도 14에 도시된 바와 같이, 딥러닝 모델은 복수의 예측기들(133 내지 135)을 통해 멀티-태스크를 수행함으로써 학습될 수 있다. 구체적으로, 트레이닝셋을 구성하는 각각의 트레이닝 샘플이 2차원 이미지(141), 정답 깊이맵(143, 즉 Ground Truth), 정답 클래스 레이블 및 정답 세그먼테이션맵(145)으로 구성될 수 있고, 제어 시스템(10)은 이렇게 구성된 다수의 트레이닝 샘플들을 이용하여 딥러닝 모델을 학습시킬 수 있다.As shown in FIG. 14, a deep learning model can be learned by performing a multi-task through a plurality of predictors 133 to 135. Specifically, each training sample constituting the training set may be composed of a two-dimensional image (141), a correct answer depth map (143, i.e., ground truth), a correct answer class label, and a correct answer segmentation map (145), and the control system ( 10) can learn a deep learning model using a large number of training samples constructed in this way.

보다 구체적으로, 제어 시스템(10)은 2차원 이미지(141)를 인코더(131)에 입력(피딩)하고 제1 예측기(133)를 통해 입력 이미지(141)에 대한 깊이맵(142)을 예측할 수 있다. 그리고, 제어 시스템(10)은 예측된 깊이맵(142)과 정답 깊이맵(143)의 차이에 기초하여 제1 손실(L1)을 산출할 수 있다. 제1 손실(L1)을 산출하는 방식은 어떠한 방식이 되더라도 무방하다. 경우에 따라, 제어 시스템(10)은 객체의 외부 영역보다 내부 영역의 차이(손실)에 더 높은 가중치를 부여하는 방식으로 제1 손실(L1)을 산출할 수도 있다. 이 경우, 딥러닝 모델이 객체의 내부 영역에 보다 집중하여 예측을 수행하도록 학습될 수 있다. 이러한 기술적 원리는 제3 손실(L3)에도 적용될 수 있다.More specifically, the control system 10 can input (feed) the two-dimensional image 141 to the encoder 131 and predict the depth map 142 for the input image 141 through the first predictor 133. there is. And, the control system 10 may calculate the first loss L1 based on the difference between the predicted depth map 142 and the correct answer depth map 143. Any method may be used to calculate the first loss (L1). In some cases, the control system 10 may calculate the first loss L1 by assigning higher weight to the difference (loss) in the internal area of the object than to the external area. In this case, the deep learning model can be trained to perform predictions by focusing more on the internal area of the object. This technical principle can also be applied to the third loss (L3).

또한, 제어 시스템(10)은 2차원 이미지(141)를 인코더(131)에 입력(피딩)하고 제2 예측기(134)를 통해 입력 이미지(141)의 클래스 레이블을 예측할 수 있다. 그리고, 제어 시스템(10)은 예측된 클래스 레이블과 정답 클래스 레이블의 차이에 기초하여 제2 손실(L2)을 산출할 수 있다. 제2 손실(L2)은 예를 들어 크로스엔트로피(cross-entropy) 손실함수에 기초하여 산출될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.Additionally, the control system 10 may input (feed) the two-dimensional image 141 to the encoder 131 and predict the class label of the input image 141 through the second predictor 134. And, the control system 10 may calculate the second loss (L2) based on the difference between the predicted class label and the correct class label. The second loss L2 may be calculated based on, for example, a cross-entropy loss function, but the scope of the present disclosure is not limited thereto.

또한, 제어 시스템(10)은 2차원 이미지(141)를 인코더(131)에 입력(피딩)하고 제3 예측기(135)를 통해 입력 이미지(141)에 대한 세그먼테이션맵(144)을 예측할 수 있다. 그리고, 제어 시스템(10)은 예측된 세그먼테이션맵(144)과 정답 세그먼테이션맵(145)의 차이에 기초하여 제3 손실(L3)을 산출할 수 있다. 제3 손실(L3)은 예를 들어 크로스엔트로피 손실함수에 기초하여 산출될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.Additionally, the control system 10 may input (feed) the two-dimensional image 141 to the encoder 131 and predict the segmentation map 144 for the input image 141 through the third predictor 135. Additionally, the control system 10 may calculate the third loss L3 based on the difference between the predicted segmentation map 144 and the correct segmentation map 145. The third loss L3 may be calculated based on, for example, a cross-entropy loss function, but the scope of the present disclosure is not limited thereto.

다음으로, 제어 시스템(10)은 제1 손실(L1) 내지 제3 손실(L3)을 집계(e.g., 가중치합)하여 총 손실을 산출하고 총 손실에 기초하여 인코더(131), 디코더(132) 및 예측기들(133 내지 135)의 파라미터들을 업데이트할 수 있다. 이때, 태스크의 중요도에 고려하여 제1 손실(L1)에 가장 높은 가중치가 부여되고 제2 손실(L2)에 가장 낮은 가중치가 부여될 수도 있을 것이나, 본 개시의 범위가 이에 한정되는 것이다.Next, the control system 10 calculates the total loss by aggregating (e.g., weighted sum) the first loss (L1) to the third loss (L3), and encoder 131 and decoder 132 based on the total loss. and the parameters of the predictors 133 to 135 may be updated. At this time, considering the importance of the task, the highest weight may be assigned to the first loss (L1) and the lowest weight may be assigned to the second loss (L2), but the scope of the present disclosure is limited thereto.

상술한 과정들은 다른 트레이닝 샘플들에 대해서도 반복적으로 수행될 수 있다. 그렇게 함으로써, 딥러닝 모델(e.g., 제1 예측기(133))이 정확하게 입력 이미지(e.g., 141)에 대응되는 깊이맵을 생성하는 능력을 구비할 수 있게 된다.The above-described processes can be performed repeatedly for other training samples. By doing so, the deep learning model (e.g., first predictor 133) can be equipped with the ability to accurately generate a depth map corresponding to the input image (e.g., 141).

한편, 몇몇 실시예들에서는, 도시된 바와 같이, 딥러닝 모델의 학습에 추가적인 손실들(e.g., L4 내지 L6)이 더 이용될 수도 있다.Meanwhile, in some embodiments, as shown, additional losses (e.g., L4 to L6) may be used in training the deep learning model.

예를 들어, 제어 시스템(10)은 예측된 깊이맵(142)에서 추출된 경계선과 입력 이미지(141)(또는 정답 깊이맵(143))에서 추출된 경계선의 차이에 기초하여 제4 손실(L4)을 더 산출할 수 있다. 경계선 차이를 산출하는 방식은 어떠한 방식이 되더라도 무방하다. 그리고, 제어 시스템(10)은 제4 손실(L4)에 더 기초하여 딥러닝 모델의 파라미터들을 업데이트할 수 있다. 이 경우, 딥러닝 모델이 객체의 경계선 부근에 더욱 집중하여 예측을 수행하도록 학습될 수 있다.For example, the control system 10 may apply a fourth loss (L4 ) can be further calculated. Any method may be used to calculate the borderline difference. And, the control system 10 may update the parameters of the deep learning model further based on the fourth loss (L4). In this case, the deep learning model can be trained to perform predictions by focusing more on the vicinity of the object's border.

다른 예로서, 제어 시스템(10)은 예측된 세그먼테이션맵(144)에서 추출된 경계선과 입력 이미지(141)(또는 정답 세그먼테이션맵(145))에서 추출된 경계선의 차이에 기초하여 제5 손실(L5)을 더 산출할 수 있다. 그리고, 제어 시스템(10)은 제5 손실(L5)에 더 기초하여 딥러닝 모델의 파라미터들을 업데이트할 수 있다. 이 경우에도, 딥러닝 모델이 객체의 경계선 부근에 더욱 집중하여 예측을 수행하도록 학습될 수 있다.As another example, the control system 10 may apply a fifth loss (L5) based on the difference between the edge extracted from the predicted segmentation map 144 and the edge extracted from the input image 141 (or the correct segmentation map 145) ) can be further calculated. And, the control system 10 may update the parameters of the deep learning model further based on the fifth loss (L5). Even in this case, the deep learning model can be trained to perform predictions by focusing more on the vicinity of the object's border.

또 다른 예로서, 제어 시스템(10)은 예측된 깊이맵(142)에서 추출된 경계선과 예측된 세그먼테이션맵(144)에서 추출된 경계선의 차이에 기초하여 제6 손실(L6)을 더 산출할 수 있다. 그리고, 제어 시스템(10)은 제6 손실(L6)에 더 기초하여 딥러닝 모델의 파라미터들을 업데이트할 수 있다. 이 경우에도, 딥러닝 모델이 객체의 경계선 부근에 더욱 집중하여 예측을 수행하도록 학습될 수 있다.As another example, the control system 10 may further calculate the sixth loss L6 based on the difference between the boundary line extracted from the predicted depth map 142 and the boundary line extracted from the predicted segmentation map 144. there is. And, the control system 10 may update the parameters of the deep learning model further based on the sixth loss (L6). Even in this case, the deep learning model can be trained to perform predictions by focusing more on the vicinity of the object's border.

또 다른 예로서, 제어 시스템(10)은 상술한 예시들의 다양한 조합에 기초하여 손실을 산출할 수도 있다. 이를테면, 제어 시스템(10)은 제4 손실(L4) 내지 제6 손실(L6)을 더 산출하고 이러한 손실들(L4 내지 L6)에 더 기초하여 딥러닝 모델의 파라미터들을 업데이트할 수도 있다.As another example, control system 10 may calculate losses based on various combinations of the examples described above. For example, the control system 10 may further calculate the fourth loss (L4) to the sixth loss (L6) and update the parameters of the deep learning model based on these losses (L4 to L6).

딥러닝 모델의 학습이 완료되면, 제어 시스템(10)은 학습된 딥러닝 모델을 통해 촬영 이미지에 대한 깊이맵을 생성할 수 있다. 가령, 제어 시스템(10)은 제품의 현재 레이어를 직하방으로 촬영한 제1 이미지를 학습된 딥러닝 모델에 입력하여 제1 깊이맵을 생성할 수 있고, 제품의 여러 레이어들을 측면에서 촬영한 제2 이미지를 학습된 딥러닝 모델에 입력하여 제2 깊이맵을 생성할 수도 있다.When learning of the deep learning model is completed, the control system 10 can generate a depth map for the captured image through the learned deep learning model. For example, the control system 10 may generate a first depth map by inputting a first image taken directly below the current layer of the product into a learned deep learning model, and a first image taken from the side of various layers of the product. 2 A second depth map may be generated by inputting the image into the learned deep learning model.

한편, 몇몇 실시예들에서는, 제어 시스템(10)이 데이터 증강(data augmentation) 기법을 통해 신규 트레이닝 샘플들을 생성하고, 이들을 더 이용하여 딥러닝 모델을 학습시킬 수도 있다. 그렇게 함으로써, 딥러닝 모델의 성능이 더욱 향상될 수 있는데, 이하 도 15 및 도 16을 참조하여 이러한 실시예들에 대하여 부연 설명하도록 한다.Meanwhile, in some embodiments, the control system 10 may generate new training samples through a data augmentation technique and further use them to learn a deep learning model. By doing so, the performance of the deep learning model can be further improved. These embodiments will be further described with reference to FIGS. 15 and 16 below.

도 15 및 도 16은 본 개시의 몇몇 실시예들에 따른 데이터 증강 방법을 설명하기 위한 예시적인 도면이다.15 and 16 are exemplary diagrams for explaining a data enhancement method according to some embodiments of the present disclosure.

도 15에 도시된 바와 같이, 제어 시스템(10)은 원본 이미지(151)에서 객체 영역(152)을 추출하여 신규 이미지(153)를 생성할 수 있다. 여기서, 원본 이미지(151)는 트레이닝셋에 존재하는 원래의 2차원 이미지를 의미하고, 신규 이미지(153)는 예를 들어 비-객체 영역(즉, 배경 영역)이 제거된 상태의 객체 이미지를 의미할 수 있다.As shown in FIG. 15 , the control system 10 may generate a new image 153 by extracting the object area 152 from the original image 151. Here, the original image 151 refers to the original two-dimensional image existing in the training set, and the new image 153 refers to an object image with the non-object area (i.e., background area) removed, for example. can do.

다음으로, 제어 시스템(10)은 원본 이미지(151)의 정답 깊이맵(154)에서도 객체 영역(155)을 추출하여 신규 이미지(153)에 대한 신규 정답 깊이맵(156)을 생성할 수 있다. 이때, 제어 시스템(10)은 정답 깊이맵(154)에서 비-객체 영역에 대응되는 깊이값을 상수로 치환함으로써 신규 정답 깊이맵(156)을 생성할 수 있다.Next, the control system 10 may generate a new correct answer depth map 156 for the new image 153 by extracting the object area 155 from the correct answer depth map 154 of the original image 151. At this time, the control system 10 may generate a new correct answer depth map 156 by replacing the depth value corresponding to the non-object area in the correct answer depth map 154 with a constant.

위와 같은 신규 이미지(153)와 신규 정답 깊이맵(156)을 이용하여 딥러닝 모델을 학습시키면, 딥러닝 모델이 객체의 내부 영역에 보다 집중하여 깊이값을 예측하도록 학습될 수 있다.If a deep learning model is trained using the new image 153 and the new correct answer depth map 156 as above, the deep learning model can be trained to predict the depth value by focusing more on the internal area of the object.

경우에 따라, 제어 시스템(10)은 트레이닝셋에서 예측기(e.g., 133, 134, 135)의 예측 손실(e.g., 객체 영역에 대한 예측 손실)이 기준치 이상(또는 예측 정확도가 기준치 미만)인 트레이닝 샘플들(e.g., 2차원 이미지와 정답 깊이맵으로 구성된 샘플들)을 선별하고 선별된 트레이닝 샘플들을 이용하여 신규 트레이닝 샘플들을 생성할 수도 있다.In some cases, the control system 10 selects a training sample in which the prediction loss (e.g., prediction loss for the object area) of the predictor (e.g., 133, 134, 135) in the training set is above the reference value (or the prediction accuracy is below the reference value). It is also possible to select samples (e.g., samples consisting of a two-dimensional image and a depth map of the correct answer) and create new training samples using the selected training samples.

또한, 경우에 따라, 제어 시스템(10)은 예측기(e.g., 133, 134, 135)의 예측 손실(e.g., 객체 영역에 대한 예측 손실)에 기초하여 신규 트레이닝 샘플의 생성 개수를 결정할 수도 있다(e.g., 예측 손실이 높은 트레이닝 샘플의 경우 더 많은 신규 트레이닝 샘플들을 생성함).Additionally, in some cases, the control system 10 may determine the number of new training samples generated based on the prediction loss (e.g., prediction loss for the object area) of the predictors (e.g., 133, 134, 135) (e.g. , for training samples with high prediction loss, more new training samples are generated).

또한, 경우에 따라, 제어 시스템(10)은 제1 신규 이미지(e.g., 153)에서 객체 영역(e.g., 152)의 색상, 모양 및/또는 위치를 변경시키는 방식으로 제2 신규 이미지를 더 생성할 수도 있다.Additionally, in some cases, the control system 10 may further generate a second new image by changing the color, shape and/or position of the object area (e.g., 152) in the first new image (e.g., 153). It may be possible.

이하, 도 16을 참조하여 데이터 증강 방법의 다른 예시에 대하여 설명하도록 한다.Hereinafter, another example of a data enhancement method will be described with reference to FIG. 16.

도 16에 도시된 바와 같이, 제어 시스템(10)은 원본 이미지(161)의 객체 영역(152)에서 일부 영역(163)만을 추출하여 신규 이미지(163)를 생성할 수 있다. 여기서, 일부 영역(163)은 객체 영역(162) 내에서 제1 예측기의 예측 손실(즉, 예측 깊이값과 정답 깊이값의 차이)이 기준치 이상인 영역을 의미할 수 있다.As shown in FIG. 16 , the control system 10 may generate a new image 163 by extracting only a partial area 163 from the object area 152 of the original image 161. Here, the partial area 163 may refer to an area in the object area 162 where the prediction loss of the first predictor (i.e., the difference between the predicted depth value and the correct depth value) is greater than or equal to the reference value.

다음으로, 제어 시스템(10)은 원본 이미지(161)의 정답 깊이맵(165)에서도 객체 영역(166) 내의 일부 영역(167)을 추출하여 신규 이미지(164)에 대한 신규 정답 깊이맵(168)을 생성할 수 있다. 이때, 제어 시스템(10)은 정답 깊이맵(165)에서 비-객체 영역에 대응되는 깊이값을 상수로 치환함으로써 신규 정답 깊이맵(168)을 생성할 수 있다.Next, the control system 10 extracts some areas 167 within the object area 166 from the correct answer depth map 165 of the original image 161 to create a new correct answer depth map 168 for the new image 164. can be created. At this time, the control system 10 may generate a new correct answer depth map 168 by replacing the depth value corresponding to the non-object area in the correct answer depth map 165 with a constant.

위와 같은 신규 이미지(164)와 신규 정답 깊이맵(168)을 이용하여 딥러닝 모델을 학습시키면, 딥러닝 모델이 객체 내부 영역의 깊이값을 보다 정확하게 예측하도록 학습될 수 있다.If a deep learning model is trained using the new image 164 and the new correct answer depth map 168 as above, the deep learning model can be trained to more accurately predict the depth value of the inner area of the object.

지금까지 도 13 내지 도 16을 참조하여 본 개시의 몇몇 실시예들에 따른 딥러닝 깊이맵 생성 방법에 대하여 설명하였다. 상술한 바에 따르면, 깊이맵 예측과 연관된 다수의 태스크들을 이용하여 딥러닝 모델을 학습시킴으로써, 딥러닝 모델의 깊이맵 예측 성능이 크게 향상될 수 있다. 또한, 이러한 딥러닝 모델을 이용함으로써, 깊이 카메라 모듈이 없는 경우에도 정확하고도 정교한 깊이맵이 획득될 수 있다.So far, a deep learning depth map generation method according to some embodiments of the present disclosure has been described with reference to FIGS. 13 to 16. According to the above, by training a deep learning model using a number of tasks related to depth map prediction, the depth map prediction performance of the deep learning model can be greatly improved. Additionally, by using this deep learning model, an accurate and sophisticated depth map can be obtained even when there is no depth camera module.

이하에서는, 도 17를 참조하여 본 개시의 몇몇 실시예들에 따른 제어 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(170)에 대하여 설명하도록 한다.Hereinafter, an exemplary computing device 170 capable of implementing the control system 10 according to some embodiments of the present disclosure will be described with reference to FIG. 17.

도 17은 컴퓨팅 장치(170)를 나타내는 예시적인 하드웨어 구성도이다.17 is an exemplary hardware configuration diagram showing the computing device 170.

도 17에 도시된 바와 같이, 컴퓨팅 장치(170)는 하나 이상의 프로세서(171), 버스(173), 통신 인터페이스(174), 프로세서(171)에 의하여 수행되는 컴퓨터 프로그램(176)을 로드(load)하는 메모리(172)와, 컴퓨터 프로그램(176)을 저장하는 스토리지(175)를 포함할 수 있다. 다만, 도 17에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 17에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(170)에는, 도 17에 도시된 구성요소 이외에도 다양한 구성요소가 더 포함될 수 있다. 또한, 경우에 따라, 도 17에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(170)가 구성될 수도 있다. 이하, 컴퓨팅 장치(170)의 각 구성요소에 대하여 설명한다.As shown in FIG. 17, the computing device 170 loads one or more processors 171, a bus 173, a communication interface 174, and a computer program 176 performed by the processor 171. It may include a memory 172 that stores a computer program 176 and a storage 175 that stores a computer program 176. However, only components related to the embodiment of the present disclosure are shown in FIG. 17. Accordingly, a person skilled in the art to which this disclosure pertains can recognize that other general-purpose components may be further included in addition to the components shown in FIG. 17 . That is, the computing device 170 may further include various components in addition to those shown in FIG. 17 . Additionally, in some cases, the computing device 170 may be configured with some of the components shown in FIG. 17 omitted. Hereinafter, each component of the computing device 170 will be described.

프로세서(171)는 컴퓨팅 장치(170)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(171)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(171)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(170)는 하나 이상의 프로세서를 구비할 수 있다.The processor 171 may control the overall operation of each component of the computing device 170. The processor 171 is at least one of a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), or any type of processor well known in the art of the present disclosure. It can be configured to include. Additionally, the processor 171 may perform operations on at least one application or program to execute operations/methods according to embodiments of the present disclosure. Computing device 170 may include one or more processors.

다음으로, 메모리(172)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(172)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(175)로부터 컴퓨터 프로그램(176)을 로드할 수 있다. 메모리(172)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.Next, memory 172 may store various data, commands and/or information. Memory 172 may load a computer program 176 from storage 175 to execute operations/methods according to embodiments of the present disclosure. The memory 172 may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.

다음으로, 버스(173)는 컴퓨팅 장치(170)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(173)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.Next, bus 173 may provide communication functionality between components of computing device 170. The bus 173 may be implemented as various types of buses, such as an address bus, data bus, and control bus.

다음으로, 통신 인터페이스(174)는 컴퓨팅 장치(170)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(174)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(174)는 본 개시의 기술 분야에서 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.Next, the communication interface 174 may support wired or wireless Internet communication of the computing device 170. Additionally, the communication interface 174 may support various communication methods other than Internet communication. To this end, the communication interface 174 may be configured to include a communication module well known in the technical field of the present disclosure.

다음으로, 스토리지(175)는 하나 이상의 컴퓨터 프로그램(176)을 비임시적으로 저장할 수 있다. 스토리지(175)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록매체를 포함하여 구성될 수 있다.Next, storage 175 may non-transitory store one or more computer programs 176. The storage 175 may be a non-volatile memory such as Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, a hard disk, a removable disk, or a device well known in the art to which this disclosure pertains. It may be configured to include any known type of computer-readable recording medium.

다음으로, 컴퓨터 프로그램(176)은 메모리(172)에 로드될 때 프로세서(171)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 즉, 프로세서(171)는 로드된 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예들에 따른 동작/방법을 수행할 수 있다.Next, the computer program 176, when loaded into the memory 172, may include instructions that cause the processor 171 to perform operations/methods according to various embodiments of the present disclosure. That is, the processor 171 may perform operations/methods according to various embodiments of the present disclosure by executing loaded instructions.

예를 들어, 컴퓨터 프로그램(176)은 제품에 대한 레이어별 설계 데이터를 획득하는 동작, 적층 방식의 3D 프린터에서 출력되는 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 동작, 레이어별 설계 데이터에서 얻어진 현재 레이어의 설계 데이터와 촬영 이미지를 비교함으로써, 현재 레이어의 출력 오류에 대한 검사를 수행하는 동작 및 현재 레이어에 출력 오류가 존재한다는 검사 결과에 기초하여 3D 프린터의 출력을 정지시키는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.For example, the computer program 176 includes an operation of acquiring design data for each layer of a product, an operation of receiving a photographed image of the current layer of a product output from a laminated 3D printer in real time, and an operation of receiving design data for each layer in real time. By comparing the obtained design data of the current layer with the captured image, perform an operation to check for an output error in the current layer and an operation to stop the output of the 3D printer based on the inspection result that an output error exists in the current layer. It can include instructions that do.

다른 예로서, 컴퓨터 프로그램(176)은 도 1 내지 도 16을 참조하여 설명된 단계/동작들의 적어도 일부를 수행하도록 하는 인스트럭션들을 포함할 수 있다.As another example, computer program 176 may include instructions to perform at least some of the steps/operations described with reference to FIGS. 1-16.

예시된 바와 같은 경우, 컴퓨팅 장치(170)를 통해 본 개시의 몇몇 실시예들에 따른 제어 시스템(10)이 구현될 수 있다.In the case illustrated, control system 10 according to some embodiments of the present disclosure may be implemented via computing device 170.

지금까지 도 17을 참조하여 본 개시의 몇몇 실시예들에 따른 제어 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(170)에 대하여 설명하였다.So far, an exemplary computing device 170 capable of implementing the control system 10 according to some embodiments of the present disclosure has been described with reference to FIG. 17 .

지금까지 도 1 내지 도 17을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 판독가능한 기록매체 상에 컴퓨터가 판독가능한 코드로 구현될 수 있다. 컴퓨터 판독가능 기록매체는 예를 들어 이동형 기록매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 컴퓨터 판독가능 기록매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 다른 컴퓨팅 장치에서 사용될 수 있다.The technical ideas of the present disclosure described so far with reference to FIGS. 1 to 17 may be implemented as computer-readable codes on a computer-readable recording medium. Computer-readable recording media may be, for example, removable recording media (CD, DVD, Blu-ray disk, USB storage device, removable hard disk) or fixed recording media (ROM, RAM, computer-equipped hard disk). A computer program recorded on a computer-readable recording medium can be transmitted to and installed on another computing device through a network such as the Internet, and thus can be used on another computing device.

이상에서, 본 개시의 실시예들을 구성하는 모든 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.In the above, even though all the components constituting the embodiments of the present disclosure have been described as being combined or operated in combination, the technical idea of the present disclosure is not necessarily limited to these embodiments. That is, within the scope of the purpose of the present disclosure, all of the components may be operated by selectively combining one or more of them.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.Although operations are shown in the drawings in a specific order, it should not be understood that the operations must be performed in the specific order shown or sequential order or that all illustrated operations must be performed to obtain the desired results. In certain situations, multitasking and parallel processing may be advantageous. Moreover, the separation of the various components in the embodiments described above should not be construed as necessarily requiring such separation, and the program components and systems described may generally be integrated together into a single software product or packaged into multiple software products. You must understand that it exists.

이상 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although various embodiments of the present disclosure have been described above with reference to the attached drawings, those skilled in the art will understand that the present disclosure can be implemented in other specific forms without changing the technical idea or essential features. I can understand that it is possible. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. The scope of protection of this disclosure should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of rights of the technical ideas defined by this disclosure.

Claims (10)

적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서,
제품에 대한 레이어별 설계 데이터를 획득하는 단계;
적층 방식의 3D 프린터에서 출력되는 상기 제품의 현재 레이어에 대한 촬영 이미지를 실시간으로 수신하는 단계;
상기 레이어별 설계 데이터에서 얻어진 상기 현재 레이어의 설계 데이터와 상기 촬영 이미지를 비교함으로써, 상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계; 및
상기 현재 레이어에 출력 오류가 존재한다는 상기 검사의 결과에 기초하여 상기 3D 프린터의 출력을 정지시키는 단계를 포함하고,
상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계는, 상기 현재 레이어의 설계 데이터와 상기 현재 레이어의 깊이맵을 더 비교하는 단계를 포함하고,
상기 현재 레이어의 설계 데이터와 상기 현재 레이어의 깊이맵을 더 비교하는 단계는, 상기 현재 레이어의 복잡도가 기준치 이상이라는 판단에 기초하여 상기 현재 레이어의 설계 데이터와 상기 현재 레이어의 깊이맵을 비교하는 단계를 포함하는 것을 특징으로 하는, 3D 프린터 제어 방법.
A method performed by at least one computing device, comprising:
Obtaining design data for each layer for the product;
Receiving in real time a captured image of the current layer of the product output from a laminated 3D printer;
Comparing the design data of the current layer obtained from the design data for each layer with the captured image, thereby performing an inspection for an output error of the current layer; and
Stopping the output of the 3D printer based on the result of the inspection that an output error exists in the current layer,
The step of performing a check for an output error of the current layer includes further comparing design data of the current layer and a depth map of the current layer,
The step of further comparing the design data of the current layer and the depth map of the current layer includes comparing the design data of the current layer and the depth map of the current layer based on a determination that the complexity of the current layer is greater than or equal to a reference value. A 3D printer control method comprising:
삭제delete 삭제delete 제1 항에 있어서,
상기 현재 레이어의 출력 오류에 대한 검사를 수행하는 단계는,
상기 현재 레이어의 복잡도를 산출하는 단계;
상기 복잡도를 기초로 상기 현재 레이어에 적용될 허용 오차를 조정하는 단계; 및
상기 조정된 허용 오차를 기준으로 하여, 상기 출력 오류에 대한 검사를 수행하는 단계를 포함하는, 3D 프린터 제어 방법.
According to claim 1,
The step of checking for output errors of the current layer is:
calculating the complexity of the current layer;
adjusting a tolerance to be applied to the current layer based on the complexity; and
A 3D printer control method comprising performing a check for the output error based on the adjusted tolerance.
제1 항에 있어서,
상기 레이어별 설계 데이터에 기초하여 상기 현재 레이어와 직전 레이어의 차이를 계산하는 단계; 및
상기 계산된 차이가 기준치 이상이라는 판단에 기초하여 레이어 실종(missing)에 관한 출력 오류 검사를 수행하는 단계를 더 포함하고,
상기 레이어 실종에 대한 출력 오류 검사를 수행하는 단계는,
상기 직전 레이어를 포함하는 상기 현재 레이어의 이전 레이어들을 측면에서 촬영한 이미지를 수신하는 단계;
상기 이미지를 분석하여 상기 이전 레이어들의 개수를 카운팅하는 단계; 및
상기 레이어별 설계 데이터에 기초하여 상기 이전 레이어들의 개수를 확인함으로써, 상기 레이어 실종에 관한 출력 오류가 존재하는지 여부를 판단하는 단계를 포함하는, 3D 프린터 제어 방법.
According to claim 1,
calculating a difference between the current layer and the previous layer based on the design data for each layer; and
Further comprising performing an output error check regarding missing layers based on a determination that the calculated difference is greater than or equal to a reference value,
The steps to perform output error checking for missing layers are:
Receiving images taken from the side of layers previous to the current layer, including the immediately preceding layer;
analyzing the image and counting the number of previous layers; and
A 3D printer control method comprising determining whether an output error related to the missing layer exists by checking the number of previous layers based on the design data for each layer.
제1 항에 있어서,
상기 레이어별 설계 데이터에 기초하여 상기 현재 레이어와 직전 레이어의 차이를 계산하는 단계; 및
상기 계산된 차이가 기준치 미만이라는 판단에 기초하여 레이어 쉬프트(shift)에 관한 출력 오류 검사를 수행하는 단계를 더 포함하는,
3D 프린터 제어 방법.
According to claim 1,
calculating a difference between the current layer and the previous layer based on the design data for each layer; and
Further comprising performing an output error check regarding layer shift based on a determination that the calculated difference is less than a reference value,
How to control a 3D printer.
제6 항에 있어서,
상기 레이어 쉬프트에 대한 출력 오류 검사를 수행하는 단계는,
상기 현재 레이어와 상기 직전 레이어에 대한 측면 깊이맵을 획득하는 단계; 및
상기 측면 깊이맵에서 상기 현재 레이어의 깊이값과 상기 직전 레이어의 깊이값을 비교함으로써, 상기 레이어 쉬프트에 관한 출력 오류가 존재하는지 여부를 판단하는 단계를 포함하는, 3D 프린터 제어 방법.
According to clause 6,
The step of performing an output error check for the layer shift is:
Obtaining a side depth map for the current layer and the previous layer; and
A 3D printer control method comprising determining whether an output error related to the layer shift exists by comparing the depth value of the current layer and the depth value of the immediately preceding layer in the side depth map.
제7항에 있어서,
상기 측면 깊이맵을 획득하는 단계는,
상기 현재 레이어와 상기 직전 레이어에 대한 측면 이미지를 수신하는 단계; 및
딥러닝 모델을 통해 상기 측면 이미지로부터 상기 측면 깊이맵을 생성하는 단계를 포함하고,
상기 딥러닝 모델은:
입력 이미지에서 피처를 추출하는 공유 인코더;
상기 추출된 피처를 디코딩하는 공유 디코더;
상기 디코딩된 피처를 입력받아 상기 입력 이미지에 대한 깊이맵을 예측하는 제1 예측기;
상기 디코딩된 피처를 입력받아 상기 입력 이미지의 클래스 레이블을 예측하는 제2 예측기; 및
상기 디코딩된 피처를 입력받아 상기 입력 이미지에 대한 세그먼테이션맵 (segmentation map)을 예측하는 제3 예측기를 포함하며,
상기 공유 인코더와 상기 공유 디코더는 상기 제1 예측기 내지 상기 제3 예측기의 예측 손실에 기초하여 학습된 것인,
3D 프린터 제어 방법.
In clause 7,
The step of acquiring the side depth map is,
Receiving side images for the current layer and the immediately preceding layer; and
Generating the side depth map from the side image through a deep learning model,
The deep learning model is:
a shared encoder that extracts features from the input image;
a shared decoder that decodes the extracted features;
a first predictor that receives the decoded features and predicts a depth map for the input image;
a second predictor that receives the decoded features and predicts a class label of the input image; and
A third predictor that receives the decoded features and predicts a segmentation map for the input image,
The shared encoder and the shared decoder are learned based on prediction losses of the first to third predictors,
How to control a 3D printer.
제8 항에 있어서,
상기 공유 인코더와 상기 공유 디코더는,
상기 입력 이미지와 상기 예측된 깊이맵의 경계선 차이로부터 산출된 제1 손실,
상기 입력 이미지와 상기 예측된 세그먼테이션맵의 경계선 차이로부터 산출된 제2 손실 및
상기 예측된 깊이맵과 상기 예측된 세그먼테이션맵의 경계선 차이로부터 산출된 제3 손실에 더 기초하여 학습된 것인,
3D 프린터 제어 방법.
According to clause 8,
The shared encoder and the shared decoder,
A first loss calculated from the difference between the boundary line between the input image and the predicted depth map,
A second loss calculated from the boundary line difference between the input image and the predicted segmentation map, and
Learned further based on a third loss calculated from the boundary line difference between the predicted depth map and the predicted segmentation map,
How to control a 3D printer.
제9 항에 있어서,
상기 딥러닝 모델은,
원본 이미지와 상기 원본 이미지에 대한 정답 깊이맵,
상기 원본 이미지에서 객체 영역을 추출하여 생성된 제1 이미지와 상기 정답 깊이맵에서 비-객체 영역에 대응되는 깊이값을 상수로 치환함으로써 생성된 제1 깊이맵 및
상기 원본 이미지의 상기 객체 영역 내의 일부 영역을 추출하여 생성된 제2 이미지와 상기 제1 깊이맵으로부터 생성된 상기 제2 이미지에 대한 제2 깊이맵을 이용하여 학습된 것이고,
상기 일부 영역은 상기 객체 영역 내에서 상기 제1 예측기를 통해 얻어진 예측 깊이값과 정답 깊이값의 차이가 기준치 이상인 영역인, 3D 프린터 제어 방법.
According to clause 9,
The deep learning model is,
The original image and the depth map of the correct answer for the original image,
A first image generated by extracting an object area from the original image and a first depth map generated by replacing a depth value corresponding to a non-object area in the correct answer depth map with a constant, and
It is learned using a second image generated by extracting a partial area within the object area of the original image and a second depth map for the second image generated from the first depth map,
The partial area is an area in which the difference between the predicted depth value obtained through the first predictor and the correct answer depth value within the object area is greater than or equal to a reference value.
KR1020230091599A 2023-05-31 2023-07-14 Method for controlling 3d printer and system therefor KR102616306B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20230070425 2023-05-31
KR1020230070425 2023-05-31

Publications (1)

Publication Number Publication Date
KR102616306B1 true KR102616306B1 (en) 2023-12-22

Family

ID=89309561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230091599A KR102616306B1 (en) 2023-05-31 2023-07-14 Method for controlling 3d printer and system therefor

Country Status (1)

Country Link
KR (1) KR102616306B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010140A (en) * 2015-07-15 2017-01-26 포텍마이크로시스템(주) Apparatus for checking normal output of 3D printer
KR20230038839A (en) 2021-09-13 2023-03-21 금오공과대학교 산학협력단 3D printer monitoring system applying machine learning algorithm based on Temporal Convolution Neural Network with Two-Stage Sliding Window Strategy

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010140A (en) * 2015-07-15 2017-01-26 포텍마이크로시스템(주) Apparatus for checking normal output of 3D printer
KR20230038839A (en) 2021-09-13 2023-03-21 금오공과대학교 산학협력단 3D printer monitoring system applying machine learning algorithm based on Temporal Convolution Neural Network with Two-Stage Sliding Window Strategy

Similar Documents

Publication Publication Date Title
US10776911B2 (en) Information processing apparatus, identification system, setting method, and program
RU2770752C1 (en) Method and device for training a face recognition model and a device for determining the key point of the face
US20230326169A1 (en) Classification with segmentation neural network for image-based content capture
US20190139212A1 (en) Inspection apparatus, data generation apparatus, data generation method, and data generation program
CN111699499B (en) Inspection, image recognition, recognizer generation system, and learning data generation device
US20170069075A1 (en) Classifier generation apparatus, defective/non-defective determination method, and program
TWI821985B (en) Manufacturing system, multi-step manufacturing method and non-transitory computer readable medium
CN113903009B (en) Railway foreign matter detection method and system based on improved YOLOv3 network
CN109784293A (en) Multi-class targets method for checking object, device, electronic equipment, storage medium
KR102299586B1 (en) Method, device and system for deriving building construction method based on artificial intelligence using big data of video taken with drone
TWI765403B (en) Systems and methods for manufacturing processes, and three-dimensional (3d) printing stsyem
CN111126433A (en) Positive and negative sample data balancing method in factory PCB defect detection
CN115048969A (en) Visual analysis system for evaluating, understanding and improving deep neural networks
KR102372714B1 (en) Automatic defect inspection system based on deep learning
KR102616306B1 (en) Method for controlling 3d printer and system therefor
JP7059889B2 (en) Learning device, image generator, learning method, and learning program
JP7410442B2 (en) Deterioration detection device, deterioration detection method, and program
CN113377985A (en) Pyramid network-based traditional Chinese medicine image classification and retrieval method
US20230343082A1 (en) Encoding of training data for training of a neural network
CN117315233A (en) Method for accurately identifying small legacy objects based on yolov5
CN112184717A (en) Automatic segmentation method for quality inspection
KR102494829B1 (en) Structure damage evaluation method for using the convolutional neural network, and computing apparatus for performing the method
US20220406082A1 (en) Image processing apparatus, image processing method, and storage medium
Robotyshyn et al. Surface defect detection based on deep learning approach.
CN115861284A (en) Printed product linear defect detection method, printed product linear defect detection device, electronic equipment and storage medium

Legal Events

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