当前位置:网站首页>The file marked by labelme is converted to yolov5 format
The file marked by labelme is converted to yolov5 format
2022-07-03 03:09:00 【AphilGuo】
import json
import os
def convert(img_size, box):
x1 = box[0]
y1 = box[1]
x2 = box[2]
y2 = box[3]
center_x = (x1 + x2) * 0.5 / img_size[0]
center_y = (y1 + y2) * 0.5 / img_size[1]
w = abs((x2 - x1)) * 1.0 / img_size[0]
h = abs((y2 - y1)) * 1.0 / img_size[1]
return (center_x, center_y, w, h)
def convert1(img_size, box):
x1 = box[0]
y1 = box[1]
center_x = x1 / img_size[0]
center_y = y1 / img_size[1]
return (center_x, center_y)
def decode_json(jsonfloder_path, json_name):
txt_name = '/yolov5_labels/' + json_name[0:-5] + '.txt'
# txt Save the location
txt_file = open(txt_name, 'w') # te files
json_path = os.path.join(json_folder_path, json_name)
data = json.load(open(json_path, 'r'))
img_w = data['imageWidth']
img_h = data['imageHeight']
for i in data['shapes']:
if (i['shape_type'] == 'rectangle'): # Rectangular box dimensions only
x1 = float(i['points'][0][0])
y1 = float(i['points'][0][1])
x2 = float(i['points'][1][0])
y2 = float(i['points'][1][1])
if x1 < 0 or x2 < 0 or y1 < 0 or y2 < 0:
continue
else:
bb = (x1, y1, x2, y2)
bbox = convert((img_w, img_h), bb)
if i['label'] == "jc_re":
txt_file.write("0 " + " ".join([str(a) for a in bbox])+" ")
# elif i['label'] == "jc_point":
# txt_file.write("1 " + " ".join([str(a) for a in bbox]) + '\n')
# elif i['label'] == "Computer":
# txt_file.write("2 " + " ".join([str(a) for a in bbox]) + '\n')
# else:
# txt_file.write("3 " + " ".join([str(a) for a in bbox]) + '\n')
elif (i['shape_type'] == 'point'): # Applicable point annotation
x1 = float(i['points'][0][0])
y1 = float(i['points'][0][1])
if x1 < 0 or y1 < 0:
continue
else:
bb = (x1, y1)
bbox = convert1((img_w, img_h), bb)
if i['label'] == "jc_point":
# txt_file.write(" ".join([str(a) for a in bbox]) + "\n")
txt_file.write(" ".join([str(a) for a in bbox])+" ")
if __name__ == "__main__":
json_folder_path = 'json_path' # json Folder path
json_names = os.listdir(json_folder_path) # file name
for json_name in json_names: # output all files
if json_name[-5:] == '.json': # just work for json files
decode_json(json_folder_path, json_name)
边栏推荐
- Change cell color in Excel using C - cell color changing in Excel using C
- Can netstat still play like this?
- Le processus de connexion mysql avec docker
- 复选框的使用:全选,全不选,选一部分
- 一文带你了解 ZigBee
- [leectode 2022.2.15] lucky numbers in the matrix
- Gavin teacher's perception of transformer live class - rasa project's actual banking financial BOT Intelligent Business Dialogue robot architecture, process and phenomenon decryption through rasa inte
- 【富瀚6630编码存录像,用rtsp服务器及时间戳同步实现vlc观看录像】
- C # general interface call
- TCP handshake three times and wave four times. Why does TCP need handshake three times and wave four times? TCP connection establishes a failure processing mechanism
猜你喜欢

Opengauss database development and debugging tool guide

Vs Code configure virtual environment

Anhui University | small target tracking: large-scale data sets and baselines

MySql实战45讲【SQL查询和更新执行流程】

Sqlserver row to column pivot

Nasvit: neural architecture search of efficient visual converter with gradient conflict perception hypernetwork training

Thunderbolt Chrome extension caused the data returned by the server JS parsing page data exception

Agile certification (professional scrum Master) simulation exercise-2

Segmentation fault occurs during VFORK execution

用docker 连接mysql的过程
随机推荐
内存泄漏工具VLD安装及使用
超好用的日志库 logzero
3D drawing example
基于Qt的yolov5工程
[shutter] monitor the transparency gradient of the scrolling action control component (remove the blank of the top status bar | frame layout component | transparency component | monitor the scrolling
MySQL practice 45 lecture [row lock]
What does it mean when lambda is not entered?
The idea setting code is in UTF-8 idea Properties configuration file Chinese garbled
Check log4j problems using stain analysis
As a leader, how to control the code version and demand development when the epidemic comes| Community essay solicitation
How to use asp Net MVC identity 2 change password authentication- How To Change Password Validation in ASP. Net MVC Identity 2?
labelimg生成的xml文件转换为voc格式
Vs Code configure virtual environment
C # general interface call
Model transformation onnx2engine
What happens between entering the URL and displaying the page?
C#通用接口调用
How to return ordered keys after counter counts the quantity
The core idea of performance optimization, dry goods sharing
Vs 2019 configure tensorrt to generate engine