天天看點

PyQt5 結合神經網絡做可視化訓練資料集界面(PyQt5 tiny-yolo)

目前從事深度學習的工作,在訓練模型的時候,每次都要修改源碼的參數,感覺比較麻煩,是以想着通過可視化的界面來操作,節省大量的時間。目前開源最多的神經網絡算法是用python語言,是以借助PyQt5工具做界面,感覺非常的順手,而且PyQt5和Qt5的操作是相似的,隻是用到的語言差異比較大。

項目介紹:

界面用到PyQt5工具,邏輯和操作相對的簡單:

所有的源碼将傳到github,希望可以幫到大家

主要的代碼:

1.讀取檔案夾函數:

def load_train_pics():
    self.load_train_pic_path.clear()#首先清空顯示檔案夾的框
    load_dir_path = QFileDialog.getExistingDirectory(self, "輸入檔案路徑")
    if not os.path.exists(load_dir_path):
        QMessageBox.warning(self, "提示", "輸入檔案目錄不存在,請重新選擇")
        return
    self.load_train_images = load_dir_path
    self.load_train_pic_path.setText(self.load_train_images)#顯示選擇的檔案夾路徑
    print("加載訓練資料:", self.load_train_images)
           

2.選擇txt檔案

# 加載類别檔案
def load_class_fun(self):

    self.load_class_path.clear()#清空顯示檔案的框
    classes_path, dir_type = QFileDialog.getOpenFileNames(self, "選擇檔案", "datasets")
    # print("11111",input_dir_path)
    # 判斷檔案合法性
    if len(classes_path):
        for each_path in classes_path:
            if ".txt" not in each_path or not os.path.exists(each_path):
                QMessageBox.warning(self, "提示", "檔案選擇錯誤,請重新選擇!")
                return
        self.class_path = classes_path[0]
        self.load_class_path.setText(self.class_path)#顯示選擇的檔案路徑
        print("輸入訓練檔案:", self.class_path)
        return
    else:
        return
           

3.界面顯示圖檔

image = QtGui.QPixmap(“exemple/image”).scaled(self.label_img_show.width(), self.label_img_show.height())
self.label_img_show.setPixmap(image)
           

圖檔展示的大小,會根據界面label的大小定。

4.下拉框

comboBox = QtWidgets.QComboBox(self.tab_6)#建立對象
comboBox.setStyleSheet("background-color: rgb(255, 255, 255);")#設定格式
comboBox.setObjectName("comboBox")#對象名稱,用于css樣式
comboBox.addItem("")# 下拉框個數,添加多少個數,就寫多少個
comboBox.addItem("")
           
comboBox.setItemText(0, _translate("MainWindowv", "1"))# 填寫下拉框裡的數值
           
comboBox.setItemText(0, _translate("MainWindowv", "2"))
           

後端算法介紹:

使用的是輕量級神經網絡tiny-yolo,tiny-yolo的效果并不差,而且在訓練時候需要調參的部分不是很多,用于可視化操作界面相對

要簡單一些。

tiny-yolo用于訓練的anchors是固定值,每次要生成用于訓練和用于驗證的資料。tiny-yolo具體的源碼可參考:這個連接配接

下面是界面樣式:

PyQt5 結合神經網絡做可視化訓練資料集界面(PyQt5 tiny-yolo)

界面的右側用于訓練模型,左側用于測試圖檔,訓練分4步驟,分别按照選擇按鈕上的數字執行。

注:其中标注檔案是xml格式,類别檔案是用于訓練的類别名稱,格式為txt;右側的加載類别檔案同訓練中的類别檔案。

右側的測試框,可以對單張圖檔做測試,同時顯示在空白界面,也可批量識别圖檔,生成結果檔案夾。

epoch為訓練的疊代次數,batch_size根據自己的主機配置選擇,顯存高的可以選擇大一些。

源碼更新到:https://github.com/python-bookworm/FirePlanV

繼續閱讀