WO2022195784A1 - 分類装置、分類方法、および、分類プログラム - Google Patents

分類装置、分類方法、および、分類プログラム Download PDF

Info

Publication number
WO2022195784A1
WO2022195784A1 PCT/JP2021/010932 JP2021010932W WO2022195784A1 WO 2022195784 A1 WO2022195784 A1 WO 2022195784A1 JP 2021010932 W JP2021010932 W JP 2021010932W WO 2022195784 A1 WO2022195784 A1 WO 2022195784A1
Authority
WO
WIPO (PCT)
Prior art keywords
operation event
classification
unit
captured image
event
Prior art date
Application number
PCT/JP2021/010932
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/JP2021/010932 priority Critical patent/WO2022195784A1/ja
Priority to US18/281,641 priority patent/US20240153241A1/en
Priority to JP2023506610A priority patent/JP7517590B2/ja
Publication of WO2022195784A1 publication Critical patent/WO2022195784A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Definitions

  • the present invention relates to a classification device, a classification method, and a classification program.
  • the present invention has been made to solve the above-described problems of the prior art, and it is an object of the present invention to easily specify an operated GUI component and its type without depending on the application execution environment of a terminal device.
  • the classification device of the present invention provides an acquisition unit that acquires captured images of an operation screen of a terminal device before and after an operation event occurs, and a generation unit that uses the captured image to generate, as a differential image, changes that occur on the operation screen before and after the occurrence of the operation event; and a classifying unit for classifying the types of GUI components operated in.
  • a classification method of the present invention is a classification method executed by a classification device, comprising: an acquisition step of acquiring captured images of an operation screen before and after an operation event of a terminal device occurs; a generation step of generating, as a difference image, a change that occurred on the operation screen before and after the occurrence of the operation event, using the captured image obtained by the operation event; and a classification step of classifying the types of GUI parts operated by the event.
  • the classification program of the present invention includes an acquisition step of acquiring captured images of an operation screen of a terminal device before and after an operation event has occurred; a generation step of generating, as a difference image, a change that occurred on an operation screen before and after the occurrence of a; and a classification step of classifying the .
  • FIG. 1 is a block diagram showing the configuration of a classification device according to Embodiment 1.
  • FIG. 2 is a diagram illustrating an example of a difference image generated from captured images before and after operation of a radio button GUI component.
  • FIG. 3 is a diagram illustrating an example of a difference image generated from captured images before and after an operation of a check box GUI component.
  • FIG. 4 is a diagram showing an example of a difference image generated from captured images before and after operation of a GUI component of a pull-down menu.
  • FIG. 5 is a diagram illustrating an example of a difference image generated from captured images before and after operation of the GUI component of the text box.
  • FIG. 6 is a diagram illustrating an example of a difference image generated from captured images before and after operation of a button GUI component.
  • FIG. 7 is a diagram showing an example of a difference image generated from captured images of the entire screen before and after the operation of the GUI component.
  • FIG. 8 is a diagram showing an example of variation of input data for a trained model.
  • FIG. 9 is a diagram illustrating a process of classifying the types of operated GUI parts by inputting a captured image and a difference image into a trained model.
  • 10 is a flowchart illustrating an example of processing for storing captured images for each operation event in the classification device according to Embodiment 1.
  • FIG. 11 is a flowchart illustrating an example of processing for extracting an operation event for a GUI component from a captured image in the classification device according to Embodiment 1.
  • FIG. 12 is a flowchart illustrating an example of processing for generating a differential image in the classification device according to Embodiment 1.
  • FIG. 13 is a flowchart illustrating an example of processing for classifying GUI components from a captured image for each operation event in the classification device according to Embodiment 1.
  • FIG. 14 is a diagram showing an example of the flow of processing for obtaining, inputting, and determining operation information in the classification device according to Embodiment 1.
  • FIG. FIG. 15 is a diagram showing a computer executing a classification program.
  • Embodiment 1 the configuration of the classification device according to Embodiment 1 and the processing flow of the classification device will be described in order, and finally the effects of Embodiment 1 will be described.
  • FIG. 1 is a block diagram showing the configuration of a classification device according to Embodiment 1.
  • FIG. 1 is a block diagram showing the configuration of a classification device according to Embodiment 1.
  • the classification device 10 is connected to the terminal device 20 via a network (not shown), which may be wired or wireless.
  • a network not shown
  • the configuration shown in FIG. 1 is merely an example, and the specific configuration and the number of each device are not particularly limited.
  • the terminal device 20 is an information processing device operated by an operator.
  • the terminal device 20 is a desktop PC, a notebook PC, a tablet terminal, a mobile phone, a PDA, or the like.
  • the classification device 10 has a communication section 11 , a control section 12 and a storage section 13 . Processing of each unit of the classification device 10 will be described below.
  • the communication unit 11 controls communication regarding various information.
  • the communication unit 11 controls communication regarding various types of information exchanged between the terminal device 20 and an information processing device connected via a network.
  • the communication unit 11 receives, from the terminal device 20, operation event information regarding an operation event that occurs when a mouse or keyboard is operated.
  • the operation event information is various kinds of information including, for example, operation event occurrence time (time), occurrence position, event type (mouse click, keyboard input), and cursor information.
  • the storage unit 13 stores data and programs necessary for various processes by the control unit 12, and has a captured image storage unit 13a, a learned model storage unit 13b, and an operation log storage unit 13c.
  • the storage unit 13 is a semiconductor memory device such as RAM (Random Access Memory) or flash memory, or a storage device such as a hard disk or optical disk.
  • the captured image storage unit 13a stores captured images acquired by the acquiring unit 12a described later at regular time intervals (for example, one second). For example, the captured image storage unit 13a stores the captured time (time) and the captured image in association with each other. Note that the captured image storage unit 13a may store a captured image of the entire operation screen, or may store a partially extracted captured image on the operation screen.
  • the learned model storage unit 13b stores learned models that classify the types of GUI components operated by operation events.
  • the learned model stored in the learned model storage unit 13b includes, for example, a captured image at or after the occurrence of an operation event, and a difference image showing changes that occurred on the operation screen before and after the occurrence of the operation event.
  • the type of GUI component operated by the operation event is output.
  • the data input to the trained model is not limited to the captured image and the difference image, and includes an image obtained by synthesizing the cursor image and the captured image, cursor information including values indicating the cursor state, etc. It's okay. It is assumed that the learned model stored in the learned model storage unit 13b has been learned in advance by an external device.
  • the learned model stored in the learned model storage unit 13b is not limited to one learned by an external device, and may be one learned by the classification device 10, for example.
  • the classification device 10 further includes a learning unit that performs machine learning, and the learning unit performs the above-described learning process in advance to generate a trained model.
  • the operation log storage unit 13c stores the captured images saved in the captured image storage unit 13a by the acquisition unit 12a in association with the time of occurrence as captured images before, during, and after the occurrence of the operation event. For example, the operation log storage unit 13c links captured images before, during, and after the occurrence of an operation event, the difference image generated by the generation unit 12c, and the types of GUI components classified by the classification unit. memorize it. Further, the operation log storage unit 13c may associate and store a part of the operation event information including the cursor information and the occurrence position.
  • the operation log storage unit 13c may store logs of all operation events performed on the terminal device 20, or may store only logs of predetermined operation events.
  • the operation log storage unit 13c stores not only operation logs of operation events related to a specific business system, but also operation event logs of business operations using various applications such as email, web browsers, and Office applications such as Word, Excel, and PowerPoint. may be stored at the same time, or a log may be stored for each operation event of a single application.
  • the control unit 12 has an internal memory for storing programs defining various processing procedures and required data, and executes various processing using these.
  • the control unit 12 has an acquisition unit 12a, an extraction unit 12b, a generation unit 12c, and a classification unit 12d.
  • the control unit 12 is an electronic circuit such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
  • the acquisition unit 12a acquires captured images of the operation screen before and after the operation event of the terminal device occurs. For example, the acquiring unit 12a periodically acquires captured images at regular intervals, and stores the acquired captured images in the captured image storage unit 13a.
  • the acquisition unit 12a may acquire three types of captured images from the captured image storage unit 13a at the timing when the operator's operation event occurs, when the operation event occurs, before the occurrence, and after the occurrence.
  • the acquisition unit 12a may acquire three types of captured images from the captured image storage unit 13a at the timing when the operator's operation event occurs, when the operation event occurs, before the occurrence, and after the occurrence.
  • three types of captured images are acquired when an operation event occurs, before the occurrence, and after the occurrence will be described as a main example.
  • the acquisition unit 12a acquires a captured image at regular time intervals regardless of whether an operation event has occurred, as a method for acquiring a capture before an operation event occurs.
  • the captured image acquired before the occurrence of the operation event (predetermined time before) is stored in the operation log storage unit 13c as the captured image before the occurrence of the operation event.
  • the acquisition unit 12a acquires a capture image after a certain period of time has elapsed after the occurrence of the operation event, and acquires the operation log storage unit 13c as a capture after the occurrence of the operation event.
  • the acquisition unit 12a may compare the acquisition time of the capture acquired at regular intervals with the time of occurrence of the operation event, and later link the images as captured images when the operation event occurs, before the occurrence, and after the occurrence of the operation event. good.
  • the acquisition unit 12a may also acquire information on the cursor displayed on the operation screen, and use the information on the cursor to specify the shape of the cursor. For example, the acquisition unit 12a acquires a cursor handle when an operation event occurs, and compares it with a predefined cursor handle to identify the shape of the cursor.
  • the acquisition unit 12a acquires the event occurrence time, the event occurrence position, and the event type for the user's operation event. For example, when an operation event occurs, the acquisition unit 12a acquires from the terminal device 20 event type information that specifies the operation content such as a click operation or key input, and information on the occurrence time of the operation event. Further, for example, when a click operation is performed, the acquisition unit 12a may acquire information on the position where the operation event occurs, and when key input is performed, the information on the operated key may be acquired. You may get the type information.
  • the extraction unit 12b compares the captured image before and after the occurrence of the operation event, and extracts the operation event if there is a difference. For example, the extracting unit 12b compares captured images at the time, before, and after the occurrence of a given operation event, and if there is a difference in any of them, extracts the operation event. Extract as an operation event that may have had a meaningful operation.
  • an operation event in which a meaningful operation may have been performed hereinafter referred to as a “meaningful operation event” means an operation event in which an operation on a GUI part may have been performed. do.
  • the extraction unit 12b may use a captured image of the entire screen as the captured image to be compared, or may use an image obtained by cutting out the vicinity of the position where the operation event occurs from the captured image.
  • the generation unit 12c uses the captured image acquired by the acquisition unit 12a to generate, as a difference image, changes that occurred on the operation screen before and after the operation event occurred. Specifically, the generation unit 12c generates, as a difference image, changes that occur on the operation screen before and after the operation event extracted by the extraction unit 12b.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation event determined to be the operation event for the GUI component by the extraction unit 12b, and converts the absolute value of the difference into image data. By doing so, a difference image representing the difference as an image is generated.
  • FIGS. 2 to 6 examples of difference images generated from captured images before and after operation of GUI parts are shown. 2 to 6 respectively illustrate the case of a captured image without a cursor and the case of a captured image with a cursor.
  • FIG. 2 is a diagram showing an example of a difference image generated from captured images before and after operation of a radio button GUI component.
  • the acquisition unit 12a acquires a pre-operation captured image in which a radio button labeled “number of transfers” is checked as a pre-operation captured image.
  • the acquisition unit 12a removes the check mark from the radio button labeled "Number of transfers” and removes the check mark from the radio button labeled "Fare ” radio button is checked to obtain a captured image after the operation.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation, converts the absolute value of the difference into image data, and generates a difference image including the round marks of the two radio buttons. Generate.
  • FIG. 3 is a diagram showing an example of a difference image generated from captured images before and after operation of a check box GUI component.
  • the acquiring unit 12a acquires a captured image in which the edge of the check box labeled “Express Line” is displayed with a thick border, as a captured image before the operation.
  • the acquisition unit 12a removes the check mark from the check box labeled "express train”, Acquire a captured image in which the edge of the check box labeled "route bus” is displayed with a thick frame and a check mark is displayed.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation, converts the absolute value of the difference into image data, and converts the square edge of the two check boxes and the check mark of "route bus" into image data. Generate a difference image containing
  • FIG. 4 is a diagram showing an example of a difference image generated from the captured images before and after the operation of the GUI component of the pull-down menu.
  • the acquisition unit 12a acquires a captured image in which a pull-down menu labeled “2019” is selected as a pre-operation captured image.
  • the acquisition unit 12a selects the pull-down menu labeled "2019”.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation, and converts the absolute value of the difference into image data, thereby creating a pull-down menu labeled “2019”, Then, a difference image is generated that includes a pull-down menu labeled "November” and selections for all other months.
  • FIG. 5 is a diagram showing an example of a difference image generated from the captured images before and after the operation of the text box GUI component.
  • the acquiring unit 12a acquires a captured image in which a GUI component of a text box labeled "web search" is displayed as a pre-operation captured image.
  • the acquisition unit 12a causes the characters in the text box labeled "web search” to disappear. , to obtain a captured image after the operation in which the cursor is displayed on the GUI component of the text box.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation, and converts the absolute value of the difference into image data to generate the characters of the text "web search". , and the cursor displayed in the text box GUI component.
  • FIG. 6 is a diagram showing an example of a difference image generated from the captured images before and after the button GUI component is operated.
  • the acquiring unit 12a acquires a captured image in which an "OK" button is displayed on a tab labeled "Arriving station not found” as a captured image before operation.
  • the acquisition unit 12a removes the tab labeled "Arriving station not found.” and displays the original screen. Get the captured image after the operation.
  • the generation unit 12c calculates the difference between the pixel values of the captured image before and after the operation, and converts the absolute value of the difference into image data, so that "arrival station not found.” generates a difference image that includes the tabs that are hidden by the tabs and the original screen that was hidden by the tabs.
  • FIG. 7 is a diagram showing an example of a difference image generated from captured images of the entire screen before and after the operation of a GUI component.
  • a case was described in which an image obtained by cutting out the vicinity of the position where the operation event occurred from the captured image was used.
  • the images may be used to generate a difference image.
  • the classification unit 12d classifies the types of GUI components operated by operation events using the difference image generated by the generation unit 12c.
  • the classification unit 12d classifies the types of GUI components and determines whether or not the event is a meaningful operation event.
  • the GUI parts that can be classified include, for example, "radio button”, “check box”, “pull-down menu”, “text box”, and “button”. and "link”.
  • the classification unit 12d classifies it as "not a meaningful operation event”.
  • the classification unit 12d receives the captured image and cursor information acquired by the acquisition unit 12a, and the difference image generated by the generation unit 12c, and classifies the type of GUI component operated by the operation event.
  • a trained model may be used to classify the types of GUI components operated by each operation event.
  • This trained model is a trained model stored in the trained model storage unit 13b, and is learned using a predetermined machine learning algorithm with the relationship between input data and operated GUI parts as teacher data. It is a finished model.
  • classification unit 12d classifies the type of GUI component operated by the operation event using the difference image generated by the generation unit 12c and the shape of the cursor specified by the acquisition unit 12a.
  • the classification unit 12d may use information about operation events performed before and after the operation event targeted for classification for classification.
  • the target operation event is a mouse click intended to focus on a text box
  • the next operation event is likely to be a key input such as a character. Therefore, by using the information that the next operation event is a key input, it is expected that the classification accuracy of the target operation event will be improved.
  • the classification unit 12d inputs the operation event performed before and after the operation event in addition to the captured image and the difference image to the learned model. Classify the types of GUI parts.
  • the classification unit 12d may use the window identification information for classification. For example, if the target operation event is link depression, there is a high possibility that the operation event will cause a page transition. Therefore, if the acquisition unit 12a can obtain window identification information indicating that a page transition has occurred after an operation event, the use of the window identification information can be expected to improve the classification accuracy of target operation events. In this case, the classifying unit 12d classifies the type of GUI component operated by the operation event by inputting the identification information of the window in addition to the captured image and the difference image to the learned model. do.
  • FIG. 8 is a diagram showing an example of variation of input data for a trained model.
  • the classification unit 12d inputs the captured image acquired by the acquisition unit 12a and the difference image generated by the generation unit 12c to the trained model.
  • the classification unit 12d may input a cursor image in addition to the captured image and the differential image to the learned model.
  • the classification unit 12d may input information on the shape of the cursor specified by the acquisition unit 12a to the learned model. Further, the classification unit 12d may input the information of the occurrence position of the operation event acquired by the acquisition unit 12a to the trained model, in addition to the captured image and the difference image.
  • FIG. 9 is a diagram illustrating a process of classifying the types of operated GUI parts by inputting a captured image and a difference image into a trained model.
  • the CNN has a hierarchical structure and includes a convolutional layer, a pooling layer, a fully connected layer, and an output layer.
  • an external device that performs learning can robustly acquire the type of an unknown GUI component from limited learning data. You may use Dropout to deactivate some of the nodes in the layer.
  • an external device that performs learning can generate a learning model with high classification accuracy by using a trained model for another related task.
  • the external device that performs learning acquires the types of unknown GUI parts robustly from limited learning data, when learning the relationship between input data and operated GUI parts, the GUI Transfer learning or fine tuning may be performed using a model that has learned in advance the relationship between component images and the types of GUI components.
  • FIG. 10 is a flowchart illustrating an example of processing for storing captured images for each operation event in the classification device according to Embodiment 1.
  • FIG. 10 is a flowchart illustrating an example of processing for storing captured images for each operation event in the classification device according to Embodiment 1.
  • the acquisition unit 12a determines whether the user has stopped processing or turned off the terminal device 20 (step S101). As a result, when the acquiring unit 12a determines that the operator has stopped the process or turned off the power of the terminal device (step S101 Yes), the process of this flow ends. Further, when the acquiring unit 12a determines that the operator has not stopped the processing and has not turned off the power of the terminal device 20 (step S101 No), the captured image storage unit 13a stores the captured image at regular intervals. (step S102).
  • the acquisition unit 12a determines whether or not an operation event has occurred (step S103). As a result, if an operation event has occurred (step S103 Yes), the acquisition unit 12a acquires operation event information (step S104). For example, the acquisition unit 12a acquires the event occurrence time, the event occurrence position, and the event type for the user's operation event, and stores them in the operation log storage unit 13c in association with the captured image at the time of the event occurrence. Also, if no operation event has occurred (step S103 NO), the process returns to step S101.
  • the acquiring unit 12a acquires a pre-occurrence captured image of the operation event based on the occurrence time from the captured images temporarily stored in the captured image storage unit 13a in step S102 (step S105). Subsequently, the acquiring unit 12a acquires a captured image as a captured image after occurrence of an operation event after a certain period of time has elapsed (step S106). Then, the acquisition unit 12a associates the captured images before, during, and after the occurrence of the operation event based on the occurrence time from the acquired captured images, and stores them in the operation log storage unit 13c (step S107). After that, the process returns to step S101 and repeats the above process flow.
  • the acquisition unit 12a may store the captured image in the classification device according to the first embodiment by linking the captured image to the operation event later.
  • the acquisition unit 12a independently acquires a captured image and acquires an operation event, and after accumulating a certain amount of captured image data, associates the operation event with the captured image based on the operation event occurrence time.
  • FIG. 11 is a flowchart illustrating an example of processing for extracting an operation event for a GUI component from a captured image in the classification device according to Embodiment 1.
  • FIG. 11 is a flowchart illustrating an example of processing for extracting an operation event for a GUI component from a captured image in the classification device according to Embodiment 1.
  • the extraction unit 12b determines whether all operation events are targeted (step S201). As a result, when the extraction unit 12b determines that all the operation events are targets (step S201 Yes), the process of this flow is terminated. In addition, when not all the operation events are targeted (step S201 No), the extraction unit 12b determines the operation events to be targeted (step S202).
  • the extraction unit 12b determines whether there is a difference in any of the captured images when the operation event occurs, before the occurrence, or after the occurrence (step S203). As a result, when the extracting unit 12b determines that there is no difference in any of the captured images before and after the occurrence of the operation event (step S203 No), the process returns to step S201.
  • step S203 determines that there is a difference in any of the captured images before and after the occurrence of the operation event.
  • the extraction unit 12b determines that the target operation event is a meaningful operation. (step S204). After that, the process returns to step S201 and repeats the above process flow.
  • FIG. 12 is a flowchart illustrating an example of processing for generating a differential image in the classification device according to Embodiment 1.
  • FIG. 12 is a flowchart illustrating an example of processing for generating a differential image in the classification device according to Embodiment 1.
  • the generation unit 12c determines whether all the operation events are targeted (step S301). As a result, when the generation unit 12c determines that all the operation events are targets (step S301 Yes), the process of this flow is terminated. Further, when not all the operation events are targeted (step S301 No), the generation unit 12c determines the operation events to be targeted (step S302).
  • the generation unit 12c determines whether or not the target operation event is an operation event extracted as a meaningful operation event (step S303). As a result, if the operation event is not extracted as a meaningful operation event (step S303 No), the generating unit 12c returns to the process of step S301.
  • step S303 Yes when the generation unit 12c determines that the target operation event is an operation event extracted as a meaningful operation event (step S303 Yes), when the operation event occurs, before the occurrence, and after the occurrence From the captured image, the difference occurring on the screen is generated as an image (step S304). For example, when an operation event occurs, the generation unit 12c calculates the difference between the pixel values of the captured image before and after the occurrence, and converts the absolute value of the difference into image data to generate a difference image. After that, the process returns to step S301 and repeats the above process flow.
  • FIG. 13 is a flowchart illustrating an example of processing for classifying GUI components from a captured image for each operation event in the classification device according to Embodiment 1.
  • FIG. 13 is a flowchart illustrating an example of processing for classifying GUI components from a captured image for each operation event in the classification device according to Embodiment 1.
  • the classification unit 12d determines whether all operation events are targeted (step S401). As a result, when the classification unit 12d determines that all the operation events are targets (step S401 Yes), the processing of this flow ends. Further, when not all the operation events are targeted (step S401 No), the classification unit 12d determines the operation event to be targeted (step S402).
  • the classification unit 12d determines whether or not the target operation event is an operation event extracted as a meaningful operation event (step S403). As a result, if the operation event is not extracted as a meaningful operation event (step S403 No), the classification unit 12d returns to the process of step S401.
  • the classification unit 12d determines that the target operation event is an operation event extracted as a meaningful operation event (step S403 Yes)
  • the captured image, difference image, cursor shape, operation event occurrence Using the information such as location, the types of operated GUI parts are classified (step S404).
  • the classification unit 12d classifies an operation event that does not correspond to a meaningful operation on a GUI component into the category of "no meaningful operation event". After that, the process returns to step S401 and repeats the above process flow.
  • the classification device 10 acquires captured images of the operation screen before and after the operation event of the terminal device 20 occurs. Then, the classification device 10 uses the acquired captured image to generate, as a difference image, changes that occurred on the operation screen before and after the operation event occurred. Subsequently, the classification device 10 classifies the type of the operated GUI component using the generated difference image. As a result, the classification device 10 can easily identify the manipulated GUI component and its type without depending on the application execution environment of the terminal device 20 .
  • the GUI part where the operation was performed is specified and the type thereof is determined using the changed operation location and the appearance of the operation location. It is possible.
  • the shape of the GUI component changes when the cursor is placed on it, the shape of the GUI component changes when the mouse is down, or the screen is displayed after clicking. It is possible to specify the operated GUI component and determine its type by using the operation location and the appearance of the operation location where there was a change in the screen difference that occurred before and after the operation event. is.
  • a standard arrow is used as the shape when the cursor is in a place where no GUI component exists, or an I
  • the shape of a beam or when the cursor is on a button is the shape of a hand with a finger raised. It is possible to identify and determine its type.
  • the capture image acquired by the acquisition unit 12a and the difference image generated by the generation unit 12c are input, and the type of GUI component operated by the operation event is determined.
  • the classification device 10 or an external device learns features common to GUI parts for a trained model, and from limited learning data, when GUI parts change or unknown GUI parts On the other hand, it becomes possible to acquire the type robustly.
  • the classification device 10 can collect reference data for creating an RPA scenario and improving the scenario by identifying the type of GUI component that has been operated.
  • RPA Robot Process Automation
  • the operating procedures for the system to provide the same services and products are determined for each service and product, and the person in charge is in charge according to manuals, etc. shared with others.
  • GUI component attribute values differs for each application, in order to comprehensively grasp the work execution status of the person in charge, it is necessary to acquire the GUI component attribute values according to the execution environment of all the applications used in the work. Although it is necessary to develop a mechanism for identifying the acquisition and change points of the information, the development cost is actually very high and it is not realistic. Even if a specific application is developed, if the specification changes due to the version upgrade of the target application, there is a problem that it is necessary to modify it accordingly.
  • the classification device 10 of the present embodiment acquires only screen captures and mouse/keyboard operation information by specifying an operation log using a captured image of the operation screen of the terminal device 20. It can be used even in environments where it is not possible. In addition, even if different browsers, websites, and applications are used for each terminal device 20, it is possible to determine even unknown data by having the CNN learn the captured image and the difference image. Therefore, in the classification device 10 of the present embodiment, regardless of the execution environment of the application of the terminal device 20, it is possible to acquire the type of GUI component of the operation event by the operator and the flow of the operation in general.
  • GUI part by specifying the type of the operated GUI part, it is possible to visualize the number of operations for each GUI part operated by the user, such as text boxes and radio buttons. This can be used as a reference for improving the design of the system, such as changing to a select box when there are many text box inputs and can be patterned.
  • each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution and integration of each device is not limited to the one shown in the figure, and all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • each processing function performed by each device may be implemented in whole or in part by a CPU and a program analyzed and executed by the CPU, or implemented as hardware based on wired logic.
  • program It is also possible to create a program in which the processing executed by the classification device 10 according to the above embodiment is described in a computer-executable language. In this case, the same effects as those of the above embodiments can be obtained by having the computer execute the program. Further, such a program may be recorded in a computer-readable recording medium, and the program recorded in this recording medium may be read by a computer and executed to realize processing similar to that of the above embodiments.
  • An example of a computer that executes a classification program that implements the same functions as the classification device 10 will be described below.
  • FIG. 15 is a diagram showing a computer that executes a classification program.
  • computer 1000 has memory 1010, CPU 1020, hard disk drive interface 1030, disk drive interface 1040, serial port interface 1050, video adapter 1060, and network interface 1070, for example. These units are connected by a bus 1080 .
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 .
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • Hard disk drive interface 1030 is connected to hard disk drive 1090 .
  • Disk drive interface 1040 is connected to disk drive 1041 .
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041, for example.
  • a mouse 1110 and a keyboard 1120 are connected to the serial port interface 1050, for example.
  • a display 1130 is connected to the video adapter 1060 .
  • the hard disk drive 1090 stores an OS 1091, application programs 1092, program modules 1093 and program data 1094, for example.
  • Each table described in the above embodiment is stored in the hard disk drive 1090 or the memory 1010, for example.
  • the classification program is stored in the hard disk drive 1090 as a program module in which commands to be executed by the computer 1000 are written, for example.
  • the hard disk drive 1090 stores a program module 1093 that describes each process executed by the classification device 10 described in the above embodiment.
  • data used for information processing by the classification program is stored in, for example, the hard disk drive 1090 as program data.
  • CPU 1020 reads out program module 1093 and program data 1094 stored in hard disk drive 1090 to RAM 1012 as necessary, and executes each procedure described above.
  • program module 1093 and program data 1094 related to the classification program are not limited to being stored in the hard disk drive 1090.
  • they may be stored in a removable storage medium and read by the CPU 1020 via the disk drive 1041 or the like.
  • the program module 1093 and program data 1094 related to the classification program are stored in another computer connected via a network such as a LAN (Local Area Network) or WAN (Wide Area Network), and via the network interface 1070 It may be read by CPU 1020 .
  • LAN Local Area Network
  • WAN Wide Area Network
  • classification device 11 communication unit 12 control unit 12a acquisition unit 12b extraction unit 12c generation unit 12d classification unit 13 storage unit 13a captured image storage unit 13b learned model storage unit 13c operation log storage unit 20 terminal device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Abstract

