WO2024055742A1 - 用于检测3d打印机的打印质量的方法和装置、3d打印机 - Google Patents
用于检测3d打印机的打印质量的方法和装置、3d打印机 Download PDFInfo
- Publication number
- WO2024055742A1 WO2024055742A1 PCT/CN2023/107561 CN2023107561W WO2024055742A1 WO 2024055742 A1 WO2024055742 A1 WO 2024055742A1 CN 2023107561 W CN2023107561 W CN 2023107561W WO 2024055742 A1 WO2024055742 A1 WO 2024055742A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- images
- partial
- pixel
- model
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000007639 printing Methods 0.000 title claims abstract description 50
- 230000036961 partial effect Effects 0.000 claims description 120
- 230000033001 locomotion Effects 0.000 claims description 24
- 238000010586 diagram Methods 0.000 claims description 21
- 238000005286 illumination Methods 0.000 claims description 17
- 238000010438 heat treatment Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 10
- 239000000463 material Substances 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000010146 3D printing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 239000000843 powder Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 229920001169 thermoplastic Polymers 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 229910010293 ceramic material Inorganic materials 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000012768 molten material Substances 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004416 thermosoftening plastic Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING 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/00—Additive 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/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
- B29C64/393—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING 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/00—Additive 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/20—Apparatus for additive manufacturing; Details thereof or accessories therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE 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
- B33Y30/00—Apparatus for additive manufacturing; Details thereof or accessories therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE 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/00—Data acquisition or data processing for additive manufacturing
- B33Y50/02—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
Definitions
- the present disclosure relates to the technical field of 3D printing, and specifically to a method for detecting the printing quality of a 3D printer, a device for detecting the printing quality of a 3D printer, a 3D printer, a computer-readable storage medium and a computer program product.
- 3D printing technology also known as additive manufacturing technology, is a technology that is based on digital model files and uses adhesive materials to construct objects by printing layer by layer.
- 3D printing is usually implemented using a 3D printer.
- 3D printer also known as three-dimensional printer and three-dimensional printer, is a process equipment for rapid prototyping. 3D printers are often used to manufacture models or parts in fields such as mold manufacturing and industrial design.
- a typical 3D printing technology is Fused Deposition Modeling (FDM), which builds objects by selectively depositing molten material in a predetermined path layer by layer.
- the material used is a thermoplastic polymer and is in the form of filaments. At present, there is still a lot of room for improvement in the printing quality of 3D printers.
- the present disclosure provides a method for detecting the printing quality of a 3D printer, an apparatus for detecting the printing quality of a 3D printer, a 3D printer, a computer-readable storage medium, and a computer program product.
- a method for detecting printing quality of a 3D printer includes: a heating bed; a print head movable relative to the heating bed; and a color camera arranged on The print head is used to capture an image of a part of the thermal bed; and at least one processor is used to control the print head to move relative to the thermal bed to print the 3D model layer by layer.
- the method includes: Obtain a model reference map, wherein the model reference map represents the occupied area of at least a portion of the first layer of the 3D model on the thermal bed; generate a scan path based on the model reference map, wherein the scan path is Generated such that when the color camera moves along the scanning path as the print head moves relative to the thermal bed, the color camera sequentially captures images of a plurality of different positions of the occupied area; such that The print head prints the first layer of the 3D model on the hot bed; causing the color camera to move along the scanning path under the load of the print head and at the plurality of different positions during the movement Shooting to obtain a plurality of second partial images, the plurality of second partial images respectively indicating the corresponding positions of the heat bed at the plurality of different positions after the first layer of the 3D model is printed on the heat bed.
- the image to generate a global image corresponding to the model reference image, wherein the plurality of partial result images are based on each of the plurality of second partial images and the plurality of first partial images.
- the corresponding differences between the corresponding first partial images in the image are determined; and based on the model reference image and the global image, a print quality result is determined, the print quality result indicates all the first layers of the 3D model. Describe at least part of the print quality.
- the method may further include: moving the color camera along the scanning path under the support of the print head and taking pictures at the plurality of different positions during the movement. A plurality of first partial images are obtained, the plurality of first partial images respectively indicating corresponding images of the heating bed at the plurality of different positions.
- the color camera is moved along the scanning path under the support of the print head and is photographed at the plurality of different positions during the movement to obtain a plurality of second partial images
- Generating a global image corresponding to the model reference image includes: moving the color camera along the scanning path under the support of the print head and photographing at the plurality of different positions during the movement to obtain multiple images.
- second partial images determining a plurality of partial images based on a corresponding difference between each second partial image in the plurality of second partial images and a corresponding first partial image in the plurality of first partial images.
- Result image splicing the plurality of local result images according to the scan path to generate a global image corresponding to the model reference image.
- a device for detecting printing quality of a 3D printer includes: a heating bed; a print head movable relative to the heating bed; and a color camera arranged
- the print head is used to capture an image of a part of the thermal bed; and at least one processor is used to control the print head to move relative to the thermal bed to print the 3D model layer by layer
- the device includes :
- the first module is used to obtain a model reference diagram, wherein the model reference diagram represents the occupied area of at least a part of the first layer of the 3D model on the thermal bed; the second module is used to obtain a model reference diagram based on the model reference diagram.
- the scan path is generated such that when the color camera moves along the scan path as the print head moves relative to the thermal bed, the color camera sequentially captures Images of multiple different positions of the occupied area; the third module is used to make the print head print the first layer of the 3D model on the hot bed; the fourth module is used to make the color camera print the first layer of the 3D model on the hot bed.
- the print head is carried along the scanning path and is photographed at the plurality of different positions during the movement to obtain a plurality of second partial images, the plurality of second partial images respectively indicate areas on the 3D model.
- corresponding images of the thermal bed at the plurality of different positions are used to generate a global image corresponding to the model reference image; and a fifth module, configured based on the The model reference map and the global image are used to determine a print quality result indicating the print quality of the at least a portion of the first layer of the 3D model.
- a 3D printer including: a heat bed; a print head movable relative to the heat bed; and a color camera arranged on the print head for photographing the heat bed. an image of a portion of the area; and at least one processor for controlling the printhead relative to the The heated bed moves to print the 3D model layer by layer, wherein the at least one processor is further configured to execute instructions to implement the method as described above.
- a non-transitory computer-readable storage medium storing instructions, wherein the instructions, when executed by the at least one processor of the 3D printer as described above, implement the above Methods.
- a computer program product comprising instructions that, when executed by the at least one processor of a 3D printer as described above, implement the method as described above.
- Figure 1 shows a schematic diagram of a 3D printer according to an example embodiment
- Figure 2 shows a flowchart of a method for detecting print quality of a 3D printer according to an example embodiment
- Figure 3 shows an example graphical representation of the first layer of the 3D model on a thermal bed
- Figure 4 shows a model reference diagram corresponding to the example of Figure 3;
- Figure 5 shows an example of a scan path for the model reference map of Figure 4.
- FIG. 6 illustrates a flowchart of steps for determining a plurality of local result images in accordance with an example embodiment
- FIG. 7 illustrates a flowchart of steps for determining print quality results according to an example embodiment
- FIG. 8 shows a flowchart of another method for detecting print quality of a 3D printer according to an example embodiment
- Figure 9A shows an example of a global image stitched into a global image from multiple local result images without illumination compensation
- Figure 9B shows an example of the global image after illumination compensation of the global image of Figure 9A
- FIG. 10 shows a structural block diagram of an apparatus for detecting printing quality of a 3D printer according to an example embodiment.
- first”, “second”, etc. to describe various elements is not intended to limit the positional relationship, timing relationship, or importance relationship of these elements. Such terms are only used for Distinguish one element from another.
- the first element and the second element may refer to the same instance of the element, and in some cases, based on contextual description, they may refer to different instances.
- 3D printing technology constructs objects by printing layer by layer.
- the printing quality of the first layer of the 3D model is the key to determining the success of the printing. If the printing quality of the first layer is not good, it will seriously affect the quality of the final 3D model. Therefore, in order to ensure successful printing, the printing quality of the first layer needs to be tested. If the printing quality of the first layer does not meet the requirements, you can stop printing in time to avoid final printing failure. Current 3D printers do not have the function to detect the printing quality of the first layer, so the quality of the first layer cannot be known immediately.
- FIG. 1 shows a schematic diagram of a 3D printer 100 according to an embodiment of the present disclosure.
- the 3D printer 100 includes a thermal bed 110 , a print head 120 movable relative to the thermal bed 110 , and a color camera 130 arranged on the print head 120 for taking images of a portion of the thermal bed 110 .
- the phrase "a printhead that is movable relative to the heated bed” may refer to any of the following situations: (1) the heated bed remains stationary and the printhead moves; (2) the heated bed moves and the printhead remains stationary; (3) Both the heating bed and the print head move.
- Examples of the color camera 130 include, but are not limited to, common consumer 2D color cameras. In this article, for convenience of description, such an ordinary consumer color 2D camera is taken as an example to illustrate the embodiments of the present disclosure, but the present disclosure is not limited in this respect.
- 3D printer 100 also includes at least one processor (not shown). At least one processor is used to control the movement of the print head 120 relative to the thermal bed 110 to print the 3D model layer by layer based on the control code generated by the slicing software. As shown in FIG. 1 , at least one processor can drive a motor (not shown), and in turn drive the extrusion wheel 150 to feed the printing material 170 on the tray 160 into the print head 120 . During the movement of the print head 120 , printing material is extruded from the print head 120 and deposited on the heat bed 110 . Typically, the slicing software runs on a computing device communicatively connected to the 3D printer 100 and operates to generate control information that controls the printing process.
- the slicing software may provide a graphical user interface (GUI) to allow the user to select or adjust layout information representing the position and orientation of the 3D model on the heat bed 110 .
- GUI graphical user interface
- the slicing software can slice the 3D graphical representation of the 3D model to generate slicing data (e.g., number of slices, height of each layer of slices, etc.), and then convert the slicing data into data used to control the print head 120 of the 3D printer 100 to move along the printing path.
- slicing data e.g., number of slices, height of each layer of slices, etc.
- the control code is downloaded to the 3D printer Printer 100 for execution by at least one processor.
- the 3D printer 100 may also include at least one memory (not shown) for storing programs and/or data.
- a processor includes a microcontroller or computer that executes instructions stored in firmware and/or software (not shown).
- the processor may be programmable to perform the functions described herein.
- the term computer is not limited to those integrated circuits known in the art as computers, but refers broadly to computers, processors, microcontrollers, microcomputers, programmable logic controllers, application specific integrated circuits and other programmable circuits, and these terms are used interchangeably herein.
- the computers and/or processors discussed herein may each employ computer-readable media or machine-readable media, which refers to any medium that participates in providing instructions to the processor for execution.
- the memory discussed above constitutes computer-readable media. Such media can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media.
- the printhead 120 may be configured to extrude any material suitable for 3D printing, including, for example, thermoplastics, alloys, metal powders, ceramic materials, ceramic powders, polymers, and the like.
- FIG. 2 is a flowchart illustrating a method 200 for detecting print quality of a 3D printer, according to an example embodiment. For discussion purposes, method 200 is described below in conjunction with 3D printer 100 shown in FIG. 1 . In an example, method 200 may be implemented by at least one processor in 3D printer 100 .
- a model reference map is obtained.
- the model reference diagram represents the area occupied by at least a portion of the first layer of the 3D model on the heated bed 110 .
- FIG. 3 shows an example graphical representation of a first layer of a 3D model on a heat bed 310
- FIG. 4 shows a model reference diagram corresponding to the example of FIG. 3
- the footprint of the first floor of the 3D model on the heated bed 310 includes four discrete areas. Domains 340a, 340b, 340c and 340d. These areas can be formed from the same printing material or different printing materials. Although discrete areas 340a, 340b, 340c, and 340d are shown in FIG.
- the model reference map 410 shown in Figure 5 includes four pixel areas 440a, 440b, 440c and 440d.
- the model reference map 410 may be generated under the thermal bed coordinate system oxyz (FIG.
- model reference figure 410 is shown in Figure 4 as having dimensions corresponding to the dimensions of the heat bed 310 of Figure 3, this is not required. In other examples, the model reference map 410 may only have dimensions corresponding to the bounding box of the occupied area (in FIG. 3, the discrete areas 340a, 340b, 340c, and 340d as a whole), thereby saving storage space.
- model reference diagram does not necessarily need to represent the entirety of the first layer of the 3D model, but may only represent a portion of the first layer of the 3D model. This is because in some cases, it may be necessary to check the print quality of only a portion of the first layer of the 3D model. For example, since the temperature distribution of the heated bed may be uneven, the temperature in some heated bed areas is higher and the temperature in other heated bed areas is lower. In areas of the heated bed where the temperature is lower, the printed material may not form properly and thus print defects may occur. In this case, the printing quality can be detected only for the hot bed area with a lower temperature, thereby improving the detection efficiency.
- the model reference map may be generated by parsing control information generated by the slicing software.
- the control information generated by the slicing software may include control code (eg, gcode) for printing the first layer of the 3D model.
- obtaining the model reference map may include receiving the model reference map from a computing device communicatively connected to the 3D printer 100 .
- the model reference image is generated by the slicing software when running on the computing device by parsing the controls used to print the first layer of the 3D model. Generated from custom code.
- obtaining the model reference map (step 210 ) may include reading the model reference map locally from the 3D printer 100 .
- the model reference image is generated by at least one processor by parsing the control code for printing the first layer of the 3D model, or is extracted directly from a slice of the model. Since the control code specifies the motion path of the print head, the occupied area of the first layer of the 3D model on the hot bed can be recovered from it.
- the control information generated by the slicing software includes layout information representing the position and orientation of the 3D model on the thermal bed 110 .
- obtaining the model reference map may include receiving the model reference map from a computing device communicatively connected to the 3D printer 100 .
- Model reference drawings are generated by slicing software by parsing this layout information when running on a computing device. Since the layout information defines the position and orientation of the 3D model on the thermal bed, the occupied area of the first layer of the 3D model on the thermal bed can be recovered from it.
- a scan path is generated based on the model reference map.
- the scan path is generated such that when the color camera 130 moves along the scan path as the print head 120 moves relative to the thermal bed 110, the color camera 130 sequentially captures images of a plurality of different positions of the occupied area.
- FIG. 5 shows an example of a scan path for the model reference map of FIG. 4 .
- the occupied area includes at least one discrete area spaced apart from each other
- the model reference map includes at least one pixel area respectively representing the at least one discrete area
- generating the scan path may include the following operations:
- (1b) Determine a scan path in the model reference diagram, and the virtual box representing the field of view (FOV) of the color camera moves along the scan path to cover a portion of the at least one bounding box as a whole each time, and finally traverse the at least one bounding box The entire area of a bounding box.
- a virtual box representing the FOV of the color camera 130 is shown, and the determined scan is shown as an open arrow. path.
- the scan path is a Zig-Zag path, but this is illustrative rather than limiting.
- the scan path may be generated for the original shape of the pixel area in the model reference diagram representing the occupied area of the first layer of the 3D model on the thermal bed.
- any other suitable method may be used to generate the scan path, as long as the depth sensor can measure multiple target positions in the occupied area of the first layer of the 3D model on the thermal bed.
- the occupied area includes at least one discrete area spaced apart from each other
- the model reference map includes at least one pixel area respectively representing the at least one discrete area
- generating the scan path may include the following operations:
- (2c) Merge the movement paths for all connected domains into one merged path as the scan path.
- the scan path is generated for the field of view of color camera 130 and that the scan path of color camera 130 does not necessarily coincide with the movement path of print head 120 because of the orientation of color camera 130 and the printing There may be rotation and/or translation between orientations of the head 120 .
- the print head 120 and the color camera 130 can be pre-calibrated in a three-dimensional coordinate system (for example, rotation and/or translation under the hotbed coordinate system), and convert the scanning path for the color camera 130 into a movement path for the print head 120, and generate corresponding control codes to control the movement of the print head 120, so that the color camera 130 It moves along the scanning path under the support of the print head 120 .
- External parameter calibration is a known technology, and will not be described in detail here in order not to obscure the subject matter of this disclosure.
- step 230 the color camera 130 is moved along the scanning path under the support of the print head 120 , and the color camera 130 is photographed at a plurality of different positions during the movement to obtain a plurality of first partial images.
- the plurality of first partial images respectively indicate corresponding images of the thermal bed 110 at a plurality of different locations.
- each first partial image in the plurality of first partial images is numbered according to the physical coordinates of the print head 120 in the hot bed coordinate system when the color camera 130 captures each first partial image on the scan path. , and stored in memory. The purpose of numbering is to make each first partial image correspond to the plurality of different positions on the heating bed 110 . It will be understood that the plurality of first partial images may be stored in the camera coordinate system or converted to the image coordinate system. The following uses storage in the camera coordinate system as an example.
- step 240 the print head 120 is caused to print the first layer of the 3D model on the hot bed 110 .
- step 250 the color camera 130 is moved along the scanning path under the support of the print head 120 and is photographed at the above-mentioned plurality of different positions during the movement to obtain a plurality of second partial images.
- the plurality of second partial images respectively indicate corresponding images of the heat bed 110 at a plurality of different positions after the first layer of the 3D model is printed on the heat bed 110 .
- This step causes the color camera 130 to take pictures again at the same multiple different positions along the same scanning path as in step 230 .
- each second partial image in the plurality of second partial images may be calculated according to the physical coordinates of the print head 120 in the hot bed coordinate system when the color camera 130 captures each optical image on the scanning path. Numbered and stored in memory in the camera coordinate system. This allows each second partial image to be associated with the plurality of different positions on the heating bed 110 and thus also with each first partial image stored in step 230 .
- a plurality of partial result images are determined based on a respective difference between each second partial image of the plurality of second partial images and a corresponding first partial image of the plurality of first partial images.
- the plurality of local result images respectively represent the corresponding images after subtracting the thermal bed background at multiple different locations.
- determining a plurality of local result images may include the following operations:
- a plurality of difference images are obtained by calculating a difference between each second partial image in the plurality of second partial images and a corresponding first partial image in the plurality of first partial images.
- the term "each second partial image among the plurality of second partial images and the corresponding first partial image among the plurality of first partial images” means that the second partial image and the first partial image are composed of color Captured by the camera at the same location.
- the second partial image is represented by a pixel matrix I
- the corresponding first partial image (heated bed image)
- the pixel matrix D of the difference image abs(I-J).
- a threshold for determining valid pixels is determined, and each valid pixel indicates that the pixel belongs to the occupied area.
- the average variance of each pixel in the first partial image (heated bed image) corresponding to the difference image is calculated, and the threshold is determined based on the average variance.
- the threshold can be proportional to the average variance.
- the threshold can have upper and lower bounds. For example, the average variance of each pixel is calculated as mean_std.
- a masking operation is performed for each pixel in each difference image.
- the mask operation includes: comparing the pixel value of each pixel with the determined threshold; in response to the pixel value of the pixel being greater than the threshold, it is determined that the pixel belongs to a valid pixel and the pixel value of the pixel is replaced with the corresponding th The pixel value of the pixel of the second partial image, otherwise the pixel value is retained.
- step 640 the multiple difference images after the mask operation are used as multiple local result images, thereby obtaining multiple local result images.
- step 270 multiple local result images are spliced according to the scan path to generate a global image corresponding to the model reference image.
- the plurality of partial result images are determined based on a corresponding difference between each second partial image of the plurality of second partial images and a corresponding first partial image of the plurality of first partial images.
- splicing multiple partial result images according to the scan path includes: according to the order in which the color camera 130 captures each first partial image and each corresponding second partial image on the scan path, combining the corresponding partial results Images are stitched together.
- the above order may be determined based on the numbers stored in the memory when each first partial image and each corresponding second partial image are captured.
- the above-mentioned splicing operation includes: in response to determining that the plurality of partial result images overlap each other, averaging or linearly interpolating pixel values of pixels at overlapping positions between the plurality of partial result images.
- the plurality of local result images respectively represent corresponding images after subtracting the background of the hot bed at a plurality of different locations.
- the plurality of partial result images are determined based on a respective difference between each second partial image of the plurality of second partial images and a corresponding first partial image of the plurality of first partial images.
- a plurality of local result images are determined by:
- a plurality of difference images are obtained by calculating a difference between each second partial image in the plurality of second partial images and a corresponding first partial image in the plurality of first partial images.
- the term "each second partial image among the plurality of second partial images and the corresponding first partial image among the plurality of first partial images” means that the second partial image and the first partial image are composed of color Captured by the camera at the same location.
- the second partial image is represented by a pixel matrix I
- the corresponding first partial image (heated bed image)
- the pixel matrix D of the difference image abs(IJ).
- a threshold for determining valid pixels is determined, and each valid pixel indicates that the pixel belongs to the occupied area.
- the average variance of each pixel in the first partial image (heated bed image) corresponding to the difference image is calculated, and the threshold is determined based on the average variance.
- the threshold can be proportional to the average variance.
- the threshold can have upper and lower bounds. For example, the average variance of each pixel is calculated as mean_std.
- a masking operation is performed for each pixel in each difference image.
- the mask operation includes: comparing the pixel value of each pixel with the determined threshold; in response to the pixel value of the pixel being greater than the threshold, it is determined that the pixel belongs to a valid pixel and the pixel value of the pixel is replaced with the corresponding th The pixel value of the pixel of the second partial image, otherwise the pixel value is retained.
- the multiple difference images after the mask operation are multiple local result images.
- a print quality result is determined based on the model reference map and the global image, the print quality result indicating the print quality of at least a portion of the first layer of the 3D model.
- the model reference image indicates the target printed image at multiple different locations and the global image indicates the actual printed image at multiple different locations. Therefore, whether there is a printing defect or the severity of the printing defect can be detected based on the error between the target printed image and the actual printed image.
- determining print quality results may include the following operations:
- step 710 the target print image at a plurality of different positions is compared with the actual print image at a corresponding position among the plurality of different positions.
- print quality results are determined based on the comparison operation.
- the above comparison step 710 may include:
- (3a) Determine the normal printing threshold of the first layer of the 3D model.
- the upper and lower bounds of the normal printing threshold are related to the printing height and printing material set for the first layer.
- the normal printing threshold may be a binary threshold.
- the upper and lower bounds of the binary threshold are related to the printing height set for the first layer and the printing material, and are used to evaluate whether the first layer is printed normally.
- the Lab algorithm is used to convert the global image and the model reference image to the Lab color space, and the brightness component is taken and binarized to obtain a binarized image B of the global image and a binarized image R of the model reference image.
- the binarization threshold may be the threshold diff_thresh/2 used above with respect to background subtraction. Binarization is a known technology and will not be described in detail here in order not to obscure the subject matter of the present disclosure.
- the error pixels in the global image are identified, where the error pixel indicates that the first layer of the 3D model is not printed normally.
- the term "corresponding pixels of the binarized global image and the model reference image” refers to the pixels in the binarized global image and the pixels in the binarized model reference image, both of which are located in the respective images.
- At the same relative position for example, the same pixel coordinates in respective pixel coordinate systems.
- Each pixel area is usually in the form of a connected domain, and each pixel in the connected domain represents that the corresponding position on the thermal bed is occupied by the first layer of the 3D model. It should be understood that different pixel areas representing occupied areas may have different areas. For the purpose of detection efficiency, detection may be performed only on a part of the pixel area with a larger area (for example, greater than the threshold T 1 ) instead of all pixel areas.
- Each pixel area in at least one pixel area representing the occupied area in the above model reference diagram is usually in the form of a connected domain, and each pixel in the connected domain indicates that the corresponding position on the thermal bed is occupied by the first layer of the 3D model. It should be understood that different pixel areas representing occupied areas may have different areas. For the purpose of detection efficiency, detection may be performed only on a part of the pixel area with a larger area (for example, greater than the threshold T 1 ) instead of all pixel areas.
- the error between the target value and the actual value of the first layer printed image can be measured in various possible ways.
- the number of normal pixels, the number of error pixels, and the relative number relationship between normal pixels and error pixels are measurement criteria that reflect the error between the target value and the actual value of the first-layer printed image.
- the error level l can be defined as follows:
- T 2 , T 3 , and T 4 are all thresholds, and n is the number of pixels of the global image in the connected domain C.
- These thresholds can be preset or adaptive. For example, these thresholds can vary adaptively with the number of pixels in connected domain C as a function of the number of pixels in connected domain C.
- the value of error level l can be 0, 1 or 2. It will be understood that such error levels are illustrative and not restrictive.
- print quality results may be determined in step 720.
- decision logic can be defined:
- the print quality result is also determined to be "error” and the final error level is output. 2.
- the print quality result may be determined based on the accumulated absolute value of the error between the target value and the actual value of the first layer printing image. It should be understood that if the error between the target value and the actual value of the first layer printing image is known, various possible determination criteria can be designed to detect the printing quality. It is impossible for this disclosure to exhaust all determination criteria, but this does not affect that these other determination criteria also fall within the scope of this disclosure.
- the print quality results include a confidence level indicating how reliable the detection is, as a function of the total number of valid pixels and the total number of pixels of the model reference map.
- the confidence level is the ratio of the total number of valid pixels to the total number of pixels in the model reference image.
- the confidence is another suitable function of the total number of valid pixels and the total number of pixels of the model reference map.
- the actual printed first-layer pattern and the first-layer pattern of the model reference image are not necessarily strictly aligned. Therefore, it may be necessary to register the model reference image and the global image to find the best match. error in position.
- the global image may be compared with The model reference map is registered so that the global image and the model reference map are aligned according to the registration criteria.
- various registration methods may be used, such as:
- Grayscale-based template matching algorithm Find sub-images similar to the template image in another image based on the known template image. For example, the global image and the model reference image are binarized, and the binarized global image and the model reference image are template matched.
- Feature-based matching algorithm first extract the features of the image, then generate feature descriptors, and finally match the features of the two images based on the similarity of the descriptors.
- the features of an image can include points, lines (edges), regions (surfaces), etc., and can also be divided into local features and global features.
- Relationship-based matching algorithm Use machine learning algorithms to match images.
- a brute force search method can be used to find the best matching position between the global image and the model reference image, and then calculate the error at the best matching position. Specifically, the global image is moved from the x and y directions, and the error is calculated at the new position. If the number of error pixels at the new position is less than the number of error pixels at the previously recorded best position, the new position is updated to the best position. Best matching location. In order to reduce the amount of calculation, the search range can be limited to a window range (such as 20 pixels, corresponding to 2mm of physical coordinates). Moreover, if the number of error pixels at the new position is much greater than the number of error pixels at the previous position (for example, 20% more), the search in the current direction is stopped.
- a window range such as 20 pixels, corresponding to 2mm of physical coordinates
- determining the print quality results may include inputting the model reference image, the printed image set by the slicing software, and the global image into a trained machine learning algorithm (eg, a classification neural network) to obtain a trained machine learning algorithm.
- the print quality results of the algorithm output may include inputting the model reference image, the printed image set by the slicing software, and the global image into a trained machine learning algorithm (eg, a classification neural network) to obtain a trained machine learning algorithm.
- the print quality results of the algorithm output As mentioned previously, the model reference map and the print image set by the slicing software indicate the target print image at multiple different locations on the thermal bed, while the global image indicates the actual print image at the multiple different locations.
- Machine learning algorithms can be used to determine the error between the target value and the actual value of a printed image. In the presence of a large number of training samples, machine learning algorithms can be trained to detect the presence of printing defects.
- step 810, 820, 830, 840, 850, 860, 870, 880 are the same as the corresponding steps of the method shown in Figure 2, except that the method 800, after subtracting the hot bed background, also includes step 860: determining a brightness field indicating the uniformity of shooting illumination of the color camera, and based on the brightness field , perform illumination compensation on multiple local result images.
- the brightness field described above indicates the uniformity of illumination captured by a color camera.
- the reason for adding the illumination compensation step is that because the fill light is on one side of the camera, the illumination of the image is non-uniform, and illumination compensation is required.
- 9A and 9B respectively show a global image 900 formed by stitching multiple local result images without illumination compensation and a global image 910 formed by stitching multiple local result images with illumination compensation.
- determining the brightness field L1 indicating the uniformity of shooting illumination includes determining the brightness field L1 according to predetermined calibration information.
- the calibration information indicates the default illumination uniformity in the shooting field of view of the color camera.
- determining the brightness field L2 indicating the uniformity of the photographic illumination includes determining an average image of a plurality of first partial images.
- the pixel value of each pixel of the average image corresponds to an average of the pixel values of the corresponding pixels of the plurality of first partial images
- the brightness field L2 is determined based at least in part on the average image of the plurality of first partial images.
- the pixel value of each pixel of the average image corresponds to an average of the pixel values of corresponding pixels of the plurality of first partial images.
- the method of determining the brightness field can be determined according to specific circumstances and application scenarios.
- illumination compensation is performed on multiple local result images based on the brightness field.
- the influence of uneven brightness can be substantially eliminated by dividing the multiple local result images by the brightness field L pixel by pixel. It is worth noting that one of L1 or L2 can be used directly, and the effect is acceptable.
- FIG. 10 shows a structural block diagram of an apparatus 1000 for detecting printing quality of a 3D printer according to an example embodiment.
- the device 1000 includes a first module 1100, a second module 1200, a third module 1300, The fourth module 1400, the fifth module 1500, the sixth module 1600, the seventh module 1700 and the eighth module 1800.
- apparatus 1000 is described below in conjunction with 3D printer 100 of FIG. 1 .
- the first module 1100 is used to obtain a model reference map.
- the model reference diagram represents the occupied area of at least a portion of the first layer of the 3D model on the thermal bed 110 .
- the model reference diagram may be generated by parsing the control information generated by the slicing software.
- the second module 1200 is used to generate a scan path based on the model reference map, wherein the scan path is generated such that when the color camera 130 moves along the scan path as the print head 120 moves relative to the thermal bed 110, the The color camera 130 sequentially takes images of a plurality of different positions of the occupied area.
- the third module 1300 is used to enable the print head 120 to print the first layer of the 3D model on the hot bed 110 .
- the fourth module 1400 is configured to move the color camera 130 along the scanning path under the support of the print head 120 and capture a plurality of second partial images at the plurality of different positions during the movement, the plurality of second partial images being The second partial images respectively indicate corresponding images of the heat bed at the plurality of different positions after the first layer of the 3D model is printed on the heat bed 110 to generate a global image corresponding to the model reference image.
- the fifth module 1500 is used for the model reference image and the global image to determine a print quality result, where the print quality result indicates the print quality of at least a portion of the first layer of the 3D model.
- the device 1000 may also include:
- the sixth module 1600 is used to move the color camera 130 along the scanning path under the support of the print head 120 and capture a plurality of first partial images at a plurality of different positions during the movement, the plurality of first partial images being The partial images respectively indicate corresponding images of the heated bed 110 at a plurality of different locations.
- the seventh module 1700 is configured to determine a plurality of partial result images based on a corresponding difference between each second partial image of the plurality of second partial images and a corresponding first partial image of the plurality of first partial images. .
- a global image is generated by splicing multiple local result images according to the scan path.
- This operation can be performed by the eighth module.
- each module of the device 1000 shown in FIG. 10 may correspond to each step in the method 200 described with reference to FIG. 2 and the method 800 described in FIG. 8 . Accordingly, the operations, features and advantages described above with respect to method 200 and method 800 apply equally to apparatus 1000 and the modules it includes. For the sake of brevity, certain operations, features, and advantages are not described again here.
- each module discussed herein may be divided into multiple modules, and/or at least some functionality of multiple modules may be combined into a single module.
- Discussion herein of a particular module performing an action includes the specific module itself performing the action, or alternatively the specific module calling or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module).
- a specific module that performs an action may include the specific module that performs the action itself and/or another module that performs the action that the specific module calls or otherwise accesses.
- An SoC may include an integrated circuit chip including a processor (eg, central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more one or more components in a communications interface, and/or other circuitry), and may optionally execute received program code and/or include embedded firmware to perform functions.
- a processor eg, central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.
- memory eg., one or more one or more components in a communications interface, and/or other circuitry
- a non-transitory computer-readable storage medium storing instructions for causing the 3D printer 100 described above to perform the method described in any embodiment of the present disclosure is also provided.
- a computer program product including instructions for causing the 3D printer 100 as described above to execute the method described in any embodiment of the present disclosure.
Landscapes
- Chemical & Material Sciences (AREA)
- Engineering & Computer Science (AREA)
- Materials Engineering (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
Abstract
一种用于检测3D打印机的打印质量的方法。该方法包括:获取模型参考图;生成扫描路径;使打印头在热床上打印3D模型的首层;使彩色相机沿扫描路径移动并在上述多个不同位置处拍摄以获得多个第二局部图像,以生成与模型参考图对应的全局图像;基于模型参考图以及全局图像,确定打印质量结果。
Description
相关申请的交叉引用
本申请要求2022年9月15日提交的中国专利申请第202211124617.5号的优先权,其内容通过引用的方式整体并入本文。
本公开涉及3D打印技术领域,具体涉及用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。
3D打印技术,又称为增材制造技术,它是一种以数字模型文件为基础,运用可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印通常采用3D打印机来实现。3D打印机,又称三维打印机、立体打印机,是快速成型的一种工艺设备。3D打印机常在模具制造、工业设计等领域被用于制造模型或零部件。一种典型的3D打印技术是熔融沉积成型(Fused Deposition modeling,FDM),通过逐层地在预定路径中选择性地沉积熔化材料来构建物体,使用的材料是热塑性聚合物并且呈长丝形式。目前3D打印机的打印质量还有很大的提升空间。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种用于检测3D打印机的打印质量的方法,其中,所述3D打印机包括:热床;打印头,相对于所述热床可移动;彩色相机,布置在所述打印头上用于拍摄所述热床的一部分区域的图像;以及至少一个处理器,用于控制所述打印头相对于所述热床移动以逐层打印3D模型,所述方法包括:获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;基于所述模型参考图,生成扫描路径,其中,所述扫描路径被生成以使得当所述彩色相机随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述彩色相机依次拍摄所述占用区域的多个不同位置的图像;使所述打印头在所述热床上打印所述3D模型的首层;使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,所述多个第二局部图像分别指示在所述3D模型的首层被打印在所述热床上之后所述热床在所述多个不同位置处的相应图像,以生成与所述模型参考图对应的全局图像,其中,所述多个局部结果图像是基于所述多个第二局部图像中的每个第二局部图像与所述多个第一局部图像中对应的第一局部图像之间的相应差值确定的;以及基于所述模型参考图以及所述全局图像,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
其中,在一种可能的实现方式中,该方法还可以包括:使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第一局部图像,所述多个第一局部图像分别指示所述热床在所述多个不同位置处的相应图像。
相应地,所述使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,以
生成与所述模型参考图对应的全局图像,包括:使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像;基于所述多个第二局部图像中的每个第二局部图像与所述多个第一局部图像中对应的第一局部图像之间的相应差值,确定多个局部结果图像;根据所述扫描路径拼接所述多个局部结果图像,以生成与所述模型参考图对应的全局图像。
根据本公开的另一方面,提供了一种用于检测3D打印机的打印质量的装置,其中,所述3D打印机包括:热床;打印头,相对于所述热床可移动;彩色相机,布置在所述打印头上用于拍摄所述热床的一部分区域的图像;以及至少一个处理器,用于控制所述打印头相对于所述热床移动以逐层打印3D模型,所述装置包括:第一模块,用于获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;第二模块,用于基于所述模型参考图,生成扫描路径,其中,所述扫描路径被生成以使得当所述彩色相机随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述彩色相机依次拍摄所述占用区域的多个不同位置的图像;第三模块,用于使所述打印头在所述热床上打印所述3D模型的首层;第四模块,用于使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,所述多个第二局部图像分别指示在所述3D模型的首层被打印在所述热床上之后所述热床在所述多个不同位置处的相应图像,以生成与所述模型参考图对应的全局图像;以及第五模块,用于基于所述模型参考图以及所述全局图像,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
根据本公开的另一方面,提供了一种3D打印机,包括:热床;打印头,相对于所述热床可移动;彩色相机,布置在所述打印头上用于拍摄所述热床的一部分区域的图像;以及至少一个处理器,用于控制所述打印头相对于所
述热床移动以逐层打印3D模型,其中,所述至少一个处理器还被配置为执行指令以实现如上所述的方法。
根据本公开的另一方面,提供了一种存储有指令的非瞬时计算机可读存储介质,其中,所述指令在由如上所述3D打印机的所述至少一个处理器执行时,实现如上所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括指令,所述指令在由如上所述的3D打印机的所述至少一个处理器执行时,实现如上所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
图1示出了根据示例实施例的3D打印机的示意图;
图2示出了根据示例实施例的用于检测3D打印机的打印质量的方法的流程图;
图3示出了3D模型的首层在热床上的示例图形表示;
图4示出了与图3的示例对应的模型参考图;
图5示出了针对图4的模型参考图的扫描路径的示例;
图6示出了根据示例实施例的确定多个局部结果图像的步骤的流程图;
图7示出了根据示例实施例的确定打印质量结果的步骤的流程图;
图8示出了根据示例实施例的用于检测3D打印机的打印质量的另一方法的流程图;
图9A示出了未经光照补偿的多个局部结果图像拼接成的全局图像的示例;
图9B示出了图9A的全局图像经过光照补偿后的全局图像的示例;
图10示出了根据示例实施例的检测3D打印机的打印质量的装置的结构框图。
以下结合附图对本公开的示例实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示例。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。术语“基于”应解释为“至少部分地基于”。
3D打印技术通过逐层打印的方式来构造物体。在3D打印时,3D模型的首层的打印质量是决定该次打印能否成功的关键。如果首层的打印质量不好,将严重影响最终成型的3D模型的质量。因此,为了保证打印成功,需要对首层的打印质量进行检测。如果首层的打印质量不符合要求,可以及时停止打印,避免最终打印失败。目前的3D打印机没有对首层的打印质量进行检测的功能,因此无法即时获知首层质量情况。
发明人认识到,可以利用光学相机拍摄以及对拍摄图像进行图像处理来检测首层的打印质量。而且,相比其他质量检测技术(例如,利用深度检测
技术来检测是否存在打印空洞),利用光学相机和图像处理对设备要求较低,普通消费类彩色相机即可实现,因此也能够容易地集成到各种类型的3D打印设备。
下面将结合附图详细描述本公开的实施例。
图1示出了根据本公开的实施例的3D打印机100的示意图。如图1所示,3D打印机100包括热床110、相对于热床110可移动的打印头120、布置在打印头120上的彩色相机130,用于拍摄热床110的一部分的图像。此处,短语“相对于热床可移动的打印头”可以是指以下情况中的任一种:(1)热床保持静止,打印头移动;(2)热床移动,打印头保持静止;(3)热床和打印头均移动。彩色相机130的示例包括但不限于普通消费类2D彩色相机。在本文中,为了便于描述,以这样的普通消费类彩色2D相机为例来说明本公开的实施例,但本公开在此方面不受限制。
3D打印机100还包括至少一个处理器(未示出)。至少一个处理器用于基于切片软件生成的控制代码控制打印头120相对于热床110移动以逐层打印3D模型。如图1所示,至少一个处理器可以驱动电机(未示出),并进而驱动挤出轮150将料盘160上的打印材料170馈送至打印头120中。在打印头120的移动过程中,打印材料从打印头120中被挤出并沉积在热床110上。通常,切片软件运行在与3D打印机100通信连接的计算设备上,并且操作用于生成控制打印过程的控制信息。例如,切片软件可以提供图形用户界面(GUI)以允许用户选择或调整表示3D模型在热床110上的位置和朝向的布局信息。切片软件可以对3D模型的3D图形表示进行切片以生成切片数据(例如,切片数量、每层切片的高度等),然后将切片数据转换成用于控制3D打印机100的打印头120沿打印路径移动以打印各层切片的控制代码。这样的控制代码通常为gcode的形式。控制代码被下载到3D打
印机100以供至少一个处理器执行。为此目的,3D打印机100还可以包括用于存储程序和/或数据的至少一个存储器(未示出)。
至少一个处理器还用于实现在下文中描述的各种功能。在示例中,处理器包括执行存储在固件和/或软件(未示出)中的指令的微控制器或计算机。处理器可以是可编程的以执行本文中所描述的功能。如本文中所使用的,术语计算机不仅仅限于在本领域被称为计算机的这些集成电路,而宽泛地指代计算机、处理器、微控制器、微计算机、可编程逻辑控制器、专用集成电路以及其它可编程电路,且这些术语在本文中可互换地使用。本文所讨论的计算机和/或处理器可各自采用计算机可读介质或机器可读介质,其指代参与向处理器提供指令以供执行的任何介质。上文所讨论的存储器构成计算机可读介质。这样的介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。
将理解的是,在下文中结合FDM打印机来描述本公开的示例实施例,但是本公开并不限于FDM打印机。在实施例中,打印头120可以被配置为能够挤出任何适于3D打印的材料,包括例如热塑性塑料、合金、金属粉末、陶瓷材料、陶瓷粉末、聚合物等。
图2是示出根据示例实施例的用于检测3D打印机的打印质量的方法200的流程图。为了讨论的目的,下文结合图1所示的3D打印机100来描述方法200。在示例中,方法200可以由3D打印机100中的至少一个处理器来实现。
在步骤210,获取模型参考图。模型参考图表示3D模型的首层的至少一部分在热床110上的占用区域。
下面结合图3和图4来说明模型参考图。图3示出了3D模型的首层在热床310上的示例图形表示,并且图4示出了与图3的示例对应的模型参考图。在该示例中,3D模型的首层在热床310上的占用区域包括四个分立区
域340a、340b、340c和340d。这些区域可以由相同的打印材料或不同的打印材料形成。虽然分立区域340a、340b、340c和340d在图3中被示出为具有矩形形状,但是这只是说明性的;在其他示例中,3D模型的首层的占用区域可以具有其他形状或配置(例如,单个连通的区域),本公开在此方面不受限制。与图3的图形表示相对应,图5所示的模型参考图410包括四个像素区域440a、440b、440c和440d。一般地,模型参考图410可以是在热床坐标系oxyz(图3)下生成的,并且像素区域440a、440b、440c和440d在模型参考图410中的坐标与分立区域340a、340b、340c和340d在热床310上的坐标一一对应。将理解的是,虽然模型参考图410在图4中被示出为具有与图3的热床310的尺寸对应的尺寸,但这不是必须的。在其他示例中,模型参考图410可以仅具有与占用区域(图3中,作为整体的分立区域340a、340b、340c和340d)的边界框(bounding box)相对应的尺寸,从而节省存储空间。
还将理解的是,模型参考图并不一定需要表示3D模型的首层的全部,而可以只表示3D模型的首层的一部分。这是因为在一些情况下,可能只需要检测3D模型的首层的一部分的打印质量。例如,由于热床的温度分布可能是不均匀的,在一些热床区域温度较高,而另一些热床区域温度较低。在温度较低的热床区域,打印材料可能不能正常成型并因此出现打印缺陷。在这种情况下,可以只针对温度较低的热床区域来进行打印质量的检测,由此提高检测效率。
在一些实施例中,模型参考图可以通过解析切片软件生成的控制信息而生成。切片软件生成的控制信息可以包括用于打印3D模型的首层的控制代码(例如,gcode)。在这样的实施例中,获取模型参考图(步骤210)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该用于打印3D模型的首层的控
制代码而生成。替换地,获取模型参考图(步骤210)可以包括:从3D打印机100本地读取模型参考图。模型参考图由至少一个处理器通过解析该用于打印3D模型的首层的控制代码而生成,或者直接从模型的切片里提取。由于控制代码规定了打印头的运动路径,因此可以从其恢复出3D模型的首层在热床上的占用区域。
在一些实施例中,切片软件生成的控制信息包括表示3D模型在热床110上的位置和朝向的布局信息。在这样的实施例中,获取模型参考图(步骤210)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该布局信息而生成。由于布局信息定义了3D模型在热床上的位置和朝向,因此可以从其恢复出3D模型的首层在热床上的占用区域。
返回参考图2,在步骤220,基于模型参考图,生成扫描路径。扫描路径被生成以使得当彩色相机130随着打印头120相对于热床110的移动而沿扫描路径移动时,彩色相机130依次拍摄占用区域的多个不同位置的图像。
图5示出了针对图4的模型参考图的扫描路径的示例。在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤220)可以包括以下操作:
(1a)确定该至少一个像素区域各自的边界框,以得到与该至少一个像素区域分别对应的至少一个边界框。在图5的示例中,可以确定像素区域440a、440b、440c和440d各自的边界框,从而得到四个边界框。
(1b)在模型参考图中确定一条扫描路径,表示彩色相机的视场(FOV)的虚拟框沿该扫描路径移动以每次覆盖作为整体的该至少一个边界框的一部分,并最终遍历该至少一个边界框的全部区域。在图5的示例中,示出了表示彩色相机130的FOV的虚拟框,并且以空心箭头示出了所确定的扫描
路径。在该示例中,扫描路径为Zig-Zag路径,但这是说明性的而非限制性的。
将理解的是,生成边界框的操作不是必须的。在一些实施例中,可以针对模型参考图中表示3D模型的首层在热床上的占用区域的像素区域的原始形状,来生成扫描路径。在其他实施例中,还可以采用任何其他适当的方式来生成扫描路径,只要深度传感器可以测量3D模型的首层在热床上的占用区域的多个目标位置即可。
在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤220)可以包括以下操作:
(2a)确定该至少一个像素区域各自的连通域,以得到与该至少一个像素区域分别对应的至少一个连通域。在图5的示例中,可以确定像素区域440a、440b、440c和440d各自的连通域,从而得到四个连通域。
(2b)针对每个连通域,在模型参考图中确定一条移动路径,表示彩色相机的视场的虚拟框沿该移动路径移动以每次覆盖该连通域的一部分,并最终遍历该连通域的全部区域。这可以与上面描述的操作(1b)类似,并且不再赘述。
(2c)将针对所有连通域的移动路径合并为一条合并路径,以作为所述扫描路径。通过针对占用区域的每个分立区域生成单独的扫描路径,并将各个单独的扫描路径合并为最终的扫描路径,可以减少针对非目标区域(例如,图5中的空白区域)的扫描,从而提高检测效率。
将理解的是,在实施例中,扫描路径是针对彩色相机130的视场而生成的,而彩色相机130的扫描路径不一定与打印头120的移动路径重合,因为彩色相机130的取向和打印头120的取向之间可能存在旋转和/或平移。可以通过外参标定,预先标定打印头120与彩色相机130在三维坐标系(例如,
热床坐标系)下的旋转和/或平移,并将针对彩色相机130的扫描路径转换成针对打印头120的移动路径,并生成相应的控制代码来控制打印头120的移动,使得彩色相机130在打印头120的承载下沿着扫描路径移动。外参标定是已知的技术,为了不模糊本公开的主题,在此不做详细描述。
返回参考图2,在步骤230,使彩色相机130在打印头120的承载下沿扫描路径移动,并使彩色相机130在该移动期间在多个不同位置处拍摄以获得多个第一局部图像。多个第一局部图像分别指示热床110在多个不同位置处的相应图像。
在一些实现方式中,按照彩色相机130在扫描路径上拍摄各个第一局部图像时打印头120在热床坐标系下的物理坐标,对多个第一局部图像中的各个第一局部图像进行编号,并存储到内存中。编号的目的是使得各个第一局部图像与热床110上的所述多个不同位置可以对应上。将理解的是,多个第一局部图像可以在相机坐标系下存储,也可以转换到图像坐标系下存储。下文以在相机坐标系下存储为例说明。
在步骤240,使打印头120在热床110上打印3D模型的首层。
在步骤250,使彩色相机130在打印头120的承载下沿扫描路径移动并在该移动期间在上述多个不同位置处拍摄以获得多个第二局部图像。多个第二局部图像分别指示在3D模型的首层被打印在热床110上之后热床110在多个不同位置处的相应图像。这一步骤使得彩色相机130按照与步骤230中相同的扫描路径在同样的多个不同位置处再次进行拍摄。
同样地,在一些实现方式中,可以按照彩色相机130在扫描路径上拍摄各个光学图像时打印头120在热床坐标系下的物理坐标,对多个第二局部图像中的各个第二局部图像进行编号,并在相机坐标系下存储到内存中。这使得各个第二局部图像与热床110上的所述多个不同位置可以对应上,并且因此也与步骤230中存储的各个第一局部图像也对应上。
在步骤260,基于多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像之间的相应差值,确定多个局部结果图像。多个局部结果图像分别代表在多个不同位置处的减除热床背景后的相应图像。进一步参见图6,确定多个局部结果图像(步骤260)可以包括以下操作:
在步骤610,通过计算多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像之间的差值,得到多个差值图像。此处,术语“多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像”是指该第二局部图像与该第一局部图像是由彩色相机在同一位置处拍摄得到的。例如,第二局部图像以像素矩阵I表示,对应的第一局部图像(热床图像)以像素矩阵J表示,则差值图像的像素矩阵D=abs(I-J)。
在步骤620,针对每个差值图像,确定用于判断有效像素的阈值,每个有效像素指示该像素属于所述占用区域。在一些实施例中,计算差值图像对应的第一局部图像(热床图像)中的各像素的平均方差,并基于该平均方差,确定阈值。在一些示例中,阈值可以与平均方差成正比。进一步地,阈值可以具有上下界。例如,计算得到各像素的平均方差为mean_std。将判断有效像素的阈值的定义为diff_thresh=clip(2*mean_std,30,80),即阈值diff_thresh等于2倍的mean_std,但不超过范围[30,80]。
在步骤630,针对每个差值图像中的每个像素进行掩模操作。掩模操作包括:将每个像素的像素值与所确定的阈值进行比较;响应于该像素的像素值大于该阈值,则确定该像素属于有效像素并且将该像素的像素值替换为对应的第二局部图像的像素的像素值,否则保留该像素值。
在步骤640,将经掩模操作之后的多个差值图像作为多个局部结果图像,从而获得多个局部结果图像。
返回参考图2,在步骤270,根据扫描路径拼接多个局部结果图像,以生成与模型参考图对应的全局图像。其中,多个局部结果图像是基于多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像之间的相应差值确定的。
在一些实现方式中,根据扫描路径拼接多个局部结果图像包括:按照彩色相机130在扫描路径上拍摄各个第一局部图像和相对应的各个第二局部图像的顺序,将对应得到的各个局部结果图像拼接在一起。上述顺序可以根据在拍摄各个第一局部图像和相对应的各个第二局部图像时的存储在内存中的编号确定。
在一些实施例中,上述拼接操作包括:响应于确定多个局部结果图像彼此重叠,对多个局部结果图像之间的重叠位置处的像素的像素值进行平均或进行线性插值。
在步骤270中,多个局部结果图像分别代表在多个不同位置处的减除热床背景后的相应图像。多个局部结果图像是基于多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像之间的相应差值确定的。
进一步参见图6,多个局部结果图像(步骤270)是通过以下操作确定的:
在步骤610,通过计算多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像之间的差值,得到多个差值图像。此处,术语“多个第二局部图像中的每个第二局部图像与多个第一局部图像中对应的第一局部图像”是指该第二局部图像与该第一局部图像是由彩色相机在同一位置处拍摄得到的。例如,第二局部图像以像素矩阵I表示,对应的第一局部图像(热床图像)以像素矩阵J表示,则差值图像的像素矩阵D=abs(I-J)。
在步骤620,针对每个差值图像,确定用于判断有效像素的阈值,每个有效像素指示该像素属于所述占用区域。在一些实施例中,计算差值图像对应的第一局部图像(热床图像)中的各像素的平均方差,并基于该平均方差,确定阈值。在一些示例中,阈值可以与平均方差成正比。进一步地,阈值可以具有上下界。例如,计算得到各像素的平均方差为mean_std。将判断有效像素的阈值定义为diff_thresh=clip(2*mean_std,30,80),即阈值diff_thresh等于2倍的mean_std,但不超过范围[30,80]。
在步骤630,针对每个差值图像中的每个像素进行掩模操作。掩模操作包括:将每个像素的像素值与所确定的阈值进行比较;响应于该像素的像素值大于该阈值,则确定该像素属于有效像素并且将该像素的像素值替换为对应的第二局部图像的像素的像素值,否则保留该像素值。经掩模操作之后的多个差值图像即为多个局部结果图像。
在步骤280,基于模型参考图以及所述全局图像,确定打印质量结果,打印质量结果指示所述3D模型的首层的至少一部分的打印质量。应当理解,模型参考图指示多个不同位置处的目标打印图像,全局图像指示多个不同位置处的实际打印图像。因此,可以根据目标打印图像与实际打印图像的误差来检测是否存在打印缺陷,或者打印缺陷的严重程度。
进一步参见图7,确定打印质量结果包括(步骤280)可以包括以下操作:
在步骤710,比较多个不同位置处的目标打印图像与多个不同位置中对应位置处的实际打印图像。
在步骤720,基于比较操作来确定打印质量结果。
还将理解,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在下文中,提供一些说明性的实现方式,不应视为限制性的。
在一些实施例中,上述比较步骤710可以包括:
(3a)确定3D模型的首层的正常打印阈值。所述正常打印阈值的上下界与首层设定的打印高度、打印材料相关。
(3b)基于所确定的正常打印阈值,将全局图像和模型参考图二值化。所述正常打印阈值可以是二值化阈值,二值化阈值的上下界与首层设定的打印高度、打印材料相关,用于评价首层是否正常打印。在一些实施例中,使用Lab算法将全局图像和模型参考图转到Lab色彩空间,取亮度分量进行二值化,得到全局图像的二值化图像B和模型参考图的二值化图像R。当像素的亮度值大于二值化阈值时,该像素的亮度值被设置为例如255;当像素的亮度值小于二值化阈值时,该像素的亮度值被设置为例如0。在一个示例中,二值化阈值可以是上文关于减除背景使用的阈值diff_thresh/2。二值化是已知的技术,为了不模糊本公开的主题,在此不作详细描述。
(3b)通过将经二值化后的全局图像和模型参考图的对应像素的像素值进行比较,标识全局图像中的错误像素,其中,错误像素指示3D模型的首层未正常打印。此处,术语“经二值化后的全局图像和模型参考图的对应像素”是指二值化全局图像中的像素和二值化模型参考图中的像素,两者在各自的图像中位于相同的相对位置(例如,各自的像素坐标系下相同的像素坐标)处。继续前文的示例(得到全局图像的二值化图像B和模型参考图的二值化图像R),遍历模型参考图的二值化图像R,如果某个位置R(x,y)>0&B(x,y)=0,则表示这里是空洞,并标记为错误像素。遍历完得到误差图errmap。
(3d)确定模型参考图中表示占用区域的至少一个像素区域。每个像素区域通常为连通域的形式,该连通域中的每个像素表示热床上的对应位置被3D模型的首层占用。应当理解,表示占用区域的不同像素区域可以具有不同的面积。出于检测效率的目的,可以只针对一部分面积较大(例如大于阈值T1)的像素区域而不是全部像素区域进行检测。
(3e)针对模型参考图中表示占用区域的至少一个像素区域中的至少一者:
(3e-1)统计全局图像中与该像素区域对应的各个像素中的错误像素数量。例如,对于面积大于阈值T1的每个连通域C,分别统计全局图像在该连通域C中的像素数量n。
(3e-2)将错误像素数量与对应的阈值相比较,和/或将错误像素数量与全局图像中与该像素区域对应的各个像素的数量之比与对应的阈值相比较。
上述模型参考图中表示占用区域的至少一个像素区域中的每个像素区域通常为连通域的形式,该连通域中的每个像素表示热床上的对应位置被3D模型的首层占用。应当理解,表示占用区域的不同像素区域可以具有不同的面积。出于检测效率的目的,可以只针对一部分面积较大(例如大于阈值T1)的像素区域而不是全部像素区域进行检测。
如前所述,可以通过各种可能的方式来度量首层打印图像的目标值与实际值之间的误差。此处,正常像素数量、错误像素数量以及正常像素与错误像素之间的相对数量关系都是反映首层打印图像的目标值与实际值之间的误差的度量准则。在一个示例中,可以定义误差级别l如下:
其中,T2、T3、T4均为阈值,n为全局图像在该连通域C中的像素数量。这些阈值可以是预先设定的或者是自适应的。例如,作为连通域C中的像素数量的函数,这些阈值可以随着连通域C中的像素数量的不同而自适应变化。在该示例中,误差级别l的取值可以为0、1或2。将理解的是,这样的误差级别只是说明性而非限制性的。
基于步骤710中的比较结果,在步骤720中可以确定打印质量结果。继续上面关于误差级别l的示例,可以定义如下判定逻辑:
如果任意一个连通域C出现错误级别等于2的,则判定打印质量结果为“错误”,输出最终的错误级别2。
否则,如果出现错误级别等于1的连通域大于等于2个,且总的错误像素数大于阈值T4或错误像素比例大于阈值T5,也判定打印质量结果为“错误”,输出最终的错误级别2。
否则,如果出现错误级别等于1的连通域大于等于1个,判定打印质量结果为“警告”,输出最终的错误级别1。
否则,判定打印质量结果为“正常”,最终的错误级别0。
将理解的是,这样的判断逻辑只是说明性而非限制性的。在其他实施例中,可以适用其他的判定逻辑。例如,可以根据首层打印图像的目标值与实际值之间的误差的累加绝对值来进行打印质量结果的判定。应当理解,如果知晓首层打印图像的目标值与实际值之间的误差,就可以设计各种可能的判定准则来检测打印质量。本公开不可能穷尽所有的判定准则,但是这不影响这些其他的判定准则也落入本公开的范围内。
在一些实施例中,打印质量结果包括指示检测可靠程度的置信度,置信度为有效像素的总数和所述模型参考图的像素总数的函数。例如,置信度为有效像素的总数和所述模型参考图的像素总数之比。在其他实施例中,置信度为有效像素的总数和所述模型参考图的像素总数的其他适当的函数。
受各种系统误差的影响,实际打印的首层图案与模型参考图的首层图案不一定是严格对齐的,因此可还需要对模型参考图和全局图像进行配准,以找出最佳匹配位置下的误差。在一些实施例中,在操作(3e)(即,针对针对至少一个像素区域中的至少一者,统计全局图像中与该像素区域对应的各个像素中的错误像素数量之前,可以将全局图像与模型参考图配准,以使得全局图像和模型参考图根据配准准则被对齐。
在实施例中,可以使用各种配准方法,例如:
(1)基于灰度的模板匹配算法:根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像。例如,将全局图像和模型参考图进行二值化,并对二值化后的全局图像和模型参考图进行模板匹配。
(2)基于特征的匹配算法:首先提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。图像的特征可以包括点、线(边缘)、区域(面)等,也可以分为局部特征和全局特征。
(3)基于关系的匹配算法:利用机器学习算法来对图像进行匹配。
在一个示例中,可以使用暴力搜索法,找到全局图像与模型参考图的最佳匹配位置,然后在最佳匹配位置下计算误差。具体来说,将全局图像从x,y两个方向进行移动,在新位置计算误差,如果新位置的错误像素数比之前记录的最佳位置的错误像素数少,则将新位置更新为最佳匹配位置。为了减少计算量,搜索范围可以限制在一个窗口范围(比如20个像素,对应物理坐标的2mm)。并且,如果新位置的错误像素数如果比上一个位置的错误像素数多很多(比如多20%),就停止当前方向的搜索。
如前所述,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在一些实施例中,确定打印质量结果可以包括:将模型参考图、切片软件设定的打印图像以及全局图像输入经训练的机器学习算法(例如,分类神经网络),以得到经训练的机器学习算法输出的打印质量结果。如前所述,模型参考图和切片软件设定的打印图像指示热床上的多个不同位置处的目标打印图像,而全局图像指示所述多个不同位置处的实际打印图像。机器学习算法可以适用于确定打印图像的目标值与实际值之间的误差这种应用场景。在存在大量训练样本的情况下,可以对机器学习算法进行训练,来检测是否存在打印缺陷。
图8是示出根据示例实施例的用于检测3D打印机的打印质量的另一方法800的流程图。方法800的各步骤(步骤810、820、830、840、850、860、
870、880)与图2示出的方法的对应步骤相同,区别在于方法800在减除热床背景之后,还包括步骤860:确定指示彩色相机的拍摄光照均匀程度的亮度场,并且基于亮度场,对多个局部结果图像进行光照补偿。上述亮度场指示彩色相机的拍摄光照均匀程度。增加光照补偿步骤的原因在于:因为补光灯在相机的一侧,图像的光照是非均匀的,需要进行光照补偿,否则拼接的图像会有明显的接缝,会影响检测效果。图9A和图9B分别示出了未经光照补偿的多个局部结果图像拼接成的全局图像900和经过光照补偿的多个局部结果图像拼接成的全局图像910。
在一些实施例中,确定指示拍摄光照均匀程度的亮度场L1包括:根据预先确定的标定信息确定亮度场L1。所述标定信息指示彩色相机的拍摄视场中的默认光照均匀程度。
在另一些实施例中,确定指示拍摄光照均匀程度的亮度场L2包括:确定多个第一局部图像的平均图像。所述平均图像的各像素的像素值对应于多个第一局部图像的对应像素的像素值的平均值,并且至少部分地基于多个第一局部图像的平均图像来确定亮度场L2。所述平均图像的各像素的像素值对应于所述多个第一局部图像的对应像素的像素值的平均值。在一些示例中,可以基于上述得到的亮度场L1和亮度场L2的平均确定总亮度场。例如,总亮度场L=(L1+L2)/2。
应理解,可以根据具体情况和应用场景,确定亮度场的确定方式。
在确定亮度场之后,基于该亮度场,对多个局部结果图像进行光照补偿。在一些实施例中,将多个局部结果图像逐像素除以亮度场L,即可基本消除亮度不均匀的影响。值得注意的是,可以直接使用L1或L2的其中一个,效果也是可以接受的。
图10示出了根据示例实施例的检测3D打印机的打印质量的装置1000的结构框图。装置1000包括第一模块1100、第二模块1200、第三模块1300、
第四模块1400、第五模块1500、第六模块1600、第七模块1700和第八模块1800。为了讨论的目的,下面结合图1的3D打印机100描述装置1000。
第一模块1100用于获取模型参考图。所述模型参考图表示所述3D模型的首层的至少一部分在所述热床110上的占用区域。其中,所述模型参考图可以是通过解析所述切片软件生成的控制信息而生成的。
第二模块1200用于基于模型参考图,生成扫描路径,其中,扫描路径被生成以使得当彩色相机130随着打印头120相对于热床110的移动而沿所述扫描路径移动时,所述彩色相机130依次拍摄所述占用区域的多个不同位置的图像。
第三模块1300用于使打印头120在热床110上打印所述3D模型的首层。
第四模块1400用于使彩色相机130在打印头120的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,所述多个第二局部图像分别指示在所述3D模型的首层被打印在热床110上之后热床在所述多个不同位置处的相应图像,以生成与所述模型参考图对应的全局图像。
第五模块1500用于所述模型参考图以及所述全局图像,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
其中,在一些可能的实现方式中,装置1000还可以包括:
第六模块1600用于使彩色相机130在打印头120的承载下沿所述扫描路径移动并在该移动期间在多个不同位置处拍摄以获得多个第一局部图像,所述多个第一局部图像分别指示热床110在多个不同位置处的相应图像。
第七模块1700用于基于多个第二局部图像中的每个第二局部图像与所述多个第一局部图像中对应的第一局部图像之间的相应差值,确定多个局部结果图像。
相应地,全局图像根据所述扫描路径拼接多个局部结果图像生成。该操作可以由第八模块执行。应当理解,图10中所示装置1000的各个模块可以与参考图2描述的方法200以及图8描述的方法800中的各个步骤相对应。由此,上面针对方法200和方法800描述的操作、特征和优点同样适用于装置1000及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图10描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,这些模块中的一个或多个可以一起被实现在片上系统(SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个
通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的实施例,还提供了一种存储有指令的非瞬时计算机可读存储介质,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。
根据本公开的实施例,还提供了一种计算机程序产品,包括指令,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (14)
- 一种用于检测3D打印机的打印质量的方法,其中,所述3D打印机包括:热床;打印头,相对于所述热床可移动;彩色相机,布置在所述打印头上用于拍摄所述热床的一部分区域的图像;以及至少一个处理器,用于控制所述打印头相对于所述热床移动以逐层打印3D模型,所述方法包括:获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;基于所述模型参考图,生成扫描路径,其中,所述扫描路径被生成以使得当所述彩色相机随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述彩色相机依次拍摄所述占用区域的多个不同位置的图像;使所述打印头在所述热床上打印所述3D模型的首层;使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,所述多个第二局部图像分别指示在所述3D模型的首层被打印在所述热床上之后所述热床在所述多个不同位置处的相应图像,以生成与所述模型参考图对应的全局图像;以及基于所述模型参考图以及所述全局图像,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
- 如权利要求1所述的方法,其中,所述方法还包括:使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第一局部图像,所述多个第一局部图像分别指示所述热床在所述多个不同位置处的相应图像;所述使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像,以生成与所述模型参考图对应的全局图像,包括:使所述彩色相机在所述打印头的承载下沿所述扫描路径移动并在该移动期间在所述多个不同位置处拍摄以获得多个第二局部图像;基于所述多个第二局部图像中的每个第二局部图像与所述多个第一局部图像中对应的第一局部图像之间的相应差值,确定多个局部结果图像;根据所述扫描路径拼接所述多个局部结果图像,以生成与所述模型参考图对应的全局图像。
- 如权利要求2所述的方法,其中,所述多个局部结果图像是通过包括以下各项的操作确定的:通过计算所述多个第二局部图像中的每个第二局部图像与所述多个第一局部图像中对应的第一局部图像之间的差值,得到多个差值图像;针对每个差值图像,确定用于判断有效像素的阈值,每个有效像素指示该像素属于所述占用区域;针对每个差值图像中的每个像素进行掩模操作,所述掩模操作包括:将该像素的像素值与所述阈值进行比较,并且响应于该像素的像素值大于所述阈值,则确定该像素属于所述有效像素并且将该像素的像素值替换为对应的第二局部图像的像素的像素值,其中,经掩模操作之后的所述多个差值图像为所述多个局部结果图像。
- 如权利要求3所述的方法,其中,所述确定用于判断有效像素的阈值包括:基于所述差值图像对应的第一局部图像中的各像素的平均方差,确定所述阈值。
- 如前述权利要求中2至4任一项所述的方法,还包括,在根据所述扫描路径拼接多个局部结果图像之前:基于亮度场对所述多个局部结果图像进行光照补偿,所述亮度场指示所述彩色相机的拍摄光照均匀程度。
- 如权利要求5所述的方法,其中,所述亮度场是根据预先确定的标定信息确定的,其中,所述标定信息指示所述彩色相机的拍摄视场中的默认光照均匀程度。
- 如权利要求5所述的方法,其中,所述亮度场是至少部分地基于所述多个第一局部图像的平均图像确定的,其中,所述平均图像的各像素的像素值对应于所述多个第一局部图像的对应像素的像素值的平均值。
- 如前述权利要求中任一项所述的方法,其中,所述模型参考图指示所述多个不同位置处的目标打印图像,所述全局图像指示所述多个不同位置处的实际打印图像,其中,所述确定打印质量结果包括:比较所述多个不同位置处的目标打印图像与所述多个不同位置中对应位置处的实际打印图像;以及基于所述比较来确定所述打印质量结果。
- 如权利要求3或4所述的方法,其中,所述打印质量结果包括指示检测可靠程度的置信度,所述置信度为所述有效像素的总数和所述模型参考图的像素总数的函数。
- 如前述权利要求2至7中任一项所述的方法,其中,所述根据所述扫描路径拼接所述多个局部结果图像包括:响应于确定所述多个局部结果图像彼此重叠,对所述多个局部结果图像之间的重叠位置处的像素的像素值进行平均或进行线性插值。
- 如前述权利要求中任一项所述的方法,其中,所述模型参考图是通过解析切片软件生成的控制信息而生成的。
- 一种3D打印机,包括:热床;打印头,相对于所述热床可移动;彩色相机,布置在所述打印头上用于拍摄所述热床的一部分区域的图像;以及至少一个处理器,用于控制所述打印头相对于所述热床移动以逐层打印3D模型,其中,所述至少一个处理器还被配置为执行指令以实现如权利要求1至11中任一项所述的方法。
- 一种存储有指令的非瞬时计算机可读存储介质,其中,所述指令在由根据权利要求12所述的3D打印机的所述至少一个处理器执行时,实现根据权利要求1至11中任一项所述的方法。
- 一种计算机程序产品,包括指令,所述指令在由根据权利要求12所述的3D打印机的所述至少一个处理器执行时,实现根据权利要求1至11中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124617.5A CN116175977A (zh) | 2022-09-15 | 2022-09-15 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
CN202211124617.5 | 2022-09-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024055742A1 true WO2024055742A1 (zh) | 2024-03-21 |
Family
ID=86431344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/107561 WO2024055742A1 (zh) | 2022-09-15 | 2023-07-14 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116175977A (zh) |
WO (1) | WO2024055742A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116175977A (zh) * | 2022-09-15 | 2023-05-30 | 上海轮廓科技有限公司 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108638497A (zh) * | 2018-04-28 | 2018-10-12 | 浙江大学 | 一种3d打印机打印模型外表面的全方位检测系统和方法 |
US20200084320A1 (en) * | 2017-01-25 | 2020-03-12 | Hewlett-Packard Development Company, L.P. | Print quality diagnosis |
CN112596981A (zh) * | 2020-12-24 | 2021-04-02 | 深圳市汉森软件有限公司 | 三维打印进程的监测方法、装置、设备及存储介质 |
CN114770946A (zh) * | 2022-04-24 | 2022-07-22 | 上海轮廓科技有限公司 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
CN114789555A (zh) * | 2022-05-13 | 2022-07-26 | 上海轮廓科技有限公司 | 用于3d打印机的方法、装置、3d打印机和存储介质 |
CN116175977A (zh) * | 2022-09-15 | 2023-05-30 | 上海轮廓科技有限公司 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
-
2022
- 2022-09-15 CN CN202211124617.5A patent/CN116175977A/zh active Pending
-
2023
- 2023-07-14 WO PCT/CN2023/107561 patent/WO2024055742A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200084320A1 (en) * | 2017-01-25 | 2020-03-12 | Hewlett-Packard Development Company, L.P. | Print quality diagnosis |
CN108638497A (zh) * | 2018-04-28 | 2018-10-12 | 浙江大学 | 一种3d打印机打印模型外表面的全方位检测系统和方法 |
CN112596981A (zh) * | 2020-12-24 | 2021-04-02 | 深圳市汉森软件有限公司 | 三维打印进程的监测方法、装置、设备及存储介质 |
CN114770946A (zh) * | 2022-04-24 | 2022-07-22 | 上海轮廓科技有限公司 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
CN114789555A (zh) * | 2022-05-13 | 2022-07-26 | 上海轮廓科技有限公司 | 用于3d打印机的方法、装置、3d打印机和存储介质 |
CN116175977A (zh) * | 2022-09-15 | 2023-05-30 | 上海轮廓科技有限公司 | 用于检测3d打印机的打印质量的方法和装置、3d打印机 |
Also Published As
Publication number | Publication date |
---|---|
CN116175977A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI798329B (zh) | 基板之缺陷檢查裝置、基板之缺陷檢查方法及記錄媒體 | |
US10008005B2 (en) | Measurement system and method for measuring multi-dimensions | |
WO2024055742A1 (zh) | 用于检测3d打印机的打印质量的方法和装置、3d打印机 | |
US8786700B2 (en) | Position and orientation measurement apparatus, position and orientation measurement method, and storage medium | |
CN107209935B (zh) | 用于测量移动文档图像质量的系统及方法 | |
WO2023207861A1 (zh) | 用于检测3d打印机的打印质量的方法和装置、3d打印机 | |
US20120019728A1 (en) | Dynamic Illumination Compensation For Background Subtraction | |
KR102103853B1 (ko) | 결함 검사 장치 및 결함 검사 방법 | |
Okarma et al. | Improved quality assessment of colour surfaces for additive manufacturing based on image entropy | |
JP7214432B2 (ja) | 画像処理方法、画像処理プログラム、記録媒体、画像処理装置、生産システム、物品の製造方法 | |
CN103685911A (zh) | 图像处理装置及图像处理方法 | |
CN109000583A (zh) | 使用激光位移传感器进行有效表面测量的系统和方法 | |
JP2019158628A (ja) | 検査装置、検査方法、及び検査プログラム | |
CN111833371A (zh) | 一种基于pq-mean稀疏测度的图像边缘检测方法 | |
JP6547626B2 (ja) | 画像の特徴量に関する処理システム、処理方法及びプログラム | |
CN116559170A (zh) | 一种产品质量检测方法及相关系统 | |
CN113902740A (zh) | 图像模糊程度评价模型的构建方法 | |
US20140078290A1 (en) | Dynamic imaging system | |
KR102260556B1 (ko) | 전역 정보와 지역 정보 통합을 통한 딥러닝 기반 주차구획 검출 방법 및 장치 | |
JP2010139379A (ja) | 欠陥検出方法、欠陥検出装置、これらを用いたフィルムの製造方法及び装置 | |
CN115578441B (zh) | 基于深度学习的车辆侧面图像拼接和车辆尺寸测量方法 | |
WO2023160061A1 (zh) | 图像中运动对象的确定方法、装置、电子设备和存储介质 | |
TW202329043A (zh) | 缺陷檢測方法、缺陷檢測系統和記錄媒體 | |
JP2021039457A (ja) | 画像処理方法、エッジモデル作成方法、ロボットシステム、および物品の製造方法 | |
CN115359034A (zh) | 一种缺陷检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23864478 Country of ref document: EP Kind code of ref document: A1 |