Image processing device
The image processing apparatus uses optical recognition codes to accurately determine and track the position of moving bodies within indoor spaces, overcoming GPS limitations by analyzing captured images to calculate precise positions.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- B CORE INC
- Filing Date
- 2022-03-28
- Publication Date
- 2026-06-01
AI Technical Summary
Existing systems struggle to accurately determine the position of moving bodies, such as automated guided vehicles, within indoor spaces due to the limitations of GPS functionality.
An image processing apparatus that utilizes an imaging device to capture and analyze optical recognition codes, specifically color bit codes, to determine the position of moving bodies by recognizing these codes and calculating their position based on real-space coordinates.
Enables accurate positioning of moving bodies within indoor environments by leveraging optical recognition codes, even in conditions where precise focusing is challenging, and provides continuous tracking and position correction.
Smart Images

Figure 0007867685000001 
Figure 0007867685000002 
Figure 0007867685000003
Abstract
Description
Technical Field
[0001] The present invention relates to an image processing apparatus.
Background Art
[0002] In recent years, in order to improve work efficiency, a moving body such as an automated guided vehicle (AGV) is placed in an indoor space such as a factory or a warehouse, and a transported object (cargo) is transported to the moving body.
[0003] By the way, in order to efficiently transport a transported object to a moving body, it is useful to appropriately manage the position of the moving body. However, when the moving body moves in an indoor space as described above, for example, the accurate position of the moving body may not be obtained by a GPS (Global Positioning System) function or the like.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] Therefore, an object of the present invention is to provide an image processing apparatus capable of obtaining the position of a moving body.
Means for Solving the Problems
[0006] According to one aspect of the present invention, a storage unit, a first acquisition unit, Determination means,An image processing apparatus is provided, comprising a second acquisition means and a calculation means. The storage means stores a first image captured by an imaging device of a moving body having an imaging device capable of recognizing an optical recognition code, and the first position of the moving body at the time the first image was captured. The first acquisition means acquires a second image captured by the imaging device at a second position after the moving body has moved from the first position. The determination means determines whether the second image contains the optical recognition code. The second acquisition means is the second plot In the statue The optical recognition code It was determined that it was included. It operates in the case of obtaining the real-space position of the optical recognition code based on the optical recognition code. The calculation means determines the second stroke In the statue The optical recognition code It was determined that it was not included. In the event that it is activated, the second position of the moving body is calculated based on the first image, the second image, and the first position. [Effects of the Invention]
[0007] This invention makes it possible to obtain the position of a moving object. [Brief explanation of the drawing]
[0008] [Figure 1] A figure showing an example of the configuration of an image processing system in an embodiment of the present invention. [Figure 2] A diagram showing an example of the appearance of a mobile device. [Figure 3] A diagram to explain color bit codes in detail. [Figure 4] A diagram showing an example of the hardware configuration of an image processing device. [Figure 5] A diagram showing an example of the functional configuration of an image processing device. [Figure 6] A diagram illustrating the case where an image containing a color bitcode is captured by a camera. [Figure 7] A diagram illustrating the case where an image without a color bitcode is captured by a camera. [Figure 8] A diagram showing an example of the data structure for code location information. [Figure 9] A flowchart illustrating an example of the processing procedure for an image processing device. [Modes for carrying out the invention]
[0009] One feature of this invention is that, if an optical recognition code can be recognized by a photographic device installed on the moving object, the position of the moving object is calculated using the real-space position of the optical recognition code, and if only the optical recognition code can be recognized, the position of the moving object is calculated based on the distance traveled by the moving object.
[0010] Embodiments of the present invention will be described below with reference to the drawings. Figure 1 shows an example of the configuration of the image processing system (network system) in this embodiment. The image processing system 1 shown in Figure 1 comprises an image processing device 10 and a server device 20. The image processing device 10 and the server device 20 are connected to each other via a network 30 so that they can communicate with each other.
[0011] The image processing system 1 in this embodiment is used to obtain the position of a moving object, such as an automated guided vehicle, moving in an indoor space such as a factory or warehouse (hereinafter referred to as the target space).
[0012] Here, Figure 2 shows an example of the external appearance of the mobile body. As shown in Figure 2, the mobile body 2 is configured to be movable, for example, by being equipped with wheels. The mobile body 2 is also equipped with an imaging device (hereinafter referred to as camera) 2a in a orientation that allows imaging of the outside of the mobile body 2 (for example, the direction of travel). In this embodiment, the camera 2a operates to continuously capture images while the mobile body 2 is moving through the target space.
[0013] Note that an optical recognition code is arranged in the target space in the present embodiment, and the optical recognition code is imaged by a camera 2a installed in a moving body 2 moving in the target space. In the present embodiment, for example, a case where an object with an optical recognition code attached, drawn, printed, or displayed is arranged in the target space is assumed. However, the optical recognition code may be arranged (attached, drawn, printed, displayed, etc.) on, for example, a wall surface or the like forming the target space. That is, the optical recognition code may be arranged in the target space in a manner that can be imaged by the camera 2a.
[0014] The image processing device 10 shown in FIG. 1 is connected to, for example, the camera 2a installed in the moving body 2 described above, and has a function of calculating (acquiring) the position of the moving body 2 by using the optical recognition code included in the image captured by the camera 2a. Note that in the present embodiment, "included in the image" shall include a concept such as "recognized on the image".
[0015] The position of the moving body 2 calculated by the image processing device 10 is transmitted from the image processing device 10 to the server device 20 via the network 30 and is managed in the server device 20. The position of the moving body 2 managed in the server device 20 is used, for example, for tracking (monitoring) the moving body 2 or correcting the position of the moving body 2.
[0016] Hereinafter, the optical recognition code used for calculating the position of the moving body 2 in the present embodiment will be specifically described.
[0017] The optical recognition code in the present embodiment includes, for example, a code (hereinafter referred to as a color bit code) in which a plurality of elements are formed linearly (rod-shaped). This color bit code has a configuration in which a plurality of cells (elements) each having one color selected from three or more colors are arranged. According to this color bit code, specific data such as identification information (for example, ID, etc.) can be represented by the transition of the colors attached to each of the plurality of arranged cells.
[0018] In the following description, the optical recognition code used in this embodiment will be described as a color bit code.
[0019] Refer to Figure 3 for a detailed explanation of the color bitcode described above. Note that only a portion of the color bitcode is shown in Figure 3 for convenience.
[0020] As shown in Figure 3, the color bit code 3 is composed of multiple cells 3a, each assigned one of the following colors: red, green, and blue. In Figure 3, red is represented as R, green as G, and blue as B. For the sake of explanation, Figure 3 shows an example where three colors (red, green, and blue) are used in the color bit code 3, but each cell 3a may be assigned a color other than red, green, and blue. Furthermore, the color bit code 3 may be created using four or more colors, as long as the color transitions assigned to each cell 3a can be determined.
[0021] Each cell 3a constituting the color bit code 3 is a range or area to which a single color is assigned, and can have various shapes. In the example shown in Figure 3, each of the multiple cells 3a is rectangular, but they could also be circular, triangular, or other shapes. The color bit code 3 is created by arranging multiple such cells 3a in a linear (straight or curved) pattern. Because the color bit code 3 is created in a linear pattern, it can be made into a shape that does not take up much width, and can therefore be placed in a limited space within a given area.
[0022] Furthermore, since color bit code 3 represents specific data through color transitions as described above, adjacent cells 3a in color bit code 3 will not be assigned the same color, but rather different colors. Color bit code 3 is created according to these conditions.
[0023] Furthermore, the multiple cells 3a that make up the color bit code 3 include endpoint cells. Endpoint cells are cells 3a located at the endpoints (both ends) of the color bit code 3, which is composed of a linearly connected group of cells 3a. While cells 3a within the color bit code 3 are adjacent to two other cells 3a, endpoint cells are adjacent to only one other cell 3a. There are two such endpoint cells within the color bit code 3. In addition, the colors assigned to these two endpoint cells are different. This makes it possible to determine whether an endpoint cell is the starting cell 3a (hereinafter referred to as the starting cell) or the ending cell 3a (hereinafter referred to as the ending cell) based on the color assigned to it.
[0024] As described above, the color bit code 3 allows specific data to be represented by, for example, a transition (arrangement) of three colors. Therefore, there are loose restrictions on the size and shape of the area occupied by each color in the color bit code 3, and high readability can be achieved even when the color bit code 3 is applied to, for example, an uneven surface or a flexible material, or when it is displayed on a display device such as digital signage.
[0025] While colors (arrangements) are easier to recognize than characters, figures, or QR codes (registered trademarks) even when the camera 2a (imaging device) is not in focus with high precision, the color bit code 3 is composed of colored cells and is recognized by the arrangement of those colors. Therefore, in environments where it is difficult to focus the camera 2a with high precision on each object in the surroundings because the imaging device is moving, the color bit code 3 is particularly suitable in terms of ease of recognition.
[0026] The configuration of the image processing device 10 according to this embodiment will be described below. Figure 4 shows an example of the hardware configuration of the image processing device 10. As shown in Figure 4, the image processing device 10 includes a non-volatile memory 12, a CPU 13, a main memory 14, and a wireless communication device 15, etc., connected to a bus 11, and functions as an edge computer as a whole.
[0027] The non-volatile memory 12 stores various programs. The programs stored in the non-volatile memory 12 include software that runs on the image processing device 10.
[0028] The CPU 13 executes various programs stored in, for example, the non-volatile memory 12. The CPU 13 also controls the entire image processing device 10.
[0029] Main memory 14 is used, for example, as a work area required when the CPU 13 executes various programs.
[0030] The wireless communication device 15 has a function to control communication with, for example, an external server device 20.
[0031] In Figure 2, the image processing device 10 is described as comprising a non-volatile memory 12, a CPU 13, a main memory 14, and a wireless communication device 15. However, the image processing device 10 may also be configured to include the camera 2a described above. In this case, the image processing device 10 with the camera 2a can be mounted (integrated) into the mobile body 2 described above.
[0032] Figure 5 shows an example of the functional configuration of the image processing device 10. As shown in Figure 5, the image processing device 10 includes a storage unit 101, an image acquisition unit 102, a decoding processing unit 103, a code position acquisition unit 104, a moving object position calculation unit 105, a moving distance calculation unit 106, and a transmission processing unit 107.
[0033] In this embodiment, the image acquisition unit 102, the decoding processing unit 103, the code position acquisition unit 104, the moving object position calculation unit 105, the movement distance calculation unit 106, and the transmission processing unit 107 are implemented by, for example, the CPU 13 (i.e., the computer of the image processing device 10) shown in Figure 4, which executes a predetermined program stored in the non-volatile memory 12; in other words, they are implemented by software. The program executed by this CPU 13 may be pre-stored and distributed on a computer-readable storage medium, or it may be downloaded to the image processing device 10 via the network 30.
[0034] The storage unit 101 pre-stores information indicating the real-world position of the color bit code 3 located in the target space (hereinafter referred to as code position information). In the code position information, identification information such as an ID represented by the color bit code 3 is associated with the real-world position of the color bit code 3. That is, in this embodiment, the identification information represented by the color bit code 3 (hereinafter referred to as code ID) is used as an identifier to identify the color bit code 3.
[0035] The image acquisition unit 102 acquires an image containing a color bit code 3 captured by the camera 2a installed on the mobile body 2 from the camera 2a. The image acquired by the image acquisition unit 102 is composed of multiple pixels, which are the smallest units of color information.
[0036] The decoding processing unit 103 reads (decodes) the color bit code 3 contained in the image acquired by the image acquisition unit 102. The decoding by the decoding processing unit 103 is performed based on the color transitions in the color bit code 3 (that is, the color transitions assigned to each of the multiple cells 3a that make up the color bit code 3). As a result, the decoding processing unit 103 obtains the code ID represented by the color bit code 3 contained in the image acquired by the image acquisition unit 102.
[0037] The code position acquisition unit 104 acquires the real-space position of the color bit code 3 identified by the code ID (i.e., the color bit code 3 read by the decoding unit 103) from the code position information stored in the storage unit 101, based on the code ID acquired by the decoding processing unit 103.
[0038] The moving object position calculation unit 105 calculates the position of the moving object 2 based on the position of the color bit code 3 on the image acquired by the image acquisition unit 102 and the position of the color bit code 3 in real space acquired by the code position acquisition unit 104.
[0039] In this embodiment, a color bit code 3 is placed in the target space. For example, as shown in Figure 6, if an image is captured by the camera 2a with the color bit code 3 included in the field of view 2b of the camera 2a (i.e., an image including the color bit code 3 is acquired by the image acquisition unit 102), the position of the moving object 2 can be calculated using the color bit code 3 as described above.
[0040] However, as shown in Figure 7, depending on the target space (for example, the layout of a factory or warehouse), the color bit code 3 may always be located in the direction of travel (path of movement) of the moving object 2 (i.e., the color bit code 3 is not necessarily included in the field of view 2b of camera 2a). If the color bit code 3 is not captured by camera 2a, the position of the moving object 2 cannot be calculated using the color bit code 3. In this embodiment, "includes color bit code 3" also includes concepts such as "color bit code 3 is recognized". Furthermore, in this embodiment, "color bit code 3 is not captured by camera 2a" includes cases where, for example, it could be captured in a format but the camera 2a's sensor or the like could not recognize the color bit code 3. The same applies in the following description.
[0041] Therefore, in this embodiment, if the color bit code 3 is not captured by the camera 2a (i.e., the image acquired by the image acquisition unit 102 does not include the color bit code), the movement distance calculation unit 106 calculates the distance the moving body 2 has moved between the capture of the two images (hereinafter referred to as the movement distance of the moving body 2) based on the image acquired by the image acquisition unit 102 and an image captured by the camera 2a before that image (i.e., an image captured before the moving body 2 moved to its current position).
[0042] When the distance traveled by the moving object 2 is calculated by the distance traveled by the moving object 2 in this manner, the moving object position calculation unit 105 can calculate the position of the moving object 2 based on the position of the moving object 2 at the time the image captured by the camera 2a was taken before the image acquired by the image acquisition unit 102 described above, and the calculated distance traveled by the moving object 2.
[0043] Furthermore, images captured by camera 2a before the images acquired by the image acquisition unit 102 described above, and information indicating the position of the moving object 2 at the time the images were captured (hereinafter referred to as moving object position information), are stored, for example, in the storage unit 101.
[0044] Figure 8 shows an example of the data structure of the code location information stored in the storage unit 101 shown in Figure 5.
[0045] As shown in Figure 8, the code position information includes X-coordinate (value), Y-coordinate (value), and Z-coordinate (value) representing the position of the color bit code 3 in real space, associated with a code ID for identifying the color bit code 3. In this embodiment, the position of the color bit code 3 in real space included in the code position information may, for example, be the position corresponding to the center of the color bit code 3, or it may be the position corresponding to either one of the ends of the color bit code 3. Note that the X-coordinate, Y-coordinate, and Z-coordinate included in this code position information are, for example, coordinate values in an XYZ coordinate space defined with respect to a predetermined point in the target space, but other forms of values may be used as long as they represent a specific position in the target space (real space).
[0046] Here, it is assumed that multiple color bit codes 3 are arranged in the target space, and that the storage unit 101 stores multiple code location information, including code location information 101a to 101c.
[0047] In the example shown in Figure 8, the code location information 101a includes the X coordinate "X coordinate value 1", the Y coordinate "Y coordinate value 1", and the Z coordinate "Z coordinate value 1", corresponding to the code ID "001". According to this code location information 101a, the color bit code 3 identified by the code ID "001" is located at the position in real space represented by the X coordinate value 1, the Y coordinate value 1, and the Z coordinate value 1.
[0048] The code location information 101b includes the X coordinate "X coordinate value 2", the Y coordinate "Y coordinate value 2", and the Z coordinate "Z coordinate value 2", corresponding to the code ID "002". According to this code location information 101b, the color bit code 3 identified by the code ID "002" is located at the position in real space represented by the X coordinate value 2, the Y coordinate value 2, and the Z coordinate value 2.
[0049] The code location information 101c includes the X coordinate "X coordinate value 3", the Y coordinate "Y coordinate value 3", and the Z coordinate "Z coordinate value 3", corresponding to the code ID "003". According to this code location information 101c, the color bit code 3 identified by the code ID "003" is located at the position in real space represented by the X coordinate value 3, the Y coordinate value 3, and the Z coordinate value 3.
[0050] Although only code location information 101a to 101c has been described here, the storage unit 101 stores code location information for each color bit code 3 located in the target space to which the mobile body 2 moves. Furthermore, the data structure of code location information other than code location information 101a to 101c is the same as the data structure of code location information 101a to 101c.
[0051] Furthermore, in the example shown in Figure 8, code position information indicating a single location in real space is shown for one color bit code 3 (code ID). However, this code position information may also indicate, for example, the locations in real space at both ends of the color bit code 3 (i.e., multiple locations for one color bit code 3).
[0052] Hereinafter, an example of the processing procedure of the image processing apparatus 10 according to this embodiment will be described with reference to the flowchart in Figure 9.
[0053] In this embodiment, images are continuously captured by the camera 2a installed on the mobile body 2 while the mobile body 2 is moving through the target space, and the process shown in Figure 9 is repeatedly executed each time an image is captured.
[0054] Furthermore, it is assumed that the storage unit 101 stores an image (hereinafter referred to as the first image) captured by the camera 2a installed on the mobile body 2 before the process shown in Figure 9 is executed, and mobile body position information indicating the real-space position of the mobile body 2 at the time the first image was captured (hereinafter referred to as the first position). The mobile body position information includes the X coordinate (value), Y coordinate (value), and Z coordinate (value), similar to the code position information described above.
[0055] First, as described above, images are continuously captured by the camera 2a installed on the mobile body 2. Let's assume that the mobile body 2 moves from the first position, and an image (hereinafter referred to as the second image) is captured by the camera 2a at the position after the move (hereinafter referred to as the second position). In this case, the image acquisition unit 102 acquires the second image captured by the camera 2a (step S1).
[0056] In this embodiment, multiple color bit codes 3 are arranged in the target space. As a result, the second image acquired by the image acquisition unit 102 may include a color bit code 3 among the multiple color bit codes 3 that is located near (in the direction of travel of) the moving object 2 moving in the target space.
[0057] Once the process in step S1 is executed, the decoding processing unit 103 performs image analysis on the second image (step S2). The image analysis process performed in step S2 corresponds to the decoding (reading) of the color bit code 3 contained in the second image. The decoding process will be described in detail below.
[0058] First, the decoding processing unit 103 performs a process to divide the second image into color regions (hereinafter referred to as the color region division process). Generally, the second image is composed of various colors (pixels that display various colors), including the background, and these patterns are also diverse. Therefore, in the color region division process, the colors in this second image are divided into red, green, blue, and achromatic in the color space, and the color of each pixel is assigned to one of these regions (color uniformization process). In other words, the color region division process performs a labeling process for each pixel in the second image.
[0059] The red, green, and blue mentioned above are defined as colors assigned to each cell constituting the color bit code 3 (hereinafter referred to as "constituent colors"). However, in the color region division process, if a color is included within a certain range that can be recognized as one of these constituent colors in the color space, taking into account factors such as lighting, coloring, and fading, then that color (or its pixel) will be classified as a constituent color. That is, for example, when dividing the red region, all pixels displaying a certain range of colors centered on that red will be recognized as the red region. The same applies when dividing the green and blue regions.
[0060] Furthermore, achromatic colors are colors other than those recognized as red, green, and blue in color range classification processing.
[0061] Furthermore, as mentioned above, the second image undergoes a color equalization process, but generally, this second image often contains noise components. It is preferable to remove this noise by performing noise reduction processing on minute color anomalies corresponding to this noise, such as matching the surrounding colors or averaging them.
[0062] Next, the decoding processing unit 103 performs a process (hereinafter referred to as the code extraction process) to extract a region of the color bit code 3 (hereinafter referred to as the code region) which is made up of multiple constituent color regions (red, green, and blue) arranged based on each color region separated by the color region separation process. In this code extraction process, the code region is extracted based on the surrounding colors of each color region (for example, the arrangement of regions of other constituent colors and achromatic regions, etc.) and the number of cells 3a that make up the color bit code 3. The code region extracted by the code extraction process is represented, for example, by coordinate values (XY coordinate values) on the second image.
[0063] The color area segmentation process and code extraction process described above are disclosed in publications such as Japanese Patent Application Publication No. 2008-287414, so a detailed explanation of them will be omitted here.
[0064] Next, the decoding processing unit 103 decodes the color bit code 3 based on the color transitions (i.e., the order of the multiple color regions) in the code region extracted from the second image by the code extraction process. This allows the acquisition of a code ID represented by the color transitions in the color bit code 3, for example, from the starting cell (the endpoint cell representing the start of the color bit code 3) to the ending cell (the endpoint cell representing the end of the color bit code 3).
[0065] In this explanation, we have described the image analysis process when the second image contains a color bit code 3. However, depending on the direction of travel of the moving object 2 or the orientation of the camera 2a installed on the moving object 2, the second image may not contain a color bit code 3. In this case, even if the image analysis process in step S2 is performed, the code region will not be extracted, and the code ID will not be obtained.
[0066] If the process in step S2 is executed, the decoding processing unit 103 determines whether or not the second image contains the color bit code 3 based on whether or not the code ID was obtained as a result of the execution of the process in step S2 (step S3).
[0067] If it is determined that the second image contains a color bit code 3 (i.e., the code ID has been obtained) (YES in step S3), the code position acquisition unit l04 is activated, and the code position acquisition unit 104 acquires the real-space position of the color bit code 3 identified by the code ID (hereinafter referred to as the target code ID) (hereinafter referred to as the target color bit code 3) (step S4).
[0068] In this case, the code position acquisition unit 104 identifies the code position information containing the target code ID from the code position information stored in the storage unit 101, and acquires the X coordinate value, Y coordinate value, and Z coordinate value included in the identified code position information as the real-space position of the target color bit code 3.
[0069] When the process in step S4 is executed, the moving body position calculation unit 105 calculates the position of the moving body 2 in real space at the time the second image described above was captured (i.e., the second position of the moving body 2 after moving from the first position) (step S5).
[0070] Here, even if the second image contains only one target color bit code 3, it is still possible to calculate the second position. However, in order to calculate the second position of the moving object 2 with higher accuracy, it is preferable that the second image contains at least two target color bit codes 3. Below, the process of step S5 will be described assuming that the second image contains two target color bit codes 3.
[0071] In this case, the process in step S2 described above (code extraction process) extracts two code regions corresponding to each of the two target color bit codes 3. As a result, in step S2, the positions (XY coordinate values) on the second image of each of the two target color bit codes 3's end cells (start cell and end cell) can be extracted from the two extracted code regions.
[0072] Furthermore, in step S4, the spatial positions of each of the two target color bit codes 3 are obtained, and the storage unit 101 stores code position information indicating the spatial positions of the cells at both ends of the color bit code 3 (start cell and end cell) for each color bit code 3. According to this, in step S4, the spatial positions of the cells at both ends of each of the two target color bit codes 3 included in the second image are obtained.
[0073] In this case, the mobile body position calculation unit 105 calculates the second position of the mobile body 2 by applying the positions of the two end cells of each of the two target color bit codes 3 on the second image (four points on the second image) and the positions of the two end cells of each of the two target color bit codes 3 in real space (four points in real space) to a perspective projection model. It is assumed that the field of view of the camera 2a installed on the mobile body 2 and the resolution of the image captured by the camera 2a are known, and that information regarding the field of view and resolution is managed within the image processing device 10. This information regarding the field of view and resolution is also used in the calculation process of the second position of the mobile body 2 described above.
[0074] In other words, in this embodiment, the second position of the moving object 2 is calculated using the space defined by the end cells of each of the two target color bit codes included in the second image (i.e., the four points extracted based on the two target color bit codes 3). In this case, the condition for calculating the position of the moving object 2 is that the end cells of each of the two target color bit codes 3 captured by the camera 2a are not on the same plane, and it is preferable that multiple color bit codes 3 are arranged in the target space such that an image satisfying this condition in relation to the camera 2a is captured.
[0075] The method for calculating the second position of the moving object 2 described here is just one example; other methods may be used as long as the second position of the moving object 2 is calculated based on the position of the target color bitcode 3 on the image and the position of the target color bitcode 3 in real space.
[0076] Furthermore, in this embodiment, it is sufficient to calculate the X, Y, and Z coordinate values corresponding to the second position of the moving body 2 as the second position of the moving body 2. However, for example, the vertical tilt angle, horizontal tilt angle, and rotation angle of the camera 2a (on which the moving body 2 is installed) may also be calculated.
[0077] On the other hand, if it is determined in step S3 that the second image does not contain or cannot recognize the color bit code 3 (NO in step S3), the second position of the moving object 2 cannot be calculated using the color bit code 3.
[0078] Therefore, if the second image does not contain or cannot recognize the color bit code 3, the travel distance calculation unit 106 is activated, and the travel distance calculation unit 106 acquires the first image from the storage unit 101, and calculates the travel distance of the moving body 2 from the first position based on the first image acquired from the storage unit 101 and the second image acquired in step S1 (step S6).
[0079] The following is a brief explanation of the process in step S6. In step S6, the movement distance calculation unit 106 extracts multiple feature points from, for example, the first and second images. The multiple feature points extracted from the first and second images correspond to the edges of the subject contained in the first and second images (for example, goods placed in a factory or warehouse). The movement distance calculation unit 106 associates each of the extracted feature points between the first and second images and calculates the movement distance of the moving object 2 from the time the first image was captured to the time the second image was captured, based on the amount of movement (displacement) of the associated feature points. The movement distance calculated in step S6 is information that includes the direction of movement and is represented, for example, by components in the X-axis direction, Y-axis direction, and Z-axis direction.
[0080] When the process in step S6 is executed, the mobile body position calculation unit 105 is activated. The mobile body position calculation unit 105 acquires the mobile body position information stored in the storage unit 101 from the storage unit 101 and calculates the second position of the mobile body 2 based on the first position indicated by the mobile body position information and the travel distance calculated in step S6 (step S5). Specifically, the mobile body position calculation unit 105 can calculate the second position of the mobile body 2 (X coordinate value, Y coordinate value, and Z coordinate value) by adding the travel distance calculated in step S6 (components in the X coordinate axis direction, Y coordinate axis direction, and Z coordinate axis direction) to the first position indicated by the mobile body position information acquired from the storage unit 101 (i.e., the X coordinate value, Y coordinate value, and Z coordinate value included in the mobile body position information).
[0081] When the process in step S5 described above is executed, the mobile body position information indicating the second position of the mobile body 2 calculated in step S5 is transmitted to the server device 20 by the transmission processing unit 107.
[0082] The process shown in Figure 9 is repeatedly executed while the moving object 2 is moving through the target space. The second image acquired in step S1 is stored in the storage unit 101 for use as the first image when the process shown in Figure 9 is executed next. Similarly, the second position of the moving object (moving object position information) calculated in step S5 is stored in the storage unit 101 for use as the first position (moving object position information) when the process shown in Figure 9 is executed next. As a result, each time the process shown in Figure 9 is executed, the storage unit 101 is always in a state where it contains moving object value information indicating the first position and the first image captured at that first position.
[0083] Here, with reference to Figures 6 and 7 described above, an overview of the operation of the image processing device 10 according to this embodiment will be explained. For example, when the process shown in Figure 9 is executed while the moving object 2 is at the position shown in Figure 6, a second image including a color bit code 3 is captured by the camera 2a installed on the moving object 2, and the position of the moving object 2 (second position) is calculated using the color bit code 3. In addition, the second image captured by the camera 2a at the position of the moving object 2 shown in Figure 6 is stored in the storage unit 101 as the first image, and the position of the moving object 2 (moving object position information indicating the position) calculated using the color bit code 3 is stored in the storage unit 101 as the first position (moving object position information indicating the position).
[0084] Next, when the process in Figure 9 is executed when the mobile body 2 moves from the position shown in Figure 6 to the position shown in Figure 7, a second image that does not include the color bit code 3 is captured by the camera 2a installed on the mobile body 2. Therefore, the position of the mobile body 2 (second position) is calculated using the mobile body position information stored in the storage unit 101 (i.e., the position of the mobile body 2 shown in Figure 6), the first image stored in the storage unit 101 (i.e., the image captured by the camera 2a at the position of the mobile body 2 shown in Figure 6), and the distance the mobile body 2 has moved, calculated based on the second image (i.e., the image captured by the camera 2a at the position of the mobile body 2 shown in Figure 7).
[0085] As described above, in this embodiment, a first image captured by a camera 2a (imaging device) installed on a moving object moving within a target space where a color bit code 3 (optical recognition code) is placed, and the first position of the moving object 2 at the time the first image was captured (moving object position information indicating this position) are stored in the storage unit 101, and a second image captured by the camera 2a after the moving object 2 has moved from the first position is acquired. In this embodiment, if the second image acquired in this way includes a color bit code 3, the code ID (identification information) represented by the color bit code 3 is obtained by decoding the color bit code 3, the position of the color bit code 3 in real space is obtained based on the acquired code ID, and the second position of the moving object 2 (i.e., the position after the moving object 2 has moved from the first position) is calculated based on the position of the color bit code 3 in the second image and the position of the color bit code 3 in real space. On the other hand, if the second image does not contain the color bit code 3, the distance traveled by the moving body 2 from the first position is calculated based on the first image and the second image stored in the storage unit 101 (i.e., two images taken before and after the movement), and the second position of the moving body 2 is calculated based on the first position stored in the storage unit 101 and the calculated distance traveled.
[0086] In this embodiment, with this configuration, the position of the moving object 2 (moving object position information) obtained by calculation in the image processing device 10 can be managed in the server device 20, and the position of the moving object 2 managed in the server device 20 can be used, for example, to track (monitor) the moving object 2 or to correct the position of the moving object 2.
[0087] Furthermore, since the process of calculating the position of the moving object 2 in the image processing device 10 described above (i.e., the process shown in Figure 9) is executed repeatedly (i.e., periodically) while the moving object 2 is moving, in this embodiment, by periodically obtaining the position of the moving object 2, continuous tracking of the moving object 2 can be achieved.
[0088] Furthermore, if multiple moving objects 2 exist in the target space, the image processing device 10 (transmission processing unit 107) shall transmit to the server device 20, along with moving object position information indicating the location of each moving object 2, identification information for identifying each moving object 2 (hereinafter referred to as the moving object ID). This allows the server device 20 to manage the position of each moving object 2. Note that the moving object ID for identifying each moving object 2 only needs to be managed in advance within the image processing device 10.
[0089] In general, GPS functionality is sometimes used to measure (position) the location of the moving object 2. However, if the moving object 2 is moving within an indoor space such as a factory or warehouse, it may not be possible to accurately measure its location.
[0090] Furthermore, it is conceivable to measure the position of the moving object 2 using beacons, radio waves, electromagnetic waves, etc., transmitted from various transmitters placed in an indoor space, for example. However, even with such a configuration, the accuracy of position measurement may decrease due to radio wave interference or metal reflections.
[0091] In contrast, in this embodiment, as described above, the camera 2a is configured to capture a color bit code 3 to calculate (measure) the position of the moving object 2, making it possible to obtain the position of the moving object 2 moving within the target space (indoor space) with high accuracy.
[0092] Furthermore, the method of calculating the position of the moving object 2 by capturing a color bit code 3 in the camera 2a described in this embodiment may be used complementaryly (supplementarily) to obtain a more accurate position of the moving object 2 when the accuracy of the position of the moving object 2 measured using the GPS function, beacons, wireless communication, radio waves, or electromagnetic waves described above is low.
[0093] Furthermore, when calculating the position of the moving object 2 using image analysis (image recognition), a common method involves attaching a marker (such as a code) to the moving object 2 and capturing images of the marker with a camera placed in the target space. However, this method requires capturing images of the marker (moving object 2) as it passes instantaneously in front of the camera, making it difficult to capture the marker and potentially preventing accurate measurement of the moving object 2's position.
[0094] Furthermore, when attaching a marker to the mobile body 2, the size of the marker must be large enough to be recognizable, but there are limits to the size of the marker (tag) that can be attached to the mobile body 2.
[0095] In contrast, this embodiment employs a configuration in which a camera 2a installed on the mobile body 2 captures a color bit code 3 arranged in the target space, thereby reducing the difficulty for the camera 2a to capture the color bit code 3. Furthermore, by arranging the color bit code 3 considering the direction (orientation) of movement of the mobile body 2, it may be possible to capture the color bit code 3 more easily.
[0096] Furthermore, in this embodiment, since the color bit code 3 can be placed in the target space (for example, a wall surface), the restrictions on the size, shape, and placement of the color bit code 3 can be relaxed (i.e., the degree of freedom can be increased) compared to the case where the color bit code 3 is attached to the mobile body 2.
[0097] Furthermore, in this embodiment, by installing a camera 2a for each mobile body 2, even if the target space in which the mobile body 2 moves expands, for example, it is possible to obtain the position of the mobile body 2 moving through the expanded space simply by placing a new color bit code 3 in the expanded space. In other words, in this embodiment, it is possible to accommodate expansion of the target space without adding additional cameras 2a, which tend to be expensive, and thus reduce the cost of constructing the image processing system 1.
[0098] Furthermore, in order to achieve highly accurate positioning of the moving object 2, it is preferable to place a large number of color bit codes 3 in the target space so that the image captured by the camera 2a installed on the moving object 2 as it moves through the target space always includes a color bit code 3.
[0099] However, as described above, in order to calculate the position of the moving object 2 using the color bit code 3, it is necessary to measure the position of the color bit code 3 in real space and register (store) the code position information indicating that position in the storage unit 101 in advance. If a large number of color bit codes are to be placed in the target space, the initial setup, including the registration of the code position information, takes an enormous amount of time. Furthermore, considering that a large number of transported goods are expected to be placed in the target space (factory or warehouse, etc.) where the color bit code 3 is to be placed, and that there are various layouts (structures) of such a target space (factory or warehouse, etc.), it is practically difficult to arrange the color bit code 3 in such a way that it satisfies the condition that any color bit code 3 can be imaged from all positions in the target space.
[0100] Therefore, in this embodiment, if the image captured by camera 2a includes a color bit code 3, the position of the moving object 2 is calculated using the color bit code 3. If the image captured by camera 2a does not include a color bit code 3, the position of the moving object 2 is calculated using the distance traveled by the moving object 2, which is calculated based on two images (multiple feature points extracted from them) captured before and after the movement. This makes it possible to obtain the position of the moving object 2 even if the moving object 2 (camera 2a) is in a position where it is not possible to capture the color bit code 3.
[0101] In other words, in this embodiment, it is sufficient to place a minimum number of color bit codes 3 in the target space to calculate the position of the moving body 2, thereby reducing the initial setup cost (i.e., the man-hours required for initial setup, including registration of code position information) by placing the color bit codes 3 in the target space.
[0102] In this embodiment, if the image does not contain the color bit code 3, the position of the moving object 2 can be calculated using the distance traveled by the moving object 2, which is calculated based on the displacement of multiple feature points extracted from two images taken before and after the movement. However, it is possible that the position of the moving object 2 calculated using this distance will have an error compared to the actual position of the moving object 2. As described above, the process shown in Figure 9 is repeatedly executed each time an image is captured by the camera 2a while the moving object 2 is moving through the target space. However, if images that do not contain the color bit code 3 are captured consecutively, the position of the moving object 2 is calculated (updated) while sequentially reflecting (adding) the distance traveled in step S6 shown in Figure 9. As a result, it is possible that a position of the moving object 2 with accumulated errors (i.e., a position that deviates from the actual position of the moving object 2) will be obtained.
[0103] However, in this embodiment, when an image containing a color bit code 3 is captured, the position of the moving object 2 is calculated using the position of the color bit code 3 in real space, rather than the movement distance described above. This allows the accumulated error in the position of the moving object 2 calculated when an image without a color bit code 3 is captured to be reset. This makes it possible to suppress a decrease in the accuracy of the position of the moving object 2.
[0104] In this embodiment, the second position of the moving body 2 is calculated using the distance traveled by the moving body 2, which is calculated based on the displacement of feature points extracted from two images taken before and after movement. However, this distance traveled may also be obtained using another system (hereinafter referred to as an external system) that includes other sensors, such as an acceleration sensor for detecting the acceleration of the moving body 2, a rotation sensor for detecting the rotation speed of the wheels (tires) of the moving body 2, and a distance sensor (e.g., Lidar) for measuring the distance between the moving body 2 and other objects.
[0105] However, when the image processing device 10 according to this embodiment is operated in combination with an external system, delays occur in the coordination between the image processing device 10 and the external system, resulting in a lack of real-time performance. On the other hand, the configuration for calculating the movement distance of the moving body 2 as described in this embodiment has the advantage of achieving a certain level of real-time performance without requiring other sensors (i.e., coordination with an external system).
[0106] In other words, in this embodiment, since two types of information (the position of the mobile body 2) can be obtained from the image using the camera 2a installed on the mobile body 2 (i.e., a single device), the mechanism of the mobile body 2 can be simplified without incorporating other sensors or the like.
[0107] In this embodiment, for example, the position of the moving object 2 can be calculated using the space defined by the end cells of each of the two color bit codes 3 included in the image captured by the camera 2a (i.e., the four points extracted based on the two color bit codes 3). However, the accuracy of the position of the moving object 2 depends on the volume of the space defined by the end cells of each of the color bit codes 3 included in the image. In other words, the longer the distance between the end cells of each of the two color bit codes 3 included in the image, the more accurately the position of the moving object 2 can be calculated.
[0108] Therefore, in this embodiment, it is preferable that the color bit code 3 arranged in the target space is formed such that the distance between the cells at both ends of the color bit code 3 is long. Specifically, the color bit code 3 is formed in a straight line, for example. It is also preferable that the distance (spacing) between two color bit codes 3 included in one image is long, but the position in which each color bit code 3 is arranged can be determined based on the field of view of the camera 2a, the size of the target space in which the moving object 2 moves, or the path along which the moving object 2 moves within the target space.
[0109] In this embodiment, the use of color bit code 3 as the optical recognition code has been described, but other optical recognition codes (automatic recognition technology) such as barcodes or 2D codes may also be used as the optical recognition code.
[0110] In this way, when using optical recognition codes other than color bit code 3 (such as barcodes or 2D codes), for example, by arranging the optical recognition codes so that four of them are included in a single image, the position of the moving object 2 can be calculated using the space defined by the four points extracted based on those four optical recognition codes.
[0111] Furthermore, although the position of the moving object 2 was described here as being calculated using a space defined by four points extracted from an optical recognition code, the position of the moving object 2 can also be calculated using a plane defined by three points (their positions in the image and in real space) extracted based on the optical recognition code. Specifically, if information such as the field of view of camera 2a, the resolution of the image captured by camera 2a, the vertical tilt of camera 2a (e.g., facing horizontally or upwards), and the height at which camera 2a is installed (e.g., at a positive height) is known, the position of the moving object 2 can be calculated by applying the positions of the three points extracted based on the optical recognition code, both in the image and in real space, to a perspective projection model.
[0112] Furthermore, when calculating the position of the moving object 2 using a plane defined by three points (positions on the image and in real space) extracted based on an optical recognition code, multiple positions of the moving object 2 are calculated. However, by utilizing the known information described above, the optimal position can be narrowed down from among these multiple positions of the moving object 2.
[0113] Furthermore, the position of the moving object 2 can also be calculated using a line defined by two points (their positions in the image and in real space) extracted based on an optical recognition code. Specifically, if information such as the field of view of camera 2a, the resolution of the image captured by camera 2a, the vertical tilt of camera 2a, and the height at which camera 2a is installed is known, the position of the moving object 2 can be calculated based on the positions in the image and in real space of two points extracted based on an optical recognition code. In this case, the intersection of the angles at which the two points extracted based on the optical recognition code are visible is calculated as the position of the moving object 2.
[0114] Furthermore, when calculating the position of the moving object 2 using a plane defined by three points extracted based on the optical recognition code described above, the vertical direction of the camera 2a and the height at which the camera 2a is installed can be approximate information to some extent. However, when calculating the position of the moving object 2 using a line defined by two points extracted based on the optical recognition code, it is preferable that the vertical tilt of the camera 2a and the height at which the camera 2a is installed be accurate values.
[0115] Furthermore, the position of the moving object 2 can also be calculated using, for example, a single point (its position in the image and in real space) extracted based on an optical recognition code. Specifically, if information such as the field of view of camera 2a, the resolution of the image captured by camera 2a, the vertical tilt of camera 2a, the height at which camera 2a is installed, and the orientation (direction) of camera 2a is known, the distance from camera 2a to the optical recognition code can be obtained by triangulation, and the position of the moving object 2 can be calculated based on this distance.
[0116] In this embodiment, a method for calculating the position of the moving object 2 using 1 to 4 points extracted based on an optical recognition code has been described. However, the more points used to calculate the position of the moving object 2, the higher the accuracy of the position, but the stricter the restrictions on the placement of the optical recognition code, etc. Therefore, the method (calculation algorithm) for calculating the position of the moving object 2 described above should be appropriately selected based on, for example, the layout of the target space in which the moving object 2 moves (i.e., whether or not the optical recognition code can be appropriately placed).
[0117] Furthermore, if the camera 2a installed on the mobile body 2 captures an image of an optical recognition code, and the position of the mobile body 2 is calculated based on the image position and the position of the optical recognition code in real space, then methods other than those described in this embodiment may be applied as methods for calculating the position of the mobile body 2.
[0118] In this embodiment, it has been explained that when an image contains a color bit code 3 (optical recognition code), the position of the moving object 2 is calculated using the color bit code 3, and when an image does not contain a color bit code 3 (optical recognition code), the position of the moving object 2 is calculated using the distance traveled based on two images taken before and after the movement. However, as described above, in order to calculate the position of the moving object 2 with high accuracy using the color bit code 3, it is preferable that at least two color bit codes 3 are included in the second image. In other words, for example, if an image contains only one color bit code 3, even if that color bit code 3 is used, the position of the moving object 2 may not be calculated with sufficient accuracy.
[0119] Therefore, in this embodiment, if the image contains two or more color bit codes 3, the position of the moving object 2 is calculated using the color bit codes 3, and if the image does not contain two or more color bit codes 3, the position of the moving object 2 is calculated using the distance traveled, which is calculated based on two images taken before and after the movement (hereinafter referred to as the first modified example).
[0120] Furthermore, as described above, when calculating the position of the moving object 2 using the distance traveled, there is a possibility that an error may occur in the position of the moving object 2 (i.e., the accuracy of the second position may be low). Therefore, in the first modified example, if the image contains only one color bit code 3, the position of the moving object 2 calculated using the distance traveled may be corrected using the color bit code 3 (its position in real space). Specifically, if the two end cells of one color bit code 3 are two points extracted based on the optical recognition code, then, as described above, it is possible to calculate the position of the moving object 2 using the line defined by these two points. Therefore, it is conceivable to correct the position of the moving object 2 calculated using the distance traveled based on the position of the moving object 2 calculated using the line defined by these two points (i.e., improve the accuracy of the position of the moving object 2). It should be noted that the calculation or correction process described here is just one example, and other processes may be performed as long as the configuration is such that the position of the moving object 2 calculated using the distance traveled is calculated or corrected using the first position of the moving object 2, two images taken before and after the movement, and one color bit code 3 (optical recognition code) contained in the images.
[0121] With this first modified configuration, if the image contains two or more color bit codes 3, the second position of the moving object 2 can be calculated with high accuracy using the color bit codes 3 (or the four points extracted based on them), and if the image contains one color bit code 3, the reduction in accuracy of the second position of the moving object 2, which is calculated using the distance traveled, can be suppressed by using the color bit code 3.
[0122] In the first modified example described above, it is assumed that when there is one color bit code 3 recognized in the image, the position of the moving object (second position) is calculated based on the position of the color bit code 3 in real space, as well as two images (first and second images) taken before and after the movement, and the position information of the moving object (first position). However, even if there are two or more color bit codes 3, the configuration may be such that the position of the moving object (second position) is calculated based on the position of the color bit code 3 in real space, two images (first and second images) taken before and after the movement, and the position information of the moving object (first position). With such a configuration, it is possible to realize an operation in which, for example, when the number of color bit codes 3 is less than a predetermined value (threshold), the position of the moving object (second position) is calculated based on the position of the color bit code 3 in real space, two images (first and second images) taken before and after the movement, and the position information of the moving object (first position). Furthermore, "the number of color bitcode 3s is below the threshold" includes cases where the image contains (is recognized) a predetermined number (i.e., the threshold) or more of color bitcode 3s, but the number of color bitcodes that can be decoded is below the threshold.
[0123] Here, for convenience, the optical recognition code is assumed to be color bit code 3, but the first modification described above is also applicable when the optical recognition code is something other than color bit code 3. Specifically, for example, if the image contains an optical recognition code that can extract four points (e.g., four optical recognition codes), the position of the moving object 2 is calculated using the optical recognition code, and if the image contains an optical recognition code that can extract three or fewer points, the position of the moving object 2, calculated using the distance traveled, is corrected using the optical recognition code.
[0124] In this embodiment, the mobile body 2 has been described as an automated guided vehicle, but the mobile body 2 may be other mobile bodies such as an unmanned aerial vehicle like a drone or an autonomous mobile robot. Furthermore, the mobile body 2 may be a vehicle that a person can ride in and drive.
[0125] Furthermore, although this embodiment has been described primarily with the target space being an indoor space, the target space in this embodiment may also be an outdoor space (that is, this embodiment may be applied to a mobile body moving outdoors).
[0126] Furthermore, although the process shown in Figure 9 has been described as being performed by the image processing device 10 in this embodiment, a part of the process performed by the image processing device 10 may be performed by, for example, a server device 20. In other words, in this embodiment, the process shown in Figure 9 may be performed by the entire image processing system 1 comprising the image processing device 10 and the server device 20.
[0127] It is also possible to configure the system so that, for example, the processing in step S1 shown in Figure 9 is performed on the image processing device 10 side, and the processing from step S2 onwards is performed on the server device 20 side. However, in such a configuration, the image processing device 10 must transmit images to the server device 20, which increases the amount of communication between the image processing device 10 and the server device 20. For this reason, from the viewpoint of reducing the amount of communication from the image processing device 10 to the server device 20, it is preferable to perform the processing up to at least step S2 on the image processing device 10 side.
[0128] Furthermore, as described above, when the process shown in Figure 9 is executed by the entire image processing system 1, each of the functional units 101 to 107 shown in Figure 5 may be distributed and arranged on the image processing device 10 or the server device 20, respectively. However, for example, the storage unit 101 may be located on an external device other than the image processing system 1. In this case, when the process of step S4 shown in Figure 9 is executed, the image processing system 1 should be configured to acquire (receive) code position information from the external device.
[0129] Furthermore, although the image processing device 10 and the server device 20 have been described as separate devices in this embodiment, the image processing device 10 and the server device 20 may be configured as a single unit.
[0130] Furthermore, the methods described in the above embodiments can also be distributed as programs that can be executed by a computer, stored on storage media such as magnetic disks (floppy disks, hard disks, etc.), optical disks (CD-ROMs, DVDs, etc.), magneto-optical disks (MO), and semiconductor memory.
[0131] Furthermore, the storage medium can be any form of storage, as long as it is capable of storing programs and is readable by a computer.
[0132] Furthermore, an operating system (OS) running on a computer, or middleware (MW) such as database management software or network software, may execute some of the processes necessary to realize this embodiment based on instructions from a program installed on the computer from a storage medium.
[0133] Furthermore, the storage medium in this invention is not limited to a medium independent of the computer, but also includes a storage medium that stores or temporarily stores programs that have been downloaded via a LAN, the Internet, or the like.
[0134] Furthermore, the storage medium is not limited to one; cases where the processing in this embodiment is performed from multiple media are also included in the storage medium in this invention, and the media configuration may be any configuration.
[0135] The computer in this invention executes each of the processes in this embodiment based on a program stored in a storage medium, and may be configured as a single device such as a personal computer, or as a system in which multiple devices are connected via a network.
[0136] Furthermore, the term "computer" in this invention is not limited to personal computers, but also includes arithmetic processing units, microcontrollers, and the like included in information processing equipment, and refers collectively to any equipment or device capable of realizing the functions of this invention through a program.
[0137] It should be noted that the present invention is not limited to the embodiments described above, and the components can be modified and implemented in practice without departing from the gist of the invention. Furthermore, various inventions can be formed by appropriately combining the multiple components disclosed in the embodiments. For example, some components may be deleted from all the components shown in the embodiments. Moreover, components from different embodiments may be appropriately combined.
[0138] The invention according to this embodiment is described below. [1] A storage means for storing a first image captured by an imaging device of a mobile body having an imaging device capable of recognizing an optical recognition code, and the first position of the mobile body at the time the first image was captured. A first acquisition means for acquiring a second image captured by the imaging device at a second position after the moving body has moved from the first position, A second acquisition means, which is activated when the optical recognition code is recognized in the second image, acquires the position of the optical recognition code in real space based on the optical recognition code, A calculation means that operates when the optical recognition code is not recognized in the second image, and calculates the second position of the moving body based on the first image, the second image and the first position. An image processing apparatus comprising the following: [2] The image processing apparatus according to [1], characterized in that, when the number of optical recognition codes recognized in the second image is one, the second position of the moving body is calculated based on the first image, the second image and the first position, in addition to the position of the optical recognition code in real space. [3] A mobile body having an imaging device capable of recognizing an optical recognition code, A storage means for storing a first image captured by the imaging device and the first position of the moving object at the time the first image was captured, A first acquisition means for acquiring a second image captured by the imaging device at a second position after the moving body has moved from the first position, A second acquisition means, which is activated when the optical recognition code is recognized in the acquired second image, acquires the position of the optical recognition code in real space based on the optical recognition code, A second calculation means, which is activated when the optical recognition code is not recognized in the acquired second image, calculates the second position of the moving object based on the first image, the second image, and the first position, A mobile body equipped with [a certain feature]. [4] A space in which a moving object described in any one of items [1] to [3] moves, wherein one or more optical recognition codes are arranged. [Explanation of Symbols]
[0139] 1...Image processing system, 2...Mobile body, 2a...Camera (imaging device), 3...Color bit code, 3a...Cell, 10...Image processing device, 11...Bus, 12...Non-volatile memory, 13...CPU, 14...Main memory, 15...Wireless communication device, 20...Server device, 30...Network, 101...Storage unit, 102...Image acquisition unit, 103...Decode processing unit, 104...Code position acquisition unit, 105...Mobile body position calculation unit, 106...Travel distance calculation unit, 107...Transmission processing unit.
Claims
[Claim 1] A storage means for storing a first image captured by an imaging device of a mobile body having an imaging device capable of recognizing an optical recognition code, and the first position of the mobile body at the time the first image was captured. A first acquisition means for acquiring a second image captured by the imaging device at a second position after the moving body has moved from the first position, A determination means for determining whether the second image contains the optical recognition code, A second acquisition means that operates when it is determined that the second image contains the optical recognition code, and acquires the position of the optical recognition code in real space based on the optical recognition code, A calculation means which operates when it is determined that the optical recognition code is not included in the second image, and calculates the second position of the moving body based on the first image, the second image and the first position, and An image processing apparatus comprising the following: