介绍YOLO(You Only Look Once)数据集格式是一种用于物体检测任务的数据格式。YOLO要求训练数据集以特定的方式组织和标记,以便模型能够有效地学习如何检测不同类别的物体。以下是YOLO数据集的基本格式和组成部分。
数据集结构
数据文件夹:通常,数据集会被放置在一个文件夹中,其中包含图像文件(如.jpg, .jpeg, .png等)。
标签文件夹:与图像对应的标签文件(.txt)通常放在另一个文件夹中,或者与图像文件夹并列存放。
标签文件格式每个图像都有一个对应的标签文件(.txt),文件名与图像文件相同,只是扩展名不同。标签文件中的每一行对应图像中的一个物体,并且每一行包含五个数值:
类别索引:表示物体所属类别的整数索引(从0开始)。
中心点 x 坐标:相对于图像宽度的归一化坐标。
中心点 y 坐标:相对于图像高度的归一化坐标。
宽度:相对于图像宽度的归一化宽度。
高度:相对于图像高度的归一化高度。
浅色版本
0 0.45 0.50 0.35 0.30 # 第一个物体,类别0,中心点在(0.45, 0.50),宽度0.35,高度0.30
1 0.75 0.60 ...
python
未读了解如何在 Python 中使用 JSON,从基础到高级技术。本指南涵盖解析、序列化、API 集成和最佳实践。
1. JSON 简介1.1. 什么是 JSON?JSON(JavaScript 对象表示法)是一种轻量级数据交换格式,人类可以轻松读取和写入,机器也可以轻松解析和生成。虽然 JSON 源自 JavaScript,但它与语言无关,并且受到许多编程语言(包括 Python)的支持。
1.2. 为什么使用 JSON?JSON 因其简单易读而成为 Web 数据交换的事实标准。无论使用 Web API还是在应用程序之间交换数据,JSON 通常都是首选格式。
在gis领域,基于json的基础上,开发出了geojson格式。
1.3. JSON 与其他数据格式
JSON 与 XML:与更为冗长的 XML 相比,JSON 更简洁且更易于使用。
JSON 与 YAML:YAML 通常被认为更易于人类阅读,但与 JSON 相比更容易出现解析错误。
2.在Python中读取和解析JSON2.1.从字符串加载 JSON要从字符串解析 JSON 数据,可以使用json.loads()函数。该函数将 ...
本文章仅用于学习交流,请勿用于非法用途cover: https://mmbiz.qpic.cn/sz_mmbiz_gif/LFPriaSjBUZKtt2RBibtkN5YCW22Pl5RlRgREs9OI663LvaZFab3uaYiapIdsjIB3xB4fPULCmepXn0kXKFOTGUbw/640?wx_fmt=gif&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1
浅谈逆向Unity导出的vx小游戏的思路
用到的工具比较多,我把全部链接都放文末
背景:刷抖音时突然蹦出个广告,还不小心点进去了就试玩了一下,发现还挺有趣的,嗯可是玩了一小会后发现打不过了,还得充钱才能变得更强???于是直接忍不了了 直接开机,上号!!!
初步分析小游戏
打开对应的wxapkg目录
解包
复制代码 隐藏代码
unveilr wx -f "D:\WeChat Files\WeChat Files\Applet\wxxxxxxx\34"
到这一步可以确定是unity项目转成的小游戏了
当然你通过解包 ...
这个号分享的、开源的代码,基本上是可以直接运行的,也是免费的。
为什么是免费的?主要是现在是在为爱发电,如果对你有帮助,点个赞不过分吧。
回到今天的主题,之前写过shp文件转换为KML文件,里面附上了代码。代码的实现仅依靠OGR库。而KML是基于xml格式,当时是用字符串拼接的方式进行构建XML。
当时记得那篇博客发出去后,有老哥建议:可以用标准的XML库来构建KML。
这次将重构之前的代码,并且将这个功能写到rstool小工具里。
结果展示输入文件为shp格式,其在QGIS上可视化如下:
shp属性表如下:
输出文件为KML格式,其在google earth 可视化如下:
查看标注信息,需要点击对应的图形,如下:
生成带标注的KML的代码import os
import xml.etree.ElementTree as ET
from osgeo import ogr
def convert_to_kml(shapefile, outpath):
# 打开 Shapefile
ds = ogr.Open(shapefile)
layer = ds ...
代码from osgeo import gdal
def resample_img(input_path, output_path, multiple = 10):
"""Resamples a raster dataset to 100 meters using GDAL.
Args:
input_path: Path to the input raster dataset.
output_path: Path to the output raster dataset.
"""
# Open the input raster dataset
input_ds = gdal.Open(input_path)
output_format = "GTiff"
# Create the output raster dataset
resampling_method = gdal.GRA_Bilinear
geo = input_ds.GetGeoTransform()
ou ...
最近工作遇到了一个小需求,用一个矢量文件去裁剪一个超级大的栅格文件(单文件超过140G)。
这个需求在arcgis很容易实现,但是arcgis有时候会卡顿。综上,用代码的方式去实现这个功能或是更好的选择。
代码from osgeo import gdal
import os
# 根据shp 裁剪影像
def clip_image_by_shp(input_file, output_file, clip_shape, nodata=0):
'''
@todo 根据shp 裁剪影像
@param shp_file: shp file
@param img_file: image file
@param outpath: output path
@return:
'''
outpath = os.path.dirname(output_file)
if os.path.exists(outpath):
pass
else:
os.makedirs(outpath)
...
上个月写了一个工具是关于shp文件转换为CAD文件,
前天写了一篇shp文件转换为CAD文件的博客(公众号),今天是周六,也没啥事做,所以我们继续来完善这个小工具吧!
有个朋友反映这个小工具的存在可以改进的地方、问题,并希望可以开发继续开发字段分层的功能。
“有没有办法转换成填充,按某个字段分图层,这一步很重要啊”
这里有个难点是:我对CAD文件不熟悉。
所以把上面的需求拆分为,按照字段读取矢量,分别将这些字段中的不同值的点位数据,保存为多个DXF文件。
花了亿点点时间,把之前的代码改了。
最后花了很多时间为这个工具写一个界面,如果有人需要用这个小工具,请在公众号回复dxf 获取链接。
代码以开源,地址是https://github.com/ytkz11/rs-tool
测试测试数据是一个有五个图形的shp,在QGIS打开如下:
打开它的属性表,具体信息如下:
可以看到shp数据中有两个字段,其中target字段的内容是我手动写入的,目的是为了测试。
假设target字段是我们的目标字段,测试结果如下:
在输入文件的同目录下,生成了四个文件,分别是
这里是把所有的targe ...
上个月写了一个工具是关于shp文件转换为CAD文件,
后面被吐槽说这个工具的大小为390M。
我承认,这个是“小工具”一点也不小!
那是什么原因造成的呢?
其实这个python打包的通病问题,python作为胶水语言,可以快速开发。想要打包成二进制文件交给其他人使用,这个二进制文件一般是巨大无比的。
更底层的原因是,在代码中,我们导入了geopandas这个库,geopandas很好用,是因为它引用了非常多的第三方库,所以使用pyinstaller打包的时候,往往会把这些“无用”的第三方库也打包进去我们的项目里面。
同样是这个程序,我曾打包后的文件大小是3G多,我看了一下 ,好家伙啊,它把torch-cuda依赖也打包进去了!
针对这个shp文件转换为CAD文件小工具,我们可以改进它,主要做法是,不导入geopandas,即不使用geopandas!
经过网上冲浪查资料,我发现有个纯python包叫做ezdxf,这ezdxf可以对dxf文件读写,很符合这个小工具的要求。
我有了个大体的思路,使用ogr读取矢量文件的数据。ogr是啥?ogr就是osgeo里面的子库,ogr和gdal同一 ...