目录
目录README.md

Testing-Tool-for-yolo

Step One

Install mm-yolo dependency

【推荐】安装 anaconda。下面的步骤以 anaconda 环境下的虚拟环境来进行实践。

首先我们在 anaconda 中执行以下命令创建一个虚拟环境,需要的 Python 版本为 3.8(如果本地 Python 版本非此版本建议使用 anaconda 创建虚拟环境)。

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

这里的 openmmlab 可以换成你喜欢的名字,然后我们下载 mmlab-yolo 需要的一些依赖。

GPU 版本:

conda install pytorch torchvision -c pytorch

CPU 版本:

conda install pytorch torchvision cpuonly -c pytorch

mm-openlab 通过 openmim 进行包管理,因此接下来我们需要执行以下的指令:

pip install -U openmim
mim install "mmengine>=0.3.1"
mim install "mmcv>=2.0.0rc1,<2.1.0"
mim install "mmdet>=3.0.0rc3,<3.1.0"

如果你是 CPU 版本的话,你可以将 mim install "mmcv>=2.0.0rc1,<2.1.0" 替换为 mim install "mmcv-lite>=2.0.0rc1",后者是不包含一些 CUDA 算子的,更加轻便。

Install mm-yolo

因为我们不需要自己训练,所以直接使用 mim install "mmyolo" 进行安装即可。

Step Two

第二步是安装图像扩增框架 imgaug,我们在上面的 anaconda 环境中执行以下的指令:

pip install imgaug

Step Three

第三步是安装一些必要的库,在项目根目录下执行以下命令:

pip install -r requirements.txt

Step Four

第四步是配置运行参数,我们的测试类是src/model/Model.py,如果使用pycharm可以右键左侧运行按钮,进行运行配置 img.png 并在形参中添加以下内容

../../enhancement yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth --target-layers backbone --channel-reduction select_max

img_1.png 就可以正常运行测试框架了

仓库结构

Testing-Tool-for-yolo:
    +--baseline
    +--enhancement
    +--img
    +--output
    +--similarity
    |    +--convergence
    |    +--iteration
    +--src
    |    +--enhancement
    |    |    +--__pycache__
    |    |    __init__.py
    |    |    AddBrightness.py
    |    |    AveragePooling.py
    |    |    DropOut.py
    |    |    GammaContrast.py
    |    |    GaussianBlur.py
    |    |    ImgAugmenter.py
    |    |    PixelAdd.py
    |    |    Resize.py
    |    |    Rotate.py
    |    |    Salt.py
    |    +--evaluation
    |    |    +--__pycache__
    |    |    Evaluation.py
    |    +--model
    |    |    __init__.py
    |    |    Model.py
    |    |    yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py
    |    +--visualization
    |    |    __init__.py

代码介绍

图像扩增部分

Salt.py

  • enhance(images)

    实现增加亮度功能

  • adjust_param(count)

    调节增加亮度的参数

Rotate.py

  • enhance(images)

    实现旋转图片功能

  • adjust_param(count)

    调节图片旋转角度

Resize.py

  • enhance(images)

    实现调整图片大小功能

  • adjust_param(count)

    调节图片大小参数

PixelAdd.py

  • enhance(images)

    实现图片像素增加功能

  • adjust_param(count)

    调节增加像素参数

GaussianBlur.py

  • enhance(images)

    实现高斯模糊功能

  • adjust_param(count)

    调节高斯模糊参数

GammaContrast.py

  • enhance(images)

    实现增加图片gamma对比度功能

  • adjust_param(count)

    调节增加gamma对比度的参数

结果分析部分

Evaluation.py

BugEvaluator类是评估的主要方法,它提供了以下接口

  • evaluation_and_reinforcement(test_set, index) 用于检测test_set与baseline的相似度,并不断迭代直到达到某种扩增方法的阈值
  • evaluation_with_exact_method(test_set, index, mode) 用于使用制定的扩增方法进行测试,通过计算相似度检查是否达到阈值

SimilarityNode类主要用于计算相似度并存储计算的对应图片

  • cos_similarity(arr1, arr2, index) 计算两个向量的余弦相似度
  • calcaulate_bias(baseline, test_set, file_path) 计算baseline和test_set的偏差度,并将结果写入文件保存

测试报告生成部分

init.py

该文件中包含了JSON数据读取、处理和两种可视化图表的生成代码

  • 该文件为入口文件,直接运行即可在该目录下生成所有图表

  • readJsonFiles()

    读取测试结果生成文件夹内的所有数据,存入一个三维data数组并返回

  • render3DBars(data)

    接受一个结果数组并根据数据渲染出一个3D可交互式柱形图。

  • renderLineCharts(data)

    接受一个结果数组并根据数据渲染出一个可交互式折线图。

关于

2022 秋 《自动化测试》第四组“不会自动化测试1”课程大作业仓库 作业选题:深度学习模型测试结果评估技术研究

221.7 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号