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

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

  • 前言
  • 相关介绍
    • COCO格式实例分割数据集转换为YOLO格式实例分割数据集
    • coco格式对应的json文件,以test.json为例
    • 格式转换代码,内容如下

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • PyTorch 是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了。它分为 CPU 和 GPU 版本,其他框架还有 TensorFlow、Caffe 等。PyTorch 是由 Facebook 人工智能研究院(FAIR)基于 Torch 推出的,它是一个基于 Python 的可续计算包,提供两个高级功能:1、具有强大的 GPU 加速的张量计算(如 NumPy);2、构建深度神经网络时的自动微分机制。
    在这里插入图片描述

COCO格式实例分割数据集转换为YOLO格式实例分割数据集

coco格式对应的json文件,以test.json为例

{"annotations": [{"id": 2094,"iscrowd": 0,"image_id": 173,"category_id": 1,"segmentation": [[1113,777,1115,785,1118,784,1120,786,1120,792,1118,796,1117,801,1117,868,1118,875,1120,880,1124,882,1138,882,1146,884,1153,899,1157,901,1166,901,1176,899,1178,897,1185,888,1204,887,1217,884,1291,886,1299,885,1302,883,1312,883,1323,890,1325,899,1332,905,1353,905,1360,895,1362,885,1364,863,1364,833,1359,797,1351,774,1326,735,1313,726,1297,722,1198,720,1191,716,1186,718,1177,718,1155,732,1150,736,1145,745,1145,747,1140,755,1135,769,1124,776,1121,776,1119,774]],"area": 38102,"bbox": [1113,716,251,189]},{"id": 577,"iscrowd": 0,"image_id": 43,"category_id": 3,"segmentation": [[950,795,954,803,960,803,961,802,963,801,959,796,957,794,952,794]],"area": 76.5,"bbox": [950,794,13,9]},{"id": 606,"iscrowd": 0,"image_id": 43,"category_id": 3,"segmentation": [[632,782,628,780,619,780,607,785,601,785,597,786,596,787,594,787,591,790,588,791,581,791,569,797,558,799,552,803,541,804,523,809,515,812,510,815,501,816,495,820,485,821,476,825,470,827,459,829,456,832,447,833,435,840,427,840,420,842,418,844,403,847,398,850,390,851,373,857,368,857,356,862,345,864,327,869,315,874,307,875,297,881,300,883,310,883,318,881,321,879,336,876,341,873,381,860,388,859,410,852,421,847,427,847,434,843,451,838,453,836,460,834,467,834,472,831,492,826,500,822,514,818,524,817,536,811,544,810,550,808,556,804,579,797,583,797,594,792,601,792,609,788,622,786]],"area": 1939,"bbox": [297,780,335,103]}],"images": [{"id": 762,"width": 1920,"height": 1080,"file_name": "0762.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 179,"width": 1920,"height": 1080,"file_name": "0179.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 13,"width": 1920,"height": 1080,"file_name": "0013.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1871,"width": 1920,"height": 1080,"file_name": "1871.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 396,"width": 1920,"height": 1080,"file_name": "0396.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1762,"width": 1920,"height": 1080,"file_name": "1762.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 89,"width": 1920,"height": 1080,"file_name": "0089.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 2198,"width": 1920,"height": 1080,"file_name": "2198.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 262,"width": 1920,"height": 1080,"file_name": "0262.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1132,"width": 1920,"height": 1080,"file_name": "1099.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 929,"width": 1920,"height": 1080,"file_name": "0929.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1396,"width": 1920,"height": 1080,"file_name": "1318.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 2208,"width": 1920,"height": 1080,"file_name": "2208.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1248,"width": 1920,"height": 1080,"file_name": "1248.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1909,"width": 1920,"height": 1080,"file_name": "1909.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1487,"width": 1920,"height": 1080,"file_name": "1492.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 341,"width": 1920,"height": 1080,"file_name": "0341.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1851,"width": 1920,"height": 1080,"file_name": "1851.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1742,"width": 1920,"height": 1080,"file_name": "1742.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1957,"width": 1920,"height": 1080,"file_name": "1957.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1418,"width": 1920,"height": 1080,"file_name": "1418.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1592,"width": 1920,"height": 1080,"file_name": "1592.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 19,"width": 1920,"height": 1080,"file_name": "0019.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 579,"width": 1920,"height": 1080,"file_name": "0579.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1407,"width": 1920,"height": 1080,"file_name": "1372.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1975,"width": 1920,"height": 1080,"file_name": "1975.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 931,"width": 1920,"height": 1080,"file_name": "0931.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1977,"width": 1920,"height": 1080,"file_name": "1977.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 40,"width": 1920,"height": 1080,"file_name": "0040.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1366,"width": 1920,"height": 1080,"file_name": "1403.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 889,"width": 1920,"height": 1080,"file_name": "0889.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1050,"width": 1920,"height": 1080,"file_name": "1050.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 669,"width": 1920,"height": 1080,"file_name": "0669.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 2216,"width": 1920,"height": 1080,"file_name": "2216.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 659,"width": 1920,"height": 1080,"file_name": "0659.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 294,"width": 1920,"height": 1080,"file_name": "0294.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1895,"width": 1920,"height": 1080,"file_name": "1895.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 706,"width": 1920,"height": 1080,"file_name": "0710.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1273,"width": 1920,"height": 1080,"file_name": "1273.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 461,"width": 1920,"height": 1080,"file_name": "0461.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1023,"width": 1920,"height": 1080,"file_name": "1023.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1594,"width": 1920,"height": 1080,"file_name": "1594.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1747,"width": 1920,"height": 1080,"file_name": "1747.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1854,"width": 1920,"height": 1080,"file_name": "1854.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 750,"width": 1920,"height": 1080,"file_name": "0750.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1580,"width": 1920,"height": 1080,"file_name": "1580.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1735,"width": 1920,"height": 1080,"file_name": "1735.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1504,"width": 1920,"height": 1080,"file_name": "1509.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1630,"width": 1920,"height": 1080,"file_name": "1630.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 629,"width": 1920,"height": 1080,"file_name": "0629.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 367,"width": 1920,"height": 1080,"file_name": "0367.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1833,"width": 1920,"height": 1080,"file_name": "1833.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 583,"width": 1920,"height": 1080,"file_name": "0583.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 178,"width": 1920,"height": 1080,"file_name": "0178.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 199,"width": 1920,"height": 1080,"file_name": "0199.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1836,"width": 1920,"height": 1080,"file_name": "1836.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1636,"width": 1920,"height": 1080,"file_name": "1636.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 382,"width": 1920,"height": 1080,"file_name": "0382.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 421,"width": 1920,"height": 1080,"file_name": "0421.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1296,"width": 1920,"height": 1080,"file_name": "1328.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 2054,"width": 1920,"height": 1080,"file_name": "2054.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1072,"width": 1920,"height": 1080,"file_name": "1095.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 601,"width": 1920,"height": 1080,"file_name": "0601.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1313,"width": 1920,"height": 1080,"file_name": "1345.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 726,"width": 1920,"height": 1080,"file_name": "0704.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 924,"width": 1920,"height": 1080,"file_name": "0924.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 139,"width": 1920,"height": 1080,"file_name": "0139.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 445,"width": 1920,"height": 1080,"file_name": "0445.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1436,"width": 1920,"height": 1080,"file_name": "1441.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 1835,"width": 1920,"height": 1080,"file_name": "1835.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 311,"width": 1920,"height": 1080,"file_name": "0311.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 173,"width": 1920,"height": 1080,"file_name": "0173.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""},{"id": 43,"width": 1920,"height": 1080,"file_name": "0043.jpg","license": "","flickr_url": "","coco_url": "","date_captured": ""}],"categories": [{"id": 1,"name": "car","color": [52,101,164],"supercategory": ""},{"id": 2,"name": "traffic_sign","color": [245,128,6],"supercategory": ""},{"id": 3,"name": "lane_lines","color": [115,210,22],"supercategory": ""},{"id": 4,"name": "person","color": [239,41,41],"supercategory": ""},{"id": 5,"name": "motorcyclist","color": [145,104,190],"supercategory": ""},{"id": 6,"name": "cyclist","color": [239,41,41],"supercategory": ""}]
}

格式转换代码,内容如下

import os
import json
import shutildef write_yolo_txt_file(txt_file_path,label_seg_x_y_list):if not os.path.exists(txt_file_path):with open(txt_file_path, "w") as file:for element in label_seg_x_y_list:file.write(str(element) + " ")file.write('\n')else:with open(txt_file_path, "a") as file:for element in label_seg_x_y_list:file.write(str(element) + " ")file.write('\n')def read_json(in_json_path,img_dir,target_dir):with open(in_json_path, "r", encoding='utf-8') as f:# json.load数据到变量json_datajson_data = json.load(f) # print(len(json_data['annotations']))# print(len(json_data['images']))# print(len(json_data['categories']))for annotation in json_data['annotations']: # 遍历标注数据信息# print(annotation)category_id = annotation['category_id']image_id = annotation['image_id']for image in json_data['images']: # 遍历图片相关信息if image['id'] == image_id:width = image['width'] # 图片宽height = image['height'] # 图片高img_file_name = image['file_name'] # 图片名称txt_file_name = image['file_name'].split('.')[0] + '.txt' # 要保存的对应txt文件名break# print(width,height,img_file_name,txt_file_name)segmentation = annotation['segmentation'] # 图像分割点信息[[x1,y1,x2,y2,...,xn,yn]]seg_x_y_list = [i/width if num%2==0 else i/height for num,i in enumerate(segmentation[0])] # 归一化图像分割点信息label_seg_x_y_list = seg_x_y_list[:]label_seg_x_y_list.insert(0,category_id) # 图像类别与分割点信息[label,x1,y1,x2,y2,...,xn,yn]# print(label_seg_x_y_list)# 写txt文件txt_file_path = target_dir + txt_file_name# print(txt_file_path)write_yolo_txt_file(txt_file_path,label_seg_x_y_list)# 选出txt对应img文件img_file_path = img_dir + img_file_name# print(img_file_path)shutil.copy(img_file_path,target_dir)if __name__=="__main__":img_dir = 'JPEGImages/'target_dir = 'testset/'if not os.path.exists(target_dir):os.mkdir(target_dir)in_json_path = './test.json'read_json(in_json_path,img_dir,target_dir)

在这里插入图片描述在这里插入图片描述

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测

相关文章:

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集 前言相关介绍COCO格式实例分割数据集转换为YOLO格式实例分割数据集coco格式对应的json文件,以test.json为例格式转换代码,内容如下 前言 由于本人水平有限,难免出现错漏&#xf…...

借助 Mybatis 的动态 SQL 解决传参不确定问题

在上一篇的:Mybatis 操作数据库的基本 CRUD 以及查询操作详析_糊糊涂涂的博客-CSDN博客中介绍了Mybatis使用固定SQL语句操作数据,本篇介绍 Mybatis 一个强大的特性:动态SQL。 动态 SQL 解决什么问题? 那当我们要执行的业务逻辑有…...

前端框架学习-Vue(一)

Vue简介 百度百科上关于vue的词条,说vue时一款渐进式JavaScript框架, 简单来说,渐进式是一种设计理念,即在不失去当前功能的前提下,逐步添加新的特性。 说明它时一直在进行维护的。 Vue3,中使用*.vue作为文件后缀,html&#xff0c…...

Elasticsearch Query DSL

Elasticsearch Query DSL 这里使用的 Elasticsearch 的版本为 7.12.1。 1、基本概念 1.1 文档(Document) ElasticSearch 是面向文档的,文档是所有可搜索数据的最小单位,例如 MySQL 的一条数据记录。 文档会被序列化成为 json 格式,保存在…...

腾讯云 CODING × K+ 峰会再次携手开启软件行业新风向

点击链接了解详情 近日,K 全球软件研发行业创新峰会在北京成功举办。腾讯云 CODING 作为云原生工具领跑者受邀参与此次峰会。会议现场,展台打卡火爆、演讲干货满满,为观众带来高质量的行业内容。 腾讯云全链路高效 开发上云实践‍ 技术创新…...

2023年发布的25个开源大型语言模型总结

大型语言模型(llm)是一种人工智能(AI),在大量文本和代码数据集上进行训练。它们可以用于各种任务,包括生成文本、翻译语言和编写不同类型的创意内容。 今年开始,人们对开源LLM越来越感兴趣。这些模型是在开源许可下发布的,这意味…...

Istio网关Gateway 启用TLS

Istio网关Gateway概述 Istio网关Gateway是一个负责处理南北向流量的组件,它通常会暴露服务网格内部的服务,以便外部的请求能够访问到服务网格中的服务。Istio网关Gateway支持多种协议,包括HTTP、HTTPS和GRPC等。 在Istio网关Gateway中&#…...

slam建图与定位_cartographer代码阅读(7)后端约束构建

1.cartographer里的节点:当扫描匹配结束后,有新的一帧scan加入到submap中,这个扫描匹配的结果就叫做节点 global_trajectory_builder.cc // 将匹配后的结果 当做节点 加入到位姿图中auto node_id pose_graph_->AddNode(matching_result->insertio…...

Android usb 配件模式通信示例

当使用 Android 设备作为 USB 配件时,可以使用 Android 提供的 USB Accessory API 来进行 USB 通信。以下是一个简单的 Android USB 配件模式的通信例子。在本例中,我们将接收连接到 Android 设备的 USB 主机发送的数据并向 USB 主机发送响应。 首先&am…...

【Hive实战】Hive的压缩池与锁

文章目录 Hive的压缩池池的分配策略自动分配手动分配隐式分配 池的等待超时Labeled worker pools 标记的工作线程(自定义线程池)Default pool 默认池Worker allocation 工作线程的分配 锁Turn Off ConcurrencyDebuggingConfigurationhive.support.concur…...

【VUE】使用elementUI tree组件根据所选id自动回显

需求如下&#xff1a; 1.点击父级节点 将父级节点下children中所有id放入数组 2.点击父级下的子节点 将点击的子节点放入数组 3.取消选择父节点&#xff0c;将放入数组的所有子节点id删除 4.根据选择的子节点数组&#xff0c;匹配他所属的父节点 <el-tree:data"tre…...

RocketMQ, Dashboard, 控制台安装

文章说明 本文主要说明RocketMQ的控制台&#xff08;Dashboard&#xff09;的安装过程。工作中一直用的是别人装好的&#xff0c;这次终于自己亲手装了一遍。 由于每次都要启动三个应用&#xff0c;比较烦&#xff0c;于是我写了一键启动脚本&#xff0c;分享给大家。这个脚本…...

chrome解决http自动跳转https问题

1.地址栏输入&#xff1a; chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏&#xff0c;输入想处理的域名&#xff0c;点击delete。 3.再次访问http域名不再自动跳转https了。...

FastGithub 下载

Releases dotnetcore/FastGithub GitHub 无需安装&#xff0c;双击UI程序即可运行。...

TSINGSEE青犀视频安防监控管理平台EasyNVR如何配置鉴权?

视频监控汇聚平台EasyNVR是基于RTSP/Onvif协议的视频平台&#xff0c;可支持将接入的视频流进行全平台、全终端的分发&#xff0c;分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求&#xff0c;我们也提供了丰富的API接口供…...

unittest 数据驱动DDT应用

前言 一般进行接口测试时&#xff0c;每个接口的传参都不止一种情况&#xff0c;一般会考虑正向、逆向等多种组合。所以在测试一个接口时通常会编写多条case&#xff0c;而这些case除了传参不同外&#xff0c;其实并没什么区别。 这个时候就可以利用ddt来管理测试数据&#xf…...

素数个数——数论

题目描述 求 1,2,⋯,N 中素数的个数。 输入格式 一行一个整数 N。 输出格式 一行一个整数&#xff0c;表示素数的个数。 样例 #1 样例输入 #1 10样例输出 #1 4提示 对于 100% 的数据&#xff0c;1≤1081≤N≤108。 本题时间限制在2秒以内。 因为题目时间限制是2秒&#xff0c;所…...

express编写一个简单的get接口

/01编写get接口.jsconst express require(express) const app express()// 创建路由 const useRouter require(./router/user.js) // 注册路由 app.use(/api,useRouter)app.listen(8080, (req, res) > {console.log(8080监听) }) ./02编写post接口 // 注意&#xff1a;如…...

【力扣刷题C++】环形链表

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/linked-list-cycle 著作权归领扣网络所有。商业转载请联系官方授权&#xff0c;非商业转载请注明出处。 【题目】给你一个链表的头节点 head &#xff0c;判断链表中是否有…...

如何用Python统计CSDN质量分

文章目录 CSDN质量分查询selenium爬取博客地址单篇测试批量查询分析 CSDN质量分查询 CSDN对博客有一套分数评价标准&#xff0c;其查询入口在这里&#xff1a;质量分查询&#xff0c;效果大致如下 如果质量分太低&#xff0c;就会在博文的标题下面出现黄底黄字&#xff1a; 这…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...