WO2022118482A1 - 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム - Google Patents

画像マッチング装置、画像マッチング方法及び画像マッチングプログラム Download PDF

Info

Publication number
WO2022118482A1
WO2022118482A1 PCT/JP2020/045351 JP2020045351W WO2022118482A1 WO 2022118482 A1 WO2022118482 A1 WO 2022118482A1 JP 2020045351 W JP2020045351 W JP 2020045351W WO 2022118482 A1 WO2022118482 A1 WO 2022118482A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
matching
partial
template image
template
Prior art date
Application number
PCT/JP2020/045351
Other languages
English (en)
French (fr)
Inventor
史拓 横瀬
晴夫 大石
公雄 土川
佐也香 八木
有記 卜部
美沙 深井
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2020/045351 priority Critical patent/WO2022118482A1/ja
Publication of WO2022118482A1 publication Critical patent/WO2022118482A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • This disclosure relates to an image matching device, an image matching method, and an image matching program.
  • Image matching is used to determine the presence or absence of an operation target (GUI (Graphical User Interface) control) displayed on the screen and to specify the position of the operation target.
  • GUI Graphic User Interface
  • Image matching is a technique for searching a part similar to a prepared template image from a search target image. The image to be searched is called a matched image. Image matching is widely used in various applications (Non-Patent Document 1).
  • image matching When image matching is executed, image matching returns one or more position information for which a match was established as an execution result. Image matching can be used even if the portion of the image to be searched does not exactly match the template image. In this case, image matching returns the degree of similarity between the template image and this portion of the image, along with the location of the portion of the image. This similarity is called the match rate.
  • the threshold value is often set in the template image.
  • the threshold represents how much similarity is acceptable.
  • the degree of similarity (match rate) is often expressed as a real number in the range of 0 to 1.
  • the similarity value may be expressed in any other way.
  • Non-Patent Document 1 the conventional image matching technique using a single template image as in Non-Patent Document 1 may be referred to as simple image matching.
  • Patent Document 1 it has been proposed to automatically interpolate the intermediate states of a plurality of template images. Further, as a preprocessing, it has been proposed to fill a variable portion of a template image with a fixed pattern and perform noise processing (Patent Document 2).
  • the display of the GUI control may change depending on the state of the GUI control (for example, value input, presence / absence of focus).
  • the technique of Non-Patent Document 1 cannot prepare an appropriate template image including changes. By lowering the match rate threshold, it may be possible to deal with changes in the GUI control display. However, if the threshold of the match rate is lowered too much, the template image will match the unintended part.
  • Patent Document 1 it is difficult to intuitively imagine the interpolated intermediate state. Therefore, the user may not be able to easily set the image matching.
  • the variable part of the template image is simply filled with a fixed pattern. Therefore, even if the pattern of the part where the display content changes can be assumed in advance, it is necessary to fill it.
  • the image matching is set by intuitively imagining the result of noise processing (for example, what kind of effect the noise processing has on the match rate). It's difficult.
  • the present application has been made in view of the above, and an object thereof is to easily perform image matching according to a change in the image to be matched.
  • the image matching device acquires template image information in which an acquisition unit for acquiring an image to be matched and a combination of a plurality of partial images of the template image represent a display pattern of the template image, and the acquisition thereof. It is provided with a search unit for searching an area matching the template image information from the image acquired by the unit.
  • the template image information according to the embodiment represents a change pattern of the template image by a combination of a plurality of partial images of the template image.
  • image matching can be easily performed according to a change in the image to be matched.
  • FIG. 1A is an explanatory diagram showing an example of a template image.
  • FIG. 1B is an explanatory diagram showing an example of a template image.
  • FIG. 2 is a diagram showing an example of an image matching device according to an embodiment.
  • FIG. 3A is a diagram illustrating an example of image matching according to an embodiment.
  • FIG. 3B is a diagram illustrating an example of image matching according to an embodiment.
  • FIG. 3C is a diagram illustrating an example of image matching according to an embodiment.
  • FIG. 4 is a diagram showing an example of a template image information storage unit according to an embodiment.
  • FIG. 5 is a diagram showing an example of a data structure of template image information.
  • FIG. 6 is a diagram showing an example of a partial image information storage unit according to an embodiment.
  • FIG. 7 is an explanatory diagram showing an example of an image matching process for performing image matching.
  • FIG. 8 is an explanatory diagram showing an example of a calculation process for calculating a match rate for each display pattern.
  • FIG. 9 is a flowchart showing an example of a process for performing image matching executed by the image matching device according to the embodiment.
  • FIG. 10 is a flowchart showing an example of a process for calculating a match rate for each display pattern, which is executed by the image matching device according to the embodiment.
  • FIG. 11 is an explanatory diagram showing an example of a search process for searching a display portion that matches the template image information.
  • FIG. 12 is an explanatory diagram showing an example of a setting process for setting a threshold value for each partial image.
  • FIG. 13 is an explanatory diagram showing an example of a setting process for setting an inverse threshold value in a partial image.
  • FIG. 14 is an explanatory diagram showing an example of three-dimensional template information.
  • FIG. 15 is a diagram showing
  • image matching may be used to determine the presence or absence of an operation target (GUI control) displayed on the screen and to specify the position of the operation target.
  • GUI control operation target
  • Image matching is a technique for searching a part similar to a prepared template image from a search target image. The image to be searched is called a matched image. Image matching is widely used in a variety of applications.
  • the matched image is an image (screenshot image) captured from the output of a display device such as a display.
  • the template image is an image obtained by cutting out the periphery of the operation target from the screenshot image acquired in advance.
  • FIG. 1A and 1B are explanatory views showing an example of a template image.
  • the screen 10 includes a GUI control 11.
  • the GUI control 11 is a text box, and the label "departure station" is attached to the left side thereof.
  • the search template image corresponding to the GUI control 11 is, for example, the image 20.
  • the display of the GUI control 11 changes depending on the state of the GUI control 11 (for example, value input, presence / absence of focus).
  • the display of the GUI control 11 includes a display variation 11a, a display variation 11b, and a display variation 11c.
  • the display variation 11a is an initial state in which nothing is input
  • the display variation 11b and the display variation 11c are a state in which the station name is input.
  • the display variation 11a and the display variation 11b are in the unfocused state, and the display variation 11c is in the focused state, so that the border of the GUI control 11 is emphasized.
  • the image matching device performs the processing described below in order to flexibly perform image matching for the image to be matched whose display mode changes depending on the state of the GUI control.
  • FIG. 2 is a diagram showing an example of the image matching system 1 according to the embodiment.
  • the image matching system 1 includes an image matching device 100 and an image providing device 200.
  • the image matching system 1 may include a plurality of image matching devices 100 and a plurality of image providing devices 200.
  • the image matching device 100 and the image providing device 200 are connected to the network N by wire or wirelessly, respectively.
  • the network N is, for example, a network such as the Internet, WAN (Wide Area Network), and LAN (Local Area Network).
  • the components of the image matching system 1 can communicate with each other via the network N.
  • the image matching device 100 is an information processing device that performs image matching.
  • the image matching device 100 may be any type of information processing device including a server. Examples of image matching are outlined in the next section. A configuration example of the image matching device 100 will be described in detail in the next section.
  • the image providing device 200 is an information processing device used by an image provider.
  • the image provider provides an image to the image matching device 100.
  • the image provider sends the matched image and the template image to the image matching device 100 in order to find a region matching the template image from the region of the matched image.
  • the image providing device 200 may be any type of information processing device including a client device.
  • the image matching device 100 finds a position that matches the template image information from the matched images.
  • This template image information is a simple structure of a tree structure, and the user can easily assume the state of the image for which matching is established. In addition, the user can easily set this template image information.
  • 3A, 3B and 3C are diagrams illustrating an example of image matching according to an embodiment.
  • the image matching device 100 divides the template image into a plurality of parts (partial images) (step S11).
  • the template image 31 is divided into a partial image 31a, a partial image 31b, a partial image 31c, a partial image 31d, a partial image 31e, and a partial image 31d.
  • the partial image 31a is a partial image of the label attached to the text box, and is a non-changing part (immutable part).
  • the partial image 31b, the partial image 31c, the partial image 31d, and the partial image 31e are partial images of the border of the text box, and are portions that change depending on the presence or absence of focus. These partial images are parts having a certain pattern.
  • the display portion 31d is a portion where the pattern of change cannot be predicted in advance. For example, the user cannot assume the pattern of the display portion 31d in advance.
  • the image matching apparatus 100 combines a plurality of partial images to generate template image information (step S12).
  • the image matching device 100 generates the template image information 32. Note that steps S11 and S12 do not necessarily have to be executed in this order.
  • the template image information 32 is represented by a tree structure.
  • the part with the pattern of change is represented by a branch of the tree structure.
  • the portion where the pattern of change is not expected in advance is not included in the template image information 32.
  • the template image information 32 includes node 32a (root of tree structure), node 32b, node 32c, node 32d, node 32e (leaf of tree structure), node 32f, node 32g, node 32h and node 32i. Includes (tree-structured leaves).
  • the template image information 32 expresses the display pattern of the template image 31 by combining these nodes.
  • FIG. 3C is an outline of a process in which the image matching device 100 uses the template image information 32 to search for the position of a matching image to be matched.
  • the image matching device 100 scans the matched image 33 from the upper left to the lower right. Then, the image matching device 100 defines a matching processing area 34 on the image to be matched 33.
  • the matching processing area 34 includes a partial area 35 in the matched image 33.
  • the image matching device 100 searches the matched image 33 for an image portion that matches the template image information 32 by performing image matching between the partial area 35 and the template image information 32.
  • the image matching device 100 can flexibly perform image matching on the matching target image whose display mode changes depending on the state of the GUI control. Even when the display mode of the GUI control changes in the image to be matched, the image matching device 100 can perform flexible image matching by utilizing the redundancy of the template image information. Further, the user can easily assume the operation of image matching. Therefore, the user can easily set the template image information.
  • the image matching device 100 can use an existing image matching technique (for example, simple image matching) internally. It is also possible to combine the existing high-speed method with the image matching according to the embodiment.
  • an existing image matching technique for example, simple image matching
  • the image matching device 100 includes a communication unit 110, a storage unit 120, and a control unit 130.
  • the image matching device 100 includes an input unit (for example, a keyboard, a mouse, etc.) that receives various operations from an administrator or the like who uses the image matching device 100, and a display unit (organic EL (Electro Luminescence)) for displaying various information. ), Liquid crystal display, etc.).
  • an input unit for example, a keyboard, a mouse, etc.
  • a display unit organic EL (Electro Luminescence) for displaying various information.
  • Liquid crystal display etc.
  • the communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like.
  • the communication unit 110 is connected to the network by wire or wirelessly.
  • the communication unit 110 may be communicably connected to the image providing device 200 via the network N.
  • the communication unit 110 can send and receive information to and from the image providing device 200 via a network.
  • the storage unit 120 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk. As shown in FIG. 2, the storage unit 120 includes a template image storage unit 121, a template image information storage unit 122, a partial image information storage unit 123, and a matched image information storage unit 124.
  • the template image storage unit 121 stores the template image.
  • the template image storage unit 121 stores the template image received by the reception unit 131, which will be described later.
  • the template image storage unit 121 stores a plurality of template images corresponding to the same window.
  • the plurality of template images include a partial image of the GUI control.
  • the display mode of the GUI control differs depending on the operation status. Therefore, the partial image differs depending on the template image.
  • the screen 10 described above with reference to FIG. 1B includes a GUI control 11.
  • the display mode of the GUI control 11 includes a display variation 11a, a display variation 11b, and a display variation 11c.
  • one template image includes a partial image of a display variation 11a
  • another template image includes a partial image of a display variation 11b and a display variation 11c.
  • the template image information storage unit 122 stores the template image information.
  • the template image information is information that represents the display pattern of the template image by combining a plurality of partial images of the template image.
  • the display pattern of the template image means, for example, a change pattern of the template image.
  • the template image information storage unit 122 stores, for example, the template image information generated by the generation unit 132 described later.
  • the template image information storage unit 122 may store the template image information received by the reception unit 131, which will be described later.
  • FIG. 4 is a diagram showing an example of the template image information storage unit 122 according to the embodiment.
  • the template image information represents image data in a tree structure (tree).
  • the data of the tree structure in FIG. 4 is a rooted tree and is a directed tree (non-patrol) without a cycle.
  • the template image information can be implemented as a tree-structured data structure.
  • the tree-structured data node is composed of link information and partial image information.
  • the link information indicates another node linked to the node.
  • the partial image information is information related to a partial image of image data.
  • the node may be an empty node. Since the empty node expresses the OR of the pattern, only the branch may be expressed by the link information.
  • the partial image information of the empty node may be empty.
  • FIG. 5 is a diagram showing an example of the data structure of the template image information.
  • the data structure may include a multi-branched representation.
  • the node may represent a branch with three or more branches.
  • the empty node of the data structure 41 is linked to the node including the image information (1), the node including the image information (2), and the node including the image information (3).
  • the number of branch branches of the node may be limited to 2.
  • the data structure 41 may be represented as a data structure 42.
  • the empty node of the data structure 42 is linked to the node containing the image information (1) and other empty nodes. Further, other empty nodes are linked to a node containing image information (2) and a node containing image information (3).
  • the partial image information storage unit 123 stores partial image information.
  • the partial image information is information about the partial image of the template image.
  • the partial image information storage unit 123 stores, for example, the partial image information generated by the generation unit 132 described later.
  • the partial image information storage unit 123 may store the partial image information received by the reception unit 131 described later.
  • FIG. 6 is a diagram showing an example of the partial image information storage unit 123 according to the embodiment.
  • the partial image information includes the image data of the partial image itself (a set of information of each pixel), the width and height of the partial image, and the relative position (left end, right end) in the template image. ) Includes information.
  • the shape of the partial image is described as a rectangle, but the shape of the partial image is not limited to this.
  • the partial image information may include image data having a shape other than a rectangle.
  • the matched image information storage unit 124 stores the matched image information.
  • the matched image information is information about the matched image.
  • the matched image information storage unit 124 stores the matched image received by the receiving unit 131 described later. Further, the matched image information storage unit 124 stores the result of image matching by the search unit 134, which will be described later, as the matched image information.
  • the control unit 130 is a controller, and for example, various programs (image matching) stored in a storage device inside the image matching device 100 by a processor such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit). It is realized by executing RAM or the like as a work area (corresponding to an example of a program). Further, the control unit 130 may be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a GPU PPU (General Purpose Graphic Processing Unit).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • GPU PPU General Purpose Graphic Processing Unit
  • the control unit 130 includes a reception unit 131, a generation unit 132, an acquisition unit 133, a search unit 134, and a provision unit 135, and has information processing functions described below. Realize or execute the action.
  • One or more processors of the image matching device 100 may realize the function of each control unit in the control unit 130 by executing an instruction stored in one or more memories of the image matching device 100. can.
  • the internal configuration of the control unit 130 is not limited to the configuration shown in FIG. 2, and may be any other configuration as long as it is configured to perform information processing described later.
  • the search unit 134 may perform all or part of the information processing described later with respect to the units other than the search unit 134.
  • the receiving unit 131 receives the matched image and the template image from the image providing device 200.
  • the receiving unit 131 stores the received template image in the template image information storage unit 122. Further, the receiving unit 131 stores the received matched image in the matched image information storage unit 124.
  • the receiving unit 131 may receive the generated template image information from the image providing device 200.
  • the receiving unit 131 may store the received template image information in the template image information storage unit 122. Further, the receiving unit 131 may receive the partial image information from the image providing device 200. The receiving unit 131 may store the received partial image information in the partial image information storage unit 123.
  • the generation unit 132 divides the template image into a plurality of display portions. Then, the generation unit 132 generates template image information from a plurality of partial images arranged in each of the plurality of display portions.
  • the generated template image information is, for example, a tree structure in which the display part of a plurality of display parts whose display contents do not change is represented by a root node, and the display part having a display pattern among a plurality of display parts is represented by a leaf node. It is data.
  • the template image information may be manually prepared in advance. Further, the template image information prepared in advance may be stored in the template image information storage unit 122.
  • the acquisition unit 133 acquires an image to be matched (matched image) from the matched image information storage unit 124.
  • the acquisition unit 133 can acquire various information from the storage unit 120.
  • the search unit 134 acquires template image information from the template image information storage unit 122. Then, the search unit 134 searches for a region matching the template image information from the image acquired by the acquisition unit 133 (that is, the matched image). The search unit 134 can store the image matching result in the matched image information storage unit 124.
  • FIG. 7 is an explanatory diagram showing an example of an image matching process for performing image matching.
  • the search unit 134 divides the path of the tree structure data into a pattern of the number of leaf nodes of the tree structure data when performing image matching with the template image information.
  • the search unit 134 searches for a route of the pattern 51 (pattern (1)), the pattern 52 (pattern (2)), the pattern 53 (pattern (3)), and the pattern 54 (pattern (4)). do.
  • the search unit 134 determines the pattern with the highest match rate as the match result.
  • the path from the root node to the leaf node represents one state (one pattern) of the change of the image to be matched. Therefore, the number of routes matches the number of states represented by the template image information.
  • a pattern includes multiple partial images.
  • the search unit 134 performs simple image matching between the matched image and the plurality of partial images by the number of the plurality of partial images.
  • the search unit 134 can use a conventional image matching technique for simple image matching. If the node is an empty node, the search unit 134 skips simple image matching.
  • the search unit 134 When the search unit 134 processes a plurality of display patterns represented by the template image information, duplicate simple image matching processing may be performed.
  • the search unit 134 can streamline the simple image matching process by appropriately storing the result of the simple image matching process of the partial image in the matched image information storage unit 124.
  • leaf node whose partial image information is empty does not make sense. Therefore, the leaf node shall contain partial image information.
  • the overlapped part is processed multiple times in the image matching process, but even if the partial images are processed multiple times, it is usually processed. Not useful. Therefore, it is desirable that the partial images do not overlap in position. However, even if the partial images are positionally overlapped, this does not cause a processing problem.
  • FIG. 8 is an explanatory diagram showing an example of a calculation process for calculating the match rate for each display pattern.
  • the search unit 134 performs image matching for each partial image by a conventional method (for example, simple image matching processing). Then, the search unit 134 calculates the match rate for each partial image.
  • the search unit 134 performs image matching between the tree structure 60 and the matched image.
  • the tree structure 60 is an example of template image information.
  • the tree structure 60 includes a node 61, a node 62, a node 63 and a node 64.
  • the tree structure 60 also includes other nodes other than these nodes.
  • the search unit 134 calculates the match rate in a certain pattern by taking the average of the area ratios of the partial images by the area ratio. That is, the search unit 134 averages the match rate for each partial image by the area ratio.
  • the area of a partial image is usually the number of pixels in that partial image.
  • the match rate is expressed as a real number in the range of 0 to 1, for example.
  • the search unit 134 can take an appropriate summing method according to the meaning of the match rate.
  • the providing unit 135 provides the result of image matching by the searching unit 134. For example, the providing unit 135 acquires the image matching result from the matched image information storage unit 124. Then, the providing unit 135 provides the image matching result to the image providing device 200.
  • FIG. 9 is a flowchart showing an example of a process for performing image matching executed by the image matching device 100 according to the embodiment.
  • the search unit 134 of the image matching device 100 obtains the size (width, height) of the matching processing area from the template image information (step S101).
  • step S101 the search unit 134 obtains the size of the matching processing area from the template image information.
  • the search unit 134 obtains the size (width, height) of the matching processing area (that is, the portion in the matched image on which the matching processing is performed) as the smallest rectangle including all the partial images.
  • the size of the matching processing area may be included in the template image information. In this case, the search unit 134 may omit step S101.
  • the search unit 134 initializes the coordinates having the maximum match rate and the variables (matched_x, matched_y, matched_rate) holding the match rate at those coordinates with undefined values (step S102).
  • the search unit 134 sets the matching processing area at the upper left of the matched image (step S103).
  • the search unit 134 sequentially scans the matched image.
  • the loop variables are matched_x and matched_y.
  • the search unit 134 determines whether the matching processing area fits in the matched image (step S104).
  • the search unit 134 calculates the matching rate between the template image information and the matching processing area (step S105). The calculation of the match rate between the template image information and the matching processing area is described in detail below with reference to FIG.
  • the search unit 134 determines whether the match rate is equal to or higher than the threshold value (step S106). When it is determined that the match rate is equal to or greater than the threshold value (step S106: Yes), the search unit 134 determines whether the matched_rate is an undefined value or the match rate is larger than the matched_rate (step S107).
  • step S107 When it is determined that matched_rate is an undefined value or the match rate is larger than matched_rate (step S107: Yes), the search unit 134 holds the current values in matched_x, matched_y, and matched_rate (step S108). ).
  • the search unit 134 determines whether the matching processing area has reached the lower right of the matched image (step S109).
  • step S104 If it is determined in step S104 that the matching processing area does not fit in the matched image (step S104: No), the processing step shifts to step S109.
  • step S106 If it is determined in step S106 that the match rate is less than the threshold value (step S106: No), the processing step shifts to step S109.
  • step S107 If it is determined in step S107 that the matched_rate is not an undefined value and the match rate is smaller than the matched_rate (step S107: No), the processing step proceeds to step S109.
  • step S109 When it is determined in step S109 that the matching processing area does not reach the lower right of the image to be matched (step S109: No), the search unit 134 moves the matching processing area from the upper left to the lower right by one pixel. Shift (step S110). Then, the processing step returns to step S104.
  • step S109 When it is determined in step S109 that the matching processing area has reached the lower right of the image to be matched (step S109: Yes), the search unit 134 outputs the result (matched_x, matched_y, matched_rate) (step S111). ..
  • FIG. 10 is a flowchart showing an example of a process for calculating a match rate for each display pattern, which is executed by the image matching device 100 according to the embodiment.
  • the search unit 134 of the image matching device 100 initializes the variable holding the match rate with an undefined value (step S201).
  • the variable is "rate”.
  • the search unit 134 acquires the entire route from the root node to the leaf node (step S202).
  • the search unit 134 selects the first one among all the routes (step S203).
  • the search unit 134 sequentially processes the list of leaf nodes for each pattern.
  • the search unit 134 initializes the numerator and denominator variables (numer, denom) for calculating the match rate with "0" (step S204).
  • the search unit 134 sets the leaf node of the selected route as the processing target node (step S205).
  • the search unit 134 determines whether the processing target node is empty (step S206).
  • the search unit 134 sequentially processes the route from the leaf node to the root node (that is, the node in the pattern).
  • step S206 When it is determined in step S206 that the processing target node is not empty (step S206: No), the search unit 134 corresponds to the relative position of the partial image of the processing target node and the partial image in the matched image. Simple image matching is performed with the portion, and the match rate is obtained (step S207).
  • the search unit 134 adds the area of the partial image of the processing target node to denom, and adds the value obtained by integrating the area and the matching rate of simple image matching to nume (step S208).
  • the search unit 134 determines whether the processing target node is the root node (step S209).
  • step S209 When it is determined that the processing target node is not the root node (step S209: No), the search unit 134 sets the node one step back along the route from the current processing target node as the processing target node (step S210). .. Then, the search unit 134 executes step S206 again.
  • step S209: Yes the search unit 134 divides the number by denomu and calculates the match rate in the current display pattern (step S211).
  • the search unit 134 determines whether the variable rate is an undefined value or the match rate of the current display pattern is larger than the variable rate (step S212).
  • step S212 When it is determined that the variable rate is an undefined value or the match rate of the current display pattern is larger than the variable rate (step S212: Yes), the search unit 134 tells the rate the match rate of the current display pattern. (Step S213).
  • the search unit 134 determines whether all routes have been processed (step S214).
  • step S212 when it is determined that the variable rate is not an undefined value and the match rate of the current display pattern is not larger than the variable rate (step S212: No), the processing step shifts to step S214.
  • step S214 When it is determined in step S214 that all routes have not been processed (step S214: No), the search unit 134 selects the following one from all routes (step S215). Then, the processing step returns to step S204.
  • step S214 When it is determined in step S214 that all routes have been processed (step S214: Yes), the search unit 134 returns the value of rate to the caller (step S216).
  • FIG. 11 is an explanatory diagram showing an example of a search process for searching a display portion that matches the template image information.
  • the search unit 134 performs the image matching process described above with reference to FIG.
  • the search unit 134 defines a matching processing area 72 on the matched image 71. Then, the search unit 134 performs a matching process. The search unit 134 sequentially scans the matching processing area 72 with respect to the matched image 71 to search for the position having the highest matching rate among the positions where the matching rate exceeds the threshold value in the matched image 71. Loop (1)).
  • the loop (1) corresponds to step S103 described above with reference to FIG.
  • the matching processing area 72 includes a partial area 72a, a partial area 72b, a partial area 72c, and a partial area 72d.
  • the search unit 134 performs image matching between the tree structure 70 and the matched image 71.
  • the tree structure 73 is an example of template image information.
  • the tree structure 73 includes a node 73a, a node 73b, a node 73c and a node 73d.
  • the node 73a is the root node and the node 73d is the leaf node. Since the tree structure 73 does not have a route in which the branched routes merge again, the pattern of the template image included in the tree structure 73 matches the number of leaf nodes.
  • the path from node 73d to node 73a corresponds to pattern (1) (ie, one of a plurality of display patterns).
  • the tree structure 73 also includes other patterns. Includes pattern (2), pattern (3), pattern (4), represented as a path from another leaf node to node 73a.
  • the search unit 134 performs simple image matching between the node 73d and the partial region 72c.
  • the search unit 134 performs simple image matching between the node 73b and the partial region 72b.
  • the search unit 134 performs simple image matching between the node 73a and the partial region 72d (loop (3)).
  • the loop (3) corresponds to a series of processing steps from step S205 to step S209 described above with reference to FIG.
  • the search unit 134 performs matching processing for each pattern.
  • the search unit 134 calculates the match rate in the pattern (1), calculates the match rate in the pattern (2), calculates the match rate in the pattern (3), and in the pattern (4). Calculate the match rate.
  • the search unit 134 determines the match rate of the pattern having the highest match rate as a result of the matching process (loop (2)).
  • the loop (2) corresponds to a series of processing steps from step S203 to step S214 described above with reference to FIG.
  • the image matching device 100 according to the above-described embodiment may be implemented in various different forms other than the above-mentioned embodiment. Therefore, in the following, another embodiment of the above-mentioned image matching device 100 will be described.
  • the search unit 134 may use template image information in which a plurality of threshold values are set for each of a plurality of partial images.
  • the search unit 134 performs image matching between each partial image and each partial region at a position corresponding to each partial image, and when the match rate of image matching is equal to or higher than the corresponding threshold value, a plurality of portions of the image.
  • the area may be searched for as an area that matches the tree structure data.
  • FIG. 12 is an explanatory diagram showing an example of a setting process for setting a threshold value for each partial image.
  • the threshold is set for the entire tree structure data (tree).
  • the search unit 134 may use the template image information in which the threshold value is set for each partial image.
  • the search unit 134 sets a threshold value for each node of the tree structure 81 and the tree structure 82.
  • the node of the tree structure 81 includes the threshold value of the partial image in addition to the partial image information.
  • the search unit 134 compares the match rate with the threshold value on a node-by-node basis, and determines the success or failure of the matching. However, when there are a plurality of partial regions that match the tree structure 81 in the matched image, it is necessary to rank them. Therefore, the search unit 134 uses the matching rate as in the case of the above-described embodiment.
  • the overall threshold value may be calculated using the average value of and used for ranking.
  • the search unit 134 may compare the calculated threshold value with the match rate of the entire node.
  • the search unit 134 sets the threshold value separately for the label portion (“departure station”) and the frame line of the text box.
  • a high threshold value for example, 0.98 is set in the label portion, and the comparison is performed strictly (step S80A-1).
  • the search unit 134 sets a low threshold value (for example, 0.70) in the frame of the text box and makes a loose comparison (step S80A-2).
  • the search unit 134 may use the template image information in which the inverse threshold value is set.
  • the inverse threshold is a condition that is satisfied when the match rate of a node is equal to or less than the threshold set for that node.
  • the search unit 134 compares the match rate with the threshold value on a node-by-node basis, and determines the success or failure of the matching.
  • the search unit 134 uses the average matching rate as in the case of the above-described embodiment.
  • the value may be used to calculate the overall threshold value and use it for ranking.
  • the node used for calculating the average value of the match rate is a node other than the node for which the inverse threshold value is set.
  • FIG. 13 is an explanatory diagram showing an example of a setting process for setting an inverse threshold value in a partial image.
  • the tree structure 83 includes a node corresponding to the inner part of the text box.
  • the inner portion of the text box is filled with white, which is the initial state of the text box.
  • the search unit 134 sets an inverse threshold value (for example, 0.98) in the node corresponding to the inner portion of the text box (step S80B-1).
  • the match rate of the node for which the inverse threshold is set is close to 1.00.
  • the inverse threshold is not satisfied with the text box image in the initial state that matches the partial image.
  • the tree structure 83 does not fit into the initial text box.
  • the match rate drops and the inverse threshold is satisfied.
  • the tree structure 83 fits only in the text box where some input has been made.
  • the template image information described above can be generalized to three or more dimensions.
  • the image matching device 100 may divide data having three or more dimensions into a plurality of partial data.
  • the image matching device 100 may have a tree structure and may associate partial data with each other. In this way, the image matching device 100 can apply the three-dimensional template information to the three-dimensional matched data.
  • FIG. 14 is an explanatory diagram showing an example of three-dimensional template information.
  • the three-dimensional template information 90 includes partial data 91, partial data 92, partial data 93, and partial data 94.
  • the image matching device 100 may perform image matching between the partial data 91, the partial data 92, the partial data 93, and the partial data 94 and the three-dimensional matched data.
  • the image matching device 100 has an acquisition unit 133 and a search unit 134.
  • the acquisition unit 133 acquires the image to be matched. Further, in the image matching device 100 according to the embodiment, the search unit 134 acquires template image information in which the display pattern of the template image is represented by a combination of a plurality of partial images of the template image, and the image acquired by the acquisition unit 133. To search for an area that matches this template image information.
  • the search unit 134 acquires tree structure data in which a plurality of partial images are represented by a plurality of nodes and a display pattern is represented by branches as template image information, and is obtained from the image. , Search for an area that fits this tree structure data.
  • the search unit 134 includes a plurality of partial images represented by a plurality of nodes included in the path from the leaf node of the tree structure data to the root node of the tree structure data.
  • Image matching is performed with a plurality of partial regions of the image, and when the match rate of the image matching is equal to or higher than the threshold value, the plurality of partial regions are searched as regions that match the tree structure data.
  • the search unit 134 sets a plurality of threshold values for each of the plurality of partial images, and between each partial image and each partial region at a position corresponding to each partial image. Image matching is performed, and when the match rate of image matching is equal to or greater than the corresponding threshold value, a plurality of partial regions of the image are searched for as regions that match the tree structure data.
  • the image matching device 100 has a generation unit 132 that divides the template image into a plurality of display portions and generates template image information from the plurality of partial images arranged in the plurality of display portions. .. Further, in the image matching device 100 according to the embodiment, the search unit 134 searches the image for a region that matches the template image information generated by the generation unit 132.
  • the generation unit 132 represents, as template image information, a display portion in which the display contents do not change among the plurality of display portions by a root node, and among the plurality of display portions. Generate tree structure data that represents the display part with the display pattern by the leaf node.
  • the image matching device 100 can easily perform image matching according to a change in the image to be matched.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically distributed in any unit according to various loads and usage conditions. Can be integrated and configured.
  • a part or all of the storage unit 120 shown in FIG. 2 may not be held by the image matching device 100, but may be held by a storage server or the like.
  • the image matching device 100 acquires various information such as a protected program by accessing the storage server.
  • FIG. 15 is a diagram showing an example of a hardware configuration.
  • the image matching device 100 according to the embodiment described above is realized by, for example, a computer 1000 having a configuration as shown in FIG.
  • FIG. 15 shows an example of a computer in which the image matching device 100 is realized by executing a program.
  • the computer 1000 has, for example, a memory 1010 and a CPU 1020.
  • the computer 1000 also has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. Each of these parts is connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
  • the video adapter 1060 is connected to, for example, the display 1130.
  • the hard disk drive 1090 stores, for example, the OS 1091, the application program 1092, the program module 1093, and the program data 1094. That is, the program that defines each process of the image matching apparatus 100 is implemented as a program module 1093 in which a code that can be executed by the computer 1000 is described.
  • the program module 1093 is stored in, for example, the hard disk drive 1090.
  • a program module 1093 for executing the same processing as the functional configuration in the image matching device 100 is stored in the hard disk drive 1090.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, a memory 1010 or a hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 into the RAM 1012 and executes them as needed.
  • the program module 1093 and the program data 1094 are not limited to those stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (LAN, WAN, etc.). Then, the program module 1093 and the program data 1094 may be read from another computer by the CPU 1020 via the network interface 1070.
  • LAN local area network
  • WAN wide area network
  • section, module, unit can be read as “means” or “circuit”.
  • search unit can be read as a search means or a search circuit.
  • Image matching system 100 Image matching device 110 Communication unit 120 Storage unit 121 Template image storage unit 122 Template image information storage unit 123 Partial image information storage unit 124 Matched image information storage unit 130 Control unit 131 Reception unit 132 Generation unit 133 Acquisition unit 134 Search unit 135 Providing unit 200 Image providing device

