【调研报告】使用OCR的方式提高测试方获取视频的延迟数据

一、背景

  • 背景:为了方便测试GoCall网络专用房间测试数据,提高测试的效率
  • 目标群体:测试工程师、开发工程师

二、详细调研

2.1 测试调研

在跟测试方沟通后了解具体的测试方式:

测试方法:手机A录入在线秒表的时间,手机B拉手机A的展示时间,用手机C拍照拍下在线秒表和手机B的时间,从而算出整个的延迟时间。

一个周期获取15张手机C所拍摄的照片并通过人工的方式获取其中的时间差,再算取平均值。

如下图所示:

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_腾讯云

 

2.2 方案调研

方案处理思路如下:

  • 依次读取15张图片
  • 通过OCR获取图片的两处特定的时间字符
  • 整理所获取到的时间字符,并计算延迟
  • 输出包括每一张图片的时间字符和时间差(延迟) 以及 最终的平均值的延迟报告txt文件

总的来说,关键是通过OCR来得到延迟数据。

2.3 技术调研

市面上主流的python 的OCR 库有opencv  和 pytesseract

技术参考文献:

2.3.1  实现效果

标准情况

  • 字体常规
  • 无倾斜、无杂色

以 word 和 网页文本截图为例

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_python_02

 

OCR的效果良好可以识别。

非标准情况

  • 字体倾斜
  • 有杂色

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_腾讯云_03

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_腾讯云_04

 

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_人工智能_05

 

OCR的识别效果差,无法识别

 

综上所述,这两种py开源库并不能够满足业务需求。

2.3.2 解决方案

采用腾讯云的文字识别功能 :https://cloud.tencent.com/document/product/866

首先使用py的方式验证其可靠性:

效果如下:

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_opencv_06

效果很好!OCR的识别成功率的大大提高有助于后续的开展。

三、 技术设计

采用腾讯云的技术进行客户端的开发。加入拍照功能实现上述的功能流程~

 

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_腾讯云_07

 

PS:腾讯云的android客户端SDK目前只支持这些功能,没有常规的文本识别。

故采用javaSDK包:implementation 'com.tencentcloudapi:tencentcloud-sdk-java:3.1.322'

3.1 产品成果

3.1.1 android apk

基于腾讯云的OCR Demo 进行开发,实现了version1.0.0 的延迟测试工具(DelayTool)。

代码仓库:https://gitee.com/ChrisEighteen18/ocrtentcent-demo

[delayTool.apk]

操作限制

  • 该工具使用OCR 免费版,每月仅1000次的调用余额。
  • 由于时间安排,该工具目前没有做持久化存储处理,仅展示拍下的图片当前的延迟。效果如下:

 

       

【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_python_08

 

 3.2.1 py脚本

https://gitee.com/ChrisEighteen18/py_handle_international_android

该脚本实现了对视频中的延迟时间的样本统计并得到一个txt报告文件。

注意在使用该py脚本前,必须保证有如下的第三方:

  • pip install --upgrade tencentcloud-sdk-python
  • pip install opencv-contrib-python
  • pip install heic2png

      参考:

      1. https://pypi.org/project/opencv-python/
      2. https://www.askpython.com/python/examples/extract-images-from-video
      3. https://github.com/NatLee/HEIC2PNG

      命令行使用方式如下所示:

      python3 该脚本的绝对路径  需要解析的视频的绝对路径

       

      最终得到如下的资源:

      【调研报告】使用OCR的方式提高测试方获取视频的延迟数据_腾讯云_09

       

      PS:py的默认的筛选图片样本量为30;上图中数据量为5是为了测试功能而调低的。

      综上所述,推荐使用py脚本实现获取延迟数据。