62 lines
2.9 KiB
Python
62 lines
2.9 KiB
Python
from Load_process.LoadData import Loding_Data_Root
|
|
from Image_Process.Image_Generator import Image_generator
|
|
from Load_process.file_processing import Process_File
|
|
from model_data_processing.processing_for_cut_image import Cut_Indepentend_Data
|
|
from Load_process.Loading_Tools import Load_Data_Prepare, Load_Data_Tools
|
|
|
|
class Load_ImageGenerator():
|
|
'''
|
|
這是一個拿來進行資料強化的物件,最主要結合了學姊給的資料強化與我自行設定的資料強化。
|
|
藉由此物件先將資料讀取出來,並將資料分別進行資料強化,利用資料強化來迷部資料的不平衡
|
|
這只是其中一個實驗
|
|
|
|
Parmeter
|
|
standard_root: 做跟學姊給的資料強化同一種的資料強化
|
|
myself_root: 資料強化的內容參數是我自己設定的
|
|
IndependentDataRoot: 要存回去的資料夾路徑
|
|
Herpeslabels: 皰疹的類別
|
|
MonKeyPoxlabels: 猴痘的類別(猴痘、水痘、正常)
|
|
herpes_data: 合併herpes Dataset的資料成一個List
|
|
MonkeyPox_data: 合併MonkeyPox DataSet 的資料成一個List
|
|
'''
|
|
def __init__(self, Training_Root,Test_Root, Validation_Root, Generator_Root, Labels) -> None:
|
|
self.Training_Root = Training_Root
|
|
self.TestRoot = Test_Root
|
|
self.ValidationRoot = Validation_Root
|
|
self.GeneratoRoot = Generator_Root
|
|
self.Labels = Labels
|
|
pass
|
|
|
|
def process_main(self, Data_Length : int):
|
|
File = Process_File()
|
|
Prepare = Load_Data_Prepare()
|
|
load = Loding_Data_Root(self.Labels, self.Training_Root, self.GeneratoRoot)
|
|
Indepentend = Cut_Indepentend_Data(self.Training_Root, self.Labels)
|
|
Load_Tool = Load_Data_Tools()
|
|
Generator = Image_generator(self.GeneratoRoot, self.Labels)
|
|
|
|
# 將測試資料獨立出來
|
|
test_size = 0.1
|
|
Indepentend.IndependentData_main(self.TestRoot, test_size)
|
|
|
|
# 將驗證資料獨立出來
|
|
test_size = 0.1
|
|
Indepentend.IndependentData_main(self.ValidationRoot, test_size)
|
|
|
|
if not File.Judge_File_Exist(self.GeneratoRoot): # 檔案若不存在
|
|
# 確定我要多少個List
|
|
Prepare.Set_Data_Content([], Data_Length)
|
|
|
|
# 製作讀檔字典並回傳檔案路徑
|
|
Prepare.Set_Label_List(self.Labels)
|
|
Prepare.Set_Data_Dictionary(Prepare.Get_Label_List(), Prepare.Get_Data_Content(), Data_Length)
|
|
Original_Dict_Data_Root = Prepare.Get_Data_Dict()
|
|
get_all_original_image_data = Load_Tool.get_data_root(self.Training_Root, Original_Dict_Data_Root, Prepare.Get_Label_List())
|
|
|
|
# 儲存資料強化後資料
|
|
Generator.Processing_Main(get_all_original_image_data) # 執行資料強化
|
|
else: # 若檔案存在
|
|
print("standard data and myself data are exist\n")
|
|
|
|
# 執行讀檔
|
|
return load.process_main() |