五、加載數據集

之前寫過加載數據集的一些小筆記,這里詳細內容就不再敘述了
詳細學習可以參考該博文二、PyTorch加載數據

一、分析

因為U-net網絡架構是輸入1通道,大小為(572,572)的灰度圖,圖片大小無所謂,我的思路是將三通道的圖像使用OpenCV進行相關的處理,轉換為單通道突圖片,之后再送入網絡模型中

二、準備數據集

數據集的采集和制作可以參考該篇博文
四、采集和制作數據集
在這里插入圖片描述

三、完整加載數據集代碼

test_dataset

import torch
import cv2
import os
import glob
from torch.utils.data import Dataset
import randomclass Beyond_loader(Dataset):def __init__(self, data_path):# 初始化函數,讀取所有data_path下的圖片self.data_path = data_pathself.imgs_path = glob.glob(os.path.join(data_path, 'image/*.png'))def augment(self, image, flipCode):# 使用cv2.flip進行數據增強,filpCode為1水平翻轉,0垂直翻轉,-1水平+垂直翻轉flip = cv2.flip(image, flipCode)return flipdef __getitem__(self, index):# 根據index讀取圖片image_path = self.imgs_path[index]# 根據image_path生成label_pathlabel_path = image_path.replace('image', 'label')# 讀取訓練圖片和標簽圖片image = cv2.imread(image_path)label = cv2.imread(label_path)# 將數據轉為單通道的圖片image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)label = cv2.cvtColor(label, cv2.COLOR_BGR2GRAY)image = image.reshape(1, image.shape[0], image.shape[1])label = label.reshape(1, label.shape[0], label.shape[1])# 處理標簽,將像素值為255的改為1if label.max() > 1:label = label / 255# 隨機進行數據增強,為2時不做處理flipCode = random.choice([-1, 0, 1, 2])if flipCode != 2:image = self.augment(image, flipCode)label = self.augment(label, flipCode)return image, labeldef __len__(self):# 返回訓練集大小return len(self.imgs_path)if __name__ == "__main__":beyond_loader = Beyond_loader("./dataset/train")print("數據個數:", len(beyond_loader))train_loader = torch.utils.data.DataLoader(dataset=beyond_loader,batch_size=1,shuffle=True)for image, label in train_loader:print(image.shape)

一共有6張圖像,batch_size設為1,故train_loader有6組

數據個數: 6
torch.Size([1, 1, 320, 320])
torch.Size([1, 1, 320, 320])
torch.Size([1, 1, 320, 320])
torch.Size([1, 1, 320, 320])
torch.Size([1, 1, 320, 320])
torch.Size([1, 1, 320, 320])

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

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

相關文章

CDMA的完整形式是什么?

CDMA:碼分多址 (CDMA: Code Division Multiple Access) CDMA is an abbreviation of Code Division Multiple Access. Code Division Multiple Access is a digital cellular technology and displays a network of multiple accesses. The various radio communica…

BCD碼與十進制的相互轉換

BCD碼是用每四位代替一位十進制數(0 到 9 的某一位數) 例如:0x25 就代表25 十六進制的每位轉換成二進制代表四個位。 下面是bcd轉char short int long c語言程序 //************************************************************…

DSP關于存儲器讀寫、IO讀寫時序圖的注意點

這里的存儲器圖不涉及插入等待周期。 IO設備的圖可以自行減去插入等待周期,然后觀察。 存儲器讀讀寫 存儲器寫寫讀 I/O設備讀寫操作

折騰430 launchpad

launchpad到手也已經很長時間了,團購了一個g2的,一個鐵電的,現在馬上又要來一個g2的,感覺手上的東西太多了,急需消化一下,首先呢還是先把430搞定吧。 ---------------------------------------------------…

oem模式是什么_OEM的完整形式是什么?

oem模式是什么OEM:原始設備制造商 (OEM: Original Equipment Manufacturer) OEM is an abbreviation of "Original Equipment Manufacturer". Its meaning has changed over time. In former times, it alluded to a corporation that manufactures produ…

媽了個巴卡

配置文件修改: 一、打開PC端微信,打開咩了個咩小程序,點進入第一關,之后再關掉小程序 二、PC端微信設置里面,找到管理文件,打開文件夾 三、Applet下按修改日期找到a9結尾的文件 四、接著進入\usr\gamecac…

java中Iterator的小程序