分類装置(10)は、端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する。そして、分類装置(10)は、取得したキャプチャ画像を用いて、操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する。続いて、分類装置(10)は、生成した差分画像を用いて、操作が行われたGUI部品の種類を分類する。

Description

分類装置、分類方法、および、分類プログラム
 本発明は、分類装置、分類方法、および、分類プログラムに関する。
 従来、RPA(Robotic Process Automation)等で効果的な業務改善を実現するために、業務実態を正確かつ網羅的に把握することが重要である。例えば、業務実態を把握する方法として、操作者の端末(以下、端末装置)上で行われたGUI(Graphic User Interface)部品への操作を操作ログとして収集し、フローチャート形式で表示する方法がある。
 また、操作者のGUI部品への操作の粒度で操作ログを取得する仕組みとして、例えば、GUIアプリケーションの操作画面を対象に、操作イベント発生時に、操作画面を構成するGUI部品の属性値を取得し、操作イベントの発生前後の変更箇所を特定する技術が知られている。
小笠原ほか、「業務の実行履歴を活用した業務プロセス可視化・分析システムの開発」、NTT技術ジャーナル、2009.2、P40-P43
 しかしながら、従来の技術では、端末装置のアプリケーションの実行環境によって操作されたGUI部品とその種類を容易に特定することができない場合があった。例えば、GUI部品の属性値の取得方法は、アプリケーション種別やアプリケーションのバージョンごとに異なる場合がある。そのため、業務で利用する全てのアプリケーションの操作ログを取得するには、アプリケーションの実行環境に応じてGUI部品の属性値の取得および変更箇所を特定する機能の開発に加え、アプリケーションの仕様変更の度に改造が必要になり、それらの機能の実現が高コストであるという課題があった。
 また、例えば、業務が端末装置で直接行われず、端末装置からシンクライアント端末に接続して行われる場合がある。この場合、シンクライアント端末から端末装置には画像情報のみしか送れないため、端末装置から従来技術を利用した場合に、シンクライアント端末上で操作されたGUI部品の情報および、変化箇所を特定することは難しいという課題があった。
 そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、端末装置のアプリケーションの実行環境に依らず、操作されたGUI部品とその種類を容易に特定することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明の分類装置は端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得部と、前記取得部によって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成部と、前記生成部によって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類部と、を備えることを特徴とする。
 また、本発明の分類方法は、分類装置が実行する分類方法であって、端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得工程と、前記取得工程によって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成工程と、前記生成工程によって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類工程とを含んだことを特徴とする。
 また、本発明の分類プログラムは、端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得ステップと、前記取得ステップによって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成ステップと、前記生成ステップによって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類ステップとをコンピュータに実行させることを特徴とする。
 本発明によれば、端末装置のアプリケーションの実行環境に依らず、操作されたGUI部品とその種類を容易に特定することが可能となる効果を奏する。
図1は、実施の形態1に係る分類装置の構成を示すブロック図である。 図2は、ラジオボタンのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。 図3は、チェックボックスのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。 図4は、プルダウンメニューのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。 図5は、テキストボックスのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。 図6は、ボタンのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。 図7は、GUI部品の操作前後の画面全体のキャプチャ画像から生成した差分画像の一例を示す図である。 図8は、学習済みモデルに対する入力データのバリエーションの例を示す図である。 図9は、学習済みモデルにキャプチャ画像と差分画像を入力することで、操作されたGUI部品の種類を分類する処理を説明する図である。 図10は、実施の形態1に係る分類装置における操作イベント毎にキャプチャ画像を格納する処理の一例を示すフローチャートである。 図11は、実施の形態1に係る分類装置におけるキャプチャ画像からGUI部品についての操作イベントを抽出する処理の一例を示すフローチャートである。 図12は、実施の形態1に係る分類装置における差分画像を生成する処理の一例を示すフローチャートである。 図13は、実施の形態1に係る分類装置における操作イベント毎にキャプチャ画像からGUI部品を分類する処理の一例を示すフローチャートである。 図14は、実施の形態1に係る分類装置における操作情報の取得、入力、判別の処理の流れの一例を示す図である。 図15は、分類プログラムを実行するコンピュータを示す図である。
 以下に添付図面を参照して、本発明に係る分類装置、分類方法、および、分類プログラムの実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
[実施の形態1]
 以下の実施の形態1では、実施の形態1に係る分類装置の構成、分類装置の処理の流れを順に説明し、最後に実施の形態1による効果を説明する。
[分類装置の構成]
 まず、最初に、図1を用いて、実施の形態1に係る分類装置の構成を説明する。図1は、実施の形態1に係る分類装置の構成を示すブロック図である。
 図1に示すように、分類装置10は、端末装置20とネットワーク(図示せず)を介して接続されており、有線接続または無線接続のどちらでもよい。なお、図1に示す構成は一例にすぎず、具体的な構成や各装置の数は特に限定されない。
 端末装置20は、操作者が操作する情報処理装置である。例えば、端末装置20は、デスクトップ型PCや、ノート型PCや、タブレット端末や、携帯電話機や、PDA等である。
 次に、図1に示した分類装置10の構成を説明する。同図に示すように、この分類装置10は、通信部11と、制御部12と、記憶部13とを有する。以下に分類装置10が有する各部の処理を説明する。
 通信部11は、各種情報に関する通信を制御する。例えば、通信部11は、端末装置20やネットワークを介して接続される情報処理装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信部11は、マウスやキーボードの操作が操作された際に発生する操作イベントに関する操作イベント情報を端末装置20から受信する。ここで、操作イベント情報とは、例えば、操作イベントの発生時間(時刻)、発生位置、イベント種別(マウスクリック、キーボード入力)、カーソルの情報を含む各種情報のことである。
 記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納し、キャプチャ画像記憶部13a、学習済みモデル記憶部13bおよび操作ログ記憶部13cを有する。例えば、記憶部13は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
 キャプチャ画像記憶部13aは、後述する取得部12aによって、一定時間(例えば1秒)ごとに取得されたキャプチャ画像を記憶する。例えば、キャプチャ画像記憶部13aは、キャプチャされた時間(時刻)とキャプチャ画像とを対応付けて記憶する。なお、キャプチャ画像記憶部13aは、操作画面全体のキャプチャ画像を記憶してもよいし、操作画面上において一部の抽出されたキャプチャ画像を記憶してもよい。
 学習済みモデル記憶部13bは、操作イベントで操作が行われたGUI部品の種類を分類する学習済みモデルを記憶する。学習済みモデル記憶部13bに記憶される学習済みモデルは、例えば、操作イベント発生時または発生後のキャプチャ画像と、操作イベントの発生前と発生後において操作画面に起こった変化を示す差分画像とを入力データとして、操作イベントで操作が行われたGUI部品の種類を出力する。また、学習済みモデルに入力されるデータは、キャプチャ画像と差分画像に限定されるものではなく、カーソル画像とキャプチャ画像を合成した画像や、カーソルの状態を示す値を含むカーソルの情報等を含んでもよい。なお、学習済みモデル記憶部13bに記憶される学習済みモデルは、外部の装置で事前に学習されているものとする。
 なお、学習済みモデル記憶部13bに記憶される学習済みモデルは、外部の装置で学習されたものに限らず、例えば、分類装置10で学習されたものであってもよい。この場合には、例えば、分類装置10は、機械学習を行う学習部をさらに備え、学習部によって事前に上記の学習処理を行い、学習済みモデルを生成するものとする。
 操作ログ記憶部13cは、取得部12aによってキャプチャ画像記憶部13aに保存したキャプチャ画像を、発生時間と共に操作イベントの発生前・発生時・発生後のキャプチャ画像として紐づけて記憶する。例えば、操作ログ記憶部13cは、操作イベントの発生前・発生時・発生後のキャプチャ画像と、生成部12cによって生成された差分画像と、分類部によって分類されたGUI部品の種類と、を紐づけて記憶する。また、操作ログ記憶部13cは、カーソルの情報や発生位置などを含む操作イベント情報の一部を紐づけて記憶してもよい。
 また、操作ログ記憶部13cは、端末装置20で行われる全ての操作イベントのログを記憶してもよいし、予め定めた操作イベントのログのみを記憶してもよい。また、操作ログ記憶部13cは、特定の業務システムに関する操作イベントの操作ログだけではなく、メール、ウェブブラウザ、Word、Excel、PowerPointなどのOfficeアプリケーションなど様々なアプリケーションを利用する業務の操作イベントのログを同時に記憶してもよいし、アプリケーション単体の操作イベントごとにログを記憶してもよい。
 制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部12は、取得部12aと、抽出部12bと、生成部12cと、分類部12dとを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。
 取得部12aは、端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する。例えば、取得部12aは、キャプチャ画像を一定間隔で定期的に取得し、取得したキャプチャ画像をキャプチャ画像記憶部13aに保存する。
 そして、取得部12aは、操作者の操作イベントが発生したタイミングで、操作イベント発生時、発生前、発生後の3種類のキャプチャ画像をキャプチャ画像記憶部13aから取得してもよい。以下では、操作イベント発生時、発生前、発生後の3種類のキャプチャ画像を取得する場合を主な例として説明する。
 例えば、取得部12aは、操作イベント発生前のキャプチャの取得方法として、操作イベント発生の有無によらず、一定時間ごとに取得部12aがキャプチャ画像を取得しておき、操作イベントが発生した際に、その操作イベントの発生前(所定の時間前)に取得されたキャプチャ画像を、操作イベントの発生前のキャプチャ画像として操作ログ記憶部13cに保存する。
 また、取得部12aは、例えば、操作イベント発生後のキャプチャの取得方法として、操作イベントの発生後、一定時間が経過した後にキャプチャ画像を取得し、操作イベント発生後のキャプチャとして操作ログ記憶部13cに保存してもよい。また、取得部12aは、一定時間ごとに取得されたキャプチャの取得時間を、操作イベントの発生時間と比較し、操作イベントの発生時、発生前、発生後のキャプチャ画像として後から紐づける方法でもよい。
 また、取得部12aは、キャプチャ画像を取得するとともに、操作画面上に表示されるカーソルの情報を取得し、該カーソルの情報を用いてカーソルの形状を特定するようにしてもよい。例えば、取得部12aは、操作イベント発生時にカーソルのハンドルを取得し、事前に定義されたカーソルのハンドルと比較することで、カーソルの形状を特定する。
 また、取得部12aは、ユーザの操作イベントについて、イベントの発生時間、イベントの発生位置、イベント種別を取得する。例えば、取得部12aは、操作イベントの発生時において、クリック操作やキー入力等の操作内容を特定するイベント種別の情報、および操作イベントの発生時間の情報を端末装置20から取得する。さらに、取得部12aは、例えば、クリック操作が行われた場合には、操作イベントが発生した位置の情報を取得してもよいし、キー入力が行われた場合には、操作されたキーの種類の情報を取得してもよい。
 抽出部12bは、操作イベントの発生前のキャプチャ画像と発生後のキャプチャ画像とを比較し、差分が発生している場合には、当該操作イベントを抽出する。例えば、抽出部12bは、ある操作イベントについて、操作イベントの発生時、発生前、発生後の各キャプチャ画像をそれぞれ比較し、いずれかに差分が発生していた場合には、その操作のイベントを意味のある操作が行われた可能性のある操作イベントとして抽出する。ここで意味のある操作が行われた可能性のある操作イベント(以下、「意味のある操作イベント」と記載)とは、GUI部品に対する操作が行われた可能性のある操作イベントのことを意味する。
 なお、抽出部12bは、比較するキャプチャ画像について、画面全体のキャプチャ画像を用いてもよいし、キャプチャ画像から操作イベントの発生位置の周辺を切り出した画像を用いてもよい。
 生成部12cは、取得部12aによって取得されたキャプチャ画像を用いて、操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する。具体的には、生成部12cは、抽出部12bによって抽出された操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する。
 例えば、生成部12cは、抽出部12bにおいてGUI部品についての操作イベントと判断された操作イベントの発生前および発生後のキャプチャ画像の画素値の差分を算出し、差分の絶対値を画像データに変換することで、差分を画像として表現した差分画像を生成する。
 ここで、図2~図6を用いて、GUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す。図2~図6においては、カーソルなしのキャプチャ画像の場合と、カーソルありのキャプチャ画像の場合とをそれぞれ例示している。
 図2は、ラジオボタンのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。図2に示すように、取得部12aは、操作前のキャプチャ画像として、「乗換回数」と表記されているラジオボタンがチェックされている操作前のキャプチャ画像を取得する。
 その後、操作者が「運賃」と表記されているラジオボタンを選択するという操作イベントが発生した後、取得部12aは、「乗換回数」と表記されているラジオボタンのチェック表示が消え、「運賃」と表記されているラジオボタンがチェックされている操作後のキャプチャ画像を取得する。
 そして、生成部12cは、操作前および操作後のキャプチャ画像の画素値の差分を算出し、該差分の絶対値を画像データに変換することで、二つのラジオボタンの丸い印を含む差分画像を生成する。
 図3は、チェックボックスのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。図3に示すように、取得部12aは、操作前のキャプチャ画像として、「特急線」と表記されているチェックボックスの淵が太枠で表示されているキャプチャ画像を取得する。
 その後、操作者が、「路線バス」と表記されているチェックボックスを選択するという操作イベントが発生した後、取得部12aは、「特急線」と表記されているチェックボックスのチェックマークが消え、「路線バス」と表記されているチェックボックスの淵が太枠で表示され、かつ、チェックマークが表示されているキャプチャ画像を取得する。
 そして、生成部12cが、操作前および操作後のキャプチャ画像の画素値の差分を算出し、差分の絶対値を画像データに変換し、二つのチェックボックスの四角い淵と「路線バス」のチェックマークを含む差分画像を生成する。
 図4は、プルダウンメニューのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。図4に示すように、取得部12aは、操作前のキャプチャ画像として、「2019年」と表記されているプルダウンメニューが選択されているキャプチャ画像を取得する。
 その後、操作者が「11月」と表記されているプルダウンメニューをカーソルでクリック選択をするという操作イベントが発生した後、取得部12aは、「2019年」と表記されているプルダウンメニューの選択による色付けが消え、「11月」と表記されているプルダウンメニューに全ての月が選択式に表示されている操作後のキャプチャ画像を取得する。
 そして、生成部12cが、操作前および操作後のキャプチャ画像の画素値の差分を算出し、該差分の絶対値を画像データに変換することで、「2019年」と表記されているプルダウンメニュー、および、「11月」と表記されているプルダウンメニューとその他全ての月の選択表示を含む差分画像を生成する。
 図5は、テキストボックスのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。図5に示すように、取得部12aは、操作前のキャプチャ画像として、「ウェブ検索」と表記されているテキストボックスのGUI部品が表示されているキャプチャ画像を取得する。
 その後、操作者が「ウェブ検索」と表記されているテキストボックスのGUI部品を選択するという操作イベントが発生した後、取得部12aは、「ウェブ検索」と表記されているテキストボックスの文字が消え、テキストボックスのGUI部品にカーソルが表示されている操作後のキャプチャ画像を取得する。
 そして、生成部12cが、操作前および操作後のキャプチャ画像の画素値の差分を算出し、該差分の絶対値を画像データに変換することで、「ウェブ検索」と表記されているテキストの文字、および、テキストボックスのGUI部品に表示されているカーソルを含む差分画像を生成する。
 図6は、ボタンのGUI部品の操作前後のキャプチャ画像から生成された差分画像の一例を示す図である。図6に示すように、取得部12aは、操作前のキャプチャ画像として、「到着駅が見つかりません。」と表記されているタブに「OK」ボタンが表示されているキャプチャ画像を取得する。
 その後、操作者が「OK」ボタンを押下する操作イベントが発生した後、取得部12aは、「到着駅が見つかりません。」と表記されているタブが消え、元の画面が表示されている操作後のキャプチャ画像を取得する。
 そして、生成部12cが、操作前および操作後のキャプチャ画像の画素値の差分を算出し、該差分の絶対値を画像データに変換することで、「到着駅が見つかりません。」と表記されているタブ、および、タブによって隠れていた元の画面を含む差分画像を生成する。
 図7は、GUI部品の操作前後の画面全体のキャプチャ画像から生成した差分画像の一例を示す図である。上述した差分画像を生成する例では、キャプチャ画像から操作イベントの発生位置の周辺を切り出した画像を用いている場合を説明したが、図7に示すように、生成部12cは、画面全体のキャプチャ画像を用いて差分画像を生成してもよい。
 図1の説明に戻って、分類部12dは、生成部12cによって生成された差分画像を用いて、操作イベントで操作が行われたGUI部品の種類を分類する。ここで、分類部12dは、GUI部品の種類を分類するとともに、意味のある操作イベントか否かを判定する。つまり、分類部12dが、意味のある操作イベントである場合には、分類できるGUI部品としては、例えば、「ラジオボタン」、「チェックボックス」、「プルダウンメニュー」、「テキストボックス」、「ボタン」および「リンク」のうちいずれかに分類する。また、分類部12dは、意味のある操作イベントでない場合には、「意味のある操作イベントではない」と分類する。
 例えば、分類部12dは、取得部12aによって取得されたキャプチャ画像とカーソルの情報と、生成部12cによって生成された差分画像とを入力として、操作イベントで操作が行われたGUI部品の種類を分類する学習済みモデルを用いて、各操作イベントで操作が行われたGUI部品の種類を分類するようにしてもよい。この学習済みモデルは、学習済みモデル記憶部13bに記憶された学習済みモデルであって、所定の機械学習アルゴリズムを用いて、入力データと操作されたGUI部品の関係を教師データとして学習された学習済みモデルである。
 また、分類部12dは、生成部12cによって生成された差分画像と、取得部12aによって特定されたカーソルの形状とを用いて、操作イベントで操作が行われたGUI部品の種類を分類するようにしてもよい。
 また、分類部12dは、分類を行う際、分類のターゲットの操作イベントの前後に行われた操作イベントについての情報を分類に用いてもよい。つまり、ターゲットとする操作イベントがテキストボックスへのフォーカスを目的としたマウスクリックの場合、次の操作イベントは文字などのキー入力となる可能性が高い。よって、次の操作イベントがキー入力であるという情報を用いることで、ターゲットとする操作イベントの分類精度の向上が見込める。この場合には、分類部12dは、学習済みモデルに対して、キャプチャ画像および差分画像に加えて、操作イベントの前後に行われた操作イベントを入力することで、操作イベントで操作が行われたGUI部品の種類を分類する。
 また、取得部12aがウィンドウの識別情報が取得できる場合、分類部12dは、ウィンドウの識別情報を分類に用いてもよい。例えば、ターゲットとする操作イベントがリンクの押下である場合、操作イベントによりページの遷移が発生する可能性が高い。よって、取得部12aが操作イベントの後にページの遷移が発生したという情報がウィンドウの識別情報を得られる場合、ウィンドウの識別情報を用いることで、ターゲットとする操作イベントの分類精度の向上が見込める。この場合には、分類部12dは、学習済みモデルに対して、キャプチャ画像および差分画像に加えて、ウィンドウの識別情報を入力することで、操作イベントで操作が行われたGUI部品の種類を分類する。
 ここで、学習済みモデルに対する入力データのバリエーションの例について説明する。図8は、学習済みモデルに対する入力データのバリエーションの例を示す図である。図8に例示するように、分類部12dは、学習済みモデルに対して、取得部12aによって取得されたキャプチャ画像と生成部12cによって生成された差分画像とを入力する。
 また、分類部12dは、学習済みモデルに対して、キャプチャ画像および差分画像に加えて、カーソル画像を入力してもよい。また、分類部12dは、学習済みモデルに対して、キャプチャ画像および差分画像に加えて、取得部12aによって特定されたカーソルの形状の情報を入力してもよい。また、分類部12dは、学習済みモデルに対して、キャプチャ画像および差分画像に加えて、取得部12aによって取得された操作イベントの発生位置の情報を入力してもよい。
 次に、学習済みモデルにキャプチャ画像と差分画像を入力することで、操作されたGUI部品の種類を分類する処理を説明する。図9は、学習済みモデルにキャプチャ画像と差分画像を入力することで、操作されたGUI部品の種類を分類する処理を説明する図である。図9の例では、CNNは、階層構造を有し、畳み込み層、プーリング層、全結合層、出力層を含む。
 ここで、学習済みモデル記憶部13bに記憶される学習済みモデルの学習について説明する。操作イベントで操作が行われたGUI部品の種類を分類する学習済みモデルについて、学習データが少ない場合に、学習データに適合しすぎて未知のデータに対応できない状態である過学習に陥りやすいという状況を考慮する必要がある。例えば、学習を行う外部の装置は、限られた学習データから、未知のGUI部品に対してもロバストにその種類を取得するため、入力データと操作されたGUI部品の関係を学習する際、特定のレイヤーのノードのいくつかを不活性化するDropoutを用いてもよい。
 また、学習を行う外部の装置は、限られたデータで学習を行う際、関連のある別のタスクについての学習済みモデルを利用することで、分類精度のよい学習モデルを生成することができる。また、学習を行う外部の装置は、限られた学習データから、未知のGUI部品に対してもロバストにその種類を取得するため、入力データと操作されたGUI部品の関係を学習する際、GUI部品の画像と、そのGUI部品の種類の関係をあらかじめ学習したモデルを用いて転移学習またはファインチューニングを行ってもよい。
[分類装置の処理の一例]
 次に、図10~図13を用いて、第1の実施形態に係る分類装置1による処理手順の例を説明する。
 まず、図10を用いて、キャプチャ画像を格納する処理について説明する。図10は、実施の形態1に係る分類装置における操作イベント毎にキャプチャ画像を格納する処理の一例を示すフローチャートである。
 図10に示すように、取得部12aは、ユーザが処理を停止したか、または、端末装置20の電源を落としたかを判定する(ステップS101)。この結果、取得部12aは、操作者が処理を停止、または、端末装置の電源を落としたと判定した場合には(ステップS101 Yes)、本フローの処理を終了する。また、取得部12aは、操作者が処理を停止せず、且つ、端末装置20の電源を落としていないと判定した場合には(ステップS101 No)、キャプチャ画像を一定間隔でキャプチャ画像記憶部13aに一時保存する(ステップS102)。
 そして、取得部12aは、操作イベントが発生したか否かを判定する(ステップS103)。この結果、操作イベントが発生した場合(ステップS103 Yes)、取得部12aは、操作イベント情報を取得する(ステップS104)。例えば、取得部12aは、ユーザの操作イベントについて、イベントの発生時間、イベントの発生位置、イベント種別を取得し、イベント発生時のキャプチャ画像と紐づけて操作ログ記憶部13cに格納する。また、操作イベントが発生していない場合(ステップS103 NO)、ステップS101の処理に戻る。
 そして、取得部12aは、ステップS102においてキャプチャ画像記憶部13aに一時保存したキャプチャ画像から発生時間をもとに操作イベントの発生前キャプチャ画像を取得する(ステップS105)。続いて、取得部12aは、一定時間経過後に操作イベントの発生後のキャプチャ画像としてキャプチャ画像を取得する(ステップS106)。そして、取得部12aは、取得したキャプチャ画像から発生時間をもとに操作イベントの発生前・発生時・発生後のキャプチャ画像を紐づけし、操作ログ記憶部13cに保存する(ステップS107)。その後、ステップS101に戻って、上記の処理の流れを繰り返す。
 また、取得部12aは、実施の形態1に係る分類装置におけるキャプチャ画像を格納する処理を、キャプチャ画像を後から操作イベントに紐づけて格納してもよい。例えば、取得部12aは、キャプチャ画像の取得と操作イベントの取得を独立的に行い、キャプチャ画像のデータを一定量蓄積した後で、操作イベント発生時刻に基づいて、操作イベントとキャプチャ画像を紐づけてもよい。
 次に、図11を用いて、実施の形態1に係る分類装置におけるキャプチャ画像からGUI部品についての操作イベントを抽出する処理について説明する。図11は、実施の形態1に係る分類装置におけるキャプチャ画像からGUI部品についての操作イベントを抽出する処理の一例を示すフローチャートである。
 図11に示すように、抽出部12bは、全ての操作イベントをターゲットとしたかを判定する(ステップS201)。この結果、抽出部12bは、全ての操作イベントをターゲットと判定した場合(ステップS201 Yes)、本フローの処理を終了する。また、抽出部12bは、全ての操作イベントをターゲットとしていない場合には(ステップS201 No)、ターゲットとする操作イベントを決定する(ステップS202)。
 続いて、抽出部12bは、操作イベントの発生時、発生前、発生後の間のいずれかのキャプチャ画像に差分があるか判定する(ステップS203)。この結果、抽出部12bは、操作イベントの発生時、発生前、発生後の間のいずれかのキャプチャ画像に差分がないと判断した場合(ステップS203 No)、ステップS201の処理に戻る。
 また、抽出部12bは、操作イベントの発生時、発生前、発生後の間のいずれかのキャプチャ画像に差分があると判断した場合(ステップS203 Yes)、ターゲットとした操作イベントを意味のある操作として抽出する(ステップS204)。その後、ステップS201に戻って、上記の処理の流れを繰り返す。
 次に、図12を用いて、実施の形態1に係る分類装置における差分画像を生成する処理について説明する。図12は、実施の形態1に係る分類装置における差分画像を生成する処理の一例を示すフローチャートである。
 図12に示すように、生成部12cは、全ての操作イベントをターゲットとしたかを判定する(ステップS301)。この結果、生成部12cは、全ての操作イベントをターゲットと判定した場合(ステップS301 Yes)、本フローの処理を終了する。また、生成部12cは、全ての操作イベントをターゲットとしていない場合には(ステップS301 No)、ターゲットとする操作イベントを決定する(ステップS302)。
 続いて、生成部12cは、ターゲットとした操作イベントが意味のある操作イベントとして抽出された操作イベントであるか否かを判定する(ステップS303)。この結果、生成部12cは、意味のある操作イベントとして抽出された操作イベントでない場合には(ステップS303 No)、ステップS301の処理に戻る。
 そして、生成部12cは、ターゲットとした操作イベントが意味のある操作イベントとして抽出された操作イベントであると判断した場合には(ステップS303 Yes)、操作イベントの発生時、発生前、発生後のキャプチャ画像から、画面に起こった差分を画像として生成する(ステップS304)。例えば、生成部12cは、操作イベントの発生時、発生前、発生後のキャプチャ画像の画素値の差分を算出し、差分の絶対値を画像データに変換することで、差分画像を生成する。その後、ステップS301に戻って、上記の処理の流れを繰り返す。
 次に、図13を用いて、実施の形態1に係る分類装置における操作イベント毎にキャプチャ画像からGUI部品を分類する処理について説明する。図13は、実施の形態1に係る分類装置における操作イベント毎にキャプチャ画像からGUI部品を分類する処理の一例を示すフローチャートである。
 図13に示すように、分類部12dは、全ての操作イベントをターゲットとしたかを判定する(ステップS401)。この結果、分類部12dは、全ての操作イベントをターゲットと判定した場合(ステップS401 Yes)、本フローの処理を終了する。また、分類部12dは、全ての操作イベントをターゲットとしていない場合には(ステップS401 No)、ターゲットとする操作イベントを決定する(ステップS402)。
 続いて、分類部12dは、ターゲットとした操作イベントが意味のある操作イベントとして抽出された操作イベントであるか否かを判定する(ステップS403)。この結果、分類部12dは、意味のある操作イベントとして抽出された操作イベントでない場合には(ステップS403 No)、ステップS401の処理に戻る。
 そして、分類部12dは、ターゲットとした操作イベントが意味のある操作イベントとして抽出された操作イベントであると判断した場合には(ステップS403 Yes)、キャプチャ画像、差分画像、カーソル形状、操作イベント発生場所等の情報を用いて、操作したGUI部品の種類を分類する(ステップS404)。このとき、分類部12dは、GUI部品に対する意味のある操作に該当しない操作イベントを「意味のある操作イベントでない」のカテゴリーに分類する。その後、ステップS401に戻って、上記の処理の流れを繰り返す。
