精华内容
下载资源
问答
  • matlab车型识别源程序

    2021-02-27 19:30:15
    这是有关车型识别的matlab程序,完全可以运行~ 这是有关车型识别的matlab程序,完全可以运行~ 这是有关车型识别的matlab程序,完全可以运行~ 这是有关车型识别的matlab程序,完全可以运行~
  • 车型识别系统

    2012-10-09 14:34:24
    车型识别系统由硬件和软件组成,硬件包括两部摄像机、图像处理计算机。图像处理计算机指安装了车型识别系统软件的计算机。软件包括视频捕获系统和车型识别软件。视频捕获系统负责视频监控,并从视频流中获取帧图像,...
  • matlab 车型识别

    2012-06-13 12:25:10
    基于神经网络的车型识别系统
  • 车型识别系统vc++

    2017-11-15 16:57:13
    vc环境下,使用c++以及opencv开发的车型识别系统,适合学习参考,里面有图片以及说明,源码有注释。
  • 车型识别系统.zip

    2019-12-25 13:24:23
    本文件为OpenCV车型识别源码,包括前景后景分离,图像做差、二值化、开运算、图像去噪、图像填充处理。轮廓提取,车辆识别。有菜单栏。
  • 地磁车型识别

    2012-11-14 19:36:34
    基于地磁的车型识别模糊数据融合方法研究,具体的理论方法
  • 在交通安防中,车型识别是一个重要的技术点,车型识别主要包括车辆检测、型号识别、颜色识别,基于视频的车型识别,还包括跟踪算法的设计。我们在19年开源了一套车型识别模型HyperVID:...

    df3690e7e67f0cceea4f36049838babd.png

    在交通安防中,车型识别是一个重要的技术点,车型识别主要包括车辆检测、型号识别、颜色识别,基于视频的车型识别,还包括跟踪算法的设计。我们在19年开源了一套车型识别模型HyperVID:

    https://github.com/zeusees/HyperVIDgithub.com

    2020年7月对该模型进行了进一步更新,目前支持大陆超过4000种车型及年款。感兴趣的技术人员可以关注一下。下面我们将其中涉及的技术进行拆解。

    1.数据

    我们知道,基于深度学习的识别算法,强烈依赖于数据的规模和质量,首先需要准备大量的车型数据,目前公开的车型数据集主要包括:

    1)BIT-Vehicle Dataset(目前网站已不能访问,需要下载可以自行百度查找下载链接)

    2)MIT Cars Dataset(https://ai.stanford.edu/~jkrause/cars/car_dataset.html

    3)The CompCars dataset(CompCars Dataset)

    单纯利用公开的数据,很难获得较高的准确率,一方面开源的数据集样本数量不足,另外样本的角度、场景不够丰富,这些都制约模型的准确率。我们的实习生也下载了一些数据,大家可以在仓库中下载。

    2.车辆检测

    目前已经有很多较好的检测算法,例如:SSD、YOLOV3、YOLOV4、CenterNet、RetinaNet,还有针对单一物体检测的算法,包括:MTCNN、RetinaFace、LFFD(YonghaoHe/A-Light-and-Fast-Face-Detector-for-Edge-Devices),我们在进行车型识别的时候,主要选择了YOLOV3作为多物体检测框架,RetinaFace作为单一物体检测框架。大家可以根据自己的需求进行选择。

    3.跟踪

    跟踪算法很多,这里只关注实战中效果好,够快的算法,我们选择KCF及光流。不同的算法实现效率差别很大,我们测试过很多开源的算法,github上这个KCF算法的实现效率比较高(joaofaro/KCFcpp),基于光流的算法大家可以利用opencv实现。

    这里 mobilenet-ssd with kcf (apoorvavinod/Real_time_Object_detection_and_tracking)是一个检测加跟踪的例子,大家可以作为参考。

    4.车辆颜色识别

    关于车辆外观颜色的识别,公安部有相应的标准,需要支持其中主流的9种颜色,目前很多公司都会增加识别颜色的类别,11种、13种的都比较多。在车辆颜色识别这一块,我们选择单独的一个小网络来实现,有些公司采用一个多任务网络,在进行车辆种类识别的同时,完成颜色的识别,这种方式速度很相对快一点,但是升级起来比较麻烦,每次都要进行多任务的训练,并且多任务的网络训练起来也相对复杂。因为市面上车辆的颜色种类相对固定,颜色识别模型只需要训练一次,就可以在后期复用。颜色分类比较简单,大家可以自己选择一个小网络进行训练,其中shufflnet、SqueezeNet、mobilenet-0.25都是比较好的模型。

    5.车辆种类识别

    车辆种类识别,正常来讲属于fine-grained任务,就是所谓的细分类,目前有很多论文研究细分类的问题,工业界的实现通常有别于学术界,我们通常选择一个高效的网络,直接进行分类,同样可以得到较好的识别效果。我们大多针对移动端和边缘设备,我们选取了mobilenetv3-large作为主干网络,在5600种车型分类中,Top-1可以达到96%的准确率。Top-3能达到99.8%以上。根据我们的经验,利用resnet50基本可以满足车辆识别分类任务,再大的网络意义也不是很大,毕竟要兼顾准确率和速度。

    6.后记

    可以看到,整个车辆识别系统种,除了跟踪部分,我们都选择了基于深度模型进行识别,一方面深度学习能够取得较好的识别效果,另外目前的边缘设备,服务器,都有基于GPU、TPU的加速模块,能够释放CPU的压力。也是目前技术发展的一个趋势,感兴趣的朋友可以自己尝试开发一下。

    7.相关链接

    1)在线体验:智云视图-专注移动端高效视觉算法研发

    2)SqueezeNet:forresti/SqueezeNet

    3)RetinaFace:https://github.com/biubug6/Pytorch_Retinaface

    4)QQ群:737677707

    展开全文
  • 车型识别已成为智能交通系统研究中的一个重要内容。根据同类车型尺寸特征如长、宽、高特征.值都具有相似性特点,利用已有车型数据库,分别使用逆传播( BP) 神经网络、支持向量机( SVM) 网络、有.监督Kohonen 网络这...
  • 针对高速公路环境下的车型识别问题,利用深度学习Caffe 框架中的AlexNet 和传统方法支持向.量机( SVM) ,分别对车辆图像进行网络训练与测试,得到两种车型识别方法的准确率并进行比较验证。.实验结果表明: 卷积神经...
  • 资源含有车牌识别系统和车型识别系统两套的实现过程源代码,是基于opencv并利用c++在visual studio平台上进行的开发;源代码程序为中文注释,并能够直接编译通过;内含的可执行文件也可以直接运行。代码可以作为初学...
  • 用于开发BS架构的车牌识别车型识别的应用。本案例讲解的是某二手车管理软件的应用案例,前端采用VUE开发的HTML5页面,后端采用SPRINGBOOT开发。
  • 针对复杂背景的视频图像车型识别,提出了一种利用尺度显著性的车型识别方法。由于尺度显著性对图像均一亮度变化、缩放、旋转以及噪声都具有不变性,因此引入尺度显著性算法提取车辆图像的分类特征。最后采用RBF网络...
  • 车型识别,CNN

    千次阅读 2019-10-22 21:00:51
    车型识别 全部源码已上传至百度云,链接:https://pan.baidu.com/s/1PkTbcDap0W4BxcWnvoL78g 提取码:0hvf 使用Resnet52进行车型识别,测试集准确率达90%以上,有GUI界面,支持摄像头,效果如图。 ...

    车型识别

    全部源码已上传至百度云,链接:https://pan.baidu.com/s/1PkTbcDap0W4BxcWnvoL78g
    提取码:0hvf
    使用Resnet52进行车型识别,测试集准确率达90%以上,有GUI界面,支持摄像头,效果如图。
    在这里插入图片描述

    展开全文
  • 1.首先单击载入图像菜单项(载入背景和前景图像),图像在image文件夹下面。 2.然后单击车辆提取菜单项,依次进行图像做差、二值化、开运算、图像去噪、图像填充处理。...4.最后单击车型识别菜单项,对车辆进行识别。
  • 在交通安防中,车型识别是一个重要的技术点,车型识别主要包括车辆检测、型号识别、颜色识别,基于视频的车型识别,还包括跟踪算法的设计。我们在19年开源了一套车型识别模型HyperVID:...

    dfb62df6577cd335c07747a58b4da763.png

    在交通安防中,车型识别是一个重要的技术点,车型识别主要包括车辆检测、型号识别、颜色识别,基于视频的车型识别,还包括跟踪算法的设计。我们在19年开源了一套车型识别模型HyperVID:

    https://github.com/zeusees/HyperVIDgithub.com

    2020年7月对该模型进行了进一步更新,目前支持大陆超过4000种车型及年款。感兴趣的技术人员可以关注一下。下面我们将其中涉及的技术进行拆解。

    1.数据

    我们知道,基于深度学习的识别算法,强烈依赖于数据的规模和质量,首先需要准备大量的车型数据,目前公开的车型数据集主要包括:

    1)BIT-Vehicle Dataset(目前网站已不能访问,需要下载可以自行百度查找下载链接)

    2)MIT Cars Dataset(https://ai.stanford.edu/~jkrause/cars/car_dataset.html

    3)The CompCars dataset(CompCars Dataset)

    单纯利用公开的数据,很难获得较高的准确率,一方面开源的数据集样本数量不足,另外样本的角度、场景不够丰富,这些都制约模型的准确率。我们的实习生也下载了一些数据,大家可以在仓库中下载。

    2.车辆检测

    目前已经有很多较好的检测算法,例如:SSD、YOLOV3、YOLOV4、CenterNet、RetinaNet,还有针对单一物体检测的算法,包括:MTCNN、RetinaFace、LFFD(YonghaoHe/A-Light-and-Fast-Face-Detector-for-Edge-Devices),我们在进行车型识别的时候,主要选择了YOLOV3作为多物体检测框架,RetinaFace作为单一物体检测框架。大家可以根据自己的需求进行选择。

    3.跟踪

    跟踪算法很多,这里只关注实战中效果好,够快的算法,我们选择KCF及光流。不同的算法实现效率差别很大,我们测试过很多开源的算法,github上这个KCF算法的实现效率比较高(joaofaro/KCFcpp),基于光流的算法大家可以利用opencv实现。

    这里 mobilenet-ssd with kcf (apoorvavinod/Real_time_Object_detection_and_tracking)是一个检测加跟踪的例子,大家可以作为参考。

    4.车辆颜色识别

    关于车辆外观颜色的识别,公安部有相应的标准,需要支持其中主流的9种颜色,目前很多公司都会增加识别颜色的类别,11种、13种的都比较多。在车辆颜色识别这一块,我们选择单独的一个小网络来实现,有些公司采用一个多任务网络,在进行车辆种类识别的同时,完成颜色的识别,这种方式速度很相对快一点,但是升级起来比较麻烦,每次都要进行多任务的训练,并且多任务的网络训练起来也相对复杂。因为市面上车辆的颜色种类相对固定,颜色识别模型只需要训练一次,就可以在后期复用。颜色分类比较简单,大家可以自己选择一个小网络进行训练,其中shufflnet、SqueezeNet、mobilenet-0.25都是比较好的模型。

    5.车辆种类识别

    车辆种类识别,正常来讲属于fine-grained任务,就是所谓的细分类,目前有很多论文研究细分类的问题,工业界的实现通常有别于学术界,我们通常选择一个高效的网络,直接进行分类,同样可以得到较好的识别效果。我们大多针对移动端和边缘设备,我们选取了mobilenetv3-large作为主干网络,在5600种车型分类中,Top-1可以达到96%的准确率。Top-3能达到99.8%以上。根据我们的经验,利用resnet50基本可以满足车辆识别分类任务,再大的网络意义也不是很大,毕竟要兼顾准确率和速度。

    6.后记

    可以看到,整个车辆识别系统种,除了跟踪部分,我们都选择了基于深度模型进行识别,一方面深度学习能够取得较好的识别效果,另外目前的边缘设备,服务器,都有基于GPU、TPU的加速模块,能够释放CPU的压力。也是目前技术发展的一个趋势,感兴趣的朋友可以自己尝试开发一下。

    7.相关链接

    1)在线体验:智云视图-专注移动端高效视觉算法研发

    2)SqueezeNet:forresti/SqueezeNet

    3)RetinaFace:https://github.com/biubug6/Pytorch_Retinaface

    4)QQ群:737677707

    展开全文
  • 车型识别技术是智能运输系统的核心。针对目前车型识别方法的不足,提出了一种基于车辆声音和震动信号相融合的车型识别方法。用BCS算法提取声震信号的特征,并在特征级融合形成特征向量,以此作为训练样本对支持向量...
  • 关键字: 车牌识别 车型识别 百度AI SpringBoot Vue Java SDK 文章目录1.创建百度AI应用2.通过Access_token密码调用百度AI接口(车型识别)3.Java客户端AipImageClassifyClient调用AI接口4.车型识别接口说明5.Java...

    关键字: 车牌识别 车型识别 百度AI SpringBoot Vue Java SDK

    1.创建百度AI应用


    进入百度AI官网https://ai.baidu.com/,点击右上角控制台,用百度账号登录。如果没有百度账号,需要首先创建一个百度账号。

    在控制台可以看到各种百度提供的AI应用接口。找到需要的应用接口,点进去可以创建一个相应的应用。

    图像识别提供一个组合API接口,支持多种垂类识别服务的灵活组合调用。

    然后会提供给该应用一个API Key 和Secret Key,它是我们调用接口必须的两个参数。

    以下是本次开发中用到的车型识别的应用。百度AI的车牌识别需要另外申请一个应用。需要注意的是不同的应用有不同的AppID等参数。

    在这里插入图片描述

    2.通过Access_token密码调用百度AI接口(车型识别)


    车型识别功能检测图片中的车辆,识别具体车型,包括车辆品牌体型号、颜色、年份、位置信息。

    车辆识别为例。它的请求url为: https://aip.baidubce.com/rest/2.0/image-classify/v1/car

    调用方式一定为POST。同时我们要在后面添加以下参数:

    access_token:即前面获取的密码

    在请求头中设置Content-Type参数

    Content-Type:设置为application/x-www-form-urlencoded

    在请求体Body中设置image图片的信息参数

    1.image:图片信息参数,它是通过图片路径找到图片转为字节,然后经过Base64编码最后形成的字符串。如下代码

    //获取图片的路径

    String filePath = Path;

    //将图片转为字节数组

    byte[] imgData = FileUtil.readFileByBytes(filePath);

    //将图片字节数组转为Base64编码的字符串换

    String imgStr = Base64Util.encode(imgData);

    //将经过Base64编码的图片字符串转为UTF-8编码的字符串。可以直接传给image参数

    String imgParam = URLEncoder.encode(imgStr, “UTF-8”);

    2.top_num:设置返回的信息的数量,默认5,因为车辆识别会得出多个结果,按几率得到,我们可以获取前n个的数据

    3.baike_num:设置返回的百科的信息数,默认不返回

    3.Java客户端AipImageClassifyClient调用AI接口


    以上方法是采用接口直接调用,下面的方法是使用JAVA客户端进行访问。首先需要安装ImageClassify Java SDK,可以在官方网站下载Java SDK压缩工具包。

    在这里插入图片描述

    然后,新建AipImageClassifyClientAipImageClassifyClient是图像识别的Java客户端,为使用图像识别的开发人员提供了一系列的交互方法。

    用户可以参考如下代码新建一个AipImageClassifyClient,初始化完成后建议单例使用,避免重复获取access_token

    public class Sample {
        //设置APPID/AK/SK
        public static final String APP_ID = "你的 App ID";
        public static final String API_KEY = "你的 Api Key";
        public static final String SECRET_KEY = "你的 Secret Key";
    
        public static void main(String[] args) {
            // 初始化一个AipImageClassifyClient
            AipImageClassifyClient client = new AipImageClassifyClient(APP_ID, API_KEY, SECRET_KEY);
    
            // 可选:设置网络连接参数
            client.setConnectionTimeoutInMillis(2000);
            client.setSocketTimeoutInMillis(60000);
    
            // 可选:设置代理服务器地址, http和socket二选一,或者均不设置
            client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理
            client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理
    
            // 调用接口
            String path = "test.jpg";
            JSONObject res = client.objectDetect(path, new HashMap<String, String>());
            System.out.println(res.toString(2));
            
        }
    }
    

    在上面代码中,常量APP_ID在百度智能云控制台中创建,常量API_KEYSECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

    4.车型识别接口说明


    识别图片中车辆的具体车型,可识别常见的3000+款车型(小汽车为主),输出车辆的品牌型号、颜色、年份、位置信息;支持返回对应识别结果的百度百科词条信息,包含词条名称、百科页面链接、百科图片链接、百科内容简介。

    当前只支持单主体识别,若图片中有多个车辆,则识别目标最大的车辆。

    百度官方文档提供了调用的示例,提交参数的方式有本地路径和二进制数组。

    public void sample(AipImageClassify client) {
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("top_num", "3");
        options.put("baike_num", "5");
    
    
        // 参数为本地路径
        String image = "test.jpg";
        JSONObject res = client.carDetect(image, options);
        System.out.println(res.toString(2));
    
        // 参数为二进制数组
        byte[] file = readFile("test.jpg");
        res = client.carDetect(file, options);
        System.out.println(res.toString(2));
    }
    

    车型识别 请求参数详情

    参数名称 是否必选 类型 默认值 说明
    image mixed - 本地图片路径或者图片二进制数据
    top_num String 5 返回预测得分top结果数,默认为5
    baike_num String 0 返回百科信息的结果数,默认不返回

    车型识别 返回数据参数详情

    字段 是否必选 类型 说明
    log_id uint64 唯一的log id,用于问题定位
    color_result string 车身颜色
    result car-result() 车型识别结果数组
    +name string 车型名称,示例:宝马x6
    +score double 置信度,取值范围0-1,示例:0.5321
    +year string 年份
    +baike_info object 对应识别结果的百科词条名称
    ++baike_url string 对应识别结果百度百科页面链接
    ++image_url string 对应识别结果百科图片链接
    ++description string 对应识别结果百科内容描述
    location_result string 车辆在图片中的位置信息
    +width float 车辆区域的宽度
    +height float 车辆区域的高度
    +left float 车辆区域离左边界的距离
    +top float 车辆区域离上边界的距离

    车型识别 返回示例

    {
      "log_id": 4086212218842203806,
      "location_result": {
        "width": 447,
        "top": 226,
        "height": 209,
        "left": 188
      },
      "result": [{
        "baike_info": {
          "baike_url": "http://baike.baidu.com/item/%E5%B8%83%E5%8A%A0%E8%BF%AAChiron/20419512",
          "description": "布加迪Chiron是法国跑车品牌布加迪出品的豪华超跑车。配置四涡轮增压发动机,420 公里每小时,有23种颜色的选择,售价高达260万美元。"
        },
        "score": 0.98793351650238,
        "name": "布加迪Chiron",
        "year": "无年份信息"
      },
      {
        "score": 0.0021970034576952,
        "name": "奥迪RS5",
        "year": "2011-2017"
      },
      {
        "score": 0.0021096928976476,
        "name": "奥迪RS4",
        "year": "无年份信息"
      },
      {
        "score": 0.0015581247862428,
        "name": "奥迪RS7",
        "year": "2014-2016"
      },
      {
        "score": 0.00082337751518935,
        "name": "布加迪威航",
        "year": "2004-2015"
      }],
      "color_result": "颜色无法识别"
    }
    

    车型识别的错误码可见:https://ai.baidu.com/ai-doc/VEHICLE/Gk3hb3ifo

    车牌识别的调用方式和以上车型识别的方式大同小异,这里略过。

    5.Java后端Controller层接收图片


    本次开发的后端应用基于SpringBoot v2.4.1,Controller层的开发内容如下所示。

    /**
     * @Author Jarrett Luo
     * @Date 2021/1/28 18:26
     * @Version 1.0
     */
    @RestController
    @RequestMapping(value = "/recognition")
    public class RecognitionController {
        
        @Resource
        RecognitionService recognitionService;
        
        @CrossOrigin
        @PostMapping
        public ApiResult save(@RequestParam(value="file", required=false) MultipartFile multipartFile)
                throws IOException {
            byte[] imgBytes = multipartFile.getBytes();
            if(imgBytes!=null){
                return recognitionService.find(imgBytes);
            }
            else {
                return ApiResult.error(201,"数据为空!");
            }
        }
    }
    

    byte[] imgBytes = multipartFile.getBytes();将前端传递的数据转换为二进制数组,以便于后面进行调用。

    必须进行非空判断后才能进入下一步,否则会出现没有返回值的错误。ApiResult是自己写的一个工具,用于返回结果,如果传入的空数据,则返回201的错误码。

    6.Java后端Service层访问AI接口


    根据百度AI控制页创建的应用,设置每个应用的APP_ID, API_KEY, SECRET_KEY。这里需要注意的是百度AI提交的不同接口需要创建不同的应用。

    我们对文件的大小进行了限制,这里仅处理10MB以下的图片。

    public ApiResult find(byte[] image) {
            if(image.length>10048575) {
                return ApiResult.error(201, "文件过大!");
            }
            // 初始化一个AipOcr
            AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
            HashMap<String, String> options = new HashMap<String, String>();
    
            JSONObject res = client.plateLicense(image, options);
            String number;
    
            if(res.has("words_result")) {
                JSONObject jsonData = res.getJSONObject("words_result");
                number = jsonData.getString("number");
            }else {
                number = null;
            }
    
            // 初始化一个AipImageClassify
            AipImageClassify client1 = new AipImageClassify(APP_ID_1, API_KEY_1, SECRET_KEY_1);
    
            // 传入可选参数调用接口
            HashMap<String, String> options1 = new HashMap<String, String>();
            options.put("top_num", "1");
    
            // 参数为本地路径
            JSONObject res1 = client1.carDetect(image, options1);
            String color;
            String name;
            String year;
            if(res1.has("result")) {
                JSONArray jsonData = res1.getJSONArray("result");
                JSONObject vehicle = jsonData.getJSONObject(0);//获取数组第一个元素
                year = vehicle.getString("year");
                name = vehicle.getString("name");
                color = res1.getString("color_result");
                if(year.equals("无年份信息")){
                    year = null;
                }
                if(name.equals("非车类")) {
                    name = null;
                }
                if(color.equals("无车辆颜色信息")) {
                    color = null;
                }
            }else {
                year = null;
                name = null;
                color = null;
            }
    
            RecognitionDTO recognitionDTO = new RecognitionDTO(number,
                    name,
                    year,
                    color);
            return ApiResult.success(recognitionDTO);
        }
    

    注意以上代码的ApiResult是自己写的一个结果转换的工具类。关于ApiResult的详细内容可以查看作者github的详细介绍。

    7.基于VUE的前端开发车牌识别和车型识别


    根据开发需求,在页面中增加一个拍照自动识别按钮,用户点击按钮后可以选择拍照或者相册中的照片。相应的HTML代码如下所示。

    在这里插入图片描述

            /**
             * 图片拍照识别上传
             * @author: 罗佳瑞
             */
            uploadFile() {
                var that = this;
                var inputDOM = that.$refs.imageInput;
                var file = inputDOM.files;
                var formData = new FormData();
                formData.append('file', file[0]);
                this.uploadImage(formData)
    
                Indicator.open({
                    text: '识别中...',
                    spinnerType: 'fading-circle'
                });
                setTimeout(()=>{
                    Indicator.close();
                },15000)
            },
    

    以下是采用异步方式提交数据到后台服务器,提交数据的函数时recorgnizeRequest。如果成功返回数据该函数将回调uploadImageResult,关于该回调函数下文将会介绍。

    /**
    * 异步提交数据到后台
    * @author: 罗佳瑞
    */
    async uploadImage(formData) {
          await vehiclePageRequest.recorgnizeRequest(formData)
              .then(res => {
              this.uploadImageResult(res)
          })
              .catch(err => {
              Toast("" + err)
          })
    },
    

    采用axios提交数据到相应的URL。VUE中采用Promise提交数据,采用这种方式提交更好的看到提交成功和识别的结果。特别要注意,为了避免axios对formdata进行转换,因此最好加上tansformRequest

    function recorgnizeRequest(FormData) {
        return new Promise((resolve, reject) => {
            axios({
                url: RECORGNIZE_URL,
                method: 'POST',
                headers: {
                    'Content-Type': "multipart/form-data",
                    // token: sessionStorage.getItem('token')
                },
                //这部分非常重要,否则formdata会被转格式
                transformRequest: [function(){
                    return FormData;
                }],
                params: {},
                data: FormData,
            })
            .then((res) => {
                // 成功
                resolve(res.data)
            })
            .catch((res) => {
                // 失败
                reject(res)
            })
        })
    }
    

    后端返回的数据采用如下代码映射到表单中。由于返回的结果中可能没有识别到车辆,或者图片中没有车辆信息,因此在这一步进行非空判断。

    Indicator是前端框架的指示器,用于告知用户当前识别进度以及识别结果。

    uploadImageResult(res) {
        if(res.code==200) {
            var recorgnizeResult = res.data
            var rln = recorgnizeResult.licenseNumber
            var rvb = recorgnizeResult.name
            var rvc = recorgnizeResult.color;
            var rvy = recorgnizeResult.year;
    
            var resultStr = "";
            if(rln!=null){
                this.vehicleInfo.vehiclePlate = rln;
                resultStr = resultStr + "车牌可能是:" + rln + ";\n"
            }
            if(rvb!=null) {
                this.vehicleInfo.vehicleBrand = rvb;
                resultStr = resultStr + "品牌可能是:" + rvb + ";\n"
            }
    
            if(rvc!=null) {
                this.vehicleInfo.vehicleColor = rvc;
                resultStr = resultStr + "颜色可能是:" + rvc + ";\n"
            }
            if(rvy!=null) {
                var rvyFormat = rvy.substr(0,4)
                resultStr = resultStr + "年代可能是:" + rvyFormat + "年;\n"
            }
    
            Indicator.close();
            Indicator.open({
                text: "识别成功\n" + resultStr,
                spinnerType: 'fading-circle'
            });
            setTimeout(()=>{
                Indicator.close();
            },7500)
    
        }else{
            Toast({
                message: "连接超时!"
            })
        }
    }
    

    前端页面开发结果如下。用户点击拍照自动识别后,选择拍照或者相册,提交照片等待返回结果。

    服务器返回的结果会自动输入到下图中的车牌号,汽车品牌,车身颜色。

    在这里插入图片描述

    8.总结与展望


    • 本文从访问百度AI接口出发,详细阐述了后端如何调用百度接口,实现一次图片上传得到车牌识别和车型识别的结果。

    • 本文的前端开发作为示例,提供了一种思路,更多的如客户端,安卓,IOS应用等等都可以采用如此方法开发。

    • 采用百度AI提供的接口,可以拓展更多丰富的应用;多种接口的叠加让用户一次上传便得到多种结果。

    • 通过成熟的AI算法,识别的准确度和速度都比较令人满意。

    • 以上过程中存在的不足是,由于用户拍照后直接上传的图片是比较大的,导致在传输过程中比较慢,甚至会出现超时的情况,用户体验不够好。改进的方法是前端页面首先对大文件进行压缩后再上传。

    • 百度AI提供了组合调用AI的方式,前端可以采用该种方式发起请求。在此应用中需要保存用户的图片,因此没有采用该方式。

    如果您觉得上面的内容对您有帮助欢迎点赞、评论、转发!
    更多内容请查阅作者博客:https://jiaruiblog.com
    或者star作者github: https://github.com/Jarrettluo?tab=repositories

    展开全文
  • 13_车型识别系统.zip

    2019-06-20 12:08:32
    c++版本的opencv开发案例14个中的第13个案例:车型识别系统的实现
  • 开源移动端车型识别

    2021-02-22 11:43:59
    开源移动端车型识别 https://github.com/zeusees/HyperVID 该项目使用的数据集: 开放自然场景训练数据集,包含分类整理好的1776种车型,大约30万张图像。 链接: ...
  • 提出了一种基于多特征提取和支持向量机(support vector machines,SVM)参数优化的车型识别方法,此方法解决了采用单一特征容易受到光照、天气、阴影等环境影响的问题,并且可以对运动中的车辆进行车型识别。首先,采集...
  • 我的博客:车型识别API调用与批量分类车辆图片的代码,详情参见: https://mp.csdn.net/postedit/82189824
  • 利用Matlab进行车辆检测与车型识别,包含详细的代码,
  • 提出融合局部二值模式(LBP)和Hu矩特征的车型识别算法。LBP特征能够很好地对车辆局部纹理进行描述,Hu矩属于全局特征,反映了车辆的形状轮廓信息,将这两种互补特征结合能更好地表达车型特征。设计了融合特征的提取...
  • 车型识别系统由硬件和软件组成,硬件包括两部摄像机、图像处理计算机。图像处理计算机指安装了车型识别系统软件的计算机。软件包括视频捕获系统和车型识别软件。视频捕获系统负责视频监控,并从视频流中获取帧图像,...
  • 运用百度智能云车型识别API分析具体车型一、申请Key百度AI开放平台图像识别_API Key与Secret Key二.获取access_token我这里运用“黑魔法”进行函数封装车型识别 一、申请Key 百度AI开放平台图像识别_API Key与Secret...
  • YOLO算法之车型识别

    2019-06-09 18:22:13
    目标检测理论与项目实战 理论知识 干货 yolov3 论文链接 论文解读 darknet安装 ​ 在darknet安装之前,需要预先装好cuda、cudnn和opencv环境。也可以不用装GPU版本直接...车型识别目标: 要精确识别给定车辆图片的车...
  • 针对智能交通系统中的实时车型识别和车流量统计,提出了一种有效的车流量检测和车型识别算法。首先根据机动车道在视频图像中设置虚拟线圈作为检测区域,运用背景差分提取前景目标,并采用基于颜色和纹理的阴影检测...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 523
精华内容 209
关键字:

车型识别