This application claims priority to Taiwan Application Serial Number 105113288, filed Apr. 28, 2016, which is herein incorporated by reference.
The present disclosure relates to an assembly instruction system and an assembly instruction method. More particularly, the present disclosure relates to an augmented reality assembly instruction system and assembly instruction method.
The now existing method for instructing a user to assemble objects is mainly by reading text or looking at figures in a print version. The user thus needs to put together physical objects in three dimensions according to a two-dimensional instruction. Under the circumstances, it is necessary for the user to image the relationships between the two-dimensional figures and the three-dimensional physical objects. In addition, the user can not know whether the user's current action and whether the object being currently picked up are correct or not when assembling. Hence, there is a lack of interactions between the user and the assembly method when how to put together the physical objects is instructed by the traditional method in which text or figures in a print version is utilized.
In recent years, studies regarding how to introduce the augmented reality (AR) technology have been initiated to add instruction text or figures on a real image so as to guide the user to assemble physical objects in a real-time manner. In order to estimate the three-dimensional position and disposition direction of the object to be assembled, most of the current systems need to attach an obvious pattern or mark to the object. However, most objects are not suitable for being attached with a special mark or embedded with a sensor.
For the foregoing reasons, there is a need to solve the above-mentioned problems by providing a convenient system and method for assembling physical objects, which is also an objective that the industry is eager to achieve.
An assembly instruction system is provided. The assembly instruction system comprises at least one depth camera, a database, a processor, and a display. The depth camera is configured to capture a first objet image. The database is configured to store a plurality of known object images and an assembly tree. The processor is configured to compare the first object image with the known object images separately to recognize a first object corresponding to the first object image and a three-dimensional position and a three-dimensional orientation of the first object, and obtain a second object corresponding to the first object according to the assembly tree. The processor generates at least one virtual arrow according to the three-dimensional position and the three-dimensional orientation when the at least one depth camera simultaneously captures the first object image and a second object image of the second object. The display is configured to display an augmented reality image having the at least one virtual arrow added on the first object image or the second object image. The virtual arrow is used for indicating a moving direction for assembling the first object and the second object.
The disclosure provides an assembly instruction method. The assembly instruction method comprises the following steps: capturing a first objet image; storing a plurality of known object images and an assembly tree; comparing the first object image with the known object images separately to recognize a first object corresponding to the first object image and a three-dimensional position and a three-dimensional orientation of the first object, and obtaining a second object corresponding to the first object according to the assembly tree, generating at least one virtual arrow according to the three-dimensional position and the three-dimensional orientation when the first object image and a second object image of the second object are captured simultaneously; and displaying an augmented reality image having the at least one virtual arrow added on the first object image or the second object image. The virtual arrow is used for indicating a moving direction for assembling the first object and the second object.
It is to be understood that both the foregoing general description and the following detailed description are by examples, and are intended to provide further explanation of the disclosure as claimed.
The accompanying drawings are included to provide a further understanding of the disclosure, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the disclosure and, together with the description, serve to explain the principles of the disclosure.
In the drawings,
Reference will now be made in detail to the present embodiments of the disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
A description is provided with reference to
In step S210, the depth camera 10 captures a first object image. In one embodiment, the depth camera 10 can capture an image of an object A1, and obtain depth data of the image. For example, in
In one embodiment, the object A1 may be a part of a specific device. For example, the object A1 may be a tire or a bracket of a body of a model car. In other words, through assembling the object A1 with other multiple objects (such as those physical objects, the object A2, an object A4, an object A6 . . . , etc, in
In one embodiment, the database 22 is configured to store a plurality of known object images (such as images of the objects A1-A14 in
In step S220, the processor 24 compares the first object image with the plurality of known object images separately to recognize a first object corresponding to the first object image and a three-dimensional position and a three-dimensional orientation of the first object.
In one embodiment, the processor 24 compares the object image captured by the depth camera 10 with the known objects (such as the objects A1-A14 in
In one embodiment, the processor 24 compares the object image with a color distribution (for example, the tire is black and the bracket is orange), a silhouette of a depth image (for example, a silhouette of the tire is a circle and a silhouette of the bracket of the body is a column), or a gradient of a depth image (for example, extract the current object A1 from a foreground of the whole object image) of the plurality of known object images to recognize the current object A1 comprised in the object image and obtain an identification code (ID) of the current object A1 from the database 24. The identification code may be a code representing the current object A1.
Additionally, the processor 24 recognizes the three-dimensional position and the three-dimensional orientation of the object A1 based on an extended iterative closed point method. Hence, after the processor 24 recognizes the identification code and an initial possible view angle of the object A1, the assembly instruction system 100 further uses the extended iterative closed point method to gradually fine tune the angle so as to find the most suitable angle. This method can determine the three-dimensional orientation (such as the inclination angle when being placed horizontally, vertically, or obliquely) and the three-dimensional position of the current object A1 when fulfilling the requirements of correctness and instantaneousness at the same time.
In step S230, the processor 24 obtains a second object corresponding to the first object according to the assembly tree. In one embodiment, when the depth camera 10 simultaneously captures the first object image and a second object image of the second object, the processor 24 generates at least one virtual arrow according to the three-dimensional position and the three-dimensional orientation of the first object. In another embodiment, the depth camera 10 can also generate at least one virtual arrow according to a three-dimensional position and a three-dimensional orientation of the second object. In addition, the depth camera 10 can generate at least one virtual arrow according to the three-dimensional position of the first object and the three-dimensional position of the second object in one embodiment. The virtual arrow is used for indicating a moving direction. The first object can be assembled with the second object according to the moving direction.
In one embodiment, the database 24 can store the plurality of known object images and the assembly tree in advance. In one embodiment, the assembly instruction method 200 can establish the plurality of known object images and the assembly tree in advance before going to step S210 or in an offline state, so that the plurality of known object images and the assembly tree can be used after going to step S210. A detailed description of the known object images and the assembly tree is provided as follows.
A description is provided with reference to
In one embodiment, as shown in
Additionally, in
After the plurality of known object images and the assembly tree have been established in the database 24 in advance by using the above method, in step S230, the processor 24 then learns that the current object A1 can be assembled with the object A2 which has the same father node by reading data of the assembly tree when the processor 24 recognizes the current object (such as the object A1). In addition, as known from the assembly tree, the object A3 can be generated if the object A2 is assembled with the current object A1. Hence, the assembly instruction system 100 can further prompt the user to pick up the object A2 so as to be assembled with the current object A1. In one embodiment, the assembly tree can be defined by users in advance. In another embodiment, when the processor 24 recognizes the current object (such as the object A6), the processor 24 then learns that the current object A6 can be assembled with the objects A7, A8, A9 which have the same father node by reading data of the assembly tree. In addition, as known from the assembly tree, the object A10 can be generated if the current object A6 is assembled with the objects A7, A8, A9. Hence, the assembly instruction system 100 can further prompt the user to pick up the objects A7, A8 and/or A9 so as to be assembled with the current object A6. It is thus understood that the assembly instruction system 100 can prompt the user to pick up one or more objects so as to perform assembly according to setting of the assembly tree.
In the present embodiment, when the user knows that the current object A1 can be assembled with the object A2 from the assembly instruction system 100, the user can pick up the object A1 and the object A2 and simultaneously position the objects A1, A2 within a picture range that can be captured by the depth camera 10, so that the depth camera 10 can simultaneously capture the object A1 and the object A2. When the processor 24 utilizes the above method to recognize the objects A1, A2 presented in an image captured by the depth camera 10 and the three-dimensional positions thereof, the processor 24 can generate a virtual arrow (such as a virtual arrow 60 shown in
In step S240, the display 30 displays an augmented reality image having the at least one virtual arrow added on the first object image or the second object image.
A description is provided with reference to
For example, when the object A1 and the object A2 are both in the practically captured image 51, the user can know that the object A2 should be turned left from the augmented reality image 52 so as to correspond to the object A1. In addition, the processor 24 can look up the assembly tree to know that the user should pick up the object A4 so as to continue the assembly process when the object A1 and the object A2 have been assembled. Hence, the object A4 is displayed in the instructional image for the next object 53 for the reference of the user.
In one embodiment, as shown in
In one embodiment, as shown in
In one embodiment, when the object A2 is rotated or turned over to a specific position corresponding to the object A1 according to the rotation direction indicated by the virtual arrow 60 (for example, as shown in
For example, when the processor 24 determines that the object A1 in the image can be engaged with, joined to, or adhered to the object A2 after being rotated to the right by 20 degrees, the processor 24 first generates the virtual arrow (such as the virtual arrow 60 in
In one embodiment, when the processor 24 determines that a distance between the object A2 and the object A1 is less than a distance threshold value (such as 5 centimeters), the virtual arrow 60 is switched to the virtual arrow 61 (as shown in
Similarly, in one embodiment, the object A1 may also be encircled by the virtual arrow 60 to instruct the direction to which the object A1 should be rotated or turned over. Or, the virtual arrow 61 is used to indicate the direction along which the object A1 should be translated so as to correspond to the three-dimensional position and a three-dimensional orientation of the object A2.
Additionally, in one embodiment, the assembly instruction system 100 may further comprise augmented reality glasses so that the physical object A1 can be seen through the augmented reality glasses and the augmented reality glasses can display the virtual arrow 61. Hence, the user can see the virtual arrow 60 added on the object A1 and the object A2 after wearing the augmented reality glasses.
In this manner, the user can hold various objects (such as the object A1) to be assembled by hand to freely move in the image. The assembly instruction system 100 automatically recognize the identification code and the three-dimensional position and orientation of the object A1 according to the depth and color images captured by the depth camera 10. After the processor 24 utilizes the assembly tree to determine a current assembly step of the object A1, the assembly instruction system 100 will then depict the moving direction and the rotation direction correspondingly and add the moving direction and the rotation direction on the display picture (such as the augmented reality image 52).
By using the above steps, the assembly instruction system 100 can automatically analyze whether an object (such as the object A2) gripped by the user is the object that needs to be currently assembly, prompt the user for the next part that needs to be gripped according to the assembly sequence defined in advance or defined by the user, and determine relative spatial relationships between two objects when the two objects (such as the objects A1, A2) both appear in the image. The assembly instruction system 100 utilizes augmented reality to depict the translation instruction and the rotation instruction in real time, and goes to the next step after the assembly. For example, the assembly instruction system 100 can further prompt the object (such as the object A4) that is suggested to be assembled next. In this manner, the user can complete the assembly process step by step according to dynamic instructions.
Then, a description is provided with reference to
In step S250, the processor 24 determines whether the first object and the second object have been assembled. In one embodiment, during the assembly process by the user, the processor 24 will continuously compare various objects present in images captured by the depth camera 10 with the known objects in the database 22. Therefore, when the object A1 and the object A2 are assembled together, the processor 24 can compare images of an object thus assembled (for example, as shown in
The processor 24 determines that the object A1 and the object A2 have been assembled and goes to step S260 when the processor 24 determines that the object thus assembled is the same as or similar to the object A3. In one embodiment, if the processor 24 determines that a similarity between the object thus assembled and the object A3 is higher than a similarity threshold value (for example, the similarity between the two objects is 99%), the two objects are regarded to have been assembled. The calculation method of similarity may refer to known image similarity algorithms, and a description in this regard is not provided.
On the contrary, if the processor 24 determines that the object thus assembled is not similar to the object A3, for example, if an excessive deviation angle exists between the object thus assembled and the object A3, the two objects are regarded to not have been assembled. The method returns to step S210 to continuously detect images and utilize the method described in steps S220-S240 to continuously update (for example, update the three-dimensional position of the object A1 or the object A2) and adjust the moving direction indicated by the virtual arrow 60 (for example, adjust the virtual arrow 60 according to the updated three-dimensional position of the object A1 or the object A2) so as to continuously inform the user of the assembly method.
In step S260, the processor 24 is configured to update the assembly tree to set a third object as a current state node. In one embodiment, when the processor 24 determines that the object A1 and the object A2 have been successfully assembled, that means the object A3 has been assembled, then the processor 24 sets the object A3 in the assembly tree as the current state node. By setting the current state node, the assembly instruction system 100 is allowed to update a current assembly state and look up which object (such as the object A4) can be further assembled with the current object A3 in the assembly tree.
In step S270, the processor 24 determines whether the current state node is a root node of the assembly tree. In one embodiment, if the current state node (such as the object A3) is not the root node, that means some other object hasn't been assembled (For example, the object A3 should be assembled with the object A4 or the object A5 continuously) and the method goes to step S280. Conversely, if the current state node (such as the object A14) is the root node, that means all of the assembly steps have been completed.
In step S280, the processor 24 searches a fourth object that has a same father node as the current assembly state in the assembly tree. In one embodiment, when a node of the current assembly state is set as the object A3, it can be seen from the assembly tree that the object A3 and the object A4 have a same father node object A7, that means the object A7 is constituted by the object A3 and the object A4. In other words, the object A4 is the object that can be assembled with the object A3 next. Hence, the display 30 displays the object A4 in a next instructional image for the next object 53 to prompt to user to pick up the object A4 so as to perform assembly.
By using the above steps, depth and color information of at least one object can be captured through the depth camera 10, and object templates stored in advance are used to compare the images with the current object to obtain an initial three-dimensional position and orientation of the object. Then, by using the object color and the extended iterative closed point method, the correct position and direction of the current object are found. When more than one object present in the image, the assembly instruction system 100 will determine which two or more objects need to be combined according to the assembly tree, and depict the virtual arrow according to the position and direction of the current object. In addition, the assembly instruction system 100 will also automatically update the state in the assembly tree and display the element that needs to be assembled next until the assembly tree proceeds to the root node where the assembly is completed.
Based on the above description and the detailed description of various embodiments, the assembly instruction system and assembly instruction method according to the present disclosure can compare the current object with the known objects to find out the next object that can be assembled by using the assembly tree, and dynamically depict the virtual arrow according to the three-dimensional position(s) and orientation(s) of the object(s) so as to guide the user to move the object to the correct position. In this manner, the user can conveniently complete the assembly step by step according to the dynamic instructions of the virtual arrow.
Although the present disclosure has been described in considerable detail with reference to certain embodiments thereof, other embodiments are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the embodiments contained herein.
It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present disclosure without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the present disclosure covers modifications and variations of this disclosure provided they fall within the scope of the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
105113288 | Apr 2016 | TW | national |