yolov8 pose coco2yolo

import os
import json
from tqdm import tqdm
import argparseparser = argparse.ArgumentParser()
# 這里根據自己的json文件位置,換成自己的就行
parser.add_argument('--json_path',default=r'C:\Users\k167\Desktop\dataset\person_dataset/instances_val2017_person_3dataset_merged_hip.json', type=str,help="input: coco format(json)")
# 這里設置.txt文件保存位置
parser.add_argument('--save_path', default=r'C:\Users\k167\Desktop\dataset\person_dataset', type=str,help="specify where to save the output dir of labels")
parser.add_argument('--root', default=r'C:\Users\k167\Desktop\dataset\person_dataset', type=str,help="specify where to save the output dir of labels")
arg = parser.parse_args()def convert(size, box):dw = 1. / (size[0])dh = 1. / (size[1])x = box[0] + box[2] / 2.0y = box[1] + box[3] / 2.0w = box[2]h = box[3]x = round(x * dw, 6)w = round(w * dw, 6)y = round(y * dh, 6)h = round(h * dh, 6)return (x, y, w, h)if __name__ == '__main__':json_file = arg.json_path  # COCO Object Instance 類型的標注ana_txt_save_path = arg.save_path  # 保存的路徑root = arg.rootdata = json.load(open(json_file, 'r'))if not os.path.exists(ana_txt_save_path):os.makedirs(ana_txt_save_path)id_map = {}  # coco數據集的id不連續!重新映射一下再輸出!with open(os.path.join(ana_txt_save_path, 'classes.txt'), 'w') as f:# 寫入classes.txtfor i, category in enumerate(data['categories']):f.write(f"{category['name']}\n")id_map[category['id']] = i# print(id_map)# 這里需要根據自己的需要,更改寫入圖像相對路徑的文件位置。list_file = open(os.path.join(ana_txt_save_path, 'train2017.txt'), 'w')for img in tqdm(data['images']):filename = img["file_name"]img_width = img["width"]img_height = img["height"]img_id = img["id"]head, tail = os.path.splitext(filename)ana_txt_name = head + ".txt"  # 對應的txt名字,與jpg一致# print(os.path.join(root,filename))# exit()f_txt = open(os.path.join(ana_txt_save_path, ana_txt_name), 'w')for ann in data['annotations']:if ann['image_id'] == img_id:box = convert((img_width, img_height), ann["bbox"])f_txt.write("%s %s %s %s %s" % (id_map[ann["category_id"]], box[0], box[1], box[2], box[3]))counter=0for i in range(len(ann["keypoints"])):if (i+1)%3 == 0 and (ann["keypoints"][i] == 2 or ann["keypoints"][i] == 1 or ann["keypoints"][i] == 0):f_txt.write(" %s " % format(ann["keypoints"][i],'6f'))counter=0else:if counter==0:f_txt.write(" %s " % round((ann["keypoints"][i] / img_width),6))else:f_txt.write(" %s " % round((ann["keypoints"][i] / img_height),6))counter+=1f_txt.write("\n")f_txt.close()# 將圖片的路徑寫入train2017或val2017的路徑# list_file.write('E:/edgeai-yolov5-yolo-pose/coco_kpts/images/train2017/%s.jpg\n' % (head))list_file.write(os.path.join(root,filename)+'\n')list_file.close()

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208003.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208003.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Echarts運用之柱狀圖常見問題及案例代碼

前言 ECharts 是一個開源的 JavaScript 可視化庫,用于生成各種類型的圖形和圖表。其中,柱狀圖(Bar chart)是一種常見的圖表類型,用于表示不同類別之間的數值比較。 初學者,可參考下我的另外一篇文章,從基礎到深入,解讀柱狀圖的運用。 Echarts之柱狀圖 常見問題及案例…

MQTT協議對比TCP網絡性能測試模擬弱網測試

MQTT正常外網壓測數據---時延diff/ms如下圖: MQTT弱網外網壓測數據 TCP正常外網壓測數據 TCP弱網外網壓測數據 結論: 在弱網場景下,MQTT和TCP的網絡性能表現會有所不同。下面是它們在弱網環境中的對比: 連接建立:M…

python文件讀寫

文章目錄 讀文件python2&python3差異示例代碼 文件路徑問題處理:字符編碼報錯 讀文件 python2&python3差異 普通模式(python2、python3通用) f open(fileName, moder)open函數在python2和python3差異點: python3支持…

【代碼隨想錄刷題】Day20 二叉樹06

文章目錄 1.【654】最大二叉樹1.1 題目描述1.2 解題思路1.3 java代碼實現1.4 總結 2.【617】合并二叉樹2.1 題目描述2.2 解題思路2.3 java代碼實現 3.【700】二叉搜索樹中的搜索3.1 題目描述3.2 解題思路3.3 java代碼實現 4.【98】驗證二叉搜索樹4.1 題目描述4.2 解題思路4.3 j…

盤點11月Sui生態發展,了解Sui的近期成長歷程!

11月是Web3的“回暖期”,行業持續展現增長趨勢。Sui緊隨行業腳步,開展了一系列生態活動。其中歷時一個多月的Quest 3游戲活動順利結束并公布獎勵,在多地區成功舉辦Move和Sui生態黑客松&交流會,還有針對中文社區開發者教育的星…

MQTT協議對比QUIC網絡性能測試模擬弱網測試

MQTT正常外網壓測數據---時延diff/ms如下圖: MQTT弱網外網壓測數據 QUIC正常外網壓測數據 QUIC弱網外網壓測數據 結論: 在弱網情況下,MQTT和QUIC(Quick UDP Internet Connections)這兩種協議的網絡性能表現也會有…

Axure原型圖表組件庫,數據可視化元件(Axure9大屏組件)

針對Axure制作的大屏圖表元件庫,幫助產品經理更高效地制作高保真圖表原型,是產品經理必備元件工具。現分享完整的組件庫,大家一起學習。 本組件庫的圖表模塊,已包含所有常用的圖表,以下為部分組件截圖示意。文末可下載…

頁面初始化后,需要滾動到某個元素的位置,但是該元素尚未渲染完成。

vue方式 <template><div class"doc"><!-- 判斷是否還在渲染期間 --><div class"fixed" v-show"loading">頁面仍在渲染中&#xff0c;請稍后</div><div class"green" v-show"!loading">…

TA-Lib學習研究筆記(九)——Pattern Recognition (2)

TA-Lib學習研究筆記&#xff08;九&#xff09;——Pattern Recognition &#xff08;2&#xff09; 形態識別的函數的應用&#xff0c;通過使用A股實際的數據&#xff0c;驗證形態識別函數&#xff0c;用K線顯示出現標志的形態走勢&#xff0c;由于入口參數基本上是open, hig…

反向傳播算法

反向傳播算法的數學解釋 反向傳播算法是深度學習中用于訓練神經網絡的核心算法。它通過計算損失函數相對于網絡權重的梯度來更新權重&#xff0c;從而最小化損失。 反向傳播的基本原理 反向傳播算法基于鏈式法則&#xff0c;它按層反向傳遞誤差&#xff0c;從輸出層開始&…

寒冬不再寒冷:氣膜體育館如何打造溫馨運動天地

取暖季即將來臨&#xff0c;隨著氣溫逐漸下降&#xff0c;人們在寒冷的冬季里如何保持運動熱情和身體的健康成為了一項挑戰。而在這個時候&#xff0c;氣膜體育館成為了運動愛好者們的理想場所&#xff0c;提供如春般溫暖舒適的運動環境。那么&#xff0c;讓我們一起揭秘氣膜體…

2024年SEO策略:如何優化您的知識庫?

如今很多人在遇到問題時都會求助于谷歌。谷歌已經成為提供解決方案不可或缺的工具。作為全球搜索引擎的巨頭&#xff0c;擁有大量用戶流量。這就是為什么確保您的產品和服務在谷歌搜索結果中排名靠前是至關重要的&#xff0c;如果您想獲得更多的客戶&#xff0c;SEO是一個非常關…

Filed II 繪制超聲 3D/2D 點擴散函數

點擴散函數可以較好地描述超聲對成像目標分辨能力,利用 filed II 仿真工具實現點擴算函數 PSF 的 3D 和 2D 繪制。 定義換能器基本參數 f0=5e6; % Transducer center frequency [Hz] fs=100e6; % Sampling frequency [Hz] c=1540; % Speed of sound [m/s] width=0.15/1000

<Linux> 文件系統

目錄 前言&#xff1a; 一、 磁盤 &#xff08;一&#xff09;磁盤的物理結構 &#xff08;二&#xff09;磁盤的物理存儲結構 1. 數據存儲 2. 存儲結構 二、磁盤的邏輯抽象 三、磁盤信息 &#xff08;一&#xff09;具體結構 &#xff08;二&#xff09;重新認識目錄…

SOLIDWORKS Flow Simulation電子機箱散熱

這一次我們來聊聊電子冷卻問題&#xff0c;以這個機箱散熱問題為例&#xff0c;我們一般的散熱設計要求是CPU不能超過80℃&#xff0c;北橋芯片溫度不能超過85℃&#xff0c;南橋芯片不超過95℃。在實際情況下芯片內部的各處溫度是不一樣&#xff0c;面對與芯片級別的散熱分析我…

mysql中MDL(元數據鎖)的長事務讀寫阻塞如何解決

MDL&#xff0c;即元數據鎖是什么&#xff0c;我們已經介紹過了 那其存在的長事務讀寫阻塞問題&#xff0c;一般是怎么解決的呢&#xff0c;主要有兩種解決方法。 online ddl MySQL5.6開始&#xff0c;推出一項新功能Online DDL&#xff0c;在ALTER或者CREATE INDEX等語句后添…

【教學類-35-05】17號的學號字帖(A4豎版1份)

作品展示&#xff1a; 背景需求&#xff1a; 大四班17號男孩目前無法自主數學數字。他表示自己能夠認識數字&#xff0c;但不會寫。 保育老師說&#xff1a;我曾經教過他&#xff0c;抓著手示范的。但是他記不住。家里估計也不練習的。年齡還沒到&#xff0c;下學期再看看能不…

有限空間作業中毒窒息事故頻發,漢威科技創新方案護航

工貿企業有限空間是我國重大事故多發頻發的重點領域之一&#xff0c;安全問題形勢嚴峻。 有限空間是指封閉或者部分封閉、未被設計為固定工作場所&#xff0c;人員可以進入&#xff0c;通風不良&#xff0c;易造成有毒有害物質、易燃易爆氣體積聚或者氧含量不足的空間&#xf…

消息中間件基本概念

基本概念 消息隊列三個場景&#xff1a;異步&#xff0c;削峰&#xff0c;解耦 異步&#xff1a;將整個流程進行異步發送&#xff0c;也就是說本來順序執行的程序化流程&#xff0c;異步后可以同時進行操作&#xff0c;互不影響&#xff0c;但保持最終結果一致性&#xff1b;…

ChatGPT顛覆性地改變了個性化學習

開發者歡呼,ChatGPT開啟了教育的新時代教育者和學生都將從革命性的技術中受益ChatGPT是由OpenAI開發的強大的語言模型,它在個性化學習領域取得了重大突破。這一新的發展有望徹底改變教育的方式,使其更加定制化、有趣和有效。 開發者和教育者的重大新聞 這一消息對于一直努…