【配置 YOLOX 用于按目錄分類的圖片數據集】

現在的圖標點選越來越多,如何一步解決,采用 YOLOX 目標檢測模式則可以輕松解決

在這里插入圖片描述

要在 YOLOX 中使用按目錄分類的圖片數據集(每個目錄代表一個類別,目錄下是該類別的所有圖片),你需要進行以下配置步驟:

將需要檢測的圖標截取為獨立的圖片,放入到對應的目錄中,如 banner ,apple 等

1. 準備數據集結構

假設你的原始數據集結構如下:

dataset_root/class1/img1.jpgimg2.jpg...class2/img1.jpgimg2.jpg......

2. 轉換為 YOLOX 所需的格式

YOLOX 通常需要以下格式:

圖片文件對應的標注文件(每個圖片一個 .txt 文件)訓練/驗證集的劃分文件

創建 Python 轉換腳本

import os
import glob
from sklearn.model_selection import train_test_splitdef convert_directory_to_yolox(dataset_root, output_dir):# 獲取所有類別classes = [d for d in os.listdir(dataset_root) if os.path.isdir(os.path.join(dataset_root, d))]classes.sort()# 創建類別映射文件with open(os.path.join(output_dir, 'classes.txt'), 'w') as f:f.write('\n'.join(classes))# 收集所有圖片路徑和標簽image_paths = []labels = []for class_id, class_name in enumerate(classes):class_dir = os.path.join(dataset_root, class_name)for img_path in glob.glob(os.path.join(class_dir, '*')):if img_path.lower().endswith(('.png', '.jpg', '.jpeg')):image_paths.append(img_path)labels.append(class_id)# 劃分訓練集和驗證集train_img, val_img, train_lbl, val_lbl = train_test_split(image_paths, labels, test_size=0.2, random_state=42)# 創建標注文件和數據集列表def write_dataset(img_list, lbl_list, list_file):with open(list_file, 'w') as f_list:for img_path, label in zip(img_list, lbl_list):# 創建標注文件路徑base_name = os.path.splitext(os.path.basename(img_path))[0]txt_path = os.path.join(output_dir, 'labels', base_name + '.txt')# 寫入標注文件os.makedirs(os.path.dirname(txt_path), exist_ok=True)with open(txt_path, 'w') as f_txt:# YOLO格式: class_id x_center y_center width height# 對于全圖分類,bbox是整張圖片f_txt.write(f"{label} 0.5 0.5 1.0 1.0\n")# 寫入數據集列表f_list.write(f"{img_path}\n")os.makedirs(os.path.join(output_dir, 'labels'), exist_ok=True)write_dataset(train_img, train_lbl, os.path.join(output_dir, 'train.txt'))write_dataset(val_img, val_lbl, os.path.join(output_dir, 'val.txt'))# 使用示例
convert_directory_to_yolox('path/to/your/dataset_root', 'path/to/yolox_dataset')

3. 配置 YOLOX

修改 exps 中的配置文件

找到或創建你的實驗配置文件(如 exps/example/yolox_s.py),修改以下部分:

class Exp(yolox_base.Exp):def __init__(self):super(Exp, self).__init__()self.num_classes = 你的類別數量self.data_dir = "轉換后的數據集路徑"self.train_ann = "train.txt"self.val_ann = "val.txt"self.input_size = (640, 640)  # 根據你的需求調整self.test_size = (640, 640)

修改數據加載部分

確保你的數據加載器能夠處理這種格式。YOLOX 默認使用 MosaicDetection 數據集,你可能需要自定義:

from yolox.data import get_yolox_datadir
from yolox.data.datasets import DATASET_REGISTRY@DATASET_REGISTRY.register()
class YourDataset(Dataset):def __init__(self, ...):# 實現你的數據集加載邏輯pass

4. 訓練命令

使用修改后的配置運行訓練:

python tools/train.py -f exps/example/yolox_s.py -d 1 -b 64 --fp16 -o -c yolox_s.pth

