Program and data processing apparatus
The data processing device addresses the challenge of skew in flexible sheet-like objects by analyzing end position changes to determine appropriate processing, reducing errors and ensuring timely intervention for accurate inspection and conveyance control.
Patent Information
- Application Number
- JP2024081186
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-17
- Publication Date
- 2025-11-28
AI Technical Summary
Flexible sheet-like objects, such as fabric, can deform during conveyance, leading to challenges in executing processing related to skew, such as stopping conveyance or issuing warnings.
A data processing device that acquires change information on the positions of both ends of the flexible sheet-like object, determining if the ends are moving in the same or opposite directions, and executes specific processing only when the ends are moving in the same direction, indicating skew, to reduce erroneous processing when the object is not skewed and ensure appropriate processing when it is skewed.
The solution effectively reduces the likelihood of erroneous processing by accurately detecting skew in flexible sheet-like objects, allowing for timely intervention and ensuring proper inspection and conveyance control.
Smart Images

Figure 2025174681000001_ABST
Abstract
Description
[Technical Field]
[0001] The present specification relates to a technique for detecting skew of a sheet-like object during transportation. [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] Jippan 6-37392 Summary of the Invention [Problem to be solved by the invention]
[0004] The sheet-like object may be flexible (for example, cloth, etc.). The flexible object may be deformed during conveyance. When a flexible object is conveyed, there is room for improvement in the execution of processing related to skew (for example, stopping conveyance, issuing a warning, etc.).
[0005] This specification discloses a technique for performing processing related to skew. [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 realize: a change acquisition function that acquires change information indicating changes in the positions of both ends of a flexible sheet-like object being transported, wherein the both ends are an end of the sheet-like object in a vertical direction that is perpendicular to the transport direction and an end of the sheet-like object in the opposite direction to the vertical direction, and the change in position indicates a change in the vertical position at a specific transport position; and a specific processing execution function that does not execute a specific processing related to skewing of the sheet-like object in a first specific case in which the change information indicates movement of the both ends in opposite directions, and executes the specific processing in a second specific case in which the change information indicates movement of the both ends in the same direction.
[0008] According to this configuration, the specific process is not executed in the first specific case where the change information indicates that both ends move in opposite directions, so that the possibility of executing the specific process related to the skew can be reduced when the flexible sheet-like object does not skew (for example, when the wrinkles in the sheet-like object gradually increase or decrease). Also, the specific process is executed in the second specific case where the change information indicates that both ends move in the same direction, so that the possibility of executing the specific process related to the skew can be increased when the flexible sheet-like object skews.
[0009] 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]
[0010] [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 diagrams showing examples of images to be processed. [Figure 5] 10A-10D are diagrams showing examples of images to be processed, and FIG. 10E is a diagram showing an example of the correspondence between the angle dA and the movement direction MD. [Figure 6] 10 is a flowchart illustrating a part of a second embodiment of a transport inspection process. [Figure 7] 10A to 10D are diagrams showing examples of the position of the fabric 700. [Figure 8] 10A to 10C are diagrams showing another example of obtaining change information. [Figure 9] 10A to 10C are diagrams showing another example of obtaining change information. DETAILED DESCRIPTION OF THE INVENTION
[0011] 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 skew 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. Hereinafter, the object is assumed to be a sewing fabric 700.
[0012] The data processing device 200 includes a processor 210, a storage device 215, a display unit 240, an operation unit 250, 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.
[0013] 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 nonvolatile storage device 230 is, for example, a flash memory. The nonvolatile storage device 230 stores data of a program 231. The program 231 includes a transport program 232 and an inspection program 233.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] Hereinafter, the vertical direction Dt will also be referred to as the +Dt direction, and the direction opposite to 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.
[0018] 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, the wrinkles can be reduced by separating the left end 700e1 and the right end 700e2 from each other. Small wrinkles that do not interfere with the inspection process, which will be described later, are permitted.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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)).
[0023] 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).
[0024] 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.
[0025] 3 is a flowchart showing an example of the conveyance inspection process. In S110, the processor 210 initializes parameters. In this embodiment, the sum value "sum" is initialized to zero. The sum value "sum" is used to determine whether the fabric 700 is skewed, as will be described later.
[0026] 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.
[0027] In S130, the processor 210 determines whether an unprocessed portion of the fabric 700 remains. Various methods may be used for this determination. For example, the processor 210 may determine that an unprocessed portion remains when the relative conveyance position of the fabric 700 obtained using information from the encoder 120 (i.e., the relative position of the fabric 700 with respect to the conveying device 900) is before a predetermined final position. If the relative conveyance position is after the final position, i.e., all portions of the fabric 700 have been processed (S130: No), the processor 210 ends the conveyance inspection process.
[0028] If an unprocessed portion remains (S130: Yes), in S140, processor 210 supplies a reading instruction to each of digital cameras 111-114. Digital cameras 111-114 read fabric 700 in response to the reading instruction. Processor 210 obtains read image data representing the read image from each of digital cameras 111-114.
[0029] 4(A) and 4(B) are diagrams showing examples of images to be processed. FIG. 4(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).
[0030] As described in FIG. 2, the partial regions R11-R14 corresponding to the scanned images IMr1-IMr4 (FIG. 4(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.
[0031] The processor 210 repeats S140 (FIG. 3) as the transport of the fabric 700 (FIG. 2) progresses. That is, the processor 210 repeats reading the portion of the fabric 700 in the reading area Ar and transporting the fabric 700. The processor 210 reads the reading area Ar (S140) for each fixed transport distance in the transport direction Df so that no gaps are created between the multiple portions of the fabric 700 that are read. The processor 210 can obtain 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).
[0032] In S150, the processor 210 acquires end images that are images representing the ends 700e1 and 700e2 of the fabric 700. In this embodiment, the processor 210 acquires data of the first read image IMr1 and the fourth read image IMr4 (FIG. 4(A)).
[0033] 5(A) to 5(D) are diagrams showing examples of images to be processed. Fig. 5(A) shows an example of an image acquired as an end image. As shown in the figure, a first scanned image IMr1 representing the left end 700e1 and a fourth scanned image IMr4 representing the right end 700e2 are acquired as end images.
[0034] In S160 (FIG. 3), the processor 210 acquires change information. The change information is information indicating a change in the position of the left end 700e1 in the vertical direction Dt and a change in the position of the right end 700e2 in the vertical direction Dt at a specific transfer position PS that is a transfer position included in the first range R1 (FIG. 2). In this embodiment, S160 includes S162, S164, S166, and S168. As will be described later, the processor 210 acquires the change information using the slope of the approximated line representing the left end 700e1 and the slope of the approximated line representing the right end 700e2.
[0035] In S162, the processor 210 generates data of a gray end image, which is a grayscale end image, by grayscale conversion of the end image. FIG. 5(B) shows an example of a gray end image. The processor 210 generates a first gray end image IMr1g from the first read image IMr1 (FIG. 5(A)), and generates a fourth gray end image IMr4g from the fourth read image IMr4. A known relationship can be used as the correspondence between color gradation values and grayscale gradation values (for example, the correspondence between RGB values in an RGB color space and a luminance value Y in a YCbCr color space).
[0036] At S164 (FIG. 3), processor 210 extracts edge pixels using the grayscale end images. FIG. 5(C) shows an example of multiple edge pixels Pe extracted from each of gray end images IMr1g and IMr4g. Multiple edge pixels Pe representing the left end 700e1 are extracted from the first gray end image IMr1g, and multiple edge pixels Pe representing the right end 700e2 are extracted from the fourth gray end image IMr4g.
[0037] Various methods may be used to extract edge pixels. In this embodiment, the processor 210 calculates the edge amount of each pixel using a Laplacian filter, and extracts pixels having an edge amount equal to or greater than a predetermined edge threshold as edge pixels. Note that the processor 210 may calculate the edge amount using a filter other than the Laplacian filter (e.g., a Sobel filter or a Gaussian filter).
[0038] In S166 (FIG. 3), the processor 210 calculates an approximate line that approximates the arrangement of the multiple edge pixels Pe. FIG. 5(D) shows examples of approximate lines Le1 and Le2 calculated from the gray end images IMr1g and IMr4g, respectively. A first approximate line Le1 that approximates the arrangement of the multiple edge pixels Pe is calculated on the first gray end image IMr1g. The first approximate line Le1 approximates the shape of the left edge 700e1. A second approximate line Le2 that approximates the arrangement of the multiple edge pixels Pe is calculated on the fourth gray end image IMr4g. The second approximate line Le2 approximates the shape of the right edge 700e2. Various methods may be used to calculate the approximate line. In this embodiment, the processor 210 calculates the approximate line using a Hough transform.
[0039] In S168 (FIG. 3), the processor 210 acquires the respective slopes of the approximate lines Le1 and Le2 as change information. FIG. 5D is a diagram illustrating an example of change information. In this embodiment, the processor 210 acquires, as change information, angles dA1 and dA2 formed between the second direction Dy and the approximate directions DLe1 and DLe2, which are the directions in which the approximate lines Le1 and Le2 extend. When the approximate directions DLe1 and DLe2 are the same as the second direction Dy, the angles dA1 and dA2 are zero. As shown in FIG. 5D, when the approximate directions DLe1 and DLe2 are tilted counterclockwise with respect to the second direction Dy, the angles dA1 and dA2 are assumed to be positive. Although not illustrated, when the approximate directions DLe1 and DLe2 are tilted clockwise with respect to the second direction Dy, the angles dA1 and dA2 are assumed to be negative.
[0040] In this embodiment, the fabric 700 (FIG. 2) may skew while being conveyed. That is, the position of the fabric 700 in the vertical direction Dt may gradually move in the +Dt direction or the -Dt direction between the rollers 910 and 920. When the left end 700e1 moves, the approximate direction DLe1 (FIG. 5(D)) of the left end 700e1 tilts in the same direction as the movement direction of the left end 700e1. For example, when the left end 700e1 moves in the +Dt direction (i.e., the first direction Dx on the scanned image IMr1), the approximate direction DLe1 tilts in the first direction Dx (i.e., counterclockwise). When the left end 700e1 moves in the -Dt direction, the approximate direction DLe1 tilts in the -Dx direction (i.e., clockwise). The faster the movement speed of the left end 700e1, the larger the absolute value of the angle dA1. The same holds true for the relationship between the movement direction of the right end 700e2 and the direction of the inclination of the approximate direction DLe2.
[0041] When fabric 700 is slanted, left end 700e1 and right end 700e2 may move in the same direction. When the wrinkles in fabric 700 become larger, left end 700e1 and right end 700e2 may move toward each other. When fabric 700 expands and the wrinkles become smaller, left end 700e1 and right end 700e2 may move away from each other.
[0042] After S160 (FIG. 3), in S230, processor 210 determines whether the movement direction of left end 700e1 is the same as the movement direction of right end 700e2. FIG. 5(E) is a diagram showing an example of the correspondence between angle dA and movement direction MD. Angle dA indicates angle dA1 of left end 700e1 or angle dA2 of right end 700e2. Movement direction MD is the movement direction of the end (left end 700e1 or right end 700e2) associated with angle dA.
[0043] In this embodiment, the range of the angle dA is divided into three ranges: RL, RN, and RR. If the angle dA is equal to or greater than the left threshold thL (<0) and equal to or less than the right threshold thR (>0) (i.e., within the neutral range RN), the processor 210 determines the movement direction MD to be neutral DN (i.e., the edge is determined not to be moving). Note that in this embodiment, thL=-thR. If the angle dA is less than the left threshold thL (i.e., within the left range RL), the processor 210 determines the movement direction MD to be the left direction DL (i.e., the -Dx direction). If the angle dA is greater than the right threshold thR (i.e., within the right range RR), the processor 210 determines the movement direction MD to be the right direction DR (i.e., the first direction Dx).
[0044] The fabric 700 is soft and easily deformed. Even if the change in the position of the ends 700e1, 700e2 in the vertical direction Dt (i.e., the first direction Dx) is small, the approximate lines Le1, Le2 may be inclined with respect to the second direction Dy. The neutral range RN (here, thresholds thL, thR) may be experimentally determined in advance so that the neutral range RN indicates the range within which the angle dA can change while the ends of the fabric 700 ( FIG. 2 ) are stably positioned within the second range R2 (the absolute values of the thresholds thL, thR may be, for example, greater than or equal to 1 degree and less than 10 degrees).
[0045] Processor 210 determines the movement direction of left end 700e1 based on angle dA1 and the movement direction of right end 700e2 based on angle dA2 in accordance with this correspondence. Processor 210 then determines whether the movement direction of left end 700e1 is the same as the movement direction of right end 700e2. In this embodiment, if one or both of the movement directions of left end 700e1 and right end 700e2 are "neutral DN," processor 210 determines that these movement directions are not the same. That is, processor 210 determines that the movement direction of left end 700e1 is not the same as the movement direction of right end 700e2 in the following two cases: (First Case Ca) When the change information indicates that both ends 700e1 and 700e2 move in opposite directions (Second Case Cb) When the change information indicates that one or both of the ends 700e1 and 700e2 has not moved In this way, when the fabric 700 is not skewed, the processor 210 can determine that the movement direction of the left end 700e1 is not the same as the movement direction of the right end 700e2.
[0046] If the moving direction of the left end 700e1 is not the same as the moving direction of the right end 700e2 (S230: No (FIG. 3)), that is, if the fabric 700 is not skewed, the processor 210 executes an inspection process in S310. In this embodiment, the processor 210 executes the inspection process in accordance with the inspection program 233 included in the program 231. The processor 210 stores result data representing the result of the inspection process in the storage device 215 (e.g., the non-volatile storage device 230). After S310, the processor 210 proceeds to S130.
[0047] The inspection process may be various processes including detecting defects in the appearance of the fabric 700. If a defect is found, the processor 210 may stop the conveyance of the fabric 700. For example, the processor 210 may detect a width defect of the fabric 700. The processor 210 may calculate the width of the fabric 700 in the vertical direction Dt (i.e., the distance between the left edge 700e1 and the right edge 700e2) using the position of the left edge 700e1 on the first scanned image IMr1 ( FIG. 4(A) ) and the position of the right edge 700e2 on the fourth scanned image IMr4. If the calculated width of the fabric 700 is outside a predetermined tolerance, the processor 210 may determine that the fabric 700 has a width defect.
[0048] The width tolerance range may vary. In this embodiment, because the fabric 700 is flexible, the fabric 700 may wrinkle and stretch during transport. Due to the wrinkles and stretching of the fabric 700, the width of the fabric 700 may deviate from the designed width. Small wrinkles and small stretches are not considered defects and are tolerated. The width tolerance range may be determined in advance through experiments to include such allowable width deviations.
[0049] The processor 210 may also detect other types of defects in the fabric 700 (e.g., linear defects (thread defects, scratches, etc.), holes, etc.). For example, the processor 210 generates a combined image by combining the scanned images IMr1-IMr4 (FIG. 4(A)). FIG. 4(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.
[0050] 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. 4(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.
[0051] The processor 210 may also detect defects in the fabric 700 using a machine learning model that has been trained to detect defects. The machine learning model may be any of various object detection models, such as YOLO, RTMDet, and PaDIM. Note that the specified size, which is the size of an image that can be input to the object detection model, may be smaller than the size of the combined image IMrc ( FIG. 4(B) ). In this case, the processor 210 may perform object detection using the object detection model on each of multiple partial images that represent different parts of the combined image IMrc.
[0052] 3, if the movement direction of left end 700e1 is the same as the movement direction of right end 700e2 (S230: Yes), then in S240 processor 210 determines whether the movement direction is right. If the movement direction is right (S240: Yes), processor 210 adds 1 to the sum sum in S250 and proceeds to S270. If the movement direction is different from right (S240: No), that is, if the movement direction is left, processor 210 subtracts 1 from the sum sum in S260 and proceeds to S270.
[0053] In S270, the processor 210 determines whether the absolute value of the sum sum is greater than a threshold value sth. As will be described later, the processor 210 repeatedly executes the processes of S130-S270 as the conveyance of the fabric 700 progresses. If rightward skew continues, the sum sum increases. If rightward skew continues while the sum sum is greater than zero, the absolute value of the sum sum increases due to the increase in the sum sum. If leftward skew continues, the sum sum decreases. If leftward skew continues while the sum sum is less than zero, the absolute value of the sum sum increases due to the decrease in the sum sum. The absolute value of the sum sum indicates the number of repetitions of skew in the same direction in the most recent repetitions of the processes of S130-S270. A sum sum having an absolute value greater than the threshold value sth indicates continuation of skew in the same direction.
[0054] If the skew continues in the same direction, at least a portion of the fabric 700 (FIG. 2) may move outside the second range R2. If the inspection process (S130 (FIG. 3)) is performed in such an inappropriate state, the processor 210 may not be able to perform the inspection process appropriately because part of the fabric 700 will not be included in the scanned images IMr1-IMr4.
[0055] In this embodiment, if the absolute value of the sum sum is greater than the threshold value sth (S270: Yes), the processor 210 executes a process for identifying skew in the fabric 700 in S300. Hereinafter, the process in S300 will be referred to as the identifying process S300. In this embodiment, the identifying process S300 includes steps S303 and S306. In S303, the processor 210 issues a conveyance stop instruction to the conveyance device 900 (FIG. 2). The control device 990 stops conveyance in accordance with the instruction. This allows the processor 210 to reduce the possibility that the inspection process (S310) will be performed in an inappropriate state. In S306, the processor 210 displays a warning message on the display unit 240 (not shown) indicating that skew in the same direction continues. By observing the displayed warning message, the operator can easily recognize that skew in the same direction continues. After S300, the processor 210 ends the conveyance inspection process.
[0056] If the absolute value of the sum sum is equal to or less than the threshold value sth (S270: No), the processor 210 proceeds to S310 and executes the check process.
[0057] The threshold value sth may be, for example, an integer equal to or greater than 1. The threshold value sth may be experimentally determined in advance so that the threshold value sth indicates the range within which the absolute value of the sum sum can change while the fabric 700 is stably positioned within the second range R2. The threshold value sth is preferably determined so that, when skew in the same direction continues, the condition of S270 is satisfied before the fabric 700 protrudes outside the second range R2. With this configuration, the operator can easily start processing the remaining portion of the fabric 700 by correcting the positional deviation of the fabric 700 after the identification process S300.
[0058] As described above, in this embodiment, the processor 210 (FIG. 1) executes the following process in accordance with the conveying program 232 included in the program 231. In S160 (FIG. 3), the processor 210 acquires the angle dA1 of the left end 700e1 and the angle dA2 of the right end 700e2 (FIG. 5(D)). As described in FIG. 5(E), the angles dA1 and dA2 indicate the change in position in the vertical direction Dt of the ends 700e1 and 700e2 at a specific conveying position PS (FIG. 2). In this way, the angles dA1 and dA2 are an example of change information indicating the change in the positions of the ends 700e1 and 700e2 of the fabric 700 (FIG. 2) during conveyance. The fabric 700 is an example of a flexible, sheet-like object. The two ends 700e1 and 700e2 are the end 700e2 of the fabric 700 in the vertical direction Dt, which is perpendicular to the conveying direction Df, and the end 700e1 of the fabric 700 in the opposite direction to the vertical direction Dt. The change in position indicated by the change information (here, angles dA1 and dA2) indicates the change in position in the vertical direction Dt at a specific conveying position PS.
[0059] The conveying position is a position in the conveying direction on the conveying path. The specific conveying position PS (FIG. 2) is a conveying position indicating a specific portion of the conveying path (in this embodiment, a portion included in the reading area Ar). The specific conveying position PS is a position fixed to the conveying device 900 and is a position that does not move due to the conveyance of the fabric 700.
[0060] In the first case Ca, where the change information (here, angles dA1, dA2) indicates that both ends 700e1, 700e2 have moved in opposite directions, the determination result in S230 (FIG. 3) is No. If the determination result in S230 is No, the processor 210 does not execute the specific process S300 related to the skew of the fabric 700. Thus, the first case Ca is an example of a first specific case where the change information indicates that both ends 700e1, 700e2 have moved in opposite directions, and the specific process S300 is not executed.
[0061] When the change information indicates that both ends 700e1, 700e2 move in the same direction, the determination result of S230 is Yes. When the determination result of S230 is Yes and the determination result of S270 is Yes, the processor 210 executes the identification process S300 related to the skew of the fabric 700. Thus, the third case Cc in which the change information indicates that both ends 700e1, 700e2 move in the same direction (S230: Yes) and the determination result of S270 is Yes is an example of the second identification case in which the change information indicates that both ends 700e1, 700e2 move in the same direction and the identification process S300 is executed.
[0062] In this way, in the first particular case (S230: No) in which the change information indicates that both ends 700e1, 700e2 have moved in opposite directions, processor 210 does not execute the specific process S300 related to skew, so processor 210 can reduce the possibility of erroneously executing the specific process S300 when the flexible fabric 700 is not skewed. Also, in the second particular case (S230: Yes, S270: Yes) in which the change information indicates that both ends 700e1, 700e2 have moved in the same direction, processor 210 executes the specific process S300, so processor 210 can increase the possibility of executing the specific process S300 related to skew when the flexible fabric 700 is skewed. In this way, processor 210 can execute the specific process S300 related to skew when appropriate.
[0063] In this embodiment, in S140 (FIG. 3), the processor 210 executes an acquisition process to acquire scanned images IMr1-IMr4 (FIG. 4A) representing a portion of the fabric 700 (FIG. 2) included in the reading area Ar for the defect inspection (S310). 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. In this embodiment, the processor 210 acquires data of the scanned images IMr1-IMr4 using the digital cameras 111-114. In S160, the processor 210 analyzes the scanned images IMr1 and IMr4 to acquire change information (here, angles dA1 and dA2). In this way, the scanned images IMr1 and IMr4 are commonly used for the defect inspection (S310) and the acquisition of change information (S160), thereby reducing the burden of acquiring the scanned images.
[0064] In this embodiment, the processor 210 executes the following processing in accordance with the inspection program 233 included in the program 231. In S310 (FIG. 3), the processor 210 executes a defect inspection of the fabric 700 by analyzing the combined image IMrc (FIG. 4B). The combined image IMrc is an image obtained by combining the scanned images IMr1-IMr4 (FIG. 4A). Therefore, the processor 210 executes the defect inspection by analyzing the scanned images IMr1-IMr4. Also, as shown in FIG. 3, if the identification process S300 is not executed after the acquisition of change information (S160) (S230: No or S270: No), the processor 210 executes the defect inspection (S310) by analyzing the combined image IMrc (i.e., the scanned images IMr1-IMr4). The processor 210 can reduce the possibility that the defect inspection will be executed in an inappropriate state before the acquisition of change information.
[0065] In this embodiment, in S140 (FIG. 3), the processor 210 executes an acquisition process to acquire scanned images IMr1 and IMr4 of a portion of the fabric 700 (FIG. 2) including both ends 700e1 and 700e2 at the specific transport position PS. S160 includes S162-S166 and S168. In S162-S166, the processor 210 analyzes the scanned images IMr1 and IMr4 to calculate approximate straight lines Le1 and Le2 for both ends 700e1 and 700e2 (FIG. 5(D)). In S168, the processor 210 acquires change information (here, angles dA1 and dA2) using the slopes of the approximate straight lines Le1 and Le2 for both ends 700e1 and 700e2. Such change information can appropriately indicate the change in the position of both ends 700e1 and 700e2 of the fabric 700 in the vertical direction Dt at the specific transport position PS. The processor 210 can obtain such appropriate change information.
[0066] In this embodiment, the processor 210 repeats the processes of S130-S270 (FIG. 3) as the transport of the fabric 700 (FIG. 2) progresses. That is, the processor 210 repeatedly executes the acquisition process (S140) of the scanned images IMr1-IMr4 as the transport of the fabric 700 progresses. The third case Cc, which is an example of a second specific case in which the identification process S300 is executed, is a case in which S230: Yes and S270: Yes. The condition for the determination result of S270 to be Yes is that the absolute value |sum| of the sum sum is greater than the threshold value sth. The absolute value |sum| of the sum sum indicates that the most recent |sum| pieces of change information (here, angles dA1, dA2) indicate movement of both ends 700e1, 700e2 in the same direction (the movement direction is the same among the |sum| pieces of change information). The most recent |sum| pieces of change information are acquired by analyzing the scanned images IMr1 and IMr4 acquired by the most recent |sum| acquisition process (S140). In this way, in the third case Cc where the most recent N pieces of change information (N is the smallest integer exceeding the threshold sth. In this embodiment, N=sth+1) indicate movement in the same direction at both ends 700e1 and 700e2, S230: Yes and S270: Yes are obtained, and the processor 210 executes the identification process S300 (the movement direction is the same among the N pieces of change information). Note that the number N (=sth+1) may be an integer of 1 or greater, or may be an integer of 2 or greater.
[0067] B. Second Example: FIG. 6 is a flowchart showing a part of a second embodiment of the transport inspection process. In the second embodiment, the process between S160 and S300 in FIG. 3 (i.e., the process of S230-S270) is replaced with the process of S170b-S270b in FIG. 6. The other parts of the transport inspection process are the same as the corresponding parts of the first embodiment. The process of FIG. 6 will be described below, and explanations of the other steps will be omitted.
[0068] After S160 (obtaining change information), in S170b, the processor 210 obtains the position of the fabric 700 in the vertical direction Dt. FIGS. 7(A)-7(D) are diagrams showing examples of the position of the fabric 700. FIG. 7(A) shows an example of a combined image IMrc. This combined image IMrc is the same as the combined image IMrc in FIG. 4(B). As described in FIG. 2, the combined image IMrc represents an image of the reading area Ar. The range of the combined image IMrc in the second direction Dy indicates the first range R1, and the range of the combined image IMrc in the first direction Dx indicates the second range R2.
[0069] In the figure, a specific range Rn is shown. The specific range Rn is a range of positions in the first direction Dx, i.e., a range of positions in the vertical direction Dt (FIG. 2). The specific range Rn ranges from the left edge BL to the right edge BR. The left edge BL is located a distance WL inward from the left edge eL of the combined image IMrc, and the right edge BR is located a distance WR inward from the right edge eR of the combined image IMrc. The specific range Rn is a range more inward than the second range R2. In this embodiment, WR = WL.
[0070] 7(B)-7(D) are diagrams showing examples of the position of the fabric 700. Each diagram shows scanned images IMr1 and IMr4. The scanned images IMr1 and IMr4 show the edges BL and BR of the specific range Rn, respectively. FIG. 7(B) shows a case where the entire fabric 700 is located within the specific range Rn. FIG. 7(C) shows a case where part of the fabric 700 protrudes to the right of the specific range Rn (i.e., in the +Dx direction). FIG. 7(D) shows a case where part of the fabric 700 protrudes to the left of the specific range Rn (i.e., in the -Dx direction).
[0071] If skew continues in the same direction, at least a portion of the fabric 700 may move outside the second range R2. Hereinafter, a state in which at least a portion of the fabric 700 is located outside the second range R2 will be referred to as an "out-of-range state." The likelihood of an out-of-range state occurring varies depending on the combination of the fabric 700's position and the direction of skew. When the entire fabric 700 is located within the specific range Rn as shown in FIG. 7(B), the likelihood of an out-of-range state occurring is the same regardless of the direction of skew. When a portion of the fabric 700 extends to the right of the specific range Rn as shown in FIG. 7(C), the likelihood of an out-of-range state occurring is greater if skew to the right continues than if skew to the left continues. When a portion of the fabric 700 extends to the left of the specific range Rn as shown in FIG. 7(D), the likelihood of an out-of-range state occurring is greater if skew to the left continues than if skew to the right continues.
[0072] In this embodiment, the processor 210 adjusts the threshold of the sum sum according to the combination of the position of the fabric 700 and the skew direction. In S170b (FIG. 6), the processor 210 acquires the positions of the left edge 700e1 and the right edge 700e2 of the fabric 700 using the scanned images IMr1 and IMr4. In this embodiment, the processor 210 analyzes the first scanned image IMr1 to determine whether the left edge 700e1 is located outside the left edge BL of the specific range Rn. The processor 210 analyzes the fourth scanned image IMr4 to determine whether the right edge 700e2 is located outside the right edge BR of the specific range Rn.
[0073] The condition for determining that the left edge 700e1 is located outside the left edge BL (referred to as a left protrusion condition) may be various conditions. For example, the left protrusion condition may be that at least a portion of the left edge 700e1 is located outside the left edge BL. Alternatively, the left protrusion condition may be that the entire left edge 700e1 is located outside the left edge BL. Note that the multiple edge pixels Pe described in FIG. 5(C) may be used as the left edge 700e1. Alternatively, the portion of the first approximate straight line Le1 described in FIG. 5(D) that is within the first gray end image IMr1g may be used as the left edge 700e1.
[0074] The condition for determining that the right edge 700e2 is positioned outside the right edge BR (called the right overhang condition) is determined in the same manner as the left overhang condition. Depending on the position of the fabric 700, either the right overhang condition or the left overhang condition may be satisfied.
[0075] In S180b (FIG. 6), the processor 210 branches the process depending on the position of the fabric 700. If the right protrusion condition is met, the processor 210 proceeds to S190b. In S190b, the processor 210 determines the right threshold sthR to be sths and the left threshold sthL to be -sth. The threshold sth is the same as the threshold sth in S270 (FIG. 3). The small threshold sths is a threshold smaller than the threshold sth. The small threshold sths may be, for example, an integer greater than or equal to zero. In this way, the absolute value of the right threshold sthR is smaller than the absolute value of the left threshold sthL. After S190b, the processor 210 proceeds to S230.
[0076] If neither the right protrusion condition nor the left protrusion condition is satisfied, the processor 210 proceeds to S200b (FIG. 6). In S200b, the processor 210 determines the right threshold sthR to be sth and the left threshold sthL to be -sth. In this way, the absolute value of the left threshold sthL is the same as the absolute value of the right threshold sthR. After S200b, the processor 210 proceeds to S230.
[0077] If the left protrusion condition is satisfied, the processor 210 proceeds to S210b (FIG. 6). In S210b, the processor 210 determines the right threshold sthR to be sth and the left threshold sthL to be -sths. The absolute value of the left threshold sthL is smaller than the absolute value of the right threshold sthR. After S210b, the processor 210 proceeds to S230.
[0078] S230, S240, S250, S260, and S270 are the same as S230, S240, S250, S260, and S270, respectively, in Fig. 3. If the movement direction of the left end 700e1 is not the same as the movement direction of the right end 700e2 (S230: No), that is, if the fabric 700 is not skewed, the processor 210 proceeds to S310 (Fig. 3) and executes the inspection process. If the movement direction of the left end 700e1 is the same as the movement direction of the right end 700e2 (S230: Yes), the processor 210 adjusts the sum value "sum" according to the movement direction (S240, S250, S260), and proceeds to S270b.
[0079] In S270b, the processor 210 determines whether the following condition is met: "Left condition CL: The sum sum is smaller than the left threshold sthL" "Right condition CR: The sum sum is greater than the right threshold sthR"
[0080] If the left skew continues, the left condition CL may be met. If the right skew continues, the right condition CR may be met. If the left condition CL or the right condition CR is met (S270b: Yes), the processor 210 executes the specific process in S300 (FIG. 3). As a result, the processor 210 can reduce the possibility that the inspection process (S310) will be executed in an inappropriate state, as in the first embodiment. The processor 210 can also notify the operator that the skew continues in the same direction.
[0081] As shown in FIG. 7(C), when the fabric 700 protrudes to the right of the specific range Rn, the fabric 700 may protrude to the right of the second range R2 even if the number of consecutive rightward diagonal movements is small. In this embodiment, when the fabric 700 protrudes to the right of the specific range Rn (FIG. 7(C)), the absolute value of the right threshold sthR is smaller (S190b-S210b (FIG. 6)) than in other cases (FIGS. 7(B) and 7(D)). In other words, even if the number of consecutive rightward diagonal movements is small, the rightward condition CR may be satisfied. Therefore, the processor 210 can reduce the possibility that the inspection process (S310) will be performed in an inappropriate state where the fabric 700 protrudes to the right of the second range R2. The same applies to the case when the fabric 700 protrudes to the left of the specific range Rn (FIG. 7(D)).
[0082] If neither the left condition CL nor the right condition CR is satisfied (S270: No), processor 210 proceeds to S310 (FIG. 3) and executes the inspection process.
[0083] The small threshold value sths and the distances WL and WR (FIG. 7(A)) may each be set to various values. For example, these parameters sths, WL, and WR may be determined as follows. When a portion of the fabric 700 protrudes outside the specific range Rn (for example, FIGS. 7(C) and 7(D)), and both ends 700e1 and 700e2 continue to move in the same direction, the fabric 700 is likely to protrude outside the second range R2. In such a case, the small threshold value sths and the distances WL and WR may be determined in advance experimentally so that the left condition CL or the right condition CR is satisfied before the fabric 700 protrudes outside the second range R2.
[0084] As described above, in this embodiment, the processor 210 repeats the processes of S130-S270b (FIGS. 3 and 6) as the transport of the fabric 700 (FIG. 2) progresses. That is, the processor 210 repeatedly executes the acquisition process (S140) of the scanned images IMr1-IMr4 as the transport of the fabric 700 progresses. Then, if S230: Yes and S270b: Yes, the processor 210 executes the identification process S300. The condition for the determination result of S270b to be Yes is that the left condition CL or the right condition CR is satisfied. The left condition CL indicates that the absolute value |sum| of the sum value sum is greater than the absolute value of the left threshold value sthL, and the right condition CR indicates that the absolute value |sum| of the sum value sum is greater than the absolute value of the right threshold value sthR. As described above, the absolute value |sum| of the sum value sum indicates that the most recent |sum| pieces of change information (here, angles dA1, dA2) indicate movement of both ends 700e1, 700e2 in the same direction (the movement direction is the same among the |sum| pieces of change information). The most recent |sum| pieces of change information are acquired by analyzing the scanned images IMr1, IMr4 acquired by the most recent |sum| acquisition process (S140). In S270b, the processor 210 compares this sum value sum with the thresholds sthL, sthR. As described in S200b, when the entire fabric 700 is located within the specific range Rn, the absolute value of the left threshold sthL is the same as the absolute value of the right threshold sthR (|sthL|=|sthR|=sth). In a fourth case Cd in which the entire fabric 700 is located within the specific range Rn and the most recent N pieces of change information (N is the smallest integer exceeding the threshold sth; in this embodiment, N=sth+1) indicate movement in the same direction at both ends 700e1 and 700e2, S230: Yes and S270b: Yes result, and the identification process S300 is executed (the movement direction is the same among the N pieces of change information). This fourth case Cd is an example of a second specific case in which the identification process S300 is executed. Note that the number N (=sth+1) may be an integer greater than or equal to 1, or may be an integer greater than or equal to 2.
[0085] The fourth case Cd, which is an example of the second specific case, can be rephrased as follows: The fourth case Cd is a case where, at a specific transport position PS (FIG. 2), the fabric 700 is located within a specific range Rn (FIG. 7(B)) of the position in the vertical direction Dt, and the most recent N pieces of change information indicate movement of both ends 700e1, 700e2 in the same direction.
[0086] In this embodiment, the processor 210 further executes the identification process S300 in a fifth case Ce, which will be described below. As shown in FIG. 7(C), when at least a portion of the fabric 700 is located outside the specific range Rn in the +Dx direction, the right threshold value sthR is set to a small threshold value sths that is smaller than the threshold value sth, as described in S190b (FIG. 6). When a rightward slant (i.e., a slant in the +Dx direction) continues, the sum sum is a positive value. When this sum sum is larger than the right threshold value sthR (i.e., the small threshold value sths), the determination result in S270b is Yes, and the processor 210 executes the identification process S300. This case is the fifth case Ce. The fifth case Ce is an example of the third specific case in which at least a portion of the fabric 700 is located outside the specific range Rn in the first direction Dx, and the most recent M pieces of change information (M is the smallest integer exceeding the small threshold sths. In this embodiment, M=sths+1) indicate movement of both ends 700e1, 700e2 in the first direction Dx. Note that the number M (=sths+1) may be any integer greater than or equal to 1 and less than N (=sth+1).
[0087] Furthermore, the processor 210 further executes the identification process S300 in a sixth case Cf described below. As shown in FIG. 7(D), when at least a portion of the fabric 700 is located outside the specific range Rn in the -Dx direction, a process similar to that of the fifth case Ce described above is executed by switching the +Dx direction and the -Dx direction. Specifically, as described in S210b (FIG. 6), the left threshold value sthL is set to -sths. That is, the absolute value of the left threshold value sthL is set to a small threshold value sths that is smaller than the threshold value sth. When a left slant (i.e., a slant in the -Dx direction) continues, the sum sum is a negative value. When this sum sum is smaller than the left threshold value sthL (i.e., when the absolute value of the sum sum is greater than the absolute value of the left threshold value sthL (i.e., the small threshold value sths)), the determination result in S270b is Yes, and the processor 210 executes the identification process S300. Such a case is the sixth case Cf. The sixth case Cf, like the fifth case Ce, is an example of the third particular case.
[0088] C. Third Example: 8(A) to 8(C) are diagrams showing another embodiment of the acquisition of change information. Fig. 8(A) is a flowchart showing the process of acquiring change information. S160c in the figure is executed instead of S160 in the above-mentioned transport inspection process (Figs. 3 and 6). S160c includes S163c and S166c.
[0089] In S163c, the processor 210 calculates the area of the preceding portion and the area of the following portion. FIG. 8(B) is a diagram showing the preceding portion and the following portion. The diagram shows scanned images IMr1 and IMr4. A center line Lm is a line parallel to the first direction Dx and bisects the scanned images IMr1 and IMr4. Of the portions of the scanned images IMr1 and IMr4 representing the background BG, the portions closer to the center line Lm in the second direction Dy are the preceding portions PL1 and PR1. The remaining portions of the portions representing the background BG are the following portions PL2 and PR2. The processor 210 calculates the areas of the preceding portions PL1 and PR1 and the following portions PL2 and PR2. In the diagram, areas SL1 and SR1 represent the areas of the preceding portions PL1 and PR1, respectively, and areas SL2 and SR2 represent the areas of the following portions PL2 and PR2, respectively. The areas may be expressed, for example, by the number of pixels.
[0090] The method for identifying the portions of the scanned images IMr1 and IMr2 that represent the background BG may be any method. For example, the processor 210 may identify the portions that represent the background BG by dividing the scanned images IMr1 and IMr2 by the approximate lines Le1 and Le2 described in FIG. 5(D). Alternatively, the processor 210 may adopt, as the background BG, an area where multiple consecutive pixels have colors within a predetermined background color range.
[0091] In S166c (FIG. 8(A)), the processor 210 acquires the area ratio as the change information. In this embodiment, the processor 210 calculates the left ratio RTL (= SL1 / SL2) and the right ratio RTR (= SR2 / SR1) as the change information. FIG. 8(B) shows an example of scanned images IMr1 and IMr4 when the edges 700e1 and 700e2 move to the right. When the left edge 700e1 moves to the right, the direction De1 in which the left edge 700e1 extends (for example, the direction in which the approximate straight line of the left edge 700e1 extends) is inclined counterclockwise with respect to the second direction Dy. In this case, the left ratio RTL is greater than 1. Although not shown, when the left edge 700e1 does not move, the direction De1 in which the left edge 700e1 extends is approximately the same as the second direction Dy. In this case, the left ratio RTL is approximately 1. When the left edge 700e1 moves to the left, the direction De1 in which the left edge 700e1 extends is inclined clockwise with respect to the second direction Dy, and the left ratio RTL becomes smaller than 1. In this way, the left ratio RTL changes depending on the movement direction of the left edge 700e1, similar to the angle dA1 (FIG. 5(D)). The same is true for the right ratio RTR. Note that, unlike in the first read image IMr1, in the fourth read image IMr4, the background BG is located to the right of the fabric 700. Therefore, in the calculation formula for the right ratio RTR, the numerator is the area SR2 of the following portion PR2, and the denominator is the area SR1 of the preceding portion PR1.
[0092] In S230 (FIGS. 3 and 6), the processor 210 obtains the movement direction of the left end 700e1 using the left ratio RTL, and obtains the movement direction of the right end 700e2 using the right ratio RTR. FIG. 8(C) is a diagram showing an example of the correspondence between the ratio RT and the movement direction MD. The ratio RT indicates the left ratio RTL associated with the left end 700e1 or the right ratio RTR associated with the right end 700e2. The movement direction MD is the movement direction of the end (left end 700e1 or right end 700e2) associated with the ratio RT.
[0093] The range of the ratio RT is divided into three ranges RLs, RNs, and RRs, similar to the range of the angle dA in FIG. 5(E). If the ratio RT is equal to or greater than the left threshold thLs (<1) and equal to or less than the right threshold thRs (>1) (i.e., within the neutral range RNs), the processor 210 determines the moving direction MD to be neutral DN. If the ratio RT is less than the left threshold thLs (i.e., within the left range RLs), the processor 210 determines the moving direction MD to be the left direction DL. If the ratio RT is greater than the right threshold thRs (i.e., within the right range RRs), the processor 210 determines the moving direction MD to be the right direction DR. The thresholds thLs and thRs may be determined in a similar manner to the thresholds thL and thR in FIG. 5(E).
[0094] As described above, in this embodiment, in S160c (FIG. 8(A)), the processor 210 acquires the left ratio RTL and the right ratio RTR. As described with reference to FIGS. 8(B) and 8(C), the ratios RTL and RTR indicate changes in the positions of the ends 700e1 and 700e2 in the vertical direction Dt at a specific conveying position PS (FIG. 2). In this way, the ratios RTL and RAR are examples of change information indicating changes in the positions of both ends 700e1 and 700e2 of the fabric 700 (FIG. 2) during conveyance. By using such change information (here, the ratios RTL and RTR), the processor 210 can appropriately acquire the movement directions of the left end 700e1 and the right end 700e2.
[0095] D. Fourth Example: 9(A) to 9(C) are diagrams showing another embodiment of the acquisition of change information. FIG. 9(A) is a flowchart showing the process of acquiring change information. S160d in the figure is executed instead of S160 in the above-described transport inspection process (FIGS. 3 and 6). S160d includes S163d and S166d.
[0096] In S163d, the processor 210 calculates the intersections PLc and PRc between the center line Lm and the edges 700e1 and 700e2. FIG. 9B is a diagram showing the intersections PLc and LRc. Scanned images IMr1 and IMr4 are shown in the diagram. The center line Lm is the same as the center line Lm described in FIG. 8B. The left intersection PLc is the intersection between the center line Lm and the left edge 700e1. The right intersection PRc is the intersection between the center line Lm and the right edge 700e2. Any method may be used to identify the edges 700e1 and 700e2 for calculating the intersections PLc and PRc. For example, the processor 210 may calculate the intersections PLc and PRc using the approximate straight lines Le1 and Le2 described in FIG. 5D.
[0097] In S166d (FIG. 9A), the processor 210 acquires change information using the previous intersection positions XLp, XRp and the current intersection positions XLc, XRc of the intersection points PLc, PRc. The positions XLp, XLc, XRp, XRc are positions in the vertical direction Dt (FIG. 2), i.e., in the first direction Dx on the scanned images IMr1, IMr4. The left positions XLp, XLc may be expressed by coordinates in the first direction Dx in the first scanned image IMr1. The right positions XRp, XRc may be expressed by coordinates in the first direction Dx in the fourth scanned image IMr4. The previous intersection positions XLp, XRp are the positions XLc, XRc of the intersection points PLc, PRc calculated in the previous S160d. Processor 210 calculates left displacement dXL (=XLc-XLp) and right displacement dXR (=XRc-XRp) as change information. If left end 700e1 moves to the right, dXL>0; if left end 700e1 does not move, dXL=0; and if left end 700e1 moves to the left, dXL<0. The same applies to right displacement dXR.
[0098] In S230 (FIGS. 3 and 6), the processor 210 obtains the movement direction of the left end 700e1 using the left displacement dXL, and obtains the movement direction of the right end 700e2 using the right displacement dXR. FIG. 9(C) is a diagram showing an example of the correspondence between the displacement dX and the movement direction MD. The displacement dX indicates the left displacement dXL or the right displacement dXR. The movement direction MD is the movement direction of the end (left end 700e1 or right end 700e2) associated with the displacement dX.
[0099] The range of the displacement dX is divided into three ranges RLd, RNd, and RRd, similar to the range of the angle dA in FIG. 5(E). If the displacement dX is equal to or greater than the left threshold thLd (<0) and equal to or less than the right threshold thRd (>0) (i.e., within the neutral range RNd), the processor 210 determines the movement direction MD to be neutral DN. If the displacement dX is less than the left threshold thLd (i.e., within the left range RLd), the processor 210 determines the movement direction MD to be the left direction DL. If the displacement dX is greater than the right threshold thRd (i.e., within the right range RRd), the processor 210 determines the movement direction MD to be the right direction DR. The thresholds thLd and thRd may be determined in a similar manner to the thresholds thL and thR in FIG. 5(E).
[0100] As described above, in this embodiment, in S160d (FIG. 9(A)), the processor 210 acquires the left displacement dXL and the right displacement dXR. As described with reference to FIGS. 9(B) and 9(C), the displacements dXL and dXR indicate the change in position in the vertical direction Dt of the ends 700e1 and 700e2 at a specific conveying position PS (FIG. 2). In this way, the displacements dXL and dXR are examples of change information indicating the change in the positions of both ends 700e1 and 700e2 of the fabric 700 (FIG. 2) during conveyance. By using such change information (here, the displacements dXL and dXR), the processor 210 can appropriately acquire the movement directions of the left end 700e1 and the right end 700e2.
[0101] Various methods may be used to calculate the intersection points PLc and PRc. For example, the processor 210 may extract an area of the scanned images IMr1 and IMr4 where multiple consecutive pixels have colors within a predetermined fabric color range as the fabric area, which is the area of the fabric 700. The processor 210 may use the edges of the fabric area on the center line Lm as the intersection points PLc and PRc. The processor 210 can determine the intersection points PLc and PRc, and thus the displacements dXL and dXR, using the portion on the center line Lm without referencing portions of the scanned images IMr1 and IMr4 other than the portion on the center line Lm. The displacements dXL and dXR indicate changes in the positions of the edges 700e1 and 700e2 in the vertical direction Dt at the conveyance position indicated by the center line Lm. In this way, the processor 210 can determine change information (here, displacements dXL and dXR) using the portion on the center line Lm of the scanned images. In this case, the transfer position indicated by the center line Lm, instead of the entire transfer position included in the first range R1 (FIG. 2), is an example of a specific transfer position associated with the change in position indicated by the change information.
[0102] E. Variations: (1) The process of calculating the approximate line is not limited to the processes of S162-S166 in FIG. 3, and various other processes may be used. For example, the grayscale conversion (S162) may be omitted. In this case, in S164, the processor 210 may extract a plurality of edge pixels Pe using a color image. Furthermore, the processor 210 may use other algorithms instead of the Hough transform. For example, the processor 210 may calculate the approximate line according to an algorithm called Line Segment Detector (LSD).
[0103] (2) The change information may be various information indicating changes in the positions of both ends 700e1 and 700e2 of the fabric 700 in the vertical direction Dt at a specific transport position (e.g., a specific transport position PS (FIG. 2)) instead of the angles dA1 and dA2 (FIG. 3), the ratios RTL and RTR (FIG. 8A), or the displacements dXL and dXR (FIG. 9A). For example, in the embodiment of FIGS. 8A-8C, the leading portions PL1 and PR1 and the trailing portions PL2 and PR2 may represent the fabric 700 instead of the background BG. In this case, the calculation formulas for the ratios RTL and RTR may be those in which the numerator and denominator are interchanged in the calculation formula shown in FIG. 8A. The processor 210 may also use the integrated values of the angles dA1 and dA2 as the change information.
[0104] (3) The specific processing related to the skew of the fabric 700 may be various processing for when the fabric 700 is skewed, instead of the processing described in the specific processing S300 of FIG. 3. For example, one of S303 (stopping conveyance) and S306 (displaying a warning message) may be omitted. Also, the processor 210 may convey the fabric 700 a predetermined distance in the reverse direction Db. The operator may resolve defects in the fabric 700 (e.g., large wrinkles) and then start conveying the fabric in the forward direction Df.
[0105] (4) The first specific case in which the specific process (e.g., specific process S300) is not executed is not limited to the first case Ca (FIGS. 3 and 6), but may be a case in which a first specific condition is satisfied. The first specific condition may be various conditions including the following first basic condition. "First basic condition: The change information indicates that both ends 700e1 and 700e2 move in opposite directions." S230 (FIGS. 3 and 6) is an example of a process for determining whether a first specific condition is satisfied. The first specific condition may be various other conditions. The first specific condition may include various other conditions in addition to the first basic condition. For example, the first specific condition may include that the entire fabric 700 is located within a specific range Rn (FIGS. 7(A) and 7(B)).
[0106] (5) The second specific case in which the specific process (e.g., specific process S300) is executed is not limited to the third case Cc (FIG. 3) and the fourth case Cd (FIG. 6), but may be a case in which a second specific condition is satisfied. The second specific condition may be various conditions including the following second basic condition. "Second basic condition: The change information indicates that both ends 700e1 and 700e2 are moving in the same direction." "S230, S270 (FIG. 3)" and "S200b, S230, S270b (FIG. 6)" are examples of processes for determining whether a second specific condition is satisfied. In the embodiments of FIGS. 3 and 6, the threshold value sth may be an integer equal to or greater than 1. In this case, the second specific condition includes the following consecutive conditions: "Continuous condition: N pieces of change information acquired by analyzing the read images acquired by the most recent N acquisition processes (N is an integer of 2 or more) indicate movement in the same direction at both ends 700e1 and 700e2."
[0107] The second specific condition may be various other conditions. For example, in the embodiment of FIG. 3, the threshold value sth may be zero. That is, when the latest change information indicates that both ends 700e1 and 700e2 move in the same direction, the processor 210 may execute the specific process S300. In the embodiment of FIG. 6, sths may be zero, and sth may be an integer equal to or greater than 1. The second specific condition may include various other conditions in addition to the second basic condition.
[0108] (6) The third specific case in which the specific process (e.g., specific process S300) is executed is not limited to the fifth case Ce and the sixth case Cf (FIG. 6), but may be a case in which a third specific condition is satisfied. The third specific condition may be various conditions including the following third basic condition. "Third basic condition: At least a part of the fabric 700 is located outside the first direction side of the specific range Rn, and the most recent M pieces of change information (M is an integer greater than or equal to 1 and less than N) indicate movement of both ends 700e1 and 700e2 in the first direction." Here, the first direction may be either of two directions (+Dt direction and -Dt direction) perpendicular to the conveying direction Df (FIG. 2). The number N is the number N included in the above-mentioned continuity condition. "S190b, S230, S270b" and "S210b, S230, S270b" in FIG. 6 are examples of processes for determining whether the third specific condition is satisfied. The third specific condition may be various other conditions. For example, in the embodiment of FIG. 6, sths may be zero, and sth may be an integer greater than or equal to 1. The third specific condition may include various other conditions in addition to the third basic condition.
[0109] (7) The scanned image may be any of various images obtained by scanning a specific portion of the fabric 700 (FIG. 2), including a portion located at a specific transport position (e.g., specific transport position PS). The method of acquiring the scanned image is not limited to the method described in S140 of FIG. 3, and various methods may be used. For example, the scanning area Ar (FIG. 2) may be photographed by one digital camera, or may be photographed in portions by two or more digital cameras. The scanned image may also be generated using various scanning devices (e.g., one or more digital cameras or one or more flatbed scanners). The processor 210 may acquire the scanned image by controlling the scanning device. Alternatively, the scanning device may be controlled by a control device (e.g., a computer). The processor 210 may request the scanned image from the control device and acquire the scanned image from the control device.
[0110] (8) The process for determining whether to execute a specific process (e.g., S300) is not limited to the processes of S150-S270 (FIG. 3) and S150-S270b (FIGS. 3 and 6), and may be various processes. For example, in the embodiment of FIG. 6, the processor 210 may classify the position of the fabric 700 in the vertical direction Dt into four or more classes. Then, the processor 210 may adjust the thresholds sthL and sthR according to the class.
[0111] (9) The process for controlling conveyance may be various processes instead of the processes of FIGS. 3 and 6. Various methods may be used to determine whether to continue the process in S130. For example, the processor 210 may continue the process when an instruction to continue is input by the operator. Also, as in the embodiments of FIGS. 3 and 6, the acquisition of scanned images may be repeated as the conveyance progresses. Here, the frequency of the determination of whether to execute the specific process (e.g., S300) may be less than the frequency of the acquisition of scanned images. For example, the processor 210 may determine whether to execute the specific process S300 once every five times the scanned images are acquired.
[0112] (10) The inspection program 233 (FIG. 1) for the inspection process (S310 (FIG. 3)) may be a program different from the program 231 including the transfer program 232.
[0113] (11) When the specific process related to skew is not executed, various processes (called target processes) may be executed in addition to the defect inspection process (S310 (FIG. 3)). For example, in S310, instead of the defect inspection process, a printing process for printing an image on the fabric 700 may be executed.
[0114] In either case, one or both of the data processing device 200 and the program 231 may be configured to perform various processes including a process of acquiring change information and a process of not performing a specific process related to skew in a first specific case but performing a specific process in a second specific case. The other processes (e.g., target processes) may be performed by a program different from the program 231. The other processes may be performed by a device different from the data processing device 200.
[0115] (12) 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 a softness that is sufficient to cause deformation (wrinkles, etc.) such that both ends (e.g., both ends 700e1 and 700e2 (FIG. 2)) in a direction perpendicular to the conveying direction move in opposite directions during conveyance. Such a flexible sheet-like object is not limited to fabric 700 for sewing, but may be various objects such as film.
[0116] (13) 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).
[0117] 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 process of S160 in Fig. 3 may be executed by a dedicated hardware circuit such as an Application Specific Integrated Circuit (ASIC).
[0118] 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.
[0119] 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]
[0120] 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, 240...display unit, 250...operation unit, 270...communication interface, 700...fabric, 700e1...left end, 700e2...right end, 900...transport device, 910...first roller, 920...second roller, 980...control panel, 981...first operation unit, 9 82...second operation unit, 983...third operation unit, 984...fourth operation unit, 990...control device, Ar...reading area, BG...background, dA, dA1, dA2...angle, Df...forward direction (conveying direction), Db...reverse direction, Dt...vertical direction, dX...displacement, dXL...left displacement, dXR...right displacement, Dx...first direction, Dy...second direction, IMr1...first read image, IMr2...second read image, IMr3...third read image, IMr4...fourth read image, Le1...first approximate straight line, Le2...second approximate straight line, PS...specific conveying position, Pth...partial conveying path (partial path)
Claims
1. A program, a change acquisition function that acquires change information indicating a change in the position of each of both ends of a flexible sheet-like object being conveyed, the both ends being an end of the sheet-like object in a vertical direction that is perpendicular to the conveying direction and an end of the sheet-like object in a direction opposite to the vertical direction, and the change in the position indicates a change in the position in the vertical direction at a specific conveying position; a specific processing execution function that does not execute a specific processing related to the skew of the sheet-like object in a first specific case where the change information indicates that the both ends move in opposite directions, and executes the specific processing in a second specific case where the change information indicates that the both ends move in the same direction; A program that enables a computer to achieve this.
2. The program according to claim 1, further comprising: causing a computer to realize an image acquisition function that executes an acquisition process for acquiring a read image of a specific portion of the sheet-like object, including a portion located at the specific transport position, for defect inspection; the change acquisition function includes a function of acquiring the change information by analyzing the read image, program.
3. The program according to claim 2, further comprising: causing a computer to realize an inspection function for performing a defect inspection of the sheet-like object by analyzing the read image; the inspection function includes a function of performing the defect inspection by analyzing the read image when the specific processing is not performed by the specific processing execution function after the change information is acquired by the change acquisition function. program.
4. 2. The program according to claim 1, an image acquisition function that executes an acquisition process to acquire a read image of a portion of the sheet-like object that includes both ends at the specific conveying position; The change acquisition function is a function of calculating approximate straight lines at both ends by analyzing the read image; a function of acquiring the change information using the gradients of the approximation lines at both ends; Including, the program.
5. 5. The program according to claim 2, the image acquisition function includes a function of repeatedly executing the acquisition process as the sheet-like object is conveyed, The second specific case is a specific case in which N pieces of change information acquired by analyzing read images acquired by the most recent N acquisition processes (N is an integer equal to or greater than 2) indicate movement of both ends in the same direction. program.
6. 6. The program according to claim 5, the second specific case is a specific case in which the most recent N pieces of change information indicate movement of both ends in the same direction, and the sheet-like object is located within a specific range of the vertical position at the specific transport position, The specific process execution function further includes a function of executing the specific process in a third specific case in which at least a part of the sheet-like object is located outside the first direction side of the specific range and the most recent M (M is an integer of 1 or more and less than N) pieces of change information indicate movement of both ends in the first direction. program.
7. 1. A data processing device, comprising: a change acquisition unit that acquires change information indicating a change in each position of both ends of a flexible sheet-like object being conveyed, the both ends being an end of the sheet-like object in a vertical direction that is perpendicular to the conveying direction and an end of the sheet-like object in a direction opposite to the vertical direction, and the change in position indicates a change in position in the vertical direction at a specific conveying position; a specific processing execution unit that does not execute a specific processing related to skew of the sheet-like object in a first specific case where the change information indicates that the both ends move in opposite directions, and executes the specific processing in a second specific case where the change information indicates that the both ends move in the same direction; A data processing device comprising:
Citation Information
Patent Citations
fabric feeder
JP1994037392U