Abstract

画像マッチング装置(100)は、取得部(133)と、検索部(134)とを備える。取得部(133)は、マッチング対象の画像を取得する。検索部(134)は、テンプレート画像の表示パターンをこのテンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、取得部(133)によって取得された画像から、このテンプレート画像情報に適合する領域を検索する。

Description

画像マッチング装置、画像マッチング方法及び画像マッチングプログラム
 本開示は、画像マッチング装置、画像マッチング方法及び画像マッチングプログラムに関する。
 RPA(Robotic Process Automation)では、画像マッチングが、画面上に表示された操作対象(GUI(Graphical User Interface)コントロール)の有無を判定したり、操作対象の位置を特定したりするために、使われることがある。画像マッチングは、検索対象の画像から、用意されたテンプレート画像と類似する部分を検索する技術である。この検索対象の画像は、被マッチング画像と呼ばれる。画像マッチングは、様々な用途で広く使われている(非特許文献1)。
 画像マッチングが実行された場合に、画像マッチングは、実行結果として、マッチが成立した1つまたは複数の位置情報を返す。画像マッチングは、検索対象の画像の部分がテンプレート画像に完全に一致しない場合でも、利用可能である。この場合、画像マッチングは、画像の部分の位置とともに、テンプレート画像とこの画像の部分との間の類似度を返す。この類似度は、マッチ率と呼ばれる。
 検索対象の画像の部分がテンプレート画像に完全に一致しない場合には、閾値が、テンプレート画像に設定されることが多い。閾値は、どの程度の類似度が許容されるかを表す。類似度(マッチ率)は、0から1の範囲の実数で表されることが多い。類似度の値は、それ以外の表現であってもよい。
 本明細書では、非特許文献1のような単一のテンプレート画像を用いた従来の画像マッチング技術を、単純画像マッチングと表記することがある。
 単純画像マッチング以外の画像マッチングに関しては、複数のテンプレート画像の中間状態を自動的に補間することが提案されている(特許文献1)。また、前処理として、テンプレート画像の可変部分を固定パターンで塗りつぶすし、ノイズ処理を施すことが提案されている(特許文献2)。
特許第3435286号公報 特開2011-44074号公報
"Template Matching―OpenCV 2.4.13.7 documentation"[online]、[2020年12月4日検索]、インターネット<https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html>
 しかしながら、上記の従来技術では、マッチング対象の画像の変化に応じた画像マッチングを容易に行うことができない場合がある。
 例えば、GUIコントールの表示は、GUIコントールの状態(例えば、値入力、フォーカスの有無)によって変化することがある。非特許文献1の技術では、変化を包含した適切なテンプレート画像を用意することができない。マッチ率の閾値を下げることで、GUIコントールの表示の変化に対処できる場合もある。しかしながら、マッチ率の閾値を下げすぎると、テンプレート画像が意図しない部分にもマッチしてしまう。
 また、GUIコントールの表示の変化に合わせた複数のテンプレート画像を用意することも考えられる。しかしながら、GUIコントールの全ての状態に合わせた複数のテンプレート画像を用意することは難しい。例えば、GUIコントールが、文字入力が可能なGUIコントール(例えば、テキストボックス)である場合には、入力される文字列を想定してテンプレート画像を予め用意することは難しい。
 特許文献1の技術に関しては、補間された中間状態を直感的に想像することが難しい。このため、ユーザが、画像マッチングの設定を容易に行うことができない場合がある。
 特許文献2の技術に関しては、テンプレート画像の可変部分が、単に固定パターンで塗りつぶされる。そのため、表示内容が変化する部分のパターンが予め想定できるような場合でも塗りつぶしが必要になる。このように、非特許文献2の技術では、一定のパターンで変化する部分を考慮した画像マッチングを行うことが難しい。ノイズ処理を施す方法では、特許文献1の技術と同様に、ノイズ処理の結果(例えば、ノイズ処理がどのような影響をマッチ率に及ぼすのか)を直感的に想像して画像マッチングの設定を行うことが難しい。
 本願は、上記に鑑みてなされたものであって、マッチング対象の画像の変化に応じた画像マッチングを容易に行うことを目的とする。
 本開示の実施形態に係る画像マッチング装置は、マッチング対象の画像を取得する取得部と、テンプレート画像の表示パターンを当該テンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、前記取得部によって取得された画像から、当該テンプレート画像情報に適合する領域を検索する検索部とを備える。実施形態に係るテンプレート画像情報は、テンプレート画像の変化パターンを、このテンプレート画像の複数の部分画像の組み合わせで表す。
 実施形態の一態様によれば、マッチング対象の画像の変化に応じた画像マッチングを容易に行うことができる。
図1Aは、テンプレート画像の一例を示す説明図である。 図1Bは、テンプレート画像の一例を示す説明図である。 図2は、実施形態に係る画像マッチング装置の一例を示す図である。 図3Aは、実施形態に係る画像マッチングの例を概説する図である。 図3Bは、実施形態に係る画像マッチングの例を概説する図である。 図3Cは、実施形態に係る画像マッチングの例を概説する図である。 図4は、実施形態に係るテンプレート画像情報記憶部の一例を示す図である。 図5は、テンプレート画像情報のデータ構造の一例を示す図である。 図6は、実施形態に係る部分画像情報記憶部の一例を示す図である。 図7は、画像マッチングを行う画像マッチング処理の一例を示す説明図である。 図8は、表示パターンごとにマッチ率を算出する算出処理の一例を示す説明図である。 図9は、実施形態に係る画像マッチング装置によって実行される、画像マッチングを行うための処理の一例を示すフローチャートである。 図10は、実施形態に係る画像マッチング装置によって実行される、表示パターンごとにマッチ率を算出するための処理の一例を示すフローチャートである。 図11は、テンプレート画像情報に適合する表示部分を検索する検索処理の一例を示す説明図である。 図12は、部分画像ごとに閾値を設定する設定処理の一例を示す説明図である。 図13は、部分画像に逆閾値を設定する設定処理の一例を示す説明図である。 図14は、3次元テンプレート情報の一例を示す説明図である。 図15は、ハードウェア構成の一例を示す図である。
 以下、本開示の実施形態について、図面を参照しつつ詳細に説明する。なお、この実施形態により本発明が限定されるものではない。1つまたは複数の実施形態の詳細は、以下の説明および図面に記載される。また、複数の実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の1つまたは複数の実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.はじめに〕
 RPAでは、画像マッチングが、画面上に表示された操作対象(GUIコントロール)の有無を判定したり、操作対象の位置を特定したりするために、使われることがある。画像マッチングは、検索対象の画像から、用意されたテンプレート画像と類似する部分を検索する技術である。この検索対象の画像は、被マッチング画像と呼ばれる。画像マッチングは、様々な用途で広く使われている。
 RPAにおいては、被マッチング画像は、ディスプレイ等の表示デバイスの出力からキャプチャされた画像(スクリーンショット画像)である。テンプレート画像は、事前に取得したスクリーンショット画像から操作対象の周辺を切り抜いた画像である。
 図1Aおよび図1Bは、テンプレート画像の一例を示す説明図である。図1Aの例では、画面10は、GUIコントロール11を含む。GUIコントロール11は、テキストボックスであり、その左側に「出発駅」のラベルが付与されている。
 図1Bに示されるように、GUIコントロール11に対応する検索用のテンプレート画像は、例えば、画像20である。GUIコントロール11の表示は、GUIコントロール11の状態(例えば、値入力、フォーカスの有無)によって変化する。例えば、GUIコントロール11の表示は、表示のバリエーション11a、表示のバリエーション11bおよび表示のバリエーション11cを含む。表示のバリエーション11aは、何も入力されていない初期状態で、表示のバリエーション11bおよび表示のバリエーション11cは駅名が入力された状態である。表示のバリエーション11aおよび表示のバリエーション11bはフォーカスが当たっていない状態で、表示のバリエーション11cはフォーカスが当たっているためGUIコントロール11の枠線が強調された状態である。しかしながら、既存技術ではこれらの変化を考慮した適切なテンプレート画像を用意することが難しい場合がある。
 そこで、実施形態に係る画像マッチング装置は、表示態様がGUIコントロールの状態によって変化するマッチング対象の画像に対して、柔軟に画像マッチングを行うために、以下に説明される処理を行う。