注意事項

這種方法將整個圖像作為一個"邊界框"處理,適用于圖像分類任務如果你需要真正的目標檢測(圖像中有多個對象),需要為每個對象提供精確的邊界框標注考慮調整輸入尺寸以適應你的圖像比例對于分類任務,可能需要修改損失函數為更適合分類的損失(如交叉熵)

如果你需要真正的目標檢測而不是圖像分類,則需要為每個圖像提供包含對象位置和類別的詳細標注文件。

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

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

相關文章

淺談python如何做接口自動化

工具與環境準備 開發工具 PyCharm專業版:支持項目視圖、代碼導航、調試功能和主流框架開發官方資源:JetBrains PyCharm 數據庫操作 使用mysqlclient庫操作MySQL(Django官方推薦)安裝命令:pip install mysqlclient1.3.…

知識圖譜技術概述

一、概述 知識圖譜(Knowledge Graph) 是一種基于圖結構的語義網絡,用于表示實體及其之間的關系,旨在實現更智能的知識表示和推理。它通過將現實世界中的各類信息抽象為 “實體-關系-實體” 的三元組結構,構建出復雜的知…

NodeJS Koa 后端用戶會話管理,JWT, Session,長短Token,本文一次性講明白

前言 前幾天,我寫了一篇文章,《我設計的一個安全的 web 系統用戶密碼管理流程》。其中著重點是講的如何利用非對稱加密進行安全的設計,并在講述了原理之后,又寫了 《node 后端和瀏覽器前端,有關 RSA 非對稱加密的完整…

0.5S 級精度背后:DJSF1352-RN-6 如何讓儲能電站的每 1kWh 都「有跡可循」?

1、背景 在能源轉型的時代洪流里,大型儲能電站作為保障電網穩定運行、平衡能源供需的核心基礎設施,其戰略價值愈發凸顯。而儲能電站的高效運轉,始終離不開精準的電能計量體系支撐。今日為您重點推介一款針對 1500V 儲能系統研發的專業電能表…

Linux運維筆記:服務器安全加固

文章目錄 背景加固措施1. 修改用戶密碼2. 使用公鑰認證替代密碼登錄3. 強化系統安全4. 掃描與清理殘留威脅5. 規范軟件管理(重點) 注意事項總結 提示:本文總結了大學實驗室 Linux 電腦感染挖礦病毒后的安全加固措施,重點介紹用戶密…

Pycharm 配置解釋器

今天更新了一版pycharm,因為很久沒有配置解釋器了,發現一直失敗。經過來回試了幾次終于成功了,記錄一下過程。 Step 1 Step 2 這里第二步一定要注意類型要選擇python 而不是conda。 雖然我的解釋器是conda 里面建立的一個環境。挺有意思的

【Linux】awk 命令詳解及使用示例:結構化文本數據處理工具

【Linux】awk 命令詳解及使用示例:結構化文本數據處理工具 引言 awk 是一種強大的文本處理工具和編程語言,專為處理結構化文本數據而設計。它的名稱來源于其三位創始人的姓氏首字母:Alfred Aho、Peter Weinberger 和 Brian Kernighan。 基…

MS1023/MS1224——10MHz 到 80MHz、10:1 LVDS 并串轉換器(串化器)/串并轉換器(解串器)

產品簡述 MS1023 串化器和 MS1224 解串器是一對 10bit 并串 / 串并轉 換芯片,用于在 LVDS 差分底板上傳輸和接收 10MHz 至 80MHz 的并行字速率的串行數據。起始 / 停止位加載后,轉換為負載編 碼輸出,串行數據速率介于 120Mbps…

跟我學c++中級篇——理解類型推導和C++不同版本的支持

一、類型推導 在前面反復分析過類型推導(包括前面提到的類模板參數推導CTAD),類型推導其實就是滿足C語言這種強類型語言的要求即編譯期必須確定對象的數據類型。換一句話說,理論上如果編譯器中能夠自動推導所有的相關數據類型&am…

vue3+TS+eslint9配置

記錄eslint升級到9.x的版本之后遇到的坑 在 ESLint 9 中,配置方式發生了變化。Flat Config 格式(eslint.config.js 或 .ts)不再支持 extensions 選項。所以vscode編輯器中的 extensions 需要注釋掉,要不然保存的時候不會格式化。…

書籍推薦 --- 《篳路維艱:中國經濟社會主義路徑的五次選擇》

蕭冬連.篳路維艱:中國社會主義路徑的五次選擇[M]. 前不久看完的這本書,還是蠻受震撼的。 這本書比較細致地(引用了很多的史料)、從中央高層的視角講解了從新中國成立一直到改革開放初期這30多年里(1949---1980年代)發生在我國的幾次重大事件(三大改造、第一個五年計…

C++課設:簡易日歷程序(支持傳統節假日 + 二十四節氣 + 個人紀念日管理)

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder😊) 專欄介紹:《編程項目實戰》 目錄 一、為什么要開發一個日歷程序&#xff…

(三)動手學線性神經網絡:從數學原理到代碼實現

1 線性回歸 線性回歸是一種基本的預測模型,用于根據輸入特征預測連續的輸出值。它是機器學習和深度學習中最簡單的模型之一,但卻是理解更復雜模型的基礎。 1.1 線性回歸的基本元素 概念理解: 線性回歸假設輸入特征和輸出之間存在線性關系。…

二十五、面向對象底層邏輯-SpringMVC九大組件之HandlerMapping接口設計

一、引言:MVC架構的交通樞紐 在Spring MVC框架中,HandlerMapping接口扮演著"請求導航儀"的關鍵角色,它決定了HTTP請求如何被路由到對應的Controller處理器。作為MVC模式的核心組件之一,HandlerMapping在請求處理的生命…

凌晨四點的星光

凌晨四點的城市像臺停止運轉的老舊機器,陳明裹緊外套踩著路燈的殘影往家走。鍵盤敲擊聲仿佛還在耳邊回響,他揉了揉酸澀的眼睛,手機屏幕突然亮起,是妻子發來的消息:“孩子又發燒了,我帶他去醫院。” 這是他…

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 電子聯鎖

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 電子聯鎖

LeetCode 熱題 100 74. 搜索二維矩陣

LeetCode 熱題 100 | 74. 搜索二維矩陣 大家好,今天我們來解決一道經典的算法題——搜索二維矩陣。這道題在 LeetCode 上被標記為中等難度,要求我們在一個滿足特定條件的二維矩陣中查找一個目標值。如果目標值在矩陣中,返回 true&#xff1b…

如何在 HTML 中添加按鈕

原文:如何在 HTML 中添加按鈕 | w3cschool筆記 (請勿將文章標記為付費!!!!) 在網頁開發中,按鈕是用戶界面中不可或缺的元素之一。無論是用于提交表單、觸發動作還是導航&#xff0…

一篇文章實現Android圖片拼接并保存至相冊

系列文章目錄 一篇文章實現Android圖片拼接并保存至相冊 文章目錄 系列文章目錄前言實現功能類定義和成員變量onCreate方法權限檢查和圖片選擇處理選擇的圖片圖片拼接功能圖片保存功能 使用ImageStitcher類拼接圖片代碼解釋:ImageStitcher.java類定義和方法計算拼接…

2025.06.06【Ribo-seq】|riboWaltz:P-site定位與三堿基周期性分析流程

文章目錄 一、前言二、riboWaltz簡介三、安裝與依賴四、分析流程總覽1. 數據準備2. 典型分析流程2.1 讀取注釋和BAM2.2 P-site定位2.3 三堿基周期性與元分析2.4 密碼子使用偏好分析 五、可視化與結果解讀六、常見問題與注意事項七、實戰經驗與建議八、參考資料九、結語 一、前言…