一种自动化测试ai场景识别准确率的方法
技术领域:
:1.本发明涉及ai场景的测试技术,具体涉及一种自动化测试ai场景识别准确率的方法。
背景技术:
::2.随着人工智能的发展,在传统的tv视听领域,接入了ai场景识别算法,让用户在观看视频节目时,可以智能识别当前的播放场景,自动的切换到适合观看的图像模式和声音模式,期望达到更好的视听效果,提高用户的体验。此时识别的准确率就显得尤为重要,直接决定了该技术的引入对于用户体验的影响。3.目前针对场景识别的测试,采用人工测试,具体方案是通过人工寻找多部各类型的片源,如电影,电视剧,综艺,少儿等,然后点击进行播放,并观察场景识别的结果,以此来判断识别正确或者错误。要想得到准确的测试结果,每轮都需要针对每种场景找数百部片源来进行测试,人力耗费大,测试效率低下,而且场景覆盖率也无法得到保证。技术实现要素:4.本发明所要解决的技术问题是:提出一种自动化测试ai场景识别准确率的方法,解决传统技术中测试ai场景识别率的方案存在的耗费大量人力、测试效率低、场景覆盖率低的问题。5.本发明解决上述技术问题采用的技术方案是:6.一种自动化测试ai场景识别准确率的方法,应用于执行测试的电脑中,该方法包括:通过adb连接用于执行测试的电脑与被测试的电视机,初始化测试数据后自动化执行以下步骤:7.s1、访问媒资库,获取相应片源类型下的设定个数的影片信息,转储至数据库;8.s2、通过访问数据库,读取转储的影片信息,生成牌照方视频起播的命令用例;9.s3、发送起播的命令用例到电视机,执行视频播放;10.s4、读取电视播放日志,判断起播是否成功,若是,则进入步骤s5,否则,记录当前片源类型视频播放失败+1,进入步骤s6;11.s5、读取电视场景识别算法记录的场景片源日志,判断场景识别是否正确,若正确,则记录当前片源类型场景识别正确次数+1,进入步骤s6,否则,记录当前片源类型场景识别错误次数+1,进入步骤s6;12.s6、判断当前视频是否为该类型最后一个视频,若是,则存储播放记录结果和识别结果到测试结果文件,进入步骤s7,否则返回步骤s2;13.s7、判断所有类型的片源是否测试完成,若是,则输出测试结果文件,结束流程;否则,返回步骤s1。14.进一步的,所述初始化测试数据包括:设置待测试的片源类型、每个类型片源的测试数量以及测试过程中的超时时长。15.进一步的,步骤s1中,所述访问媒资库具体包括:通过pymongo模块访问媒资库mongodb。16.进一步的,步骤s1中,所述获取相应片源类型下的设定个数的影片信息具体包括:从设置的待测试的片源类型中选择一种片源类型,从媒资库中获取该片源类型下的设置的测试数量的影片信息。17.进一步的,步骤s1中,所述转储至数据库具体包括:使用sqlite3模块将获取的影片信息转储至sqlite的media_info表格中。18.进一步的,步骤s2中,所述通过访问数据库,读取转储的影片信息,生成牌照方视频起播的命令用例,具体包括:19.从sqlite中查询出视频起播需要的cover_id、video_id和对应的牌照方playtype,并组合成可执行的终端应用起播命令。20.进一步的,步骤s3中,所述发送起播的命令用例到电视机具体包括:通过python的os模块(操作系统接口模块),发送起播的命令用例到电视机。21.进一步的,步骤s4中,所述读取电视播放日志具体包括:通过python的subprocess模块读取电视播放日志。22.进一步的,步骤s4中,读取电视播放日志,若判断起播失败,且达到初始化测试数据中设置的超时时长,仍然无法正常起播,则记录当前片源类型视频播放失败+1。23.进一步的,步骤s5中,所述判断场景识别是否正确具体包括:判断电视场景识别算法记录的场景片源日志中的当前视频的场景类型是否与当前测试的片源类型一致,若一致,则判定场景识别正确,否则判定场景识别错误。24.本发明的有益效果是:25.本发明从数据库自动化获取各类型的测试片源,生成并运行从主流网络视频app起播各类型的在线影片的脚本,对比场景识别结果日志来判断识别的结果,可以无人值守的完成ai场景识别准确率的测试,极大的提升了测试效率与测试基数,减少了测试人力和时间成本,缩短测试周期,加快了产品上市。也可以在用户使用中,实时获取最新的热门片源来做日常跟踪校验,提前发现并解决潜在问题。附图说明26.图1为本发明实施例中的自动化测试ai场景识别准确率的方法流程图。具体实施方式27.本发明旨在提出一种自动化测试ai场景识别准确率的方法,解决传统技术中测试ai场景识别率的方案存在的耗费大量人力、测试效率低、场景覆盖率低的问题。28.该方案首先初始化参数设置,如待测试的片源类型,每个类型片源的测试数量,以及测试过程中的超时时长,然后自动化执行测试过程,主要包括:29.步骤1、读取初始化设置的片源类型和数量,通过pymongo模块访问媒资mongodb,获取实时电影/电视剧/综艺/少儿类型的影片信息,使用sqlite3(数据库访问模块)模块转储至sqlite(嵌入式关系数据库)的media_info(媒体信息)表格中。30.步骤2、访问步骤1转储的数据,读取其中的的片源数据,包括cover_id和video_id,以及对应的牌照方,并组合生成终端可以直接执行的命令。31.步骤3、通过python的os模块(操作系统接口模块),发送步骤2生成的adb命令到电视,播放视频。32.步骤4、通过python的subprocess模块(系统命令执行模块)读取日志,判断是否起播成功,若超时后还是起播失败,则记录起播失败+1。33.步骤5、通过python的subprocess模块读取日志,判断场景识别结果,对比步骤2筛选出来的片源类型,一致则场景识别成功+1,不一致或超时未获取到,则场景识别失败+1。34.步骤6、重复步骤2到步骤5,直到当前类型下所有片源测试结束,则记录测试结果到结果文件。35.步骤7、重复步骤1到步骤6,直到所有预设的类型都测试结束,完成测试。36.实施例:37.以下结合附图1的技术实现流程,对本发明的上述方案进行详细的说明,本实施例使用python语言开发测试脚本。38.在测试之前,需要通过adb连接执行的电脑与被测试的电视。39.步骤1、设置初始化数据,包括待测试的片源类型types(eg:movie/tv/variety/cartoon……),每种片源测试次数times(eg:200次),超时的时长time(eg:20秒)。40.步骤2、通过pymongo模块访问媒资的mongodb,根据步骤1设置的types和times,从数据库中查找对应的资源,如查找200部movie,db.getcollection('tables').find({"model":"movie"}).limit(200),并使用sqlite3模块转储至sqlite的media_info表格中。41.步骤3、从sqlite中查询出视频起播需要的cover_id,video_id和对应的牌照方playtype,可参考命令selectcover_id,video_id,playtypefrommedia_infowheremodel="movie",并组合成可执行的终端应用起播命令,如playtype==tencent,则指令为:adbshellamstartcom.ktcp.video-acom.tencent.qqlivetv.open-dtenvideo2://?action=7&cover_id="cover_id"&video_id="video_id"42.步骤4、通过python的os模块,执行步骤3生成的终端应用起播命令,如:os.system("adbcommand")43.步骤5、通过python的subprocess模块,查找日志中是否有新增的isplayingtrue,判断是否正确起播。如:subprocess.popen("cat/data/logcat.txt\"|grep'isplaybingtrue'\"",shell=true),如果到了步骤1设置的超时时长time,则记录起播失败,继续播放下一条视频。44.步骤6、起播成功后,使用第5步同样方法,获取场景识别算法打印记录的当前场景片源日志,与步骤3查询的类型“movie”是否一致,一致则pass+1,不一致或者达到超时时长未获取到日志,则fail+1。45.步骤7、重复步3到步骤6,直到当前片源类型的200个片源测试结束,记录pass和fail的测试结果到结果文件。46.步骤8、重复步骤2到步骤7,测试下一个片源类型的200个片源,直到所有片源类型测试结束。47.最后应当说明的是,上述实施例仅是优选实施方式,并不用以限制本发明。应当指出,对于本
技术领域:
:的普通技术人员来说,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以做出若干修改,等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
技术特征:1.一种自动化测试ai场景识别准确率的方法,应用于执行测试的电脑中,其特征在于,该方法包括:通过adb连接用于执行测试的电脑与被测试的电视机,初始化测试数据后自动化执行以下步骤:s1、访问媒资库,获取相应片源类型下的设定个数的影片信息,转储至数据库;s2、通过访问数据库,读取转储的影片信息,生成牌照方视频起播的命令用例;s3、发送起播的命令用例到电视机,执行视频播放;s4、读取电视播放日志,判断起播是否成功,若是,则进入步骤s5,否则,记录当前片源类型视频播放失败+1,进入步骤s6;s5、读取电视场景识别算法记录的场景片源日志,判断场景识别是否正确,若正确,则记录当前片源类型场景识别正确次数+1,进入步骤s6,否则,记录当前片源类型场景识别错误次数+1,进入步骤s6;s6、判断当前视频是否为该类型最后一个视频,若是,则存储播放记录结果和识别结果到测试结果文件,进入步骤s7,否则返回步骤s2;s7、判断所有类型的片源是否测试完成,若是,则输出测试结果文件,结束流程;否则,返回步骤s1。2.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,所述初始化测试数据包括:设置待测试的片源类型、每个类型片源的测试数量以及测试过程中的超时时长。3.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s1中,所述访问媒资库具体包括:通过pymongo模块访问媒资库mongodb。4.如权利要求2所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s1中,所述获取相应片源类型下的设定个数的影片信息具体包括:从设置的待测试的片源类型中选择一种片源类型,从媒资库中获取该片源类型下的设置的测试数量的影片信息。5.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s1中,所述转储至数据库具体包括:使用sqlite3模块将获取的影片信息转储至sqlite的media_info表格中。6.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s2中,所述通过访问数据库,读取转储的影片信息,生成牌照方视频起播的命令用例,具体包括:从sqlite中查询出视频起播需要的cover_id、video_id和对应的牌照方playtype,并组合成可执行的终端应用起播命令。7.如权利要求6所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s3中,所述发送起播的命令用例到电视机具体包括:通过python的os模块,发送起播的命令用例到电视机。8.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s4中,所述读取电视播放日志具体包括:通过python的subprocess模块读取电视播放日志。9.如权利要求1所述的一种自动化测试ai场景识别准确率的方法,其特征在于,
步骤s4中,读取电视播放日志,若判断起播失败,且达到初始化测试数据中设置的超时时长,仍然无法正常起播,则记录当前片源类型视频播放失败+1。10.如权利要求1-9任意一项所述的一种自动化测试ai场景识别准确率的方法,其特征在于,步骤s5中,所述判断场景识别是否正确具体包括:判断电视场景识别算法记录的场景片源日志中的当前视频的场景类型是否与当前测试的片源类型一致,若一致,则判定场景识别正确,否则判定场景识别错误。
技术总结本发明涉及AI场景的测试技术,其公开了一种自动化测试AI场景识别准确率的方法,解决传统技术中测试AI场景识别率的方案存在的耗费大量人力、测试效率低、场景覆盖率低的问题。该方案首先初始化参数设置,然后自动化执行测试过程,包括:1、读取初始化设置的片源类型和数量,访问媒资库,获取影片信息并转储至数据库;2、访问转储的数据,读取其中的片源数据以及对应的牌照方,生成终端可以直接执行的命令;3、发送adb命令到电视,播放视频;4、判断是否起播成功,若超时后还是起播失败,则记录起播失败+1;5、判断场景识别结果,一致则场景识别成功+1,否则场景识别失败+1;6、重复步骤2到5,直到当前类型下所有片源测试结束。7、重复步骤1到6,直到所有预设的类型都测试结束。直到所有预设的类型都测试结束。直到所有预设的类型都测试结束。
技术研发人员:张毅
受保护的技术使用者:四川长虹电器股份有限公司
技术研发日:2022.07.26
技术公布日:2022/11/1