Substrate processing device and information processing method for substrate processing device
By setting virtual camera positions within defined initial setting ranges based on three-dimensional design information, the substrate processing device efficiently recognizes the posture of substrates, addressing computational inefficiencies and enhancing recognition accuracy.
Patent Information
- Application Number
- PCT/JP2024/020077
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-31
- Filing Date
- 2024-05-31
- Publication Date
- 2025-02-06
AI Technical Summary
Substrate processing devices face inefficiencies in recognizing the posture of parts, particularly due to high computational requirements and increased time for calculations when using fine virtual polyhedrons and multiple virtual camera positions, which limits the accuracy and speed of posture recognition.
The substrate processing device employs a method where virtual camera positions are set within limited initial setting ranges defined by three-dimensional design information and setting range information, focusing on the most relevant positions to reduce computational load and enhance recognition efficiency.
This approach reduces the amount of calculation needed for recognizing the orientation of parts, allowing for efficient and accurate posture recognition of substrates by limiting the range of virtual camera positions and orientations, thereby improving processing speed and accuracy.
Smart Images

Figure JP2024020077_06022025_PF_FP_ABST
Abstract
Description
SUBSTRATE PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD IN SUBSTRATE PROCESSING APPARATUS
[0001] The present invention relates to a technique for recognizing the orientation of components in a substrate processing apparatus that processes substrates, including, for example, semiconductor substrates, substrates for flat panel displays (FPDs) such as liquid crystal displays or organic electroluminescence (EL) displays, glass substrates for photomasks, substrates for optical disks, substrates for magnetic disks, and substrates for solar cells.
[0002] Some substrate processing apparatuses include a processing chamber, a substrate holder, a nozzle, a camera, an image processor, and a monitor (see, for example, Patent Document 1).
[0003] In this substrate processing apparatus, a substrate holder, a nozzle, and a camera are disposed within a processing chamber. The substrate holder holds a substrate in a horizontal position. The substrate holder rotates the substrate within a horizontal plane. The nozzle moves between a standby position off to the side of the substrate and a discharge position above the substrate by pivoting a drive arm to which the nozzle is fixed. The nozzle is disposed at the standby position when the substrate is attached to or detached from the substrate holder, and at the discharge position when processing liquid is discharged from the nozzle toward the substrate. The camera is attached to a predetermined position within the processing chamber and captures an image of a predetermined area including the nozzle moved to the discharge position. The image processor acquires second nozzle position information indicating the position of the nozzle based on an image from the camera and outputs the second nozzle position information to a monitoring unit. The monitoring unit determines whether there is an abnormality in the nozzle position based on the correspondence between first nozzle position information from the control unit, which directly or indirectly indicates the nozzle position, and second nozzle position information from the image processor.
[0004] International Publication No. 2019 / 146456
[0005] However, there is room for improvement in substrate processing apparatuses in terms of efficiently recognizing the orientation of components.
[0006] a search processing unit that executes a search process to search for a maximum-match virtual camera position among the plurality of virtual camera positions, the maximum-match virtual camera position having the greatest match between the reference shape information and the actual shape information, based on reference shape information about a two-dimensional shape of a three-dimensional model in each of a plurality of virtual images that can be obtained by photographing the three-dimensional model of the search target part from a plurality of virtual camera positions, the reference shape information being generated based on three-dimensional design information related to the search target part; and a storage unit that stores setting range information that defines one or more initial setting ranges related to preset virtual camera positions for at least one target part among the one or more target parts, the search processing unit executing a search process to search for a maximum-match virtual camera position among the plurality of virtual camera positions, the maximum-match virtual camera position having the greatest match between the reference shape information and the actual shape information, based on the three-dimensional design information and the setting range information. the search processing unit searches for the highest-match virtual camera position based on the high-match virtual camera position detected by the first detection unit, or the high-match virtual camera position is the highest-match virtual camera position.
[0007] A substrate processing apparatus according to a second aspect is a substrate processing apparatus according to the first aspect, wherein each of the one or more initial setting ranges includes a first numerical range that is a range of distance from the reference point, a second numerical range that is a range of latitude about a virtual sphere that surrounds the three-dimensional model with the reference point as its center, and a third numerical range that is a range of longitude about the virtual sphere.
[0008] A substrate processing apparatus according to a third aspect is the substrate processing apparatus according to the second aspect, wherein the first shape information acquisition unit virtually sets T1 (T1 is a natural number of 2 or more) surface sets, each including a plurality of virtual surfaces positioned along a virtual sphere surrounding the three-dimensional model with the reference point as its center, and having different distances from the reference point corresponding to the first numerical range in the at least one initial setting range, based on the three-dimensional design information and the setting range information, and virtually sets one virtual camera position for each of M1 (M1 is a natural number of 2 or more) virtual surfaces in each of the T1 surface sets corresponding to each of the second numerical range and the third numerical range in the at least one initial setting range, and acquires the reference shape information generated for each of the M1×T1 first virtual camera positions, assuming a case where the three-dimensional model is photographed from each of the M1×T1 first virtual camera positions; The first detection unit calculates a numerical value indicating the degree of agreement between the actual shape information and the reference shape information for each of the first virtual camera positions, and the first detection unit detects the high-match virtual camera position, which is the first virtual camera position having the highest degree of agreement between the actual shape information and the reference shape information, among the M1×T1 first virtual camera positions based on the calculation result by the first calculation unit, and the search processing unit detects the high-match virtual camera position, which is the first virtual camera position having the highest degree of agreement between the actual shape information and the reference shape information, among the M1 virtual surfaces in each of the T1 surface collections. a division surface generation unit that generates M2×T2 virtual division surfaces by dividing T2 (T2 is a natural number of 2 or more) virtual surfaces, each of which includes a high-matching virtual surface that is a virtual surface that is set in advance, intersects with a line passing through the reference point and the high-matching virtual camera position on the side of the high-matching virtual camera position relative to the reference point, and has a different distance from the reference point, using the same rule, to generate M2 (M2 is a natural number of 2 or more) virtual division surfaces for each of the T2 virtual surfaces; andAssuming that the three-dimensional model is photographed from each of M2×T2 second virtual camera positions, which are M2×T2 virtual camera positions that are set by virtually setting one virtual camera position for each of the M2×T2 virtual dividing planes, the system includes: a second shape information generation unit that generates the reference shape information for each of the M2×T2 second virtual camera positions; a second calculation unit that calculates a numerical value indicating the degree of agreement between the actual shape information and the reference shape information for each of the M2×T2 second virtual camera positions; and a second detection unit that detects the virtual camera position that has the greatest degree of agreement between the actual shape information and the reference shape information, among the high-degree-of-match virtual camera position and the M2×T2 second virtual camera positions, wherein the search processing unit searches for the maximum-degree-of-match virtual camera position based on the virtual camera position detected by the second detection unit, or the virtual camera position detected by the second detection unit is the maximum-degree-of-match virtual camera position.
[0009] A substrate processing apparatus according to a fourth aspect is the substrate processing apparatus according to the third aspect, wherein the search processing unit executes a first unit process for the search target part, and then executes one or more n-th unit processes (n is a natural number equal to or greater than 2), and the search processing unit executes a first A process, a first B process, a first C process, and a first D process in the first unit process in that order, and the first A process is performed by the division surface generation unit using a first reference which is a virtual camera position first detected by the second detection unit as a plurality of virtual division surfaces generated by dividing the T2 virtual surfaces respectively. The first T3 virtual division surfaces are T3 (T3 is a natural number of 2 or more) virtual division surfaces that include a virtual division surface that includes a virtual camera position, intersect with a line that passes through the reference point and the first reference virtual camera position on the side of the reference point closer to the first reference virtual camera position, and have different distances from the reference point. Each of the first T3 virtual division surfaces is divided according to the same rule, and M3 (M3 is a natural number of 2 or more) first M3 virtual division surfaces are generated for each of the first T3 virtual division surfaces, thereby generating the first M3 virtual division surfaces that are M3 x T3 virtual division surfaces. The first B process is a process in which the second shape information generation unit generates the reference shape information for each of the first M3×T3 third virtual camera positions, assuming a case in which the three-dimensional model is photographed from each of the first M3×T3 third virtual camera positions, which are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the first M3×T3 virtual dividing surfaces based on the three-dimensional design information, and the first C process is a process in which the second calculation unit generates the reference shape information for each of the first M3×T3 third virtual camera positions, the first D processing is a process of calculating a numerical value indicating the degree of match between the actual shape information and the reference shape information for each of the first M3×T3 third virtual camera positions, the first D processing is a process by which the second detection unit detects a second reference virtual camera position which is a virtual camera position having the greatest degree of match between the actual shape information and the reference shape information among the first reference virtual camera position and the first M3×T3 third virtual camera positions, and the search processing unit performs an n-th A processing, an n-th B processing, andThe nC process and the nD process are performed in order, and the nA process is a process in which the division surface generation unit divides each of the n-1th T3 virtual division surfaces, which are T3 virtual division surfaces that include a virtual division surface that includes the nth reference virtual camera position that is the virtual camera position that is the nth detected by the second detection unit, that intersect a line that passes through the reference point and the nth reference virtual camera position on the nth reference virtual camera position side of the reference point, and that are at different distances from the reference point, using the same rule to generate nth M3 virtual division surfaces that are M3 virtual division surfaces for each of the nth T3 virtual division surfaces, thereby generating nth M3×T3 virtual division surfaces that are M3×T3 virtual division surfaces; and the nB process is a process in which the second shape information generation unit divides each of the nth M3×T3 virtual division surfaces based on the three-dimensional design information. the nC process is a process of generating the reference shape information for each of the n-th M3×T3 third virtual camera positions, assuming that the three-dimensional model is photographed from each of the n-th M3×T3 third virtual camera positions, which are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the n-th M3×T3 third virtual camera positions; the nC process is a process of the second calculation unit calculating a numerical value indicating the degree of agreement between the actual shape information and the reference shape information for each of the n-th M3×T3 third virtual camera positions; the nD process is a process of the second detection unit detecting the virtual camera position that has the greatest degree of agreement between the actual shape information and the reference shape information, among the n-th reference virtual camera position and the n-th M3×T3 third virtual camera positions; and the virtual camera position detected by the second detection unit in the last nD process in the one or more n-th unit processes is the maximum-match virtual camera position.
[0010] A substrate processing apparatus according to a fifth aspect is a substrate processing apparatus according to the fourth aspect, wherein the search processing unit terminates execution of the one or more nth unit processes in response to the second detection unit detecting one of the reference virtual camera positions from the first reference virtual camera position to the nth reference virtual camera position consecutively a predetermined first predetermined number of times.
[0011] A substrate processing apparatus according to a sixth aspect is a substrate processing apparatus according to the fourth aspect, wherein the search processing unit terminates the execution of one or more n-th unit processes in response to the n-th unit process being executed a predetermined second predetermined number of times.
[0012] A substrate processing apparatus according to a seventh aspect is a substrate processing apparatus according to any one of the third to sixth aspects, and the same rule includes a rule in which the surface to be divided is divided into multiple surfaces by multiple line segments respectively connecting the center point of the surface to be divided to all of the vertices of the surface to be divided.
[0013] A substrate processing apparatus according to an eighth aspect is a substrate processing apparatus according to any one of the third to seventh aspects, wherein each of the plurality of virtual surfaces is a triangular surface, and each of the T1 surface groups is a polyhedron composed of a plurality of triangular surfaces.
[0014] A substrate processing apparatus according to a ninth aspect is a substrate processing apparatus according to the eighth aspect, wherein the division surface generation unit divides the high-matching virtual surface into three virtual division surfaces as the M2 virtual division surfaces by three line segments respectively connecting three vertices in the high-matching virtual surface and the high-matching virtual camera position.
[0015] A tenth aspect of the present invention is a substrate processing apparatus according to any one of the first to ninth aspects, further comprising a movement mechanism that moves the search target component between a first position and a second position, wherein the one or more initial setting ranges include a first initial setting range for the first position, and the search processing unit, at a timing when the search target component is positioned at the first position by the movement mechanism, performs, by the first shape information acquisition unit, based on the three-dimensional design information and the setting range information, on the assumption that the three-dimensional model will be photographed from each of the plurality of first virtual camera positions corresponding to the first initial setting range, which is the at least one initial setting range, and The reference shape information generated for each of a number of first virtual camera positions is acquired, and the first calculation unit calculates, for each of the plurality of first virtual camera positions according to the first initial setting range, a numerical value indicating the degree of match between the reference shape information and the actual shape information relating to the actual image obtained by photographing with the one or more photographing units at the time when the part to be searched is positioned at the first position by the moving mechanism, and the high-match virtual camera position having the greatest degree of match between the actual shape information and the reference shape information, among the plurality of first virtual camera positions according to the first initial setting range, based on the calculation result by the first calculation unit.
[0016] A substrate processing apparatus according to an eleventh aspect is the substrate processing apparatus according to the tenth aspect, wherein the one or more initial setting ranges further include a second initial setting range for the second position, and the search processing unit generates images for each of the plurality of first virtual camera positions corresponding to the second initial setting range based on the three-dimensional design information and the setting range information by the first shape information acquisition unit, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions corresponding to the second initial setting range, which is the at least one initial setting range, at a timing when the search target component is positioned at the second position by the moving mechanism. The reference shape information thus generated is acquired, and the first calculation unit calculates, for each of the plurality of first virtual camera positions corresponding to the second initial setting range, a numerical value indicating the degree of match between the reference shape information and the actual shape information relating to the actual image obtained by photographing with the one or more photographing units at the time when the part to be searched is positioned at the second position by the moving mechanism, and the high-match virtual camera position, among the plurality of first virtual camera positions corresponding to the second initial setting range, which has the greatest degree of match between the actual shape information and the reference shape information, based on the calculation result by the first calculation unit, is detected by the first detection unit.
[0017] The substrate processing apparatus according to the twelfth aspect is the substrate processing apparatus according to the tenth or eleventh aspect, and further includes an abnormality detection unit that detects an abnormality in the part to be searched if the degree of match between the reference shape information and the actual shape information for the maximum degree of match virtual camera position detected by the search processing unit is smaller than a predetermined degree of match that has been set in advance.
[0018] A thirteenth aspect of the substrate processing apparatus is the substrate processing apparatus of the tenth aspect, wherein the one or more initial setting ranges further include a second initial setting range for the second position, and the search processing unit acquires, by the first shape information acquisition unit, the reference shape information generated for each of the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range based on the three-dimensional design information and the setting range information, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range, at a timing when the search target component is positioned at the first position by the moving mechanism, and and for each of the plurality of first virtual camera positions, a numerical value indicating the degree of match between the reference shape information and the actual shape information relating to the actual image obtained by photographing with the one or more photographing units is calculated at the time when the search target part is positioned at the first position by the moving mechanism, and the first detection unit detects the high-match virtual camera position among the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range based on the calculation result by the first calculation unit, and the substrate processing apparatus further includes an abnormality detection unit that detects an abnormality in the search target part if the highest-match virtual camera position is a position that belongs to the second initial setting range at the time when the search target part is positioned at the first position by the moving mechanism.
[0019] A substrate processing apparatus according to a fourteenth aspect is a substrate processing apparatus according to any one of the first to eleventh aspects, and further includes an abnormality detection unit that detects an abnormality in the search target part by comparing actual information related to the posture of the search target part recognized based on the maximum matching virtual camera position with normal information related to the posture of the search target part based on the three-dimensional design information when the state of the search target part is normal.
[0020] A substrate processing apparatus according to a fifteenth aspect is a substrate processing apparatus according to any one of the first to fourteenth aspects, wherein the one or more target components include two or more target components, and the at least one target component includes the two or more target components.
[0021] An information processing method in a substrate processing apparatus according to a sixteenth aspect is an information processing method in a substrate processing apparatus having one or more target components, the information processing method comprising: a storage step of storing in a storage unit setting range information that defines one or more initial setting ranges for virtual camera positions that have been preset for at least one target component of the one or more target components; a photographing step of obtaining an actual image of a search target component, which is any one of the one or more target components, by photographing with a photographing unit; and a search step of executing by a computing unit a search process that searches for a maximum-match virtual camera position among the plurality of virtual camera positions, the maximum-match virtual camera position having the greatest match between the reference shape information and the actual shape information, based on reference shape information about a two-dimensional shape of a three-dimensional model of the search target component in each of a plurality of virtual images that can be obtained by photographing the three-dimensional model from a plurality of virtual camera positions, the reference shape information being generated based on three-dimensional design information about the search target component, and actual shape information about the two-dimensional shape of an object in the actual image obtained in the photographing step. the method includes: a first shape information acquisition step of acquiring the reference shape information generated for each of a plurality of first virtual camera positions based on design information and the set range information, the reference shape information being generated for each of the plurality of first virtual camera positions, the first virtual camera positions being positioned along a plurality of virtual spheres surrounding the three-dimensional model with a reference point of the three-dimensional model as a center and corresponding to at least one of the one or more set ranges for the search target part defined by the set range information; a first calculation step of calculating a numerical value indicating a degree of agreement between the reference shape information and the actual shape information for each of the plurality of first virtual camera positions acquired by the first shape information acquisition step; and a first detection step of detecting, from among the plurality of first virtual camera positions, a high-degree-of-match virtual camera position having the highest degree of agreement between the actual shape information and the reference shape information, based on a calculation result by the first calculation step; wherein in the search step, the highest-degree-of-match virtual camera position is searched for based on the high-degree-of-match virtual camera position detected in the first detection step, orAlternatively, the high-match virtual camera position is the maximum-match virtual camera position.
[0022] According to the substrate processing apparatus of the first aspect, when the range of the position and orientation of the search target component is limited, the range in which the multiple first virtual camera positions are set is limited, thereby reducing the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0023] According to the substrate processing apparatus of the second aspect, when the ranges in which the angular relationship and distance between the image capture unit and the search target component change are limited, the range in which the multiple first virtual camera positions are set can be limited. This reduces the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0024] According to the substrate processing apparatus of the third aspect, a second virtual camera position is set for each of a plurality of virtual divided surfaces generated by dividing a plurality of virtual surfaces, including a high-match virtual surface on which a high-match virtual camera position detected by the first detection unit is set, and a numerical value indicating the degree of match between the actual shape information and the reference shape information is calculated for each second virtual camera position. Therefore, unlike the plurality of virtual surfaces including the high-match virtual surface and the plurality of virtual divided surfaces, an increase in at least one of the number and area of the plurality of virtual divided surfaces can be reduced. This reduces the amount of calculation required to recognize the orientation of a search target component captured in an actual image. As a result, component orientation recognition can be performed efficiently in the substrate processing apparatus.
[0025] According to the substrate processing apparatus of the fourth aspect, when a unit process is repeatedly executed, multiple virtual dividing surfaces, including a virtual dividing surface encompassing the virtual camera position where the degree of match between the actual shape information and the reference shape information is greatest and which differ in distance from the three-dimensional model of the search target component, are divided according to the same rule to generate multiple virtual dividing surfaces on which the next virtual camera position is set. This reduces the increase in the number and / or area of the virtual dividing surfaces after division, rather than the virtual dividing surfaces before division being unrelated to the virtual dividing surfaces after division. As a result, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced. Therefore, component orientation can be recognized efficiently in the substrate processing apparatus.
[0026] According to the substrate processing apparatus of the fifth aspect, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced, thereby enabling the substrate processing apparatus to efficiently recognize the orientation of the component.
[0027] According to the substrate processing apparatus of the sixth aspect, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced, thereby enabling the substrate processing apparatus to efficiently recognize the orientation of the component.
[0028] According to the substrate processing apparatus of the seventh aspect, the surface can be easily divided.
[0029] According to the substrate processing apparatus of the eighth aspect, it is possible to easily set a surface aggregate including a plurality of virtual surfaces.
[0030] According to the substrate processing apparatus of the ninth aspect, division of the imaginary surface can be easily performed.
[0031] According to the substrate processing apparatus of the tenth aspect, when the search target component moves between the first position and the second position, the range in which the multiple first virtual camera positions are set can be limited to the first position, which has a more limited range in which the orientation of the search target component changes. This reduces the amount of calculation required to recognize the orientation of the search target component captured in the actual image. As a result, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0032] According to the substrate processing apparatus of the eleventh aspect, when the search target component moves between the first position and the second position, the range in which the multiple first virtual camera positions are set can be limited to the second position, which has a more limited range in which the orientation of the search target component changes. This reduces the amount of calculation required to recognize the orientation of the search target component captured in the actual image. As a result, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0033] According to the substrate processing apparatus of the twelfth aspect, the amount of calculation required for the search process is reduced, so that an abnormality in the search target component can be easily detected.
[0034] According to the substrate processing apparatus of the thirteenth aspect, when the search target part moves between the first position and the second position, an abnormality in the search target part that is located at the second position can be easily detected at the time when the search target part is located at the first position.
[0035] According to the substrate processing apparatus of the fourteenth aspect, the amount of calculation required for the search process is reduced, so that the recognition of real-world information relating to the posture of the search target part captured in the actual image can be performed efficiently, and therefore, abnormalities in the search target part can be detected efficiently.
[0036] According to the substrate processing apparatus of the fifteenth aspect, information specifying one or more initial setting ranges for the virtual camera position for each target component is stored, thereby limiting the range in which multiple first virtual camera positions are set for each search target component. This reduces the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0037] According to the information processing method for a substrate processing apparatus of the sixteenth aspect, when the range of the position and orientation of a search target component is limited, the range in which the multiple first virtual camera positions are set is limited, thereby reducing the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the component can be recognized efficiently in the substrate processing apparatus.
[0038] FIG. 1 is a side view schematically illustrating an example of a schematic configuration of a substrate processing apparatus according to a first embodiment. FIG. 2 is a plan view schematically illustrating an example of a schematic configuration of the substrate processing apparatus according to the first embodiment. FIG. 3 is a block diagram illustrating an example of a functional configuration of the substrate processing apparatus according to the first embodiment. FIG. 4 is a diagram schematically illustrating a specific example of set range information. FIG. 5 is a block diagram illustrating a specific example of a functional configuration related to a search process in a control unit. FIG. 6 is a diagram illustrating a specific example of an actual image captured by a camera. FIG. 7 is a diagram illustrating a specific example of a processing target region in the actual image. FIG. 8 is a diagram illustrating a specific example of an actual image to be processed. FIG. 9 is a diagram illustrating a specific example of an edge image. FIG. 10 is a diagram illustrating the basic concept of the search process. FIG. 11 is a diagram illustrating the basic concept of the search process. FIG. 12 is a diagram illustrating the basic concept of the search process. FIG. 13 is a diagram illustrating the basic concept of the search process. FIG. 14 is a diagram illustrating the basic concept of the search process. FIG. 15 is a diagram illustrating the basic concept of the search process. FIG. 16 is a diagram illustrating the basic concept of the search process. FIG. 17 is a diagram illustrating the basic concept of the search process. FIG. 18 is a diagram illustrating an example of a mode in which T1 surface aggregates, each having a different distance from a reference point of a 3D model of a search target part, are virtually set. FIG. 19 is a diagram illustrating an example of a setting mode of one surface aggregate. FIG. 20 is a diagram illustrating an example of a setting mode of a first virtual camera position on one virtual surface. FIG. 21 is a diagram illustrating a specific example of a process for calculating a numerical value indicating the degree of agreement between actual shape information and reference shape information for one virtual camera position. FIG. 22 is a diagram illustrating a specific example of a process for calculating a numerical value indicating the degree of agreement between actual shape information and reference shape information for one virtual camera position. FIG. 23 is a diagram illustrating a specific example of a process for calculating a numerical value indicating the degree of agreement between actual shape information and reference shape information for one virtual camera position. FIG. 24 is a diagram illustrating a specific example of a process for calculating a numerical value indicating the degree of agreement between actual shape information and reference shape information for one virtual camera position.FIG. 25 is a diagram for explaining a specific example of a calculation process for a numerical value indicating the degree of match between actual shape information and reference shape information for one virtual camera position. FIG. 26 is a diagram showing a specific example in which a matching target region is set in an edge image as actual shape information. FIG. 27 is an image diagram schematically showing an example of T2 virtual planes. FIG. 28 is a diagram schematically showing a specific example in which a high-match degree virtual plane is divided into multiple virtual split planes. FIG. 29 is an image diagram schematically showing an example of the first T3 virtual split planes. FIG. 30 is a diagram schematically showing a specific example in which a first reference virtual split plane is divided into multiple virtual split planes in the first first case. FIG. 31 is a diagram schematically showing a specific example in which a first reference virtual split plane is set in the first second case. FIG. 32 is a diagram schematically showing a specific example in which a first reference virtual split plane is divided into multiple virtual split planes in the first second case. FIG. 33 is an image diagram schematically illustrating an example of the second T3 virtual dividing surfaces, which is a specific example of the n-th T3 virtual dividing surfaces. FIG. 34 is a diagram schematically illustrating a specific example in which the second reference virtual dividing surface is divided into multiple virtual dividing surfaces in the second first case. FIG. 35 is a diagram schematically illustrating a specific example in which the second reference virtual dividing surface is set in the second second case. FIG. 36 is a diagram schematically illustrating a specific example in which the second reference virtual dividing surface, among the second T3 virtual dividing surfaces, is divided into multiple virtual dividing surfaces in the second second case. FIG. 37 is a flowchart showing a specific example of the general flow of operations related to the processing of one or more substrates in a substrate processing apparatus. FIG. 38 is a flowchart showing a specific example of the general flow of operations related to the processing of abnormalities in a substrate processing apparatus. FIG. 39 is a flowchart showing a specific example of the flow of image processing in step S14 of FIG. 38. FIG. 40 is a flowchart showing a specific example of the flow of search processing in step S15 of FIG. 38. Figure 41 is a flowchart showing a specific example of the processing flow in the primary search processing of step Sb1 in Figure 40. Figure 42 is a flowchart showing a specific example of the processing flow in the secondary search processing of step Sb2 in Figure 40. Figure 43 is a flowchart showing a specific example of the processing flow in the secondary search processing of step Sb2 in Figure 40.FIG. 44 is a flow chart showing a specific example of the process flow in the secondary search process of step Sb2 in FIG. 40 . FIG. 45 is a diagram schematically showing an example of a state in which each chuck is in the open position, the guard is in the lowered position, and the nozzle is in the standby position. FIG. 46 is a diagram schematically showing an example of a state in which each chuck is in the closed position. FIG. 47 is a diagram schematically showing an example of a state in which the nozzle is in the discharge position, and the guard is in the raised position. FIG. 48 is a diagram schematically showing another specific example of setting range information. FIG. 49 is a diagram schematically showing another specific example of setting range information. FIG. 50 is a diagram schematically showing another specific example of setting range information. FIG. 51 is a diagram schematically showing an example of a general configuration of a substrate processing system.
[0039] There is a substrate processing apparatus that includes a processing chamber, a substrate holder, a nozzle, a camera, an image processor, and a monitor.
[0040] In this substrate processing apparatus, a substrate holder, a nozzle, and a camera are disposed within a processing chamber. The substrate holder holds a substrate in a horizontal position and rotates the substrate within a horizontal plane. The nozzle moves between a standby position off to the side of the substrate and a discharge position above the substrate by pivoting a drive arm to which the nozzle is fixed. The nozzle is disposed at the standby position when the substrate is attached to or detached from the substrate holder, and at the discharge position when processing liquid is discharged from the nozzle toward the substrate. The camera is disposed at a predetermined position within the processing chamber and captures an image of a predetermined area including the nozzle moved to the discharge position. The image processor acquires second nozzle position information indicating the position of the nozzle based on an image from the camera and outputs the acquired information to a monitoring unit. The monitoring unit determines whether there is an abnormality in the nozzle position based on the correspondence between first nozzle position information from the control unit, which directly or indirectly indicates the position of the nozzle, and second nozzle position information from the image processor.
[0041] In substrate processing equipment, it may be necessary to recognize the posture of one or more of the various components, such as a nozzle, a chuck that holds the edge of the substrate in the substrate holding part, and a guard that moves up and down in the area surrounding the side of the substrate holding part, in order to detect abnormalities and operating conditions of the components.
[0042] In this case, it is conceivable that the substrate processing apparatus recognizes the orientation of the component by, for example, performing the following [Process A] to [Process E] in order.
[0043] [Process A] A virtual polyhedron is set, which is made up of a plurality of virtual surfaces along a sphere whose center is the three-dimensional design shape of the part (also called a three-dimensional part model) represented by the part's three-dimensional CAD (Computer Aided Design) data, etc. Each virtual surface is made up of, for example, a triangular surface.
[0044] [Process B] A camera (also referred to as a virtual camera) is virtually installed at a predetermined position (also referred to as a virtual camera position) on each virtual surface that constitutes the virtual polyhedron set in the above process A. As a result, multiple virtual cameras are virtually installed so as to surround the 3D part model at the center.
[0045] [Process C] A plurality of images (also referred to as virtual images) are generated by virtually photographing the 3D part model using a plurality of virtual cameras installed at a plurality of virtual camera positions in Process B. The virtual images can be generated, for example, by projecting the 3D part model onto a virtual plane using a process such as rendering.
[0046] [Process D] A matching process using template matching or the like is performed between each of the multiple virtual images generated in Process C and an image (also referred to as a real image) obtained by actually photographing the part with a camera (also referred to as a real camera). This detects the virtual camera position among the multiple virtual camera positions that provides the greatest degree of match (also referred to as degree of agreement) between the real image and the virtual image in terms of the shape, orientation, size, etc. of the captured part. The degree of match (degree of agreement) is also referred to as the degree of similarity (degree of similarity).
[0047] [Process E] Based on the detection results in the above process D, the orientation of the part is recognized based on the position of the actual camera, and the orientation of the part captured in the actual image is recognized.
[0048] In the above method, for example, when the distance between the real camera and the part changes, in the above process A, a plurality of virtual polyhedrons are set that are at mutually different distances from the center of the three-dimensional part model.
[0049] Here, for example, a conceivable method is to increase the accuracy of recognizing the orientation of the part captured in the actual image by making the multiple virtual surfaces that make up the virtual polyhedron in the above process A into a large number of very fine virtual surfaces and increasing the number of virtual camera positions that are virtually installed in the above process B. However, this method increases the amount of calculation, which results in a longer time required for the calculation.
[0050] Therefore, for example, a conceivable method is to repeatedly execute the above processes A to D in order a predetermined number of times and then execute the above process E. In this method, in the first execution of the above process A, a virtual polyhedron is constructed from a plurality of relatively large virtual faces, and in the second and subsequent executions of the above process A, a virtual polyhedron is constructed from a large number of virtual faces that are relatively finer than those in the previous execution of the above process A, and in the second and subsequent executions of the above process B, virtual cameras are virtually installed at predetermined virtual camera positions on each of a portion of a plurality of virtual faces of the polyhedron set in the immediately preceding execution of the above process A that are close to the virtual camera position detected in the most recent execution of the above process D. This method can improve the accuracy in recognizing the orientation of a part captured in an actual image, while shortening the time required for calculation by reducing the amount of calculation.
[0051] However, this technique requires that increasingly fine virtual polyhedrons be set in multiple iterations of the process A, and the virtual polyhedrons set in the second and subsequent iterations of the process A are unrelated to the virtual polyhedron set in the previous iteration of the process A. Therefore, in order to maintain the accuracy with which the orientation of a part captured in an actual image is recognized, some of the multiple virtual surfaces for which virtual camera positions are virtually set in the second and subsequent iterations of the process B cover a relatively wide area located near the virtual camera position detected in the most recent iteration of the process D. As a result, at least one of the number and area of some of the multiple virtual surfaces for which virtual camera positions are set in the second and subsequent iterations of the process B increases to a certain extent, which may increase the number of virtual camera positions set in the second and subsequent iterations of the process B, making it difficult to sufficiently reduce the amount of calculation.
[0052] Therefore, there is room for improvement in substrate processing apparatuses in terms of efficiently recognizing the orientation of components.
[0053] Hereinafter, embodiments will be described with reference to the accompanying drawings. Note that the drawings are schematic, and for the sake of convenience, components may be omitted or simplified as appropriate. Furthermore, the relative sizes and positions of components shown in the drawings are not necessarily accurately depicted and may be changed as appropriate.
[0054] In the following description, the same components are denoted by the same reference numerals and have the same names and functions, and therefore detailed descriptions thereof may be omitted to avoid duplication.
[0055] Furthermore, in the following description, even if ordinal numbers such as "first" or "second" are used, these terms are used for convenience to facilitate understanding of the contents of the embodiments, and are not intended to limit the order that may result from these ordinal numbers.
[0056] When expressions indicating relative or absolute positional relationships (e.g., "in one direction," "along one direction," "parallel," "orthogonal," "center," "concentric," "coaxial," etc.) are used, unless otherwise specified, the expressions not only strictly represent the positional relationship but also represent a state of relative displacement in terms of angle or distance within a range that provides tolerance or equivalent functionality. When expressions indicating an equal state (e.g., "identical," "equal," "homogeneous," etc.) are used, the expressions not only represent a state of strict quantitative equality but also represent a state of difference that provides tolerance or equivalent functionality unless otherwise specified. When expressions indicating a shape (e.g., "rectangular shape" or "cylindrical shape," etc.) are used, the expressions not only represent a geometrically strict shape but also represent a shape that has, for example, irregularities or chamfers within a range that provides equivalent effects, unless otherwise specified. When the expressions "comprise," "include," "have," "includes," "includes," or "have" are used to describe one component, the expressions are not exclusive expressions that exclude the presence of other components. When the phrase "at least one of A, B, and C" is used, the phrase includes A only, B only, C only, any two of A, B, and C, and all of A, B, and C.
[0057] 1. Overall Configuration of Substrate Processing Apparatus Fig. 1 is a side view schematically showing an example of a general configuration of a substrate processing apparatus 1 according to a first embodiment. Fig. 2 is a plan view schematically showing an example of a general configuration of the substrate processing apparatus 1 according to the first embodiment.
[0058] The substrate processing apparatus 1 is an apparatus that processes substrates (e.g., semiconductor wafers) W. In this first embodiment, the substrate processing apparatus 1 is a single-wafer type apparatus that processes substrates W one by one. A thin, flat plate having an approximately disk shape is used as the substrate W. In other words, the substrate W has a circular shape when viewed from above. Unless otherwise specified, the plan view refers to a plan view in which each part is viewed from above downward. The substrate processing apparatus 1 rotates the substrate W while supplying a processing liquid to perform a predetermined process on the substrate W. For example, a substrate cleaning apparatus that cleans the substrate W using a processing liquid is used as the substrate processing apparatus 1.
[0059] The substrate processing apparatus 1 includes a housing CA. The housing CA isolates the interior of the housing CA from the atmosphere surrounding the housing CA.
[0060] The substrate processing apparatus 1 includes a spin chuck 3. The spin chuck 3 has a circular structure with a diameter larger than that of the substrate W in a plan view. The upper end of a rotation shaft 5 is connected to the lower surface of the spin chuck 3. The lower end of the rotation shaft 5 is connected to a motor 7. The spin chuck 3 rotates around a rotation center PL1 by being driven by the motor 7. The rotation center PL1 extends in the vertical direction.
[0061] The spin chuck 3 includes a plurality of chucks 9. In other words, the substrate processing apparatus 1 includes a plurality of chucks 9. More specifically, the spin chuck 3 includes a plurality of chucks 9 on the peripheral portion of the upper surface of the disk-shaped main body of the spin chuck 3. In the first embodiment, the spin chuck 3 includes four chucks 9. The number of chucks 9 included in the spin chuck 3 is not limited to four, as long as the spin chuck 3 can stably rotate the substrate W about the rotation center PL1 while supporting the substrate W in a horizontal position.
[0062] The chuck 9 includes, for example, a lower support portion 11, a peripheral support portion 13, and a rotating magnet 15. The lower support portion 11 is a portion that supports the substrate W by contacting the lower surface of the substrate W from below. For example, if the contact area of the lower support portion 11 with the lower surface of the substrate W is reduced, the degree of mutual contamination between the substrate W and the chuck 9 can be reduced. The lower support portion 11 is attached to the upper surface of the main body of the spin chuck 3 so as to be rotatable about a rotation center PL2. The rotation center PL2 extends in the vertical direction. The peripheral support portion 13 is erected on the upper surface of the lower support portion 11. For example, if the height of the peripheral support portion 13 from the upper surface of the lower support portion 11 is greater than the thickness of the substrate W, the peripheral support portion 13 can stably hold the peripheral edge of the substrate W. In a plan view, the peripheral edge support portion 13 is provided at a position away from the rotation center PL2 toward the outer edge of the lower surface support portion 11. In other words, the peripheral edge support portion 13 is eccentric with respect to the rotation center PL2. The rotation magnet 15 is attached to the lower surface side of the spin chuck 3 at a position corresponding to the rotation center PL2. The rotation magnet 15 is connected to the lower surface support portion 11. The rotation magnet 15 is provided to be rotatable around the rotation center PL2.
[0063] The substrate processing apparatus 1 includes a moving mechanism (also referred to as a chuck moving mechanism) 17 that moves the chuck 9 between an open position, which is a first position (also referred to as a 1A position), and a closed position, which is a second position (also referred to as a 2A position). In the first embodiment, the chuck moving mechanism 17 is disposed below the rotation magnet 15. The chuck moving mechanism 17 is disposed closer to the rotation shaft 5 than the chuck 9. The chuck moving mechanism 17 includes, for example, an air cylinder 19 and a drive magnet 21. The drive magnet 21 has an annular shape in a plan view. The air cylinder 19 includes a piston rod (also referred to as a rod or an actuation shaft) positioned along the vertical direction. The drive magnet 21 is attached to the upper end of the rod of the air cylinder 19. The chuck moving mechanism 17 is operated in response to a chuck operation command from the control unit 45. The chuck moving mechanism 17 can move the drive magnet 21 closer to the chuck 9 by raising the drive magnet 21 with the air cylinder 19, and can move the drive magnet 21 in a direction away from the chuck 9 by lowering the drive magnet 21 with the air cylinder 19. The chuck moving mechanism 17 can move the drive magnet 21 between a raised position (also referred to as an upper position) and a lowered position (also referred to as a lower position).
[0064] The chuck 9 is equipped with a biasing mechanism (not shown). When the drive magnet 21 descends and moves from the upper position to the lower position, the chuck 9 moves from the open position to the closed position. When the drive magnet 21 ascends and moves from the lower position to the upper position, the chuck 9 moves from the closed position to the open position. When the chuck 9 moves from the open position to the closed position, the peripheral support portion 13 rotates about the rotation center PL2, moves toward the rotation center PL1, and abuts against the peripheral edge of the substrate W supported by the lower support portion 11. This allows the multiple chucks 9 to clamp the substrate W at the closed position. When the chuck 9 moves from the closed position to the open position, the peripheral support portion 13 rotates about the rotation center PL2 and moves away from the rotation center PL1. This allows the multiple chucks 9 to no longer clamp the substrate W at the open position. In this state, the substrate W can be loaded onto the spin chuck 3 from outside the casing CA, and can be unloaded from the spin chuck 3 to outside the casing CA.
[0065] The substrate processing apparatus 1 includes a first sensor Z1 disposed near the rotating magnet 15 of the chuck 9. When the chuck 9 moves to the closed position or the open position, the first sensor Z1 changes a signal (also referred to as an output signal) output from the first sensor Z1. For example, when the chuck 9 moves to the closed position or the open position, the first sensor Z1 turns on the output signal.
[0066] The substrate processing apparatus 1 includes a guard 23. The guard 23 is disposed around the spin chuck 3. In other words, the guard 23 surrounds the sides of the spin chuck 3. The guard 23 is a part for preventing the processing liquid from splashing from the substrate W supported and rotated by the spin chuck 3 to the surroundings. The guard 23 has a cylindrical shape. The guard 23 has an opening 23a formed in its upper part. The inner diameter of the opening 23a is larger than the outer diameter of the spin chuck 3.
[0067] The substrate processing apparatus 1 includes a movement mechanism (also referred to as a card movement mechanism) 25 that moves the guard 23 between a lowered position serving as a first position (also referred to as a first B position) and an elevated position serving as a second position (also referred to as a second B position). More specifically, the guard movement mechanism 25 can raise and lower the guard 23 between the lowered position and the elevated position. The guard movement mechanism 25 includes, for example, an air cylinder 27 and a locking piece 29. The guard movement mechanism 25 is disposed, for example, on the outer periphery of the guard 23. The guard movement mechanism 25 may also be disposed on the inner periphery of the guard 23 as long as it is capable of raising and lowering the guard 23. The air cylinder 27 includes a piston rod (also referred to as a rod or an operating shaft) positioned along the vertical direction. A locking piece 29 is attached to the upper end of the rod of the air cylinder 27. The locking piece 29 is fixed to the outer periphery of the guard 23. The guard movement mechanism 25 is not limited to the above configuration as long as it is capable of raising and lowering the guard 23.
[0068] The guard moving mechanism 25 moves the guard 23 between a lowered position and an elevated position in response to a guard operation command from the control unit 45. The lowered position of the guard 23 is the position of the guard 23 when the guard 23 is lowered by the guard moving mechanism 25. In other words, the lowered position is a position where the upper end of the guard 23 is low. The elevated position of the guard 23 is the position of the guard 23 when the guard 23 is elevated by the guard moving mechanism 25. In other words, the lowered position is a position lower than the elevated position, and the elevated position is a position higher than the lowered position. When the guard 23 is in the lowered position, the position of the upper edge of the guard 23 is lower than the position of the substrate W supported by the spin chuck 3. When the guard 23 is in the elevated position, the position of the upper edge of the guard 23 is higher than the position of the substrate W supported by the spin chuck 3. Therefore, when the guard 23 is in the raised position, the inner peripheral surface of the guard 23 can receive the processing liquid splashed from the substrate W supported and rotated by the spin chuck 3 to the surrounding area. The substrate processing apparatus 1 includes, for example, a second sensor Z2 disposed on the inner peripheral side of the guard 23. When the guard 23 moves to the lowered position, the second sensor Z2 changes a signal (output signal) output from the second sensor Z2. For example, when the guard 23 moves to the lowered position, the second sensor Z2 turns on the output signal.
[0069] The substrate processing apparatus 1 includes a drain port (not shown) located on the inner periphery of the guard 23. The drain port is a portion for recovering the processing liquid that has scattered from the substrate W supported and rotated by the spin chuck 3 and is received on the inner periphery of the guard 23. The number of guards 23 is not limited to one, and may be multiple. The number of drain ports is not limited to one, and may be multiple. When there are multiple guards 23, a drain port may be provided for each guard 23. In this case, multiple guards 23 and multiple drain ports may be configured so that each guard 23 is raised and lowered by a guard moving mechanism 25 to switch between a combination of a guard 23 that receives processing liquid scattered from the substrate W and a drain port that recovers processing liquid received on the inner periphery of the guard 23. For example, depending on the type of processing liquid, each guard 23 can be raised and lowered by the guard moving mechanism 25, thereby switching the combination of a guard 23 that receives processing liquid splashed from the substrate W and a waste liquid port that recovers the processing liquid received on the inner surface of this guard 23.
[0070] The substrate processing apparatus 1 includes a processing liquid supply mechanism 31. The processing liquid supply mechanism 31 may be disposed on the outer periphery of the guard 23. The processing liquid supply mechanism 31 includes, for example, a nozzle 33, a base 37, and a movement mechanism (also referred to as a nozzle movement mechanism) 35. In other words, the substrate processing apparatus 1 includes the nozzles 33. In the first embodiment, the processing liquid supply mechanism 31 includes, for example, two nozzles 33. In the following description, when it is necessary to distinguish between the two nozzles 33, the nozzle 33 on the left side in FIG. 2 will be referred to as nozzle 33A and the nozzle 33 on the right side will be referred to as nozzle 33B as appropriate. The number of nozzles 33 in the processing liquid supply mechanism 31 may be one, or three or more. In the first embodiment, the two nozzles 33 have the same configuration.
[0071] Nozzle 33 includes, for example, an extension portion 33a, a hanging portion 33b, and a tip portion 33c. One end of extension portion 33a of nozzle 33 is attached to base portion 37. Extension portion 33a extends horizontally from base portion 37. The other end of extension portion 33a is connected to hanging portion 33b. Hanging portion 33b extends vertically downward from extension portion 33a. Tip portion 33c is located at the lower end of hanging portion 33b. Tip portion 33c ejects the processing liquid from the lower surface side. Examples of processing liquid include photoresist liquid, SOG (Spin-on-Glass) liquid, developer, rinse liquid, pure water, and cleaning liquid.
[0072] The nozzle moving mechanism 35 can move the nozzle 33 between a standby position serving as a first position (also referred to as a first C position) and a discharge position serving as a second position (also referred to as a second C position). The nozzle moving mechanism 35 includes, for example, a motor 39, a rotation shaft 41, and a position detection unit 43. The motor 39 is disposed in a vertical position. The rotation shaft 41 is rotated around a rotation center PL3 by the motor 39. The rotation shaft 41 is connected to a base unit 37. The base unit 37 is rotated by the drive of the motor 39. The nozzle 33 is swung together with the base unit 37 around the rotation center PL3 by the nozzle moving mechanism 35. The position detection unit 43 detects the position (also referred to as the rotation position) of the rotation shaft 41 in the rotation direction around the rotation center PL3 of the rotation shaft 41. The position detection unit 43 detects the angle of the rotation shaft 41 around the rotation center PL3 in a plan view. The position detector 43 outputs a pulse signal according to the rotational position of the rotary shaft 41, for example.
[0073] The substrate processing apparatus 1 includes a standby cup 44 located laterally away from the guard 23 in a plan view. The standby cup 44 is positioned such that the tip 33c of the nozzle 33 can be positioned above the standby cup 44 in a plan view. From another perspective, the standby cup 44 is located below the standby position of the nozzle 33. The standby cup 44 is a component for preventing the tip 33c of the nozzle 33 from drying. The standby cup 44 is used for idle discharge of the processing liquid from the nozzle 33. The nozzle moving mechanism 35 drives the motor 39 to oscillate the nozzle 33. In response to a nozzle operation command from the control unit 45, the nozzle moving mechanism 35 moves the tip 33c of the nozzle 33 between the standby position and a discharge position located above the rotation center PL1 of the spin chuck 3. The discharge position of the nozzle 33 is the position at which the nozzle 33 is positioned when the processing liquid is discharged from the tip 33c of the nozzle 33 onto the substrate W.
[0074] The substrate processing apparatus 1 includes a third sensor Z3 disposed on the outer periphery of the rotation shaft 41. The third sensor Z3 changes a signal (output signal) output from the third sensor Z3 when the nozzle 33 is positioned at the standby position. For example, the third sensor Z3 turns on the output signal when the nozzle 33 moves to the standby position. The third sensor Z3 may be omitted to simplify the configuration. In this case, a protrusion (also referred to as a rotation-side protrusion) may be provided on a portion of the rotation shaft 41, and a protrusion (also referred to as a fixed-side protrusion) may be provided on the outer periphery of the rotation shaft 41 and fixed to the housing CA. For example, the position detection unit 43 may detect that the nozzle 33 is positioned at the standby position by detecting that the rotation-side protrusion of the rotation shaft 41 abuts against the fixed-side protrusion due to rotation of the rotation shaft 41 about the rotation center PL3, thereby making it impossible for the rotation shaft 41 to rotate about the rotation center PL3. Here, the position of the nozzle 33 at the time when the pulse signal from the position detection unit 43 becomes unchanged may be treated as the standby position.
[0075] The substrate processing apparatus 1 includes a camera CM as an imaging unit. The camera CM captures an image (also referred to as an actual image) of a search target part, which is one of the one or more target parts. Here, the one or more target parts are components included in the substrate processing apparatus 1. The target part is a part that can be the target of a specific process. The specific process may include, for example, a process for detecting an abnormality. In the first embodiment, the one or more target parts include two or more target parts. The two or more target parts as the one or more target parts include a plurality (specifically, four) of chucks 9, guards 23, and nozzles 33. In other words, the substrate processing apparatus 1 includes, for example, a plurality of chucks 9, guards 23, and nozzles 33 as the one or more target parts. The search target part is a part of the one or more target parts that is the target of the search process described below. Any one of the one or more target parts may be any one of the one or more target parts. The camera CM is attached to, for example, a portion of the housing CA. The camera CM may be positioned anywhere as long as the search target parts are within its field of view. For example, the camera CM has a viewing angle (angle of view) that allows all of one or more target parts to be within its field of view.
[0076] The substrate processing apparatus 1 includes a control unit 45, an instruction unit 47, and an alarm unit 49. Details of the control unit 45 will be described later. The instruction unit 47 is operated by an operator of the substrate processing apparatus 1. The instruction unit 47 is, for example, a keyboard or a touch panel. The instruction unit 47 outputs a signal to the control unit 45 in response to, for example, an operation by the operator. The instruction unit 47 instructs the control unit 45 on one or more target parts, timing to check, recipe, start of processing, etc. When the control unit 45 detects an abnormality, the alarm unit 49 notifies the operator of the abnormality. Examples of the alarm unit 49 include a display, a lamp, and a speaker. The alarm unit 49 operates in response to, for example, a signal from the control unit 45.
[0077] 2. Configuration of Control System in Substrate Processing Apparatus FIG. 3 is a block diagram showing an example of the functional configuration of the substrate processing apparatus 1 according to the first embodiment.
[0078] The control unit 45 includes, for example, a calculation unit 45a and a storage unit 45b. The calculation unit 45a includes, for example, an electronic circuit that functions as a processor such as a central processing unit (CPU) and an electronic circuit that functions as a memory such as a random access memory (RAM) that temporarily stores data for the processor to execute processing. The storage unit 45b includes, for example, a portion that functions as a nonvolatile storage medium such as a hard disk or flash memory. The storage unit 45b may include, for example, a portion that functions as one nonvolatile storage medium, or may include two or more portions that function as nonvolatile storage media.
[0079] The calculation unit 45a includes, for example, a plurality of functional components, such as an operation control unit 51, an image processing unit 59, a search processing unit 61, and an abnormality detection unit 63. The storage unit 45b stores, for example, recipe information 53, parameter information 55, design information 57, setting range information 58, and a program Pg1. In the calculation unit 45a, for example, the operation control unit 51, the image processing unit 59, the search processing unit 61, and the abnormality detection unit 63 may be functional processing units (also referred to as functional processing units) that are realized by a CPU reading and executing the program Pg1, etc., stored in the storage unit 45b.
[0080] The operation control unit 51 controls the operations of the motors 7 and 39, the air cylinders 19 and 27, and the camera CM. The operation control unit 51 receives signals from the first sensor Z1, the second sensor Z2, the third sensor Z3, and the position detection unit 43. The operation control unit 51 controls the operations of the motors 7 and 39, the air cylinders 19 and 27, the camera CM, and other components, for example, according to a recipe in the recipe information 53 stored in the memory unit 45b. For example, after an operator instructs the components to start operating according to the recipe, the operation control unit 51 outputs various operation commands to the components based on the recipe, causing the components, such as the motor 7, to operate at predetermined timing.
[0081] The recipe information 53 is information indicating various recipes stored in advance in the storage unit 45 b. The recipes define various procedures for processing the substrate W. The operator can operate the instructing unit 47 to instruct the execution of a desired recipe.
[0082] The parameter information 55 is information such as a confirmation timing for each of one or more target parts, which is stored in advance in the storage unit 45b. The confirmation timing may be, for example, a timing for checking the operating status of the target part. The one or more target parts and the confirmation timing can be arbitrarily set by the operator operating the instruction unit 47. The operator can use the instruction unit 47 to instruct which parts are to be the target parts, what timing is the confirmation timing, etc.
[0083] The timings requiring confirmation may include, for example, the timing when the chuck moving mechanism 17 positions the chuck 9 in the open position, which is the first position (more specifically, position 1A), the timing when the chuck moving mechanism 17 positions the chuck 9 in the closed position, which is the second position (more specifically, position 2A), the timing when the guard moving mechanism 25 positions the guard 23 in the lowered position, which is the first position (more specifically, position 1B), the timing when the guard moving mechanism 25 positions the guard 23 in the raised position, which is the second position (more specifically, position 2B), the timing when the nozzle moving mechanism 35 positions the nozzle 33 in the standby position, which is the first position (more specifically, position 1C), and the timing when the nozzle moving mechanism 35 positions the nozzle 33 in the discharge position, which is the second position (more specifically, position 2C).
[0084] Here, the confirmation-requiring timings may include, for example, the timing when the chuck moving mechanism 17 moves the chuck 9 in response to a chuck operation command and completes the movement of the chuck 9, the timing when the nozzle moving mechanism 35 moves the nozzle 33 in response to a nozzle operation command and completes the movement of the nozzle 33, and the timing when the guard moving mechanism 25 raises and lowers the guard 23 in response to a guard operation command and completes the movement of the guard 23. The confirmation-requiring timings may include, for example, the timing when the chuck 9 is set to be located at the open position by a chuck operation command, the timing when the chuck 9 is set to be located at the closed position by a chuck operation command, the timing when the guard 23 is set to be located at the lowered position by a guard operation command, the timing when the guard 23 is set to be located at the raised position by a guard operation command, the timing when the nozzle 33 is set to be located at the standby position by a nozzle operation command, and the timing when the nozzle 33 is set to be located at the discharge position by a nozzle operation command.
[0085] In the first embodiment, among the one or more target parts, a target part that is in the confirmation timing becomes a search target part that is the target of the search process described later.
[0086] When the chuck 9 as a target part is in the confirmation timing, the operation control unit 51 notifies the search processing unit 61 of information identifying the chuck 9 as a target part (search target part) in the confirmation timing and information indicating the position (e.g., open position or closed position) that the chuck 9 as a target part (search target part) in the confirmation timing should be in at the confirmation timing, for example, based on a signal from the first sensor Z1 and control of the operation of the chuck moving mechanism 17 (e.g., air cylinder 19). For example, when four chucks 9 are present, the information identifying the chucks 9 may be, for example, a first chuck as the name identifying the first chuck 9, a second chuck as the name identifying the second chuck 9, a third chuck as the name identifying the third chuck 9, and a fourth chuck as the name identifying the fourth chuck 9.
[0087] For example, based on a signal from the second sensor Z2 and control of the operation of the guard moving mechanism 25 (e.g., air cylinder 27), if the guard 23 as the target part is at a timing requiring confirmation, the operation control unit 51 notifies the search processing unit 61 of information identifying the guard 23 as the target part (search target part) at the timing requiring confirmation and information indicating the position (e.g., lowered position or raised position) where the guard 23 as the target part (search target part) at the timing requiring confirmation should be at the timing requiring confirmation.
[0088] If the nozzle 33 as the target part is at a timing requiring confirmation, the operation control unit 51 notifies the search processing unit 61 of information identifying the nozzle 33 as the target part (search target part) at the timing requiring confirmation, and information indicating the position (e.g., standby position or discharge position) where the nozzle 33 as the target part (search target part) at the timing requiring confirmation should be at the timing requiring confirmation, for example, based on a signal from the third sensor Z3, a pulse signal from the position detection unit 43, and control of the operation of the nozzle moving mechanism 35 (e.g., motor 39).
[0089] Here, for example, if there is only one target part, the operation control unit 51 does not need to notify the search processing unit 61 of information identifying the search target part as the target part that is in the confirmation timing. The operation control unit 51 may notify the search processing unit 61 that it has output operation commands to each unit according to the recipe.
[0090] The design information 57 includes, for example, three-dimensional design information related to components constituting the substrate processing apparatus 1. The design information 57 includes, for example, 3D-CAD (three-dimensional computer-aided design) data related to the components constituting the substrate processing apparatus 1. The 3D-CAD data is expressed, for example, using three orthogonal coordinate axes. When components are arranged in three-dimensional space, the 3D-CAD data is expressed as information on the positions and angles (collectively referred to as position information) related to the components. The design information 57 includes design information related to one or more target components transferred from a host computer (not shown). In other words, the storage unit 45b stores three-dimensional design information related to each of the one or more target components. The host computer (not shown) may store, for example, 3D-CAD data related to all components of the substrate processing apparatus 1 as three-dimensional design information. Here, if the design information 57 stored in the storage unit 45b is limited to design information for one or more target components rather than design information for all components of the substrate processing apparatus 1, the storage capacity of the storage unit 45b can be reduced.
[0091] The image processing unit 59 processes the actual image capturing the search target part obtained by the camera CM. The image processing unit 59 performs image processing on the actual image to extract information about the two-dimensional shape of the object captured in the actual image (also referred to as actual shape information). The image processing unit 59 extracts the actual shape information, for example, by performing a process to extract the contours of all parts captured in all areas of the actual image or a predetermined partial area. The contour here may include not only the contour of the outer shape of the part but also the edge portion located inside the outer shape of the part. In this case, the actual shape information can be said to be information indicating the two-dimensional shape of the object in the actual image. The actual shape information extracted by the image processing unit 59 is provided to the search processing unit 61.
[0092] The search processing unit 61 performs a process (also referred to as a search process) to search for a virtual camera position (also referred to as a maximum-match virtual camera position) that has the greatest degree of match (also referred to as a similarity) between the reference shape information and the actual shape information among multiple virtual camera positions (also referred to as virtual camera positions) based on multiple pieces of reference shape information and actual shape information. Here, the multiple pieces of reference shape information are each generated based on three-dimensional design information about the search target part stored in the memory unit 45b or the like. More specifically, the multiple pieces of reference shape information are information about the two-dimensional shape of the 3D model of the search target part in each of multiple virtual images (also referred to as virtual images) that can be acquired by photographing the three-dimensional model (also referred to as a 3D model) of the search target part from multiple virtual camera positions. For example, one piece of reference shape information is information generated based on three-dimensional design information about one search target part, and is information about the two-dimensional shape of the 3D model of the search target part in a virtual image that can be acquired by photographing the 3D model of the search target part from one virtual camera position. The 3D model of the search target part is a three-dimensional model of the search target part that is virtually generated based on three-dimensional design information related to the search target part. The virtual image can be generated, for example, by projecting the 3D model onto a virtual plane using a process such as rendering. The degree of match between the reference shape information and the actual shape information refers, for example, to the degree to which the reference shape information is similar to the actual shape information. The greater the degree of match, the closer the reference shape information is to the actual shape information, and the smaller the degree of match, the more different the reference shape information is from the actual shape information. The degree of match between the reference shape information and the actual shape information is expressed, for example, by a numerical value indicating the degree of match between the reference shape information and the actual shape information. The degree of match and the numerical value indicating the degree of match will be described further below. The information about the two-dimensional shape of the 3D model may be, for example, a graphic.
[0093] The search processing unit 61 performs a search process on the search target part as a target part that has reached the confirmation timing. The search process can search for the search target part captured in the actual image captured by the camera CM that most closely matches the two-dimensional shape of the 3D model of the search target part in the virtual image that can be acquired by capturing the 3D model of the search target part from which of the multiple virtual camera positions. In other words, the search process can search for the two-dimensional shape of the search target part captured in the actual image captured by the camera CM that most closely matches the two-dimensional shape of the 3D model of the search target part captured in the virtual image that can be acquired by capturing the 3D model of the search target part from which of the multiple virtual camera positions. Therefore, the results of the search process can recognize the orientation of the search target part relative to the position of the camera CM. In other words, the results of the search process can recognize the orientation of the search target part captured in the actual image. In other words, the search processing unit 61 can recognize the orientation of the search target part as a target part that has reached the confirmation timing based on the results of the search process.
[0094] The set range information 58 is information that defines one or more initial setting ranges for a preset virtual camera position for at least one target part among the one or more target parts. The one or more initial setting ranges for the virtual camera position define a range within which the virtual camera position is set in the initial stage of the search processing by the search processing unit 61. This set range information 58 is provided to limit the range within which the virtual camera position is set in the initial stage of the search processing by the search processing unit 61, taking into account that the movement range of the target part in the substrate processing apparatus 1 is limited.
[0095] This set range information 58 can reduce the number of virtual camera positions set in the initial stage of the search process by the search processing unit 61. Here, when the range of the position and orientation of the search target component is limited, the range in which multiple virtual camera positions are set can be limited, thereby reducing the amount of calculation required for the search process to search for the maximum matching virtual camera position. As a result, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the search target component can be recognized efficiently in the substrate processing apparatus 1.
[0096] FIG. 4 is a diagram illustrating a specific example of the setting range information 58. As illustrated in FIG. 4, the setting range information 58 is information that defines one or more initial setting ranges for the virtual camera position for at least one of two or more target parts, for example, among two or more target parts that are one or more target parts. In other words, the setting range information 58 includes information that defines one or more initial setting ranges for the virtual camera position for each target part. Here, the one or more target parts include two or more target parts, and at least one target part includes two or more target parts. In the example of the setting range information 58 in FIG. 4, the two or more target parts are illustrated as "first chuck" as a name identifying the first chuck 9, "second chuck" as a name identifying the second chuck 9, and "nozzle" as a name identifying the nozzle 33. In FIG. 4, one or more initial setting ranges for the virtual camera position for other target parts are omitted from the illustration.
[0097] Furthermore, in the first embodiment, in the setting range information 58, one or more default setting ranges for the virtual camera position for each target part include a default setting range for the first position (also referred to as a first default setting range) and a default setting range for the second position (also referred to as a second default setting range). In other words, the setting range information 58 defines a default setting range for each position for each target part. For example, the first default setting range for a target part may be a default setting range corresponding to the position where the target part should be when the target part is located at the first position. For example, the second default setting range for a target part may be a default setting range corresponding to the position where the target part should be when the target part is located at the second position.
[0098] More specifically, for example, in the setting range information 58, one or more initial setting ranges related to the virtual camera position for each chuck 9 include a first initial setting range (also referred to as a first A initial setting range) for the "open position" as the first position (first A position) and a second initial setting range (also referred to as a second A initial setting range) for the "closed position" as the second position (second A position). For example, in the setting range information 58, one or more initial setting ranges related to the virtual camera position for the guard 23 include a first initial setting range (also referred to as a first B initial setting range) for the "downward position" as the first position (first B position) and a second initial setting range (also referred to as a second B initial setting range) for the "upward position" as the second position (second B position). For example, in the setting range information 58, one or more initial setting ranges relating to the virtual camera position relative to the nozzle 33 include a first initial setting range (also referred to as the first C initial setting range) for the "standby position" as the first position (first C position), and a second initial setting range (also referred to as the second C initial setting range) for the "ejection position" as the second position (second C position).
[0099] 4, one or more initial setting ranges related to the virtual camera position for each of the first chuck as the first chuck 9 and the second chuck as the second chuck 9 include an initial setting range for the open position (first A initial setting range) and an initial setting range for the closed position (second A initial setting range). Also, in the setting range information 58 illustrated in FIG. 4, one or more initial setting ranges related to the virtual camera position for the nozzle 33 include an initial setting range for the standby position (first C initial setting range) and an initial setting range for the discharge position (second C initial setting range).
[0100] Furthermore, in the first embodiment, each of the one or more default setting ranges in the setting range information 58 includes a numerical range (also referred to as a first numerical range) that is a distance range, a numerical range (also referred to as a second numerical range) that is a latitude range, and a numerical range (also referred to as a third numerical range) that is a longitude range. Here, for example, the distance is the distance from a reference point of the 3D model of the search target part that is a target part that is in the confirmation timing. For example, the center of the 3D model is used as this reference point. For example, the center of gravity of the 3D model is used as the center of the 3D model. For example, the latitude is the latitude of a virtual sphere (also referred to as a virtual sphere) that surrounds the 3D model and is centered on the reference point of the 3D model. For example, the longitude is the longitude of a virtual sphere that surrounds the 3D model and is centered on the reference point of the 3D model.
[0101] In this case, if the ranges in which the angular relationship and distance between the camera CM and the search target component change are limited, the range in which multiple virtual camera positions are set can be limited. This reduces the amount of calculation required for the search process to find the virtual camera position with the highest degree of match. As a result, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the component can be recognized efficiently in the substrate processing apparatus 1.
[0102] Each initial setting range defined in the setting range information 58 may be set in advance based on, for example, three-dimensional design information for components constituting the substrate processing apparatus 1 included in the design information 57. Each initial setting range may be arbitrarily set, for example, by the operator operating the instruction unit 47. The setting range information 58 may be stored in the memory unit 45b, for example, by the operator operating the instruction unit 47. When each initial setting range is set in advance, each target component is not in a confirmation timing period, so the reference point of the 3D model may be the reference point of a three-dimensional model (3D model) of the target component based on the three-dimensional design information of the target component. Each initial setting range may be set based on, for example, the relative position and orientation between the 3D model of the target component in the design information 57 and the camera CM. Each initial setting range has a certain width depending on, for example, errors in the mounting position and orientation of the target component and the camera CM in the substrate processing apparatus 1. In other words, each initial setting range encompasses the range in which the camera CM can be positioned when the reference point of the 3D model of the target part is used as the reference point in a virtual space based on the three-dimensional design information relating to the parts that make up the substrate processing apparatus 1 included in the design information 57.
[0103] The anomaly detection unit 63 detects an anomaly in the search target part as a target part that is in a timing to be checked, in accordance with information from the search processing unit 61. For example, the anomaly detection unit 63 may detect an anomaly in the search target part if the degree of match between the reference shape information and the actual shape information for the maximum-match virtual camera position detected by the search processing unit 61 is smaller than a predetermined degree of match. In the first embodiment, as described above, the amount of calculation required for the search process to search for the maximum-match virtual camera position can be reduced, making it easier to detect an anomaly in the search target part. This predetermined degree of match may be stored in the memory unit 45b, for example, by the operator operating the instruction unit 47. The predetermined degree of match may be defined by a numerical value indicating the degree of match.
[0104] The abnormality detection unit 63 causes the notification unit 49 to perform a notification operation in response to the detection of an abnormality in the search target part. Specifically, the abnormality detection unit 63 causes the notification unit 49 to perform a notification operation in response to the detection of an abnormality in the search target part. The notification operation may be, for example, an operation to notify an operator or the like of the occurrence of the abnormality. The notification unit 49 may also notify, along with the occurrence of the abnormality, information identifying the search target part in which the abnormality was detected. Here, examples of the information identifying the search target part in which the abnormality was detected include a character string or a sound indicating, for example, a name or symbol identifying each of the multiple chucks 9, a name or symbol identifying each of one or more guards 23, or a name or symbol identifying each of one or more nozzles 33.
[0105] 5 is a block diagram showing a specific example of a functional configuration related to a search process in the control unit 45. Of the multiple functional configurations in the control unit 45, Fig. 5 shows the functional configurations of the storage unit 45b, the image processing unit 59, and the search processing unit 61.
[0106] <3-1. Image Processing Unit> The image processing unit 59 has, as a plurality of functional processing units, for example, a processing target area extraction unit 591 and a contour extraction unit 592. The processing target area extraction unit 591 and the contour extraction unit 592 are realized, for example, in the calculation unit 45 a by the CPU reading and executing a program Pg1 stored in the storage unit 45 b.
[0107] The processing target area extraction unit 591 acquires an actual image capturing the search target part captured by the camera CM, and extracts from this actual image a portion related to the area to be processed (also referred to as the processing target area) as an image (also referred to as the processing target actual image). This can reduce the amount of calculation required for processing by the contour extraction unit 592 and for search processing by the search processing unit 61, for example. As a result, the orientation of the search target part captured in the actual image can be recognized efficiently.
[0108] 6 to 8 are diagrams illustrating the process of extracting a portion related to a processing target region from an actual image. Fig. 6 shows a specific example of an actual image Ir1 capturing a search target part captured by a camera CM. Fig. 7 shows a specific example of a processing target region R1 in the actual image Ir1. Fig. 8 shows a specific example of a processing target actual image Ir2 extracted from the actual image Ir1.
[0109] For example, when the processing target area extraction unit 591 acquires the actual image Ir1 shown in Figure 6, it extracts the part of the actual image Ir1 that relates to the processing target area R1 surrounded by the thick dotted line as shown in Figure 7, thereby obtaining the processing target actual image Ir2 as shown in Figure 8.
[0110] The processing target region R1 may be set in advance for each target part that is a search target part so as to encompass an area on the actual image where the search target part may be present at the confirmation timing. Furthermore, the processing target region R1 may be set in advance for each position of the target part that is a search target part so as to encompass an area on the actual image where the search target part may be present at the confirmation timing. For example, the processing target region R1 may be set in advance by referencing an actual image captured by the camera CM, or may be set based on three-dimensional design information for the parts that make up the substrate processing apparatus 1 and the capturing direction and angle of view of the camera CM.
[0111] The contour extraction unit 592 extracts information about the two-dimensional shape of the object captured in the actual image (actual shape information) by, for example, performing a process of extracting contours for all parts captured in the processing target actual image Ir2 obtained by the processing target region extraction unit 591. This allows the image processing unit 59 to acquire the actual shape information about the two-dimensional shape of the object captured in the actual image. The actual shape information acquired by the image processing unit 59 is provided to the search processing unit 61.
[0112] Here, the processing target real image Ir2 obtained by the processing target area extraction unit 591 may be considered as a real image capturing the search target part. As described above, the contour may include not only the contour of the component's outer shape but also the edge portion located inside the component's outer shape. The contour extraction process may be achieved using, for example, an edge detection method such as the Canny algorithm. Here, the detected edges may be further subjected to a line expansion process such as a morphological transformation, thereby extracting contours for all components captured in the processing target real image Ir2. The actual shape information may be, for example, an edge image indicating the contour of an object captured in the actual image. As the edge image, for example, a binary image capable of distinguishing the contour of an object from other portions may be used. Here, the edge image as actual shape information can be said to be information indicating the two-dimensional shape of an object in the actual image. In other words, the actual shape information may be, for example, information indicating the two-dimensional shape of an object in the actual image.
[0113] Fig. 9 is a diagram showing a specific example of an edge image Ir3 as actual shape information acquired by the contour extraction unit 592. The edge image Ir3 illustrated in Fig. 9 is an example of an edge image obtained by performing processing to extract contours of all parts captured in the actual processing target image Ir2 illustrated in Fig. 8. The edge image Ir3 illustrated in Fig. 9 is a binary image in which the contours of the parts extracted by the contour extraction unit 592 are shown in white and the other parts are shown in black.
[0114] <3-2. Search Processing Unit> <3-2-1. Example of Basic Concept of Search Processing> FIGS. 10 to 17 are diagrams for explaining an example of the basic concept of the search processing performed by the search processing unit 61. FIG.
[0115] For example, as shown in FIG. 10 , a 3D model 3dm of a search target part (e.g., a chuck 9) is virtually generated based on three-dimensional design information about the search target part. A plurality of virtual camera positions (virtual camera positions) P1 are appropriately set around the 3D model 3dm, and information (reference shape information) about the two-dimensional shape of the 3D model 3dm in virtual images (virtual images) that can be acquired by photographing the 3D model 3dm from each virtual camera position P1 is generated. That is, reference shape information is generated for each virtual camera position P1. For example, as shown in FIG. 11 , an image (also referred to as a reference image) Iv1 that shows the outline of the two-dimensional shape of the 3D model 3dm in virtual images that can be acquired by photographing the 3D model 3dm from each virtual camera position P1 can be used as this reference shape information. Here, the reference image as reference shape information can be said to be information that shows the two-dimensional shape of the 3D model 3dm in the virtual images. In other words, the reference shape information may be, for example, information indicating the two-dimensional shape of the 3D model 3dm in the virtual image. Fig. 11 shows an example of a reference image Iv1 in which the outline of the 3D model 3dm is drawn with a thick two-dot chain line for convenience. The reference image Iv1 shown in Fig. 11 is a binary image in which the outline of the two-dimensional shape of the 3D model 3dm is shown in black and the other parts are shown in white.
[0116] Then, for example, a numerical value indicating the degree of match is calculated between each of the multiple reference images Iv1 serving as multiple pieces of reference shape information obtained for the multiple virtual camera positions P1 and an edge image Ir3 serving as actual shape information for the two-dimensional shape of the object captured in an actual image capturing the search target part, as shown in FIG. 12 . The edge image Ir3 illustrated in FIG. 12 is a binary image in which the outline of the object is shown in black and the remaining parts are shown in white. Here, for example, the reference image Iv1 serving as reference shape information is rotated and translated relative to the edge image Ir3 serving as actual shape information. At this time, a numerical value indicating the degree of match when the degree of match between the edge image Ir3 serving as actual shape information and the reference image Iv1 serving as reference shape information is maximized can be calculated as a numerical value indicating the degree of match between the edge image Ir3 serving as actual shape information and the reference image Iv1 serving as reference shape information. In other words, for each virtual camera position P1, a numerical value indicating the degree of match between the edge image Ir3 as actual shape information and the reference image Iv1 as reference shape information when the degree of match is greatest can be calculated as a numerical value indicating the degree of match between the edge image Ir3 as actual shape information and the reference image Iv1 as reference shape information. In other words, for each virtual camera position P1, a numerical value indicating the degree of match between the edge image Ir3 as actual shape information and the reference image Iv1 as reference shape information when the degree of match is greatest is taken as the degree of match between the edge image Ir3 as actual shape information and the reference image Iv1 as reference shape information.
[0117] 13 , for example, a virtual camera position P1 is detected from among the plurality of virtual camera positions P1, which provides the greatest degree of match between the edge image Ir3 as actual shape information and the reference image Iv1 as reference shape information. This makes it possible to search for a virtual camera position from among the plurality of virtual camera positions P1 that provides the captured search target part with the greatest degree of match with the two-dimensional shape of the 3D model 3dm in a virtual image that can be acquired by capturing the 3D model 3dm, in an actual image capturing the search target part obtained by capturing the 3D model 3dm with the camera CM.
[0118] Now, assume that a right-handed xyz coordinate system is set, with the center of the 3D model 3dm set as the origin, which serves as the reference point Po, as shown in FIG. The center of the 3D model 3dm is, for example, the center of gravity of the 3D model 3dm. In this case, multiple virtual camera positions P1 centered on the 3D model 3dm can be defined by an angle α (also referred to as latitude) in the direction of rotation about the x-axis, an angle β (also referred to as longitude) in the direction of rotation about the z-axis, and a distance D from the origin. Furthermore, the attitude of a virtual camera capturing an image of the 3D model 3dm from the virtual camera position P1 can be defined by an angle γ (also referred to as roll angle) in the direction of rotation about a straight line Ln1, which is drawn by a thin dashed line passing through the reference point Po and the virtual camera position P1.
[0119] Here, when the latitude α and longitude β that define the virtual camera position P1 change, the direction in which the 3D model 3dm is photographed from the virtual camera position P1 changes. Therefore, when the latitude α and longitude β that define the virtual camera position P1 change, for example, as shown in FIG. 15 , the two-dimensional shape of the outline of the 3D model 3dm, which is drawn with a thick two-dot chain line in the reference image Iv1 that serves as reference shape information, may change.
[0120] Furthermore, even if the distance D that defines the virtual camera position P1 changes, the direction in which the 3D model 3dm is photographed from the virtual camera position P1 does not change. For this reason, if the distance D that defines the virtual camera position P1 changes, for example, as shown in Figure 16, the two-dimensional shape of the outline of the 3D model 3dm, which is drawn with a thick two-dot chain line in the reference image Iv1 that serves as reference shape information, may change in size without changing in shape.
[0121] Furthermore, here, when the roll angle γ that defines the posture of the virtual camera at the virtual camera position P1 changes, for example, as shown in Figure 17, the two-dimensional shape of the outline of the 3D model 3dm drawn with a thick dashed double-dashed line in the reference image Iv1 as reference shape information can change orientation without changing shape or size.
[0122] In the first embodiment, in order to efficiently carry out the search process, the search processing unit 61 performs a primary search process and then a secondary search process using the results of the primary search process. In other words, the search process includes a primary search process and a secondary search process that are performed in sequence.
[0123] In the primary search process, for example, a limited number of virtual camera positions P1 are set within an initial setting range for the search target part defined in the setting range information 58. Here, for example, the range of distance D from the reference point Po of the 3D model 3dm, in which the virtual camera positions P1 are set, is limited to a first numerical range, which is a range of distances included in the initial setting range for the search target part defined in the setting range information 58. For example, the range of latitude α in which the virtual camera positions P1 are set is limited to a second numerical range, which is a range of latitudes included in the initial setting range for the search target part defined in the setting range information 58. For example, the range of longitude β in which the virtual camera positions P1 are set is limited to a third numerical range, which is a range of longitudes included in the initial setting range for the search target part defined in the setting range information 58.
[0124] In addition, in the primary search process, the latitude α and longitude β are further varied to a certain extent, and a numerical value indicating the degree of match between the reference shape information and the actual shape information is calculated for a limited number of virtual camera positions P1, and the virtual camera position P1 (also called the high-match virtual camera position) at which the degree of match between the reference shape information and the actual shape information is greatest is detected.
[0125] In the secondary search process, a virtual camera position P1 at which the degree of match between the reference shape information and the actual shape information is greater is searched for in more detail based on the high-match virtual camera positions detected in the primary search process. In other words, in the secondary search process, the maximum-match virtual camera position is searched for based on the high-match virtual camera positions. That is, the search processing unit 61 searches for the maximum-match virtual camera position based on the high-match virtual camera positions.
[0126] When calculating a numerical value indicating the degree of match between the reference shape information and the actual shape information in the primary search process and the secondary search process, for example, the roll angle γ at which the degree of match is greatest is also determined, and this roll angle γ is taken into consideration when calculating the numerical value indicating the degree of match. As a result, the latitude α, longitude β, distance D, and roll angle γ for the maximum-match virtual camera position, which is the virtual camera position P1 at which the degree of match between the reference shape information and the actual shape information is greatest, can be obtained as results of the search process. The orientation of the 3D model 3dm relative to the maximum-match virtual camera position can be recognized using these latitude α, longitude β, distance D, and roll angle γ. Therefore, the results of the search process can recognize the orientation of the search target part relative to the position of the camera CM that captured the actual image capturing the search target part. In other words, the results of the search process can recognize the orientation of the search target part captured in the actual image. Here, the orientation of the search target part may be recognized in the form of, for example, latitude α, longitude β, distance D, and roll angle γ.
[0127] <3-2-2. Functional Configuration of Search Processing Unit> The search processing unit 61 has a plurality of functional processing units, for example, a first search processing unit 611 and a second search processing unit 612. The first search processing unit 611 and the second search processing unit 612 are realized, for example, in the calculation unit 45a by the CPU reading and executing the program Pg1 stored in the storage unit 45b. The first search processing unit 611 performs processing related to the primary search processing, and the second search processing unit 612 performs processing related to the secondary search processing.
[0128] <3-2-2-1. First Search Processing Unit> The first search processing unit 611 includes, as multiple function processing units, for example, a density determination unit 6111, a first shape information acquisition unit 6112, a first calculation unit 6113, and a first detection unit 6114. The density determination unit 6111, the first shape information acquisition unit 6112, the first calculation unit 6113, and the first detection unit 6114 are realized, for example, in the calculation unit 45a by the CPU reading and executing the program Pg1 stored in the storage unit 45b. In the first search processing unit 611, the first search processing can be realized, for example, by the first shape information acquisition unit 6112, the first calculation unit 6113, and the first detection unit 6114.
[0129] <<Density Determination Unit 6111>> The density determination unit 6111 determines areas of low density of component contours (also referred to as low-density areas) in an edge image serving as actual shape information acquired by the contour extraction unit 592, for example. For example, the density determination unit 6111 calculates the proportion of the component contours in each area of a predetermined size (also referred to as a unit determination area) in the edge image serving as actual shape information as the density of the component contours, and determines unit determination areas whose density is equal to or less than a predetermined value as low-density areas. The predetermined size of the unit determination area may be set, for example, according to the size of the reference image serving as the reference shape information described above. The predetermined value may be set, for example, to a numerical value such as zero.
[0130] For example, when zero is applied to the predetermined value, a unit determination area in the edge image serving as actual shape information that does not include any component contours is determined to be a low-density area. The determination result from the density determination unit 6111 is provided to the first calculation unit 6113 and the second search processing unit 612. Here, it is estimated that the low-density area does not include the contours of the search target component. Therefore, for example, in the first calculation unit 6113 and the second calculation unit 6124 described below, the low-density area in the edge image serving as actual shape information is excluded from the calculation for calculating a numerical value indicating the degree of match between the actual shape information and the reference shape information, thereby reducing the amount of calculation required for the search process.
[0131] <<First Shape Information Acquisition Unit 6112>> The first shape information acquisition unit 6112 acquires reference shape information generated for each of a plurality of first virtual camera positions, assuming that the 3D model 3dm of the search target part is photographed from each of the plurality of first virtual camera positions, based on, for example, three-dimensional design information and setting range information 58 related to the search target part stored in the memory unit 45b. The plurality of first virtual camera positions are located along a plurality of virtual spheres that surround the 3D model 3dm of the search target part, centered on the reference point Po of the 3D model 3dm of the search target part, and correspond to at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58. Here, when the ranges of the position and orientation of the search target part are limited, the amount of calculation in the search process can be reduced by limiting the ranges in which the plurality of first virtual camera positions are set. This can reduce the amount of calculation required to recognize the orientation of the search target part captured in an actual image. As a result, the substrate processing apparatus 1 can efficiently recognize the orientation of the search target component.
[0132] Here, the reference shape information is information generated based on three-dimensional design information related to the search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from a first virtual camera position. The virtual image can be generated, for example, by projecting the 3D model 3dm onto a virtual plane using a process such as rendering. The reference point Po of the 3D model 3dm of the search target part may be set to a central point, such as the center of gravity, of the 3D model 3dm of the search target part. At least one of the one or more initial setting ranges for the search target part includes an initial setting range corresponding to the position where the search target part, which is currently at the confirmation required timing, should be at the confirmation required timing. The multiple virtual camera positions corresponding to at least one of the one or more initial setting ranges for the search target part may be multiple virtual camera positions that are virtually set within at least one of the one or more initial setting ranges for the search target part.
[0133] Here, for example, assume that one or more initial setting ranges for the search target part defined in the setting range information 58 include the first initial setting range for the first position, and that the search target part is positioned at the first position by the moving mechanism. At this timing, the search processing unit 61 can acquire reference shape information generated for each of the multiple first virtual camera positions corresponding to the first initial setting range, based on the three-dimensional design information for the search target part stored in the memory unit 45b or the like and the setting range information 58. This assumes that the 3D model 3dm of the search target part is captured from each of the multiple first virtual camera positions corresponding to the first initial setting range. As a result, for example, when the search target part moves between the first and second positions, the range in which the multiple first virtual camera positions are set can be limited to the first position, which has a more limited range in the orientation change of the search target part. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced. Therefore, the orientation of the search target part can be recognized efficiently in the substrate processing apparatus 1. Here, the first initial setting range corresponds to at least one of the one or more initial setting ranges for the search target part described above. In other words, at least one of the one or more initial setting ranges for the search target part described above is the first initial setting range. The multiple virtual camera positions corresponding to the first initial setting range for the search target part may be multiple virtual camera positions that are virtually set within the first initial setting range for the search target part.
[0134] For example, if the part to be searched for in the confirmation-requiring timing is the first chuck and the chuck moving mechanism 17 moves the first chuck to an open position (first position A), the first initial setting range may be the first A initial setting range for the open position of the first chuck. For example, if the part to be searched for in the confirmation-requiring timing is the guard 23 and the guard moving mechanism 25 moves the guard 23 to a lowered position (first position B), the first initial setting range may be the first B initial setting range for the lowered position of the guard 23. For example, if the part to be searched for in the confirmation-requiring timing is the nozzle 33 and the nozzle moving mechanism 35 moves the nozzle 33 to a standby position (first position C), the first initial setting range may be the first C initial setting range for the standby position of the nozzle 33.
[0135] Here, for example, assume that one or more initial setting ranges for the search target part defined in the setting range information 58 include the second initial setting range for the second position, and that the search target part is positioned at the second position by the moving mechanism. At this timing, the search processing unit 61 can acquire reference shape information generated for each of the multiple first virtual camera positions corresponding to the second initial setting range, based on the three-dimensional design information for the search target part stored in the memory unit 45b or the like and the setting range information 58. This assumes that the 3D model 3dm of the search target part is captured from each of the multiple first virtual camera positions corresponding to the second initial setting range. As a result, for example, when the search target part moves between the first and second positions, the range in which the multiple first virtual camera positions are set can be limited to the second position, which has a more limited range in the range in which the orientation of the search target part changes. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced. Therefore, the orientation of the search target part can be recognized efficiently in the substrate processing apparatus 1. Here, the second initial setting range corresponds to at least one of the one or more initial setting ranges for the search target part described above. In other words, at least one of the one or more initial setting ranges for the search target part described above is the second initial setting range. The multiple virtual camera positions corresponding to the second initial setting range for the search target part may be multiple virtual camera positions that are virtually set within the second initial setting range for the search target part.
[0136] For example, if the part to be searched for in the confirmation-requiring timing is the first chuck and the chuck moving mechanism 17 moves the first chuck to a closed position (second position A), the second initial setting range may be the second A initial setting range for the closed position of the first chuck. For example, if the part to be searched for in the confirmation-requiring timing is the guard 23 and the guard moving mechanism 25 moves the guard 23 to a raised position (second position B), the second initial setting range may be the second B initial setting range for the raised position of the guard 23. For example, if the part to be searched for in the confirmation-requiring timing is the nozzle 33 and the nozzle moving mechanism 35 moves the nozzle 33 to a discharge position (second position C), the second initial setting range may be the second C initial setting range for the discharge position of the nozzle 33.
[0137] Here, for example, as shown in FIG. 4 , if one or more initial setting ranges for the search target component each include a first numerical range representing a distance range, a second numerical range representing a latitude range, and a third numerical range representing a longitude range, the ranges in which the multiple first virtual camera positions are set can be limited when the ranges in which the angular relationship and distance between the camera CM and the search target component change are limited. This can reduce the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the search target component can be efficiently recognized in the substrate processing apparatus 1.
[0138] Furthermore, as described above with reference to FIG. 4 , for example, if the setting range information 58 includes information specifying one or more initial setting ranges for the virtual camera position for each target part, the ranges in which the multiple first virtual camera positions are set can be limited for each search target part as a target part at the confirmation timing. This reduces the amount of calculation required in the search process. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced. Therefore, the orientation of the search target part can be efficiently recognized in the substrate processing apparatus 1. Here, the fact that the setting range information 58 includes information specifying one or more initial setting ranges for the virtual camera position for each target part is equivalent to the fact that the setting range information 58 specifies one or more initial setting ranges for the virtual camera position for at least one of the two or more target parts as the one or more target parts.
[0139] More specifically, in the first embodiment, the first shape information acquisition unit 6112 acquires reference shape information generated for each of M1×T1 first virtual camera positions (where M1 and T1 are both natural numbers greater than or equal to 2) based on the three-dimensional design information and setting range information 58 related to the search target part stored in the storage unit 45b, for example, assuming that a 3D model 3dm of the search target part is photographed from each of the M1×T1 first virtual camera positions. In this specification, when N1 and N2 are both natural numbers, N1×N2 refers to the number obtained by multiplying N1 by N2. For example, 2×3 refers to 6, which is 2 multiplied by 3. The M1 × T1 first virtual camera positions are multiple virtual camera positions that are set by virtually setting T1 surface collections having mutually different distances from a reference point Po of the 3D model 3dm of the search target part, and virtually setting one virtual camera position for each of the M1 virtual surfaces in each of the T1 surface collections. The T1 surface collections each include multiple virtual surfaces located along a virtual spherical surface that surrounds the 3D model 3dm of the search target part and is centered on the reference point Po of the 3D model 3dm of the search target part, and correspond to a first numerical range that is a range of distance in at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58. The M1 virtual surfaces in each of the T1 surface collections are multiple virtual surfaces that correspond to a second numerical range that is a range of latitude and a third numerical range that is a range of longitude in at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58.
[0140] Here, for example, as shown in Figure 14, by setting the right-handed xyz coordinate system with the reference point Po of the 3D model 3dm of the part to be searched, which is specified in the three-dimensional design information for the part to be searched, as the origin, as well as the angle (latitude) α in the direction of rotation around the x axis, the angle (longitude) β in the direction of rotation around the z axis, and the distance D from the origin, the position and orientation of each virtual surface, as well as the position of each first virtual camera, can be specified.
[0141] Here, for each of the M1 virtual surfaces in each of the T1 surface collections, a first virtual camera position is virtually set at a predetermined position on the virtual surface, for example. The predetermined position may be, for example, the position of the center of the virtual surface. The center of the virtual surface may be, for example, the center of gravity of the virtual surface. The multiple surface collections corresponding to the first numerical range, which is a range of distances in at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58, may be, for example, multiple surface collections whose distances from the reference point Po of the 3D model 3dm of the search target part are included within this first numerical range, or multiple surface collections located along multiple virtual spherical surfaces whose distances from the reference point Po of the 3D model 3dm of the search target part are included within this first numerical range. Furthermore, the multiple virtual surfaces corresponding to the second numerical range, which is a range of latitude, and the third numerical range, which is a range of longitude, in at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58 may be multiple virtual surfaces whose latitudes fall within the second numerical range and whose longitudes fall within the third numerical range. Furthermore, these multiple virtual surfaces may be multiple virtual surfaces whose predetermined positions on each of the multiple virtual surfaces have latitudes that fall within the second numerical range and longitudes that fall within the third numerical range. The predetermined positions on each of the multiple virtual surfaces may be, for example, centers such as the centers of gravity of the virtual surfaces.
[0142] In the first embodiment, for example, a triangular surface is applied to each of the multiple virtual surfaces constituting the surface collection, and a polyhedron composed of multiple triangular surfaces is applied to the surface collection. In other words, a spherical polyhedron composed of multiple triangular surfaces is applied to the surface collection. In other words, for example, a triangular surface is applied to each of the multiple virtual surfaces constituting the T1 surface collections, and a polyhedron composed of multiple triangular surfaces is applied to each of the T1 surface collections. This makes it easy to set a surface collection including multiple virtual surfaces. Here, an equilateral triangle may be applied to the triangle. If the virtual surface is a triangular surface, the center of the virtual surface may be, for example, the center of gravity of the triangle or the incenter.
[0143] In this first embodiment, the first shape information acquisition unit 6112 sets multiple first virtual camera positions based on three-dimensional design information and setting range information 58 regarding the part to be searched stored in, for example, a memory unit 45b, and generates reference shape information for each of the multiple first virtual camera positions, thereby acquiring the reference shape information generated for each of the multiple first virtual camera positions.
[0144] Fig. 18 is a diagram for explaining an example of a manner in which T1 surface aggregates As1 are virtually set, each having a different distance from a reference point Po of a 3D model 3dm of a search target part. Fig. 19 is a diagram showing an example of a setting manner of one surface aggregate As1. Fig. 20 is a diagram showing an example of a setting manner of a first virtual camera position P11 on one virtual surface St1.
[0145] In Figure 18, the outer edges of T1 virtual spheres Sv1 are depicted with thin two-dot chain lines. These T1 virtual spheres Sv1 are virtually generated based on three-dimensional design information related to the search target component. These T1 virtual spheres Sv1 differ from one another in distance from the reference point Po of the 3D model 3dm of the search target component. Furthermore, each of these T1 virtual spheres Sv1 surrounds the 3D model 3dm of the search target component, with the reference point Po of the 3D model 3dm being its center. In Figure 18, three of the T1 virtual spheres Sv1 are depicted, and the other virtual spheres Sv1 are not depicted. More specifically, Figure 18 depicts three virtual spheres Sv1: a first virtual sphere Sv1 (also referred to as virtual sphere Sv11) whose distance from the reference point Po is distance D1, a second virtual sphere Sv1 (also referred to as virtual sphere Sv12) whose distance from the reference point Po is distance D2, and a T1th virtual sphere Sv1 (also referred to as virtual sphere Sv1T1) whose distance from the reference point Po is distance DT1.
[0146] In order to avoid complicating the drawing, Figure 19 shows only the origin as the reference point Po in the right-handed xyz coordinate system, and the three axes of xyz are omitted, as are the angle (latitude) α and the angle (longitude) β. Figure 19 also omits the angle (roll angle) γ in the rotation direction about a line passing through the origin as the reference point Po and the first virtual camera position P11, which defines the attitude of the virtual camera that captures the 3D model 3dm of the search target part from the first virtual camera position P11. In Figure 19, the outline of the front portion of the surface set As1 is drawn with a solid line, and the outline of the back portion of the surface set As1 is drawn with a thin dashed line. For convenience, in Figure 19, the outline of the 3D model 3dm of the search target part is drawn with a thick dashed line. In addition, in FIG. 19, for the sake of convenience, two triangular imaginary surfaces St1 as an example of M1 of the plurality of imaginary surfaces St1 are indicated by the symbol "St1" and hatched with diagonal lines.
[0147] In the first shape information acquisition unit 6112, for example, as shown in FIG. 18, a surface assembly As1 as shown in FIG. 19 is virtually set along each of the T1 virtual spherical surfaces Sv1. This virtually sets the T1 surface assembly As1. Here, the T1 virtual spherical surfaces Sv1 are set, for example, at a predetermined pitch. The predetermined pitch may be, for example, 1 centimeter (cm). The T1 surface assembly As1 have similar shapes that are enlarged and reduced relative to each other around the reference point Po of the 3D model 3dm of the search target part. In other words, although the T1 surface assembly As1 are different in size from each other, they have the same shape and the same orientation relative to the 3D model 3dm. In the example of FIG. 19, the surface assembly As1 is a polyhedron composed of multiple triangular virtual surfaces St1. FIG. 19 illustrates an example of a spherical polyhedron in which a surface assembly As1 is composed of approximately 200 triangular virtual surfaces St1. The number of virtual surfaces St1 constituting the surface assembly As1 is not limited to approximately 200, but may be set to, for example, approximately 100 to 300. Here, each of the T1 surface assembly As1 includes multiple virtual surfaces St1 positioned along a virtual spherical surface Sv1 that surrounds the 3D model 3dm of the search target part, with the reference point Po of the 3D model 3dm at its center. For example, in each surface assembly As1, a first virtual camera position P11 is virtually set for each of two virtual surfaces St1 as an example of M1 surfaces in the surface assembly As1. In FIG. 19, the first virtual camera positions P11 set for each of two virtual surfaces St1 as an example of M1 surfaces in one surface assembly As1 are indicated by black circles. Here, for example, as shown in Fig. 20, in each of two virtual surfaces St1 (as an example of M1 surfaces), a first virtual camera position P11 is set at the center of the virtual surface St1 as a predetermined position of the virtual surface St1. In Fig. 20, as in Fig. 19, the first virtual camera position P11 is indicated by a filled-in circle.
[0148] When generating reference shape information for each of the M1×T1 first virtual camera positions P11, the first shape information acquisition unit 6112 sets the shooting direction of the virtual camera that captures the 3D model 3dm of the search target part from the first virtual camera position P11 to a direction from the first virtual camera position P11 toward the reference point Po of the 3D model 3dm of the search target part. Furthermore, at this time, the first shape information acquisition unit 6112 sets the roll angle γ that defines the attitude of the virtual camera that captures the 3D model 3dm of the search target part from the first virtual camera position P11 to, for example, zero (0) degrees. Here, for each first virtual camera position P11, a reference image Iv1 is generated as reference shape information, as shown, for example, in FIG. 11 .
[0149] <<First calculator 6113>> The first calculator 6113 calculates a numerical value indicating the degree of match between information about the two-dimensional shape of an object captured in an actual image capturing the search target part (actual shape information) and the reference shape information, for each of the multiple first virtual camera positions P11. More specifically, the first calculator 6113 calculates a numerical value indicating the degree of match between information about the two-dimensional shape of an object captured in an actual image capturing the search target part (actual shape information) and the reference shape information, for each of the M1×T1 first virtual camera positions P11 as the multiple first virtual camera positions P11 described above.
[0150] Here, for example, assume that one or more default setting ranges for the virtual camera positions relative to the search target part defined in the setting range information 58 include the first default setting range for the first position and are set at a timing when the search target part is positioned at the first position by the moving mechanism. At this timing, the search processing unit 61 can calculate, by the first calculation unit 6113, a numerical value indicating the degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the search target part (actual shape information) and the reference shape information for each of multiple first virtual camera positions P11 corresponding to the first default setting range. Here, the actual image capturing the search target part is an actual image captured by the camera CM at the timing when the search target part is positioned at the first position by the moving mechanism.
[0151] For example, if the search target component in the confirmation timing is the first chuck and the first chuck is moved to the open position (first position A) by the chuck moving mechanism 17, the actual image capturing the search target component may be an actual image captured by the camera CM at the time the first chuck is moved to the open position by the chuck moving mechanism 17. For example, if the search target component in the confirmation timing is the guard 23 and the guard 23 is moved to the lowered position (first position B) by the guard moving mechanism 25, the actual image capturing the search target component may be an actual image captured by the camera CM at the time the guard 23 is moved to the open position by the guard moving mechanism 25. For example, if the search target component in the confirmation timing is the nozzle 33 and the nozzle 33 is moved to the standby position (first position C) by the nozzle moving mechanism 35, the actual image capturing the search target component may be an actual image captured by the camera CM at the time the nozzle 33 is moved to the standby position by the nozzle moving mechanism 35.
[0152] Here, for example, assume that one or more default setting ranges for the virtual camera position relative to the search target part defined in the setting range information 58 include the second default setting range for the second position and are set at a timing when the search target part is positioned at the second position by the moving mechanism. At this timing, the search processing unit 61 can calculate, by the first calculation unit 6113, a numerical value indicating the degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the search target part (actual shape information) and the reference shape information for each of the multiple first virtual camera positions P11 corresponding to the second default setting range. Here, the actual image capturing the search target part is an actual image captured by the camera CM at the timing when the search target part is positioned at the second position by the moving mechanism.
[0153] For example, if the search target component in the confirmation-requiring timing is the first chuck and the first chuck is moved to the closed position (second position A) by the chuck moving mechanism 17, the actual image capturing the search target component may be an actual image captured by the camera CM at the time when the first chuck is moved to the closed position by the chuck moving mechanism 17. For example, if the search target component in the confirmation-requiring timing is the guard 23 and the guard 23 is moved to the raised position (second position B) by the guard moving mechanism 25, the actual image capturing the search target component may be an actual image captured by the camera CM at the time when the guard 23 is moved to the raised position by the guard moving mechanism 25. For example, if the search target component in the confirmation-requiring timing is the nozzle 33 and the nozzle 33 is moved to the discharge position (second position C) by the nozzle moving mechanism 35, the actual image capturing the search target component may be an actual image captured by the camera CM at the time when the nozzle 33 is moved to the discharge position by the nozzle moving mechanism 35.
[0154] Here, a specific example will be given to explain the calculation process of the first calculation unit 6113 to calculate a numerical value indicating the degree of match between actual shape information and reference shape information for one first virtual camera position P11.
[0155] 21 to 25 are diagrams for explaining a specific example of the process of calculating a numerical value indicating the degree of match between actual shape information and reference shape information for one first virtual camera position P11.
[0156] 21 shows an example of a reference image Iv1 serving as reference shape information for one first virtual camera position P11. The first calculator 6113 calculates a numerical value indicating the degree of coincidence of the two-dimensional shapes of the contours between, for example, the reference image Iv1 serving as reference shape information acquired by the first shape information acquisition unit 6112 and the edge image Ir3 ( FIG. 9 ) serving as actual shape information acquired by the image processor 59.
[0157] When calculating a numerical value indicating the degree of match between an edge image as actual shape information and a reference image as reference shape information for each first virtual camera position P11, the first calculation unit 6113 performs, for example, [Process 1a] a process of detecting the amount of deviation in the orientation of the two-dimensional shape of the contour corresponding to the deviation in roll angle γ between the edge image and the reference image, [Process 1b] a process of rotating the edge image in accordance with the deviation in roll angle γ, and [Process 1c] a process of detecting the position of the area where the degree of match between the rotated edge image and the reference image is greatest, in the order described.
[0158] In the process 1a, the first calculator 6113 detects the amount of deviation in the orientation of the two-dimensional shape of the contour between an edge image serving as actual shape information and a reference image serving as reference shape information, for example, using rotation-invariant phase-only correlation (RIPOC) analysis. This deviation in the orientation of the two-dimensional shape of the contour is the amount of deviation in the rotation direction of the contour on the image. Here, as shown in FIG. 22 , for example, the first calculator 6113 divides the edge image Ir3 serving as actual shape information input from the image processor 59 into multiple comparison target regions Re1, and then calculates, for each comparison target region Re1, a deviation γ1 in the rotation direction that can maximize the degree of contour match between the edge image serving as reference shape information and the reference image serving as reference shape information, using the RIPOC analysis. This deviation γ1 corresponds to the roll angle γ at which the degree of match between the reference image serving as reference shape information and the edge image serving as actual shape information can be maximized.
[0159] The size of each comparison region Re1 is set to, for example, at least one and several times (e.g., three times) the size of the reference image serving as reference shape information in both the vertical and horizontal directions. Furthermore, multiple comparison regions Re1 are set so that adjacent comparison regions Re1 partially overlap each other. In the example of FIG. 22 , six comparison regions Re1 are set in the edge image Ir3. In FIG. 22 , the outer edge of the first comparison region Re1, which is the first comparison region Re1, is depicted with a thick dashed line. The outer edge of the second comparison region Re12, which is the second comparison region Re1, is depicted with a thin dashed line. The outer edge of the third comparison region Re13, which is the third comparison region Re1, is depicted with a thick dashed line. The outer edge of the fourth comparison region Re14, which is the fourth comparison region Re1, is depicted with a thin dashed line. The outer edge of the fifth comparison target region Re15, which is the fifth comparison target region Re1, is depicted with a thick two-dot chain line. The outer edge of the sixth comparison target region Re16, which is the sixth comparison target region Re1, is depicted with a thin two-dot chain line. Here, the first calculation unit 6113 detects one comparison target region Re1 among the multiple comparison target regions Re1 that has the greatest degree of matching in outline with the reference image as the reference shape information, and the deviation amount γ1 in the rotation direction that has the greatest degree of matching in outline between this one comparison target region Re1 and the reference image as the reference shape information.
[0160] In the process 1b, the first calculation unit 6113 rotates, for example, the edge image serving as actual shape information to correct the deviation amount γ1 detected in the process 1a. This generates a rotated edge image, which aligns the orientation between the two-dimensional shape of the contour in the edge image serving as actual shape information and the two-dimensional shape of the contour in the reference image serving as reference shape information. Here, the first calculation unit 6113 rotates, for example, the edge image of the comparison target region Re1 detected in the process 1a to correct the deviation amount γ1 detected in the process 1a. This generates a rotated edge image, which aligns the orientation between the two-dimensional shape of the contour in the comparison target region Re1 constituting the actual shape information and the two-dimensional shape of the contour in the reference image serving as reference shape information. FIGS. 23 and 24 show, for example, how the edge image of the fourth comparison target region Re14, which is the fourth comparison target region Re1 shown in FIG. 23 , is rotated by the deviation amount γ1 to generate the rotated edge image Ir4 shown in FIG. 24 . In FIG. 24, the outer edge of the edge image of the fourth comparison region Re14 before rotation is schematically shown by a thin two-dot chain line.
[0161] In the process 1c, the first calculation unit 6113 performs template matching using a reference image as reference shape information, for example, on the rotated edge image related to the actual shape information generated in the process 1b. Here, the first calculation unit 6113, for example, scans the reference image within the rotated edge image and detects the position of an area where each partial area in the rotated edge image has the highest degree of match (similarity) with the reference image. This allows the position (also referred to as a matching candidate position) of an area in the edge image as actual shape information where the degree of match with the two-dimensional shape of the outline of the 3D model 3dm of the search target part in the reference image as reference shape information to be detected.
[0162] Here, the degree of match is not particularly limited, but may be, for example, the degree of match between a partial region of the rotated edge image and the reference image when the partial region of the rotated edge image is superimposed on the reference image. This degree of match (similarity) may be expressed using a score (also referred to as a matching score) that indicates a known degree of match (similarity), such as the sum of squared differences of pixel values, the sum of absolute differences of pixel values, normalized cross-correlation, or zero-mean normalized cross-correlation. When the template matching is performed, a numerical value indicating the degree of match (similarity) between a partial region of the rotated edge image and the reference image, when the degree of match (similarity) is maximized, is calculated as a numerical value indicating the degree of match between the edge image as actual shape information and the reference image as reference shape information for the first virtual camera position P11. In other words, for each first virtual camera position P11, the degree of matching between the reference image and the partial area in the edge image after rotation is maximized, and this degree of matching is considered to be the degree of matching between the edge image as actual shape information and the reference image as reference shape information.
[0163] Here, the numerical value indicating the degree of match may be, for example, a matching score indicating the degree of match. For example, the greater the degree of match between the edge image as actual shape information and the reference image as reference shape information, the greater the matching score indicating the degree of match, or the smaller the matching score indicating the degree of match. In other words, the greater the matching score indicating the degree of match, the greater the degree of match between the edge image as actual shape information and the reference image as reference shape information. In the following, unless otherwise specified, the greater the degree of match between the edge image as actual shape information and the reference image as reference shape information, the greater the matching score indicating the degree of match. In FIG. 25 , the outer edge of an example of a matching candidate position Pm0 in the edge image Ir4 is depicted by a thin two-dot chain line.
[0164] <<First detection unit 6114>> The first detection unit 6114 detects, among the multiple first virtual camera positions P11, a high-match virtual camera position that is a first virtual camera position P11 that has the greatest degree of match between information about the two-dimensional shape of an object captured in an actual image that captures the search target part (actual shape information) and the reference shape information, based on the calculation result by the first calculation unit 6113. More specifically, the first detection unit 6114 detects, among the M1×T1 first virtual camera positions P11 as the multiple first virtual camera positions P11, a high-match virtual camera position that is a first virtual camera position P11 that has the greatest degree of match between the actual shape information and the reference shape information, based on the calculation result by the first calculation unit 6113.
[0165] Here, for example, among the M1×T1 first virtual camera positions P11 as the plurality of first virtual camera positions P11, the first virtual camera position P11 having the largest matching score calculated by the first calculation unit 6113 between information about the two-dimensional shape of an object captured in an actual image capturing the search target part (actual shape information) and the reference shape information may be detected as the high-match virtual camera position. Furthermore, for example, when detecting the high-match virtual camera positions, the first detection unit 6114 also detects the matching candidate positions detected for the high-match virtual camera positions by the first calculation unit 6113 as target part candidate positions.
[0166] Here, for example, assume that one or more default setting ranges for the virtual camera position relative to the search target part defined in the setting range information 58 include the first default setting range for the first position and are set at a time when the search target part is positioned at the first position by the moving mechanism. At this time, the search processing unit 61, using the first detection unit 6114, can detect, based on the calculation result by the first calculation unit 6113, a high-match virtual camera position, which is the first virtual camera position P11 among the multiple first default setting ranges. The high-match virtual camera position is the first virtual camera position P11 that has the greatest match between information about the two-dimensional shape of the object captured in the actual image capturing the search target part (actual shape information) and the reference shape information. Here, the actual image capturing the search target part is an actual image captured by the camera CM at the time when the search target part is positioned at the first position by the moving mechanism.
[0167] As described above, for example, if the search target part at the confirmation timing is the first chuck, and the first chuck is moved to the open position, which is the first position, the first A position, by the chuck moving mechanism 17, the actual image capturing the search target part may be an actual image captured by the camera CM at the timing when the first chuck is moved to the open position by the chuck moving mechanism 17. For example, if the search target part at the confirmation timing is the guard 23, and the guard 23 is moved to the lowered position, which is the first position, the first B position, by the guard moving mechanism 25, the actual image capturing the search target part may be an actual image captured by the camera CM at the timing when the guard 23 is moved to the lowered position by the guard moving mechanism 25. For example, if the part to be searched for at the timing requiring confirmation is nozzle 33, and the nozzle 33 is positioned at a standby position, which is the first position, 1C position, by the nozzle moving mechanism 35, the actual image capturing the part to be searched for may be an actual image obtained by photographing with camera CM at the timing when the nozzle 33 is positioned at the standby position by the nozzle moving mechanism 35.
[0168] Here, for example, assume that one or more default setting ranges for the virtual camera position relative to the search target part defined by the setting range information 58 include the second default setting range for the second position, and that the timing is when the search target part is positioned at the second position by the moving mechanism. At this timing, the search processing unit 61, using the first detection unit 6114, can detect, based on the calculation result by the first calculation unit 6113, a high-match virtual camera position, which is the first virtual camera position P11 among the multiple first virtual camera positions P11 corresponding to the second default setting ranges, that has the highest degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the search target part (actual shape information) and the reference shape information. Here, the actual image capturing the search target part is an actual image captured by the camera CM at the timing when the search target part is positioned at the second position by the moving mechanism.
[0169] As described above, for example, if the search target part at the confirmation timing is the first chuck and the first chuck is moved to the closed position, which is the second position, the second A position, by the chuck moving mechanism 17, the actual image capturing the search target part may be an actual image captured by the camera CM at the timing when the first chuck is moved to the closed position by the chuck moving mechanism 17. For example, if the search target part at the confirmation timing is the guard 23 and the guard 23 is moved to the raised position, which is the second position, the second B position, by the guard moving mechanism 25, the actual image capturing the search target part may be an actual image captured by the camera CM at the timing when the guard 23 is moved to the raised position by the guard moving mechanism 25. For example, if the part to be searched for at the timing requiring confirmation is nozzle 33, and the nozzle 33 is positioned at the second position, the second C position, by the nozzle moving mechanism 35, the actual image capturing the part to be searched for may be an actual image obtained by photographing with camera CM at the timing when the nozzle 33 is positioned at the discharge position by the nozzle moving mechanism 35.
[0170] <3-2-2-2. Second Search Processing Unit> The second search processing unit 612 includes, as multiple functional processing units, for example, a matching target area setting unit 6121, a division surface generation unit 6122, a second shape information generation unit 6123, a second calculation unit 6124, and a second detection unit 6125. These matching target area setting unit 6121, division surface generation unit 6122, second shape information generation unit 6123, second calculation unit 6124, and second detection unit 6125 are realized, for example, in the calculation unit 45a by the CPU reading and executing program Pg1 stored in the storage unit 45b. In the second search processing unit 612, for example, the division surface generation unit 6122, the second shape information generation unit 6123, the second calculation unit 6124, and the second detection unit 6125 can realize the secondary search process.
[0171] <<Matching Target Area Setting Unit 6121>> The matching target area setting unit 6121 sets an area (also referred to as a matching target area) to be used for matching (matching) processing by the second calculation unit 6124, within the edge image serving as actual shape information acquired by the contour extraction unit 592, based on the target part candidate position detected by the first detection unit 6114. This reduces the amount of calculation in the processing by the second calculation unit 6124, and can improve the efficiency of the processing by the second calculation unit 6124.
[0172] 26 is a diagram showing a specific example in which a matching target region Re2 is set in an edge image Ir3 serving as actual shape information acquired by contour extraction unit 592. As shown in FIG. 26 , an area in edge image Ir3 that includes target part candidate position Pm1 detected by first detection unit 6114 and is larger in size than target part candidate position Pm1 is set as matching target region Re2. In FIG. 26 , the outer edge of target part candidate position Pm1 is depicted with a thin two-dot chain line, and the outer edge of matching target region Re2 is depicted with a thick dashed line. The size of matching target region Re2 is set, for example, to be greater than one and not more than several times (e.g., twice) the size of target part candidate position Pm1 in both the vertical and horizontal directions.
[0173] <<Divide Surface Generator 6122>> The divide surface generator 6122 divides, using the same rule, T2 (T2 is a natural number greater than or equal to 2) virtual surfaces St1 out of the M1 virtual surfaces St1 in each of the T1 surface aggregates As1, which include a high-match virtual surface St1m that is a virtual surface on which the high-match virtual camera position detected by the first detector 6114 is virtually set and which have different distances from the reference point Po of the 3D model 3dm of the part to be searched. As a result, the divide surface generator 6122 generates M2 (M2 is a natural number greater than or equal to 2) virtual surfaces (also referred to as virtual divide surfaces) for each of the T2 virtual surfaces St1, thereby generating M2 × T2 virtual divide surfaces. Here, each of the T2 virtual surfaces St1 intersects with a line passing through the reference point Po and the high-match virtual camera position P11m on the side of the reference point Po of the 3D model 3dm of the search target part that is closer to the high-match virtual camera position P11m than the reference point Po. The number of T2 is, for example, the same as the number of T1. The number of T2 may also be, for example, less than the number of T1.
[0174] FIG. 27 is an image diagram schematically illustrating an example of T2 virtual surfaces St1. In FIG. 27, a direction Dr11 (also referred to as a first direction) from the reference point Po of the 3D model 3dm of the target part toward the high-match virtual camera position P11m is indicated by a thin arrow, and a straight line Ln11 passing through the reference point Po and the high-match virtual camera position P11m is depicted by a thin, two-dot chain line. In FIG. 27, lines passing through the reference point Po and the outer edges of each of the T2 virtual surfaces St1 are depicted by thin, dashed lines. For convenience, FIG. 27 illustrates three of the T2 virtual surfaces St1, and the other virtual surfaces St1 are omitted from the illustration. As shown in FIG. 27, each of the T2 virtual surfaces St1 intersects with a portion of the straight line Ln11 located closer to the high-match virtual camera position P11m than the reference point Po. Here, the T2 imaginary surfaces St1 have similar shapes that are enlarged and reduced in radial directions with the reference point Po of the 3D model 3dm of the part to be searched as the center.
[0175] Here, the same rule for dividing the T2 virtual surfaces St1 may be a rule for dividing each of the T2 virtual surfaces St1 in the same shape when viewed from the reference point Po of the 3D model 3dm of the search target part. In other words, the same rule for dividing the T2 virtual surfaces St1 may be a rule for dividing each of the T2 virtual surfaces St1 by lines having similar shapes that are enlarged and reduced in radial directions from the reference point Po when viewed from the reference point Po of the 3D model 3dm of the search target part. In other words, the same rule for dividing the T2 virtual surfaces St1 may be a rule for dividing the T2 virtual surfaces St1 such that, when viewed from the reference point Po of the 3D model 3dm of the search target part, T2 divided virtual surfaces having the same shape are generated for each of the M2 virtual divided surfaces between the T2 virtual surfaces St1. As a result, for each of the T2 virtual surfaces St1, there are T2 virtual dividing surfaces that have similar shapes that are mutually enlarged and reduced in radial directions from the reference point Po of the 3D model 3dm of the target part. If the same rule for dividing the T2 virtual surfaces St1 is a rule that divides the dividing target surface into multiple surfaces using multiple line segments connecting the center point of the surface to be divided (also called the dividing target surface) to all of the vertices of this dividing target surface, the division of the dividing target surface can be easily performed. If each of the T2 virtual surfaces St1 is a triangular surface, the number M2 may be three.
[0176] FIG. 28 is a diagram schematically illustrating a specific example in which a high-matching virtual surface St1m among the T2 virtual surfaces St1 is divided into multiple virtual split surfaces St2. FIG. 28 illustrates a specific example in which each of the multiple virtual surfaces St1 constituting the surface set As1 is a triangular surface, as shown in FIG. 19. In FIG. 28, the high-matching virtual camera position P11m is indicated by a hollow circle. As shown in FIG. 28, the split surface generation unit 6122 divides the high-matching virtual surface St1m into three virtual split surfaces St2 as M2 virtual split surfaces St2, for example, by three line segments connecting the three vertices of the high-matching virtual surface St1m to the high-matching virtual camera position P11m. This facilitates the division of the virtual surface St1. In this case, the dividing surface generating unit 6122 divides each of the T2 virtual surfaces St1 into three virtual dividing surfaces St2 by three line segments connecting the three vertices to the first virtual camera position P11, similar to the high-match virtual surface St1m shown in Fig. 28. As a result, each of the T2 virtual surfaces St1 is divided into three triangular virtual dividing surfaces St2.
[0177] <<Second Shape Information Generator 6123>> The second shape information generator 6123 generates reference shape information for each of the M2×T2 second virtual camera positions P12, assuming a case where the 3D model 3dm of the search target part is photographed from each of the M2×T2 second virtual camera positions P12, based on three-dimensional design information about the search target part stored in the memory unit 45b or the like. The M2×T2 second virtual camera positions P12 are M2×T2 virtual camera positions that are set by virtually setting one virtual camera position for each of the M2×T2 virtual dividing planes St2 generated by the dividing plane generator 6122. Again, the reference shape information is information generated based on the three-dimensional design information about the search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the second virtual camera position P12. The virtual image can be generated, for example, by projecting the 3D model 3dm onto a virtual plane through a process such as rendering.
[0178] The second shape information generating unit 6123 virtually sets a second virtual camera position P12 at a predetermined position on each virtual dividing surface St2, for example. For example, the center of the virtual dividing surface St2 is used as the predetermined position. For example, the center of gravity of the virtual dividing surface St2 is used as the center of the virtual dividing surface St2. For example, as shown in FIG. 28 , the second virtual camera position P12 is set at a predetermined position on each of M2 virtual dividing surfaces St2 generated by dividing a high-match virtual surface St1m out of the T2 virtual surfaces St1. In FIG. 28 , the second virtual camera position P12 is indicated by a black circle. In this case, for example, for each of the M2 x T2 virtual split surfaces St2 generated by dividing each of the T2 virtual surfaces St1, a second virtual camera position P12 is virtually set at a predetermined position on the virtual split surface St2, similar to the M2 virtual split surfaces St2 generated by dividing the high-match virtual surface St1m shown in Figure 28.
[0179] When generating reference shape information for each second virtual camera position P12, the second shape information generation unit 6123 sets the shooting direction of the virtual camera that captures the 3D model 3dm of the search target part from the second virtual camera position P12 to a direction from the second virtual camera position P12 toward the reference point Po of the 3D model 3dm of the search target part. Furthermore, at this time, the second shape information generation unit 6123 sets the roll angle γ that defines the attitude of the virtual camera that captures the 3D model 3dm of the search target part from the second virtual camera position P12 to, for example, zero (0) degrees. Here, for each second virtual camera position P12, a reference image Iv1 is generated as reference shape information, as shown, for example, in FIG. 11 .
[0180] <<Second calculation unit 6124>> The second calculation unit 6124 calculates a numerical value indicating the degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information for each of the above-mentioned M2 × T2 second virtual camera positions P12.
[0181] As described above, in the first embodiment, a second virtual camera position P12 is set for each of a plurality of virtual dividing surfaces St2 generated by dividing a plurality of virtual surfaces St1, including a high-match virtual surface St1m, which is a virtual surface St1 for which a high-match virtual camera position P11m detected by the first detection unit 6114 is set among the M1×T1 virtual surfaces St1. A numerical value indicating the degree of match between the actual shape information and the reference shape information is calculated for each second virtual camera position P12. Therefore, the plurality of virtual surfaces St1 including the high-match virtual surface St1m and the plurality of virtual dividing surfaces St2 are not unrelated surfaces, and an increase in at least one of the number and area of the plurality of virtual dividing surfaces St2 can be reduced. This reduces the amount of calculation required to recognize the orientation of a search target component captured in an actual image. As a result, the orientation of a search target component can be recognized efficiently in the substrate processing apparatus 1.
[0182] Here, a specific example will be given to explain the calculation process of the second calculation unit 6124 to calculate a numerical value indicating the degree of match between the actual shape information and the reference shape information for one second virtual camera position P12.
[0183] A specific example of the process performed by the second calculator 6124 to calculate a numerical value indicating the degree of match between actual shape information and reference shape information for one second virtual camera position P12 may be similar to the specific example of the process performed by the first calculator 6113 to calculate a numerical value indicating the degree of match between actual shape information and reference shape information for one first virtual camera position P11. However, the second calculator 6124 calculates a numerical value indicating the degree of match between the two-dimensional shapes of the contours, for example, between the reference image as reference shape information acquired by the second shape information generator 6123 and the matching target region Re2 ( FIG. 26 ) set in the edge image as actual shape information by the matching target region setting unit 6121.
[0184] When calculating a numerical value indicating the degree of match between an edge image as actual shape information and a reference image as reference shape information for each second virtual camera position P12, the second calculation unit 6124 performs, for example, [Process 2a] a process of detecting the amount of deviation in the orientation of the two-dimensional shape of the contour corresponding to the deviation in roll angle γ between the edge image and the reference image, [Process 2b] a process of rotating the edge image in accordance with the deviation in roll angle γ, and [Process 2c] a process of detecting the position of the area where the degree of match between the rotated edge image and the reference image is greatest, in the order described.
[0185] In the process 2a, similar to the process 1a, the second calculation unit 6124 uses, for example, the RIPOC method to detect the amount of deviation in the orientation of the two-dimensional shape of the contour between the edge image as actual shape information and the reference image as reference shape information. This deviation in the orientation of the two-dimensional shape of the contour is the amount of deviation in the rotation direction of the contour on the image. Here, the second calculation unit 6124 uses, for example, the RIPOC method to detect a deviation γ2 in the rotation direction that can maximize the degree of contour match between the matching target area Re2 ( FIG. 26 ) set in the edge image as actual shape information by the matching target area setting unit 6121 and the reference image as reference shape information. This deviation γ2 corresponds to the roll angle γ that can maximize the degree of match between the reference image as reference shape information and the edge image as actual shape information.
[0186] In process 2b, similar to process 1b, the second calculation unit 6124 rotates, for example, the edge image serving as actual shape information so as to correct the deviation amount γ2 detected in process 2a. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the edge image serving as actual shape information and the two-dimensional shapes of the contours in the reference image serving as reference shape information are aligned. Here, the second calculation unit 6124 rotates, for example, the edge image of the matching target region Re2 so as to correct the deviation amount γ2 detected in process 2a. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the matching target region Re2 constituting the actual shape information are aligned with the orientations of the two-dimensional shapes of the contours in the reference image serving as reference shape information.
[0187] In process 2c, similar to process 1c, the second calculation unit 6124 performs template matching using a reference image as reference shape information, for example, on the rotated edge image related to the actual shape information generated in process 2b. Here, the second calculation unit 6124, for example, scans the reference image within the rotated edge image and detects the position of an area where each partial area in the rotated edge image has the highest degree of match (similarity) with the reference image. This allows the position (matching candidate position) of an area in the edge image as actual shape information that has the highest degree of match with the two-dimensional shape of the contour of the 3D model 3dm of the search target part in the reference image as reference shape information to be detected.
[0188] Here, the degree of match is not particularly limited, but may be, for example, the degree of match between a partial region of the rotated edge image and the reference image when the partial region of the rotated edge image is superimposed on the reference image. As described above, the degree of match (similarity) may be expressed using a score (matching score) indicating a known degree of match (similarity), such as the sum of squares of pixel value differences, the sum of absolute values of pixel value differences, normalized cross-correlation, or zero-mean normalized cross-correlation. When the template matching is performed, a numerical value indicating the degree of match (similarity) between a partial region in the rotated edge image and the reference image, when the degree of match (similarity) is maximized, is calculated as a numerical value indicating the degree of match between the edge image as actual shape information and the reference image as reference shape information for the second virtual camera position P12. In other words, for each second virtual camera position P12, the degree of match between the reference image and a partial region in the edge image after rotation is maximized, and this degree of match is regarded as the degree of match between the edge image as actual shape information and the reference image as reference shape information. Here, too, the numerical value indicating the degree of match may be, for example, a matching score indicating the degree of match.
[0189] <<Second detection unit 6125>> The second detection unit 6125 detects the virtual camera position that has the greatest degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information, out of the highly matching virtual camera position P11m detected by the first detection unit 6114 and the M2 × T2 second virtual camera positions P12 described above.
[0190] Here, for example, the matching score calculated for the high-match virtual camera position P11m by the first calculation unit 6113 is compared with the matching scores calculated for each of the M2×T2 second virtual camera positions P12 by the second calculation unit 6124. Then, for example, from among the high-match virtual camera position P11m and the M2×T2 second virtual camera positions P12, the virtual camera position that has the largest matching score calculated between information about the two-dimensional shape of the object captured in the actual image capturing the search processing component (actual shape information) and the reference shape information is detected.
[0191] Here, the virtual camera position detected by the second detection unit 6125 is the virtual camera position detected first by the second detection unit 6125 in the search process for the search target part. In this specification, "Xth" (X is a natural number) means the Xth position when performing search process for one search target part. In the first embodiment, the virtual camera position detected first by the second detection unit 6125 becomes, for example, the first reference virtual camera position described below. Then, in the first embodiment, the search processing unit 61 causes the second search processing unit 612 to search for the maximum matching virtual camera position based on the virtual camera position detected by the second detection unit 6125.
[0192] <3-2-2-3. Repetition of Unit Processes> The search processing unit 61, for example, executes a first unit process for a search target part using the second search processing unit 612, and then executes one or more n-th unit processes (n is a natural number greater than or equal to 2).
[0193] The unit process refers to a specific process when two or more identical or similar specific processes are repeated. In the first embodiment, the first unit process and the nth unit process are similar processes, and the nth unit processes are substantially identical. Here, the first unit process refers to the first unit process of two or more unit processes. The variable n, which is a natural number greater than or equal to 2, in the nth unit process indicates which unit process the nth unit process is. In other words, the nth unit process refers to the nth unit process of two or more unit processes. For example, if the variable n is 2, the nth unit process refers to the second unit process, which is the second unit process. From another perspective, when one or more nth unit processes are executed, the variable n, which is a natural number greater than or equal to 2, is set to an initial value of 2. Each time the nth unit process is executed, 1 is added to the variable n, and the next nth unit process is executed. Furthermore, the phrase "the search processing unit 61 executes the first unit process and then executes the nth unit process one or more times" means, for example, that the search processing unit 61 executes the first unit process, the second unit process, etc. For example, the phrase "the search processing unit 61 executes the nth unit process once after executing the first unit process" means that the search processing unit 61 executes the first unit process and the second unit process, etc. The phrase "the search processing unit 61 executes the nth unit process twice after executing the first unit process" means that the search processing unit 61 executes the first unit process, the second unit process, and the third unit process, etc.
[0194] The first unit process is started, for example, in response to the first detection of the virtual camera position by the second detection unit 6125 when the search processing unit 61 performs secondary search processing on the part to be searched.
[0195] Here, the search processing unit 61 sequentially performs the following first A process, the following first B process, the following first C process, and the following first D process in the first unit process by using the second search processing unit 612. Also, the search processing unit 61 sequentially performs the following n-th A process, the following n-th B process, the following n-th C process, and the following n-th D process in the n-th unit process by using the second search processing unit 612.
[0196] <<Process 1A>> Process 1A is a process in which the dividing surface generation unit 6122 generates a first M3 × T3 number of virtual dividing surfaces (M3 and T3 are each a natural number greater than or equal to 2). In this process, the dividing surface generation unit 6122 divides each of the T3 virtual dividing surfaces (also referred to as the first T3 virtual dividing surfaces) generated by dividing the T2 virtual surfaces St1 using the same rule. As a result, the dividing surface generation unit 6122 generates M3 virtual dividing surfaces (also referred to as the first M3 virtual dividing surfaces) for each of the first T3 virtual dividing surfaces, thereby generating the first M3 × T3 virtual dividing surfaces. Here, the first T3 virtual dividing surfaces include a virtual dividing surface (also referred to as the first reference virtual dividing surface) that includes the first reference virtual camera position, which is the virtual camera position first detected by the second detection unit 6125, and are at mutually different distances from the reference point Po of the 3D model 3dm of the search target part. Furthermore, the first T3 virtual dividing surfaces are a plurality of virtual dividing surfaces that intersect with a line passing through the reference point Po and the first reference virtual camera position on the side of the reference point Po of the 3D model 3dm of the search target part that is closer to the first reference virtual camera position than the reference point Po. The number T3 is, for example, the same as the number T2. The number T3 may also be, for example, less than the number T2.
[0197] FIG. 29 is an image diagram schematically illustrating an example of the first T3 virtual dividing surfaces St2. In FIG. 29, a direction Dr12 (also referred to as a second direction) from the reference point Po of the 3D model 3dm of the search target part toward the first reference virtual camera position Ps1 is indicated by a thin arrow, and a straight line Ln12 passing through the reference point Po and the first reference virtual camera position Ps1 is depicted by a thin two-dot chain line. In FIG. 29, a line passing through the reference point Po and passing through each of the outer edges of the first T3 virtual dividing surfaces St2 is depicted by a thin dashed line. For convenience, FIG. 29 illustrates three of the first T3 virtual dividing surfaces St2, and omits the illustration of the other virtual dividing surfaces St2. As shown in FIG. 29, each of the first T3 virtual dividing surfaces St2 intersects with a portion of the straight line Ln12 that is located closer to the first reference virtual camera position Ps1 than the reference point Po. Here, the first T3 virtual dividing surfaces St2 have similar shapes that are enlarged and reduced in radial directions with the reference point Po of the 3D model 3dm of the part to be searched as the center.
[0198] Here, the same rule for dividing the first T3 virtual dividing surfaces St2 may be a rule for dividing each of the first T3 virtual dividing surfaces St2 in the same shape when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, the same rule for dividing the first T3 virtual dividing surfaces St2 may be a rule for dividing each of the first T3 virtual dividing surfaces St2 with lines having similar shapes that are enlarged and reduced in radial directions from the reference point Po when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, the same rule for dividing the first T3 virtual dividing surfaces St2 may be a rule for dividing the first T3 virtual dividing surfaces St2 so that T3 divided virtual surfaces having the same shape are generated for each of the M3 virtual dividing surfaces between the first T3 virtual dividing surfaces St2 when viewed from the reference point Po of the 3D model 3dm of the part to be searched. As a result, for the first T3 virtual dividing surfaces St2, there are T3 virtual dividing surfaces with similar shapes that are mutually enlarged and reduced in radial directions around the reference point Po of the 3D model 3dm of the search target part, for each of the M3 virtual dividing surfaces. If the same rule for dividing the first T3 virtual dividing surfaces St2 is, for example, a rule that divides the dividing target surface into multiple surfaces using multiple line segments connecting the center point of the dividing target surface to all of the vertices of the dividing target surface, the dividing target surface can be easily divided. The number of M3 may be the same as the number of M2, for example. If each of the first T3 virtual dividing surfaces St2 is a triangular surface, the number of M3 may be three.
[0199] In this 1A process, the method for generating the first M3 × T3 virtual dividing planes differs depending on the virtual camera position (first reference virtual camera position) Ps1 that is first detected by the second detection unit 6125. More specifically, the method for generating the first M3 × T3 virtual dividing planes differs depending on whether the first reference virtual camera position Ps1 is any one of the M2 × T2 second virtual camera positions P12 described above (also referred to as the first first case) or whether the first reference virtual camera position Ps1 is the high-match virtual camera position P11m detected by the first detection unit 6114 (also referred to as the first second case).
[0200] <<<<First Case 1>>> When the second detection unit 6125 detects any one of the M2×T2 second virtual camera positions P12 described above as the first reference virtual camera position Ps1, the degree of match between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information is greater for any one of the M2×T2 second virtual camera positions P12 described above than for the high-match virtual camera position P11m.
[0201] In other words, the degree of agreement between the actual shape information and the reference shape information for any of the M2 × T2 second virtual camera positions P12 calculated by the second calculation unit 6124 in the secondary search process is greater than the degree of agreement between the actual shape information and the reference shape information for the highly similar virtual camera position P11m calculated by the first calculation unit 6113 in the primary search process.
[0202] Therefore, the dividing surface generator 6122 generates the first M3×T3 virtual dividing surfaces by selecting, from the M2×T2 second virtual camera positions P12 described above, the second virtual camera position P12 that has the greatest degree of match between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched for (actual shape information) and the reference shape information as the first reference virtual camera position Ps1 that serves as the basis for dividing the next virtual surface. As a result, for example, in the secondary search process, a virtual camera position that has a greater degree of match between the reference shape information and the actual shape information can be searched for.
[0203] Here, the dividing surface generator 6122 divides each of the first T3 virtual dividing surfaces St2, which include a virtual dividing surface (first reference virtual dividing surface) that includes the first reference virtual camera position Ps1 among the M2 × T2 virtual dividing surfaces St2 described above and which are at different distances from the reference point Po of the 3D model 3dm of the part to be searched, using the same rule. In this way, the dividing surface generator 6122 generates the first M3 × T3 virtual dividing surfaces by generating M3 virtual dividing surfaces for each of the first T3 virtual dividing surfaces St2. The first T3 virtual dividing surfaces St2 are multiple virtual dividing surfaces St2 that intersect with the straight line Ln12 passing through the reference point Po and the first reference virtual camera position Ps1 on the side of the reference point Po of the 3D model 3dm of the part to be searched, closer to the first reference virtual camera position Ps1.
[0204] Here, the same rule for dividing the first T3 virtual dividing surfaces St2 may be, for example, as described above, a rule for dividing the dividing surface into multiple surfaces using multiple line segments connecting the center point of the dividing surface to all of the vertices of the dividing surface. For example, if each of the first T3 virtual dividing surfaces St2 is a triangle, each of the first T3 virtual dividing surfaces St2 may be divided into three virtual dividing surfaces, which are M3 virtual dividing surfaces, using three line segments connecting each of the three vertices to the second virtual camera position P12. As a result, each of the first T3 virtual dividing surfaces St2 can be divided into three triangular virtual dividing surfaces. As a result, the first M3×T3 virtual dividing surfaces are generated as M3×T3 virtual dividing surfaces.
[0205] Here, for example, assume that the upper left second virtual camera position P12 of the three second virtual camera positions P12 in Fig. 28 is detected as the first reference virtual camera position Ps1. In this case, as shown in Fig. 28, of the three virtual splitting planes St2 generated by splitting the virtual plane St1, the virtual splitting plane St2 that includes the first reference virtual camera position Ps1 becomes the first reference virtual splitting plane Ss1.
[0206] FIG. 30 is a diagram schematically illustrating a specific example in which the first reference virtual dividing surface Ss1 among the first T3 virtual dividing surfaces St2 is divided into multiple virtual dividing surfaces St3 in the first first case. FIG. 30 illustrates a specific example in which each of the first T3 virtual dividing surfaces St2 is a triangular surface. In FIG. 30, the first reference virtual camera position Ps1 is indicated by a hollow circle. As shown in FIG. 30, the dividing surface generation unit 6122 divides the first reference virtual dividing surface Ss1 into three virtual dividing surfaces St3 as the first M3 virtual dividing surfaces, for example, by three line segments connecting the three vertices of the first reference virtual dividing surface Ss1 to the first reference virtual camera position Ps1. This facilitates the division of the first reference virtual dividing surface Ss1. In this case, the dividing surface generating unit 6122 divides each of the first T3 virtual dividing surfaces St2 into three virtual dividing surfaces St3 by three line segments connecting the three vertices to the second virtual camera position P12, similar to the first reference virtual dividing surface Ss1 shown in Fig. 30. As a result, each of the first T3 virtual dividing surfaces St2 is divided into three triangular virtual dividing surfaces St3 as the first M3 virtual dividing surfaces.
[0207] <<<<First Second Case>>> When the second detection unit 6125 detects the high-match virtual camera position P11m as the first reference virtual camera position Ps1, the degree of match between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information is greater for the high-match virtual camera position P11m than for any of the M2 × T2 second virtual camera positions P12 described above.
[0208] In other words, the degree of agreement between the actual shape information and the reference shape information for all M2 × T2 second virtual camera positions P12 calculated by the second calculation unit 6124 in the secondary search process is smaller than the degree of agreement between the actual shape information and the reference shape information for the highly similar virtual camera position P11m calculated by the first calculation unit 6113 in the primary search process.
[0209] Therefore, the dividing surface generating unit 6122 generates the first M3 × T3 virtual dividing surfaces St3 using the high-match virtual camera position P11m as the first reference virtual camera position Ps1, which is the basis for dividing the next virtual surface. This makes it possible to search for a virtual camera position that results in a greater match between the reference shape information and the actual shape information in the secondary search process, for example.
[0210] Here, the dividing surface generation unit 6122 divides each of the first T3 virtual dividing surfaces, which include a virtual dividing surface (first reference virtual dividing surface) that includes the first reference virtual camera position Ps1, which is the same as the high-match virtual camera position P11m, and which are at different distances from the reference point Po of the 3D model 3dm of the part to be searched, using the same rule. In this way, the dividing surface generation unit 6122 generates first M3 virtual dividing surfaces, which are M3 virtual dividing surfaces for each of the first T3 virtual dividing surfaces, thereby generating first M3 × T3 virtual dividing surfaces. The first T3 virtual dividing surfaces are a plurality of virtual dividing surfaces that intersect with the straight line Ln12 passing through the reference point Po and the first reference virtual camera position Ps1 on the side of the reference point Po of the 3D model 3dm of the part to be searched, closer to the first reference virtual camera position Ps1.
[0211] Here, the first reference virtual dividing surface is set according to a predetermined rule. For example, of the M4 virtual dividing surfaces generated by dividing the high-matching virtual surface St1m (M4 is a natural number greater than or equal to 2), the virtual dividing surface that includes the high-matching virtual camera position P11m serving as the first reference virtual camera position Ps1 is set as the first reference virtual dividing surface. Here, since each of the M4 virtual dividing surfaces is generated by dividing the virtual surface St1, it is set as the reset virtual dividing surface St2. For example, if the virtual surface St1 is a triangular surface, a possible predetermined rule for setting the first reference virtual dividing surface would be to set the one virtual dividing surface that includes the high-matching virtual camera position P11m as the first reference virtual dividing surface Ss1 out of the four triangular virtual dividing surfaces generated by dividing the high-matching virtual surface St1m by three line segments connecting the midpoints of each side. Here, the midpoints of each side may be, for example, slightly offset from the midpoints of the sides.
[0212] FIG. 31 is a diagram schematically illustrating a specific example in which the first reference virtual dividing surface Ss1 is set in the first second case. FIG. 31 illustrates a specific example in which each of the multiple virtual surfaces St1 is a triangular surface. In FIG. 31, the high-matching virtual camera position P11m serving as the first reference virtual camera position Ps1 is indicated by a hollow circle. For example, as shown in FIG. 31, the high-matching virtual surface St1m is divided by three line segments connecting the midpoints of each side of the high-matching virtual surface St1m, thereby generating four triangular virtual dividing surfaces St2 (M4). Of these four triangular virtual dividing surfaces St2, the virtual dividing surface St2 that includes the high-matching virtual camera position P11m serving as the first reference virtual camera position Ps1 is set as the first reference virtual dividing surface Ss1.
[0213] Here, the first T3 virtual dividing surfaces including the first reference virtual dividing surface Ss1 may be the T3 virtual dividing surfaces that each include the first virtual camera position P11 among the M4 × T3 virtual dividing surfaces generated by dividing each of the T3 virtual surfaces St1 out of the T2 virtual surfaces St1 described above into M4 virtual dividing surfaces according to the same rule as the high-match virtual surface St1m. Here again, each of the M4 virtual dividing surfaces in each of the T3 virtual surfaces St1 is a surface generated by dividing each of the T3 virtual surfaces St1, and therefore may be the reset virtual dividing surface St2.
[0214] Furthermore, the first T3 virtual dividing surfaces St2, including the first reference virtual dividing surface Ss1, are part of the M4 × T3 virtual dividing surfaces St2, and have shapes that are mutually similar and enlarged or reduced in radial directions around the reference point Po of the 3D model 3dm of the part to be searched. The T3 virtual surfaces St1 have shapes that are mutually similar and enlarged or reduced in radial directions around the reference point Po of the 3D model 3dm of the part to be searched. Dividing each of the T3 virtual surfaces St1 into M4 virtual dividing surfaces using the same rule as the high-match virtual surface St1m means that each of the T3 virtual surfaces St1 is divided using the same rule. This same rule may be a rule that divides each of the T3 virtual surfaces St1 into the same shape when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, this same rule may be a rule that, when viewed from the reference point Po of the 3D model 3dm of the part to be searched, divides each of the T3 imaginary surfaces St1 with lines having similar shapes that are enlarged and reduced relative to each other in radial directions centered on the reference point Po. In further other words, this same rule may be a rule that, when viewed from the reference point Po of the 3D model 3dm of the part to be searched, divides the T3 imaginary surfaces St1 such that T3 divided imaginary surfaces of the same shape are generated for each of the M4 imaginary divided surfaces between the T3 imaginary surfaces St1.
[0215] Here, for example, each of the T3 virtual surfaces St1 may be divided by three line segments connecting the midpoints of each side, similar to the high-match virtual surface St1m shown in FIG. As a result, each of the T3 virtual surfaces St1 can be divided into four triangular virtual dividing surfaces St2. From another perspective, when viewed from the reference point Po of the 3D model 3dm of the target part, each of the T3 virtual surfaces St1 is divided by lines having similar shapes that are mutually enlarged and reduced in radial directions centered on the reference point Po, thereby generating 4 × T3 virtual dividing surfaces St2. The first T3 virtual dividing surfaces St2, including the first reference virtual dividing surface Ss1, are part of the 4 × T3 virtual dividing surfaces St2 and have similar shapes that are mutually enlarged and reduced in radial directions centered on the reference point Po of the 3D model 3dm of the search target part.
[0216] Here, the same rule for dividing the first T3 virtual dividing surfaces St2 may be, for example, a rule for dividing the dividing surface into multiple surfaces using multiple line segments connecting the center point of the dividing surface to all of the vertices of the dividing surface, as described above. For example, if each of the first T3 virtual dividing surfaces St2 is a triangle, each of the first T3 virtual dividing surfaces St2 may be divided into three virtual dividing surfaces, which are M3 virtual dividing surfaces, using three line segments connecting each of the three vertices to the first virtual camera position P11. As a result, each of the first T3 virtual dividing surfaces St2 can be divided into three triangular virtual dividing surfaces. As a result, the first M3×T3 virtual dividing surfaces are generated as M3×T3 virtual dividing surfaces.
[0217] FIG. 32 is a diagram schematically illustrating a specific example in which the first reference virtual dividing surface Ss1 among the first T3 virtual dividing surfaces St2 is divided into multiple virtual dividing surfaces St3 in the first second case. FIG. 32 illustrates a specific example in which each of the first T3 virtual dividing surfaces St2 is a triangular surface. In FIG. 32, the high-match virtual camera position P11m serving as the first reference virtual camera position Ps1 is indicated by a white circle. As shown in FIG. 32, the dividing surface generation unit 6122 divides the first reference virtual dividing surface Ss1 into three virtual dividing surfaces St3 as the first M3 virtual dividing surfaces, for example, by three line segments connecting the three vertices of the first reference virtual dividing surface Ss1 to the first reference virtual camera position Ps1. This facilitates the division of the first reference virtual dividing surface Ss1. In this case, the dividing surface generating unit 6122 divides each of the first T3 virtual dividing surfaces St2 into three virtual dividing surfaces St3 by three line segments connecting the three vertices and the first virtual camera position P11, similar to the first reference virtual dividing surface Ss1 shown in Fig. 32. As a result, each of the first T3 virtual dividing surfaces St2 is divided into three triangular virtual dividing surfaces St3 as the first M3 virtual dividing surfaces.
[0218] <<Process 1B>> Process 1B is a process in which the second shape information generation unit 6123 generates reference shape information for each of the first M3×T3 third virtual camera positions based on three-dimensional design information about the target part stored in the memory unit 45b or the like, assuming that the 3D model 3dm of the search target part is photographed from each of the first M3×T3 third virtual camera positions. The first M3×T3 third virtual camera positions are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the first M3×T3 virtual dividing surfaces St3 generated in Process 1A. Here, too, the reference shape information is information generated based on the three-dimensional design information about the search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the virtual camera positions. The virtual image can be generated, for example, by projecting the 3D model 3dm onto a virtual plane through a process such as rendering.
[0219] For each of the first M3×T3 virtual dividing surfaces St3, a third virtual camera position P13 is virtually set at a predetermined position on the virtual dividing surface St3. For example, the center of the virtual dividing surface St3 is used as the predetermined position. For example, the center of gravity of the virtual dividing surface St3 is used as the center of the virtual dividing surface St3. For example, as shown in FIG. 30 or FIG. 32, the third virtual camera position P13 is set on each virtual dividing surface St3. If each of the first M3×T3 virtual dividing surfaces St3 is a triangular surface, the center of the virtual dividing surface St3 may be, for example, the center of gravity or the incenter of the triangle. In FIGS. 30 and 32, the third virtual camera position P13 is indicated by a black circle.
[0220] The second shape information generation unit 6123 generates reference shape information for the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the third virtual camera position P13, for example, for each of the multiple third virtual camera positions P13 shown in FIG. 30 or 32 . At this time, the photographing direction of the virtual camera photographing the 3D model 3dm of the search target part from the third virtual camera position P13 is set to a direction from the third virtual camera position P13 toward the reference point Po of the 3D model 3dm of the search target part. The roll angle γ that defines the attitude of the virtual camera photographing the 3D model 3dm of the search target part from the third virtual camera position P13 is set to, for example, zero (0) degrees. Here, for each third virtual camera position P13, a reference image Iv1 is generated as reference shape information, for example, as schematically shown in FIG. 11 .
[0221] <<First C Processing>> The first C processing is a processing in which the second calculation unit 6124 calculates a numerical value indicating the degree of correspondence between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information for each of the first M3 × T3 third virtual camera positions P13 described above.
[0222] In the first C process, the second calculation unit 6124 calculates a numerical value indicating the degree of match of the two-dimensional shape of the contour between, for example, a reference image as reference shape information generated by the second shape information generation unit 6123 in the first B process and a matching target area Re2 (Figure 26) set in the edge image as actual shape information by the matching target area setting unit 6121.
[0223] In the 1C process, when the second calculation unit 6124 calculates a numerical value indicating the degree of match between an edge image as actual shape information and a reference image as reference shape information for each third virtual camera position P13, it performs, for example, [Process 2a1] a process of detecting the amount of deviation in the orientation of the two-dimensional shape of the contour corresponding to the deviation in roll angle γ between the edge image and the reference image, [Process 2b1] a process of rotating the edge image in accordance with the deviation in roll angle γ, and [Process 2c1] a process of detecting the position of the area where the degree of match between the rotated edge image and the reference image is greatest, in the order described.
[0224] In the process 2a1, similar to the process 2a, the second calculation unit 6124 uses, for example, the RIPOC method to detect the amount of deviation in the orientation of the two-dimensional shape of the contour between an edge image serving as actual shape information and a reference image serving as reference shape information. This amount of deviation in the orientation of the two-dimensional shape of the contour is the amount of deviation in the rotation direction of the contour on the image. Here, the second calculation unit 6124 uses, for example, the RIPOC method to detect a deviation γ21 in the rotation direction that maximizes the degree of contour match between the matching target region Re2 ( FIG. 26 ) set in the edge image serving as actual shape information by the matching target region setting unit 6121 and the reference image serving as reference shape information. This deviation γ21 corresponds to the roll angle γ that maximizes the degree of match between the reference image serving as reference shape information and the edge image serving as actual shape information.
[0225] In the process 2b1, similarly to the process 2b, the second calculation unit 6124 rotates, for example, the edge image serving as the actual shape information so as to correct the deviation amount γ21 detected in the process 2a1. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the edge image serving as the actual shape information and the two-dimensional shapes of the contours in the reference image serving as the reference shape information are aligned. Here, the second calculation unit 6124 rotates, for example, the edge image of the matching target region Re2 so as to correct the deviation amount γ21 detected in the process 2a1. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the matching target region Re2 constituting the actual shape information are aligned with the orientations of the two-dimensional shapes of the contours in the reference image serving as the reference shape information.
[0226] In the process 2c1, similar to the process 2c, the second calculation unit 6124 performs template matching using a reference image as reference shape information, for example, on the rotated edge image related to the actual shape information generated in the process 2b1. Here, the second calculation unit 6124, for example, scans the reference image within the rotated edge image and detects the position of an area where the degree of match (similarity) between each partial area in the rotated edge image and the reference image is greatest. This allows the position of an area in the edge image as actual shape information where the degree of match (candidate matching position) with the two-dimensional shape of the outline of the 3D model 3dm of the search target part in the reference image to be greatest can be detected. Furthermore, when the template matching is performed, a numerical value indicating the degree of match (similarity) when the degree of match (similarity) between the partial area in the rotated edge image and the reference image is greatest is calculated as a numerical value indicating the degree of match between the edge image as actual shape information and the reference image as reference shape information for the third virtual camera position P13. In other words, for each third virtual camera position P13, the degree of match between the reference image and a partial region in the edge image after rotation is maximized, and this degree of match is regarded as the degree of match between the edge image as actual shape information and the reference image as reference shape information. Here, too, the numerical value indicating the degree of match may be, for example, a matching score indicating the degree of match.
[0227] <<1st D Processing>> The 1st D processing is a processing in which the second detection unit 6125 detects the second reference virtual camera position, which is the virtual camera position among the first reference virtual camera position Ps1 and the first M3 × T3 third virtual camera positions P13, that has the greatest degree of match between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information.
[0228] Here, for example, the matching score calculated for the first reference virtual camera position Ps1 is compared with the matching scores calculated for each of the first M3 × T3 third virtual camera positions P13 by the second calculation unit 6124 in the 1C process. Then, for example, of the first reference virtual camera position Ps1 and the first M3 × T3 third virtual camera positions P13, the virtual camera position that has the largest matching score calculated between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information is detected as the second reference virtual camera position.
[0229] <<nth A Processing>> The nth A processing is processing in which the dividing surface generating unit 6122 generates n-th M3 × T3 virtual dividing surfaces. In this processing, the dividing surface generating unit 6122 divides each of the T3 virtual dividing surfaces (also referred to as n-th T3 virtual dividing surfaces) generated by dividing the n-1th T3 virtual dividing surfaces using the same rule. As a result, the dividing surface generating unit 6122 generates M3 virtual dividing surfaces (also referred to as n-th M3 virtual dividing surfaces) for each of the n-th T3 virtual dividing surfaces, thereby generating n-th M3 × T3 virtual dividing surfaces. Here, the n-th T3 virtual dividing surfaces include a virtual dividing surface (also referred to as n-th reference virtual dividing surface) that includes the n-th reference virtual camera position, which is the n-th virtual camera position detected by the second detection unit 6125, and are at mutually different distances from the reference point Po of the 3D model 3dm of the search target part. Furthermore, the nth T3 virtual dividing surfaces are multiple virtual dividing surfaces that intersect with a straight line passing through the reference point Po and the nth reference virtual camera position on the side of the nth reference virtual camera position relative to the reference point Po of the 3D model 3dm of the part to be searched.
[0230] FIG. 33 is an image diagram schematically illustrating an example of the second T3 virtual dividing surfaces St3, which is a specific example of the n-th T3 virtual dividing surfaces St3. In FIG. 33, a direction Dr13 (also referred to as a third direction) from the reference point Po of the 3D model 3dm of the search target part toward the second reference virtual camera position Ps2 is indicated by a thin arrow, and a straight line Ln13 passing through the reference point Po and the second reference virtual camera position Ps2 is drawn by a thin two-dot chain line. In FIG. 33, a line passing through the reference point Po and passing through each of the outer edges of the second T3 virtual dividing surfaces St3 is drawn by a thin dashed line. For convenience, FIG. 33 illustrates three of the second T3 virtual dividing surfaces St3, and the other virtual dividing surfaces St3 are omitted from the illustration. 33, each of the second T3 virtual dividing surfaces St3 intersects with a portion of the straight line Ln13 that is located closer to the second reference virtual camera position Ps2 than the reference point Po. Here, the second T3 virtual dividing surfaces St3 have similar shapes that are enlarged and reduced in radial directions with the reference point Po of the 3D model 3dm of the part to be searched as the center.
[0231] Here, the same rule for dividing the nth T3 virtual dividing surfaces may be a rule for dividing each of the nth T3 virtual dividing surfaces in the same shape when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, the same rule for dividing the nth T3 virtual dividing surfaces may be a rule for dividing each of the nth T3 virtual dividing surfaces with lines having similar shapes that are enlarged and reduced in radial directions from the reference point Po when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, the same rule for dividing the nth T3 virtual dividing surfaces may be a rule for dividing the nth T3 virtual dividing surfaces so that T3 divided virtual surfaces having the same shape are generated for each of the M3 virtual dividing surfaces between the nth T3 virtual dividing surfaces when viewed from the reference point Po of the 3D model 3dm of the part to be searched. The same rule for dividing the n-th T3 virtual dividing surfaces may be, for example, a rule for dividing the dividing surface into a plurality of surfaces by a plurality of line segments connecting the center point of the dividing surface to all of the vertices of the dividing surface, which makes it easy to divide the dividing surface.
[0232] In this n-th A process, the method for generating the n-th M3 × T3 virtual dividing planes differs depending on the virtual camera position (n-th reference virtual camera position) detected n-th by the second detection unit 6125. More specifically, the method for generating the n-th M3 × T3 virtual dividing planes differs depending on whether the n-th reference virtual camera position is any one of the n-1-th M3 × T3 third virtual camera positions (also referred to as the n-th first case) or whether the n-th reference virtual camera position is the n-1-th reference virtual camera position (also referred to as the n-th second case).
[0233] <<<<nth first case>>>> When the second detection unit 6125 detects any one of the above-mentioned n-1th M3×T3 third virtual camera positions as the nth reference virtual camera position, there is a greater degree of correspondence between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information for any one of the above-mentioned n-1th M3×T3 third virtual camera positions than for the n-1th reference virtual camera position.
[0234] For example, the matching score indicating the degree of match between the actual shape information and the reference shape information for one of the n-1th M3 x T3 third virtual camera positions is greater than the matching score indicating the degree of match between the actual shape information and the reference shape information for the n-1th reference virtual camera position.
[0235] Therefore, the dividing surface generator 6122 selects, from among the (n-1)th (M3 x T3) third virtual camera positions, the third virtual camera position that has the greatest degree of agreement between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched for (actual shape information) and the reference shape information as the nth reference virtual camera position that serves as the basis for dividing the next virtual surface, and generates the nth (M3 x T3) virtual dividing surfaces. As a result, for example, in the secondary search process, a virtual camera position that has an even greater degree of agreement between the reference shape information and the actual shape information can be searched for.
[0236] Here, the dividing surface generation unit 6122 divides each of the n-1th M3 × T3 virtual dividing surfaces, including the nth reference virtual dividing surface that is a virtual dividing surface that includes the nth reference virtual camera position among the above-mentioned n-1th M3 × T3 virtual dividing surfaces and that are at different distances from the reference point Po of the 3D model 3dm of the part to be searched, using the same rule. Thus, the dividing surface generation unit 6122 generates the nth M3 × T3 virtual dividing surfaces by generating the nth M3 virtual dividing surfaces that are M3 virtual dividing surfaces for each of the nth T3 virtual dividing surfaces. The nth T3 virtual dividing surfaces are multiple virtual dividing surfaces that intersect with a line passing through the reference point Po and the nth reference virtual camera position on the side of the reference point Po of the 3D model 3dm of the part to be searched that is closer to the nth reference virtual camera position.
[0237] Here, the same rule for dividing the nth T3 virtual dividing surfaces may be, for example, a rule for dividing the dividing surface to be divided into multiple surfaces using multiple line segments connecting the center point of the dividing surface to all of the vertices of the dividing surface, as described above. For example, if each of the nth T3 virtual dividing surfaces is a triangle, each of the nth T3 virtual dividing surfaces may be divided into three virtual dividing surfaces, which are the nth M3 virtual dividing surfaces, using three line segments connecting three vertices of each of the nth T3 virtual dividing surfaces to the (n-1)th third virtual camera position. As a result, each of the nth T3 virtual dividing surfaces can be divided into three triangular virtual dividing surfaces. As a result, the nth M3×T3 virtual dividing surfaces are generated as M3×T3 virtual dividing surfaces.
[0238] Here, for example, it is assumed that the lower third virtual camera position P13 of the three third virtual camera positions P13 in Fig. 30 is detected as the second reference virtual camera position Ps2. In this case, as shown in Fig. 30, the virtual dividing surface St3 that is generated by dividing the virtual dividing surface St2 and that includes the second reference virtual camera position Ps2 becomes the second reference virtual dividing surface Ss2.
[0239] FIG. 34 is a diagram schematically illustrating a specific example in which the second reference virtual dividing surface Ss2 among the second T3 virtual dividing surfaces St3 is divided into multiple virtual dividing surfaces St3a in the second first case. FIG. 34 illustrates a specific example in which each of the second T3 virtual dividing surfaces St3 is a triangular surface. In FIG. 34, the second reference virtual camera position Ps2 is indicated by a white circle. As shown in FIG. 34, the dividing surface generation unit 6122 divides the second reference virtual dividing surface Ss2 into three virtual dividing surfaces St3a as the second M3 virtual dividing surfaces, for example, by three line segments connecting the three vertices of the second reference virtual dividing surface Ss2 to the second reference virtual camera position Ps2. This facilitates the division of the second reference virtual dividing surface Ss2. In this case, the dividing surface generating unit 6122 divides each of the second T3 virtual dividing surfaces St3 into three virtual dividing surfaces St3a by three line segments connecting the three vertices and the third virtual camera position P13, similar to the second reference virtual dividing surface Ss2 shown in Fig. 34. As a result, each of the second T3 virtual dividing surfaces St3 is divided into three triangular virtual dividing surfaces St3a as the second M3 virtual dividing surfaces.
[0240] <<<<nth Second Case>>>> When the second detection unit 6125 detects the n-1th reference virtual camera position as the nth reference virtual camera position, the degree of match between the information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information is greater for the n-1th reference virtual camera position than for any of the n-1th M3 x T3 third virtual camera positions described above.
[0241] In other words, the degree of correspondence between the actual shape information and the reference shape information for all of the n-1th M3 × T3 third virtual camera positions calculated by the second calculation unit 6124 in the n-1th unit processing is smaller than the degree of correspondence between the actual shape information and the reference shape information for the n-1th reference virtual camera position calculated by the first calculation unit 6113 or the second calculation unit 6124.
[0242] Therefore, the division plane generating unit 6122 generates the nth M3 × T3 virtual division planes by using the (n-1)th reference virtual camera position as the nth reference virtual camera position that is the basis for dividing the next virtual division plane. This makes it possible to search for a virtual camera position that further increases the degree of match between the reference shape information and the actual shape information in the secondary search process, for example.
[0243] Here, the dividing surface generation unit 6122 divides each of the nth T3 virtual dividing surfaces, which include a virtual dividing surface (nth reference virtual dividing surface) that includes the nth reference virtual camera position, which is the same as the (n-1)th reference virtual camera position, and which are at different distances from the reference point Po of the 3D model 3dm of the part to be searched, using the same rule. In this way, the dividing surface generation unit 6122 generates M3 nth virtual dividing surfaces, which are M3 virtual dividing surfaces for each of the nth T3 virtual dividing surfaces, thereby generating M3 x T3 nth virtual dividing surfaces. The T3 nth virtual dividing surfaces are multiple virtual dividing surfaces that intersect with a line passing through the reference point Po and the nth reference virtual camera position on the side of the nth reference virtual camera position relative to the reference point Po of the 3D model 3dm of the part to be searched.
[0244] Here, the nth reference virtual dividing plane is set according to a predetermined rule. For example, when the variable n is 2, of the M4 virtual dividing planes generated by dividing the first reference virtual dividing plane Ss1 of the M2 × T2 virtual dividing planes St2, the virtual dividing plane that includes the second reference virtual camera position Ps2, which is the same as the first reference virtual camera position Ps1, is set as the second reference virtual dividing plane Ss2. Here, since each of the M4 virtual dividing planes is a surface generated by dividing the virtual dividing plane St2, it is set as a reset virtual dividing plane St3. For example, if the virtual dividing plane St2 is a triangular surface, a possible predetermined rule for setting the second reference virtual dividing plane Ss2 is to set one virtual dividing plane St3 that includes the second reference virtual camera position Ps2 as the second reference virtual dividing plane Ss2, out of four triangular virtual dividing planes St3 generated by dividing the first reference virtual dividing plane Ss1 by three line segments connecting the midpoints of each side. Here, the midpoint of each side may be, for example, a point slightly shifted from the midpoint of each side.
[0245] Furthermore, for example, if the variable n is 3 or greater, among the M4 virtual dividing surfaces generated by dividing the n-1th reference virtual dividing surface among the n-2th M3 × T3 virtual dividing surfaces, the virtual dividing surface that includes the nth reference virtual camera position, which is the same as the n-1th reference virtual camera position, is set as the nth reference virtual dividing surface. For example, if each of the n-2th M3 × T3 virtual dividing surfaces is a triangular surface, a predetermined rule for setting the nth reference virtual dividing surface could be to divide the n-1th reference virtual dividing surface by three line segments connecting the midpoints of each side to generate four triangular virtual dividing surfaces, and set the virtual dividing surface that includes the nth reference virtual camera position as the nth reference virtual dividing surface. Here, too, the midpoints of each side may be, for example, slightly offset from the midpoints of the respective sides.
[0246] FIG. 35 is a diagram schematically illustrating a specific example in which the second reference virtual dividing plane Ss2 is set in the second second case. FIG. 35 illustrates a specific example in which each of the multiple virtual dividing planes St2 is a triangular plane. In FIG. 35, the second reference virtual camera position Ps2 is indicated by a hollow circle. For example, as shown in FIG. 35, the first reference virtual dividing plane Ss1 is divided by three line segments connecting the midpoints of each side of the first reference virtual dividing plane Ss1, thereby generating four triangular virtual dividing planes St3 (M4). Of these four triangular virtual dividing planes St3, the virtual dividing plane St3 that includes the second reference virtual camera position Ps2 is set as the second reference virtual dividing plane Ss2.
[0247] Here, the second T3 virtual dividing surfaces including the second reference virtual dividing surface Ss2 may be T3 virtual dividing surfaces St3 each including the second virtual camera position P12 among the M4 × T3 virtual dividing surfaces generated by dividing each of the first T3 virtual dividing surfaces St2 using the same rule as the first reference virtual dividing surface Ss1. Here again, each of the M4 virtual dividing surfaces in each of the T3 virtual dividing surfaces St2 is a surface generated by dividing each of the T3 virtual dividing surfaces St2, and therefore may be a reset virtual dividing surface St3.
[0248] Furthermore, the second T3 virtual dividing surfaces St3, including the second reference virtual dividing surface Ss2, are part of the M4 × T3 virtual dividing surfaces St3 and have shapes that are mutually similar and enlarged or reduced in radial directions around the reference point Po of the 3D model 3dm of the part to be searched. The first T3 virtual dividing surfaces St2 have shapes that are mutually similar and enlarged or reduced in radial directions around the reference point Po of the 3D model 3dm of the part to be searched. Dividing each of the first T3 virtual dividing surfaces St2 according to the same rule as the first reference virtual dividing surface Ss1 means that each of the first T3 virtual dividing surfaces St2 is divided according to the same rule. This same rule may be a rule that divides each of the first T3 virtual dividing surfaces St2 in the same shape when viewed from the reference point Po of the 3D model 3dm of the part to be searched. In other words, this same rule may be a rule that, when viewed from the reference point Po of the 3D model 3dm of the part to be searched, divides each of the first T3 virtual dividing surfaces St2 by lines having similar shapes that are enlarged and reduced in radial directions from the reference point Po. In other words, this same rule may be a rule that divides the first T3 virtual dividing surfaces St2 so that, when viewed from the reference point Po of the 3D model 3dm of the part to be searched, T3 divided virtual surfaces of the same shape are generated for each of the M4 virtual dividing surfaces between the first T3 virtual dividing surfaces St2.
[0249] Here, for example, each of the first T3 virtual dividing surfaces St2 may be divided by three line segments connecting the midpoints of each side, similar to the first reference virtual dividing surface Ss1 shown in FIG. 35 . As a result, each of the first T3 virtual dividing surfaces St2 can be divided into four triangular virtual dividing surfaces St3. From another perspective, when viewed from the reference point Po of the 3D model 3dm of the part to be searched, each of the first T3 virtual dividing surfaces St2 is divided by lines having similar shapes that are mutually enlarged and reduced in radial directions centered on the reference point Po, thereby generating 4×T3 virtual dividing surfaces St3. The second T3 virtual dividing surfaces St3, including the second reference virtual dividing surface Ss2, are part of the 4×T3 virtual dividing surfaces St3 and have similar shapes that are mutually enlarged and reduced in radial directions centered on the reference point Po of the 3D model 3dm of the part to be searched.
[0250] Here, the same rule for dividing the nth T3 virtual dividing surfaces may be, for example, as described above, a rule for dividing the surface to be divided into multiple surfaces using multiple line segments connecting the center point of the surface to be divided and all of its vertices. For example, if the variable n is 2, the same rule for dividing the second T3 virtual dividing surfaces St3 may be, for example, as described above, a rule for dividing the surface to be divided into multiple surfaces using multiple line segments connecting the center point of the surface to be divided and all of its vertices. For example, if each of the second T3 virtual dividing surfaces St3 is a triangle, each of the second T3 virtual dividing surfaces St3 can be divided into three M3 virtual dividing surfaces using three line segments connecting a predetermined center position (e.g., the center of gravity) to each of the three vertices. As a result, each of the second T3 virtual dividing surfaces St3 can be divided into three triangular virtual dividing surfaces. As a result, second M3×T3 virtual dividing surfaces are generated as M3×T3 virtual dividing surfaces.
[0251] FIG. 36 is a diagram schematically illustrating a specific example in which the second reference virtual dividing surface Ss2 among the second T3 virtual dividing surfaces St3 is divided into multiple virtual dividing surfaces St3a in the second second case. FIG. 36 illustrates a specific example in which each of the second T3 virtual dividing surfaces St3 is a triangular surface. In FIG. 36, the second reference virtual camera position Ps2 is indicated by a hollow circle. As shown in FIG. 36, the dividing surface generation unit 6122 divides the second reference virtual dividing surface Ss2 into three virtual dividing surfaces St3a as the second M3 virtual dividing surfaces, for example, by three line segments connecting the three vertices of the second reference virtual dividing surface Ss2 to the second reference virtual camera position Ps2. This facilitates the division of the second reference virtual dividing surface Ss2. In this case, the dividing surface generating unit 6122 divides each of the second T3 virtual dividing surfaces St3 into three virtual dividing surfaces St3a by three line segments connecting the three vertices and the second reference virtual camera position Ps2, similar to the second reference virtual dividing surface Ss2 shown in Fig. 36. As a result, each of the second T3 virtual dividing surfaces St3 is divided into three triangular virtual dividing surfaces St3a as the second M3 virtual dividing surfaces.
[0252] <<nth B Process>> The nth B process is a process in which the second shape information generation unit 6123 generates reference shape information for each of the nth M3×T3 third virtual camera positions based on three-dimensional design information about the search target part stored in the memory unit 45b or the like, assuming that the 3D model 3dm of the search target part is photographed from each of the nth M3×T3 third virtual camera positions. The nth M3×T3 third virtual camera positions are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the nth M3×T3 virtual dividing planes generated in the nth A process. Here, too, the reference shape information is information generated based on the three-dimensional design information about the search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the virtual camera position. The virtual image can be generated, for example, by projecting the 3D model 3dm onto a virtual plane using a process such as rendering.
[0253] For each of the nth M3 × T3 virtual dividing surfaces, a third virtual camera position (the nth third virtual camera position) is virtually set at a predetermined position on the virtual dividing surface. For example, the center of the virtual dividing surface is used as the predetermined position. For example, the center of gravity of the virtual dividing surface is used as the center of the virtual dividing surface. For example, when the variable n is 2, as shown in FIG. 34 or 36, a third virtual camera position P13a is set on each virtual dividing surface St3a. If each of the nth M3 × T3 virtual dividing surfaces is a triangular surface, the center of the virtual dividing surface may be, for example, the center of gravity or the incenter of the triangle. In FIG. 34 and FIG. 36, the third virtual camera position P13a is indicated by a black circle.
[0254] The second shape information generation unit 6123 generates reference shape information for the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the third virtual camera position, for example, for each of the nth M3 × T3 third virtual camera positions. At this time, the photographing direction of the virtual camera photographing the 3D model 3dm of the search target part from each third virtual camera position is set to a direction from the third virtual camera position toward the reference point Po of the 3D model 3dm of the search target part. The roll angle γ, which defines the attitude of the virtual camera photographing the 3D model 3dm of the search target part from the third virtual camera position, is set to, for example, zero (0) degrees. Again, for each third virtual camera position, a reference image Iv1 is generated as reference shape information, for example, as shown schematically in FIG. 11 .
[0255] <<nth C Processing>> The nth C processing is a process in which the second calculation unit 6124 calculates a numerical value indicating the degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information for each of the nth M3 × T3 third virtual camera positions.
[0256] In the nC process, the second calculation unit 6124 calculates a numerical value indicating the degree of match of the two-dimensional shape of the contour between, for example, the reference image as reference shape information acquired by the second shape information generation unit 6123 in the nB process and the matching target area Re2 (Figure 26) set in the edge image as actual shape information by the matching target area setting unit 6121.
[0257] In the nC process, when the second calculation unit 6124 calculates a numerical value indicating the degree of match between an edge image as actual shape information and a reference image as reference shape information for each third virtual camera position, it performs, for example, [Process 2an] a process of detecting the amount of deviation in the orientation of the two-dimensional shape of the contour corresponding to the deviation in roll angle γ between the edge image and the reference image, [Process 2bn] a process of rotating the edge image in accordance with the deviation in roll angle γ, and [Process 2cn] a process of detecting the position of the area where the degree of match between the rotated edge image and the reference image is greatest, in the order described above.
[0258] In the process 2an, similar to the process 2a1, the second calculation unit 6124 uses, for example, the RIPOC method to detect the amount of deviation in the orientation of the two-dimensional shape of the contour between an edge image serving as actual shape information and a reference image serving as reference shape information. This amount of deviation in the orientation of the two-dimensional shape of the contour is the amount of deviation in the rotation direction of the contour on the image. Here, the second calculation unit 6124 uses, for example, the RIPOC method to calculate a deviation γ2n in the rotation direction that can maximize the degree of contour match between the matching target region Re2 ( FIG. 26 ) set in the edge image serving as actual shape information by the matching target region setting unit 6121 and the reference image serving as reference shape information. This deviation γ2n corresponds to the roll angle γ that can maximize the degree of match between the reference image serving as reference shape information and the edge image serving as actual shape information.
[0259] In process 2bn, similar to process 2b1, the second calculation unit 6124 rotates, for example, the edge image serving as actual shape information so as to correct the deviation amount γ2n detected in process 2an. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the edge image serving as actual shape information and the two-dimensional shapes of the contours in the reference image serving as reference shape information are aligned. Here, the second calculation unit 6124 rotates, for example, the edge image of the matching target region Re2 so as to correct the deviation amount γ2n detected in process 2an. This generates a rotated edge image, and the orientations of the two-dimensional shapes of the contours in the matching target region Re2 constituting the actual shape information are aligned with the two-dimensional shapes of the contours in the reference image serving as reference shape information.
[0260] In process 2cn, similar to process 2c1, the second calculation unit 6124 performs template matching using a reference image as reference shape information, for example, on the rotated edge image related to the actual shape information generated in process 2bn. Here, the second calculation unit 6124, for example, scans the reference image within the rotated edge image and detects the position of an area where the degree of match (similarity) between each partial area in the rotated edge image and the reference image is greatest. This allows the position of an area in the edge image as actual shape information where the degree of match (candidate matching position) with the two-dimensional shape of the outline of the 3D model 3dm of the search target part in the reference image to be greatest can be detected. Furthermore, when the template matching is performed, a numerical value indicating the degree of match (similarity) when the degree of match (similarity) between the partial area in the rotated edge image and the reference image is greatest is calculated as a numerical value indicating the degree of match between the edge image as actual shape information and the reference image as reference shape information for the third virtual camera position. In other words, for each third virtual camera position, the degree of match between the reference image and a partial region in the edge image after rotation is maximized, and this degree of match is regarded as the degree of match between the edge image as actual shape information and the reference image as reference shape information. Here, too, the numerical value indicating the degree of match may be, for example, a matching score indicating the degree of match.
[0261] <<nth D processing>> The nth D processing is a process in which the second detection unit 6125 detects the virtual camera position among the nth reference virtual camera position and the nth M3 × T3 third virtual camera positions that has the greatest degree of match between information about the two-dimensional shape of the object captured in the actual image capturing the part to be searched (actual shape information) and the reference shape information.
[0262] Here, for example, the matching score calculated for the nth reference virtual camera position is compared with the matching scores calculated for each of the nth M3 × T3 third virtual camera positions by the second calculation unit 6124 in the nC process. Then, for example, from among the nth reference virtual camera position and the nth M3 × T3 third virtual camera positions, the virtual camera position that has the largest matching score calculated between information about the two-dimensional shape of an object captured in an actual image capturing the part to be searched (actual shape information) and the reference shape information is detected.
[0263] <<Effects of Repeated Unit Processing>> As described above, when a unit processing is repeatedly executed, multiple virtual dividing surfaces, including the virtual dividing surface containing the virtual camera position where the degree of match between the actual shape information and the reference shape information is greatest and which are at different distances from the reference point Po of the 3D model 3dm of the search target component, are divided according to the same rule to generate multiple virtual dividing surfaces on which the next virtual camera position is set. This reduces the increase in the number and / or area of the virtual dividing surfaces after division, rather than the virtual dividing surfaces before and after division being unrelated. As a result, the amount of calculation required to recognize the orientation of the search target component captured in the actual image can be reduced. Therefore, the orientation of the search target component can be recognized efficiently in the substrate processing apparatus 1.
[0264] <<End of One or More n-th Unit Processes>> The search processing unit 61 ends one or more n-th unit process runs in response to, for example, the second detection unit 6125 detecting one of the reference virtual camera positions from the first reference virtual camera position Ps1 to the n-th reference virtual camera position a predetermined number of times (also referred to as the first predetermined number of times). The first predetermined number of times may be set to any number of times, for example, two or more. In this case, if a virtual camera position at which the degree of match between the reference shape information and the actual shape information is greater is not detected even after the unit process is repeated a certain number of times in the secondary search process, the repeated execution of the unit process is ended. This reduces the amount of calculation required to recognize the orientation of the search target component captured in the actual image. Therefore, the orientation of the search target component can be recognized efficiently in the substrate processing apparatus 1.
[0265] Furthermore, for example, the search processing unit 61 may terminate execution of one or more n-th unit processes in response to execution of the n-th unit process a predetermined number of times (also referred to as a second predetermined number of times). In other words, the search processing unit 61 may terminate execution of one or more n-th unit processes in response to execution of the n-th unit process in one or more n-th unit processes a predetermined second predetermined number of times. The second predetermined number of times may be set to, for example, any number greater than or equal to one. This reduces the amount of calculation required to recognize the orientation of the search target component captured in the actual image. Therefore, the orientation of the search target component can be recognized efficiently in the substrate processing apparatus 1.
[0266] Here, the search processing unit 61 detects, as the maximum-match virtual camera position, the virtual camera position with the highest degree of match between the actual shape information and the reference shape information detected by the second detection unit 6125 in the last n-th D process of one or more executed n-th unit processes. In other words, the virtual camera position detected by the second detection unit 6125 in the last n-th D process of one or more executed n-th unit processes is the maximum-match virtual camera position. The search processing unit 61 can then acquire, as results of the search process, the latitude α, longitude β, and distance D that define this maximum-match virtual camera position, as well as the roll angle γ corresponding to the deviation amount (deviation amount γ1, deviation amount γ2, deviation amount γ21, or deviation amount γ2n) calculated by the first calculation unit 6113 or the second calculation unit 6124 for this maximum-match virtual camera position. This allows the orientation of the search target part captured in the actual image to be recognized.
[0267] In addition, the search processing unit 61 may acquire, for example, for the maximum matching virtual camera position, as part of the results of the search processing, a matching candidate position (also called a final matching position) that has the highest degree of matching (similarity) with the reference image as reference shape information within the edge image as actual shape information, detected by the first calculation unit 6113 or the second calculation unit 6124.
[0268] 4. Specific Examples of Processing in Substrate Processing Apparatus> Next, specific examples of processing in the substrate processing apparatus 1 will be described with reference to FIGS. 37 to 47 . FIG. 37 is a flowchart showing a specific example of a schematic flow of operations related to processing one or more substrates W in the substrate processing apparatus 1. FIG. 38 is a flowchart showing a specific example of a schematic flow of operations related to processing for detecting an abnormality in the substrate processing apparatus 1. FIG. 39 is a flowchart showing a specific example of the flow of image processing in step S14 of FIG. 38 . FIG. 40 is a flowchart showing a specific example of the flow of search processing in step S15 of FIG. 38 . FIG. 41 is a flowchart showing a specific example of the flow of primary search processing in step Sb1 of FIG. 40 . FIGS. 42 to 44 are flowcharts showing a specific example of the flow of secondary search processing in step Sb2 of FIG. 40 . FIG. 45 is a diagram schematically showing an example of a state in which a target component is located at an initial position. Here, the initial position of the chuck 9 as the target part is the open position, the initial position of the guard 23 as the target part is the lowered position, and the initial position of the nozzle 33 as the target part is the standby position. Fig. 46 is a diagram schematically showing an example of a state in which each chuck 9 is in the closed position. Fig. 47 is a diagram schematically showing an example of a state in which the nozzle 33 is in the discharge position and the guard 23 is in the raised position.
[0269] For example, in the substrate processing apparatus 1, when an operator operates the instructing unit 47 to instruct execution of a recipe in the recipe information 53, the operation control unit 51 controls the operation of each unit of the substrate processing apparatus 1 in accordance with the recipe instructed to be executed. This allows processing of each substrate W in the substrate processing apparatus 1 to proceed. At this time, the operations of steps S1 to S7 in Fig. 37 relating to the processing of one or more substrates W in the substrate processing apparatus 1 are performed. Furthermore, when the operations of steps S1 to S7 in Fig. 37 relating to the processing of one or more substrates W are performed, the operations of steps S11 to S20 in Fig. 38 relating to the processing of an abnormality in the substrate processing apparatus 1 are performed in parallel with the operations of steps S1 to S7.
[0270] <4-1. Operations Related to Substrate Processing in the Substrate Processing Apparatus> <<Step S1>> In step S1, each target component moves to its initial position. Here, the operation control unit 51 controls the operations of the chuck moving mechanism 17, the guard moving mechanism 25, and the nozzle moving mechanism 35.
[0271] The operation control unit 51 controls the operation of the chuck moving mechanism 17 using, for example, a chuck operation command to move the chuck 9, which is the target component, to an open position, which is its initial position. Here, in response to the chuck operation command, the chuck 9 rotates around the rotation center PL2 with no substrate W placed on the lower support 11, and the peripheral support 13 moves in a direction away from the rotation center PL1 of the spin chuck 3, thereby moving the chuck 9 to the open position. At this time, the output signal of the first sensor Z1 is turned on. The operation control unit 51 recognizes that the chuck 9 has moved to the open position based on the output signal of the first sensor Z1. In FIG. 45 , the state in which the chuck 9 is located at the open position is indicated by a solid line, and the position of the outer edge of the substrate W when placed on the lower support 11 is indicated by a thin two-dot chain line. Here, the peripheral support 13 of each chuck 9 moves to a position farther from the rotation center PL1 than the outer edge of the substrate W when placed on the lower support 11.
[0272] The operation control unit 51 controls the operation of the guard moving mechanism 25 using, for example, a guard operation command, thereby moving the guard 23, which is the target part, to a lowered position, which is the initial position. Here, the guard 23 moves to the lowered position. At this time, the output of the second sensor Z2 is turned on. The operation control unit 51 recognizes that the guard 23 has moved to the lowered position based on the output signal of the second sensor Z2. In Figure 45, the state in which the guard 23 is in the lowered position is shown by a solid line, and the state in which the guard 23 is in the raised position is schematically shown by a thin, two-dot chain line.
[0273] The operation control unit 51 controls the operation of the nozzle movement mechanism 35 using, for example, a nozzle operation command, thereby moving the nozzle 33, which is the target component, to a standby position, which is the initial position. Here, the nozzle 33 rotates around the rotation center PL3 and moves to the standby position, which is laterally spaced from the guard 23. At this time, the output of the third sensor Z3 is turned on. The operation control unit 51 recognizes that the nozzle 33 has moved to the standby position based on the output signal of the third sensor Z3. In Figure 45, the state in which the nozzle 33 is located at the standby position is indicated by a solid line, and the state in which the nozzle 33 is located at the discharge position is indicated by a thin two-dot chain line.
[0274] Here, when the processes of steps S1 to S7 are started, if each target part is already positioned at its initial position, the process of step S1 may be omitted.
[0275] <<Step S2>> In step S2, the substrate W to be processed is carried into the substrate processing apparatus 1. The substrate W is carried into the substrate processing apparatus 1 by, for example, a transport robot (not shown).
[0276] <<Step S3>> In step S3, the substrate W is processed according to the recipe. Specifically, first, the substrate W is placed on the plurality of chucks 9. The operation control unit 51, for example, operates the chuck moving mechanism 17 in response to a chuck operation command, thereby moving each chuck 9 from the open position to the closed position. This state is, for example, as shown in FIG. 46 . That is, with the substrate W placed on each chuck 9, the chuck 9 rotates about the rotation center PL2, and the peripheral support portion 13 moves toward the rotation center PL1 of the spin chuck 3. As a result, the peripheral support portions 13 of the plurality of chucks 9 each come into contact with the outer edge of the substrate W, thereby clamping the substrate W.
[0277] <<Step S4>> In step S4, the operation control unit 51 determines whether or not the processing of the substrate W has been completed. If the processing of the substrate W has been completed, the process proceeds from step S4 to step S5. On the other hand, if the processing of the substrate W has not been completed, the process returns from step S4 to step S3. For example, if the substrate W is simply placed on a plurality of chucks 9 and clamped by the plurality of chucks 9, the processing of the substrate W has not been completed, and the process returns from step S4 to step S3.
[0278] <<Step S3>> In step S3, processing of the substrate W proceeds in accordance with the recipe. Specifically, for example, the operation control unit 51 operates the guard moving mechanism 25 in response to a guard operation command, thereby moving the guard 23, which is in the lowered position as shown in Fig. 45, to the raised position as shown in Fig. 47. At this point, the nozzle 33, which is located above the substrate W in Fig. 47, is in the standby position.
[0279] <<Step S4>> In step S4, the operation control unit 51 determines whether or not the processing of the substrate W has been completed. If the processing of the substrate W has been completed, the process proceeds from step S4 to step S5. On the other hand, if the processing of the substrate W has not been completed, the process returns from step S4 to step S3. For example, if the substrate W is clamped by the multiple chucks 9 and the guard 23 has only moved to the raised position, the processing of the substrate W has not been completed, and the process returns from step S4 to step S3.
[0280] <<Step S3>> In step S3, processing of the substrate W proceeds in accordance with the recipe. Specifically, for example, the operation control unit 51 operates the nozzle moving mechanism 35 in response to a nozzle operation command, thereby moving nozzle 33B of the nozzles 33A and 33B from the standby position shown in Fig. 45 to the discharge position shown in Fig. 47. The discharge position is, for example, a position on the rotation center PL1.
[0281] <<Step S4>> In step S4, the operation control unit 51 determines whether or not the processing of the substrate W has been completed. If the processing of the substrate W has been completed, the process proceeds from step S4 to step S5. On the other hand, if the processing of the substrate W has not been completed, the process returns from step S4 to step S3. For example, if the substrate W is simply clamped between the multiple chucks 9, the guard 23 has moved to the raised position, and the nozzle 33B has moved to the discharge position, the processing of the substrate W has not been completed, and the process returns from step S4 to step S3.
[0282] <<Steps S3, S4>> After this, the process of step S3 and the process of step S4 are repeated. At this time, in step S3, the operation control unit 51 controls the operation of each unit in the substrate processing apparatus 1 in accordance with the recipe instructed to be executed, thereby processing the substrate W. Specifically, for example, the motor 7 is driven in accordance with the recipe to rotate the spin chuck 3, and the nozzle 33B is supplied with a processing liquid onto the substrate W, thereby processing the substrate W through the operation of each unit in accordance with the recipe instructed to be executed. Then, when the processing of the substrate W is completed, the process proceeds from step S4 to step S5.
[0283] <<Step S5>> In step S5, similarly to step S1, each target part is moved to its initial position. Here, the operation control unit 51 controls the operations of the chuck moving mechanism 17, the guard moving mechanism 25, and the nozzle moving mechanism 35.
[0284] <<Step S6>> In step S6, the substrates W placed on the plurality of chucks 9 are unloaded to the outside of the substrate processing apparatus 1. The substrates W are unloaded to the outside of the substrate processing apparatus 1 by, for example, a transport robot (not shown).
[0285] <<Step S7>> In step S7, the operation control unit 51 determines whether or not there is a next substrate W to be processed according to the recipe that has been instructed to be executed. If there is a next substrate W, the process returns from step S7 to step S2. Therefore, as long as there is a next substrate W to be processed, the processes from step S2 to step S7 are repeated. Then, if there is no next substrate W to be processed in step S7, the operation related to the processing of one or more substrates W in the substrate processing apparatus 1 shown in FIG. 37 is terminated.
[0286] <4-2. Operations Related to Processing for Detecting Abnormality in Substrate Processing Apparatus> <<Step S11>> In step S11, setting range information 58 is stored in storage unit 45b. Here, for example, an operator operates instruction unit 47, thereby storing setting range information 58 in storage unit 45b. Setting range information 58 may be stored in advance in storage unit 45b, for example. In this case, step S11 may be omitted. The processing for storing setting range information 58 in storage unit 45b corresponds to the storing step of the present invention.
[0287] <<Step S12>> In step S12, the operation control unit 51 checks whether the target part is at a check-requiring time. Specifically, the operation control unit 51 references the target part and its check-requiring time in the parameter information 55. If the target part is at a check-requiring time, the process proceeds from step S12 to step S13, and if the target part is not at a check-requiring time, the process proceeds from step S12 to step S20.
[0288] More specifically, in step S12, for example, if the timing is such that the chuck 9 as the target part is positioned in the open position, which is position 1A, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the chuck 9 as the search target part, which is the target part at the confirmation timing, and information indicating the open position, which is the position that the chuck 9 should be at the confirmation timing. Then, the processes of steps S13 to S17 are performed for the chuck 9 at the confirmation timing.
[0289] Furthermore, in step S12, for example, if the timing is such that the guard 23 as the target part is positioned in the lowered position, which is position 1B, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the guard 23 as the search target part, which is the target part at the confirmation timing, and information indicating the lowered position, which is the position where the guard 23 should be at the confirmation timing. Then, the processes from step S13 to step S17 are performed for the guard 23 at the confirmation timing.
[0290] Furthermore, in step S12, for example, if the timing is such that the nozzle 33 serving as the target component is positioned at the standby position, which is position 1C, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the nozzle 33 serving as the search target component, which is the target component that is in the confirmation timing, and information indicating the standby position, which is the position that the nozzle 33 should be in at the confirmation timing. Then, the processes of steps S13 to S17 are performed for the nozzle 33 that is in the confirmation timing.
[0291] Furthermore, in step S12, for example, if the timing is such that the chuck 9 as the target part is positioned at the closed position, which is the second A position, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the chuck 9 as the search target part, which is the target part at the confirmation timing, and information indicating the closed position, which is the position that the chuck 9 should be at the confirmation timing. Then, the processes from step S13 to step S17 are performed for the chuck 9 at the confirmation timing.
[0292] Furthermore, in step S12, for example, if the timing is such that the guard 23 as the target part is positioned in the raised position, which is the second B position, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the guard 23 as the search target part, which is the target part at the confirmation timing, and information indicating the raised position, which is the position that the guard 23 should be at the confirmation timing. Then, the processes from step S13 to step S17 are performed for the guard 23 at the confirmation timing.
[0293] Furthermore, in step S12, for example, if the timing is such that the nozzle 33 serving as the target component is positioned at the discharge position, which is position 2C, the process proceeds from step S12 to step S13. In this case, the operation control unit 51 notifies the search processing unit 61 of information identifying the nozzle 33 serving as the search target component, which is the target component that is in the confirmation-required timing, and information indicating the discharge position that this nozzle 33 should be in at the confirmation-required timing. Then, the processes of steps S13 to S17 are performed for the nozzle 33 that is in the confirmation-required timing.
[0294] <<Step S13>> In step S13, the operation control unit 51 causes the camera CM to take an image. Here, an actual image capturing a search target part, which is any one of the one or more target parts, is obtained by the image capture by the camera CM. This step S13 corresponds to the image capture step of the present invention.
[0295] More specifically, in step S13, for example, if the timing is such that the chuck 9 serving as the target part is positioned at the open position, which is position 1A, the operation control unit 51 operates the camera CM in accordance with the timing at which it is estimated that each chuck 9 has been moved to the open position by the chuck operation command. As a result, the camera CM acquires an actual image including each chuck 9 by photographing.
[0296] In step S13, for example, if the guard 23 as the target part is at the lowered position, which is the first B position, the operation control unit 51 operates the camera CM at the timing when it is estimated that the guard 23 has been moved to the lowered position by the guard operation command. As a result, the camera CM captures an actual image including the guard 23.
[0297] In step S13, for example, if the nozzle 33 as the target component is at the standby position, which is position 1C, the operation control unit 51 operates the camera CM at the timing when it is estimated that the nozzle 33 has been moved to the standby position by the nozzle operation command. As a result, the camera CM captures an actual image including the nozzle 33 by photographing.
[0298] In step S13, for example, if the timing is such that the chuck 9 serving as the target part is positioned at the closed position, which is the second A position, the operation control unit 51 operates the camera CM in accordance with the timing at which it is estimated that each chuck 9 has been moved to the closed position by the chuck operation command. As a result, the camera CM acquires an actual image including each chuck 9 by photographing.
[0299] In step S13, for example, if the guard 23 as the target part is at the raised position, which is the second B position, the operation control unit 51 operates the camera CM at the timing when it is estimated that the guard 23 has been moved to the raised position by the guard operation command. As a result, the camera CM captures an actual image including the guard 23.
[0300] In step S13, for example, if the nozzle 33 as the target component is at the discharge position, which is position 2C, the operation control unit 51 operates the camera CM at the timing when it is estimated that the nozzle 33 has been moved to the discharge position by the nozzle operation command. As a result, the camera CM captures an actual image including the nozzle 33 by photographing.
[0301] <<Step S14>> In step S14, the image processing unit 59 performs image processing on the actual image acquired by the camera CM in step S 13. In this step S14, the processes of steps Sa1 to Sa4 in Fig. 39 are performed in order.
[0302] In step Sa1, the image processing unit 59 acquires from the camera CM an actual image capturing the search target part obtained by photographing in step S13.
[0303] In step Sa2, the processing target area extracting section 591 of the image processing section 59 sets a processing target area for the actual image capturing the search target parts. Here, a processing target area is set for each search target part.
[0304] In step Sa3, the processing target area extracting section 591 of the image processing section 59 extracts a portion relating to the processing target area from the actual image capturing the search target part as an image (actual processing target image).
[0305] In step Sa4, the contour extraction unit 592 of the image processing unit 59 extracts contours of all parts captured in the actual image to be processed, thereby obtaining an edge image as information (actual shape information) about the two-dimensional shape of the object captured in the actual image capturing the search target part.
[0306] Here, for example, if the part to be searched is the chuck 9, an edge image is acquired as information (actual shape information) about the two-dimensional shape of an object including the chuck 9 captured in an actual image capturing the chuck 9. For example, if the part to be searched is the guard 23, an edge image is acquired as information (actual shape information) about the two-dimensional shape of an object including the guard 23 captured in an actual image capturing the guard 23. For example, if the part to be searched is the nozzle 33, an edge image is acquired as information (actual shape information) about the two-dimensional shape of an object including the nozzle 33 captured in an actual image capturing the nozzle 33.
[0307] <<Step S15>> In step S15, the search processing unit 61 performs a search process on the search target component. For example, if the search target component is the chuck 9, the search processing unit 61 performs a search process on the chuck 9. For example, if the search target component is the guard 23, the search processing unit 61 performs a search process on the guard 23. For example, if the search target component is the nozzle 33, the search processing unit 61 performs a search process on the nozzle 33.
[0308] Here, the search processing unit 61 performs a search process based on multiple pieces of reference shape information and actual shape information to search for a maximum-match virtual camera position, which is the virtual camera position with the greatest match between the reference shape information and the actual shape information, among multiple virtual camera positions. Here, the multiple pieces of reference shape information are each generated based on three-dimensional design information related to the search target part stored in the memory unit 45b or the like. More specifically, the multiple pieces of reference shape information are information about the two-dimensional shape of the 3D model 3dm of the search target part in each of multiple virtual images that can be acquired by photographing the 3D model 3dm of the search target part from multiple virtual camera positions. For example, one piece of reference shape information is information generated based on three-dimensional design information related to one search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from one virtual camera position. The actual shape information is information about the two-dimensional shape of the object in the actual image capturing the search target part obtained in step S13. More specifically, the actual shape information may be an edge image obtained in step Sa4. Step S15 corresponds to the searching step of the present invention in which the calculation unit 45a executes the searching process.
[0309] In step S15, the processing of step Sb1 and the processing of step Sb2 in FIG. 40 are performed sequentially for each target part. In step Sb1, the first search processing unit 611 performs a primary search processing. More specifically, in step Sb1, the processing of steps Sb11 to Sb14 in FIG. 41 is performed sequentially. In step Sb2, the second search processing unit 612 performs a secondary search processing. More specifically, in step Sb2, the processing of steps Sb21 to Sb25 in FIG. 42, the processing of steps Sb31 to Sb34 in FIG. 43, and the processing of steps Sb41 to Sb48 in FIG. 44 are performed. Here, the processing of steps Sb31 to Sb34 in FIG. 43 corresponds to the first unit processing described above. The processing of steps Sb42 to Sb45 in FIG. 44 corresponds to the nth unit processing described above.
[0310] <<<Step Sb1>>> <<<<Step Sb11>>>> In step Sb11, the density determination unit 6111 determines areas of low density of component contours (low-density areas) in the edge image as actual shape information acquired in step Sa4. The determination result by the density determination unit 6111 is used in the processing by the first calculation unit 6113 and the second calculation unit 6124. For example, in the processing by the first calculation unit 6113 and the second calculation unit 6124, the low-density areas in the edge image as actual shape information are excluded from the calculation for calculating the numerical value indicating the degree of match, which can reduce the amount of calculation required for the search processing.
[0311] <<<<<Step Sb12>>>> In step Sb12, the first shape information acquisition unit 6112 acquires reference shape information generated for each of a plurality of first virtual camera positions P11, assuming a case in which the 3D model 3dm of the search target part is photographed from each of the plurality of first virtual camera positions P11, based on the three-dimensional design information and set range information 58 related to the search target part stored in the memory unit 45b or the like. The plurality of first virtual camera positions P11 are located along a plurality of imaginary spherical surfaces Sv1 that surround the 3D model 3dm of the search target part and are centered on the reference point Po of the 3D model 3dm of the search target part, and correspond to at least one of the one or more initial setting ranges for the search target part defined in the set range information 58. The reference shape information is information generated based on the three-dimensional design information related to the search target part, and is information about the two-dimensional shape of the 3D model 3dm of the search target part in a virtual image that can be acquired by photographing the 3D model 3dm of the search target part from the virtual camera positions. Specifically, the reference shape information is a reference image. Step Sb12 corresponds to the first shape information acquisition step of the present invention. Here, when the range of the position and orientation of the search target component is limited, the range in which the multiple first virtual camera positions P11 are set is limited, thereby reducing the amount of calculation in the search process. This reduces the amount of calculation required to recognize the orientation of the search target component captured in the actual image. As a result, the orientation of the search target component can be recognized efficiently in the substrate processing apparatus 1.
[0312] Here, for example, assume that one or more initial setting ranges for the search target part defined in the setting range information 58 include the first initial setting range for the first position, and that the search target part is positioned at the first position by the moving mechanism. At this timing, the search processing unit 61, for example, can acquire reference shape information generated for each of the multiple first virtual camera positions P11 corresponding to the first initial setting range, based on the three-dimensional design information for the search target part stored in the memory unit 45b or the like and the setting range information 58, assuming that the 3D model 3dm of the search target part is photographed from each of the multiple first virtual camera positions P11 corresponding to the first initial setting range. As a result, for example, when the search target part moves between the first and second positions, the range in which the multiple first virtual camera positions P11 are set can be limited to the first position, which has a more limited range in the range in which the orientation of the search target part changes. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced. Here, the first initial setting range corresponds to at least one of the one or more initial setting ranges for the search target part described above. In other words, at least one of the one or more initial setting ranges for the search target part described above is the first initial setting range. The multiple virtual camera positions corresponding to the first initial setting range for the search target part may be multiple virtual camera positions that are virtually set within the first initial setting range for the search target part.
[0313] For example, if the part to be searched is the first chuck and the timing is such that the first chuck is positioned in an open position, which is the first position, the first A position, by the chuck moving mechanism 17, the first initial setting range may be the first A initial setting range for the open position of the first chuck.
[0314] For example, if the part to be searched is guard 23 and the guard 23 is positioned in a lowered position, which is the first position, 1B position, by the guard moving mechanism 25, the first initial setting range may be the 1B initial setting range for the lowered position of the guard 23.
[0315] For example, if the part to be searched is nozzle 33 and the nozzle 33 is positioned at a standby position, which is the first position, the first C position, by the nozzle moving mechanism 35, the first initial setting range may be the first C initial setting range for the standby position of nozzle 33.
[0316] Here, for example, assume that one or more initial setting ranges for the search target part defined in the setting range information 58 include the second initial setting range for the second position, and that the search target part is positioned at the second position by the moving mechanism. At this timing, the search processing unit 61, for example, can acquire reference shape information generated for each of the multiple first virtual camera positions P11 corresponding to the second initial setting range, based on the three-dimensional design information for the search target part stored in the memory unit 45b or the like and the setting range information 58, assuming that the 3D model 3dm of the search target part is photographed from each of the multiple first virtual camera positions P11 corresponding to the second initial setting range. As a result, for example, when the search target part moves between the first position and the second position, the range in which the multiple first virtual camera positions P11 are set can be limited to the second position, which has a more limited range in the range in which the orientation of the search target part changes. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced. Here, the second initial setting range corresponds to at least one of the one or more initial setting ranges for the search target part described above. In other words, at least one of the one or more initial setting ranges for the search target part described above is the second initial setting range. The multiple virtual camera positions corresponding to the second initial setting range for the search target part may be multiple virtual camera positions that are virtually set within the second initial setting range for the search target part.
[0317] For example, if the part to be searched is the first chuck and the timing is such that the first chuck is positioned at a closed position, which is the second position, the second A position, by the chuck moving mechanism 17, the second initial setting range may be the second A initial setting range for the closed position of the first chuck.
[0318] For example, if the part to be searched is guard 23 and the guard 23 is positioned at an elevated position, which is the second position, the second B position, by the guard moving mechanism 25, the second initial setting range may be the second B initial setting range for the elevated position of the guard 23.
[0319] For example, if the part to be searched is nozzle 33 and the nozzle 33 is positioned at a discharge position, which is the second position, the second C position, by the nozzle moving mechanism 35, the second initial setting range may be the second C initial setting range for the discharge position of nozzle 33.
[0320] 4, for example, if one or more initial setting ranges for the search target part each include a first numerical range representing a distance range, a second numerical range representing a latitude range, and a third numerical range representing a longitude range, the ranges for setting the multiple first virtual camera positions P11 can be limited when the ranges in which the angular relationship and distance between the camera CM and the search target part change are limited. This can reduce the amount of calculation required for the search process. As a result, the amount of calculation required for recognizing the orientation of the search target part captured in the actual image can be reduced.
[0321] 4, if the setting range information 58 includes information specifying one or more initial setting ranges for the virtual camera position for each target part, the range in which the multiple first virtual camera positions P11 are set can be limited for each search target part that is a target part that is in the confirmation timing. This can reduce the amount of calculation in the search process. As a result, the amount of calculation required to recognize the orientation of the search target part captured in the actual image can be reduced.
[0322] More specifically, in step Sb12, the first shape information acquisition unit 6112 acquires reference shape information generated for each of M1×T1 first virtual camera positions P11 (where M1 and T1 are both natural numbers greater than or equal to 2) based on the three-dimensional design information and setting range information 58 related to the search target part stored in the storage unit 45 b, etc., assuming a case in which the 3D model 3dm of the search target part is photographed from each of the M1×T1 first virtual camera positions P11. The M1×T1 first virtual camera positions P11 are multiple virtual camera positions that are set by virtually setting T1 surface aggregates As1 at mutually different distances from the reference point Po of the 3D model 3dm of the search target part, and virtually setting one virtual camera position for each of M1 virtual surfaces St1 in each of the T1 surface aggregates As1. The T1 surface aggregates As1 each include a plurality of virtual surfaces St1 located along a virtual spherical surface Sv1 that surrounds the 3D model 3dm of the part to be searched for and is centered at a reference point Po of the 3D model 3dm of the part to be searched for, and are a plurality of surface aggregates As1 that correspond to a first numerical range that is a range of distance in at least one of the one or more initial setting ranges for the part to be searched for that are defined in the setting range information 58. The M1 virtual surfaces St1 in each of the T1 surface aggregates As1 are a plurality of virtual surfaces that correspond to a second numerical range that is a range of latitude and a third numerical range that is a range of longitude in at least one of the one or more initial setting ranges for the part to be searched for that are defined in the setting range information 58.
[0323] Here, for example, as shown in FIG. 14, by setting the right-handed xyz coordinate system with the reference point Po of the 3D model 3dm of the part to be searched, which is specified in the three-dimensional design information for the part to be searched, as the origin, as well as the angle (latitude) α in the direction of rotation about the x-axis, the angle (longitude) β in the direction of rotation about the z-axis, and the distance D from the origin, the position and orientation of each virtual surface St1, as well as each first virtual camera position P11, etc. can be specified.
[0324] Here, for each of the M1 virtual surfaces St1 in each of the T1 surface aggregates As1, a first virtual camera position P11 is virtually set at a predetermined position on the virtual surface St1, for example. The predetermined position may be, for example, the position of the center of the virtual surface St1. The center of gravity of the virtual surface St1 may be, for example, the center of the virtual surface St1. The multiple surface aggregates As1 corresponding to the first numerical range, which is a range of distances within at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58, may be, for example, multiple surface aggregates As1 whose distances from the reference point Po of the 3D model 3dm of the search target part fall within this first numerical range, or multiple surface aggregates As1 located along multiple virtual spherical surfaces Sv1 whose distances from the reference point Po of the 3D model 3dm of the search target part fall within this first numerical range. Furthermore, the plurality of virtual surfaces St1 corresponding to the second numerical range, which is a range of latitude, and the third numerical range, which is a range of longitude, in at least one of the one or more initial setting ranges for the search target part defined in the setting range information 58 may be a plurality of virtual surfaces St1 whose latitude falls within the second numerical range and whose longitude falls within the third numerical range. Furthermore, these plurality of virtual surfaces St1 may be a plurality of virtual surfaces whose predetermined positions on each of the plurality of virtual surfaces St1 have latitudes that fall within the second numerical range and longitudes that fall within the third numerical range. The predetermined positions on each of the plurality of virtual surfaces St1 may be, for example, the centers of gravity of the virtual surfaces St1.
[0325] For example, each of the multiple virtual surfaces St1 constituting the surface assembly As1 may be a triangular surface, and the surface assembly As1 may be a polyhedron composed of multiple triangular surfaces. In other words, the surface assembly As1 may be a spherical polyhedron composed of multiple triangular surfaces. In other words, for example, a triangular surface is applied to each of the multiple virtual surfaces St1 constituting the T1 surface assembly As1, and a polyhedron composed of multiple triangular surfaces is applied to each of the T1 surface assembly As1. This makes it easy to set the surface assembly As1 including multiple virtual surfaces St1. Here, the triangle may be an equilateral triangle. If the virtual surface St1 is a triangular surface, the center of the virtual surface St1 may be the center of gravity of the triangle or the incenter.
[0326] In step Sb12, for example, the first shape information acquisition unit 6112 may set multiple first virtual camera positions P11 based on three-dimensional design information and setting range information 58 regarding the part to be searched stored in the memory unit 45b, etc., and generate reference shape information for each of the multiple first virtual camera positions P11, thereby acquiring the reference shape information generated for each of the multiple first virtual camera positions P11.
[0327] <<<<<Step Sb13>>>> In step Sb13, the first calculation unit 6113 calculates a numerical value indicating the degree of match between the reference image as reference shape information for each of the multiple first virtual camera positions P11 acquired in step Sb12 and the edge image as information about the two-dimensional shape of the object captured in the actual image acquired in step S13 (actual shape information). The edge image as actual shape information is the edge image as actual shape information acquired in step Sa4. Step Sb13 corresponds to the first calculation step of the present invention.
[0328] More specifically, in step Sb13, the first calculation unit 6113 calculates, for each of the M1×T1 first virtual camera positions P11 as the plurality of first virtual camera positions P11 described above, a numerical value indicating the degree of match between an edge image as information about the two-dimensional shape of the object captured in the actual image obtained in step S13 (actual shape information) and the reference image as reference shape information obtained in step Sb12. The edge image as actual shape information is the edge image as actual shape information obtained in step Sa4.
[0329] Here, for example, if one or more initial setting ranges for the search target part defined in the setting range information 58 include a first initial setting range for the first position, at the timing when the search target part is positioned at the first position by the moving mechanism, the search processing unit 61 may calculate, by the first calculation unit 6113, a numerical value indicating the degree of match between the edge image as information about the two-dimensional shape of the object captured in the actual image obtained in step S13 (actual shape information) and the reference image as reference shape information acquired in step Sb12, for each of a plurality of first virtual camera positions P11 corresponding to the first initial setting range. Here, the actual image capturing the search target part may be an actual image obtained by photographing with the camera CM at the timing when the search target part is positioned at the first position by the moving mechanism.
[0330] For example, if the part to be searched is the first chuck, and the first chuck is positioned at an open position, which is the first position, the first A position, by the chuck moving mechanism 17, the actual image capturing the part to be searched may be an actual image obtained by photographing with the camera CM at the time when the first chuck is positioned at the open position by the chuck moving mechanism 17.
[0331] For example, if the part to be searched is guard 23 and the guard 23 is positioned in a lowered position, which is the first position, 1B position, by the guard moving mechanism 25, the actual image capturing the part to be searched may be an actual image obtained by photographing with camera CM at the time when the guard 23 is positioned in the lowered position by the guard moving mechanism 25.
[0332] For example, if the part to be searched is nozzle 33, and the nozzle 33 is positioned at a standby position, which is the first position, 1C position, by the nozzle moving mechanism 35, the actual image capturing the part to be searched may be an actual image obtained by photographing with camera CM at the time when the nozzle 33 is positioned at the standby position by the nozzle moving mechanism 35.
[0333] Here, for example, if one or more initial setting ranges for the search target part defined in the setting range information 58 include a second initial setting range for the second position, at the timing when the search target part is positioned at the second position by the moving mechanism, the search processing unit 61 may calculate, by the first calculation unit 6113, a numerical value indicating the degree of match between the edge image as information about the two-dimensional shape of the object captured in the actual image obtained in step S13 (actual shape information) and the reference image as reference shape information acquired in step Sb12, for each of a plurality of first virtual camera positions P11 corresponding to the second initial setting range. Here, the actual image capturing the search target part may be an actual image obtained by photographing with the camera CM at the timing when the search target part is positioned at the second position by the moving mechanism.
[0334] For example, if the part to be searched is the first chuck, and the first chuck is positioned at the closed position, which is the second position, the second A position, by the chuck moving mechanism 17, the actual image capturing the part to be searched may be an actual image obtained by photographing with the camera CM at the time when the first chuck is positioned at the closed position by the chuck moving mechanism 17.
[0335] For example, if the part to be searched is guard 23, and the guard 23 is positioned at an elevated position, which is the second position, the second B position, by the guard moving mechanism 25, the actual image capturing the part to be searched may be an actual image obtained by photographing with camera CM at the time when the guard 23 is positioned at the elevated position by the guard moving mechanism 25.
[0336] For example, if the part to be searched is nozzle 33, and the nozzle 33 is positioned at the second position, the second C position, by the nozzle moving mechanism 35 at the timing when the nozzle 33 is positioned at the discharge position, the actual image capturing the part to be searched may be an actual image obtained by photographing with the camera CM at the timing when the nozzle 33 is positioned at the discharge position by the nozzle moving mechanism 35.
[0337] Here, when calculating a numerical value indicating the degree of match between an edge image as actual shape information and a reference image as reference shape information for each first virtual camera position P11, the first calculation unit 6113 performs, for example, the above-described processes 1a, 1b, and 1c in this order. Specifically, in step Sb13, the first calculation unit 6113 performs the processes of steps Sb131 to Sb135 in this order. The process of step Sb132 corresponds to the above-described process 1a, the process of step Sb133 corresponds to the above-described process 1b, and the process of step Sb134 corresponds to the above-described process 1c.
[0338] In step Sb131, the first calculation unit 6113 designates one first virtual camera position P11 and the reference image as reference shape information related to that one first virtual camera position P11 from among the reference images as reference shape information for each of the multiple first virtual camera positions P11 obtained in step Sb12 as the target of processing from step Sb132 to step Sb134.
[0339] In step Sb132, the first calculation unit 6113 detects the amount of deviation in the orientation of the two-dimensional shape of the contour between an edge image as actual shape information and a reference image as reference shape information, for example, using the RIPOC method. Here, for example, as shown in FIG. 22 , the first calculation unit 6113 divides the edge image Ir3 as actual shape information input from the image processing unit 59 into multiple comparison target regions Re1, and then calculates, for each comparison target region Re1, a deviation amount γ1 in the rotation direction that can maximize the degree of contour match with the reference image using the RIPOC method. This deviation amount γ1 corresponds to the roll angle γ that can maximize the degree of contour match between the reference image as reference shape information and the edge image as actual shape information. Here, one comparison target region Re1 amo...
Claims
1. A substrate processing apparatus for processing substrates, comprising: one or more target parts; one or more photographing units for photographing an actual image capturing a search target part, which is any one of the one or more target parts; a search processing unit for executing a search process for searching for a maximum matching virtual camera position among the plurality of virtual camera positions, the maximum matching virtual camera position having the greatest matching between the reference shape information and the actual shape information, based on reference shape information about a two-dimensional shape of a three-dimensional model in each of a plurality of virtual images that can be obtained by photographing a three-dimensional model of the search target part from a plurality of virtual camera positions, the reference shape information being generated based on three-dimensional design information related to the search target part, and actual shape information about a two-dimensional shape of an object in the actual image; and a storage unit for storing setting range information that specifies one or more initial setting ranges related to preset virtual camera positions for each of at least one target part among the one or more target parts, wherein the search processing unit: a first shape information acquisition unit that acquires the reference shape information generated for each of a plurality of first virtual camera positions based on the three-dimensional design information and the setting range information, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions that are located along a plurality of virtual spheres centered on a reference point of the three-dimensional model and that correspond to at least one of the one or more initial setting ranges for the search target part defined in the setting range information; a first calculation unit that calculates a numerical value indicating a degree of agreement between the actual shape information and the reference shape information for each of the plurality of first virtual camera positions; and a first detection unit that detects, based on a calculation result by the first calculation unit, a high-degree-of-match virtual camera position among the plurality of first virtual camera positions that has the highest degree of match between the actual shape information and the reference shape information; 2. A substrate processing apparatus as described in claim 1, wherein each of the one or more initial setting ranges includes: a first numerical range which is a range of distance from the reference point, a second numerical range which is a range of latitude about a virtual sphere centered on the reference point and surrounding the three-dimensional model, and a third numerical range which is a range of longitude about the virtual sphere.
3. A substrate processing apparatus according to claim 2, wherein the first shape information acquisition unit virtually sets T1 (T1 is a natural number of 2 or more) surface groups each including a plurality of virtual surfaces positioned along a virtual sphere surrounding the three-dimensional model with the reference point as a center and having different distances from the reference point corresponding to the first numerical range in the at least one initial setting range based on the three-dimensional design information and the setting range information, and virtually sets one virtual camera position for each of M1 (M1 is a natural number of 2 or more) virtual surfaces in each of the T1 surface groups corresponding to each of the second numerical range and the third numerical range in the at least one initial setting range, and acquires the reference shape information generated for each of the M1×T1 first virtual camera positions, assuming a case in which the three-dimensional model is photographed from each of the M1×T1 first virtual camera positions, and the first calculation unit the first detection unit calculates a numerical value indicating a degree of matching between the actual shape information and the reference shape information for each of the M1×T1 first virtual camera positions, the first detection unit detects the high-matching virtual camera position, which is the first virtual camera position having the highest degree of matching between the actual shape information and the reference shape information, among the M1×T1 first virtual camera positions based on a calculation result by the first calculation unit, and the search processing unit a division surface generation unit that generates M2×T2 virtual divided surfaces by dividing, according to the same rule, T2 (T2 is a natural number of 2 or more) virtual surfaces, which include a high-matching virtual surface in which the high-matching virtual camera position is virtually set, intersect with a straight line passing through the reference point and the high-matching virtual camera position on the high-matching virtual camera position side of the reference point, and have mutually different distances from the reference point, among the M1 virtual surfaces in each of the T1 surface collections, to generate M2 (M2 is a natural number of 2 or more) virtual divided surfaces for each of the T2 virtual surfaces;a second shape information generation unit that generates the reference shape information for each of M2×T2 second virtual camera positions, the M2×T2 second virtual camera positions being set by virtually setting one virtual camera position for each of the M2×T2 virtual divided surfaces based on the three-dimensional design information, assuming a case where the three-dimensional model is photographed from each of the M2×T2 second virtual camera positions; a second calculation unit that calculates a numerical value indicating a degree of agreement between the actual shape information and the reference shape information for each of the M2×T2 second virtual camera positions; and a second detection unit that detects a virtual camera position having the highest degree of agreement between the actual shape information and the reference shape information, among the high agreement virtual camera position and the M2×T2 second virtual camera positions; and 4. A substrate processing apparatus according to claim 3, wherein the search processing unit executes a first unit process for the search target part, and then executes one or more n-th unit processes (n is a natural number equal to or greater than 2), and the search processing unit sequentially executes a first A process, a first B process, a first C process, and a first D process in the first unit process, and the first A process is the division surface generation unit generates first M3×T3 virtual division surfaces which are M3×T3 virtual division surfaces by dividing each of the first T3 virtual division surfaces according to the same rule, the first T3 virtual division surfaces being a plurality of virtual division surfaces generated by dividing each of the T2 virtual surfaces, the first T3 virtual division surfaces being a virtual division surface including a first reference virtual camera position which is the virtual camera position first detected by the second detection unit, intersecting a line passing through the reference point and the first reference virtual camera position on the side of the first reference virtual camera position relative to the reference point and having different distances from the reference point, and generating first M3 virtual division surfaces which are M3 (M3 is a natural number equal to or greater than 2) virtual division surfaces for each of the first T3 virtual division surfaces; the first B process the second shape information generation unit generates the reference shape information for each of the first M3×T3 third virtual camera positions, assuming a case in which the three-dimensional model is photographed from each of the first M3×T3 third virtual camera positions, which are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the first M3×T3 virtual divided surfaces based on the three-dimensional design information; the firstC process is a process in which the second calculation unit calculates a numerical value indicating the degree of agreement between the actual shape information and the reference shape information for each of the first M3×T3 third virtual camera positions; the firstD process is a process in which the second detection unit detects a second reference virtual camera position which is the virtual camera position having the largest degree of agreement between the actual shape information and the reference shape information, among the first reference virtual camera position and the first M3×T3 third virtual camera positions; and the search processing unitIn each of the one or more n-th unit processes, an n-th A process, an n-th B process, an n-th C process, and an n-th D process are performed in that order, and the n-th A process is a process in which the division surface generation unit generates n-th M3×T3 virtual division surfaces by dividing each of the n-1-th T3 virtual division surfaces, the n-th T3 virtual division surfaces being T3 virtual division surfaces that include a virtual division surface that includes the n-th reference virtual camera position that is the virtual camera position that is the n-th detected virtual camera position by the second detection unit, that intersect with a straight line that passes through the reference point and the n-th reference virtual camera position on the n-th reference virtual camera position side of the reference point, and that have mutually different distances from the reference point, according to the same rule, to generate n-th M3 virtual division surfaces that are M3 virtual division surfaces for each of the n-th T3 virtual division surfaces, and the n-th B process is a process in which the division surface generation unit generates n-th M3×T3 virtual division surfaces being M3×T3 virtual division surfaces, according to the same rule, and the second shape information generation unit generates the reference shape information for each of the nth M3×T3 third virtual camera positions, assuming a case in which the three-dimensional model is photographed from each of the nth M3×T3 third virtual camera positions, which are M3×T3 virtual camera positions that are set by virtually setting one virtual camera position for each of the nth M3×T3 virtual dividing surfaces based on the three-dimensional design information; the nC process is a process in which the second calculation unit calculates a numerical value indicating the degree of agreement between the actual shape information and the reference shape information for each of the nth M3×T3 third virtual camera positions; and the nD process is a process in which the second detection unit detects, among the nth reference virtual camera position and the nth M3×T3 third virtual camera positions, the virtual camera position having the greatest degree of agreement between the actual shape information and the reference shape information; the virtual camera position detected by the second detection unit in the last n-th D process in the one or more n-th unit processes is the maximum matching virtual camera position.
5. A substrate processing apparatus as described in claim 4, wherein the search processing unit terminates execution of the one or more nth unit processes in response to the second detection unit detecting one of the reference virtual camera positions from the first reference virtual camera position to the nth reference virtual camera position consecutively a first predetermined number of times set in advance.
6. A substrate processing apparatus as described in claim 4, wherein the search processing unit terminates execution of the one or more nth unit processes in response to the nth unit process being executed a second predetermined number of times that is set in advance.
7. A substrate processing apparatus as described in any one of claims 3 to 6, wherein the same rule includes a rule for dividing a surface to be divided into a plurality of surfaces by a plurality of line segments respectively connecting a center point of the surface to be divided to all vertices of the surface to be divided.
8. A substrate processing apparatus according to any one of claims 3 to 6, wherein each of the plurality of virtual surfaces is a triangular surface, and each of the T1 surface groups is a polyhedron composed of a plurality of triangular surfaces.
9. A substrate processing apparatus as described in claim 8, wherein the division surface generation unit divides the high-match virtual surface into three virtual division surfaces as the M2 virtual division surfaces by three line segments respectively connecting three vertices of the high-match virtual surface and the high-match virtual camera position.
10. A substrate processing apparatus according to any one of claims 1 to 6, further comprising a moving mechanism for moving the search target part between a first position and a second position, wherein the one or more initial setting ranges include a first initial setting range for the first position, and the search processing unit, at a timing when the search target part is positioned at the first position by the moving mechanism, acquires the reference shape information generated for each of the plurality of first virtual camera positions corresponding to the first initial setting range based on the three-dimensional design information and the setting range information by the first shape information acquisition unit, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions corresponding to the first initial setting range which is the at least one initial setting range, and calculates by the first calculation unit a numerical value indicating a degree of agreement between the reference shape information and the actual shape information relating to the actual image obtained by photographing by the one or more photographing units at the timing when the search target part is positioned at the first position by the moving mechanism, for each of the plurality of first virtual camera positions corresponding to the first initial setting range, A substrate processing apparatus in which the first detection unit detects, based on the calculation result by the first calculation unit, the high-match virtual camera position among the multiple first virtual camera positions corresponding to the first initial setting range, which has the highest match between the actual shape information and the reference shape information.
11. The substrate processing apparatus according to claim 10, wherein the one or more initial setting ranges further include a second initial setting range for the second position, and the search processing unit, at a timing when the search target part is positioned at the second position by the moving mechanism, acquires the reference shape information generated for each of the plurality of first virtual camera positions corresponding to the second initial setting range based on the three-dimensional design information and the setting range information by the first shape information acquisition unit, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions corresponding to the second initial setting range which is the at least one initial setting range, and calculates, by the first calculation unit, a numerical value indicating a degree of agreement between the reference shape information and the actual shape information relating to the actual image obtained by photographing by the one or more photographing units at the timing when the search target part is positioned at the second position by the moving mechanism, for each of the plurality of first virtual camera positions corresponding to the second initial setting range, A substrate processing apparatus in which the first detection unit detects, based on the calculation result by the first calculation unit, the high-match virtual camera position among the multiple first virtual camera positions corresponding to the second initial setting range, which has the highest match between the actual shape information and the reference shape information.
12. A substrate processing apparatus as described in claim 10, further comprising an abnormality detection unit that detects an abnormality in the part to be searched if the degree of matching between the reference shape information and the actual shape information for the maximum degree of matching virtual camera position detected by the search processing unit is smaller than a predetermined degree of matching set in advance.
13. The substrate processing apparatus according to claim 10, wherein the one or more initial setting ranges further include a second initial setting range for the second position, and the search processing unit, at a timing when the search target part is positioned at the first position by the moving mechanism, acquires the reference shape information generated for each of the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range based on the three-dimensional design information and the setting range information, assuming a case where the three-dimensional model is photographed from each of the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range, which are the at least one initial setting range, by the first shape information acquisition unit, and calculates, by the first calculation unit, a numerical value indicating a degree of agreement between the reference shape information and the actual shape information relating to the actual image obtained by photographing by the one or more photographing units at the timing when the search target part is positioned at the first position by the moving mechanism, for each of the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range, the first detection unit detects, based on a result of calculation by the first calculation unit, the high-match virtual camera position among the plurality of first virtual camera positions corresponding to both the first initial setting range and the second initial setting range, which has the highest match between the actual shape information and the reference shape information; and the substrate processing apparatus further includes an abnormality detection unit that detects an abnormality in the search target part if the maximum-match virtual camera position is a position belonging to the second initial setting range at the time when the search target part is positioned at the first position by the moving mechanism.
14. A substrate processing apparatus as described in any one of claims 1 to 6, further comprising an abnormality detection unit that detects an abnormality in the search target part by comparing actual information relating to the posture of the search target part recognized based on the maximum matching virtual camera position with normal information relating to the posture of the search target part based on the three-dimensional design information when the state of the search target part is normal.
15. A substrate processing apparatus as claimed in any one of claims 1 to 6, wherein the one or more target components include two or more target components, and the at least one target component includes the two or more target components.
16. An information processing method in a substrate processing apparatus having one or more target parts, comprising: a storage step of storing in a storage unit setting range information defining one or more initial setting ranges relating to virtual camera positions preset for each of at least one of the one or more target parts; a photographing step of obtaining an actual image capturing a search target part, which is any one of the one or more target parts, by photographing with a photographing unit; and a search step of executing a search process by a calculation unit to search for a maximum matching virtual camera position among the multiple virtual camera positions, the maximum matching virtual camera position having the greatest matching between the reference shape information and the actual shape information, based on reference shape information about the two-dimensional shape of a three-dimensional model in each of a plurality of virtual images that can be obtained by photographing a three-dimensional model of the search target part from a plurality of virtual camera positions, each of which is generated based on three-dimensional design information about the search target part, and actual shape information about the two-dimensional shape of an object in the actual image obtained in the photographing step, wherein the search step the method includes a first shape information acquisition step of acquiring the reference shape information generated for each of a plurality of first virtual camera positions based on the three-dimensional design information and the setting range information, assuming a case in which the three-dimensional model is photographed from each of a plurality of first virtual camera positions that are positioned along a plurality of virtual spheres that surround the three-dimensional model with a reference point of the three-dimensional model as a center and that correspond to at least one initial setting range of the one or more initial setting ranges for the search target part defined by the setting range information; a first calculation step of calculating a numerical value indicating a degree of agreement between the reference shape information and the actual shape information for each of the plurality of first virtual camera positions acquired by the first shape information acquisition step; and a first detection step of detecting, based on a calculation result by the first calculation step, a high-match virtual camera position among the plurality of first virtual camera positions that has the highest degree of match between the actual shape information and the reference shape information,An information processing method in a substrate processing apparatus, wherein, in the search step, the maximum degree of agreement virtual camera position is searched for based on the high degree of agreement virtual camera position detected in the first detection step, or the high degree of agreement virtual camera position is the maximum degree of agreement virtual camera position.
Citation Information
Patent Citations
Substrate processing apparatus
WO2019146456A1
System and method for recognizing three-dimensional object
JP2009093611A
Template preparation device and template preparation method
JP2016207147A
Information processing apparatus, measuring apparatus, system, calculating method, program, and article manufacturing method
JP2018091656A