〔2.画像マッチングシステムの構成〕
 まず、図2を参照して、実施形態に係る画像マッチングシステムの構成例について説明する。
 図2は、実施形態に係る画像マッチングシステム1の一例を示す図である。図2に示されるように、画像マッチングシステム1は、画像マッチング装置100と、画像提供装置200とを含む。図2中では図示していないが、画像マッチングシステム1は、複数台の画像マッチング装置100や、複数台の画像提供装置200を含んでもよい。
 画像マッチングシステム1において、画像マッチング装置100および画像提供装置200は、それぞれネットワークNと有線又は無線により接続される。ネットワークNは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等のネットワークである。画像マッチングシステム1の構成要素は、ネットワークNを介して互いに通信を行うことができる。
〔2-1.構成要素〕
 画像マッチング装置100は、画像マッチングを行う情報処理装置である。画像マッチング装置100は、サーバを含む、任意のタイプの情報処理装置であってもよい。画像マッチングの例は、次節で概説される。画像マッチング装置100の構成例は、次次節で詳述される。
 画像提供装置200は、画像提供者によって利用される情報処理装置である。画像提供者は、画像マッチング装置100に画像を提供する。例えば、画像提供者は、被マッチング画像の領域の中から、テンプレート画像に適合する領域を見つけるために、被マッチング画像およびテンプレート画像を、画像マッチング装置100に送る。画像提供装置200は、クライアント装置を含む、任意のタイプの情報処理装置であってもよい。
〔2-2.画像マッチングの例〕
 次に、画像マッチングの例について概説する。
 画像マッチング装置100は、被マッチング画像の中から、テンプレート画像情報に適合する位置を見つける。このテンプレート画像情報は、木構造の単純な構造であり、ユーザは、マッチングが成立する画像の状態を、容易に想定することができる。また、ユーザは、このテンプレート画像情報を、容易に設定することができる。
 図3A、図3Bおよび図3Cは、実施形態に係る画像マッチングの例を概説する図である。
 図3Aを参照すると、はじめに、画像マッチング装置100は、テンプレート画像を複数の部分(部分画像)に分割する(ステップS11)。図3Aの例では、テンプレート画像31を、部分画像31a、部分画像31b、部分画像31c、部分画像31d、部分画像31eおよび部分画像31dに分割する。
 部分画像31aは、テキストボックスに付与されたラベルの部分画像であり、変化しない部分(不変の部分)である。部分画像31b、部分画像31c、部分画像31d、部分画像31eは、テキストボックスの枠線の部分画像であり、フォーカスの有無で変化する部分である。これらの部分画像は、一定のパターンを持つ部分である。表示部分31dは、変化のパターンが事前に予想できない部分である。例えば、ユーザは、表示部分31dのパターンを、事前に想定できない。
 図3Bを参照すると、図3AのステップS11の後に、画像マッチング装置100は、複数の部分画像を組み合わせてテンプレート画像情報を生成する(ステップS12)。図3Bの例では、画像マッチング装置100は、テンプレート画像情報32を生成する。なお、ステップS11およびステップS12は、必ずしもこの順番で実行されなくてもよい。
 テンプレート画像情報32は、木構造で表現される。変化のパターンがある部分は、木構造の分岐で表現される。変化のパターンが事前に想定されない部分は、テンプレート画像情報32に含まれない。図3Bの例では、テンプレート画像情報32は、ノード32a(木構造の根)、ノード32b、ノード32c、ノード32d、ノード32e(木構造の葉)、ノード32f、ノード32g、ノード32hおよびノード32i(木構造の葉)を含む。テンプレート画像情報32は、これらのノードの組み合わせで、テンプレート画像31の表示パターンを表現する。
 図3Cは、画像マッチング装置100が、テンプレート画像情報32を利用して、適合する被マッチング画像の位置を検索する処理の概要である。
 図3Cの例では、画像マッチング装置100は、被マッチング画像33を左上から右下に向かって走査する。そして、画像マッチング装置100は、被マッチング画像33上に、マッチング処理領域34を定める。マッチング処理領域34は、被マッチング画像33内の部分領域35を含む。画像マッチング装置100は、部分領域35とテンプレート画像情報32との間の画像マッチングを実行することで、テンプレート画像情報32に適合する画像部分を、被マッチング画像33から検索する。
 これにより、画像マッチング装置100は、表示態様がGUIコントロールの状態によって変化するマッチング対象の画像に対して、柔軟に画像マッチングを行うことができる。GUIコントロールの表示態様が、マッチング対象の画像において変化する場合でも、画像マッチング装置100は、テンプレート画像情報に冗長性があることを利用して、柔軟な画像マッチングを行うことができる。さらに、ユーザは、画像マッチングの動作を、容易に想定することができる。このため、ユーザは、テンプレート画像情報を容易に設定することができる。
 また、画像マッチング装置100は、既存の画像マッチング技術(例えば、単純画像マッチング)を、その内部で利用することができる。既存の高速化手法と、実施形態に係る画像マッチングを組み合わせることもできる。
〔2-3.画像マッチング装置の構成〕
 次に、画像マッチング装置100の構成例について説明する。
 図2に示されるように、画像マッチング装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、画像マッチング装置100は、画像マッチング装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボード、マウス等)や、各種情報を表示するための表示部(有機EL(Electro Luminescence)、液晶ディスプレイ等)を有してもよい。
(通信部110)
 通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、有線または無線によりネットワーク網と接続される。通信部110は、画像提供装置200に、ネットワークNを介して、通信可能に接続されてもよい。通信部110は、画像提供装置200との間で、ネットワーク網を介して、情報の送受信を行うことができる。
(記憶部120)
 記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図2に示されるように、記憶部120は、テンプレート画像記憶部121と、テンプレート画像情報記憶部122と、部分画像情報記憶部123と、被マッチング画像情報記憶部124とを有する。
(テンプレート画像記憶部121)
 テンプレート画像記憶部121は、テンプレート画像を記憶する。テンプレート画像記憶部121は、後述する受信部131によって受信されたテンプレート画像を記憶する。
 一例では、テンプレート画像記憶部121は、同一のウィンドウに対応する複数のテンプレート画像を記憶する。複数のテンプレート画像は、GUIコントロールの部分画像を含む。GUIコントロールの表示態様は、操作状況によって異なる。したがって、部分画像は、テンプレート画像によって異なる。
 例えば、図1Bを参照して上述した画面10は、GUIコントロール11を含む。GUIコントロール11の表示態様は、表示のバリエーション11a、表示のバリエーション11bおよび表示のバリエーション11cを含む。例えば、あるテンプレート画像は、表示のバリエーション11aの部分画像を含み、他のテンプレート画像は、表示のバリエーション11bや表示のバリエーション11cの部分画像を含む。
(テンプレート画像情報記憶部122)
 テンプレート画像情報記憶部122は、テンプレート画像情報を記憶する。テンプレート画像情報は、テンプレート画像の表示パターンをこのテンプレート画像の複数の部分画像の組み合わせで表す情報である。テンプレート画像の表示パターンは、例えば、テンプレート画像の変化パターンを意味する。テンプレート画像情報記憶部122は、例えば、後述する生成部132によって生成されたテンプレート画像情報を記憶する。テンプレート画像情報記憶部122は、後述する受信部131によって受信されたテンプレート画像情報を記憶してもよい。
 図4は、実施形態に係るテンプレート画像情報記憶部122の一例を示す図である。図4に示されるように、テンプレート画像情報は、木構造(ツリー)で画像データを表現する。図4の木構造のデータは、根付き木であり、かつ閉路のない有向木(非巡回)である。このように、テンプレート画像情報は、木構造のデータ構造として実装され得る。
 木構造のデータのノードは、リンク情報と部分画像情報とで構成される。リンク情報は、ノードにリンクされた他のノードを示す。部分画像情報は、画像データの部分画像に関する情報である。
 ノードは、空ノードであってもよい。空ノードは、パターンのORを表現するため、リンク情報で分岐のみを表現してもよい。空ノードの部分画像情報は、空であってもよい。
 図5は、テンプレート画像情報のデータ構造の一例を示す図である。図5に示されるように、データ構造は、多分岐の表現を含み得る。データ構造が2分岐を超えるORを表現する場合に、ノードは、3つ以上の枝で分岐を表現してもよい。図5の例では、データ構造41の空ノードは、画像情報(1)を含むノード、画像情報(2)を含むノードおよび画像情報(3)を含むノードにリンクされている。
 ノードの分岐数は、2に制限されていてもよい。この場合、データ構造41は、データ構造42として表現されてもよい。データ構造42の空ノードは、画像情報(1)を含むノードおよび他の空ノードにリンクされている。また、他の空ノードは、画像情報(2)を含むノードおよび画像情報(3)を含むノードにリンクされている。
(部分画像情報記憶部123)
 部分画像情報記憶部123は、部分画像情報を記憶する。部分画像情報は、テンプレート画像の部分画像に関する情報である。部分画像情報記憶部123は、例えば、後述する生成部132によって生成された部分画像情報を記憶する。部分画像情報記憶部123は、後述する受信部131によって受信された部分画像情報を記憶してもよい。
 図6は、実施形態に係る部分画像情報記憶部123の一例を示す図である。図6に示されるように、部分画像情報は、部分画像の画像データそのもの(各ピクセルの情報の集合)の他に、部分画像の幅、高さおよびテンプレート画像内での相対位置(左端、右端)の情報を含む。
 なお、実施形態では、部分画像の形が矩形として説明されているが、部分画像の形は、これに限定されるものではない。部分画像情報は、矩形以外の形の画像データを含んでもよい。
(被マッチング画像情報記憶部124)
 被マッチング画像情報記憶部124は、被マッチング画像情報を記憶する。被マッチング画像情報は、被マッチング画像に関する情報である。被マッチング画像情報記憶部124は、後述する受信部131によって受信された被マッチング画像を記憶する。また、被マッチング画像情報記憶部124は、後述する検索部134による画像マッチングの結果を、被マッチング画像情報として記憶する。
(制御部130)
 制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、画像マッチング装置100内部の記憶装置に記憶されている各種プログラム(画像マッチングプログラムの一例に相当)がRAM等を作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の集積回路により実現されてもよい。
 制御部130は、図2に示されるように、受信部131と、生成部132と、取得部133と、検索部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。画像マッチング装置100の1つまたは複数のプロセッサは、画像マッチング装置100の1つまたは複数のメモリに記憶された命令を実行することによって、制御部130内の各制御部の機能を実現することができる。なお、制御部130の内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、検索部134は、検索部134以外の部に関して後述する情報処理の全部または一部を行ってもよい。
(受信部131)
 受信部131は、被マッチング画像およびテンプレート画像を、画像提供装置200から受信する。受信部131は、受信されたテンプレート画像を、テンプレート画像情報記憶部122に格納する。また、受信部131は、受信された被マッチング画像を、被マッチング画像情報記憶部124に格納する。
 受信部131は、生成済みのテンプレート画像情報を、画像提供装置200から受信してもよい。受信部131は、受信されたテンプレート画像情報を、テンプレート画像情報記憶部122に格納してもよい。また、受信部131は、部分画像情報を、画像提供装置200から受信してもよい。受信部131は、受信された部分画像情報を、部分画像情報記憶部123に格納してもよい。
(生成部132)
 生成部132は、テンプレート画像を複数の表示部分に分割する。そして、生成部132は、複数の表示部分にそれぞれ配置された複数の部分画像から、テンプレート画像情報を生成する。生成されたテンプレート画像情報は、例えば、複数の表示部分のうちの表示内容が変化しない表示部分を根ノードで表し、複数の表示部分のうちの表示パターンを持つ表示部分を葉ノードで表す木構造データである。なお、テンプレート画像情報は、事前に手動で用意されていてもよい。また、事前に用意されたテンプレート画像情報が、テンプレート画像情報記憶部122に記憶されていてもよい。
(取得部133)
 取得部133は、被マッチング画像情報記憶部124から、マッチング対象の画像(被マッチング画像)を取得する。取得部133は、記憶部120から各種情報を取得することができる。
(検索部134)
 検索部134は、テンプレート画像情報記憶部122から、テンプレート画像情報を取得する。そして、検索部134は、取得部133によって取得された画像(すなわち、被マッチング画像)から、テンプレート画像情報に適合する領域を検索する。検索部134は、画像マッチングの結果を、被マッチング画像情報記憶部124に格納することができる。
 図7は、画像マッチングを行う画像マッチング処理の一例を示す説明図である。検索部134は、テンプレート画像情報で画像マッチングを行う際に、木構造データの経路を、この木構造データの葉ノードの数のパターンに分ける。図7の例では、検索部134は、パターン51(パターン(1))、パターン52(パターン(2))、パターン53(パターン(3))およびパターン54(パターン(4))の経路を探索する。検索部134は、マッチ率が最も高いパターンを、マッチ結果として決定する。
 テンプレート画像情報では、根ノードから葉ノードまでの経路が、マッチングしたい画像の変化の1状態(1パターン)を表す。このため、経路の数は、テンプレート画像情報が表現する状態の数と一致する。
 あるパターンは、複数の部分画像を含む。検索部134は、この複数の部分画像の数だけ、被マッチング画像と複数の部分画像との間の単純画像マッチングを行う。検索部134は、単純画像マッチングに、従来の画像マッチング技術を利用することができる。ノードが空ノードである場合には、検索部134は、単純画像マッチングをスキップする。
 なお、検索部134が、テンプレート画像情報によって表現される複数の表示パターンをそれぞれ処理する場合には、重複する単純画像マッチング処理が、行われる場合がある。これに関して、検索部134は、部分画像の単純画像マッチング処理の結果を、被マッチング画像情報記憶部124に適宜保存することで、単純画像マッチング処理を効率化することができる。
 なお、部分画像情報が空である葉ノードは、意味をなさない。したがって、葉ノードは、部分画像情報を含むものとする。
 葉ノードから根ノードまでの経路において、部分画像同士が、位置的に重なった状態であると、画像マッチング処理の中で重なった部分は多重に処理されるが、多重に処理されても通常は有用性がない。そのため、部分画像同士が位置的に重ならないことが望ましい。しかしながら、部分画像同士が位置的に重なったとしても、このことは、処理に関する問題を引き起こさない。
 図8は、表示パターンごとにマッチ率を算出する算出処理の一例を示す説明図である。検索部134は、部分画像ごとに、従来の手法(例えば、単純画像マッチング処理)で、画像マッチングを行う。そして、検索部134は、部分画像ごとに、マッチ率を算出する。
 図8の例では、検索部134は、木構造60と被マッチング画像との間で、画像マッチングを行う。木構造60は、テンプレート画像情報の一例である。木構造60は、ノード61、ノード62、ノード63およびノード64を含む。木構造60は、これらのノード以外の他のノードも含む。
 検索部134は、あるパターンにおけるマッチ率を、面積比で部分画像の面積比の平均を取ることで、算出する。すなわち、検索部134は、部分画像ごとのマッチ率を面積比で平均する。部分画像の面積は、通常は、その部分画像のピクセル数である。
 マッチ率は、例えば、0から1の範囲の実数で表現される。マッチ率が、0から1の範囲の実数で表現されない場合には、検索部134は、マッチ率の意味合いに合わせて、適切な合算方法を取ることができる。図8の例では、マッチ率は、(0.82×100+0.64×50+0.90×200+0.76×50)÷(100+50+200+50)=0.83である。
(提供部135)
 提供部135は、検索部134による画像マッチングの結果を提供する。例えば、提供部135は、画像マッチングの結果を、被マッチング画像情報記憶部124から取得する。そして、提供部135は、画像マッチングの結果を、画像提供装置200に提供する。
