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

旅游攻略网站开发个人建网站的步骤

旅游攻略网站开发,个人建网站的步骤,wordpress 模板 下载,新手学编程用什么软件1 目标检测是计算机视觉领域中的一项重要任务#xff0c;它的目标是在图像或视频中检测出物体的位置和类别。YOLO#xff08;You Only Look Once#xff09;是一系列经典的目标检测算法#xff0c;最初由Joseph Redmon等人于2016年提出。YOLO算法具有快速、简单、端到端的特… 1 目标检测是计算机视觉领域中的一项重要任务它的目标是在图像或视频中检测出物体的位置和类别。YOLOYou Only Look Once是一系列经典的目标检测算法最初由Joseph Redmon等人于2016年提出。YOLO算法具有快速、简单、端到端的特点并且在速度和准确率上取得了很好的平衡因此受到了广泛的关注和应用。 YOLO系列算法的核心思想是将目标检测问题转化为一个回归问题。它将整个图像分成一个固定大小的网格每个网格负责检测该网格内的物体。YOLO算法在每个网格上预测多个边界框bounding box以及每个边界框所属的物体类别以及置信度分数。 YOLO算法系列有多个版本包括YOLOv1、YOLOv2也称为YOLO9000、YOLOv3和YOLOv4等。每个版本都在YOLO的基础上进行了改进提高了检测精度、速度和通用性。 「今天我们将实现YOLO V6的遥感影像目标检测。」 YOLO V6 YOLOv6 是美团视觉智能部研发的一款目标检测框架致力于工业应用。本框架同时专注于检测的精度和推理效率在工业界常用的尺寸模型中YOLOv6-nano 在 COCO 上精度可达 35.0% AP在 T4 上推理速度可达 1242 FPSYOLOv6-s 在 COCO 上精度可达 43.1% AP在 T4 上推理速度可达 520 FPS。在部署方面YOLOv6 支持 GPUTensorRT、CPUOPENVINO、ARMMNN、TNN、NCNN等不同平台的部署极大地简化工程部署时的适配工作。目前项目已开源至 Github。 解决的问题 RepVGG提出的结构重参数化方法表现良好但在此之前没有检测模型使用。作者认为RepVGG的block缩放不合理小模型和大模型没必要保持相似网络结构小模型使用单路径架构大模型就不适合在单路径上堆参数量。 使用重参数化的方法后检测器的量化也需要重新考虑否则因为训练和推理时的结构不同性能可能会退化。 前期工作很少关注部署。前期工作中推理是在V100等高配机器完成的但实际使用时往往用T4等低功耗推理gpu作者更关注后者的性能。 针对网络结构的变化重新考虑标签分配和损失函数。 对于部署可以调整训练策略在不增加推理成本的情况下提升性能如使用知识蒸馏。 具体实现 网络设计 在one-satge的目标检测网络中Backbone决定了表征能力也很大程度上影响了参数量和推理效率Neck主要作用是聚合高低层次的语义信息Head由几个卷积层组成负责预测最终结果。 考虑到硬件推理的因素YOLOv6提出两个可缩放的可重参数化的Backbone和Neck来适应不同大小的模型还提出一个使用混合通道策略的高效解耦头总体网络结构如下 BackBone 在分类性能上多分支网络相比单分支表现更好但随并行性降低其推理速度减慢。RepVGG的结构重参数化方式采用多分支训练和单分支推理达到了较好的精度-速度权衡。 YOLOv6设计了可重参数化的Backbone并命名为EfficientRep。对于小模型backbone的主要组成部分是训练阶段的 RepBlock如图2a所示。在推理阶段RepBlock转换为3×3卷积层ReLU激活函数的堆叠记为 RepConv如图2b所示。因为3*3卷积在CPU和GPU上优化和计算密度都更好所以在增强表征能力的同时可以有效利用计算资源同时增加推理速度。 然而随模型容量增加单路径模型的计算代价和参数量呈指数级提升所以改用CSPStackRep Block作为中大型网络的Backbone如图2c所示。CSPStackRep Block由三个1×1卷积和两个带残差连接的RepVGG block(训练使用)或RepConv(推理使用)组成的模块堆叠。可以在不增加计算成本的前提下提升性能做到准确率和速度的权衡。 Neck 集成多尺度的特征是检测模型常用且有效的手段YOLOv6也不例外在PAN的基础上把CSPBlock替换为RepBlock(小模型使用)或CSPStackRep Block(大模型使用)并调整宽度和深度将YOLOv6的颈部命名为Rep-PAN。 Head YOLOv5的检测头在分类和回归上共享参数而FCOS和YOLOX将两个分支解耦在每个分支中引入两个额外3×3卷积层提高性能。YOLOv6则采用混合通道策略构建高效解耦头即中间3*3卷积只使用一个Head的宽度由Backbone和Neck的宽度因子共同缩放从而进一步降低了计算成本和延迟。此外YOLOv6使用基于锚点的Anchor free方式预测锚点到边界框四周的距离。 源码 源码地址https://github.com/meituan/YOLOv6 安装 git clone https://github.com/meituan/YOLOv6cd YOLOv6pip install -r requirements.txt DIOR数据集 「DIOR」由23463张最优遥感图像和190288个目标实例组成这些目标实例用轴向对齐的边界框手动标记由192472个轴对齐的目标边界框注释组成。数据集中图像大小为800×800像素空间分辨率为0.5m ~ 30m。该数据集分为训练验证集11725张图像和测试集11738张图像。 「DIOR」是一个用于光学遥感图像目标检测的大规模基准数据集。涵盖20个对象类。这20个对象类是飞机、机场、棒球场、篮球场、桥梁、烟囱、水坝、高速公路服务区、高速公路收费站、港口、高尔夫球场、地面田径场、天桥、船舶、体育场、储罐、网球场、火车站、车辆和风磨。 论文地址Object Detection in Optical Remote Sensing Images: A Survey and A New Benchmark 数据集处理 由于dior数据集是voc格式所以需要将其转换为yolo格式。可以参照yolo v6中给出的voc2yolo.py。 也可以参照以下的方法。 新建一个文件夹JPEGImages将JPEGImages-test和PEGImages-trainval里的图片都放进JPEGImages里面。 代码参考链接https://blog.csdn.net/weixin_43365477/article/details/135622835 # coding:utf-8import osimport randomimport argparseimport xml.etree.ElementTree as ETfrom os import getcwdfrom shutil import copyfileparser  argparse.ArgumentParser()#xml文件的地址根据自己的数据进行修改 xml一般存放在Annotations下parser.add_argument(--xml_path, defaultDIOR/Annotations, typestr, helpinput xml label path)#数据集的划分地址选择自己数据下的ImageSets/Mainopt  parser.parse_args()sets  [train, val, test]classes  [airplane, airport, baseballfield, basketballcourt, bridge, chimney, dam,              Expressway-Service-area, Expressway-toll-station, golffield, groundtrackfield, harbor,              overpass, ship, stadium, storagetank, tenniscourt, trainstation, vehicle, windmill]abs_path  os.getcwd()print(abs_path)# if not os.path.exists(/DIOR):#     os.makedirs(DIOR)if not os.path.exists(DIOR_dataset/labels/):    os.makedirs(DIOR_dataset/labels/)if not os.path.exists(DIOR_dataset/labels/train):    os.makedirs(DIOR_dataset/labels/train)if not os.path.exists(DIOR_dataset_yolo/labels/test):    os.makedirs(DIOR_dataset/labels/test)if not os.path.exists(DIOR_dataset_yolo/labels/val):    os.makedirs(DIOR_dataset/labels/val)if not os.path.exists(DIOR_dataset/images/):    os.makedirs(DIOR_dataset/images/)if not os.path.exists(DIOR_dataset/images/train):    os.makedirs(DIOR_dataset/images/train)if not os.path.exists(DIOR_dataset/images/test):    os.makedirs(DIOR_dataset/images/test)if not os.path.exists(DIOR_dataset/images/val):    os.makedirs(DIOR_dataset/images/val)def convert(size, box):    dw  1. / (size[0])    dh  1. / (size[1])    x  (box[0]  box[1]) / 2.0 - 1    y  (box[2]  box[3]) / 2.0 - 1    w  box[1] - box[0]    h  box[3] - box[2]    x  x * dw    w  w * dw    y  y * dh    h  h * dh    return x, y, w, hdef convert_annotation(image_id, path):#输入输出文件夹根据实际情况进行修改    in_file  open(DIOR/Annotations/%s.xml % (image_id), encodingUTF-8)    out_file  open(DIOR_dataset/labels/  path  /%s.txt % (image_id), w)    tree  ET.parse(in_file)    root  tree.getroot()    size  root.find(size)    w  int(size.find(width).text)    h  int(size.find(height).text)    for obj in root.iter(object):        #difficult  obj.find(difficult).text        #difficult  obj.find(Difficult).text        cls  obj.find(name).text        if cls not in classes:            continue        cls_id  classes.index(cls)        xmlbox  obj.find(bndbox)        b  (float(xmlbox.find(xmin).text), float(xmlbox.find(xmax).text), float(xmlbox.find(ymin).text),             float(xmlbox.find(ymax).text))        b1, b2, b3, b4  b        # 标注越界修正        if b2  w:            b2  w        if b4  h:            b4  h        b  (b1, b2, b3, b4)        bb  convert((w, h), b)        out_file.write(str(cls_id)      .join([str(a) for a in bb])  \n)train_percent  0.6test_percent  0.2val_percent  0.2xmlfilepath  opt.xml_path# txtsavepath  opt.txt_pathtotal_xml  os.listdir(xmlfilepath)# if not os.path.exists(txtsavepath):#     os.makedirs(txtsavepath)num  len(total_xml)list_index  range(num)list_index  list(list_index)random.shuffle(list_index)train_nums  list_index[:int(num * train_percent)]test_nums  list_index[int(num * train_percent): int(num * test_percent)int(num * train_percent)]val_nums  list_index[int(num * test_percent)int(num * train_percent):]for i in list_index:    name  total_xml[i][:-4]    if i in train_nums:        convert_annotation(name, train)   # lables        image_origin_path  DIOR/JPEGImages/  name  .jpg        image_target_path  DIOR_dataset/images/train/  name  .jpg        copyfile(image_origin_path, image_target_path)    if i in test_nums:        convert_annotation(name, test)   # lables        image_origin_path  DIOR/JPEGImages/  name  .jpg        image_target_path  DIOR_dataset/images/test/  name  .jpg        copyfile(image_origin_path, image_target_path)    if i in val_nums:        convert_annotation(name, val)   # lables        image_origin_path  DIOR/JPEGImages/  name  .jpg        image_target_path  DIOR_dataset/images/val/  name  .jpg        copyfile(image_origin_path, image_target_path) 最终会生成yolo格式的数据集且按训练集、验证集、测试集划分开。最终数据集形式如下 YOLO V6训练DIOR YOLO V6的操作文档可以看这里https://yolov6-docs.readthedocs.io/zh-cn/latest/ 我们针对我们制作的DIOR数据集来修改参数。 修改dataset.yaml 找到源代码中data/dataset.yaml。 # Please insure that your custom_dataset are put in same parent dir with YOLOv6_DIR# 放入刚处理的DIOR数据集路径train: .\DIOR_dataset\images\train # train imagesval: .\DIOR_dataset\images\val # val imagestest: .\DIOR_dataset\images\test # test images (optional)# whether it is coco dataset, only coco dataset should be set to True.is_coco: False# Classes类别名nc: 20  # number of classesnames: [airplane, airport, baseballfield, basketballcourt, bridge, chimney, dam,              Expressway-Service-area, Expressway-toll-station, golffield, groundtrackfield, harbor,              overpass, ship, stadium, storagetank, tenniscourt, trainstation, vehicle, windmill]  # class names 修改train.py 找到源代码中tools/train.py。 修改img-size为800其他选项根据注释自行修改。 训练 运行train.py 测试 训练结束后运行tools/eval.py。即可验证精度注意weights改成训练结果路径img-size为800。 输出结果 运行tools/infer.py source为test图片路径其它参数根据注释选择性修改。 部分测试结果如下。 总结 今天的分享就到这里感兴趣的可以自行下载数据集与源代码试试。 往期精彩 SENet实现遥感影像场景分类 DFANet|实现遥感影像道路提取 基于topformer实现遥感影像道路提取 segformer实现多分类遥感影像语义分割 pyqt5实现语义分割GUI界面工具 本文由 mdnice 多平台发布
http://www.hkea.cn/news/14258917/

相关文章:

  • 西宁网站建设公司排行wordpress 4.8 pdf缩略图
  • html php网站开发报告徐州网站平台制作公司
  • 手机网站常用代码基于wordpress的开发
  • 怎么增加网站的权重seo完整教程视频教程
  • wordpress安装指南南京企业网站排名优化
  • 可信网站证书wordpress download 插件
  • 互联网网站开发什么网站可以做相册
  • 淘宝运营跟做网站哪种工资高百度电话号码查询平台
  • 电子商务网站建设有管理课后答案平台期一般持续多久
  • 网站怎么做权重哪个网站做x展架比较好 知乎
  • 上海哪家做网站好营销手段和技巧
  • 火车头自动上传wordpress嘉兴关键词优化报价
  • dede模板 展柜网站源码怎么做网站的搜索引擎
  • 司法局网站开发方案对企业网站建设的建议
  • 深圳网站制作济南惠州市seo上词
  • 四川网站建设培训软件外包专业
  • 化工建设网站长尾关键词排名推广
  • 网站改版是否有影响中国石化工程建设有限公司设计许可证编号
  • 制作网站首页wordpress用户名在哪看
  • 怎样做美食网站西安软件制作公司
  • 网站内页检测做暑假工的网站
  • 辽宁网站seoai制作网页教程
  • 什么网站做推广最好网站八个
  • 徐州网站wordpress 高级选项
  • 节点网站洛阳公司注册
  • 有没有做网站的随州网站开发的背景知识
  • 网站建设与管理维护 李建青wordpress整站搬家首页空白问题
  • 软件开发和网站开发难度网站返回指定位置怎么做
  • zhihe网站建设 淘宝建立充电站需要多少钱
  • 个性化网站猎头公司的原则是