[実施の形態1の効果]
 このように、実施の形態1に係る分類装置10は、端末装置20の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する。そして、分類装置10は、取得したキャプチャ画像を用いて、操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する。続いて、分類装置10は、生成した差分画像を用いて、操作が行われたGUI部品の種類を分類する。これにより、分類装置10は、端末装置20のアプリケーションの実行環境に依らず、操作されたGUI部品とその種類を容易に特定することができる。
 例えば、実施の形態1に係る分類装置10では、ユーザが操作したタイミングで、変化のあった操作箇所と操作箇所の見た目を用いて、操作が行われたGUI部品の特定およびその種類を判別することが可能である。具体例を挙げて説明すると、実施の形態1に係る分類装置10では、カーソルを上に乗せた際のGUI部品の形状の変化、またはマウスダウン時のGUI部品の形状の変化、またはクリック後に画面に発生する変化、を含む操作イベント前後に発生した画面の差分の変化のあった操作箇所と操作箇所の見た目を用いて、操作が行われたGUI部品の特定およびその種類を判別することが可能である。
 また、例えば、実施の形態1に係る分類装置10では、GUI部品の存在しない場所にカーソルがある場合の形状として、標準の矢印、または、テキストボックスの上にカーソルがある場合の形状として、Iビーム、または、ボタンの上にカーソルがある場合の形状として、指を立てた手の形、のように変化のあった操作箇所と操作箇所の見た目を用いて、操作が行われたGUI部品の特定およびその種類を判別することが可能である。
 また、実施の形態1に係る分類装置10では、取得部12aによって取得されたキャプチャ画像と生成部12cによって生成された差分画像とを入力として、操作イベントで操作が行われたGUI部品の種類を分類する学習済みモデルを用いて、各操作イベントで操作が行われたGUI部品の種類を分類する。このため、例えば、分類装置10もしくは外部の装置が、学習済みモデルについて、GUI部品に共通する特徴を学習することで、限られた学習データから、GUI部品が変化した場合や未知のGUI部品に対してロバストにその種類を取得することが可能となる。
 このように、分類装置10が、操作が行われたGUI部品の種類を特定することで、RPAシナリオの作成や、シナリオの改良の参考となるデータを収集することが可能である。
 例えば、効果的にRPA(Robotic Process Automation)を導入するためには、作業者による端末上の操作実態をフローチャート形式の表示によって把握し、自動化可能な繰り返し操作が行われている範囲を見つけることが重要である。端末操作を中心とした業務でサービスや商品を顧客に提供することを考えた場合、同一サービス・商品を提供するためのシステムの操作手順はサービスや商品ごとに決められており、マニュアルなどによって担当者に共有されている。
 一般的に、担当者はマニュアルに沿ってサービス・商品の提供に必要な処理を行うことが期待されているため、同一サービス・商品を処理する手順は同じ操作手順になると想定される。そのため、従来、業務実態を把握する方法として、業務マニュアル中に記載された業務手順を確認する方法が有効だと考えられるが、顧客が注文後に注文内容を変更する、商品が欠品する、操作者の操作ミス、などマニュアル作成時には想定しなかった様々なイレギュラーな事象が発生するのが通常であり、これらのイレギュラーな事象に対しては、あらかじめすべての操作手順を規定しておくことは現実的ではないという課題があった。
 また、従来より、担当者は多様な操作方法を覚えることは困難であり、すべてを規定された方法で処理することは現実的ではないため、同一サービス・商品であっても案件ごとに操作手順は様々であることが一般的であり、業務マニュアルから実際の業務実態を把握することは困難であるという課題があった。
 また、実際の業務においては、業務システムだけではなく、メール、ウェブブラウザ、Word、Excel、PowerPointなどのOfficeアプリケーションなど様々なアプリケーションを利用しながら業務を進めることが一般的である。GUI部品の属性値の取得方法は、アプリケーションごとに異なるため、担当者の業務実施状況を網羅的に把握するためには、業務で利用するすべてのアプリケーションの実行環境に応じてGUI部品の属性値の取得および変更箇所を特定する仕組みを開発する必要があるが、実際には開発コストが非常に高く現実的ではない。仮に、特定のアプリケーションについて開発したとしても、対象のアプリケーションのバージョンアップに伴い仕様変更が発生すると、それに合わせた改造が必要になるという課題があった。
 また、近年、コンピュータ資源の有効活用やセキュリティ対策を目的に、企業ではシンクライアント環境が普及している。シンクライアント環境では、操作者は直接操作を行う端末である端末装置にアプリケーションがインストールされておらず、クライアント端末に接続された別の端末にアプリケーションがインストールされている。クライアント端末には、アプリケーションが提供する操作画面が画像として表示され、担当者はその表示された画像を通して接続先側のアプリケーションを操作する。この場合、実際にユーザが操作を行う端末には操作画面が画像として表示されているため、クライアント端末からGUI部品および、変化箇所を特定することは不可能である。
 このように、従来、多様なアプリケーションを用いた業務やシンクライアント環境においては、担当者のアプリケーション上で行われるGUI部品上への操作をログとして収集することは容易ではないため、GUI部品上への操作をログとして収集するためには、操作が行われたGUI部品の種類を特定することが必要である。
 図14に示すように、本実施の形態の分類装置10では、端末装置20の操作画面のキャプチャ画像を用いて、操作ログを特定することにより、画面キャプチャとマウス・キーボードの操作情報のみしか取得できない環境でも利用可能である。また、端末装置20毎に、異なるブラウザ、Webサイト、アプリケーションを利用する場合であっても、キャプチャ画像および差分画像をCNNにより学習させることで、未知のデータについても判別が可能になる。このため、本実施の形態の分類装置10では、端末装置20のアプリケーションの実行環境に依らず、操作者による操作イベントのGUI部品の種類とその操作の流れを汎用的に取得することができる。
 また、RPAの導入を目的とした業務分析においては、最終的にRPAシナリオを作成する必要がある。操作したGUI部品の種類を特定することで、分析結果をRPAシナリオへ反映することが容易になる。
 また、例えば、操作したGUI部品の種類を特定することで、テキストボックスやラジオボタンなどのユーザが操作するGUI部品の、部品ごとの操作回数などの可視化が可能となる。これにより、例えばテキストボックスの入力が多く、かつパターン化できる場合、セレクトボックスに変更するなどのシステムの作りを改良するための参考とすることができる。
[システム構成等]
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 また、上記実施形態に係る分類装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、分類装置10と同様の機能を実現する分類プログラムを実行するコンピュータの一例を説明する。
 図15は、分類プログラムを実行するコンピュータを示す図である。図15に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
 ここで、図15に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
 また、分類プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した分類装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。
 また、分類プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
 なお、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 10 分類装置
 11 通信部
 12 制御部
 12a 取得部
 12b 抽出部
 12c 生成部
 12d 分類部
 13 記憶部
 13a キャプチャ画像記憶部
 13b 学習済みモデル記憶部
 13c 操作ログ記憶部
 20 端末装置

Claims (6)

  1.  端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得部と、
     前記取得部によって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成部と、
     前記生成部によって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類部と、
     を備えることを特徴とする分類装置。
  2.  前記取得部は、前記キャプチャ画像を取得するとともに、操作画面上に表示されるカーソルの情報を取得し、該カーソルの情報を用いてカーソルの形状を特定し、
     前記分類部は、前記生成部によって生成された前記差分画像と、前記取得部によって特定されたカーソルの形状とを用いて、前記操作イベントで操作が行われたGUI部品の種類を分類することを特徴とする請求項1に記載の分類装置。
  3.  前記分類部は、前記取得部によって取得された前記キャプチャ画像と前記生成部によって生成された前記差分画像とを入力として、前記操作イベントで操作が行われたGUI部品の種類を分類する学習済みモデルを用いて、各操作イベントで操作が行われたGUI部品の種類を分類することを特徴とする請求項1に記載の分類装置。
  4.  前記操作イベントの発生前のキャプチャ画像と発生後のキャプチャ画像とを比較し、差分が発生している場合には、当該操作イベントを抽出する抽出部をさらに有し、
     前記生成部は、前記抽出部によって抽出された操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成することを特徴とする請求項1に記載の分類装置。
  5.  分類装置が実行する分類方法であって、
     端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得工程と、
     前記取得工程によって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成工程と、
     前記生成工程によって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類工程と
     を含んだことを特徴とする分類方法。
  6.  端末装置の操作イベントの発生前および発生後の操作画面のキャプチャ画像を取得する取得ステップと、
     前記取得ステップによって取得された前記キャプチャ画像を用いて、前記操作イベントの発生前と発生後において操作画面に起こった変化を差分画像として生成する生成ステップと、
     前記生成ステップによって生成された前記差分画像を用いて、前記操作イベントで操作が行われたGUI部品の種類を分類する分類ステップと
     をコンピュータに実行させることを特徴とする分類プログラム。
PCT/JP2021/010932 2021-03-17 2021-03-17 分類装置、分類方法、および、分類プログラム WO2022195784A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2021/010932 WO2022195784A1 (ja) 2021-03-17 2021-03-17 分類装置、分類方法、および、分類プログラム
US18/281,641 US20240153241A1 (en) 2021-03-17 2021-03-17 Classification device, classification method, and classification program
JP2023506610A JP7517590B2 (ja) 2021-03-17 2021-03-17 分類装置、分類方法、および、分類プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/010932 WO2022195784A1 (ja) 2021-03-17 2021-03-17 分類装置、分類方法、および、分類プログラム

Publications (1)

Publication Number Publication Date
WO2022195784A1 true WO2022195784A1 (ja) 2022-09-22

Family

ID=83322055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/010932 WO2022195784A1 (ja) 2021-03-17 2021-03-17 分類装置、分類方法、および、分類プログラム

Country Status (3)

Country Link
US (1) US20240153241A1 (ja)
JP (1) JP7517590B2 (ja)
WO (1) WO2022195784A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073099A (ja) * 2008-09-22 2010-04-02 Nec Corp 評価装置、評価方法およびプログラム
JP2011159018A (ja) * 2010-01-29 2011-08-18 Fujitsu Ltd 情報処理装置、情報処理プログラム、および情報処理方法
JP2017162120A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2020250320A1 (ja) * 2019-06-11 2020-12-17 日本電信電話株式会社 操作ログ取得装置、操作ログ取得方法および操作ログ取得プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021128402A (ja) 2020-02-12 2021-09-02 富士通株式会社 摂動プログラム、摂動方法、および情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073099A (ja) * 2008-09-22 2010-04-02 Nec Corp 評価装置、評価方法およびプログラム
JP2011159018A (ja) * 2010-01-29 2011-08-18 Fujitsu Ltd 情報処理装置、情報処理プログラム、および情報処理方法
JP2017162120A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2020250320A1 (ja) * 2019-06-11 2020-12-17 日本電信電話株式会社 操作ログ取得装置、操作ログ取得方法および操作ログ取得プログラム

Also Published As

Publication number Publication date
JP7517590B2 (ja) 2024-07-17
JPWO2022195784A1 (ja) 2022-09-22
US20240153241A1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
JP7398068B2 (ja) ソフトウェアテスト
CN106290378B (zh) 缺陷分类方法和缺陷检查系统
WO2021120186A1 (zh) 分布式产品缺陷分析系统、方法及计算机可读存储介质
US10810018B2 (en) Device with extensibility
CN105320589B (zh) 云测试环境中测试脚本自动解析系统及其实现方法
CN110442510A (zh) 一种页面属性获取方法、装置及计算机设备、存储介质
US20060020931A1 (en) Method and apparatus for managing complex processes
KR102543064B1 (ko) Rpa 기반 제조환경 모니터링 서비스 제공 시스템
US20220350857A1 (en) Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors
WO2021140594A1 (ja) 操作ログ取得装置および操作ログ取得方法
CN112506778A (zh) Web用户界面自动化测试方法、装置、设备和存储介质
US11615016B2 (en) System and method for executing a test case
Jaganeshwari et al. an Automated Testing Tool Based on Graphical User Interface With Exploratory Behavioural Analysis
WO2021087818A1 (zh) 软件知识捕捉方法、装置和系统
WO2022195784A1 (ja) 分類装置、分類方法、および、分類プログラム
CN112667517A (zh) 自动化测试脚本的获取方法、装置、设备及存储介质
CN105303082B (zh) 伺服器、使用者装置及终端装置
CN115035044A (zh) 一种应用于工业质检的智能ai平台
Korstanje Machine Learning for Streaming Data with Python: Rapidly build practical online machine learning solutions using River and other top key frameworks
CN110309047B (zh) 一种测试点生成方法、装置及系统
CN115917446A (zh) 用于机器人过程自动化的系统和方法
US20230111999A1 (en) Method and system of creating clusters for feedback data
Sarakiotis Human-centered AI: Challenges and opportunities
Novaliendry et al. Development of a Digital Twin Prototype for Industrial Manufacturing Monitoring System Using IoT and Augmented Reality.
CN115495057B (zh) 实现windows和HDFS通信的方法和系统

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: 21931535

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023506610

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18281641

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21931535

Country of ref document: EP

Kind code of ref document: A1