〔3.画像マッチング処理のフロー〕
 次に、図9および図10を参照して、実施形態に係る画像マッチング装置100による画像マッチング処理の手順について説明する。
 図9は、実施形態に係る画像マッチング装置100によって実行される、画像マッチングを行うための処理の一例を示すフローチャートである。
 図9に示されるように、はじめに、画像マッチング装置100の検索部134は、テンプレート画像情報からマッチング処理領域のサイズ(幅、高さ)を求める(ステップS101)。
 ステップS101において、検索部134は、テンプレート画像情報から、マッチング処理領域のサイズを求める。例えば、検索部134は、マッチング処理領域(すなわち、マッチング処理が行われる被マッチング画像内の部分)のサイズ(幅、高さ)を、全ての部分画像を包含する最小の矩形として求めている。ただし、マッチング処理領域のサイズは、テンプレート画像情報に含まれていてもよい。この場合、検索部134は、ステップS101を省略してもよい。
 次いで、検索部134は、マッチ率が最大の座標とその座標におけるマッチ率を保持する変数(matched_x、matched_y、matched_rate)とを、未定義値で初期化する(ステップS102)。
 次いで、検索部134は、マッチング処理領域を被マッチング画像の左上に設定する(ステップS103)。
 ステップS103からステップS109までの処理ステップにおいて、検索部134は、被マッチング画像を、順次走査する。ループ変数は、matched_xおよびmatched_yである。
 次いで、検索部134は、マッチング処理領域が被マッチング画像に収まっているかを判定する(ステップS104)。
 マッチング処理領域が被マッチング画像に収まっていると判定された場合に(ステップS104:Yes)、検索部134は、テンプレート画像情報とマッチング処理領域とのマッチ率を算出する(ステップS105)。テンプレート画像情報とマッチング処理領域とのマッチ率の算出は、図10を参照して以下で詳述される。
 次いで、検索部134は、マッチ率が閾値以上であるかを判定する(ステップS106)。マッチ率が閾値以上であると判定された場合に(ステップS106:Yes)、検索部134は、matched_rateが未定義値である、またはマッチ率がmatched_rateよりも大きいかを判定する(ステップS107)。
 matched_rateが未定義値である、またはマッチ率がmatched_rateよりも大きいと判定された場合に(ステップS107:Yes)、検索部134は、matched_x、matched_yおよびmatched_rateに、現在の値を保持する(ステップS108)。
 次いで、検索部134は、マッチング処理領域が被マッチング画像の右下に達したかを判定する(ステップS109)。
 ステップS104において、マッチング処理領域が被マッチング画像に収まっていないと判定された場合に(ステップS104:No)、処理ステップは、ステップS109に移行する。
 ステップS106において、マッチ率が閾値未満であると判定された場合に(ステップS106:No)、処理ステップは、ステップS109に移行する。
 ステップS107において、matched_rateが未定義値でなく、マッチ率がmatched_rateよりも小さいと判定された場合に(ステップS107:No)、処理ステップは、ステップS109に移行する。
 ステップS109において、マッチング処理領域が被マッチング画像の右下に達していないと判定された場合に(ステップS109:No)、検索部134は、マッチング処理領域を左上から右下に向かって、1画素分ずらす(ステップS110)。そして、処理ステップは、ステップS104に戻る。
 ステップS109において、マッチング処理領域が被マッチング画像の右下に達したと判定された場合に(ステップS109:Yes)、検索部134は、結果(matched_x、matched_y、matched_rate)を出力する(ステップS111)。
 図10は、実施形態に係る画像マッチング装置100によって実行される、表示パターンごとにマッチ率を算出するための処理の一例を示すフローチャートである。
 図10に示すように、はじめに、画像マッチング装置100の検索部134は、マッチ率を保持する変数を未定義値で初期化する(ステップS201)。図10の例では、変数は、「rate」である。
 次いで、検索部134は、根ノードから葉ノードへの全経路を取得する(ステップS202)。
 次いで、検索部134は、全経路の中で最初の一つを選択する(ステップS203)。
 ステップS203からステップS214までの処理ステップにおいて、検索部134は、パターンごとに、葉ノードのリストを、順次処理する。
 次いで、検索部134は、マッチ率を計算するための分子と分母の変数(numer、denom)を「0」で初期化する(ステップS204)。
 次いで、検索部134は、選択中の経路の葉ノードを処理対象ノードとする(ステップS205)。
 次いで、検索部134は、処理対象ノードが空であるかを判定する(ステップS206)。
 ステップS206からステップS210までの処理ステップにおいて、検索部134は、葉ノードから根ノードまでの経路(すなわち、パターン内のノード)を、順次処理する。
 ステップS206において、処理対象ノードが空でないと判定された場合に(ステップS206:No)、検索部134は、処理対象ノードの部分画像と、被マッチング画像のうちの部分画像の相対位置に対応する部分との間で単純画像マッチングを行い、マッチ率を求める(ステップS207)。
 次いで、検索部134は、処理対象ノードの部分画像の面積をdenomに加算し、面積と単純画像マッチングのマッチ率を積算した値をnumerに加算する(ステップS208)。
 次いで、検索部134は、処理対象ノードが根ノードであるかを判定する(ステップS209)。
 処理対象ノードが根ノードでないと判定された場合に(ステップS209:No)、検索部134は、現在の処理対象ノードから経路に沿って一つ遡ったノードを処理対象ノードとする(ステップS210)。そして、検索部134は、再度ステップS206を実行する。
 処理対象ノードが根ノードであると判定された場合に(ステップS209:Yes)、検索部134は、numerをdenomuで除算して現在の表示パターンでのマッチ率を計算する(ステップS211)。
 次いで、検索部134は、変数rateが未定義値である、または現在の表示パターンのマッチ率が変数rateよりも大きいかを判定する(ステップS212)。
 変数rateが未定義値である、または現在の表示パターンのマッチ率が変数rateよりも大きいと判定された場合に(ステップS212:Yes)、検索部134は、rateに現在の表示パターンのマッチ率を保持する(ステップS213)。
 次いで、検索部134は、全経路を処理したかを判定する(ステップS214)。
 ステップS212において、変数rateが未定義値でなく、現在の表示パターンのマッチ率が変数rateよりも大きくないと判定された場合に(ステップS212:No)、処理ステップは、ステップS214に移行する。
 ステップS214において、全経路を処理してないと判定された場合に(ステップS214:No)、検索部134は、全経路の中で次の一つを選択する(ステップS215)。そして、処理ステップは、ステップS204に戻る。
 ステップS214において、全経路を処理したと判定された場合に(ステップS214:Yes)、検索部134は、rateの値を呼び出し元に返す(ステップS216)。
 図11は、テンプレート画像情報に適合する表示部分を検索する検索処理の一例を示す説明図である。図11の例では、検索部134は、図9を参照して上述した画像マッチング処理を行う。
 検索部134は、被マッチング画像71上に、マッチング処理領域72を定める。そして、検索部134は、マッチング処理を行う。検索部134は、被マッチング画像71に対してマッチング処理領域72を順次走査することで、マッチ率が被マッチング画像71内で閾値を超えた位置のうちのマッチ率が最も高い位置を検索する(ループ(1))。ループ(1)は、図9を参照して上述したステップS103に対応する。
 マッチング処理領域72は、部分領域72a、部分領域72b、部分領域72cおよび部分領域72dを含む。検索部134は、木構造70と被マッチング画像71との間で、画像マッチングを行う。
 木構造73は、テンプレート画像情報の一例である。木構造73は、ノード73a、ノード73b、ノード73cおよびノード73dを含む。ノード73aが根ノードであり、ノード73dが葉ノードである。木構造73は分岐した経路が再度合流するような経路が存在しないため、木構造73が内包するテンプレート画像のパターンは葉ノードの数と一致する。ノード73dからノード73aまでの経路は、パターン(1)(すなわち、複数の表示パターンのうちの1つ)に対応する。木構造73は、他のパターンも含んでいる。他の葉ノードからノード73aまでの経路として表現される、パターン(2)、パターン(3)、パターン(4)を含む。
 図11の例では、はじめに、検索部134は、ノード73dと部分領域72cとの間で、単純画像マッチングを行う。次いで、検索部134は、ノード73bと部分領域72bとの間で、単純画像マッチングを行う。その後、検索部134は、ノード73aと部分領域72dとの間で、単純画像マッチングを行う(ループ(3))。ループ(3)は、図10を参照して上述したステップS205からステップS209までの一連の処理ステップに対応する。
 検索部134は、パターンごとに、マッチング処理を行う。図11の例では、検索部134は、パターン(1)におけるマッチ率を算出し、パターン(2)におけるマッチ率を算出し、パターン(3)におけるマッチ率を算出し、そしてパターン(4)におけるマッチ率を算出する。検索部134は、マッチ率が最も高かったパターンのマッチ率を、マッチング処理の結果として決定する(ループ(2))。ループ(2)は、図10を参照して上述したステップS203からステップS214までの一連の処理ステップに対応する。
〔4.他の実施形態〕
 上述の実施形態に係る画像マッチング装置100は、上述の実施形態以外にも、種々の異なる形態で実施されてよい。そこで、以下では、上記の画像マッチング装置100の他の実施形態について説明する。
〔4-1.部分画像ごとの閾値〕
 検索部134は、複数の部分画像に複数の閾値をそれぞれ設定したテンプレート画像情報を利用してもよい。検索部134は、各部分画像と、各部分画像に対応する位置の各部分領域との間で画像マッチングを行い、画像マッチングのマッチ率が対応する閾値以上である場合に、画像の複数の部分領域を、木構造データに適合する領域として検索してもよい。
 図12は、部分画像ごとに閾値を設定する設定処理の一例を示す説明図である。上述の実施形態では、閾値は、木構造データ(ツリー)全体に設定されていた。検索部134は、部分画像ごとに、閾値が設定されたテンプレート画像情報を利用してもよい。図12の例では、検索部134は、木構造81や木構造82のノードごとに、閾値を設定する。
 木構造81のノードは、部分画像情報に加えて、部分画像の閾値を含む。検索部134は、ノード単位で、マッチ率と閾値とを比較し、マッチングの成否を判定する。ただし、木構造81に適合する部分領域が、被マッチング画像内に複数ある場合には、それらを順位付けする必要があるため、検索部134は、上述の実施形態の場合と同様に、マッチ率の平均値を用いて、全体の閾値を算出し、順位付けに利用してもよい。検索部134は、算出された閾値とノード全体のマッチ率とを比較してもよい。
 木構造82の例では、検索部134は、ラベル部分(「出発駅」)とテキストボックスの枠線とに分けて閾値を設定する。ラベル部分には高い閾値(例えば、0.98)を設定して、厳密に比較する(ステップS80A-1)。検索部134は、テキストボックスの枠には低い閾値(例えば、0.70)を設定して、緩く比較する(ステップS80A-2)。
〔4-2.逆閾値〕
 検索部134が、ノード単位で、閾値を設定する場合に、検索部134は、逆閾値が設定されたテンプレート画像情報を利用してもよい。逆閾値は、ノードのマッチ率がそのノードに設定された閾値以下である場合に満たされる条件である。検索部134は、ノード単位で、マッチ率と閾値とを比較し、マッチングの成否を判定する。木構造81に適合する部分領域が、被マッチング画像内に複数ある場合には、それらを順位付けする必要があるため、検索部134は、上述の実施形態の場合と同様に、マッチ率の平均値を用いて、全体の閾値を算出し、順位付けに利用してもよい。ただし、マッチ率の平均値算出に利用するノードは、逆閾値が設定されたノード以外のノードである。
 図13は、部分画像に逆閾値を設定する設定処理の一例を示す説明図である。木構造83は、テキストボックスの内側部分に対応するノードを含む。図13の例では、テキストボックスの内側部分が、テキストボックスの初期状態である白色で塗りつぶされた状態になっている。検索部134は、テキストボックスの内側部分に対応するノードに、逆閾値(例えば、0.98)を設定する(ステップS80B-1)。
 この例では、逆閾値が設定されたノードのマッチ率は、1.00に近い値である。この場合、部分画像と一致する初期状態のテキストボックス画像では、逆閾値は満たされない。その結果、木構造83は、初期状態のテキストボックスに適合しない。逆に、テキストボックスに文字列が入力されると、マッチ率が下がり逆閾値を満たすようになる。その結果、木構造83は、何らかの入力が行われたテキストボックスのみに適合する。
〔4-3.3次元テンプレート情報〕
 上述のテンプレート画像情報は、3次元以上の次元に一般化され得る。画像マッチング装置100は、3次元以上のデータを、複数の部分データに分けてもよい。画像マッチング装置100は、木構造で、部分データ同士を関連付けてもよい。このように、画像マッチング装置100は、3次元テンプレート情報を、3次元の被マッチングデータに適用することができる。
 図14は、3次元テンプレート情報の一例を示す説明図である。3次元テンプレート情報90は、部分データ91、部分データ92、部分データ93および部分データ94を含む。画像マッチング装置100は、部分データ91、部分データ92、部分データ93および部分データ94と3次元の被マッチングデータとの間の画像マッチングを行ってもよい。
〔5.効果〕
 上述してきたように、実施形態に係る画像マッチング装置100は、取得部133と、検索部134とを有する。
 実施形態に係る画像マッチング装置100において、取得部133は、マッチング対象の画像を取得する。また、実施形態に係る画像マッチング装置100において、検索部134は、テンプレート画像の表示パターンをこのテンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、取得部133によって取得された画像から、このテンプレート画像情報に適合する領域を検索する。
 また、実施形態に係る画像マッチング装置100において、検索部134は、テンプレート画像情報として、複数の部分画像を複数のノードでそれぞれ表し、かつ表示パターンを分岐で表す木構造データを取得し、画像から、この木構造データに適合する領域を検索する。
 また、実施形態に係る画像マッチング装置100において、検索部134は、木構造データの葉ノードから木構造データの根ノードまでの経路に含まれる複数のノードによってそれぞれ表される複数の部分画像と、画像の複数の部分領域との間で画像マッチングを行い、画像マッチングのマッチ率が閾値以上である場合に、この複数の部分領域を、木構造データに適合する領域として検索する。
 また、実施形態に係る画像マッチング装置100において、検索部134は、複数の部分画像に複数の閾値をそれぞれ設定し、各部分画像と、各部分画像に対応する位置の各部分領域との間で画像マッチングを行い、画像マッチングのマッチ率が対応する閾値以上である場合に、画像の複数の部分領域を、木構造データに適合する領域として検索する。
 また、実施形態に係る画像マッチング装置100は、テンプレート画像を複数の表示部分に分割し、この複数の表示部分にそれぞれ配置された複数の部分画像から、テンプレート画像情報を生成する生成部132を有する。また、実施形態に係る画像マッチング装置100において、検索部134は、画像から、生成部132によって生成されたテンプレート画像情報に適合する領域を検索する。
 また、実施形態に係る画像マッチング装置100において、生成部132は、テンプレート画像情報として、複数の表示部分のうちの表示内容が変化しない表示部分を根ノードで表し、かつ複数の表示部分のうちの表示パターンを持つ表示部分を葉ノードで表す木構造データを生成する。
 上述した各処理により、画像マッチング装置100は、マッチング対象の画像の変化に応じた画像マッチングを容易に行うことができる。
〔6.その他〕
 また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 例えば、図2に示した記憶部120の一部又は全部は、画像マッチング装置100によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、画像マッチング装置100は、ストレージサーバにアクセスすることで、保護対象プログラム等の各種情報を取得する。
〔7.ハードウェア構成〕
 図15は、ハードウェア構成の一例を示す図である。上述してきた実施形態に係る画像マッチング装置100は、例えば図15に示すような構成のコンピュータ1000によって実現される。
 図15は、プログラムが実行されることにより、画像マッチング装置100が実現されるコンピュータの一例を示している。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、画像マッチング装置100の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、画像マッチング装置100における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
 また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、本発明を特定の例に限定するものではない。本明細書に記載された特徴は、発明を実施するための形態の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で実施されることが可能である。
 また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、検索部は、検索手段や検索回路に読み替えることができる。
   1 画像マッチングシステム
 100 画像マッチング装置
 110 通信部
 120 記憶部
 121 テンプレート画像記憶部
 122 テンプレート画像情報記憶部
 123 部分画像情報記憶部
 124 被マッチング画像情報記憶部
 130 制御部
 131 受信部
 132 生成部
 133 取得部
 134 検索部
 135 提供部
 200 画像提供装置

Claims (8)

  1.  マッチング対象の画像を取得する取得部と、
     テンプレート画像の表示パターンを当該テンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、前記取得部によって取得された画像から、当該テンプレート画像情報に適合する領域を検索する検索部と
     を備えることを特徴とする画像マッチング装置。
  2.  前記検索部は、前記テンプレート画像情報として、前記複数の部分画像を複数のノードでそれぞれ表し、かつ前記表示パターンを分岐で表す木構造データを取得し、前記画像から、当該木構造データに適合する領域を検索する
     ことを特徴とする請求項1に記載の画像マッチング装置。
  3.  前記検索部は、前記木構造データの葉ノードから前記木構造データの根ノードまでの経路に含まれる前記複数のノードによってそれぞれ表される前記複数の部分画像と、前記画像の複数の部分領域との間で画像マッチングを行い、画像マッチングのマッチ率が閾値以上である場合に、当該複数の部分領域を、前記木構造データに適合する領域として検索する
     ことを特徴とする請求項2に記載の画像マッチング装置。
  4.  前記検索部は、前記複数の部分画像に複数の閾値をそれぞれ設定し、各部分画像と、各部分画像に対応する位置の各部分領域との間で画像マッチングを行い、画像マッチングのマッチ率が対応する閾値以上である場合に、前記画像の前記複数の部分領域を、前記木構造データに適合する領域として検索する
     ことを特徴とする請求項3に記載の画像マッチング装置。
  5.  前記テンプレート画像を複数の表示部分に分割し、当該複数の表示部分にそれぞれ配置された前記複数の部分画像から、前記テンプレート画像情報を生成する生成部をさらに備え、
     前記検索部は、前記画像から、前記生成部によって生成されたテンプレート画像情報に適合する領域を検索する
     ことを特徴とする請求項1~4のうちいずれか1つに記載の画像マッチング装置。
  6.  前記生成部は、前記テンプレート画像情報として、前記複数の表示部分のうちの表示内容が変化しない表示部分を根ノードで表し、かつ前記複数の表示部分のうちの表示パターンを持つ表示部分を葉ノードで表す木構造データを生成する
     ことを特徴とする請求項5に記載の画像マッチング装置。
  7.  コンピュータが実行する画像マッチング方法であって、
     マッチング対象の画像を取得する取得工程と、
     テンプレート画像の表示パターンを当該テンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、前記取得工程によって取得された画像から、当該テンプレート画像情報に適合する領域を検索する検索工程と
     を含むことを特徴とする画像マッチング方法。
  8.  マッチング対象の画像を取得する取得手順と、
     テンプレート画像の表示パターンを当該テンプレート画像の複数の部分画像の組み合わせで表すテンプレート画像情報を取得し、前記取得手順によって取得された画像から、当該テンプレート画像情報に適合する領域を検索する検索手順と
     をコンピュータに実行させることを特徴とする画像マッチングプログラム。
PCT/JP2020/045351 2020-12-04 2020-12-04 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム WO2022118482A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/045351 WO2022118482A1 (ja) 2020-12-04 2020-12-04 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/045351 WO2022118482A1 (ja) 2020-12-04 2020-12-04 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム

Publications (1)

Publication Number Publication Date
WO2022118482A1 true WO2022118482A1 (ja) 2022-06-09

Family

ID=81854090

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/045351 WO2022118482A1 (ja) 2020-12-04 2020-12-04 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム

Country Status (1)

Country Link
WO (1) WO2022118482A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115119008A (zh) * 2022-06-28 2022-09-27 广州方硅信息技术有限公司 直播场景下的开播推荐方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052598A (ja) * 2006-08-25 2008-03-06 Fujitsu Ltd 画像位置計測方法、画像位置計測装置、および画像位置計測プログラム
JP2009093412A (ja) * 2007-10-09 2009-04-30 Fujitsu Ltd 画像計測方法及び画像計測装置
JP2012185655A (ja) * 2011-03-04 2012-09-27 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
JP2015032001A (ja) * 2013-07-31 2015-02-16 キヤノン株式会社 情報処理装置および情報処理手法、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052598A (ja) * 2006-08-25 2008-03-06 Fujitsu Ltd 画像位置計測方法、画像位置計測装置、および画像位置計測プログラム
JP2009093412A (ja) * 2007-10-09 2009-04-30 Fujitsu Ltd 画像計測方法及び画像計測装置
JP2012185655A (ja) * 2011-03-04 2012-09-27 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
JP2015032001A (ja) * 2013-07-31 2015-02-16 キヤノン株式会社 情報処理装置および情報処理手法、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115119008A (zh) * 2022-06-28 2022-09-27 广州方硅信息技术有限公司 直播场景下的开播推荐方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US10713258B2 (en) Systems and methods for visualizing and manipulating graph databases
AU2015292700B2 (en) Data lineage summarization
US8786603B2 (en) Ancestor-to-ancestor relationship linking methods and systems
US20120092357A1 (en) Region-Based Image Manipulation
US20150054831A1 (en) User interface framework for viewing large scale graphs on the web
US10127497B2 (en) Interface engine for efficient machine learning
JP2009187113A (ja) 情報処理装置、情報処理方法、およびプログラム
CN106575158B (zh) 环境映射虚拟化机构
JP2016062524A (ja) データ処理システム、データ処理方法およびデータ処理プログラム
KR101765296B1 (ko) 사용자 생성 분석수단을 제공하는 데이터 분석도구 제공 장치 및 방법
JP6811796B2 (ja) 拡張現実アプリケーションのためのビデオにおけるリアルタイムオーバーレイ配置
WO2022118482A1 (ja) 画像マッチング装置、画像マッチング方法及び画像マッチングプログラム
US20150093029A1 (en) Image layers navigation
CN113298226A (zh) 通过中间潜在空间控制神经网络
CN110163866A (zh) 一种图像处理方法、电子设备及计算机可读存储介质
CN114417064A (zh) 数据处理方法、装置、计算机设备、存储介质
KR20210040305A (ko) 이미지 생성 방법 및 장치
JP6880974B2 (ja) 情報出力プログラム、情報出力方法および情報処理装置
CN109446384B (zh) 用于生成人员组织架构信息的方法和系统
WO2004081878A1 (en) Method and apparatus for generating morphing sequence
US10715416B2 (en) Determining connections between nodes in a network
CN109697722B (zh) 用于生成三分图的方法及装置
CN108596120B (zh) 一种基于深度学习的目标检测方法和装置
CN112785493B (zh) 模型的训练方法、风格迁移方法、装置、设备及存储介质
CN112562043A (zh) 图像处理方法、装置和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20964333

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20964333

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP