AFL++实战(五)-测试HyperLPR

HyperLPR

HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP、C/C++、Python语言,Windows/Mac/Linux/Android/IOS 平台。项目源码

HyperLPR的下载
#安装opencv4.0及以上
#安装cmake3.0以上版本,支持c++11的c++编译器,如gcc-6.3
https://gitee.com/zeusees/HyperLPR.git

有源码测试

测试代码
#include <../include/PlateDetection.h>


void drawRect(cv::Mat image,cv::Rect rect)
{
    cv::Point p1(rect.x,rect.y);
    cv::Point p2(rect.x+rect.width,rect.y+rect.height);
    cv::rectangle(image,p1,p2,cv::Scalar(0,255,0),1);
}


int main(int argc,char** argv)
{
    cv::Mat image = cv::imread(argv[1],1);
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    pr::PlateDetection plateDetection("model/cascade.xml");
    std::vector<pr::PlateInfo> plates;
    plateDetection.plateDetectionRough(image,plates);
    for(pr::PlateInfo platex:plates)
    {
        drawRect(image,platex.getPlateRect());
        cv::imwrite("res/cache/test.png",platex.getPlateImage());
        cv::imshow("image",platex.getPlateImage());
        cv::waitKey(0);
    }
    cv::imshow("image",image);
    cv::waitKey(0);
    return 0 ;


}
配置

对于完整的项目,需要将编译器指定为 afl-clang,然后再进行编译。

export CC=afl-clang
export CXX=afl-clang++
mkdir build
cd build
cmake ../
make -j4
fuzz

正式执行 fuzz 测试的命令如下:

mkdir in
# 在in文件下下创建image语料库
afl-fuzz -m none -i in -o out_res ./TEST_Detection -i @@
测试结果

在这里插入图片描述

黑盒测试

配置

首先在下载好 HyperLPR 后,对 HyperLPR 直接进行编译安装,生成二进制文件。

cd HyperLPR
cd Prj-Linux
mkdir build
cd build/
cmake ../
make -j4
# make的时候会出现与opencv4的很多兼容问题,下面有解决方案。

启用QEMU模式,要先编译。

# 进入到AFLplusplus所在位置
cd qemu_mode
./build_qemu_support.sh
fuzz
afl-fuzz -Q -m none -i in -o out_res ./TEST_Detection -i @@
测试结果

在这里插入图片描述

注意事项

  1. CMake Error at lpr/CMakeLists.txt:6 (find_package): Could not find a configuration file for package “OpenCV” that is compatible with requested version “3.3.0”.
    打开CMakeLists.txt文件,然后将opencv 3.3.0改为4.0.0,这样opencv4以上的版本就可以使用了。

  2. HyperLPR/Prj-Linux/lpr/src/util.h:65:44: note : suggested alternative: ‘CV_CPU_NONE’ return cv::compareHist(histA,histB,CV_COMP_CORREL);
    源文件中加入 #include <opencv2/imgproc/types_c.h>

  3. /HyperLPR/Prj-Linux/lpr/src/…/include/niBlackThreshold.h:65:27: error: ‘CV_StsBadArg’ was not declared in this scope CV_Error( CV_StsBadArg, “Unknown binarization method” );
    源文件中加入 #include <opencv2/imgproc/types_c.h>

  4. HyperLPR/Prj-Linux/lpr/tests/test_pipeline.cpp:41:14: error: aggregate ‘std::ifstream file’ has incomplete type and cannot be defined
    在源文件加入 #include <fstream>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值