Program and data processing apparatus
The data processing device addresses the challenge of handling deformed flexible objects by ensuring width processing is only performed when wrinkles are absent, maintaining continuous transport and reducing processing errors.
Patent Information
- Application Number
- JP2024092296
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-06
- Publication Date
- 2025-12-18
AI Technical Summary
Flexible sheet-like objects, such as fabric or film, can deform during transportation, making it challenging to handle their width effectively.
A data processing device equipped with a wrinkle judgment function, width detection function, width processing function, and stop function to determine and manage the width of the object during transport, ensuring that processing is only performed when wrinkles are absent.
This approach reduces the likelihood of processing errors by avoiding width processing during wrinkles and allows continuous transport, enhancing the reliability of width handling operations.
Smart Images

Figure 2025184138000001_ABST
Abstract
Description
[Technical Field]
[0001] This specification relates to techniques for handling the width of sheet-like objects during transport. [Background technology]
[0002] Various sheet-like objects, such as fabric, are transported for various processes. For example, Patent Document 1 discloses a technology for feeding fabric to a drying device, a high-speed spiral cutter, or the like. Specifically, the technology includes a first sensor that measures the distance to the fabric at the selvage of the fabric, and an abnormality detection means that detects abnormalities in the fabric based on changes in the distance measured by the first sensor. When a folded selvage occurs in the selvage of the fabric being fed in an open state, the distance to the fabric measured by the first sensor becomes shorter by an amount substantially corresponding to the thickness of the fabric than the distance to the fabric fed normally. When the fabric shifts and the first sensor can no longer measure the distance to the fabric, the distance measured by the first sensor becomes longer by at least an amount corresponding to the thickness of the fabric. When a change occurs in the distance to the fabric measured by the first sensor, the abnormality detection means detects an abnormality, such as a folded selvage or a shift in the fabric. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Utility Model Application Publication No. 6-37392 Summary of the Invention [Problem to be solved by the invention]
[0004] The sheet-like object may be flexible (for example, cloth, film, etc.). The flexible object may be deformed during transportation. When a flexible object is transported, there is room for ingenuity in handling the width of the object.
[0005] This specification discloses techniques for dealing with object width. [Means for solving the problem]
[0006] The techniques disclosed in this specification can be implemented in the following application examples.
[0007] [Application Example 1] A program that causes a computer to implement a wrinkle judgment function that performs wrinkle judgment to determine whether a flexible sheet-like object has wrinkles using an image captured of the object while it is being transported, a width detection function that detects the width of the object, a width processing function that performs width processing including one or both of classifying the width and recording the width, and a stop function that stops the transport of the object, wherein in a first specific case in which it is determined that the object has wrinkles, the width processing function does not perform the width processing, and the stop function continues the transport of the object without stopping it, and in a second specific case in which it is determined that the object does not have wrinkles, the width processing function performs the width processing, and the stop function continues the transport of the object without stopping it.
[0008] According to the above configuration, in the first specific case where it is determined that the object has wrinkles, width processing is not performed, thereby reducing the possibility that width processing will be performed on the object while it has wrinkles. Furthermore, since the transport of the object continues without being stopped, wrinkles may become smaller as the object is transported. In the second specific case where it is determined that the object does not have wrinkles, width processing is performed, thereby increasing the possibility that width processing will be performed on the object without wrinkles. Furthermore, since the transport of the object continues without being stopped, processing that handles the width of the object can continue.
[0009] [Application Example 2] A program that causes a computer to implement a wrinkle judgment function that uses an image of a flexible sheet-like object being transported to perform a wrinkle judgment to determine whether the object has wrinkles, a width detection function that detects the width of the object, a recording function that records the results of the wrinkle judgment in correspondence with the width, and a stop function that stops the transport of the object, wherein in a first specific case in which it is judged that the object has wrinkles and in a second specific case in which it is judged that the object does not have wrinkles, the stop function continues the transport of the object without stopping it.
[0010] According to the above configuration, various processes associated with the transport of the object can be continued.
[0011] The technology disclosed in this specification can be realized in various forms, such as a data processing method and a data processing device, a computer program for realizing the functions of the method or device, a recording medium (e.g., a non-temporary recording medium) on which the computer program is recorded, and the like. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is an explanatory diagram illustrating a data processing device according to an embodiment; [Figure 2] 1 is a perspective view of digital cameras 111-114, fabric 700, conveying device 900, and light source 130. FIG. [Figure 3] 10 is a flowchart illustrating an example of a transport inspection process. [Figure 4] 10A and 10B are flowcharts illustrating an example of a transport inspection process. [Figure 5] (A) and (B) are diagrams showing an example of an image to be processed, (C) is a diagram showing an example of wrinkles, and (D) is a diagram showing an example of a bounding box. [Figure 6] 10A to 10M are diagrams showing an example of a calculation process for the direction in which the warp threads extend. [Figure 7]10A and 10B are flowcharts illustrating a part of a second embodiment of the transport and inspection process. [Figure 8] 10A to 10I are diagrams showing another embodiment of the process for calculating the directions D1 and D2. DETAILED DESCRIPTION OF THE INVENTION
[0013] A. First Example: A1.Device configuration: 1 is an explanatory diagram showing a data processing device according to one embodiment. The data processing device 200 is, for example, a personal computer. The data processing device 200 executes processing related to the width of a sheet-like object (for example, a woven fabric, a knitted fabric, a sewing fabric such as denim fabric, or a film) being conveyed. In this embodiment, the object 700 is a sewing fabric (hereinafter, the object 700 will be referred to as fabric 700).
[0014] The data processing device 200 includes a processor 210, a storage device 215, a display unit 240, an operation unit 250, a graphics processing unit (GPU) 260, and a communication interface 270. These elements are connected to each other via a bus. The storage device 215 includes a volatile storage device 220 and a non-volatile storage device 230.
[0015] The processor 210 is a device configured to process data, and is, for example, a central processing unit (CPU) or a system on a chip (SoC). The volatile storage device 220 is, for example, a dynamic random access memory (DRAM), and the non-volatile storage device 230 is, for example, a flash memory. The non-volatile storage device 230 stores data for a program 231 and an object detection model 239. The program 231 includes a transport program 232 and an inspection program 233. The object detection model 239 is a program module that forms a trained machine learning model.
[0016] The display unit 240 is a device configured to display images, such as a liquid crystal display or an organic EL display. The operation unit 250 is a device configured to receive operations by a user, such as a button, a lever, or a touch panel overlaid on the display unit 240. The display unit 240 and the operation unit 250 may form a so-called touch screen. The user can input various requests and instructions to the data processing device 200 by operating the operation unit 250. The display unit 240 may display operation elements (e.g., buttons, sliders, etc.), and the displayed elements may be operated through operation of the operation unit 250.
[0017] The GPU 260 is a computing device configured to perform various numerical operations such as image processing and machine learning. The GPU 260 performs various operations according to instructions from the processor 210. In this embodiment, the GPU 260 performs operations for the object detection model 239 according to instructions from the processor 210.
[0018] The communication interface 270 is an interface for communicating with other devices (for example, it includes one or more of a USB interface, a wired LAN interface, an IEEE802.11 wireless interface, and an industrial camera interface (for example, CameraLink, CoaXPress, etc.)). In this embodiment, the communication interface 270 is connected to a conveying device 900, digital cameras 111-114, and an encoder 120. The conveying device 900 is a device that conveys the fabric 700, and the data processing device 200 can issue instructions to the conveying device 900 to convey or stop the fabric 700. The digital cameras 111-114 are used to photograph the fabric 700. The encoder 120 is used to calculate the relative position of the fabric 700 with respect to the conveying device 900.
[0019] FIG. 2 is a perspective view of digital cameras 111-114, fabric 700, conveying device 900, and light source 130. The conveying device 900 is a device that conveys fabric 700 for inspection (such a device is also called a fabric inspection machine). To convey the fabric 700, the conveying device 900 is equipped with multiple rollers (including two rollers 910 and 920) and a conveying motor (not shown) that drives one or more rollers. A partial conveying path Pth in the figure indicates the portion of the conveying path of the fabric 700 between rollers 910 and 920 (the partial conveying path Pth is also simply referred to as the partial path Pth). In this embodiment, the fabric 700, which is longer than the partial path Pth, is wound around a roller (not shown). The fabric 700 pulled out from this roller is conveyed from the first roller 910 along the partial path Pth to the second roller 920 and then wound around another roller (not shown). Between the rollers 910 and 920 (i.e., on the partial path Pth), the fabric 700 forms a flat portion, that is, a flat portion 700F. The light source 130 irradiates light onto the flat portion 700F. The forward direction Df in the figure indicates the conveying direction on the partial path Pth (the forward direction Df is also referred to as the conveying direction Df). The reverse direction Db indicates the opposite direction of the forward direction Df, i.e., the conveying direction when the fabric 700 is rewound. The vertical direction Dt indicates a direction parallel to the flat portion 700F and perpendicular to the partial path Pth.
[0020] Hereinafter, the vertical direction Dt will also be referred to as the +Dt direction, and the opposite direction of the vertical direction Dt will also be referred to as the -Dt direction. Similarly, for other directions, the same direction and the opposite direction are expressed by a positive sign or a negative sign before the sign.
[0021] The ends 700e1 and 700e2 in the figure are ends of the fabric 700 in a direction perpendicular to the partial path Pth. Hereinafter, the left end 700e1 will be referred to as the left end 700e1, and the right end 700e2 will be referred to as the right end 700e2. The lines indicating the ends 700e1 and 700e2 are roughly parallel to the partial path Pth. However, the fabric 700 is soft and easily deformed. The fabric 700 may be transported with the lines indicating the ends 700e1 and 700e2 inclined relative to the partial path Pth. Furthermore, the fabric 700 may form wrinkles during transport. For example, as the left end 700e1 and the right end 700e2 approach each other, wrinkles roughly parallel to the transport direction Df may be formed. Furthermore, as the fabric 700 expands during transport, the wrinkles may become smaller. For example, by separating the left edge 700e1 and the right edge 700e2 from each other, wrinkles can be reduced.
[0022] Two positions Pr and Pv are set on the partial path Pth. The first position Pr is the position where the digital cameras 111-114 read. In the figure, the reading area Ar, which is the area read by the digital cameras 111-114, is hatched. The reading area Ar is a rectangular area extending in a direction perpendicular to the partial path Pth and is included in the flat portion 700F (i.e., the reading area Ar is illuminated by light from the light source 130). The first range R1 is the range of the reading area Ar in the conveying direction Df, and the second range R2 is the range of the reading area Ar in the vertical direction Dt. The size of the second range R2 is larger than the size of the fabric 700 in the vertical direction Dt. The first position Pr is located at the center of the reading area Ar.
[0023] In the figure, partial areas R11-R14 indicate areas read by digital cameras 111-114, respectively. In this embodiment, digital cameras 111-114 (and thus partial areas R11-R14) are arranged side by side in the vertical direction Dt. The partial areas R11-R14 together represent the entire reading area Ar.
[0024] The second position Pv is a position for visual inspection. The second position Pv is located at a position that allows easy observation by the worker. In this embodiment, the second position Pv is located downstream of the first position Pr (i.e., on the forward direction Df side of the first position Pr). As will be described later, the data processing device 200 inspects the appearance of the fabric 700 using an image captured in the reading area Ar. If a defect is found through inspection, the data processing device 200 may stop the transport of the fabric 700. The transport may be stopped before the defective portion of the fabric 700 is transported downstream beyond the second position Pv. Note that in this embodiment, the worker can visually observe the fabric 700 not only at the second position Pv but also throughout the entire range from the first position Pr to the second position Pv.
[0025] The transport device 900 includes a control panel 980 and a control device 990. The control device 990 is an electrical circuit configured to control a transport motor in response to operation of the control panel 980. The control panel 980 includes four operation units 981-984. Each operation unit 981-984 is configured to receive an operation (e.g., a push switch or a foot switch). In this embodiment, the control device 990 transports in the forward direction Df when the first operation unit 981 is operated, and transports in the reverse direction Db when the second operation unit 982 is operated. When the operation units 981 and 982 are not operated, the control device 990 stops transport. The control device 990 starts transport in the forward direction Df in response to operation of the third operation unit 983, and continues transport in the forward direction Df until the fourth operation unit 984 is operated. The control device 990 can control the conveyance in accordance with operations on the control panel 980 as well as instructions to convey or stop the fabric 700 from the data processing device 200. The control device 990 may be configured using a computer or dedicated hardware (such as an Application Specific Integrated Circuit (ASIC)).
[0026] The conveying device 900 is connected to an encoder 120 that detects the direction and amount of change in position due to conveyance. In this embodiment, the encoder 120 is connected to a roller (e.g., the first roller 910). The encoder 120 may have various configurations that detect the direction and amount of change in position due to conveyance. For example, the encoder 120 may be an incremental encoder. The data processing device 200 (FIG. 1) can use information from the encoder 120 to obtain the current conveyance position of the fabric 700 conveyed by the conveying device 900 (i.e., the relative position of the fabric 700 with respect to the conveying device 900).
[0027] A2.Transportation inspection process: In this embodiment, the data processing device 200 (FIG. 1) transports and inspects the fabric 700. For inspection, the fabric 700 (FIG. 2) is attached to the transport device 900. In this embodiment, an operator attaches the fabric 700 to the transport device 900. Alternatively, a machine (e.g., a robot arm) may attach the fabric 700 to the transport device 900. After the fabric 700 is attached, an instruction to start the transport inspection process is input to the data processing device 200 (FIG. 1). In this embodiment, the operator inputs the instruction to start the inspection by operating the operation unit 250. The processor 210 starts the transport inspection process in response to the start instruction. In this embodiment, the processor 210 proceeds with the transport inspection process in accordance with the transport program 232 included in the program 231.
[0028] 3, 4(A), and 4(B) are flowcharts showing an example of the transport inspection process. 4(A) and 4(B) are continuations of FIG. 3. In S110 (FIG. 3), the processor 210 initializes parameters. In this embodiment, the processor 210 initializes a processing distance D to zero. Details of the processing distance D will be described later.
[0029] In S120, the processor 210 starts conveying the fabric 700. The processor 210 supplies a conveyance start instruction to the conveyance device 900. The control device 990 of the conveyance device 900 starts conveyance in the forward direction Df in accordance with the instruction.
[0030] In S130, the processor 210 determines whether the processing of the fabric 700 is complete. Various methods may be used for this determination. For example, the processor 210 may use the relative transport position of the fabric 700 (i.e., the relative position of the fabric 700 with respect to the transport device 900) obtained using information from the encoder 120. If the transport position is at or after a predetermined final position, the processor 210 determines that the processing of the fabric 700 is complete. In this case (S130: Yes), the processor 210 issues a transport stop instruction to the transport device 900 (FIG. 2) in S290 (FIG. 4(B)). The control device 990 stops transport in accordance with the instruction. Then, the processor 210 ends the transport inspection process.
[0031] If the conveying position is before the last position, the processor 210 determines that processing of the fabric 700 is not complete. In this case (S130: No (FIG. 3)), in S140, the processor 210 supplies a reading instruction to each of the digital cameras 111-114 (FIG. 2). The digital cameras 111-114 read the fabric 700 in response to the reading instruction. The processor 210 obtains read image data representing the read image from each of the digital cameras 111-114.
[0032] 5(A) and 5(B) are diagrams showing examples of images to be processed. FIG. 5(A) shows examples of scanned images IMr1-IMr4 obtained from digital cameras 111-114 (FIG. 2), respectively. Each of scanned images IMr1-IMr4 is a rectangular image having two sides parallel to a first direction Dx and two sides parallel to a second direction Dy perpendicular to the first direction Dx. The second direction Dy is approximately the same as the conveying direction Df (FIG. 2) of the fabric 700 in scanned images IMr1-IMr4. The first direction Dx is approximately the same as the vertical direction Dt of the fabric 700 in scanned images IMr1-IMr4. The data of each of scanned images IMr1-IMr4 is bitmap data representing the color values of a plurality of pixels arranged in a matrix along the first direction Dx and the second direction Dy. The color value is represented by, for example, the gradation value of each of red R, green G, and blue B (for example, a value greater than or equal to zero and less than or equal to 255).
[0033] As described in FIG. 2, partial regions R11-R14 corresponding to scanned images IMr1-IMr4 (FIG. 5(A)) are arranged side by side in the vertical direction Dt. The first scanned image IMr1 represents a portion of the fabric 700 including the left edge 700e1 and the background BG. The second scanned image IMr2 and the third scanned image IMr3 represent portions of the fabric 700 that are inside the edges 700e1 and 700e2, respectively. The fourth scanned image IMr4 represents a portion of the fabric 700 including the right edge 700e2 and the background BG. These scanned images IMr1-IMr4 as a whole represent the entire scanning area Ar. Although not shown, the background BG may represent various objects located outside the fabric 700, such as a portion of the conveying device 900.
[0034] In this way, the scanned images IMr1-IMr4 represent the fabric 700 captured by the digital cameras 111-114. The scanned images IMr1-IMr4 are examples of captured images.
[0035] The read images IMr1-IMr4 represent the fabric 700 at a specific transport position PS, which is a transport position included in the first range R1 (FIG. 2). A transport position is a position in the transport direction on the transport path. The specific transport position PS is a transport position that indicates a specific portion of the transport path (in this embodiment, a portion included in the reading area Ar). The specific transport position PS is a position fixed to the transport device 900 and is a position that does not move due to the transport of the fabric 700.
[0036] The processor 210 repeats S140 (FIG. 3) as the fabric 700 (FIG. 2) is transported. That is, the processor 210 repeats reading the portion of the fabric 700 that is within the reading area Ar and transporting the fabric 700. The processor 210 reads the reading area Ar (S140) for each predetermined transport distance in the transport direction Df so that no gaps are left between the multiple portions of the fabric 700 that are being read. The processor 210 obtains the transport distance (and thus the relative position of the fabric 700 with respect to the transport device 900) using information from the encoder 120 (FIG. 2). When the fabric 700 has been transported to an appropriate transport position for a new reading, the processor 210 issues a reading instruction to each of the digital cameras 111-114. The size of the reading area Ar in the transport direction Df may vary (for example, 5 centimeters or more and 1 meter or less).
[0037] After S140, in S150, processor 210 updates processing distance D. Processor 210 uses information from encoder 120 to calculate the transport distance since the last update of processing distance D. Processor 210 updates processing distance D by adding the calculated transport distance to processing distance D.
[0038] In S160, the processor 210 executes an inspection process to inspect defects in the fabric 700. In this embodiment, the processor 210 executes the inspection process in accordance with the inspection program 233 included in the program 231.
[0039] The inspection process may be various processes including the detection of defects in the appearance of the fabric 700. The processor 210 may detect multiple types of defects, including, for example, linear defects (such as thread defects, scratches, stains, etc.), holes, and thread balls. For example, the processor 210 generates a combined image by combining the scanned images IMr1-IMr4 (FIG. 5(A)). FIG. 5(B) is a diagram showing an example of the combined image. The combined image IMrc represents a portion of the scanned area Ar of the fabric 700. The processor 210 may then detect defects in the fabric 700 by template matching using the combined image IMrc and a template image representing the defect.
[0040] Various methods may be used to generate the combined image IMrc. For example, the partial regions R11-R14 (FIG. 2) may be arranged side by side in the vertical direction Dt so as not to overlap one another within the reading area Ar with any gaps. In this case, the processor 210 may generate data for the combined image IMrc by connecting the respective edges of the read images IMr1-IMr4 (FIG. 5(A)) arranged side by side in the first direction Dx. Alternatively, the partial regions R11-R14 may be arranged so that two adjacent partial regions partially overlap. In this case, the processor 210 may generate data for the combined image IMrc by combining the read images IMr1-IMr4 in the same arrangement as the partial regions R11-R14. The corresponding portion of one of the read images may be used as the image for the overlapping portion of the two read images.
[0041] Additionally, the processor 210 may use a machine learning model that has been trained to detect defects to detect defects in the fabric 700. The machine learning model may be various object detection models such as YOLO, RTMDet, PaDIM, etc.
[0042] The processor 210 stores result data representing the inspection results, which are the results of the inspection process, in the storage device 215 (e.g., the non-volatile storage device 230). If a defect is found by the inspection process, the result data may represent an image representing the defect, the transport position where the defect was found, and the type of defect found. If a defect is found, the processor 210 may stop the transport of the fabric 700. Then, the processor 210 may resume the transport inspection process according to instructions from the operator. Alternatively, the processor 210 may continue the transport inspection process after storing the result data in the storage device 215, regardless of whether a defect is found or not.
[0043] In S170 (FIG. 3), the processor 210 determines whether the processing distance D is equal to or greater than the reference distance Dth1. In this embodiment, the width of the fabric 700 is detected for each predetermined transport amount. The reference distance Dth1 represents this transport amount. The reference distance Dth1 may be a variety of values. For example, if the length of the fabric 700 is equal to or greater than 40 meters, the reference distance Dth1 may be set to a value greater than or equal to 5 meters and less than or equal to 30 meters.
[0044] If the processing distance D is less than the reference distance Dth1 (S170: No), the processor 210 proceeds to S130 and transports and inspects the fabric 700. If the processing distance D is equal to or greater than the reference distance Dth1 (S170: Yes), the processor 210 proceeds to S200.
[0045] In S200, the processor 210 performs a wrinkle determination to determine whether or not the fabric 700 has wrinkles. FIG. 5(C) is a diagram showing an example of wrinkles. A portion of the fabric 700 is shown in the diagram. The fabric 700 has wrinkles 710. In the wrinkle 710 portion, the fabric 700 rises three-dimensionally toward the front. In the example shown in the diagram, the left end 700e1 approaches the right end 700e2, forming wrinkles 710 extending in the second direction Dy. Lines Wp1 and Wp2 in the diagram represent warp threads (referred to as warp threads Wp1 and Wp2), respectively. The first warp thread Wp1 forms the wrinkle 710 of the fabric 700. The second warp thread Wp2 forms the wrinkle-free portion of the fabric 700. The direction in which the portion of the first warp thread Wp1 that forms the wrinkle 710 extends (referred to as the wrinkle thread direction) may be inclined in various directions. For example, the wrinkle thread direction may be inclined relative to the direction in which the second warp thread Wp2 extends. When the second warp thread Wp2 is approximately parallel to the conveying direction Df, the wrinkle thread direction may be inclined relative to the conveying direction Df. Note that wrinkles (i.e., deformation of the fabric 700) are usually not so large that the wrinkle thread direction becomes parallel to the first direction Dx. The inclination of the wrinkle thread direction relative to the conveying direction Df is, for example, less than 45 degrees.
[0046] In this embodiment, because the fabric 700 is flexible, wrinkles may form in the fabric 700 during transport. Wrinkles may form during transport even if the fabric 700 does not have any defects. Furthermore, the wrinkles may gradually become smaller as the transport progresses. As will be described later, in this embodiment, the processor 210 detects the width of the fabric 700 using the scanned images IMr1-IMr4. If the scanned images IMr1-IMr4 represent a wrinkled portion of the fabric 700, the width of the fabric 700 detected using the scanned images IMr1-IMr4 may be smaller than the width of the same fabric 700 in an unwrinkled state. In other words, the detected width may be erroneously determined to be smaller than the appropriate width. To reduce the possibility of such an erroneous determination, the processor 210 performs a wrinkle determination before detecting the width.
[0047] In this embodiment, S200 (FIG. 3) includes S210-S235. In S210, processor 210 searches for wrinkle candidates from the scanned image. In this embodiment, processor 210 uses trained object detection model 239 (FIG. 1) to detect wrinkle portions representing wrinkles from the scanned image. Portions representing wrinkles have a different three-dimensional shape than portions without wrinkles. In the scanned image, portions representing wrinkles are represented as distinctive portions different from portions without wrinkles. For example, portions representing wrinkles may represent a color pattern (e.g., a shading pattern) different from portions without wrinkles. Such portions representing wrinkles can be detected by various object detection models.
[0048] The object detection model 239 may be any machine learning model capable of detecting wrinkles. In this embodiment, the object detection model 239 is a machine learning model called YOLOv4. YOLOv4 is disclosed in, for example, the following paper: Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, "YOLOv4: Optimal Speed and Accuracy of Object Detection", arXiv:2004.10934, https: / / arxiv.org / abs / 2004.10934
[0049] The YOLOv4 model predicts a region (also called a bounding box) that represents an object (in this embodiment, wrinkles). The object detection model 239 is pre-trained to be able to detect various wrinkles. The training method for the object detection model 239 may be any method that trains the object detection model 239 to detect bounding boxes that represent wrinkles. For example, the training method described in the above paper may be adopted. The object detection model 239 is trained using images that represent various wrinkles.
[0050] In S210, processor 210 detects a bounding box representing a wrinkle by performing calculations of object detection model 239 using data from the scanned image. Processor 210 uses the detected bounding box as a wrinkle candidate. FIG. 5(D) is a diagram showing an example of a bounding box. The combined image IMrc is shown in the figure. Bounding box BB is an example of a bounding box detected from combined image IMrc. Bounding box BB encloses wrinkle 710 on combined image IMrc. Processor 210 may cause GPU 260 to execute part or all of the calculations of object detection model 239.
[0051] The specified size, which is the size of an image that can be input to the object detection model 239, may be smaller than the size of the combined image IMrc (FIG. 5(D)). In this case, the processor 210 may perform object detection using the object detection model 239 on each of a plurality of blocks representing different portions of the combined image IMrc. Although not shown, the plurality of blocks are arranged so as to cover the entire combined image IMrc. Two adjacent blocks may be arranged so as to partially overlap each other. Alternatively, the plurality of blocks may be arranged so as not to overlap each other. Blocks BL1 and BL2 in FIG. 5(D) are examples of two blocks included in the plurality of blocks.
[0052] In this embodiment, the resolution (i.e., pixel density) of the scanned images IMr1-IMr4 is high enough to represent each thread of the fabric 700 as a region having multiple pixels. Such a resolution may be higher than the resolution suitable for the object detection model 239. In such a case, the processor 210 may generate data of a block image representing the block to be processed at a resolution suitable for the object detection model 239 by performing a resolution reduction process (e.g., interpolation) on the block to be processed in the combined image IMrc. Hereinafter, the resolution of the image used to detect wrinkle candidates is referred to as the first resolution. The image at the first resolution used in S210 is referred to as the first image. The multiple block images representing the multiple blocks at the first resolution represent the combined image IMrc at the first resolution. The image representing the combined image IMrc at the first resolution is an example of the first image. Each of the multiple block images corresponds to a portion of the first image.
[0053] Object detection model 239 may be the same model as the object detection model that detects defects in S160 (FIG. 3). That is, in S160, processor 210 may detect both defects and wrinkles by using object detection model 239. In this case, in S210, processor 210 may adopt the portion representing the wrinkle found in the last S160 (here, the bounding box) as a wrinkle candidate. Note that the object detection model that detects defects may be a model different from object detection model 239 that detects wrinkles.
[0054] In S215, processor 210 determines whether wrinkle candidates are found. In this embodiment, if wrinkle candidates are not found (S215: No), the result of the wrinkle determination is a negative result CNF (i.e., no wrinkles are found). In this case, processor 210 proceeds to S240 (FIG. 4(A)).
[0055] If wrinkle candidates are found (S215: Yes), processor 210 executes the processes of S220-S235. Fabric 700 may have linear defects (such as thread defects, scratches, or stains) extending in the second direction Dy. In S210, such defects may be erroneously detected as wrinkle candidates. If wrinkle candidates are found, processor 210 determines whether the wrinkle candidates are wrinkles by the processes of S220-S235.
[0056] In S220, processor 210 calculates a first direction D1, which is the direction in which warp threads in a block representing a wrinkle candidate extend. FIGS. 6A-6M are diagrams showing an example of the calculation process for the warp thread extension direction. FIG. 6A shows a portion of a first portion P1, which is a part included in bounding box BB in combined image IMrc (FIG. 5D). First portion P1 shows multiple warp thread portions PWp and multiple weft thread portions PWf. Warp thread portion PWp is a visible portion of the warp threads that is not obscured by other threads. Weft thread portion PWf is a visible portion of the weft threads that is not obscured by other threads. Since these thread portions PWp and WPf are susceptible to light from light source 130 (FIG. 2), they are displayed in a bright color in the scanned image (e.g., combined image IMrc). Shadows are likely to occur at the boundary between two intersecting threads. The boundary portion is displayed in a dark color in the scanned image. The gaps between the yarns and other yarns are less likely to reflect light, and are therefore displayed in dark colors in the scanned image. In this way, areas other than the yarn portions PWp and WPf are displayed in dark colors in the scanned image. The multiple warp portions PWp and the multiple weft portions PWf are displayed as bright areas that are separated from each other.
[0057] As explained in Fig. 5(C), the direction in which the warp yarns that form the wrinkles extend can be inclined in various directions. In the example shown in Fig. 6(A), the warp yarn portion PWp is inclined with respect to the second direction Dy. The weft yarn portion PWf is inclined with respect to the first direction Dx.
[0058] The method for calculating the first direction D1 may be various. In this embodiment, the processor 210 calculates the first direction D1 using binarization and thinning. First, the processor 210 uses the data of the combined image IMrc (FIG. 5(D)) to obtain first partial data representing an image of the first portion P1 within the bounding box BB.
[0059] The size (here, height and width) of the first portion P1 is experimentally determined in advance so that the first portion P1 includes a sufficient number of warp portions PWp for accurately calculating the first direction D1.
[0060] The position of the first portion P1 within the bounding box BB is experimentally determined in advance so that the first portion P1 represents the wrinkled portion of the fabric 700. For example, the position of the first portion P1 may be the center of the bounding box BB.
[0061] The resolution of the first partial data is high enough to represent each warp portion PWp as an area having multiple pixels. In this embodiment, the resolution of the first partial data is the same as the resolution of the combined image IMrc (i.e., the resolution of the scanned images IMr1-IMr4). Alternatively, the processor 210 may generate the first partial data by performing resolution conversion (e.g., a resolution reduction process or a resolution increase process) on the portion of the combined image IMrc corresponding to the first portion P1. Hereinafter, the resolution of the first partial data will be referred to as the second resolution. The second resolution is higher than the first resolution described in S210.
[0062] The processor 210 generates a binary image representing the thread portions PWp and PWf by binarizing the image data of the first portion P1 expressed at the second resolution. FIG. 6B shows an example of a first binary image P1b obtained by binarizing the first portion P1 (FIG. 6A). Through binarization, the processor 210 can generate the first binary image P1b representing multiple light areas representing the separated thread portions PWp and PWf and multiple dark areas representing the remaining portions. Note that the binarization method may be any of various methods that distinguish between light and dark areas. In this embodiment, the processor 210 converts the image of the first portion P1 to grayscale and binarizes the grayscale image using so-called Otsu's binarization. Alternatively, a predetermined threshold may be used for the binarization.
[0063] The processor 210 performs thinning on the first binary image P1b to generate a line image representing the yarn portions PWp and PWf with thin lines. FIG. 6C shows an example of a first line image P1c obtained by thinning the first binary image P1b (FIG. 6B). The first line image P1c represents the warp lines Lp corresponding to the warp portions PWp and the weft lines Lf corresponding to the weft portions PWf. Thinning is a process of forming thin lines by thinning an area of multiple consecutive pixels. Various thinning methods may be used. For example, Hilditch, Zhang-Suen, or Nagendraprasad-Wang-Gupta thinning may be used.
[0064] The processor 210 extracts warp lines Lp from the multiple thin lines obtained by thinning. The extraction method may be any method of selecting thin lines that are approximately parallel to the second direction Dy. In this embodiment, the processor 210 distinguishes between the warp lines Lp and the weft lines Lf using the coordinates (here, pixel positions) of both ends of each thin line. FIG. 6(D) shows an example of a method for distinguishing between the warp lines Lp and the weft lines Lf. Two thin lines L1a and L2a are shown in the figure. The first thin line L1a connects both ends Ep1 and Ep2. (xp1, yp1) represent the coordinates of the first end Ep1 in the first direction Dx and the second direction Dy, respectively, and (xp2, yp2) represent the coordinates of the second end Ep2 in the first direction Dx and the second direction Dy, respectively. The second thin line L2a connects both ends Ef1 and Ef2. (xf1, yf1) represent the coordinates of the first end Ef1 in the first direction Dx and the second direction Dy, respectively, and (xf2, yf2) represent the coordinates of the second end Ef2 in the first direction Dx and the second direction Dy, respectively. Here, the first thin wire L1a is the warp line Lp, and the second thin wire L2a is the weft line Lf.
[0065] The processor 210 calculates the difference dPx in the coordinates in the first direction Dx between both ends of each thin line. In the example of FIG. 6(D), the difference dPx of the first thin line L1a is |xp1-xp2|. The difference dPx of the second thin line L2a is |xf1-xf2|. When a thin line is roughly parallel to the second direction Dy, like the first thin line L1a, the difference dPx is small. In other words, when the thin line is a warp line Lp, the difference dPx is small. When a thin line is roughly perpendicular to the second direction Dy, like the second thin line L2a, the difference dPx is large. In other words, when the thin line is a weft line Lf, the difference dPx is large.
[0066] The processor 210 extracts, as warp lines Lp, thin lines having a difference dPx less than the threshold value dPth. FIG. 6(E) shows an example of warp lines Lp extracted from the first line image P1c (FIG. 6(C)). As shown in the figure, multiple warp lines Lp are extracted. The threshold value dPth may be experimentally determined in advance so that the difference dPx of the warp lines Lp is less than the threshold value dPth and the difference dPx of the weft lines Lf is equal to or greater than the threshold value dPth.
[0067] The processor 210 calculates the direction in which each of the extracted warp lines Lp extends. In this embodiment, the processor 210 calculates the direction from the first end Ep1 of the warp line Lp to the second end Ep2, i.e., the direction Vp (FIG. 6(D)) represented by the vector (xp2-xp1, yp2-yp1), as the direction in which the warp line Lp extends (hereinafter, the direction Vp in which the warp line Lp extends is referred to as the thin line direction Vp).
[0068] Any direction parallel to the warp line Lp can be calculated as the thin wire direction Vp. As described below, a first direction D1 determined based on the thin wire direction Vp is used to calculate the angle. To calculate an appropriate angle, a specific direction parallel to the warp line Lp is used as the thin wire direction Vp. In this embodiment, the processor 210 selects the end having the smaller coordinate in the second direction Dy as the first end Ep1 from both ends of the warp line Lp. This allows the thin wire direction Vp to be calculated as being approximately the same as the second direction Dy.
[0069] The processor 210 calculates the average of the multiple thin line directions Vp of the multiple warp lines Lp as the first direction D1. Figure 6(F) shows an example of the first direction D1. The first direction D1 indicates a direction roughly parallel to the multiple warp lines Lp (Figure 6(E)).
[0070] In S225 (FIG. 3), processor 210 calculates the second direction D2, which is the direction in which the warp threads extend in the comparison block in which no wrinkle candidates are found. Various portions of fabric 700 in which no wrinkle candidates are found may be used as the comparison block. In this embodiment, processor 210 uses block BL2, which is adjacent in the first direction Dx to block BL1 containing bounding box BB (FIG. 5(D)), as the comparison block. Although not shown, if block BL1 is an end block in the first direction Dx, processor 210 uses the block adjacent in the -Dx direction to block BL1 as the comparison block. Note that processor 210 may determine the comparison block independently of the block used in searching for wrinkle candidates (S210). For example, processor 210 may use an area of a predetermined size adjacent to bounding box BB as the comparison block.
[0071] Figures 6(G) to 6(L) are diagrams showing an example of a calculation process for the second direction D2. Figures 6(G) to 6(L) are diagrams similar to Figures 6(A) to 6(F), respectively.
[0072] The processor 210 acquires data representing the second portion P2 in the comparison block BL2 from the data of the combined image IMrc (FIG. 5(D)). FIG. 6(G) shows an example of the second portion P2 (part of the second portion P2 is shown in the figure). The second portion P2 represents multiple warp portions PWp and multiple weft portions PWf. The size and resolution of the second portion P2 are the same as those of the first portion P1 (FIG. 6(A)). The position of the second portion P2 in the comparison block BL2 is experimentally determined in advance so that the second portion P2 represents a wrinkle-free portion of the fabric 700. For example, the position of the second portion P2 may be the center of the comparison block BL2.
[0073] As explained in Fig. 5(C), in the wrinkle-free portion of the fabric 700, the warp yarns may be parallel to the conveying direction Df. In the example of Fig. 6(G), the warp yarn portion PWp is approximately parallel to the second direction Dy. The weft yarn portion PWf is approximately parallel to the first direction Dx.
[0074] The processor 210 calculates the second direction D2 using the second portion P2. The method for calculating the second direction D2 is the same as the method for calculating the first direction D1, except that the second portion P2 (FIG. 6(G)) is used instead of the first portion P1 (FIG. 6(A)). The processor 210 generates a binary image representing the thread portions PWp and PWf by binarizing the image data of the second portion P2 expressed at the second resolution. The second binary image P2b in FIG. 6(H) is an example of a binary image obtained by binarizing the second portion P2 (FIG. 6(G)). The second binary image P2b represents multiple light areas representing the separated thread portions PWp and PWf, and multiple dark areas representing the remaining portions.
[0075] The processor 210 performs thinning on the second binary image P2b to generate a line image that represents the yarn portions PWp and PWf with thin lines. The second line image P2c in FIG. 6(I) is an example of an image obtained by thinning the second binary image P2b (FIG. 6(H)). The second line image P2c represents the warp line Lp corresponding to the warp portion PWp and the weft line Lf corresponding to the weft portion PWf.
[0076] The processor 210 extracts warp lines Lp from the multiple thin lines obtained by thinning. Figure 6(J) shows two thin lines L1b and L2b. The first thin line L1b is the warp line Lp, and the second thin line L2b is the weft line Lf. The processor 210 calculates the difference dPx in the coordinates in the first direction Dx between both ends of each thin line. The processor 210 extracts the thin line having a difference dPx less than the threshold value dPth as the warp line Lp. Figure 6(K) shows an example of the warp lines Lp extracted from the second line image P2c (Figure 6(I)). As shown in the figure, multiple warp lines Lp are extracted.
[0077] The processor 210 calculates the thin line direction Vp of each of the extracted warp lines Lp. The processor 210 calculates the average of the thin line directions Vp of the multiple warp lines Lp as the second direction D2. Figure 6(L) shows an example of the second direction D2. The second direction D2 indicates a direction approximately parallel to the multiple warp lines Lp (Figure 6(K)).
[0078] As described above, in S220 and S225 (FIG. 3), the processor 210 calculates the first direction D1 and the second direction D2 using an image (in this embodiment, a combined image IMrc) representing the first portion P1 and the second portion P2 at the second resolution. Hereinafter, the image at the second resolution used in S220 and S225 will be referred to as the second image. The combined image IMrc is an example of the second image. As described in FIGS. 5(A) and 5(B), the combined image IMrc is formed by the scanned images IMr1-IMr4. Each of the scanned images IMr1-IMr4 corresponds to a part of the second image.
[0079] In S230 (FIG. 3), processor 210 calculates angle AG between first direction D1 and second direction D2. FIG. 6(M) is a diagram showing directions D1 and D2 and angle AG. As shown, angle AG is the smaller of the angles formed by directions D1 and D2. If the wrinkle candidate is a wrinkle, first direction D1 may be significantly different from second direction D2. That is, angle AG may be large. If the wrinkle candidate is not a wrinkle, angle AG may be small. Furthermore, fabric 700 (FIG. 2) may be skewed. That is, fabric 700 may be conveyed with ends 700e1 and 700e2 inclined relative to conveyance direction Df. In this case, both first direction D1 and second direction D2 may be inclined relative to second direction Dy. Again, if the wrinkle candidate is not a wrinkle, the difference between the first direction D1 and the second direction D2 (i.e., angle AG) may be a small value. If the wrinkle candidate is a wrinkle, angle AG may be a large value. Thus, a large angle AG indicates a high probability that the wrinkle candidate is a wrinkle. A small angle AG indicates a low probability that the wrinkle candidate is a wrinkle.
[0080] In S235 (FIG. 3), processor 210 determines whether angle AG is equal to or greater than angle threshold AGth. In this embodiment, small wrinkles that do not interfere with width detection, which will be described later, are permitted. The angle threshold AGth is determined in advance through experimentation so that the angle AG resulting from small wrinkles that are permitted is less than angle threshold AGth.
[0081] If angle AG is less than angle threshold AGth (S235: No), the result of wrinkle judgment is a negative result CNF (i.e., no wrinkles are found). In this case, processor 210 proceeds to S240 (FIG. 4(A)). If angle AG is equal to or greater than angle threshold AGth (S235: Yes), the result of wrinkle judgment is a positive result CF (i.e., wrinkles are found). In this case, processor 210 proceeds to S270 (FIG. 4(B)).
[0082] First, the processing when a negative result CNF is obtained will be described. In S240 (FIG. 4(A)), the processor 210 detects the width of the fabric 700. Various methods may be used to detect the width. In this embodiment, the processor 210 detects the left edge 700e1 and the right edge 700e2 by analyzing the combined image IMrc (FIG. 5(B)). The processor 210 calculates the distance between the left edge 700e1 and the right edge 700e2 in a direction parallel to the first direction Dx as the width W. The processor 210 may calculate the width W at a predetermined position in the second direction Dy within the combined image IMrc.
[0083] Various methods may be used to detect the edges 700e1 and 700e2. For example, the processor 210 may use, as the background BG, an area of the combined image IMrc where multiple consecutive pixels have colors within a predetermined background color range. The processor 210 may then use the edges of the background BG as the edges 700e1 and 700e2. Alternatively, the processor 210 may extract edge pixels representing edges from the combined image IMrc. The processor 210 may use lines formed by multiple edge pixels as the edges 700e1 and 700e2. The processor 210 may detect the edges 700e1 and 700e2 using scanned images IMr1 and IMr4 representing the edges 700e1 and 700e2 instead of the combined image IMrc. The processor 210 may then calculate the width W using the positions of the edges 700e1 and 700e2 in the scanned images IMr1 and IMr4.
[0084] In S250 (FIG. 4(A)), the processor 210 executes width processing, which is processing related to width. In this embodiment, the width processing includes S253 and S256. In S253, the processor 210 classifies the width W as good or bad. In this embodiment, if the width W is within a predetermined tolerance range, the processor 210 classifies the width W as good. If the width W is outside the tolerance range, the processor 210 classifies the width W as bad.
[0085] In S256, the processor 210 stores width-related data related to the width in the storage device 215 (e.g., the non-volatile storage device 230). In this embodiment, the width-related data represents the width W detected in S240, the classification result in S253, and the transport position.
[0086] In S260, the processor 210 initializes the processing distance D to zero. Then, the processor 210 proceeds to S130 (FIG. 3). The processor 210 repeats S130-S170 until the processing distance D reaches the reference distance Dth1.
[0087] Next, the process when a positive result CF is obtained by wrinkle determination (S200 (FIG. 3)) will be described. In S270 (FIG. 4(B)), processor 210 determines whether processing distance D is greater than limit distance Dth2. Limit distance Dth2 is the reference distance Dth1 plus allowable distance Dw. Allowable distance Dw is the allowable conveying distance from when a wrinkle is found until the wrinkle is no longer found (i.e., from when a positive result CF is obtained until a negative result CNF is obtained). As described above, wrinkles may gradually become smaller as conveying progresses. If wrinkles are found, fabric 700 is conveyed until no wrinkles are found, and then an appropriate width W can be detected (S240 (FIG. 4(A))). However, if the conveying distance from when a wrinkle is found until the wrinkle is no longer found is excessively long, it may be difficult to properly manage the width. For example, it is unclear whether the width of the portion of fabric 700 transported between the time when wrinkles are detected and the time when wrinkles are no longer detected is appropriate. The allowable distance Dw is the transport distance that is allowable when fabric 700 is transported without detecting width W following transport at reference distance Dth1. The allowable distance Dw may be determined experimentally in advance so that appropriate width management is possible. The allowable distance Dw is preferably smaller than reference distance Dth1, and particularly preferably less than half of reference distance Dth1. For example, if reference distance Dth1 is 10 meters, the allowable distance Dw may be greater than or equal to 2 meters and less than or equal to 5 meters.
[0088] If the processing distance D is greater than the limit distance Dth2 (S270: Yes), in S280, the processor 210 displays a message on the display unit 240. The message may be any message indicating that wrinkles continue in the fabric 700. After S280, the processor 210 stops the conveyance in S290, and ends the conveyance inspection process.
[0089] If the processing distance D is less than or equal to the limit distance Dth2 (S270: No), processor 210 proceeds to S130 (FIG. 3) without initializing the processing distance D. After S130-S160, in S170, the processing distance D is greater than or equal to the reference distance Dth1 (S170: Yes). Therefore, processor 210 performs wrinkle determination in S200. In this way, when a positive result CF is obtained, processor 210 repeats the transport, photographing of fabric 700 (S140), inspection process (S160), and wrinkle determination (S200) until a negative result CNF is obtained. The wrinkle determination (S200) is performed each time fabric 700 is photographed (S140). If a negative result CNF is not obtained and the processing distance D is greater than the limit distance Dth2 (S270: Yes (FIG. 4(B))), the processor 210 executes S280 and S290 and ends the transport inspection process.
[0090] As described above, in this embodiment, the processor 210 (FIG. 1) executes the following processes in accordance with the conveying program 232 included in the program 231. In S200 (FIG. 3), the processor 210 executes a wrinkle determination to determine whether the fabric 700 has wrinkles. In the wrinkle determination, the processor 210 uses the combined image IMrc (FIG. 5(B)). The combined image IMrc is an image obtained by combining the scanned images IMr1-IMr4 (FIG. 5(A)). Therefore, the processor 210 executes the wrinkle determination using the scanned images IMr1-IMr4. The scanned images IMr1-IMr4 (and thus the combined image IMrc) are examples of captured images of the fabric 700 being conveyed. The fabric 700 is an example of a flexible sheet-like object.
[0091] In S240 (FIG. 4(A)), the processor 210 detects the width of the fabric 700. In S250, the processor 210 executes width processing. The width processing includes S253 and S256. In S253, the processor 210 classifies the width W (here, the width W is classified as either "good" or "bad"). In S256, the processor 210 records the width W in the storage device 215. In S290 (FIG. 4(B)), the processor 210 stops the conveyance of the fabric 700.
[0092] Here, in a first case Ca in which a positive result CF is obtained by the wrinkle judgment (S200 (FIG. 3)) and the processing distance D is equal to or less than the limit distance Dth2 (S270: No (FIG. 4(B))), the processor 210 does not perform width processing (S250 (FIG. 4(A))) and does not stop the conveyance (S290 (FIG. 4(B))), but continues the conveyance. Thus, the first case Ca is an example of a first specific case in which the fabric 700 is judged to have wrinkles, width processing is not performed, and the conveyance of the fabric 700 continues without being stopped.
[0093] In addition, in the second case Cb in which the wrinkle determination (S200 (FIG. 3)) yields a negative result CNF, the processor 210 executes the width process (S250 (FIG. 4(A))) and continues conveying without stopping conveying (S290 (FIG. 4(B))). Thus, the second case Cb is an example of a second specific case in which it is determined that the fabric 700 does not have wrinkles, the width process is executed, and conveying of the fabric 700 continues without being stopped.
[0094] In this way, the processor 210 does not perform width processing in the first specific case (here, first case Ca) in which it is determined that the fabric 700 has wrinkles, so the processor 210 can reduce the possibility that the width processing will be performed on the fabric 700 in a state in which it has wrinkles. Furthermore, the processor 210 continues the conveyance of the fabric 700 without stopping it, so the wrinkles may become smaller as the conveyance continues. The processor 210 performs width processing in the second specific case (here, second case Cb) in which it is determined that the fabric 700 does not have wrinkles, so the processor 210 can increase the possibility that the width processing will be performed on the fabric 700 in a state in which it does not have wrinkles. Furthermore, the processor 210 continues the conveyance of the fabric 700 without stopping it, so the processor 210 can continue processing that handles the width of the fabric 700 (e.g., width detection and width processing).
[0095] Furthermore, in this embodiment, in the first specific case (here, the first case Ca), the processor 210 does not detect the width of the fabric 700 (S240 (FIG. 4(A))). Therefore, the processor 210 can reduce the possibility that the width will be inappropriately detected when the fabric 700 has wrinkles.
[0096] Furthermore, in this embodiment, in S160 (FIG. 3), processor 210 executes an inspection process to inspect fabric 700. If a negative result CNF is obtained by the wrinkle judgment (S200 (FIG. 3)), processor 210 proceeds to S240 (FIG. 4), and then proceeds from S260 to S140 (FIG. 3). Then, processor 210 executes the inspection process (S160). If a positive result CF is obtained by the wrinkle judgment and the processing distance D is equal to or less than the limit distance Dth2 (S270: No (FIG. 4(B))), processor 210 proceeds to S140 (FIG. 3) and executes the inspection process (S160). In this way, processor 210 inspects fabric 700 in both cases where it is determined that fabric 700 has wrinkles and where it is determined that fabric 700 does not have wrinkles. The processor 210 can reduce the likelihood that portions of the fabric 700 will remain uninspected.
[0097] In this embodiment, the wrinkle judgment (S200 (FIG. 3)) includes steps S210-S215 and S220-S235. In steps S210-S215, processor 210 judges whether a first image representing the scanned image (i.e., the captured image) at a first resolution exhibits a wrinkle (hereinafter, this judgment will be referred to as a first judgment SA). In steps S220-S235, processor 210 judges whether the wrinkle candidate is a wrinkle. Here, processor 210 judges whether a second image (S220, S225) representing the captured image at a second resolution higher than the first resolution exhibits a wrinkle (hereinafter, this judgment will be referred to as a second judgment SB). If the results of each of the multiple judgments, including first judgment SA and second judgment SB, are positive, processor 210 adopts the positive result CF (i.e., processor 210 finally judges that fabric 700 has wrinkles). In this manner, processor 210 can improve the accuracy of wrinkle determination by using multiple determinations.
[0098] In this embodiment, as shown in FIG. 6(A) and other figures, fabric 700 is a woven fabric including warp yarns and weft yarns. In a first determination SA (S210-S215 (FIG. 3)), processor 210 determines that the first image contains wrinkles if wrinkles are detected from the first image using object detection model 239 trained to detect wrinkles. In a second determination SB (S220-S235 (FIG. 3)), processor 210 determines that the second image (S220, S225) contains wrinkles if the angle AG between first direction D1 and second direction D2 is equal to or greater than an angle threshold AGth. The first direction D1 indicates the direction in which the warp yarns extend in a first portion P1 (FIGS. 5(D) and 6(A)) of the second image that contains wrinkles detected by object detection model 239. The second direction D2 indicates the direction in which the warp threads extend in the second portion P2 (FIGS. 5(D) and 6(G)) of the second image where no wrinkles are detected by the object detection model 239. This configuration enables the processor 210 to reduce the possibility of erroneously determining that the fabric 700 has wrinkles when the wrinkles detected by the object detection model 239 are not actually wrinkles.
[0099] In this embodiment, in S140 (FIG. 3), the processor 210 executes an acquisition process to acquire scanned images IMr1-IMr4 (FIG. 5A) representing a portion of the fabric 700 (FIG. 2) included in the reading area Ar. The portion of the fabric 700 represented by the scanned images IMr1-IMr4 is an example of a specific portion including a portion of the fabric 700 located at a specific conveying position PS. The scanned images IMr1-IMr4 are examples of captured images of the specific portion of the fabric 700. In this embodiment, the processor 210 acquires data of the scanned images IMr1-IMr4 using the digital cameras 111-114. The processor 210 repeatedly executes the acquisition process (S140) as the conveyance of the fabric 700 progresses. The processor 210 also controls the display unit 240 (for example, S280 (FIG. 4B)).
[0100] If the processing distance D is equal to or greater than the reference distance Dth1 (S170: Yes (FIG. 3)), processor 210 executes the wrinkle judgment (S200) for each repeated acquisition process (S140). The condition of S170 is an example of a specific execution condition for executing the wrinkle judgment for each acquisition process. In a third case Cc, in which a positive result CF is obtained by the wrinkle judgment (S200 (FIG. 3)) and the processing distance D is greater than the limit distance Dth2 (S270: Yes (FIG. 4(B))), processor 210 executes S280 and S290. In S280, processor 210 displays a message on display unit 240. In S290, processor 210 stops the conveyance of fabric 700. Thus, third case Cc is an example of a third specific case in which one or both of stopping the conveyance of fabric 700 and displaying a message on display unit 240 are executed.
[0101] The third case Cc can be explained as follows. If the processing distance D is equal to or greater than the reference distance Dth1 (S170: Yes (FIG. 3)), processor 210 executes the wrinkle judgment (S200). If a positive result CF is obtained by the wrinkle judgment (S200), processor 210 repeats the transport and acquisition process (S140), the update of the processing distance D (S150), and the wrinkle judgment (S200) until a negative result CNF is obtained. The processing distance D continues to increase until a negative result CNF is obtained. After the processing distance D reaches the reference distance Dth1, transport of the allowable distance Dw may be performed without obtaining a negative result CNF. This causes the processing distance D to exceed the limit distance Dth2 (S270 (FIG. 4(B))). Here, the third case Cc, in which the processing distance D is greater than the limit distance Dth2 (S270: Yes), can be explained as follows. That is, the third case Cc is a case where fabric 700 is determined to have wrinkles in each of M wrinkle determinations (S200) corresponding to M (M is an integer greater than or equal to 1) acquisition processes (S140) repeated during conveyance of the allowable distance Dw. In such a third case Cc, processor 210 displays a message (S280) and stops conveyance (S290). This allows processor 210 to easily inform the operator that wrinkles have been detected continuously during conveyance of the allowable distance Dw. The operator can then perform various processes to continue the conveyance inspection process, such as removing wrinkles from fabric 700.
[0102] The third case Cc can be rephrased as follows. As described above, after the processing distance D reaches the reference distance Dth1, transport of the allowable distance Dw may be performed without obtaining a negative result CNF. This causes the processing distance D to exceed the limit distance Dth2 (S270 (FIG. 4(B))). At this stage, it has been determined that the fabric 700 has wrinkles in each of the N wrinkle determinations (S200) corresponding to the N acquisition processes (S140) (N is an integer greater than or equal to 1) repeated during transport of the allowable distance Dw after the processing distance D reaches the reference distance Dth1. In other words, the third case Cc is a case in which it has been determined that the fabric 700 has wrinkles in each of the N wrinkle determinations (S200) corresponding to the most recent N acquisition processes (S140).
[0103] B. Second Example: 7(A) and 7(B) are flowcharts showing a part of a second embodiment of the transport inspection process. In this embodiment, the processor 210 detects and records the width regardless of whether there are wrinkles. FIG. 7(A) shows a process executed in place of the process of FIG. 4(A). FIG. 7(B) shows a process executed in place of the process of FIG. 4(B). The process of FIG. 3 is common to this embodiment and the first embodiment. Hereinafter, in FIGS. 7(A) and 7(B), steps that are the same as those in FIGS. 4(A) and 4(B) are given the same reference numerals, and explanations thereof will be omitted.
[0104] The process of FIG. 7(A) is executed in a second case Cb in which a negative result CNF is obtained by the wrinkle determination (S200 (FIG. 3)). The only difference from the process of FIG. 4(A) is that S250 is replaced with S258c. In S258c, processor 210 stores width-related information data including the result of the wrinkle determination (S200 (FIG. 3)) (here, a positive result CF or a negative result CNF) and the width W (S240) in storage device 215 (e.g., non-volatile storage device 230). The width-related information may further include various information (e.g., a conveying position). Thus, in the second case Cb where the wrinkle determination (S200 (FIG. 3)) yields a negative result CNF, processor 210 detects width W (S240) and records width-related information (S258c), and continues conveying without stopping conveying (S290 (FIG. 7(B))).
[0105] The process of FIG. 7(B) is executed when a positive result CF is obtained by the wrinkle judgment (S200 (FIG. 3)). The only difference from the process of FIG. 4(B) is that S272c-S276c are executed when the processing distance D is equal to or less than the limit distance Dth2 (S270: No). The process when the processing distance D is greater than the limit distance Dth2 (S270: Yes) is the same as the process of the embodiment of FIG. 4(B).
[0106] S272c, S274c, and S276c are the same as S240, S258c, and S260 in FIG. 7(A), respectively. Processor 210 detects width W (S272c), stores width-related information data in storage device 215 (S274c), and initializes processing distance D (S276c). Then, processor 210 proceeds to S130 (FIG. 3). In this way, in the first case Ca in which a positive result CF is obtained by wrinkle judgment (S200 (FIG. 3)) and processing distance D is equal to or less than limit distance Dth2 (S270: No (FIG. 7(B))), processor 210 detects width W (S272c) and records width-related information (S274c), and continues conveyance without stopping conveyance (S290).
[0107] The width-related information stored in the storage device 215 can be used to inspect the width of the fabric 700. For example, after the conveyance inspection process is completed, the width of the fabric 700 can be properly inspected by referring to the width W associated with the negative result CNF in the width-related information.
[0108] As described above, in this embodiment, processor 210 (FIG. 1) executes the following processes in accordance with conveying program 232 included in program 231. In S200 (FIG. 3), processor 210 executes a wrinkle determination to determine whether fabric 700 has wrinkles. This wrinkle determination is the same as the wrinkle determination in S200 of the first embodiment. In S240 (FIG. 7(A)) and S272c (FIG. 7(B)), processor 210 detects the width of fabric 700. This width detection is the same as the width detection in S240 (FIG. 4(A)) of the first embodiment.
[0109] In S258c (FIG. 7(A)) and S274c (FIG. 7(B)), processor 210 records width-related information data in storage device 215. The width-related information includes the wrinkle judgment result and width W. In this way, processor 210 records the wrinkle judgment result in association with width W. In S290 (FIG. 7(B)), processor 210 stops the conveyance of fabric 700.
[0110] Here, in a first case Ca in which a positive result CF is obtained by the wrinkle judgment (S200 (FIG. 3)) and the processing distance D is equal to or less than the limit distance Dth2 (S270: No (FIG. 7(B))), the processor 210 continues the conveyance without stopping the conveyance (S290 (FIG. 7(B))). Thus, the first case Ca is an example of a first specific case in which the fabric 700 is determined to have wrinkles and the conveyance of the fabric 700 continues without being stopped.
[0111] In addition, in the second case Cb in which the wrinkle determination (S200 (FIG. 3)) yields a negative result CNF, the processor 210 continues conveying without stopping conveying (S290 (FIG. 7(B))), as described in FIG. 7(A). Thus, the second case Cb is an example of a second specific case in which it is determined that the fabric 700 does not have wrinkles, and conveying of the fabric 700 continues without being stopped.
[0112] As described above, in this embodiment, in the first specific case where it is determined that the fabric 700 has wrinkles (here, first case Ca), and in the second specific case where it is determined that the fabric 700 does not have wrinkles (here, second case Cb), the processor 210 continues the conveyance of the fabric 700 without stopping it. The processor 210 can continue various processes associated with the conveyance of the fabric 700. In this embodiment, the processor 210 repeatedly executes the process of detecting the width of the fabric 700 (S240, S272c) and the process of recording the wrinkle determination result in association with the width (S258c, S274c) as the conveyance progresses. Therefore, the processor 210 can continue the process of recording the wrinkle determination result in association with the width in the first specific case and the second specific case.
[0113] Furthermore, the transport inspection process of this embodiment is similar to the transport inspection process of FIGS. 3, 4(A), and 4(B), except that the process performed in the first case Ca (FIG. 7(B)) and the process performed in the second case Cb (FIG. 7(A)) are different from the processes of FIGS. 4(A) and 4(B). Therefore, this embodiment can provide various advantages similar to those provided by the embodiments of FIGS. 3, 4(A), and 4(B). For example, processor 210 inspects fabric 700 when it is determined that fabric 700 has wrinkles (first case Ca) and when it is determined that fabric 700 does not have wrinkles (second case Cb). Processor 210 can reduce the possibility that portions of fabric 700 remain uninspected. Furthermore, wrinkle judgment (S200 (FIG. 3)) includes a first judgment SA and a second judgment SB. Therefore, processor 210 can improve the accuracy of wrinkle judgment. Furthermore, fabric 700 is a woven fabric. The first determination SA uses a trained object detection model 239. The second determination SB uses the warp yarn directions D1 and D2, as shown in Figures 6(A) to 6(M). Therefore, processor 210 can reduce the possibility of erroneously determining that fabric 700 has wrinkles when the wrinkles detected by object detection model 239 are not actually wrinkles.
[0114] C. Third Example: 8(A)-8(I) are diagrams showing another embodiment of the process for calculating the directions D1 and D2 in S220 and S225 (FIG. 3). The difference from the embodiment shown in FIGS. 6(A)-6(K) is that the directions D1 and D2 are calculated using the approximate straight lines of each warp yarn. FIGS. 8(A) and 8(E) show the same line images P1c and P2c as those shown in FIGS. 6(C) and 6(I). In this embodiment, the processor 210 calculates the directions D1 and D2 using the line images P1c and P2c. First, the calculation of the first direction D1 will be described.
[0115] The processor 210 calculates the extension direction of each thin line in the first line image P1c (hereinafter simply referred to as the "thin line direction"). The method for calculating the thin line direction is the same as the method for calculating the extension direction Vp described in FIG. 6(D). In this embodiment, the direction of each thin line is calculated before distinguishing between the warp lines Lp and the weft lines Lf.
[0116] The processor 210 calculates the angle between the direction of the thin line and the first direction Dx and the angle between the direction of the thin line and the second direction Dy. If the angle between the thin line and the second direction Dy is smaller than the angle between the thin line and the first direction Dx, the processor 210 extracts the thin line as a warp line Lp. Figure 8(B) shows an example of a warp line Lp extracted from the first line image P1c (Figure 8(A)).
[0117] The processor 210 calculates the center of gravity Lpc of each warp line Lp and calculates the average direction Vpa of the direction of each warp line Lp. The processor 210 projects each center of gravity Lpc onto a projection line PL perpendicular to the average direction Vpa. As a result, the processor 210 obtains the distribution of the frequencies FQ of the centers of gravity Lpc projected onto the projection line PL. The distribution of the frequencies FQ of the centers of gravity Lpc forms multiple clusters CL that are spaced apart from each other. Multiple centers of gravity Lpc (i.e., multiple warp lines Lp) belonging to one cluster CL represent one warp thread.
[0118] The processor 210 calculates, for each cluster CL, approximate straight lines that approximate the multiple warp lines Lp. Fig. 8(C) shows multiple approximate straight lines LA1 calculated from the multiple warp lines Lp of Fig. 8(B). The method of calculating the approximate straight lines LA1 may be various methods for approximating the multiple warp lines Lp with straight lines. For example, the processor 210 may determine the approximate straight lines LA1 using multiple pixels of the multiple warp lines Lp according to an algorithm for determining a straight line that approximates multiple points (e.g., Hough transform, least squares method, etc.).
[0119] The processor 210 calculates the average of the directions in which the multiple approximate straight lines LA1 extend as the first direction D1. Figure 8(D) shows an example of the first direction D1. The first direction D1 indicates a direction that is approximately parallel to the multiple approximate straight lines LA1 (Figure 8(C)).
[0120] The second direction D2 is calculated in the same manner as the first direction D1. The processor 210 calculates the direction of each thin line in the second line image P2c (Fig. 8(E)). The processor 210 extracts the warp lines Lp using the direction of the thin lines. Fig. 8(F) shows an example of the warp lines Lp extracted from the second line image P2c (Fig. 8(E)). The processor 210 calculates the center of gravity Lpc of each warp line Lp and calculates the average direction Vpa of the directions of each warp line Lp. The processor 210 calculates the frequency FQ of the centers of gravity Lpc projected onto the projection line PL perpendicular to the average direction Vpa. The cloth is acquired. The processor 210 calculates, for each cluster CL, approximate straight lines that approximate the multiple warp lines Lp. FIG. 8(G) shows multiple approximate straight lines LA2 calculated from the multiple warp lines Lp of FIG. 8(F). The processor 210 calculates the average of the directions in which the multiple approximate straight lines LA2 extend as the second direction D2. FIG. 8(H) shows an example of the second direction D2. The second direction D2 indicates a direction that is approximately parallel to the multiple approximate straight lines LA2 (FIG. 8(G)).
[0121] As described above, in this embodiment, the processor 210 calculates the directions D1 and D2 in which the warp threads extend using the approximate straight lines LA1 and LA2 that represent the warp threads. By using the directions D1 and D2 calculated in this way, the processor 210 can appropriately perform the second determination SB (FIG. 3).
[0122] D. Variations: (1) The wrinkle detection machine learning model may be any of various other machine learning models instead of YOLOv4. For example, other versions of YOLO may be used. Furthermore, other machine learning models, such as RTMDet and PaDim, may be used instead of YOLO.
[0123] (2) In the embodiment of FIGS. 6(A)-6(M), the processor 210 may extract the warp lines Lp according to the comparison result between the direction of the thin line and the first direction Dx and the second direction Dy, as in the embodiment of FIGS. 8(A)-8(H). The first direction D1 may be determined as the direction Vp in which one warp line Lp extends. Similarly, the second direction D2 may be determined as the direction Vp in which one warp line Lp extends. The direction Vp in which the warp line Lp extends may be calculated by a Hough transform using multiple pixels forming the warp line Lp. In the embodiment of FIGS. 8(A)-8(H), the first direction D1 may be determined as the direction in which one approximate straight line LA1 extends. Similarly, the second direction D2 may be determined as the direction in which one approximate straight line LA2 extends. In either case, the processor 210 may use the entire bounding box BB representing the wrinkle as the first portion P1, and the processor 210 may use the entire comparison block as the second portion P2.
[0124] Furthermore, the processor 210 repeatedly executes the acquisition process of the scanned image (e.g., S140 (FIG. 3)) while the fabric 700 is being conveyed. The processor 210 may determine the second portion P2 as a part of the scanned image acquired by the same acquisition process as the acquisition process that acquired the scanned image including the first portion P1 among the multiple acquisition processes. For example, in the examples of FIGS. 5(A) and 5(D), the combined image IMrc (and thus the scanned images IMr1-IMr4) are acquired by the same acquisition process. When the combined image IMrc includes the first portion P1 (i.e., wrinkles), the scanned images IMr1-IMr4 that form the combined image IMrc are acquired by the same acquisition process as the acquisition process that acquired the scanned image including the first portion P1. The processor 210 may determine the second portion P2 as various parts of the scanned images IMr1-IMr4 that represent the fabric 700 and in which no wrinkles are found. The second portion P2 may represent a portion of the fabric 700 that is positioned differently in the vertical direction Dt (FIG. 2) from the first portion P1.
[0125] (3) The process of the first determination SA (FIG. 3) is not limited to a process using a machine learning model, but may be various processes for determining whether a first image representing a scanned image (i.e., a captured image) at a first resolution represents wrinkles. For example, in S210, processor 210 may detect wrinkles by template matching using multiple template images representing multiple types of wrinkles.
[0126] (4) The processing of the second judgment SB (FIG. 3) is not limited to the processing of each of the above-described embodiments and modifications, and may be various processing for determining whether a second image representing a read image (i.e., a captured image) at a second resolution higher than the first resolution indicates a wrinkle. For example, the processor 210 may detect the warp portion PWp from the first portion P1 and the second portion P2 using a machine learning model trained to detect the warp portion PWp (FIGS. 6(A) and 6(G)). In either case, the first judgment SA may be configured to detect wrinkle candidates from the first image. The second judgment SB may be configured to determine whether the wrinkle candidates detected by the first judgment SA are wrinkles using the second image.
[0127] (5) The wrinkle determination process is not limited to the processes of the above-described embodiments and modifications, and may be various processes that determine whether or not the fabric 700 has wrinkles using a captured image of the fabric 700. For example, the process of the first determination SA (FIG. 3) may be a process that determines whether or not the fabric 700 has wrinkles using a reading result of the fabric 700 by a depth sensor. The depth sensor is a sensor that measures three-dimensional coordinates on the surface of an object. The processor 210 may determine whether or not the fabric 700 has a three-dimensional protrusion (i.e., a wrinkle) that is higher than the allowable height by analyzing the reading result of the fabric 700 by the depth sensor.
[0128] Furthermore, the wrinkle judgment may further include a third judgment in addition to the first judgment SA and the second judgment SB. The third judgment process may be a process of determining whether or not a portion of the captured image determined to represent a wrinkle by the second judgment SB is a wrinkle. The third judgment process may be, for example, a process using a trained classification model that classifies images into "wrinkles" and "non-wrinkles." In this manner, the wrinkle judgment may include multiple judgments. The wrinkle judgment may also include a final judgment that ultimately determines that fabric 700 has wrinkles if each result of the multiple judgments is positive. Note that the wrinkle judgment process may be formed by a single judgment. For example, in the embodiment of FIG. 3, the second judgment SB may be omitted.
[0129] (6) The width detection method may be various methods other than the method described in S240 of FIG. 4. For example, the conveying device 900 (FIG. 2) may be equipped with a width sensor that outputs information regarding the width of the fabric 700. The width sensor may be equipped with, for example, multiple optical sensors lined up in the vertical direction Dt. The multiple optical sensors are arranged behind the fabric 700 as viewed from the light source 130. Such optical sensors can detect the presence or absence of the fabric 700 at the position of the optical sensor. When the fabric 700 is present at the position of the optical sensor, the light from the light source 130 is blocked by the fabric 700, so the luminance detected by the optical sensor becomes dark. When the fabric 700 is not present at the position of the optical sensor, the light from the light source 130 is incident on the optical sensor, so the luminance detected by the optical sensor becomes bright. The edges 700e1 and 700e2 of the fabric 700 are located between the optical sensor indicating a bright luminance and the optical sensor indicating a dark luminance, respectively. The processor 210 can detect the width of the fabric 700 using the position and brightness in the vertical direction Dt of each of the multiple sensors.
[0130] (7) The width processing is not limited to the processing described in S250 of FIG. 4A, but may be various width-related processing. For example, in S253, the processor 210 may classify the width into three or more classes, such as "good," "average," and "poor," instead of the two classes of "good" and "poor." Furthermore, one of the width classification and width recording may be omitted from the width processing. When the width processing includes width classification, it is preferable that the width processing further includes one or both of displaying the classification results on a display device (e.g., displaying the classification results on the display unit 240) and recording the classification results (e.g., storing the classification result data in the storage device 215 (e.g., the non-volatile storage device 230)). This allows the user to use the width classification results in various processing.
[0131] (8) Processor 210 may execute various processes including, but not limited to, the processes of FIGS. 3, 4(A), and 4(B), the processes of FIGS. 3, 7(A), and 7(B), and the processes of the above-described embodiments and modifications, wrinkle determination and width detection of fabric 700. For example, in the first case Ca of FIG. 4(B), processor 210 may execute width detection. Specifically, when the determination result of S270 is No, processor 210 may execute the same processes as S272c-S274c (FIG. 7(B)).
[0132] 7(B) (S276c) may be omitted. That is, when the result of the wrinkle determination (S200 (FIG. 3)) is a positive result CF, processor 210 may execute the wrinkle determination (S200), width detection (S272c), and recording (S274c) each time fabric 700 is photographed (S140) until a negative result CNF is obtained.
[0133] Furthermore, the specific execution condition for executing wrinkle judgment (S200) for each repeated acquisition process (S140 (FIG. 3)) is not limited to processing distance D being equal to or greater than reference distance Dth1 (S170), and may be various other conditions. For example, processor 210 may proceed with the process in a mode selected by the user from a first mode in which wrinkle judgment is executed for each acquisition process, and a second mode in which the acquisition process is repeated without executing wrinkle judgment. In this case, selection of the first mode by the user is an example of the specific execution condition.
[0134] In addition, one of displaying the message (S280) and stopping the transport (S290) may be omitted from the processing executed in the third case Cc of Fig. 4(B). If stopping the transport is omitted, processor 210 may proceed to S130 (Fig. 3) after displaying the message.
[0135] (9) The processor 210 may control whether to execute an inspection process (e.g., S160 (FIG. 3)) for inspecting the fabric 700. For example, if a positive result CF is obtained by wrinkle judgment (e.g., S200 (FIG. 3)), the processor 210 may omit the inspection process until a negative result CNF is obtained. Note that the inspection process (e.g., inspection for appearance defects) may be omitted. In this case, the processor 210 may also execute various processes including wrinkle judgment and width detection.
[0136] (10) The first specific case in which the fabric 700 is determined to have wrinkles and the conveyance of the fabric 700 is continued without being stopped is not limited to the first case Ca (FIGS. 3, 4(B), and 7(B)), but may be a case in which a first specific condition is satisfied. An example of the first specific condition is when the result of the wrinkle judgment (S200) in FIG. 3 is a positive result CF and the judgment result of S270 (FIGS. 4(B) and 7(B)) is Yes. The first specific condition may be various conditions, including the wrinkle judgment determining that the fabric 700 has wrinkles. The first specific condition may include, for example, a user instruction indicating that the conveyance should be continued without being stopped.
[0137] The second specific case in which the fabric 700 is determined to have no wrinkles and the conveyance of the fabric 700 is continued without being stopped is not limited to the second case Cb (FIGS. 4(A) and 7(A)), but may be a case in which a second specific condition is satisfied. The result of the wrinkle judgment (S200) in FIG. 3 being a negative result CNF is an example of the second specific condition. The second specific condition may be various conditions including the wrinkle judgment determining that the fabric 700 has no wrinkles. The second specific condition may include, for example, a user instruction indicating that the conveyance should be continued without being stopped.
[0138] In the second specific case, processor 210 may execute width processing (for example, S250 (FIG. 4(B))). In this case, in the first specific case, processor 210 may not execute width processing.
[0139] (11) The third specific case in which one or both of stopping conveyance and displaying a message are executed is not limited to the third case Cc (FIGS. 4(B) and 7(B)), but may be a case in which a third specific condition is satisfied. An example of the third specific condition is when the result of the wrinkle judgment (S200) in FIG. 3 is a positive result CF and the judgment result of S270 (FIGS. 4(B) and 7(B)) is Yes. The third specific condition may be various other conditions. Preferably, the third specific condition includes the wrinkle judgment determining that the fabric 700 has wrinkles. The third specific condition may also include a user instruction indicating that one or both of stopping conveyance and displaying a message are executed.
[0140] (12) The captured images may be various images obtained by capturing images of specific portions of the fabric 700 (FIG. 2), including portions located at specific transport positions (e.g., specific transport positions PS). The method of capturing the captured images is not limited to the method described in S140 of FIG. 3, and various methods may be used. For example, the reading area Ar (FIG. 2) may be captured by one digital camera, or portions may be captured by two or more digital cameras. In this manner, the specific portion of the fabric 700 may be represented by L captured images (L is an integer greater than or equal to 1). In determining wrinkles (e.g., S200 (FIG. 3)), the processor 210 may use one captured image (e.g., a combined image IMrc (FIG. 5(D))) obtained by combining the L captured images. Alternatively, the processor 210 may use each of the L captured images.
[0141] In either case, the processor 210 may obtain the captured image by controlling the imaging device (e.g., the digital cameras 111-1114). Alternatively, the imaging device may be controlled by a control device (e.g., a computer). The processor 210 may request the captured image from the control device and obtain the captured image from the control device.
[0142] (13) The inspection program 233 (FIG. 1) for the inspection process (S160 (FIG. 3)) may be a program different from the program 231 including the transfer program 232.
[0143] Furthermore, the processor 210 may execute various other processes (referred to as additional processes) instead of the inspection process. For example, in S160, the processor 210 may execute a printing process of printing an image on the fabric 700 instead of the inspection process.
[0144] In either case, one or both of the data processing device 200 and the program 231 may be configured to perform various processes including wrinkle determination and width detection of the fabric 700. The other processes (e.g., additional processes) may be performed by a program different from the program 231. The other processes (e.g., additional processes) may be performed by a device different from the data processing device 200.
[0145] (14) The object to be conveyed is not limited to fabric 700, but may be various flexible sheet-like objects. Here, the flexibility of the object refers to softness sufficient to cause wrinkles. Wrinkles are formed, for example, when both ends (e.g., both ends 700e1 and 700e2 (FIG. 2)) in a direction perpendicular to the conveying direction move toward each other during conveyance. Such a flexible sheet-like object is not limited to fabric 700 for sewing, but may be various objects such as film.
[0146] (15) Data processing device 200 in Fig. 1 may be a device of a type different from a personal computer (e.g., a digital camera, a scanner, or a smartphone). Furthermore, multiple devices (e.g., computers) that can communicate with each other via a network may share some of the data processing functions of the data processing device and collectively provide the data processing functions (a system including these devices corresponds to a data processing device).
[0147] In each of the above embodiments, a part of the configuration realized by hardware may be replaced by software, and conversely, a part or all of the configuration realized by software may be replaced by hardware. For example, the GPU 260 may be omitted. Furthermore, the processing by the object detection model 239 may be executed by a dedicated hardware circuit such as an Application Specific Integrated Circuit (ASIC) instead of a program module.
[0148] Furthermore, when some or all of the functions of the present disclosure are realized by a computer program, the program can be provided in a form stored on a computer-readable recording medium (e.g., a non-transitory recording medium). The program can be used in a state stored on the same or a different recording medium (computer-readable recording medium) from when it was provided. The "computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but can also include internal storage devices within a computer, such as various ROMs, and external storage devices connected to a computer, such as a hard disk drive.
[0149] The above-described examples and modifications can be combined as appropriate. The above-described examples and modifications are provided to facilitate understanding of the present disclosure and are not intended to limit the present invention. The present invention may be modified or improved without departing from the spirit thereof, and the present invention includes equivalents thereof. [Explanation of symbols]
[0150] 111-114...digital camera, 120...encoder, 130...light source, 200...data processing device, 210...processor, 215...storage device, 220...volatile storage device, 230...nonvolatile storage device, 231...program, 232...transport program, 233...inspection program, 239...object detection model, 240...display unit, 250...operation unit, 260...GPU, 270...communication interface Face, 700...fabric (object), 700e1...left edge, 700e2...right edge, 700F...flat portion, 710...wrinkles, 900...conveyor device, 910...first roller, 920...second roller, 980...control panel, 981...first operating unit, 982...second operating unit, 983...third operating unit, 984...fourth operating unit, 990...control device, D1...first direction, D2...second direction, PS...specific conveying position, W...width
Claims
1. A program, a wrinkle determination function that performs a wrinkle determination by using an image of a flexible sheet-like object being conveyed to determine whether the object has wrinkles; a width detection function for detecting the width of the object; a width processing function that performs width processing including one or both of the width classification and the width recording; a stop function for stopping the transport of the object; This is realized on a computer, In a first specific case where the object is determined to have the wrinkles, The width processing function does not perform the width processing, the stopping function continues the transport of the object without stopping it; In a second specific case where it is determined that the object does not have the wrinkles, The width processing function executes the width processing, The stopping function continues the transport of the object without stopping it. program.
2. 2. The program according to claim 1, In the first particular case, the width detection function does not detect the width of the object. program.
3. A program, a wrinkle determination function that performs a wrinkle determination by using an image of a flexible sheet-like object being conveyed to determine whether the object has wrinkles; a width detection function for detecting the width of the object; a recording function for recording the result of the wrinkle determination in association with the width; a stop function for stopping the transport of the object; This is realized on a computer, In a first specific case where it is determined that the object has the wrinkles and in a second specific case where it is determined that the object does not have the wrinkles, the stopping function continues without stopping the conveyance of the object. program.
4. The program according to claim 1 or 3, further comprising: causing a computer to realize an inspection function for inspecting the object; The inspection function inspects the object when it is determined that the object has the wrinkles and when it is determined that the object does not have the wrinkles. program.
5. 4. The program according to claim 1 or 3, The wrinkle judgment function is a first determination of whether a first image representing the captured image at a first resolution represents a wrinkle; a second determination of whether a second image representing the captured image at a second resolution higher than the first resolution represents wrinkles; a final judgment that the object has wrinkles if each result of a plurality of judgments including the first judgment and the second judgment is positive; and A program for executing the wrinkle determination, comprising:
6. 6. The program according to claim 5, the object is a woven fabric including warp yarns and weft yarns, the wrinkle determination function performs the first determination of determining that the first image represents a wrinkle if a wrinkle is detected in the first image using a machine learning model trained to detect wrinkles; The wrinkle determination function executes the second determination of determining that the second image represents a wrinkle when an angle formed between a first direction and a second direction is equal to or greater than a threshold, the first direction indicating a direction in which warp threads extend in a portion of the second image that represents a wrinkle detected by the machine learning model, and the second direction indicating a direction in which warp threads extend in a portion of the second image where no wrinkles are detected by the machine learning model. program.
7. The program according to claim 1 or 3, further comprising: a function of repeatedly executing an acquisition process to acquire a captured image of a specific portion of the object, including a portion located at a specific transport position, as the transport of the object progresses; a display control function for controlling the display device; This is realized on a computer, the wrinkle determination function executes the wrinkle determination for each repeated acquisition process when a specific execution condition is satisfied; In a third specific case, the stop function and / or the display control function execute one or both of stopping the transport of the object and displaying a message on the display device; In the third particular case, A case where the object is determined to have wrinkles by each of M wrinkle determinations corresponding to M acquisition processes (M is an integer of 1 or more) repeated during transportation of a specific transportation distance; A case where the object is determined to have wrinkles in each of N wrinkle determinations corresponding to the most recent N acquisition processes (N is an integer equal to or greater than 1); A program that is either
8. 1. A data processing device, comprising: a wrinkle determination unit that performs a wrinkle determination by using an image of a flexible sheet-like object being conveyed to determine whether the object has wrinkles; a width detection unit that detects the width of the object; a width processing unit that performs width processing including one or both of the width classification and the width recording; a stop unit that stops the transport of the object; Equipped with In a first specific case where the object is determined to have the wrinkles, The width processing section does not perform the width processing, the stopping unit continues the transport of the object without stopping it, In a second specific case where it is determined that the object does not have the wrinkles, The width processing unit performs the width processing, the stopping unit continues the transport of the object without stopping it. Data processing device.
9. 1. A data processing device, comprising: a wrinkle determination unit that performs a wrinkle determination by using an image of a flexible sheet-like object being conveyed to determine whether the object has wrinkles; a width detection unit that detects the width of the object; a recording unit that records the result of the wrinkle determination in association with the width; a stop unit that stops the transport of the object; Equipped with In a first specific case where it is determined that the object has the wrinkles and in a second specific case where it is determined that the object does not have the wrinkles, the stopping unit continues the conveyance of the object without stopping the conveyance of the object. Data processing device.
Citation Information
Patent Citations
fabric feeder
JP1994037392U