訓練yolov8+SAM的過程記錄

1-首先將拿到的數據集進行重新命名(dataset1:是經過校色之后裁剪的圖片;dataset2:原圖)
圖片文件從1.jpg開始命名的代碼:

folder_path = r'C:\Users\23608\Desktop\Luli_work\data\fanStudent\tongueseg\Fan\Fan\.jpg'
new_folder = r'C:\Users\23608\Desktop\Luli_work\data\fanStudent\tongueseg\imgOrig'jpg_files = [f for f in os.listdir(folder_path) if f.endswith('.jpg')]
n = 1
for i, jpg_file in enumerate(jpg_files):new_filename = f'{n}.jpg'n =n+1# 構造原始文件和新文件的完整路徑original_path = os.path.join(folder_path, jpg_file)new_path = os.path.join(new_folder, new_filename)# 復制文件到新文件夾并重命名shutil.copy(original_path, new_path)print("重命名完成!")

2-將數據預處理之后的數據上傳到服務器,接著使用yolov8SAM代碼將代碼中的舌體掩碼跑出來:
數據存放位置
Imgorig:/share1/luli/tongueseg/data/dataset2/imgOrig/
IMgcrop:/share1/luli/tongueseg/data/dataset1/imgCrop/

微調SAM的查找

How to Fine-Tune Segment Anything

1. How to Fine-Tune Segment Anything

We gave an overview of the SAM architecture in the introduction section. The image encoder has a complex architecture with many parameters. To fine-tune the model, it makes sense for us to focus on the mask decoder which is lightweight and therefore easier, faster and more memory efficient to fine-tune.

In order to fine tune SAM, we need to extract the underlying pieces of its architecture (image and prompt encoders, mask decoder). We cannot use SamPredictor.predict (link) for two reasons:

· We want to fine tune only the mask decoder
· This function calls SamPredictor.predict_torch which has the @torch.no_grad() decorator (link), which prevents us from computing gradients

Thus, we need to examine the SamPredictor.predict function and call the appropriate functions with gradient calculation enabled on the part we want to fine tune (the mask decoder). Doing this is also a good way to learn more about how SAM works.

2. Creating a Custom Dataset

We need three things to fine tune our model:(這里其實并沒有說GT、datase的具體類型)

· Images on which to draw segmentations
· Segmentation ground truth masks
· Prompts to feed into the model

后續在代碼里面可以看到圖片代碼里面是png格式,mask掩碼是黑白二值圖。

我現在使用的是labelme標記的舌頭,json文件,需要把json文件轉化成二值圖。

這里涉及到3個數據類型的轉化:

· png圖片轉json文件(也就是使用yolov8+SAM對數據集進行簡單的分割之后再人工進行微調,此時的微調使用的是labelme格式是json,這里使用到TongueSAM里馬賽克json里面的代碼)
· json文件轉成png圖片,這里使用到labelme里面的自己的代碼(參考鏈接)[labelme] json格式批量轉換為mask.png,步驟入下:
1.使用labelme制作語義分割數據集,生成.json格式文件,將所有放置于一個文件夾下。
2.找到labelme安裝位置的json_to_dataset.py文件,(可以使用Everything軟件)
用下面的代碼替換里面的代碼:

import argparse
import json
import os
import os.path as osp
import warnings
import copy
import numpy as np
import PIL.Image
from skimage import io
import yaml
from labelme import utilsdef main():parser = argparse.ArgumentParser()parser.add_argument('json_file')   # 標注文件json所在的文件夾parser.add_argument('-o', '--out', default=None)args = parser.parse_args()json_file = args.json_filelist = os.listdir(json_file)   # 獲取json文件列表for i in range(0, len(list)):path = os.path.join(json_file, list[i])  # 獲取每個json文件的絕對路徑filename = list[i][:-5]      

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

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

相關文章

stable diffusion官方版本復現

踩了一些坑,來記錄下 環境 CentOS Linux release 7.5.1804 (Core) 服務器RTX 3090 復現流程 按照Stable Diffusion的readme下載模型權重、我下載的是stable-diffusion-v1-4 版本的 1 因為服務器沒法上huggingface,所以得把權重下載到本地&#xff…

初識表及什么是數據表

一、了解表 1.1.概述 表是處理數據和建立關系型數據庫及應用程序的基本單元,是構成數據庫的基本元素之一,是數據庫中數據組織并儲存的單元,所有的數據都能以表格的形式組織,目的是可讀性強。 1.2.表結構簡述 一個表中包括行和列…

當項目經理的一定要考PMP嘛?

PMP資格認證并不是強制性要求,但強烈建議考慮獲取該資格!首先讓我們來了解一下PMP是什么,然后再談談為什么建議考取PMP資格的理由。 PMP(Project Management Professional)是項目管理專業人員的資格認證。該認證由全球…

SCI一區 | Matlab實現GAF-PCNN-MSA格拉姆角場和雙通道PCNN融合注意力機制的多特征分類預測

SCI一區 | Matlab實現GAF-PCNN-MSA格拉姆角場和雙通道PCNN融合注意力機制的多特征分類預測 目錄 SCI一區 | Matlab實現GAF-PCNN-MSA格拉姆角場和雙通道PCNN融合注意力機制的多特征分類預測效果一覽基本介紹模型描述程序設計參考資料 效果一覽 基本介紹 1.【SCI一區級】Matlab實…

老子云3D資源服務與應用平臺詳解

老子云平臺定位 老子云目標客群 老子云平臺架構 老子云平臺價值 核心優勢 -AMRT標準格式 -自動模型輕量化 -持續精進的底層技術算法 -千萬級輕量化3D資源素材市場 功能服務 -格式轉換 -蒙皮動畫輕量化 -傾斜攝影輕量化 -效果編輯器 -應用編輯器 -3D OFD應用 -A3D PPT -3D資源…

力扣日記2.22-【回溯算法篇】47. 全排列 II

力扣日記:【回溯算法篇】47. 全排列 II 日期:2023.2.22 參考:代碼隨想錄、力扣 47. 全排列 II 題目描述 難度:中等 給定一個可包含重復數字的序列 nums ,按任意順序 返回所有不重復的全排列。 示例 1: 輸…

SpringBoot中定義了Bean,但是為什么依賴注入的時候注入不了

背景&#xff1a; 擴展RedisTemplate的實現的時候寫了這樣一段代碼&#xff1a; public class BusinessRedisTemplate extends RedisTemplate<String, String> {private final String prefix "business";public BusinessRedisTemplate (RedisConnectionFact…

十八、圖像像素類型轉換和歸一化操作

項目功能實現&#xff1a;對一張圖像進行類型轉換和歸一化操作 按照之前的博文結構來&#xff0c;這里就不在贅述了 一、頭文件 norm.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class NORM { public:void norm(Mat& image); };#pragma once二…

智慧公廁是什么?智慧公廁是構建智慧城市的環境衛生基石

隨著城市化進程的不斷加速&#xff0c;城市人口密度和流動性也逐漸增大&#xff0c;對城市公共設施的需求與日俱增。而在這些公共設施中&#xff0c;公廁作為城市基礎設施中不可或缺的一環&#xff0c;對城市的環境衛生和市民生活質量起著舉足輕重的作用。如何提高公廁的管理效…

android studio 中使用kotlin語言 直接操作布局id

android studio 中使用kotlin語言 直接操作布局id 需要在 build.gradle 文件 引入 apply plugin: kotlin-android apply plugin: kotlin-android-extensions&#xff08;會自動生成&#xff0c;可忽略&#xff09;然后在 Activity 文件中 引入 對應的 layout 文件 如&#xff…

MacOs 圍爐夜話

文章目錄 一、安裝 Mac 一、安裝 Mac macOS是一套由蘋果開發的運行于Macintosh系列電腦上的操作系統。macOS是首個在商用領域成功的圖形用戶界面操作系統。 VM虛擬機怎么安裝mac os&#xff1f;&#xff08;全教程&#xff09; 虛擬機&#xff1a;VMware Workstation 17 pro W…

新書推薦:《分布式商業生態戰略:未來數字商業新邏輯與企業數字化轉型新策略》

近兩年&#xff0c;商業經濟環境的不確定性越來越明顯&#xff0c;市場經濟受到疫情、技術、政策等多方因素影響越來越難以預測&#xff0c;黑天鵝事件時有發生。在國內外經濟方面&#xff0c;國際的地緣政治對商業經濟產生著重大的影響&#xff0c;例如供應鏈中斷&#xff0c;…

Shopify配置項過多如何在代碼層面簡化輸出內容

在處理 Shopify 的配置項過多的情況下&#xff0c;可以通過在代碼層面簡化輸出內容來提高效率和可維護性。以下是一些方法&#xff1a; 1. 使用循環和條件語句 使用循環和條件語句來動態生成和輸出內容。通過遍歷配置項的列表或對象&#xff0c;可以根據條件決定是否輸出相應的…

Backend - Django SimpleUI(美化 Django Admin )

目錄 一、作用 二、安裝 & 配置 &#xff08;一&#xff09;安裝依賴 &#xff08;二&#xff09;配置 &#xff08;三&#xff09;運行 三、基礎設定 &#xff08;一&#xff09;創建用戶 &#xff08;二&#xff09;設置標題 &#xff08;三&#xff09;設置登錄…

代理模式筆記

代理模式 代理模式代理模式的應用場景先理解什么是代理&#xff0c;再理解動靜態舉例舉例所用代碼 動靜態的區別靜態代理動態代理 動態代理的優點代理模式與裝飾者模式的區別 代理模式 代理模式在設計模式中是7種結構型模式中的一種&#xff0c;而代理模式有分動態代理&#x…

rabbitmq知識梳理

一.WorkQueues模型 Work queues&#xff0c;任務模型。簡單來說就是讓多個消費者綁定到一個隊列&#xff0c;共同消費隊列中的消息。 當消息處理比較耗時的時候&#xff0c;可能生產消息的速度會遠遠大于消息的消費速度。長此以往&#xff0c;消息就會堆積越來越多&#xff0c…

四、矩陣的分類

目錄 1、相等矩陣 2、同形矩陣 3、方陣&#xff1a; 4、負矩陣、上三角矩陣、下三角矩陣&#xff1a; 5、對角矩陣&#xff1a;是方陣 ?編輯7、單位矩陣&#xff1a;常常用 E或I 來表示。它是一個方陣 8、零矩陣&#xff1a; 9、對稱矩陣&#xff1a;方陣 1、相等矩陣 …

openEuler安裝MySQL客戶端、openEuler安裝MySQL-client、openEuler部署MySQL-client

MySQL客戶端下載鏈接&#xff1a;https://downloads.mysql.com/archives/community/ mysql-community-client-5.7.30-1.el7.x86_64.rpm mysql-community-common-5.7.30-1.el7.x86_64.rpm mysql-community-libs-5.7.30-1.el7.x86_64.rpm 3個必選 8.0.22以上的版本是4個&…

HDFS中常用的Shell命令 全面且詳細

HDFS中常用的Shell命令目錄 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安裝好hadoop環境之后&#xff0c;可以執行hdfs相關的shell命令對hdfs文件系統進行操作&#xff0c;比如文件的創建、刪除、修改文…

【FPGA】VHDL:小型出勤系統設計

附源代碼&#xff0c;一定能實現&#xff01; 目錄 EDA設計練習題&#xff1a; 實驗要求如下&#xff1a; 思路分析&#xff1a; 代碼 99進制計數器 碼轉換 頂層文件 特別注意 測試 編譯通過 結果展示 RTL視圖 技術映射視圖 軟件&#xff1a;Quartus II 13.0 (64…