import java.util.Collection; import java.util.HashSet; import java.util.Iterator;public class TestIterator {public static void main(String[] args){Collection booksnew HashSet();books.add("java講義");books.add("java的Ajax寶典");books.add…

【C++進階】利用重載二元運算符改進平面向量類Vec2D

先前回顧 在【C進階】 遵循TDD原則,實現平面向量類(Vec2D)中我們初步實現了Vec2D內容,現在做出一定的改進: 實現Vec2D的一半二元算數運算符重載 1、 - (兩個Vec2D對象運算以及1個Vec2D對象與一個double數運算) 2、*(點乘和數乘) 同時將之前…

在SQL中使用DEFAULT約束

DEFAULT constraint is used to insert default value into a column on a table and if no any value is stored in any place of a column then default value will be added into it. DEFAULT約束用于將默認值插入到表的列中,如果列的任何位置均未存儲任何值&…

(ios7) 解決代碼布局View, ios7 中 subView 高度增加StatusBar20dp的問題,保證Ios6,ios7代碼一致...

在ios7 布局中,Status Bar 和 ToolBar ,NavigateBar 等都包含在ViewControl的主View中。 這樣原來ios6 的View布局 整體向上移動了20dp,下面是保證ios6,ios7代碼一致的解決方案 1 第一步 在項目的Info.plist 文件中 添加一行屬性配置 View co…

簡單的群體測試方案C++代碼(Group testing against Covid-19)

原理參考鏈接 https://www.econstor.eu/handle/10419/221811 http://www.magigen.com/h-nd-348.html 文章原理回顧 文章比較了兩種估計人群中病毒流行率的方法: 1、個體測試,即對12000人的樣本進行病毒測試,并采用標準二項測試得出95%的置…

使用WinDbg和VMware調試NDIS中間層驅動程序 (轉)

使用WinDbg和VMware調試NDIS中間層驅動程序 我這里將一步一步的介紹,是從新手的角度來講的,所以對高手來說,可能有些啰嗦。如果你看完這篇文章還不知道如何設置,那么原因可能有兩個:1. 我沒講好;2. 你需要稍…

c語言字符常量和字符串常量_C語言中的字符常量

c語言字符常量和字符串常量Any character (a single character) that is enclosed within the single quotes (like, A) is called character constants in C programming language. 用單引號引起來的任何字符(單個字符)(例如A ) 在C編程語言中稱為字符常量 。 Character cons…

DDOS小測試

一、F12打開開發者工具,刷新待攻擊的網站,重新獲得一次請求 二、user-agent為瀏覽器的合法標識符 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 是鍵值對的形式&…

Scrum輕松之旅_人員

Product owner產品負責人 職責:確定產品功能 確定產品發布日期 為產品收益率負責 根據商業價值確定功能優先級 接受或拒絕Team的開發成果 Scrum master教練 Team團隊轉載于:https://www.cnblogs.com/charles-x/archive/2012/06/14/2549943.html

群體測試中的假陰性影響

群體測試中的假陰性比個體測試中的假陰性風險要大得多。如果一組樣本被感染,該組中的每個樣本都可能被感染。因此,如果該受感染池的檢測結果為假陰性,則該結果表明池中的每個人都沒有感染。此外,在群體試驗中混合樣本會使受感染的…

融合注意力機制的YOLOv5火焰識別+Arduino UNO R3實現5s內連續識別到火焰,警報燈紅燈亮起

效果:攝像頭捕獲室內圖像,將視頻實時通過串口通訊傳遞給改進之后的YOLOv5神經網絡進行火焰識別,若5s內連續檢測到有火焰,警報燈變紅,進入危險狀態。5s之內未連續出現火焰,警報燈變綠,進入安全狀…

小數 ###_C#中的小數關鍵字

小數 ###C#十進制關鍵字 (C# decimal keyword) In C#, decimal is a keyword which is used to declare a variable that can store a floating type value (value with the precision) between the range of 1.0 x 10-28 to 7.9228 x 1028. decimal keyword is an …

Moon.Orm性能報告

以下為有網友公司的評估測試及使用規范 大家可以下載word看看 http://pan.baidu.com/s/1hquvRuc 一、和ADO.NET進行的壓力測試 說明:2000并發用戶,此圖為一網友公司對moon.orm的測評 二、和ADO.NET的性能對比測試 說明:同時請求10000條數據&a…

Spring中MultipartHttpServletRequest實現文件上傳

轉貼自:http://zhupan.iteye.com/blog/26427 實現圖片上傳   用戶必須能夠上傳圖片,因此需要文件上傳的功能。比較常見的文件上傳組件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUplo…