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为例格式转换代码,内容如下 前言 由于本人水平有限,难免出现错漏…...
借助 Mybatis 的动态 SQL 解决传参不确定问题
在上一篇的:Mybatis 操作数据库的基本 CRUD 以及查询操作详析_糊糊涂涂的博客-CSDN博客中介绍了Mybatis使用固定SQL语句操作数据,本篇介绍 Mybatis 一个强大的特性:动态SQL。 动态 SQL 解决什么问题? 那当我们要执行的业务逻辑有…...
前端框架学习-Vue(一)
Vue简介 百度百科上关于vue的词条,说vue时一款渐进式JavaScript框架, 简单来说,渐进式是一种设计理念,即在不失去当前功能的前提下,逐步添加新的特性。 说明它时一直在进行维护的。 Vue3,中使用*.vue作为文件后缀,html,…...
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自动回显
需求如下: 1.点击父级节点 将父级节点下children中所有id放入数组 2.点击父级下的子节点 将点击的子节点放入数组 3.取消选择父节点,将放入数组的所有子节点id删除 4.根据选择的子节点数组,匹配他所属的父节点 <el-tree:data"tre…...
RocketMQ, Dashboard, 控制台安装
文章说明 本文主要说明RocketMQ的控制台(Dashboard)的安装过程。工作中一直用的是别人装好的,这次终于自己亲手装了一遍。 由于每次都要启动三个应用,比较烦,于是我写了一键启动脚本,分享给大家。这个脚本…...
chrome解决http自动跳转https问题
1.地址栏输入: chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 3.再次访问http域名不再自动跳转https了。...
FastGithub 下载
Releases dotnetcore/FastGithub GitHub 无需安装,双击UI程序即可运行。...
TSINGSEE青犀视频安防监控管理平台EasyNVR如何配置鉴权?
视频监控汇聚平台EasyNVR是基于RTSP/Onvif协议的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提供了丰富的API接口供…...
unittest 数据驱动DDT应用
前言 一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向、逆向等多种组合。所以在测试一个接口时通常会编写多条case,而这些case除了传参不同外,其实并没什么区别。 这个时候就可以利用ddt来管理测试数据…...
素数个数——数论
题目描述 求 1,2,⋯,N 中素数的个数。 输入格式 一行一个整数 N。 输出格式 一行一个整数,表示素数的个数。 样例 #1 样例输入 #1 10样例输出 #1 4提示 对于 100% 的数据,1≤1081≤N≤108。 本题时间限制在2秒以内。 因为题目时间限制是2秒,所…...
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接口 // 注意:如…...
【力扣刷题C++】环形链表
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/linked-list-cycle 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 【题目】给你一个链表的头节点 head ,判断链表中是否有…...
如何用Python统计CSDN质量分
文章目录 CSDN质量分查询selenium爬取博客地址单篇测试批量查询分析 CSDN质量分查询 CSDN对博客有一套分数评价标准,其查询入口在这里:质量分查询,效果大致如下 如果质量分太低,就会在博文的标题下面出现黄底黄字: 这…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(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的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
docker 部署发现spring.profiles.active 问题
报错: 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…...

