CN110046658A - 远程操作设备的方法和相关装置 - Google Patents

远程操作设备的方法和相关装置 Download PDF

Info

Publication number
CN110046658A
CN110046658A CN201910255734.7A CN201910255734A CN110046658A CN 110046658 A CN110046658 A CN 110046658A CN 201910255734 A CN201910255734 A CN 201910255734A CN 110046658 A CN110046658 A CN 110046658A
Authority
CN
China
Prior art keywords
image
remote
subtask
equipment
remote operation
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201910255734.7A
Other languages
English (en)
Other versions
CN110046658B (zh
Inventor
乔健
王庆俊
王媛超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Huawei Technologies Service Co Ltd
Original Assignee
Huawei Technologies Service Co Ltd
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 Huawei Technologies Service Co Ltd filed Critical Huawei Technologies Service Co Ltd
Priority to CN201910255734.7A priority Critical patent/CN110046658B/zh
Publication of CN110046658A publication Critical patent/CN110046658A/zh
Application granted granted Critical
Publication of CN110046658B publication Critical patent/CN110046658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Selective Calling Equipment (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请公开远程操作设备的方法和相关装置,其中,方法包括:第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,第一远程界面为第一设备通过与第二设备之间的远程连接获取到的第二设备的界面,第一远程界面为第一远程操作对应的远程界面,模板图像包括第一操作对象的界面元素,第一操作对象为第一远程操作的操作对象;第一设备根据第一图像区域在第一图像中的位置,确定第一操作对象在第一远程界面中的位置;第一设备根据第一操作对象在第一远程界面中的位置,在第一远程界面中执行对第二设备的第一远程操作。该技术方案可减少人力资源的投入,并提高远程操作的效率。

Description

远程操作设备的方法和相关装置
技术领域
本申请涉及设备控制领域,尤其涉及远程操作设备的方法和相关装置。
背景技术
在目前的生活中,根据不同的业务需求,设备管理人员或设备维护人员需要对硬件设备进行调测,以使得硬件设备(如网络设备、电信设备等)可以满足业务需求。设备调测可包括给硬件设备安装软件、下发配置数据、加载证书等环节。通过这些环节,可使得硬件设备具备运行业务的能力且满足业务需求。
设备调测可分为近端调测和远程调测两种调测方式。近端调测是指设备管理人员或设备维护人员通过计算机连接第二设备、手机应用调测软件连接第二设备等方式完成对设备的调测。远程调测是指设备管理人员或设备维护人员通过远程接入第二设备或第二设备的管理设备,通过远程在第二设备或第二设备的管理设备上进行调测操作以完成对设备的调测。远程调测可以使设备管理人员或设备维护人员在机房就可以完成设备调测,能够实现人员复用以及省去路途成本,因此,远程调测为目前主流的调测方式。目前,在远程调测中,每个被调测的设备都需要设备管理人员或设备维护人员通过远程连接的方式来进行调测,在需要调测的设备的数量较多的情况下,远程调测所需的人力资源和时间较多,调测效率低下。
发明内容
本申请提供远程操作设备的方法和相关装置,解决目前远程调测设备面临的调测效率低下的问题。
第一方面,提供一种远程操作设备的方法,可应用于远程操作通信系统中的本地设备,包括:第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,第一远程界面为第一设备通过远程连接获取到的第二设备的界面,第一远程界面为第一远程操作对应的远程界面,模板图像包括第一操作对象的界面元素,第一操作对象为第一远程操作的操作对象;第一设备根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置;第一设备根据第一操作对象在第一远程界面中的位置,在第一远程界面中执行对第二设备的第一远程操作。
其中,第一设备可以被称之为远程控制设备或本地设备,第二设备可以被称之为远程设备。在远程调测设备的场景中,第一设备可以为本地调测设备,第二设备可以为远程被测设备或远程被测设备的管理设备。上述远程连接为第一设备与第二设备的远程连接,第一设备与第二设备可以通过操作命令登录、客户端登录、虚拟专用网络(virtualprivate network,VPN)等方式建立远程连接。
在该技术方案中,通过获取要操作的远程设备的远程界面的图像,根据该图像识别远程设备中的操作对象在该远程界面上的位置,然后根据操作对象在远程界面上的位置在远程界面中执行对远程设备的远程操作,实现了对远程设备的远程操作,不需进行人工进行手动的远程操作,减少了人力资源的投入,同时可以提高了远程操作的效率。具体地,当该远程操作为远程调测操作时,提高了远程调测操作的效率。
结合第一方面,在一种可能的实现方式中,上述第一设备根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置,包括:在第一图像区域与模板图像的匹配度大于或等于匹配度阈值的情况下,第一设备将第一图像区域在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置;或者在第一图像区域与模板图像的匹配度小于匹配度阈值的情况下,第一设备识别第一图像区域中存在的至少一个字符串,并将第一图像区域中存在的至少一个字符串中的第一字符串在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置,第一字符串与模板字符串的相似度大于相似度阈值。通过图像匹配和字符串识别匹配,可确定操作对象在远程界面中的位置。
结合第一方面,在一种可能的实现方式中,上述第一设备根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置,包括:第一设备基于卷积神经网络的识别模型对第一图像区域进行识别,以确定第一图像区域中的操作对象的类型;在确定第一图像区域中的操作对象为界面元素固定的操作对象的情况下,第一设备将第一图像区域在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置;或者在确定第一图像区域中的操作对象为界面元素动态变化的操作对象的情况下,第一设备识别第一图像区域中存在的至少一个字符串,并将至少一个字符串中的第一字符串在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置,第一字符串与模板字符串的相似度大于相似度阈值。通过操作对象类型分类和字符串识别,可确定操作对象在远程界面中的位置。
结合第一方面,在一种可能的实现方式中,上述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,包括:第一设备将模板图像与第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,至少一个图像区域各自与模板图像的匹配度,每个图像区域的尺寸与模板图像的尺寸相同;第一设备将至少一个图像区域中与模板图像的匹配度最大的图像区域,确定为第一图像区域。通过将第一远程界面的图像与模板图像进行遍历图像匹配,可在第一图像中确定与模板图像最相似的图像区域,进而找到操作对象在远程界面中的位置。
结合第一方面,在一种可能的实现方式中,上述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,包括:第一设备调整模板图像的尺寸,以得到模板图像对应的M个模板变换图像,模板图像对应的M个模板变换图像的尺寸各不相同,M为大于1的正整数;第一设备分别将模板图像对应的M个模板变换图像与第一图像进行遍历图像匹配,以得到模板图像对应的M个第二图像区域,以及,模板图像对应的M个第二图像区域各自与模板图像的匹配度;其中,M个第二图像区域中的第i个第二图像区域对应M个模板变换图像中的第i模板变换图像,第i个第二图像区域为第i图像区域集合中与第i模板变换图像的匹配度最大的图像区域,第i图像区域集合包括至少一个尺寸与第i模板变换图像的尺寸相同的图像区域,第i个第二图像区域与模板图像的匹配度为第i个第二图像区域与第i模板变换图像的匹配度,i为大于或等于1,且小于或等于M的正整数;第一设备将模板图像对应的M个第二图像区域中与模板图像的匹配度最大的第二图像区域确定为第一图像区域。通过多尺寸的匹配,可以适应与不同分辨率的第一远程界面的图像的匹配,保证对操作对象在远程界面中的位置的有效识别。
结合第一方面,在一种可能的实现方式中,上述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域之前,还包括:第一设备对模板图像进行压缩处理,和/或,第一设备对第一远程界面的图像进行压缩处理。通过对第一图像进行压缩处理或分别对第一远程界面的图像和模板图像进行压缩处理,可以提高遍历图像匹配的速度。
结合第一方面,在一种可能的实现方式中,上述第一设备根据第一操作对象在第一远程界面中的位置,对第一操作对象执行第一远程操作之后,还包括:第一设备根据第二远程界面的图像,确定第一远程操作的执行状态,第二远程操作界面为第一设备通过远程连接获取到的第二设备的界面,第二远程界面用于指示第一远程操作的执行结果。通过用于指示第一远程操作的执行结果的远程界面,可以确定远程操作的执行状态。
结合第一方面,在一种可能的实现方式中,上述第一设备根据第二远程界面的图像,确定第一远程操作的执行状态之后,还包括:在第一远程操作的执行状态为执行异常的情况下,第一设备执行第一远程操作对应的异常处理操作;或者在执行第一远程操作的执行状态为执行等待的情况下,第一设备执行根据第二远程界面的图像,确定第一远程操作的执行状态的步骤。通过根据不同的远程操作的执行状态,进行不同的处理操作,实现了对不同执行状态的处理响应。
结合第一方面,在一种可能的实现方式中,上述第一远程操作为第一远程操作子任务中的远程操作;上述第一设备根据第二远程界面的图像,确定第一远程操作的执行状态之后,还包括:在第一远程操作的执行状态为执行成功,并且,第一远程操作不为第一远程操作子任务中的最后一个远程操作的情况下,第一设备通过远程连接获取第三远程界面,第三远程界面为第二远程操作对应的远程界面,第二远程操作为第一远程操作子任务中的第一远程操作的下一个远程操作;或者在第一远程操作的执行状态为执行成功,并且,第一远程操作为第一远程操作子任务中的最后一个远程操作的情况下,第一设备向第三设备发送第一子任务执行结果,第一子任务执行结果用于指示第一远程操作子任务执行成功,第一子任务执行结果被第三设备用于进行操作子任务调度。通过根据不同的远程操作的执行状态,进行不同的处理操作,实现了对不同执行状态的处理响应。
第二方面,提供另一种远程操作设备的方法,可应用于远程操作通信系统中的本地设备的管理设备,本地设备的管理设备可称为本地管理设备,包括:第三设备对获取到的至少一个远程操作任务进行划分,以得到多个远程操作子任务;第三设备根据多个远程操作子任务的属性和执行顺序,将至少一个远程操作子任务添加至子任务队列;第三设备依次将子任务队列中的远程操作子任务,发送给处于空闲状态的至少一个第一设备;第三设备根据至少一个第一设备发送的至少一个子任务执行结果和子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度。
在该技术方案中,第三设备通过将远程操作任务进行划分,得到远程操作子任务,结合远程操作子任务的属性、执行顺序以及执行策略,对远程操作子任务进行并发调度,省去人工执行远程操作任务,节省人力资源;另外,对远操作程子任务的并发调度可实现同时执行多个远程操作任务,提高了远程操作的效率。在远程操作任务为远程调测任务的情况下,提高了远程调测的效率。
结合第二方面,在一种可能的实现方式中,上述第三设备根据至少一个第一设备发送的至少一个子任务执行结果和子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度,包括:在至少一个子任务执行结果中存在第二子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,如果第一远程操作子任务的执行策略为遇错停止执行,第三设备停止为第二设备生成第二远程操作子任务,并生成第一操作结果,第二子任务执行结果用于指示第一远程操作子任务执行失败,第一远程操作子任务属于第一远程操作任务,第一远程操作子任务为针对第二设备的远程操作子任务,第二远程操作子任务为第一远程操作任务中的第一远程操作子任务的下一个远程操作子任务,第一操作结果用于指示针对第二设备的第一远程操作任务执行失败;或者在至少一个子任务执行结果中存在第二子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,如果第一远程操作子任务的执行策略为遇错向下执行,第三设备为第二设备生成第二远程操作子任务,并将第二远程操作子任务添加至子任务队列中;或者在至少一个子任务执行结果中存在第二子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,如果第一远程操作子任务的执行策略为遇错循环执行,第三设备将第一远程操作子任务重新添加至子任务队列中。通过根据远程操作子任务的不同执行策略,进行不同的操作子任务调度,可以保证子任务队列中的远程操作子任务正常执行。
结合第二方面,在一种可能的实现方式中,上述第三设备根据至少一个操作结果和执行策略,进行远程操作子任务调度,包括:在至少一个子任务执行结果中存在第一子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,第三设备为第二设备生成第二远程操作子任务,并将第二操作子任务添加至子任务队列,第一子任务执行结果用于指示第一远程操作子任务执行成功,第一远程操作子任务属于第一远程操作任务,第一远程操作子任务为针对第二设备的远程操作子任务;在至少一个操作结果中存在第一子任务执行结果,并且,第一远程操作子任务为第一远程操作任务中的最后一个远程操作子任务的情况下,第三设备生成第二操作结果,第二操作结果用于指示针对第二设备的第一远程操作任务执行成功。通过根据远程操作子任务的不同执行策略,进行不同的操作子任务调度,可以保证子任务队列中的远程操作子任务正常执行。
第三方面,提供一种远程操作设备的装置,用于执行上述第一方面描述的远程操作设备的方法。该装置可包括:存储器以及与该存储器耦合的处理器,其中:该存储器用于存储上述第一方面描述的远程操作设备的方法的程序代码,该处理器用于执行该存储器中存储的程序代码,即执行上述第一方面所提供的方法,或者上述第一方面可能的实现方式中的任意一种实现方式所提供的方法。
第四方面,提供另一种远程操作设备的装置,该装置可包括多个功能模块,用于相应的执行上述第一方面所提供的方法,或者上述第一方面可能的实现方式中的任意一种实现方式所提供的方法。
第五方面,提供一种远程操作设备的装置,用于执行上述第二方面描述的远程操作设备的方法。该装置可包括:存储器以及与该存储器耦合的处理器,其中:该存储器用于存储上述第二方面描述的远程操作设备的方法的程序代码,该处理器用于执行该存储器中存储的程序代码,即执行上述第二方面所提供的方法,或者上述第二方面可能的实现方式中的任意一种实现方式所提供的方法。
第六方面,提供另一种远程操作设备的装置,该远程操作设备的装置可包括多个功能模块,用于相应的执行上述第二方面所提供的方法,或者上述第二方面可能的实现方式中的任意一种实现方式所提供的方法。
第七方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面描述的远程操作设备的方法。
第八方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面描述的远程操作设备的方法。
第九方面,提供一种通信系统,该通信系统包括:第一设备和第三设备。其中,该第一设备可以包括上述第三方面描述的远程操作设备的装置,该第三设备可以包括上述第四方面描述的远程操作设备的装置。该第三设备可以包括上述第五方面描述的远程操作设备的装置。该第三设备也可以包括上述第六方面描述的远程操作设备的装置。
其中,第一设备可以被称之为远程控制设备或本地设备,第三设备为远程控制设备或本地设备的管理设备,第三设备可以被称之为远程管理设备或本地管理设备。在远程调测设备的场景中,第一设备可以为本地调测设备,第三设备可以为本地调测管理设备。
附图说明
图1是本申请提供的一种远程操作通信系统的架构示意图;
图2是本申请实施例提供的一种本地设备的结构示意图;
图3是本申请实施例提供的一种本地管理设备的结构示意图;
图4为本申请提供的一种远程界面的示意图;
图5是本申请实施例提供的一种远程操作设备的方法的流程示意图;
图6是本申请实施例提供的一种遍历图像匹配的示意图;
图7是本申请实施例提供的一种相对位置坐标的示意图;
图8是本申请实施例提供的另一种远程操作设备的方法的流程示意图;
图9是本申请实施例提供的又一种远程操作设备的方法的流程示意图;
图10A-图10B是本申请实施例提供的一种远程操作子任务的调度示意图;
图11是本申请实施例提供的一种远程操作设备的装置的结构示意图;
图12是本申请实施例提供的另一种远程操作设备的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请的技术方案可以应用于通过远程连接远程操作设备的场景,其中,通过远程连接远程操作设备的场景是指已经建立远程连接的两个设备中的一个设备对该两个设备中的另一个设备进行远程控制的场景。该两个设备分为两种角色,分别为用于对设备进行控制的设备和被远程控制的设备。该两个设备中的用于对设备进行控制的设备可以通过操作命令登录、客户端登录、VPN等方式与被远程控制的设备建立远程连接。在一些可能的场景中,用于对设备进行控制的设备可以称为本地设备,被远程控制的设备可以称为远程设备或远端设备,相应地,通过远程连接操作设备的场景具体是指本地设备对通过与该本地设备建立远程连接的远程设备或远端设备对远程设备或远端设备进行远程控制的场景。在另一些可能的场景中,用于对设备进行控制设备也可以称为远程控制设备,被远程控制的设备也可以称为远程受控设备,相应地,通过远程连接操作设备的场景具体是指远程控制设备对通过与该远程控制设备建立远程连接的远程受控设备对远程受控设备进行远程控制的场景。用于对设备进行控制的设备和被远程控制设备不限于上述提到的称谓,为便于描述,以下用本地设备表示用于对设备进行控制的设备,用远程设备表示被控制的设备介绍本申请的技术方案。
在通过远程连接远程操作设备的场景中,本地设备和远程设备可组成远程操作通信系统。远程操作通信系统一种示例性架构可以参考图1,图1是本申请提供的一种远程操作通信系统的架构示意图。如图1所示,远程操作通信系统10可以由一个或多个远程设备101、一个或多个本地设备102以及一个或多个本地管理设备103组成。其中,远程设备101为需要被远程控制以使其满足某种需求的设备。在设备调测场景中,远程设备101可以是需要被远程调测以使其满足业务需求的设备。本地设备102可与远程设备101连接,本地设备102可用于对远程设备101进行远程控制。其中,本地设备102可通过与远程设备101的远程连接执行对远程设备101的远程操作来对远程设备101进行远程控制。具体地,本地设备102可以在远程界面上执行对远程设备101的远程操作,该远程界面为该本地设备通过该与远程设备的远程连接获取的该远程设备的界面。本地管理设备103与本地设备102连接,本地管理设备103可用于对本地设备102进行管理,一个本地管理设备可用于管理多个本地设备103;本地管理设备103可以将远程操作任务分配到不同的本地设备103上执行。
在一些可能的实施场景中,远程设备101可以由远程业务设备和远程管理设备组成,远程业务设备为运行某种具体业务的设备,远程管理设备为对远程业务设备进行管理的设备。在这种实施场景中,一个远程管理设备可与一个或多个远程业务设备连接,以对该一个或多个远程业务设备进行管理。远程管理设备还可以与本地设备102连接,本地设备102可通过对远程管理设备的远程控制来对远程业务设备进行远程控制。例如,在电信调测场景中,远程业务设备可以为基站、无线接入点等提供电信业务的网络设备,远程管理设备为对网络设备进行管理的网管系统(如远程服务器),那么,可通过本地设备(如核心机房的计算机)对基站的网管系统进行远程控制以实现给该网络设备安装软件、下发配置数据等。
在另一些可能的实施场景,远程设备也可以只由远程业务设备组成,远程业务设备与本地设备102连接,本地设备102可对远程业务设备进行直接的远程控制。
本申请的技术方案具体可应用于图1所示的本地设备102和本地管理设备103上,为了更好地描述本申请提出的技术方案,先介绍本申请涉及的本地设备102和本地管理设备103的结构。
参见图2,图2是本申请实施例提供的一种本地设备200的结构示意图,本地设备200可以实现为图1所示的本地设备102。如图2所示,本地设备200可包括:通信接口201、一个或多个处理器202、存储器203。
通信接口201可用于本地设备200与其他设备通信,例如与远程设备、本地管理设备等通信。通信接口201可包括有线通信接口,例如为以太网接口、光纤接口等。可选地,通信接口201还可以包括无线通信接口。
存储器203与处理器202耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器203可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器203中内置有操作系统,例如Linux、Windows等操作系统。存储器202还可以内置网络通信程序,该网络通信程序可用于与远程操作通信系统中的其他设备进行通信。
在本申请的一些实施例中,存储器202可用于存储本申请的一个或多个实施例提供的远程操作设备的方法在第一设备侧的实现程序。关于本申请提供的远程操作设备的方法在第一设备侧的实现,请参考后续实施例。在可选实施例中,存储器202还可以用于存储远程界面的图像、模板图像、模板字符串以及各种远程操作的流程脚本等执行远程操作设备的方法所需的内容,关于远程界面的图像、模板图像、模板字符串以及各种远程操作的流程脚本的有关描述,请参考后续实施例。
处理器202可以是通用处理器,例如中央处理器(central processing unit,CPU),处理器202还可包括硬件芯片,上述硬件芯片可以是以下一种或多种的组合:专用集成电路(application specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field programmable gate array,FPGA),复杂可编程逻辑器件(complex programmablelogic device,CPLD)。处理器202可处理通信接口201接收到的数据,处理器202还可处理将被发送到通信接口201以通过有线传输介质或无线传输介质传送的数据。
本申请实施例中,处理器202可用于读取和执行计算机可读指令。具体的,处理器202可用于调用存储于存储器202中的程序,例如本申请的一个或多个实施例提供的远程操作设备的方法在第一设备侧的实现程序,并执行该程序包含的指令。
本申请实施例中,处理器202用于根据远程界面的图像确定操作对象在该远程界面中的位置,然后根据该操作对象在该远程界面中的位置,在远程界面中执行对远程设备的远程操作。处理器202根据远程界面的图像确定操作对象在该远程界面中的位置,并根据该操作对象在该远程界面中的位置,在远程界面中执行对远程设备的远程操作的具体实现可参考后续实施例。在一些实施例中,处理器202还用于确定远程操作的执行状态,根据远程操作的执行状态进行相应的处理响应。处理器确定远程操作的执行状态,以及根据远程操作的执行状态进行处理响应的具体实现可参考后续实施例。在一些实施例中,处理器202还用于通过通信接口201接收远程操作子任务。
这里,图2所示的本地设备200仅仅是本申请的一种实现方式,实际应用中,本地设备200还可以包括更多或更少的部件,这里不作限制。
参见图3,图3是本申请实施例提供的一种本地管理设备300的结构示意图,本地管理设备可以实现为图1所示的本地管理设备103。如图3所示,本地管理设备300可包括:通信接口301、一个或多个处理器302、存储器303。
通信接口301可用于本地管理设备300与其他设备通信,例如与本地设备等通信。通信接口301可包括有线通信接口,例如为以太网接口、光纤接口等。可选地,通信接口301还可以包括无线通信接口。
存储器302与处理器303耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器302可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器303中内置有操作系统,例如Linux、Windows等操作系统。存储器303还可以内置网络通信程序,该网络通信程序可用于与远程操作通信系统中的其他设备进行通信。
在本申请的一些实施例中,存储器303可用于存储本申请的一个或多个实施例提供的远程操作设备的方法在第三设备侧的实现程序。关于本申请提供的远程操作设备的方法在第三设备侧的实现,请参考后续实施例。在可选实施例中,存储器303还可以用于存储远程操作任务、远程操作子任务、子任务队列、远程操作子任务的执行策略等,关于远程操作任务、远程操作子任务、子任务队列、远程操作子任务的执行策略的有关描述,请参考后续实施例。
处理器303可以是通用处理器,例如中央处理器(central processing unit,CPU),处理器303还可包括硬件芯片,上述硬件芯片可以是以下一种或多种的组合:专用集成电路(application specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field programmable gate array,FPGA),复杂可编程逻辑器件(complex programmablelogic device,CPLD)。处理器303可处理通信接口301接收到的数据,处理器303还可处理将被发送到通信接口301以通过有线传输介质或无线传输介质传送的数据。
本申请实施例中,处理器303可用于读取和执行计算机可读指令。具体的,处理器303可用于调用存储于存储器303中的程序,例如本申请的一个或多个实施例提供的远程操作设备的方法在第三设备侧的实现程序,并执行该程序包含的指令。
本申请实施例中,处理器303用于将获取到的远程操作任务进行划分为远程操作子任务,然后将远程子操作任务添加至子任务队列,并结合操作子任务队列中的远程操作子任务的执行结果、远程操作子任务的执行策略进行子任务调度。处理器303将获取到的远程操作任务进行划分为远程操作子任务,然后将远程子操作任务添加至子任务队列,并结合操作子任务队列中的远程操作子任务的执行结果、远程操作子任务的执行策略进行子任务调度的具体实现可参考后续实施例。
这里,图3所示的本地管理设备300仅仅是本申请的一种实现方式,实际应用中,本地管理设备300还可以包括更多或更少的部件,这里不作限制。
基于前述远程操作通信系统10、本地设备200以及本地管理设备300,可以实现本申请的远程操作设备的方法,本申请通过利用图像匹配的方式定位远程操作的操作对象在远程界面中的位置,然后根据定位出的操作对象的位置,在远程操作界面中执行对远程设备的远程操作,通过自动定位操作对象的实现对远程设备的远程操作。另外,本申请还通过将面向“设备”的操作任务划分为多个子任务,对子任务进行并发调度,可以提高远程操作的效率,保证操作任务的正常进行。以下具体介绍。
先介绍本申请涉及的一些概念。
1、远程界面:本申请中,远程界面是指本地设备通过远程连接获取到的远程设备的界面,该远程连接为本地设备与该远程设备之间的连接。远程界面可以显示在本地设备上。举例来对远程界面进行说明,参见图4,图4为本申请提供的一种远程界面的示意图。其中,图4中的远程设备401中显示有界面402,界面402为远程设备401中显示的背景图为小狗的桌面界面,本地设备403通过与远程设备401之间的远程连接获取到了该背景图为小狗的桌面界面,其呈现在本地设备403中为界面404,则界面404称之为远程界面。
2、远程操作:本申请中,远程操作是指虽然在本地设备上执行,但实际却是作用于远程设备的操作。举例来对远程操作进行说明,例如,操作A是将鼠标移动至图4中的界面404后右键鼠标的操作,操作A虽然是在本地设备上执行,是作用于界面404的操作,但操作A实际作用的是界面402,是对远程设备的操作,那么,操作A为远程操作。
接下来介绍本申请的技术方案。
参见图5,图5是本申请实施例提供的一种远程操作设备的方法的流程示意图,该方法实现在本地设备上,本地设备可以为图1所示的本地设备102或图2所示的本地设备200。该方法是从具体操作的角度对远程操作设备进行描述。如图5所示,该方法包括如下步骤:
S501,第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域。
S502,第一设备根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置。
S503,第一设备根据第一操作对象在第一远程界面中的位置,在第一远程界面中执行对第二设备的第一远程操作。
上述步骤S501~S503涉及的第一设备可以为图1所示的远程操作通信系统中的本地设备102,第一设备的结构可以参考图2所示的本地设备200的结构。上述步骤S501~S503涉及的第二设备可以为图1所示的远程操作通信系统中的远程设备101。
上述步骤S501~S503涉及的第一远程界面为第一设备通过远程连接获取到的第二设备的界面,并且,第一远程界面为第一远程操作对应的远程界面。有关于远程界面和远程操作的定义,可参考前述描述。其中,第一远程操作为在第一设备上执行的但实际是作用于第二设备的任一操作,第一远程操作对应的远程界面是指被用于执行第一远程操作的远程界面,也即第一远程操作的操作对象所在的远程界面。举例来进行说明,假设第一远程操作是“双击第二设备上的谷歌浏览器的图标”,其中,第二设备上的谷歌浏览器的图标显示在第二设备的桌面界面上,第二设备的桌面界面如图4中的界面402所示。那么,第一远程操作的操作对象可以为谷歌浏览器的图标,谷歌浏览器的图标在第二设备的桌面界面中,第二设备的桌面界面呈现在本地设备中为图4中的界面404,即谷歌浏览器的图标所在的远程界面为图4中的界面404,则界面404为第一远程操作对应的远程界面,即第一远程界面。
具体实现中,第一设备可以通过操作命令登录、客户端登录、VPN等远程方式与第二设备建立远程连接,然后根据第一远程操作获取第一远程界面,从而获取第一远程界面的图像。
上述步骤S502涉及的模板图像包括第一操作对象的界面元素,第一操作对象为第一远程操作的操作对象。具体地,第一操作对象可以为图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏等可操作的对象。在一些可能的情况中,第一远程操作可以为第三设备发送给第一设备的第一远程操作子任务中的其中一个远程操作,第三设备可以为图1所示的远程通信系统中的本地管理设备;模板图像可以在第三设备向第一设备发送该远程操作子任务时被携带在该第一远程操作子任务中的第一操作执行命令中发送给第一设备,该第一操作执行命令用于指示第一设备执行第一远程操作。在另一些可能的情况中,模板图像也可以被第三设备在向第一设备发送第一界面操作流程脚本时与第一界面操作流程脚本一起被发送给第一设备,第一界面操作流程脚本为第一设备执行第一远程操作所需调用的界面操作流程脚本。在又一些可能的情况中,模板图像还可以在第三设备向第一设备发送第一操作执行命令时被携带在该第一操作执行命令中发送给第一设备。在又一些可能的情况中,模板图像还可以与第一界面操作流程脚本一起被预先保存在第一设备中,第一界面操作流程脚本为第一设备执行第一远程操作所需调用的界面操作流程脚本。不限于这里的情况,关于模板图像的来源,本申请实施例不做限制。
对于上述步骤S501,第一设备可以通过以下介绍的第一实施方式和第二实施方式确定与模板图像匹配的第一图像区域:
第一实施方式:第一设备可以将模板图像与第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,该至少一个图像区域各自与模板图像的匹配度,每个图像区域的尺寸与模板图像的尺寸相同;然后,第一设备将该至少一个图像区域中与模板图像的匹配度最大的图像区域,确定为与模板图像匹配的第一图像区域。
这里,将模板图像与第一远程界面的图像进行遍历图像匹配具体是指:根据模板图像的尺寸,按从左到右,从上到下的方式对第一远程界面的图像进行遍历,得到一个或多个尺寸与模板图像的尺寸相同的图像区域,然后将遍历得到的一个或多个尺寸与模板图像的尺寸相同分别与模板图像进行相似度匹配,以得到这一个或多个尺寸与模板图像的尺寸相同的图像区域各自与模板图像的匹配度。
举例来对将模板图像与第一远程界面的图像进行遍历图像匹配进行说明,参见图6,图6是本申请实施例提供的一种遍历图像匹配的示意图。如图6所示,假设第一远程界面的图像61的像素为3*2,模板图像62的像素为1*1。将模板图像与第一远程界面的图像进行遍历图像匹配的过程为:
A1,从第一远程界面的图像61的左上角开始,利用尺寸与模板图像的尺寸相同的滑动窗口E(即滑动窗口E的尺寸为1*1)对第一远程界面的图像61进行遍历,得到图像区域611,将图像区域611与模板图像62进行图像匹配,得到图像区域611与模板图像62的匹配度S1。
A2,将A1中的滑动窗口E向右平移一个像素,对第一远程界面的图像62进行遍历,得到图像区域612,将图像区域612,将图像区域612与模板图像62进行图像匹配,得到图像区域612与模板图像62的匹配度S2。
A3,将A2中的滑动窗口E向右平移一个像素,对第一远程界面的图像62进行遍历,得到图像区域613,将图像区域613,将图像区域613与模板图像62进行图像匹配,得到图像区域613与模板图像62的匹配度S3。
A4,将A1中的滑动窗口E向下平移一个像素,对第一远程界面的图像62进行遍历,得到图像区域614,将图像区域614,将图像区域614与模板图像62进行图像匹配,得到图像区域614与模板图像62的匹配度S4。
A5,将A4中的滑动窗口E向右平移一个像素,对第一远程界面的图像62进行遍历,得到图像区域615,将图像区域615,将图像区域615与模板图像62进行图像匹配,得到图像区域615与模板图像62的匹配度S5。
A6,将A5中的滑动窗口E向右平移一个像素,对第一远程界面的图像62进行遍历,得到图像区域615,将图像区域615,将图像区域615与模板图像62进行图像匹配,得到图像区域615与模板图像62的匹配度S6。
具体实现中,第一设备可以通过平方差匹配方法(CV_TM_SQDIEF)、归一化平方差匹配方法(CV_TM_SQDIEF_NORMED)、相关匹配方法(CV_TM_CCORR)、归一化相关匹配方法(CV_TM_CCORR_NORMED)、相关系数匹配方法(CV_TM_CCOEFF)或归一化相关系数匹配方法(CV_TM_CCOEFF_NORMED)中的任一种图像匹配方法将模板图像与第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,该至少一个图像区域各自与模板图像的匹配度。
平方差匹配方法的算法公式可表示为:
R(x,y)=∑x′,y′[T(x′,y′)-I(x+x′,y+y′)]2,公式(1)
归一化平方差匹配方法的算法公式可表示为:
相关匹配方法的算法公式可表示为:
R(x,y)=∑x′,y′T(x′,y′)2×I(x+x′,y+y′)2,公式(3)
归一化相关匹配方法的算法公式可表示为:
相关系数匹配方法的算法公式可表示为:
R(x,y)=∑x′,y′[T′(x′,y′)×I(x+x′,y+y′)],公式(5)
归一化相关系数匹配方法的算法公式可表示为:
其中,
在上述公式(1)-公式(6)中,R(x,y)为将模板图像与第一远程界面的图像进行遍历图像匹配得到的各个图像区域与模板图像进行图像匹配得到的结果;T代表模板图像,I代表通过滑动窗口遍历得到的图像区域;x和y分别为图像区域的左上角在x轴和y轴上的坐标;x’和y’以及x”和y”为图像区域的内部像素在x轴和y轴上的坐标;w和h分别为图像区域宽度和高度。
不限于上述几种图像匹配方法,在可选实施方式中,还可以采用其他图像匹配方法,本申请不做限制。
可选地,第一设备还可以结合多尺度匹配和实施方式一描述的方式确定与模板匹配的第一图像区域。
第二实施方式:第一设备可以调整模板图像的尺寸,以得到模板图像对应的M个模板变换图像,该M个模板变换图像的尺寸各不相同,M为大于1的正整数;然后,第一设备分别将该M个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到该模板图像对应的M个第二图像区域,以及,该M个第二图像区域各自与模板图像的匹配度;最后,第一设备可以将该M个第二图像区域中与模板图像的匹配度最大的第二图像区域确定第一图像区域。
这里,该模板图像对应的M个第二图像区域分别对应该M个模板变换图像,第二图像区域的尺寸与其对应的模板变换图像的尺寸相同。可通过实施方式一描述的实现方式确定每个模板变换图像对应的第二图像区域,即每个模板变换图像对应的第二图像区域为将模板图像对应的第二图像区域进行遍历图像匹配所得到的与该模板变换图像的匹配度最大的图像区域。每个第二图像区域与模板图像的匹配度等于该第二图像区域与其对应的模板变换图像的匹配度。
上述分别将该M个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到该模板图像对应的M个第二图像区域,以及,该M个第二图像区域各自与模板图像的匹配度的具体过程为:将第1个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到第1个模板图像对应的至少一个图像区域,以及,第1个模板图像对应的至少一个图像区域各自与第1个模板图像的匹配度,每个第1个模板图像对应的图像区域的尺寸与第1个模板图像的尺寸相同;将该第1个模板图像对应的至少一个图像区域中与第1个模板图像的匹配度最大的图像区域,确定为第1个第二图像区域,将第1个第二图像区域与第1个模板图像的匹配度确定为第1个图像区域与模板图像的匹配度。将第2个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到第2个模板图像对应的至少一个图像区域,以及,第2个模板图像对应的至少一个图像区域各自与第2个模板图像的匹配度,每个第2个模板图像对应的图像区域的尺寸与第2个模板图像的尺寸相同;将该第2个模板图像对应的至少一个图像区域中与第2个模板图像的匹配度最大的图像区域,确定为第2个第二图像区域,将第2个第二图像区域与第2个模板图像的匹配度确定为第2个图像区域与模板图像的匹配度。以此类推。直到将第M个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到第M个模板图像对应的至少一个图像区域,以及,第M个模板图像对应的至少一个图像区域各自与第M个模板图像的匹配度,每个第M个模板图像对应的图像区域的尺寸与第M个模板图像的尺寸相同;将该第M个模板图像对应的至少一个图像区域中与第M个模板图像的匹配度最大的图像区域,确定为第M个第二图像区域,将第M个第二图像区域与第M个模板图像的匹配度确定为第M个图像区域与模板图像的匹配度。
这里,上述M个模板变换图像为内容与模板图像的内容相同的图像,一个模板变换图像可用于适应第二设备的界面可能具备的一种分辨率,该M个模板图像可用于适应第二设备的界面可能具备的M个分辨率,即M的值取决于第二设备的界面可能具备的分辨率的种类。其中,一个模板变换图像的长宽比可以等于该模板变换图像所适应的界面的长宽比。如第二设备的界面的分辨率可能为1920*1080,1680*1050,1600*900,1440*900,1366*768,1280*1024,1280*800,1024*768,800*600这9种分辨率中的一种,则可以调整模板图像的尺寸,得到9个长宽比分别与1920*1080,1680*1050,1600*900,1440*900,1366*768,1280*1024,1280*800,1024*768,800*600这几种分辨率对应的长宽比相同的模板变换图像。
对于将各个模板变换图像与第一远程界面的图像进行遍历图像匹配,以得到各个模板变换图像对应的图像区域和各个变换图像对应的图像区域与其所对应的模板变换图像的匹配度的具体实现方式,可参考前述将模板图像与第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,该至少一个图像区域各自与模板图像的匹配度的实现方式,此处不再赘述。
不限于上述第一实施方式和第二实施方式中涉及的通过遍历图像匹配的方式确定与模板图像匹配的第一图像区域,在可选实施方式中,第一设备还可以通过其他方式确定与模板图像匹配的第一图像区域。例如,第一设备可以通过预先训练得到的基于机器学习算法的图像识别模型确定与模板图像匹配的第一图像区域,在这种情况下,该模板图像还可以为该基于机器学习算法的图像识别模型中保存的模板图像。对于通过何种方式确定与模板图像匹配的第一图像区域,本申请实施例不做限制。
上述步骤S502~S503涉及的第一操作对象为第一远程操作的操作对象,关于第一操作对象的具体说明,可参考前述描述。
对于上述步骤S502,第一设备可以通过以下实施方式确定第一操作对象在第一远程界面中的位置。
在一种可行的实施方式中,第一设备可以根据第一图像区域与模板图像的匹配度来确定第一操作对象在第一远程界面中的位置。
在一种具体实施方式中,在第一图像区域与模板图像的匹配度大于或等于匹配度阈值的情况下,第一设备可以将第一图像区域在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置。
匹配度阈值为用于衡量两个图像的相似程度的值。第一图像区域与模板图像的匹配度大于或等于匹配度阈值说明第一图像区域与模板图像的相似程度较高,说明第一图像区域中的界面元素为第一操作对象的界面元素的可能性较大,第一图像区域在第一远程界面中的位置即为第一操作对象的位置。
具体地,匹配度阈值可以为小于1且接近于1的值,第一图像区域与模板图像的匹配度阈值可以用分数、小数或百分数来表示。如19/20,0.95,98%,等等。
在另一种具体实施方式中,在第一图像区域与模板图像的匹配度小于匹配度阈值的情况下,第一设备可以识别第一图像区域中存在的至少一个字符串,并将该至少一个字符串中的第一字符串在第一远程界面的图像中的位置,确定为第一操作对象在第一远程界面中的位置,第一字符串与模板字符串的相似度大于相似度阈值。
这里,模板字符串为内容动态变化的第一操作对象对应的字符串,该字符串可以为网元名、文件名、选项名等随着操作变化而可能发生变化的字符串,该字符串可以为该第一操作对象的名称或具体内容。例如,该第一操作对象为选项栏,则该字符串可以为该选项栏的名称和选项栏的具体内容。
第一图像区域与模板图像的匹配度小于匹配度阈值说明第一图像区域与模板图像的相似度不够高,说明第一图像区域中的界面元素与第一操作对象的界面元素的相似度不够高;而第一图像区域是第一远程界面中的与模板图像最相似的图像区域,第一远程界面为第一操作对象所在的远程界面,说明第一操作对象为内容动态变化的操作对象可能性较大。
相似度阈值为用于衡量两个字符串的相似程度的值。第一字符串与模板字符串的相似度大于或等相似度阈值说明第一字符串为模板字符串的可能性较大,模板字符串为第一操作对象对应的字符串,则第一字符串在第一远程界面中的位置即为第一操作对象的位置。
具体实现中,第一设备可以通过光学字符识别(optical characterrecognition,OCR)技术识别第一图像区域中存在的至少一个字符串,然后将至少一个字符串与模板字符串进行相似度匹配,以确定至少一个字符串各自与模板字符串的相似度,最后将至少一个字符串的与模板字符串的相似度大于该相似度阈值的字符串确定为第一字符串。其中,第一设备可以通过比较该至少一个字符串中的各个字符串包含的字符与模板字符串包含的字符、该各个字符串包含的字符的数量与模板字符串包含的字符的数量等将至少一个字符串与模板字符串进行相似度匹配,以确定至少一个字符串各自与模板字符串的相似度;第一设备也可以根据该至少一个字符串中的各个字符串与模板字符串的最大匹配长度、汉明距离等确定该至少一个字符串各自与模板字符的相似度。对于确定两个字符串之间的相似度的具体方式,本申请实施例不做限制。
在另一种可行的实施方式中,第一设备也可以通过确定第一图像区域中的操作对象的类型来确定第一操作对象在第一远程界面中的位置。第一设备可以基于卷积神经网络的识别模型对第一图像区域进行识别,以确定第一图像区域中的操作对象的类型。在确定第一图像区域中的操作对象为界面元素固定的操作对象的情况下,第一设备可以将第一图像区域在第一图像中的位置,确定为第一操作对象在第一远程界面中的位置。在确定第一图像区域中的操作对象为界面元素动态变化的操作对象的情况下,第一设备识别第一图像区域中存在的至少一个字符串,并将该至少一个字符串中的第一字符串在第一图像区域中的位置,确定为第一操作对象在第一远程界面中的位置,第一字符串与模板字符串的相似度大于相似度阈值。
这里,基于卷积神经网络的识别模型为用于识别图像中的操作对象的类型的识别模型。操作对象的类型用于指示操作对象的内容是否随着操作变化而发生变化,界面元素动态变化的操作对象是指内容随着操作变化而发生的操作对象,界面元素固定的操作对象是指内容不随操作变化而发生变化的操作对象(如图标、按钮等)。该识别模板可以通过将样本图像以及样本图像中的操作对象的类型作为训练样本进行训练得到的识别模型。具体地,该识别模型可以为深度可分离卷积模型,例如为移动网络(MobileNet)模型。
当第一图像区域中的操作对象为界面元素固定的操作对象时,第一图像区域是第一远程界面中的与模板图像最相似的图像区域,说明第一操作对象为界面元素固定的操作对象的可能性最大,该第一图像区域中的操作对象为第一操作对象的可能性最大,第一图像区域在第一远程界面中的位置即为第一操作对象的位置。
关于模板字符串的定义和确定第一字符串的具体实现方式,可参考前述描述。当第一图像区域中的操作对象为界面元素动态变化的操作对象时,第一图像区域是第一远程界面中的与模板图像最相似的图像区域,说明第一操作对象为界面元素动态变化的可能性较大,将第一字符串在第一图像区域中的位置确定为第一操作对象在第一远程界面中的位置的原因,可参考前述描述,此处不再赘述。
本申请实施例中,上述两种实施方式涉及的位置(第一图像区域在第一远程界面的图像中的位置、第一字符串在第一远程界面的图像中的位置、第一操作对象在第一远程界面中的位置)可以用相对的位置坐标来表示。具体地,第一图像区域在第一远程界面的图像中的位置,可以用该第一图像区域在该第一远程界面的图像中的相对位置坐标来表示,第一图像区域在第一远程界面的图像中的相对位置坐标指根据建立在第一远程界面的图像中的坐标系确定的第一图像区域。第一字符串在第一远程界面中的位置,可以用该第一字符串在该第一远程界面的图像中的相对位置坐标来表示,第一字符串在第一远程界面的图像中的相对位置坐标指根据建立在第一远程界面的图像中的坐标系确定的第一字符串的坐标。其中,第一远程界面的图像中的坐标系可以以该第一远程界面的图像中的某个点(如第一远程界面的图像的左上角,右下角等)为坐标原点。第一操作对象在第一远程界面的位置,可以用第一操作对象在第一远程界面中的相对位置坐标来表示,第一操作对象在第一远程界面中的相对位置坐标是指根据建立在第一远程界面中的坐标系确定的第一操作对象的坐标。该第一远程界面中的坐标系的坐标原点与第一远程界面的图像中的坐标原点应为同一个点,如均为右上角。
举例来对相对位置坐标进行说明,参见图7,图7是本申请实施例提供的一种相对位置坐标的示意图。第一远程界面的图像如图7中的71所示,根据步骤S501确定的第一图像区域如图7中的72所示,第一远程界面的图像的左下角为坐标原点,确定的第一图像区域的四个角的坐标分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),则坐标(x1,y1),(x2,y2),(x3,y3),(x4,y4)即为用于标识第一图像区域的位置的相对位置坐标。
不限于前述两种实施方式中涉及的确定第一操作对象在第一远程界面中的位置的方式,在可选实施方式中,第一设备还可以通过其他方式确定第一操作对象在第一远程界面。例如,进一步地,第一设备可以通过前述介绍的基于机器学习算法的图像识别模型直接确定第一操作对象在第一远程界面中的位置,在这种情况下,该基于机器学习算法的图像识别模型可直接将识别得到的第一远程界面的图像中的图像区域在该第一远程界面的图像中的位置确定为第一操作对象在第一远程界面中的位置。对于通过何种方式确定第一操作对象在第一远程界面中的位置,本申请实施例不做限制。
对于上述步骤S503,在第一远程界面中执行对第二设备的第一远程操作,具体是指在该第一远程界面中操作该第一操作对象。例如,第一远程操作为“双击第二设备上的谷歌浏览器的图标”,第一远程界面如图4中的界面404所示,则第一操作对象为谷歌浏览器的图标,在第一远程界面中执行对第二设备的第一远程操作是指在界面404中双击谷歌浏览器的图标。
具体实现中,第一设备可以调用第一界面操作流程脚本在第一远程界面中执行对第二设备的第一远程操作,第一界面操作流程脚本为执行该第二远程操作的界面操作流程脚本。
结合前述描述可知,在图1对应的实施例中,本地设备通过获取要远程设备的远程界面的图像,通过图像匹配的方确定该远程界面中的操作对象在该远程界面上的位置,然后根据该操作对象在远程界面上的位置,在远程界面中执行对远程设备的远程操作,实现了对远程设备的远程操作,不需进行人工进行手动的远程操作,减少了人力资源的投入,同时可以提高了远程操作的效率。进一步地,在将图1对应的实施例应用至调测场景中时,该远程操作可以是远程调测操作,那么,可以实现对被测设备的远程调测操作,不需要手工调测,减少了调测的人力资源的支出,提高了调测的效率。
可选地,第一设备在通过上述第一实施方式和第二实施方式的通过遍历图像匹配的方式确定与模板相匹配的第一图像区域之前,第一设备还可以对第一远程界面的图像进行压缩处理。具体实现中,第一设备可通过哈夫曼(Huffman)编码、预测编码、LZW压缩算法、JPEG编码等图像压缩算法对第一远程界面的图像进行压缩处理。
进一步地,第一设备还可以对模板图像进行压缩处理,其中,第一设备可以采用与压缩第一远程界面的图像相同的图像压缩算法对模板图像进行压缩处理。第一设备可以通过等比例压缩的方式对第一远程界面的图像和模板图像进行压缩处理。等比例压缩,使指第一远程界面的图像和模板图像的缩小比例相同。
关于具体采用何种图像压缩算法对第一远程界面的图像,或第一远程界面的图像和模板图像进行压缩处理,本申请实施例不做限制。
由于在进行遍历图像匹配之前对第一远程界面的图像,或第一远程界面的图像和模板图像进行了压缩处理,使得第一远程界面的尺寸变小,可减少遍历的次数,从而可以提高遍历图像匹配的速度。
可选地,在对第一远程界面的图像进行压缩处理的情况下,在根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置时,第一设备还可以对压缩后的第一远程界面的图像(这里指压缩得到的第一远程界面的图像)和该在压缩后的第一远程界面的图像中的第一图像区域进行放大还原,使得第一远程界面的图像恢复原始的尺寸,然后根据放大还原后的第一图像区域在放大还原后的第一远程界面的图像中的位置确定第一操作对象在第一远程界面中的位置。
在一些可能的实施例中,第一设备还在执行对第二设备第一远程操作后,还可以根据第一远程操作的执行状态确定下一步要执行的操作。参见图8,图8是本申请实施例提供的另一种远程操作设备的方法的流程示意图,该方法可实现在本地设备上,本地设备可以为图1所示的本地设备102或图2所示的本地设备200。该方法可以在图5所示的实施例中的步骤之后执行。如图8所示,该方法包括如下步骤:
S801,第一设备根据第二远程界面的图像,确定第一远程操作的执行状态。
这里,第二远程界面为第一设备通过远程连接获取到的第二设备的界面,并且,第二远程界面用于第一远程操作的执行结果。有关于远程界面和远程操作的定义,可参考前前述。其中,用于指示第一远程操作的执行结果的远程界面是指第一远程操作的执行结果得以直接体现或间接体现的远程界面,即第二远程界面用于直接或间接体现第一远程操作的执行结果。
在一种可能的情况中,第一远程操作为界面响应型的远程操作,则第一设备可以在执行对第二设备的第一远程操作之后,通过与第二设备之间的远程连接获取第二设备的界面的图像,以作为第二远程界面的图像,即如果第一远程操作为界面响应型的远程操作,第二远程界面为在执行第一远程操作后通过远程连接获取到的第二设备的界面。其中,界面响应型的远程操作是指远程界面会随其被执行而发生相应的变化或响应的远程操作。
举例来对界面响应型的远程操作进行说明。例如,第一远程操作是“双击第二设备上的谷歌浏览器的图标”,双击第二设备的谷歌浏览器的图标实质是打开谷歌浏览器,第二设备会响应该操作,显示谷歌浏览器的界面,界面会发生变化,相应地,第一设备通过远程连接获取到的远程界面会随之变化,远程界面为谷歌浏览器的界面,则“双击第二设备上的谷歌浏览器”可以称之为界面响应型的远程操作。再例如,第一远程操作是“右键点击谷歌浏览器的图标”,根据该右键点击谷歌浏览器的图标的操作,第二设备会显示谷歌浏览器的相关选项,界面发生变化,相应地,第一设备通过远程连接获取到的远程界面会随之变化,远程界面会显示谷歌浏览器的相关选项,则“右键点击谷歌浏览器”可以称之为界面响应型的远程操作。界面响应型的远程操作不限于以上举例,凡是在执行远程操作后,远程界面会发生变化的场景中的远程操作,均可以称之为界面响应型的远程操作。
具体地,在第一远程操作为界面响应型的远程操作的情况下,第一设备可以在获取到第二远程界面的图像后,将第二远程界面的图像和第一远程界面的图像进行比较,如果第二远程界面的图像和第一远程界面的图像相同,则第一设备可以确定第一远程操作的执行状态为执行等待;如果第二远程界面的图像和第一远程界面的图像不同,则第一设备可以将第二远程界面的图像与第一远程操作执行成功时的远程界面的图像进行比较,如果第二远程界面的图像与第一远程操作的执行成功时的远程界面的图像相同,则第一设备可以确定第一远程操作的执行状态为执行成功,如果第二远程界面的图像与第一远程操作执行成功时的远程界面的图像不同,则第一设备可以确定第一远程操作的执行状态为执行异常。可选地,第一设备也可以识别第二远程界面的图像中的字符,将识别到的字符与第一远程操作执行成功时的响应字符(如“正常”、“成功”这一类的字符)进行比较,以确定第一远程操作的执行状态为执行成功或执行异常。
在另一种可能的情况中,第一远程操作为日志响应型的远程操作,则第一设备可以在执行对第二设备的第一远程操作之后,通过与第二设备之间的远程连接获取第一远程操作对应的日志显示界面,以作为第二远程界面的图像,即如果第一远程操作为日志响应型的远程操作,第二远程界面为执行第二远程操作后通过远程连接获取到的第二设备中的第一远程操作对应的日志显示界面,其中,日志响应型的远程操作是指远程界面不一定会随其被执行而发生相应的变化或响应的远程操作,其操作的操作通过日志内容的变化来体现的远程操作。
具体地,在第一远程操作为日志响应型的远程操作的情况下,第一设备可以在获取到第二远程界面的图像后,确定第二远程界面中的日志内容有无变化,如果日志内容无变化,则第一设备可以确定第一远程操作的执行状态为执行等待;如果日志内容有变化,第二远程界面的图像和第一远程界面的图像不同,则第一设备可以将第二远程界面的图像与第一远程操作执行成功时的日志显示界面的图像进行比较,如果第二远程界面的图像与第一远程操作的执行成功时的日志显示界面的图像相同,则第一设备可以确定第一远程操作的执行状态为执行成功,如果第二远程界面的图像与第一远程操作执行成功时的日志显示界面的图像不同,则第一设备可以确定第一远程操作的执行状态为执行异常。可选地,第一设备也可以识别第二远程界面的图像中的字符,将识别到的字符与第一远程操作执行成功时的响应字符(如“正常”、“成功”这一类的字符)进行比较,以确定第一远程操作的执行状态为执行成功或执行异常。
第一设备不限于通过上述提到的方式确定第一远程操作的执行状态,在可选实施方式中,第一设备还可以根据其他的实施方式确定第一远程操作的执行状态。例如,第一设备还可以将第二远程界面的图像输入至预先训练得到的执行状态识别模型中,根据该执行状态识别模型的输入确定第二远程操作的执行状态。该执行状态识别模型可以为MobileNet。
这里,在第一远程操作的执行状态为执行等待的情况下,第一设备执行步骤S801;在第一远程操作的执行状态为执行异常的情况下,第一设备执行步骤S802;在第一远程操作的执行状态为执行成功,并且,第一远程操作不为第一远程操作子任务中的最后一个远程操作的情况下,第一设备执行步骤S803,其中,第一远程操作为第一远程操作子任务中的远程操作;在第一远程操作的执行状态为执行成功,并且,第一远程操作为第一远程操作子任务中的最后一个远程操作的情况下,第一设备执行步骤S804。关于远程操作子任务的定义,可参考后续图9实施例中的有关描述。
S802,第一设备执行第一远程操作对应的异常处理操作。
这里,异常处理操作可以为第一设备检测所述第二设备的异常,或者,第一设备向第三设备发送子第二任务结果,第二子任务结果用于指示第一远程操作子任务执行失败,等等。
S803,第一设备通过远程连接获取第三远程界面。
这里,第三远程界面为第二远程操作对应的远程界面,即第二远程操作的操作对象所在的远程界面。关于远程操作对应的远程界面的举例,可参见前述描述,此处不再赘述。第二远程操作为第一远程操作子任务中的第一远程操作的下一个远程操作。
进一步地,第一设备还可以按照前述图5实施例介绍的方法,在第三远程界面中执行对第二设备的第二远程操作。
S804,第一设备向第三设备发送第一子任务结果。
这里,第三设备可以为图1所示的远程通信操作系统中的本地管理设备103,第三设备的结构可以参考图3所示的本地管理设备300的结构。第一子任务结果用于指示第一远程操作子任务执行成功,第一子任务结果可以被第三设备用于进行操作子任务调度。关于第三设备进行操作子任务调度的具体方式,可参考图9对应的实施例,此处不做过多描述。
结合前述描述可知,在图8对应的实施例中,本地设备在远程界面中执行对远程设备的远程操作后,第一设备还根据用于指示远程操作的执行结果的远程界面,确定远程操作的执行状态,进而根据不同的执行状态,进行不同的处理操作,实现了远程操作的处理响应。
如前所述,第一设备执行的远程操作可以是第三设备发送给第一设备的远程操作子任务中的远程操作(可结合参见前述对模板图像的有关描述),第三设备发送给第一设备的远程操作子任务可以是待执行的多个远程操作子任务中的一个。第三设备可以对多远程操作子任务进行调度。参见图9,图9是本申请实施例提供的又一种远程操作设备的方法的流程示意图,该方法可实现在本地管理设备上,本地管理设备可以为图1所示的本地管理设备103或图3所示的本地管理设备300。该方法是从整理的操作管理角度对远程操作设备进行描述。如图9所示,该方法包括如下步骤:
S901,第三设备对获取到的至少一个远程操作任务进行划分,以得到多个远程操作子任务。
这里,第三设备可以为图1所示的远程通信操作系统中的本地管理设备103,第三设备的结构可以参考图3所示的本地管理设备300的结构设备。
远程操作任务为需要对某个或某批(指多个)远程设备需要执行的并且被执行后使得该某个或某批设备能够具备某种或多种业务能力的操作任务。一个远程操作任务可以为针对一个设备的远程操作任务,这种远程操作操作任务可以被称为单设备操作任务;一个远程操作任务也可以为针对多个设备的远程操作设备,这种操作任务可以被称为批量操作任务。例如,在远程电信调测场景中,远程操作任务为远程调测任务,如果该远程调测任务为针对一个基站或无线接入点的远程调测任务,则这种远程调测任务可以被称为单站远程调测任务或,单接入点远程调测任务;如果该远程调测任务为针对多个基站或多个无线接入点的远程调测任务,则这种远程调测设备可以被称为批量远程调测任务。
具体地,第三设备可以通过一个或多个任务获取线程从任务管理资源池中获取至少一个远程操作任务。其中,任务管理资源池用于存储远程操作场景中的一个或多个远程操作任务。如用于存储远程电信调测场景中的一个或多个远程调测任务。其中,任务管理资源池中的远程操作任务可以为用户根据具体的业务需求上传的远程操作任务,或者,用户根据具体的业务需求下发的远程操作任务,或者,用户根据具体的业务需求创建的远程操作任务。关于任务管理资源池中的远程操作任务的具体来源,本申请实施例不做限制。进一步地,任务管理资源池中的远程操作任务可以按被上传的时间、被下发的时间或被创建的时间来区分。任务管理资源池中的远程操作任务也可以按其对应的业务需求来区分。任务管理资源池中的远程操作任务也可以按针对的远程设备来区分。
其中,每个远程操作任务可以由至少一个远程操作子任务组成,远程操作任务中的远程操作子任务可以理解为远程操作子任务中的各个环节对应的分组任务,一个环节对应一个分组任务。例如,在电信调测场景中,无线长期演进(long term evolution,LTE)扩容任务,无线LTE任务有四个环节,按顺序依次为数据备份、数据下发、设备检测、业务验证,那么,无线长期演进(long term evolution,LTE)扩容任务中的各个环节对应的分组任务分别为数据备份对应的分组任务(以下简称数据备份分组任务)、数据下发对应的分组任务(以下简称数据下发分组任务)、设备检测对应的分组任务(以下简称设备检测分组任务)和业务验证对应的分组任务(以下简称业务验证分组任务),即无线LTE扩容任务由四个分组任务组成,也即由四个远程操作子任务组成。
本申请实施例中,第三设备可以根据获取到的远程操作任务所包含的远程操作子任务,划分每个远程操作任务,以得到每个远程操作任务各自对应的远程操作子任务。
举例来进行说明,例如,第三设备获取到5个远程操作任务,这5个远程操作任务均包括远程操作子任务A(如为前述的备份分组任务)、远程操作子任务B(如为前述的数据下发分组任务)、远程操作子任务C(如为前述的设备检测分组任务)以及远程操作子任务D(如为前述的业务验证分组任务),远程操作子任务B为远程操作子任务A的下一个远程操作子任务,远程操作子任务C为远程操作子任务B的下一个远程操作子任务,远程操作子任务D为远程操作子任务C的下一个远程操作子任务。其中,远程操作任务1为针对远程设备1~远程设备3的远程操作任务,远程操作任务2为针对远程设备4~远程设备10的远程操作任务,远程操作任务3为针对远程设备11~远程设备15的远程操作任务,远程操作任务4为针对远程设备16~远程设备23的远程操作任务,远程操作任务5为针对远程设备24~远程设备31的远程操作任务。则对获取到的远程操作任务的划分包括:
1、第三设备对远程操作任务1进行划分,得到远程操作子任务1~远程操作子任务4,远程操作子任务1~远程操作子任务4为针对远程设备1~远程设备3的远程操作子任务。其中,远程操作子任务1为远程操作子任务A,远程操作子任务2为远程操作子任务B,远程操作子任务3为远程操作子任务C,远程操作子任务4为远程操作子任务D。
2、第三设备对远程操作任务2进行划分,得到远程操作子任务5~远程操作子任务8,远程操作子任务5~远程操作子任务8为针对远程设备4~远程设备10的远程操作子任务。其中,远程操作子任务5为远程操作子任务A,远程操作子任务6为远程操作子任务B,远程操作子任务7为远程操作子任务C,远程操作子任务8为远程操作子任务D。
3、第三设备对远程操作任务3进行划分,得到远程操作子任务9~远程操作子任务12,远程操作子任务9~远程操作子任务12为针对远程设备11~远程设备15的远程操作子任务。其中,远程操作子任务9为远程操作子任务A,远程操作子任务10为远程操作子任务B,远程操作子任务11为远程操作子任务C,远程操作子任务12为远程操作子任务D。
4、第三设备对远程操作任务4进行划分,得到远程操作子任务13~远程操作子任务16,远程操作子任务13~远程操作子任务16为针对远程设备16~远程设备23的远程操作子任务。其中,远程操作子任务13为远程操作子任务A,远程操作子任务14为远程操作子任务B,远程操作子任务15为远程操作子任务C,远程操作子任务16为远程操作子任务D。
5、第三设备对远程操作任务5进行划分,得到远程操作子任务17~远程操作子任务20,远程操作子任务17~远程操作子任务20为针对远程设备24~远程设备31的远程操作子任务。其中,远程操作子任务17为远程操作子任务A,远程操作子任务18为远程操作子任务B,远程操作子任务19为远程操作子任务C,远程操作子任务20为远程操作子任务D。
即,第三设备获取到5个远程操作任务被划分为20个远程操作子任务。
具体实现中,第三设备可以通过一个或多个任务分组线程对获取到的每个远程操作任务,以将每个远程操作任务划分为一个或多个远程操作子任务。
S902,第三设备根据多个远程操作子任务的属性和执行顺序,将至少一个远程操作子任务添加至子任务队列。
这里,远程操作子任务的属性可以包括远程子操作任务的名称和内容,远程操作子任务的执行顺序是指远程操作子任务在其所属的远程操作任务中的执行顺序。
举例来对根据多个远程操作子任务的属性和执行顺序,按将至少一个远程操作子任务添加至子任务队列进行说明。例如,多个远程操作子任务为前述步骤S901举例介绍的远程操作子任务1~远程操作子任务20,由前述举例可知,远程操作子任务1、远程操作子任务5、远程操作子任务9、远程操作子任务13以及远程操作子任务17为远程操作子任务A,它们在各自所属的远程操作任务中的执行顺序为1;远程操作子任务2、远程操作子任务6、远程操作子任务10、远程操作子任务14以及远程操作子任务18为远程操作子任务B,它们在各自所属的远程操作任务中的执行顺序为2;远程操作子任务3、远程操作子任务7、远程操作子任务11、远程操作子任务15以及远程操作子任务19为远程操作子任务C,它们在各自所属的远程操作任务中的执行顺序为3;远程操作子任务4、远程操作子任务8、远程操作子任务12、远程操作子任务16以及远程操作子任务20为远程操作子任务D,它们在各自所属的远程操作任务中的执行顺序为4。那么,根据执行顺序,可以先将远程操作子任务1、远程操作子任务5、远程操作子任务9、远程操作子任务13以及远程操作子任务16添加至子任务队列。
S903,第三设备依次将子任务队列中的远程操作子任务,发送给处于空闲状态的至少一个第一设备。
这里,第三设备可以根据子任务队列中的远程操作子任务所针对的远程设备,将子任务队列中的远程操作子任务发送给处于空闲状态的第一设备。其中,如果远程子操作任务所属的远程操作任务为单设备操作任务,即远程操作子任务为针对一个远程设备的远程操作子任务,则第三设备将该远程子操作任务发送给与该远程设备连接的且处于空闲状态的第一设备,第一设备与远程设备之间的连接可以是直接连接,也可以是间接连接。如果远程操作子任务所属的远程操作任务为批量操作任务,即远程操作子任务为针对多个远程设备的远程操作子任务,则第三设备将远程操作子任务分别发送给与该多个远程设备各自连接的且处于空闲状态的第一设备。
S904,第三设备根据至少一个第一设备发送的至少一个子任务执行结果和子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度。
这里,第一设备发送的子任务执行结果用于指示第一设备执行对远程设备的远程操作子任务的结果,其中,一个子任务执行结果为针对一个远程设备的一个远程操作子任务的结果。举例来进行说明,以前述介绍的远程操作子任务1为例,由于远程操作子任务1为针对远程设备1~远程设备3的远程操作子任务,则该远程操作子任务1对应3个子任务执行结果,分别为针对远程设备1的远程操作子任务1的结果,针对远程设备2的远程操作子任务1的结果以及针对远程设备3的远程操作子任务1的结果,一个子任务执行结果为针对一个远程设备的远程操作子任务1的结果。
本申请实施例中,远程操作子任务的执行策略可以为遇错停止执行、遇错向下执行、遇错循环执行这三种执行策略。第三设备根据至少一个第一设备发送的至少一个子任务执行结果和子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度可以有以下几种可能的情况:
1、该至少一个子任务执行结果中存在第二子任务执行结果,第二子任务执行结果用于指示第一远程操作子任务执行失败,第一远程操作子任务属于第一远程操作任务,第一远程操作子任务为针对第二设备(第二设备为远程设备)的远程操作子任务,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务。
1)第一远程操作子任务的执行策略为遇错停止执行:第三设备停止为第二设备生成第二远程操作子任务,并生成第一操作结果,第二远程操作子任务为第一远程操作任务中的第一远程操作子任务的下一个远程操作子任务,第一操作结果用于指示针对第二设备的第一远程操作任务执行失败。
2)第一远程操作子任务的执行策略为遇错向下执行:第三设备为第二设备生成第二远程操作子任务,并将第二远程操作子任务添加至子任务队列。
3)第一远程操作子任务的执行策略为遇错循环执行:第三设备将第一远程操作子任务重新添加至子任务队列。
2、该至少一个子任务执行结果中存在第一子任务执行结果,第一子任务执行结果用于指示第一远程操作子任务执行成功,第一远程操作子任务属于第一远程操作任务,第一远程操作子任务为针对第二设备(第二设备为远程设备)的远程操作子任务。
1)第一远程操作子任务不为第一远程操作子任务中的最后一个远程操作子任务:第三设备为第二设备生成第二远程操作子任务,将第二远程操作子任务添加至子任务队列,第二远程操作子任务为第一远程操作任务中的第一远程操作子任务的下一个远程操作子任务。
2)第三设备生成第二操作结果,第二操作结果用于指示针对第二设备的远程操作任务执行成功。
下面通过举例来对上述介绍的子任务调度的方案进行说明。
参见图10A-图10B,图10A-图10B是本申请实施例提供的一种远程操作子任务的调度示意图。假设待调度的远程操作子任务如前述步骤S901举的例子所述,分别为远程操作子任务1~远程操作子任务20,假设远程操作子任务A的执行策略为遇错停止执行,远程操作子任务B的执行策略为遇错向下执行,远程操作子任务C的执行策略为遇错循环执行,远程操作子任务D的执行策略为遇错停止执行。
对上述远程操作子任务1~远程操作子任务20的调度过程如图10A-图10B中的队列Q1~队列22所示。
1、远程操作子任务A的执行顺序为1,对远程操作子任务A进行调度,远程操作子任务A的执行策略为遇错停止执行。
D1,将远程操作子任务1、远程操作子任务5、远程操作子任务9、远程操作子任务13以及远程操作子任务17添加至子任务队列,得到子任务队列Q1。
D2,将远程操作子任务1发送给远程设备1~远程设备3各自对应的第一设备,以完成对远程操作子任务1的调度。针对远程设备1的远程操作子任务1执行失败,则停止为远程设备1生成远程操作子任务2,并生成结果1,结果1用于针对远程设备1的远程操作任务1执行失败;针对远程设备2和远程设备3的远程操作子任务2执行成功,则为远程设备2和远程设备3生成远程操作子任务2;然后将远程操作子任务2添加至子任务队列,得到子任务队列Q2。
D3,将远程操作子任务5发送给远程设备4~远程设备10各自对应的第一设备,以完成对远程操作子任务5的调度。针对远程设备4~远程设备10的远程操作子任务5执行成功,则为远程设备4~远程设备10生成远程操作子任务6,然后将远程操作子任务6添加至子任务队列,得到子任务队列Q3。
D4,将远程操作子任务9发送给远程设备11~远程设备15各自对应的第一设备,以完成对远程操作子任务9的调度。针对远程设备11~远程设备15的远程操作子任务9执行成功,则为远程设备11~远程设备15生成远程操作子任务10,然后将远程操作子任务10添加至子任务队列,得到子任务队列Q4。
D5,将远程操作子任务13发送给远程设备16~远程设备23各自对应的第一设备,以完成对远程操作子任务13的调度。针对远程设备16~远程设备23的远程操作子任务13执行成功,则为远程设备16~远程设备23生成远程操作子任务14,然后将远程操作子任务14添加至子任务队列,得到子任务队列Q5。
D6,将远程操作子任务17发送给远程设备24~远程设备31各自对应的第一设备,以完成对远程操作子任务17的调度。针对远程设备24~远程设备31的远程操作子任务17执行成功,则为远程设备24~远程设备31生成远程操作子任务18,然后将远程操作子任务18添加至子任务队列,得到子任务队列Q6。
至此,完成了对所有远程操作子任务A的一轮调度。
2、远程操作子任务B的执行顺序为2,对远程操作子任务B进行调度,远程操作子任务B的执行策略为遇错向下执行。
D7,将远程操作子任务2发送给远程设备2~远程设备3各自对应的第一设备,以完成对远程操作子任务2的调度。针对远程设备2~远程设备3的远程操作子任务2执行成功,则为远程设备2~远程设备3生成远程操作子任务3,然后将远程操作子任务3添加至子任务队列,得到子任务队列Q7。
D8,将远程操作子任务6发送给远程设备4~远程设备10各自对应的第一设备,以完成对远程操作子任务6的调度。针对远程设备4的远程操作子任务6执行失败,则为远程设备生成远程操作子任务7;针对远程设备5~远程设备10的远程操作子任务6执行成功,则为远程设备5~远程设备10生成远程操作子任务7,然后将远程操作子任务7添加至子任务队列,得到子任务队列Q8。
D9,将远程操作子任务10发送给远程设备11~远程设备15各自对应的第一设备,以完成对远程操作子任务10的调度。针对远程设备11~远程设备15的远程操作子任务10执行成功,则为远程设备11~远程设备15生成远程操作子任务11,然后将远程操作子任务11添加至子任务队列,得到子任务队列Q9。
D10,将远程操作子任务14发送给远程设备16~远程设备23各自对应的第一设备,以完成对远程操作子任务14的调度。针对远程设备16~远程设备23的远程操作子任务14执行成功,则为远程设备16~远程设备23生成远程操作子任务15,然后将远程操作子任务15添加至子任务队列,得到子任务队列Q10。
D11,将远程操作子任务18发送给远程设备24~远程设备31各自对应的第一设备,以完成对远程操作子任务18的调度。针对远程设备24~远程设备31的远程操作子任务18执行成功,则为远程设备24~远程设备31生成远程操作子任务19,然后将远程操作子任务19添加至子任务队列,得到子任务队列Q11。
至此,完成了对所有远程操作子任务B的一轮调度。
3、远程操作子任务C的执行顺序为3,对操作子任务C进行调度,远程操作子任务C的执行策略为遇错循环执行。
D12,将远程操作子任务3发送给远程设备2~远程设备3各自对应的第一设备,以完成对远程操作子任务3的调度。针对远程设备2~远程设备3的远程操作子任务2执行成功,则为远程设备2~远程设备3生成远程操作子任务4,然后将远程操作子任务4添加至子任务队列,得到子任务队列Q12。
D13,将远程操作子任务7发送给远程设备4~远程设备10各自对应的第一设备,以完成对远程操作子任务7的调度。针对远程设备4~远程设备10的远程操作子任务7执行成功,则为远程设备4~远程设备10生成远程操作子任务8,然后将远程操作子任务8添加至子任务队列,得到子任务队列Q13。
D14,将远程操作子任务11发送给远程设备11~远程设备15各自对应的第一设备,以完成对远程操作子任务11的调度。针对远程设备11的远程操作子任务11执行失败,则为远程设备11重新生成远程操作子任务11,并将远程操作子任务11重新添加至子任务队列,针对远程设备12~远程设备15的远程操作子任务11执行成功,则为远程设备12~远程设备15生成远程操作子任务12,然后将远程操作子任务12添加至子任务队列,得到子任务队列Q14。
D15,将远程操作子任务15发送给远程设备16~远程设备23各自对应的第一设备,以完成对远程操作子任务15的调度。针对远程设备16~远程设备23的远程操作子任务15执行成功,则为远程设备16~远程设备23生成远程操作子任务16,然后将远程操作子任务16添加至子任务队列,得到子任务队列Q16。
D16,将远程操作子任务19发送给远程设备24~远程设备31各自对应的第一设备,以完成对远程操作子任务19的调度。针对远程设备24~远程设备31的远程操作子任务19执行成功,则为远程设备24~远程设备31生成远程操作子任务20,然后将远程操作子任务20添加至子任务队列,得到子任务队列Q16。
至此,完成了所有远程操作子任务B的一轮调度。
4、远程操作子任务D的执行顺序为4,对远程操作子任务D进行调度,远程操作子任务D的执行策略为遇错停止执行。
D17,将远程操作子任务4发送给远程设备2~远程设备3各自对应的第一设备,以完成对远程操作子任务4的调度。针对远程设备2~远程设备3的远程操作子任务4执行成功,则为远程设备2~远程设备3分别生成结果2和结果3,结果2和结果3分别用于指示针对远程设备2和远程设备3的远程操作任务1执行成功。远程操作子任务4调度后得到子任务队列Q17。
D18,将远程操作子任务8发送给远程设备4~远程设备10各自对应的第一设备,以完成对远程操作子任务8的调度。针对远程设备4~远程设备10的远程操作子任务8执行成功,则为远程设备4~远程设备10分别生成结果4~结果10,结果4~结果10各自用于指示针对远程设备4~远程设备10的远程操作任务2执行成功。远程操作子任务8调度后得到子任务队列Q18。
D19,将远程操作子任务11发送给远程设备11对应的第一设备,以完成对远程操作子任务11的调度。针对远程设备11的远程操作子任务11执行成功,则为远程设备11生成远程操作子任务12,然后将远程操作子任务12添加至子任务队列,得到子任务队列Q19。
D20,将远程操作子任务12发送给远程设备12~远程设备15各自对应的第一设备,以完成对远程操作子任务12的调度,针对远程设备12~远程设备15的远程操作子任务12执行成功,则为远程设备12~远程设备15分别生成结果12~结果15,结果12~结果15各自用于指示针对远程设备12~远程设备15的远程操作任务3执行成功。远程操作子任务12调度后得到子任务队列Q20。
D21,将远程操作子任务16发送给远程设备16~远程设备23各自对应的第一设备,以完成对远程操作子任务16的调度。针对远程设备16的远程操作子任务执行失败,则生成结果16,结果16用于针对远程设备16的远程操作任务4执行失败;针对远程设备17~远程设备23的远程操作子任务15执行成功,则为远程设备17~远程设备23分别生成结果17~结果23,结果17~结果23各自用于指示针对远程设备17~远程设备23的远程操作任务4执行成功。远程操作子任务16调度后得到子任务队列Q21。
D22,将远程操作子任务20发送给远程设备24~远程设备31各自对应的第一设备,以完成对远程操作子任务20的调度。针对远程设备24~远程设备31的远程操作子任务20执行成功,则为远程设备24~远程设备31分别生成结果24~结果31,结果24~结果31各自用于指示针对远程设备24~远程设备31的远程操作任务4执行成功。远程操作子任务20调度后得到子任务队列Q22。
D23,将远程操作子任务12发送给远程设备11对应的第一设备,以完成对远程操作子任务12的调度,针对远程设备11的远程操作子任务12执行成功,则为远程设备11生成结果11,结果11各自用于指示针对远程设备12~远程设备15的远程操作任务3执行成功。
图10A-图10B所示的调度过程通过多次任务调度,完成了对多个批量远程操作任务的调度和执行。
结合图9、图10A以及图10B可知,第三设备通过将远程操作任务进行划分,得到远程操作子任务,结合远程操作子任务的属性、执行顺序以及执行策略,对远程操作子任务进行并发调度,省去人工执行远程操作任务,节省人力资源;另外,对远操作程子任务的并发调度可实现同时执行多个远程操作任务,提高了远程操作的效率。在远程操作任务为远程调测任务的情况下,提高了远程调测的效率。由于根据不同的策略进行调度,使得远程操作子任务之间相互独立,进而可以保证任务的正常执行。
上述对本申请实施例的方法进行了介绍,接下来对本申请实施例的装置。
参见图11,图11是本申请实施例提供的一种远程操作设备的装置的结构示意图,该装置可以实现在前述图1所示的本地设备102或图2所示的本地设备200上,如图11所示,该装置1000包括图像解析引擎1001、界面交互引擎1002,其中:
图像解析引擎1001,用于在第一远程界面的图像中确定与模板图像匹配的第一图像区域,为装置1000通过远程连接获取到的第二设备的界面,第一远程界面为第一远程操作对应的远程界面,模板图像包括第一操作对象的界面元素,第一操作对象为第一远程操作的操作对象;
图像解析引擎1001,还用于根据第一图像区域在第一远程界面的图像中的位置,确定第一操作对象在第一远程界面中的位置;
界面交互引擎1002,用于根据第一操作对象在所述第一远程界面中的位置,在第一远程界面中执行对第二设备的第一远程操作。
这里,关于第一远程界面、模板图像、第一远程操作、第一操作对象的有关说明,可参考前述方法实施例的描述,在此不再赘述。
图像解析引擎1001可用于执行图5所示方法实施例中的步骤S501~S502或图8所示方法实施例中的步骤S803,界面交互引擎1002可用于执行图5所示方法实施例中的步骤S503或图8所示方法实施例中的步骤802,具体可参考图5所示方法实施例或图8所示方法实施例的描述,在此不再赘述。
可选地,该装置1000还可包括执行状态识别引擎1003。其中:
执行状态识别引擎1003,用于根据第二远程界面的图像,确定第一远程操作的执行状态,第二远程界面为装置1000通过远程连接获取到的第二设备的界面,第二远程界面用于指示第一远程操作的执行结果。
这里,关于第二远程界面的有关说明,可参考前述方法实施例的描述,在此不再赘述。
执行状态识别引擎1003可用于执行图8所示方法实施例中的步骤S801和步骤S804,具体可参考图8所示方法实施例的描述,在此不再赘述。
参见图12,图12是本申请实施例提供的另一种远程操作设备的装置的结构示意图,该装置可以实现在前述图1所示的本地管理设备103或图3所示的本地管理设备200上,如图12所示,该装置1100包括任务划分模块1101、任务调度模块1102以及发送模块1103。其中:
任务划分模块1101,用于对获取到的至少一个远程操作任务进行划分,以得到多个远程操作子任务;
任务调度模块1102,用于根据多个远程操作子任务的属性和执行顺序,将至少一个远程操作子任务添加至子任务队列;
发送模块1103,用于依次将子任务队列中的远程操作子任务,发送给处于空闲状态的至少一个第一设备;
任务调度模块1102,还用于根据至少一个第一设备发送的至少一个子任务执行结果和子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度。
这里,关于远程操作任务、远程操作子任务、远程操作子任务的执行策略的有关说明,可参考前述方法实施例的描述,在此不再赘述。
任务划分模块1101可用于执行图9所示方法实施例中的步骤S901,任务调度模块1102可用于执行图9所示方法实施例中的步骤S902和S904,发送模块1103可用于执行图9所示方法实施例中的步骤S903,具体可参考图9所示方法实施例的描述,在此不再赘述。
以上模块的任一个可以软件、硬件或二者结合来实现。当以上任一模块以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令以实现以上方法流程。所述处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,CPU)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个SoC(片上系统),或者也可以作为一个ASIC的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。该处理器除了包括用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmablegate array,FPGA)、PLD(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。当以上模块或单元以硬件实现的时候,该硬件可以是CPU、微处理器、DSP、MCU、人工智能处理器、ASIC、SoC、FPGA、PLD、专用数字电路、硬件加速器或非集成的分立器件中的任一个或任一组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是半导体介质(例如SSD)等。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需说明,本申请实施例所涉及的第一、第二、第三以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (29)

1.一种远程操作设备的方法,其特征在于,包括:
第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,所述第一远程界面为所述第一设备通过远程连接获取到的第二设备的界面,所述第一远程界面为所述第一远程操作对应的远程界面,所述模板图像包括第一操作对象的界面元素,所述第一操作对象为所述第一远程操作的操作对象;
所述第一设备根据所述第一图像区域在所述第一远程界面的图像中的位置,确定所述第一操作对象在所述第一远程界面中的位置;
所述第一设备根据所述第一操作对象在所述第一远程界面中的位置,在所述第一远程界面中执行对所述第二设备的第一远程操作。
2.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第一图像区域在所述第一远程界面的图像中的位置,确定所述第一操作对象在所述第一远程界面中的位置,包括:
在所述第一图像区域与所述模板图像的匹配度大于或等于匹配度阈值的情况下,所述第一设备将所述第一图像区域在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置;或者
在所述第一图像区域与所述模板图像的匹配度小于所述匹配度阈值的情况下,所述第一设备识别所述第一图像区域中存在的至少一个字符串,并将所述至少一个字符串中的第一字符串在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置,所述第一字符串与模板字符串的相似度大于相似度阈值。
3.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第一图像区域在所述第一远程界面的图像中的位置,确定所述第一操作对象在所述第一远程界面中的位置,包括:
所述第一设备基于卷积神经网络的识别模型对所述第一图像区域进行识别,以确定所述第一图像区域中的操作对象的类型;
在确定所述第一图像区域中的操作对象为界面元素固定的操作对象的情况下,所述第一设备将所述第一图像区域在所述第一图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置;或者
在确定所述第一图像区域中的操作对象为界面元素动态变化的操作对象的情况下,所述第一设备识别所述第一图像区域中存在的至少一个字符串,并将所述至少一个字符串中的第一字符串在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置,所述第一字符串与模板字符串的相似度大于相似度阈值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,包括:
所述第一设备将所述模板图像与所述第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,所述至少一个图像区域各自与所述模板图像的匹配度,每个图像区域的尺寸与所述模板图像的尺寸相同;
所述第一设备将所述至少一个图像区域中与所述模板图像的匹配度最大的图像区域,确定为所述第一图像区域。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域,包括:
所述第一设备调整所述模板图像的尺寸,以得到所述模板图像对应的M个模板变换图像,所述M个模板变换图像的尺寸各不相同,M为大于1的正整数;
所述第一设备分别将所述M个模板变换图像与所述第一远程界面的图像进行遍历图像匹配,以得到所述模板图像对应的M个第二图像区域,以及,所述M个第二图像区域各自与所述模板图像的匹配度;其中,所述M个第二图像区域中的第i个第二图像区域对应所述M个模板变换图像中的第i模板变换图像,所述第i个第二图像区域为第i图像区域集合中与所述第i模板变换图像的匹配度最大的图像区域,所述第i图像区域集合包括至少一个尺寸与所述第i模板变换图像的尺寸相同的图像区域,所述第i个第二图像区域与所述模板图像的匹配度为所述第i个第二图像区域与所述第i模板变换图像的匹配度,i为大于或等于1,且小于或等于M的正整数;
所述第一设备将所述M个第二图像区域中与所述模板图像的匹配度最大的第二图像区域,确定为所述第一图像区域。
6.根据权利要求4或5所述的方法,其特征在于,所述第一设备在第一远程界面的图像中确定与模板图像匹配的第一图像区域之前,还包括:
所述第一设备对所述第一远程界面的图像进行压缩处理,或,所述第一设备分别对所述模板图像和所述第一远程界面的图像进行压缩处理。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一设备根据所述第一操作对象在所述第一远程界面中的位置,在所述第一远程界面中执行对所述第二设备的第一远程操作之后,还包括:
所述第一设备根据第二远程界面的图像,确定所述第一远程操作的执行状态,所述第二远程界面为所述第一设备通过所述远程连接获取到的所述第二设备的界面,所述第二远程界面用于指示所述第一远程操作的执行结果。
8.根据权利要求7所述的方法,其特征在于,所述第一设备根据第二远程界面的图像,确定所述第一远程操作的执行状态之后,还包括:
在所述第一远程操作的执行状态为执行异常的情况下,所述第一设备执行所述第一远程操作对应的异常处理操作;或者
在所述第一远程操作的执行状态为执行等待的情况下,所述第一设备执行所述根据第二远程界面的图像,确定所述第一远程操作的执行状态的步骤。
9.根据权利要求7所述的方法,其特征在于,所述第一远程操作为第一远程操作子任务中的远程操作;
所述第一设备根据第二远程界面的图像,确定所述第一远程操作的执行状态之后,还包括:
在所述第一远程操作的执行状态为执行成功,并且,所述第一远程操作不为所述第一远程操作子任务中的最后一个远程操作的情况下,所述第一设备通过所述远程连接获取第三远程界面,所述第三远程界面为第二远程操作对应的远程界面,所述第二远程操作为所述第一远程操作子任务中的所述第一远程操作的下一个远程操作;或者
在所述第一远程操作的执行状态为执行成功,并且,所述第一远程操作为所述第一远程操作子任务中的最后一个远程操作的情况下,所述第一设备向第三设备发送第一子任务执行结果,所述第一子任务执行结果用于指示所述第一远程操作子任务执行成功,所述第一子任务执行结果被第三设备用于进行操作子任务调度。
10.一种远程操作设备的方法,其特征在于,包括:
第三设备对获取到的至少一个远程操作任务进行划分,以得到多个远程操作子任务;
所述第三设备根据所述多个远程操作子任务的属性和执行顺序,将至少一个远程操作子任务添加至子任务队列;
所述第三设备依次将所述子任务队列中的远程操作子任务,发送给处于空闲状态的至少一个第一设备;
所述第三设备根据所述至少一个第一设备发送的至少一个子任务执行结果和所述子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度。
11.根据权利要求10所述的方法,其特征在于,所述第三设备根据所述至少一个第一设备发送的至少一个子任务执行结果和所述子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度,包括:
在所述至少一个子任务执行结果中存在第二子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错停止执行,所述第三设备停止为第二设备生成第二远程操作子任务,并生成第一操作结果,所述第二子任务执行结果用于指示所述第一远程操作子任务执行失败,所述第一远程操作子任务属于所述第一远程操作任务,所述第一远程操作子任务为针对所述第二设备的远程操作子任务,所述第二远程操作子任务为所述第一远程操作任务中的所述第一远程操作子任务的下一个远程操作子任务,所述第一操作结果用于指示针对所述第二设备的第一远程操作任务执行失败;或者
在所述至少一个子任务执行结果中存在所述第二子任务执行结果,并且,所述第一远程操作子任务不为所述第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错向下执行,所述第三设备为所述第二设备生成所述第二远程操作子任务,并将所述第二远程操作子任务添加至所述子任务队列;或者
在所述至少一个子任务执行结果中存在所述第二子任务执行结果,并且,所述第一远程操作子任务不为所述第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错循环执行,所述第三设备将所述第一远程操作子任务重新添加至所述子任务队列。
12.根据权利要求10或11所述的方法,其特征在于,所述第三设备根据所述至少一个第一设备发送的至少一个子任务执行结果和所述子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度,还包括:
在所述至少一个操作结果中存在第一子任务执行结果,并且,所述第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,所述第三设备为所述第二设备生成所述第二远程操作子任务,并将所述第二操作子任务添加至所述子任务队列,所述第一子任务执行结果用于指示所述第一远程操作子任务执行成功,所述第一远程操作子任务属于所述第一远程操作任务,所述第一远程操作子任务为针对所述第二设备的远程操作子任务;或者
在所述至少一个操作结果中存在第一子任务执行结果,并且,所述第一远程操作子任务为所述第一远程操作任务中的最后一个远程操作子任务的情况下,所述第三设备生成第二操作结果,所述第二操作结果用于指示所述针对所述第二设备的第一远程操作任务执行成功。
13.一种远程操作设备的装置,其特征在于,包括:
图像解析引擎,用于在第一远程界面的图像中确定与模板图像匹配的第一图像区域,所述第一远程界面为所述装置通过远程连接获取到的第二设备的界面,所述第一远程界面为所述第一远程操作对应的远程界面,所述模板图像包括第一操作对象的界面元素,所述第一操作对象为所述第一远程操作的操作对象;
所述图像解析引擎,还用于根据所述第一图像区域在所述第一远程界面的图像中的位置,确定所述第一操作对象在所述第一远程界面中的位置;
界面交互引擎,用于根据所述第一操作对象在所述第一远程界面中的位置,在所述第一远程界面中执行对所述第二设备的第一远程操作。
14.根据权利要求13所述的装置,其特征在于,所述图像解析引擎具体用于:
在所述第一图像区域与所述模板图像的匹配度大于或等于匹配度阈值的情况下,将所述第一图像区域在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置;或者
在所述第一图像区域与所述模板图像的匹配度小于所述匹配度阈值的情况下,识别所述第一图像区域中存在的至少一个字符串,并将所述至少一个字符串中的第一字符串在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置,所述第一字符串与模板字符串的相似度大于相似度阈值。
15.根据权利要求13所述的装置,其特征在于,所述图像解析引擎具体用于:
基于卷积神经网络的识别模型对所述第一图像区域进行识别,以确定所述第一图像区域中的操作对象的类型;
在确定所述第一图像区域中的操作对象为界面元素固定的操作对象的情况下,将所述第一图像区域在所述第一图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置;或者
在确定所述第一图像区域中的操作对象为界面元素动态变化的操作对象的情况下,识别所述第一图像区域中存在的至少一个字符串,并将所述至少一个字符串中的第一字符串在所述第一远程界面的图像中的位置,确定为所述第一操作对象在所述第一远程界面中的位置,所述第一字符串与模板字符串的相似度大于相似度阈值。
16.根据权利要求13-15任一项所述的装置,其特征在于,所述图像解析引擎具体用于:
将所述模板图像与所述第一远程界面的图像进行遍历图像匹配,以得到至少一个图像区域,以及,所述至少一个图像区域各自与所述模板图像的匹配度,每个图像区域的尺寸与所述模板图像的尺寸相同;
将所述至少一个图像区域中与所述模板图像的匹配度最大的图像区域,确定为所述第一图像区域。
17.根据权利要求13-15任一项所述的装置,其特征在于,所述图像解析引擎具体用于:
调整所述模板图像的尺寸,以得到所述模板图像对应的M个模板变换图像,所述M个模板变换图像的尺寸各不相同,M为大于1的正整数;
分别将所述M个模板变换图像与所述第一远程界面的图像进行遍历图像匹配,以得到所述模板图像对应的M个第二图像区域,以及,所述M个第二图像区域各自与所述模板图像的匹配度;其中,所述M个第二图像区域中的第i个第二图像区域对应所述M个模板变换图像中的第i模板变换图像,所述第i个第二图像区域为第i图像区域集合中与所述第i模板变换图像的匹配度最大的图像区域,所述第i图像区域集合包括至少一个尺寸与所述第i模板变换图像的尺寸相同的图像区域,所述第i个第二图像区域与所述模板图像的匹配度为所述第i个第二图像区域与所述第i模板变换图像的匹配度,i为大于或等于1,且小于或等于M的正整数;
将所述M个第二图像区域中与所述模板图像的匹配度最大的第二图像区域确定为所述第一图像区域。
18.根据权利要求16或17所述的装置,所述图像解析引擎还用于:
对所述第一图像进行压缩处理,或,分别对所述模板图像和所述第一图像进行压缩处理。
19.根据权利要求13-18任一项所述的装置,其特征在于,所述装置还包括:
执行状态识别引擎,用于根据第二远程界面的图像,确定所述第一远程操作的执行状态,所述第二远程界面为所述第一设备通过所述远程连接获取到的所述第二设备的界面,所述第二远程界面用于指示所述第一远程操作的执行结果。
20.根据权利要求19所述的装置,其特征在于,
所述界面交互引擎还用于在所述第一远程操作的执行状态为执行异常的情况下,执行所述第一远程操作对应的异常处理操作;或者
所述执行状态识别引擎还用于在所述第一远程操作的执行状态为执行等待的情况下,执行所述根据第二远程界面的图像,确定所述第一远程操作的执行状态的步骤。
21.根据权利要求19所述的装置,其特征在于,所述第一远程操作为第一远程操作子任务中的远程操作;
所述图像解析引擎还用于在执行所述第一远程操作的结果为执行成功,并且,所述第一远程操作不为所述第一远程操作子任务中的最后一个远程操作的情况下,通过所述远程连接获取第三远程界面,所述第三远程界面为第二远程操作对应的远程界面,所述第二远程操作为所述第一远程操作子任务中的所述第一远程操作的下一个远程操作;或者
所述执行状态识别引擎还用于在执行所述第一远程操作的结果为执行成功,并且,所述第一远程操作为所述第一远程操作子任务中的最后一个远程操作的情况下,向第三设备发送第一子任务执行结果,所述第一子任务执行结果用于指示所述第一远程操作子任务执行成功,所述第一子任务执行结果被第三设备用于进行操作子任务调度。
22.一种远程操作设备的装置,其特征在于,包括:
任务划分模块,用于对获取到的至少一个远程操作任务进行划分,以得到多个远程操作子任务;
任务调度模块,用于根据所述多个远程操作子任务的属性和执行顺序,将至少一个远程操作子任务添加至子任务队列;
发送模块,用于依次将所述子任务队列中的远程操作子任务,发送给处于空闲状态的至少一个第一设备;
所述任务调度模块,还用于根据所述至少一个第一设备发送的至少一个子任务执行结果和所述子任务队列中的远程操作子任务的执行策略,进行远程操作子任务调度。
23.根据权利要求22所述的装置,其特征在于,所述任务调度模块具体用于:
在所述至少一个操作结果中存在第二子任务执行结果,并且,第一远程操作子任务不为第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错停止执行,停止为第二设备生成第二远程操作子任务,并生成第一操作结果,所述第二子任务执行结果用于指示所述第一远程操作子任务执行失败,所述第一远程操作子任务属于所述第一远程操作任务,所述第一远程操作子任务为针对所述第二设备的远程操作子任务,所述第二远程操作子任务为所述第一远程操作任务中的所述第一远程操作子任务的下一个远程操作子任务,所述第一操作结果用于指示针对所述第二设备的第一远程操作任务执行失败;或者
在所述至少一个操作结果中存在所述第二子任务执行结果,并且,所述第一远程操作子任务不为所述第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错向下执行,为所述第二设备生成所述第二远程操作子任务,并将所述第二远程操作子任务添加至所述子任务队列;或者
在所述至少一个操作结果中存在所述第二子任务执行结果,并且,所述第一远程操作子任务不为所述第一远程操作任务中的最后一个远程操作子任务的情况下,如果所述第一远程操作子任务的执行策略为遇错循环执行,将所述第一远程操作子任务重新添加至所述子任务队列。
24.根据权利要求23所述的装置,其特征在于,所述任务调度模块具体用于:
在所述至少一个操作结果中存在第一子任务执行结果,并且,所述第一远程操作子任务不为所述第一远程操作任务中的最后一个远程操作子任务的情况下,为所述第二设备生成所述第二远程操作子任务,并将所述第二操作子任务添加至所述子任务队列,所述第一子任务执行结果用于指示所述第一远程操作子任务执行成功,所述第一远程操作子任务属于所述第一远程操作任务,所述第一远程操作子任务为针对所述第二设备的远程操作子任务;
在所述至少一个操作结果中存在第一子任务执行结果,并且,所述第一远程操作子任务为所述第一远程操作任务中的最后一个远程操作子任务的情况下,生成第二操作结果,所述第二操作结果用于指示所述针对所述第二设备的第一远程操作任务执行成功。
25.一种设备,其特征在于,包括存储器以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述存储器中的一个或多个计算机程序,其中,所述一个或多个程序被存储在所述存储器中;所述一个或多个处理器在执行所述一个或多个程序时,使得所述设备实现如权利要求1-9任一项所述的方法。
26.一种设备,其特征在于,包括存储器以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述存储器中的一个或多个计算机程序,其中,所述一个或多个程序被存储在所述存储器中;所述一个或多个处理器在执行所述一个或多个程序时,使得所述设备实现如权利要求10-12任一项所述的方法。
27.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如权利要求1-9任一项所述的方法。
28.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如权利要求10-12任一项所述的方法。
29.一种通信系统,其特征在于,包括第一设备和第三设备,所述第一设备包括如权利要求13-21任一项所述的装置,所述第三设备包括如权利要求22-24任一项所述的装置。
CN201910255734.7A 2019-03-30 2019-03-30 远程操作设备的方法和相关装置 Active CN110046658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910255734.7A CN110046658B (zh) 2019-03-30 2019-03-30 远程操作设备的方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910255734.7A CN110046658B (zh) 2019-03-30 2019-03-30 远程操作设备的方法和相关装置

Publications (2)

Publication Number Publication Date
CN110046658A true CN110046658A (zh) 2019-07-23
CN110046658B CN110046658B (zh) 2021-08-20

Family

ID=67275771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910255734.7A Active CN110046658B (zh) 2019-03-30 2019-03-30 远程操作设备的方法和相关装置

Country Status (1)

Country Link
CN (1) CN110046658B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489907A (zh) * 2022-01-29 2022-05-13 国泰新点软件股份有限公司 系统操作引导方法、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065676B1 (en) * 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
CN104735138A (zh) * 2015-03-09 2015-06-24 中国科学院计算技术研究所 一种面向用户生成内容的分布式采集方法与系统
CN104951393A (zh) * 2014-03-25 2015-09-30 中国电信股份有限公司 测试方法和测试装置
CN105978892A (zh) * 2016-06-27 2016-09-28 浪潮(苏州)金融技术服务有限公司 一种多元化区域开关远程控制方式
CN106569887A (zh) * 2016-11-04 2017-04-19 东南大学 一种云环境下细粒度任务调度方法
CN107148012A (zh) * 2017-04-27 2017-09-08 努比亚技术有限公司 一种终端间的远程协助方法及其系统
CN108304239A (zh) * 2018-01-26 2018-07-20 杨立群 用于远程操作的快速界面交互方法及装置
CN109871249A (zh) * 2019-01-14 2019-06-11 平安科技(深圳)有限公司 一种远程桌面操作方法、装置、可读存储介质及终端设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065676B1 (en) * 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
CN104951393A (zh) * 2014-03-25 2015-09-30 中国电信股份有限公司 测试方法和测试装置
CN104735138A (zh) * 2015-03-09 2015-06-24 中国科学院计算技术研究所 一种面向用户生成内容的分布式采集方法与系统
CN105978892A (zh) * 2016-06-27 2016-09-28 浪潮(苏州)金融技术服务有限公司 一种多元化区域开关远程控制方式
CN106569887A (zh) * 2016-11-04 2017-04-19 东南大学 一种云环境下细粒度任务调度方法
CN107148012A (zh) * 2017-04-27 2017-09-08 努比亚技术有限公司 一种终端间的远程协助方法及其系统
CN108304239A (zh) * 2018-01-26 2018-07-20 杨立群 用于远程操作的快速界面交互方法及装置
CN109871249A (zh) * 2019-01-14 2019-06-11 平安科技(深圳)有限公司 一种远程桌面操作方法、装置、可读存储介质及终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489907A (zh) * 2022-01-29 2022-05-13 国泰新点软件股份有限公司 系统操作引导方法、设备及存储介质
CN114489907B (zh) * 2022-01-29 2024-03-12 国泰新点软件股份有限公司 系统操作引导方法、设备及存储介质

Also Published As

Publication number Publication date
CN110046658B (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
US10169084B2 (en) Deep learning via dynamic root solvers
US8462369B2 (en) Hybrid image processing system for a single field of view having a plurality of inspection threads
KR20180004898A (ko) 딥러닝 기반의 이미지 처리 기술 및 그 방법
CN109360646B (zh) 基于人工智能的病理辅助诊断系统
CN104216783A (zh) 云游戏中虚拟gpu资源自主管理与控制方法
CA2386272A1 (en) Collaborative design
CN109034206A (zh) 图像分类识别方法、装置、电子设备及计算机可读介质
JP2022553252A (ja) 画像処理方法、画像処理装置、サーバ、及びコンピュータプログラム
WO2023093724A1 (zh) 神经网络模型的处理方法及装置
CN111966361B (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
WO2022213761A1 (zh) 一种图像处理方法、装置、电子设备和存储介质
CN114626293A (zh) 预测碰撞仿真结果的方法、装置、设备及存储介质
WO2021138939A1 (zh) 一种云脑机器人系统
CN110046658A (zh) 远程操作设备的方法和相关装置
Kalyanam et al. A distributed framework for real time object detection at low frame rates with iot edge nodes
CN110991279B (zh) 文档图像分析与识别方法及系统
CN113537267A (zh) 对抗样本的生成方法和装置、存储介质及电子设备
WO2022127603A1 (zh) 一种模型处理方法及相关装置
US20220383073A1 (en) Domain adaptation using domain-adversarial learning in synthetic data systems and applications
CN109800707A (zh) 一种基于cnn模型的人脸识别方法、装置及存储介质
Ayrapetov et al. Analysis of Work of YOLO v. 3 AND YOLO v. 2 Neural Networks
WO2021077284A1 (zh) 神经网络运行系统和方法
Nicolau et al. On Image Compression for Mobile Robots Using Feed-Forward Neural Networks
CN117409486B (zh) 基于视觉的动作生成方法、装置、电子设备及存储介质
CN111709467A (zh) 一种基于机器视觉的产品与云端数据匹配系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant