当前位置: 首页 > news >正文

做网站设计的公司名字机械设计网站推荐

做网站设计的公司名字,机械设计网站推荐,南京网站制作设计,h5微信小程序项目运行运行录屏#xff1a; Pyhon基于YOLOV实现的车辆品牌及型号检测项目运行录屏 完整代码下载地址#xff1a;Pyhon基于YOLOV实现的车辆品牌及型号检测项目 项目背景#xff1a; 车辆检测及型号识别广泛应用于物业#xff0c;交通等的管理场景中。通过在停车场出入口…项目运行运行录屏 Pyhon基于YOLOV实现的车辆品牌及型号检测项目运行录屏  完整代码下载地址Pyhon基于YOLOV实现的车辆品牌及型号检测项目  项目背景 车辆检测及型号识别广泛应用于物业交通等的管理场景中。通过在停车场出入口路口高速卡口等位置采集的图片数据对车辆的数量型号等进行识别可以以较高的效率对车型数量信息等进行采集。通过采集的数据在不同的场景中可以辅助不同的业务开展。如商场停车位的规划路况规划或者公安系统追踪肇事车辆等等。 项目要求 使用slim框架来对图片进行分类识别。掌握使用slim物体检测框架来进行物体的检测和识别。传入一张图片实现上述两个功能显示出最终的结果。 项目方案的分析与方案确定 项目提供的素材 一个车辆分类的数据集。只是分类数据内部没有定位信息。共48856张图片其43971张作为训练集4885张作为验证集。数据已经预先打包成tfrecord格式数据格式与课程中分类模型使用的数据格式相同打包关键代码参考download_and_convert_flowers.py。 数据集分类文件labels.txt 达到项目要求所缺少的因素 看不到具体的图片图片已经打包成tfrecord格式不知道是什么样的图片。项目提供的素材不包括检测的标签也就是给定的素材不能完成检测网络的训练。 各种方案可行性对比和方案的确定 因此经过讨论我们的首要任务是将tfrecord数据复原出来并且找到一种合适的方式能实现检测功能。 可能的方案有 使用label-image 自己制作检测数据集在原始图片上进行标注然后就有了分类标签和检测标签就可以训练一个端到端的模型。但是缺点是图片太多而项目周期只有一个月估计不可能完成。使用一个现有的预训练的检测模型例如YOLO、faster-rcnn、ssd_mobilenet_v1_coco等他们已经实现了对一些物体的检测功能其中还都包含小汽车因此可以利用这种网络完成检测功能把读取出来的图片一次输入网络中生成检测的标定数据然后重新打包tfrecord文件最终可以训练出一个端到端的检测加分类模型。这样的可行性也比较高而且感觉工作量不大唯一一点是感觉代码难度稍微有点大相比于下面一种方案万一要是卡住在中间的环节有可能造成时间紧张。不过总体感觉依旧是个可行的方案。像上一步一样找一个现成的检测模型把输入的图片进行检测再把检测出来的结果输入到自己训练的分类网络中就可以实现项目需求了而且相比于其他方案难度最小最有可能完成这项任务。但是问题是整个过程经过了两步执行操作感觉没有一步执行完成效率高。 经过对比我们最终选择了第三个方案。 方案的实施与计划 最终的方案流程如下 图3-1 方案流程图 项目实施计划如下 第一周 数据探索复原出原始图片内容进行数据探索、并分析。确定最终使用的检测模型 。 第二周 测试检测模型的效果编写调用接口。使用Inception_v4进行分类训练使之达到85%以上的Top5准确率。 第三周 完成分类模型项目接口。与检测模型的接口进行整合。将功能整合进一个Web服务功能中。 第四周 文档撰写与完善代码。 数据探索 复原原始图片 根据项目提示图片打包过程参考flower的例子经过研究源代码打包过程和解包过程我们完成了图片的复原工作。将图片按照分类放进各自的文件夹中。 3-2 获取原始图片数据 如图3-2左侧是复原图片过程的输出可以看到图片的尺寸都是4xx*320三通道的jpg图片图片的高都是一样的宽度略有不同。这个输入到训练之前会经过一些图片预处理操作。训练时会将图片统一尺寸做一些裁剪、随机flip翻转、颜色扭曲等如图3-3。 3-3 图片预处理部分 最后复原出来的图片train集是43972个图片764个文件夹对应labels.txt中764个分类训练集的图片数比项目说明中的多了一个我想可能是因为43971个图片分成4个数据集的取整问题最后复原的时候可能多了一张重复的这个没多大关系。 可以发现训练集中每种品类的汽车都有不同的视角、颜色、背景的图片看来识别车型的影响因素还挺多的。但是数据的主体都拍照的比较清楚处于画面正中位置所以应该可以实现不同视角下汽车的分类功能。 发现的问题训练集里面还是有一些错误的图片的比如好几次把现代车放进其他车型的标签下的情况而且是同一张图片放入多次但是鉴于这样的错误比例不高所以训练的时候暂时不做处理。先放进网络中训练试试。 选择Yolo作为检测网络 首先Yolo是回归检测的开山之作检测效果不错mAP~0.58而且运行速度非常快能够达到45-150帧每秒。另外一个是因为我们团队的黎同学之前研究过这个模型所以弄起来比较有把握。 在只有分类的数据集的情况下我们不能直接使用YOLO模型去进行端到端的训练因为我们人力有限为了节约时间成本我们在网上把开源的YOLO模型拿下来调用YOLO模型在VOC训练集上训练所得到的预训练参数写出一个检测程序。 然后我们测试了一下检测的能力 图3-4 YOLO检测汽车测试 图3-5 YOLO检测更多辆汽车测试 可以看到YOLO能够出色的完成多辆汽车检测的任务框选出来的位置很准确。只是会把汽车分成truck、car、bus等分类这个只需要后期做一下处理都当成汽车就行了。 使用Inception_v4进行分类网络的训练 下一步就是要进行分类网络的训练项目要求使用Inception_v4模型。于是我们就读了一下Inception_v4的论文然后研究了一下slim分类训练里面的代码。 Inception_v4论文 论文中介绍了Inception_v4的网络结构还同时介绍了另外一种加了residual的Inception_v4的结构。 同时还把Inception_v3以及带residual的inception_v3做了对比得出了一些结论 Inception_v4在Inception_v3的网络结构上进行了一些结构上的微调最终的实验结果是 图3-6 四种模型的训练结果 Inception_v4系列比Inception_v3系列相比准确率方面是更优秀的Top-5 error减少了1.多另外加了residual的V3或者V4都比不加的模型训练更快的收敛但是准确率方面倒没有什么更多的贡献。 训练Inception_v4实现分类功能 训练的思路是先从slim的github上下载预训练的模型 图3-7 Inception_v4 然后对这个模型进行Finetune。过程是这样的 图3-8 Inception_v4进行finetune 这里指定了train_dir 和dataset_dirmodel_name是incption_v4, checkpoint_path是我们下载的checkpoint。然后重要的一点是指定checkpoint_exclude_scopes参数这里把InceptionV4/Logits,InceptionV4/AuxLogits这两个层排除了这在slim中会判断没有这两层的话会根据dataset.py中提供的_NUM_CLASSES参数从新配置分类的层。而前面的层目前还是保持不变的。尤其注意的是这里不需要额外指定trainable_scopes参数就行了否则训练只会训练这里指定的层。我们这里需要将全部的层都参加训练。这样前面特征提取的层在训练中会进行微调而后面的分类层会着重进行反向传播调整。 训练过程中打开tensorboard查看过程如下 可以看到total_loss稳步下降最终稳定在1.多左右 模型的稀疏度也一直在调整下降代表模型的拟合能力在提升。 学习率开始的时候设置的是0.001 然后中间停止训练改成decay模式继续训练可以看到后面学习率在下降一段时间后保持在我们设置的最小值上。最小值能防止模型失去反向传播的动量而随着训练的进行减小学习率能够减小模型的震荡让模型尽快调整到最优点。 Slim训练中有对数据进行预处理的功能可以将图片进行裁切、反转等操作增广训练数据让模型的拟合能力更强。 可以看到各个层的参数都在随着训练进行调整 训练的差不多了进行一次验证 验证集上准确率达到了88.7% top-5 达到了94.59%达到了预定的要求。 代码整合 代码整合是把两个模型的检测程序连接起来通过YOLO网络检测出CarBusTruck类的坐标然后根据坐标将原图裁剪将裁剪后的数据送入inceptionV4分类网络中得到类别最后通过得到的类别坐标信息在原图上标记并显示原图。 模型导出与功能的对接 将检测出的标定框裁切标定为TruckCar,Bus 类别的将切出来的图片送入分类网络在图片上标出目标以及分类结果 单个目标的识别结果很好 单个目标的结果1 单目标检测结果2 多个目标的情况会受图片质量以及车辆遮挡的影响 多个目标的情况前面的车结果正确后面两个车明显不对 这种情况就更不行了 原因 图片质量差即使是人也看不准车型车辆被遮挡导致截图后送入分类网络中不同种车的特征混合到一起了训练还不够训练数据量少 遇到的问题与解决 读取tfrecord时开始导出的图片是花的后来发现是图片的col和row分别对应的是widthheight因此在生成图片的时候数据获取不对。这点修正以后就好了。 图4-1 图片的宽高对应col和row问题 Inception_v4模型训练的时候要指定checkpoint_exclude_scopes参数把InceptionV4/Logits,InceptionV4/AuxLogits这两个层排除这在slim中会判断没有这两层的话会根据dataset.py中提供的_NUM_CLASSES参数从新配置分类的层。而前面的层目前还是保持不变的。尤其注意的是这里不需要额外指定trainable_scopes参数就行了否则训练只会训练这里指定的层。开始的时候我指定了 trainable_scopesInceptionV4/Logits,InceptionV4/AuxLogits 这样模型训练的时候将只训练最后这分类的两层。导致我们出现了如下问题 在6-8小时训练过后也没有在验证集上达到top1 80% 准确率 训练了53万步依然在4和5之间摇摆 Tensorboard上相关数据 可以看到我们的正则项损失趋向平缓说明模型参数好像没有继续拟合了。 学习率在finetune的过程中我修改过几次好像对模型影响效果不明显。 在tensorboard中这两个参数一直没有改变看demo的话好像是把这两个节点是给排除的。 经过分析之后感觉是训练出现了问题于是寻找答案发现slim上给出的finetune模式是这样的 即第一步是只训练线性分类那两层第二步是把所有参数一起训练即就是修改这API中这两个参数。 我这里最终是在之前自己训练的基础上继续把所有参数加入进去进行了训练得到了上一节中达到的效果。 关于识别到车辆信息后将识别到的汽车数据截取出来送进分类网络进行识别。有时会出现汽车的位置重叠或者同一辆车得到了两个检测识别框。有两种方案 直接选择置信度最高的框显示和识别。通过IOU计算将不同重叠情况的框进行合并处理 合并处理方案 还可以改进的地方 训练集中有许多错误的图片应该进行数据筛选提升识别的准确率。条件允许的情况下增加训练集进行更多的训练。优化模型运行速度将参数提取读取出来在传入图片之后直接进入计算步骤。现在车辆识别的步骤是经过多个session的可以通过合并成一个session来增加程序运行的速度。还想尝试同时分类和检测数据集一起训练的模式不知道结果会怎样。猜想能不能把两个网络连接成一个网络两个网络中应该有一些参数可以是共享的有没有可能把这些参数实现共享。实现共享后可以减少重复参数增加网络检测速度。批量识别的功能可以通过添加batch实现一次检测多幅图片。也可以增加视频检测功能。 完整代码下载地址Pyhon基于YOLOV实现的车辆品牌及型号检测项目
http://www.pierceye.com/news/870991/

相关文章:

  • 分析网站的网站福建交科建设有限公司官方网站
  • 深圳南园网站建设网站域名怎么设置方法
  • 网站的内链是什么意思网页布局有哪几种方法
  • 网站优化公司上海山东电力建设河北分公司网站
  • 甘肃省住房和城乡建设部网站首页专门网页制作工具有
  • 网站用vps做dns做网站的叫什么职位
  • 网站开发业务流程图网站商城与网站区别吗
  • 用新浪微博做网站百度找不到 网站
  • 哪个网站做照片书最好seo投放是什么意思
  • 书店网站开发目的和意义深圳网建公司
  • 餐饮网站方案wordpress 微论坛主题
  • 上海建筑网站设计多用户商城数据库设计
  • 网站做301将重定向到新域名深圳seo优化外包公司
  • 做视频导航网站有哪些天津西青区离哪个火车站近
  • 福州网站建设技术支持公司培训课程有哪些
  • 保定网站制作域名注册商查询
  • 医院网站建设公司价格低天津建设工程信息网 塘沽一中
  • 建设机械网站案例建国外网站需要多少钱
  • 比特币简易网站开发电商网站大全
  • 秀屿区建设局网站巨量广告投放平台
  • 合肥网站设计哪家公司好北京国贸网站建设公司
  • 帮人做网站怎么收费制作链接的app的软件有哪些
  • 商贸行业网站建设公司yoast wordpress seo
  • 上小学网站建设WordPress底部添加运行时间
  • 学校网站信息化建设工作心得网络营销现状分析
  • 藁城专业网站建设班级同学录网站建设
  • 北京手机网站开发公司wordpress用户列表
  • 上海 企业网站制成都营销型网站建设熊掌号
  • 无锡网站优化哪家好北京注册公司地址可以是住宅吗
  • 中国十大热门网站深圳哪做网站