国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

這篇具有很好參考價值的文章主要介紹了基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

摘要:本博文介紹了一種基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng),使用YOLOv5算法對常見水果進行檢測和識別,實現(xiàn)對圖片、視頻和實時視頻中的水果進行準確識別。博文詳細闡述了算法原理,同時提供Python實現(xiàn)代碼、訓(xùn)練數(shù)據(jù)集,以及基于PyQt的UI界面。通過YOLOv5實現(xiàn)對圖像中存在的多個水果目標進行識別分類,用戶可以在界面中選擇各種水果圖片、視頻進行檢測識別。本文旨在為相關(guān)領(lǐng)域的研究人員和新入門的朋友提供一個參考,完整代碼資源文件請轉(zhuǎn)至文末的下載鏈接。本文結(jié)構(gòu)如下:

水果檢測與識別系統(tǒng)功能演示與介紹(YOLOv5+PyQt5+UI界面)

?點擊跳轉(zhuǎn)至文末所有涉及的完整代碼文件下載頁?


前言

????????近年來,隨著全球經(jīng)濟的發(fā)展,水果消費市場規(guī)模不斷擴大,水果種類也日益豐富。水果檢測與識別技術(shù)在農(nóng)業(yè)生產(chǎn)、倉儲物流、超市零售等領(lǐng)域具有重要的應(yīng)用價值。傳統(tǒng)的水果檢測與識別方法主要依賴于人工識別,這種方法在一定程度上受到人力成本、識別效率和準確性等方面的限制。因此,開發(fā)一種高效、準確的自動化水果檢測與識別系統(tǒng)具有重要的研究意義和實際價值。(本文的參考文獻請見文末

????????計算機視覺作為人工智能的一個重要分支,在目標檢測和識別方面取得了顯著的研究進展。特別是深度學(xué)習(xí)技術(shù)的發(fā)展,極大地推動了計算機視覺在水果檢測與識別領(lǐng)域的應(yīng)用。許多研究人員已經(jīng)嘗試利用深度學(xué)習(xí)技術(shù)進行水果檢測與識別,取得了一定的成果[1]。然而,當前的研究仍然存在一定的局限性,如算法復(fù)雜度高、實時性差等問題。

????????在計算機視覺領(lǐng)域,已有多種深度學(xué)習(xí)算法被應(yīng)用于目標檢測和識別任務(wù)。例如,R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]、SSD[5]、RetinaNet[6]等。這些算法在一定程度上提高了目標檢測的準確性和速度。然而,這些算法仍然存在一定的局限性,如計算復(fù)雜度高、實時性差等。為了解決這些問題,研究人員提出了YOLO(You Only Look Once)算法[7],該算法采用端到端的訓(xùn)練方式,能夠在保持較高檢測準確性的同時實現(xiàn)實時檢測。YOLO算法自2016年首次提出以來,經(jīng)歷了多次改進,如YOLOv2[8]、YOLOv3[9]、YOLOv4[10]等,每個版本都在前一個版本的基礎(chǔ)上提高了檢測準確性和速度。針對水果檢測與識別任務(wù),有研究人員嘗試將深度學(xué)習(xí)技術(shù)應(yīng)用于該領(lǐng)域。例如,使用Faster R-CNN進行蘋果檢測[11],采用Mask R-CNN實現(xiàn)對葡萄的實例分割[12],以及利用SSD進行柑橘檢測[13]等。這些研究表明深度學(xué)習(xí)技術(shù)在水果檢測與識別任務(wù)上具有很大的前景。

????????在本博文中,我們提出了一種基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng),該系統(tǒng)采用YOLOv5算法對常見水果進行檢測和識別,實現(xiàn)對圖片、視頻和實時視頻中的水果進行準確識別。YOLOv5[14]作為YOLO系列算法的最新版本,在保持實時性的同時,進一步提高了檢測準確性。與其他目標檢測算法相比,YOLOv5具有較高的性能和較低的計算復(fù)雜度,因此適合應(yīng)用于水果檢測與識別任務(wù)。

????????本文的主要貢獻包括:(1)介紹了一種基于YOLOv5的水果檢測與識別系統(tǒng);(2)詳細描述了算法原理,提供了Python實現(xiàn)代碼以及訓(xùn)練數(shù)據(jù)集;(3)展示了基于PyQt的UI界面設(shè)計,并分析了訓(xùn)練和評估結(jié)果等實驗。本文旨在為相關(guān)領(lǐng)域的研究人員和新入門的朋友提供一個參考。


1. 系統(tǒng)界面演示效果

????????在本節(jié)中,我們將展示系統(tǒng)的界面效果。通過演示界面效果,可以幫助讀者更好地理解整個水果檢測與識別系統(tǒng)的工作流程,同時也有利于展示系統(tǒng)的功能和易用性。下面我們將通過圖片和描述來展示系統(tǒng)的界面效果,本系統(tǒng)具有以下主要功能:

(1)用戶登錄注冊:支持用戶進行注冊和登錄。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

(2)選擇圖片識別:用戶可以上傳單張圖片進行水果檢測與識別,系統(tǒng)將識別出圖片中的水果并顯示相應(yīng)的類別和置信度。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

(3)視頻識別:用戶可以上傳視頻文件進行水果檢測與識別,系統(tǒng)將實時識別視頻中的水果并顯示相應(yīng)的類別和置信度。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

(4)攝像頭識別:用戶可以使用攝像頭進行實時水果檢測與識別,系統(tǒng)將捕捉攝像頭圖像并實時識別出水果,顯示相應(yīng)的類別和置信度。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))
(5)更換模型和修改文字圖標:用戶可以點擊右側(cè)的模型選擇按鈕更換不同的模型,對于界面中的文字和圖標的修改請參考文末的介紹。


2. 算法原理介紹

????????本系統(tǒng)采用了基于深度學(xué)習(xí)的目標檢測算法YOLOv5,該算法是YOLO系列算法的最新版本,相比于YOLOv3和YOLOv4,YOLOv5在檢測精度和速度上都有很大的提升。YOLOv5算法的核心思想是將目標檢測問題轉(zhuǎn)化為一個回歸問題。YOLOv5使用一種稱為“Anchor Free”的方法來代替?zhèn)鹘y(tǒng)目標檢測算法中的Anchor框,通過直接預(yù)測物體中心點的坐標來代替Anchor框。此外,YOLOv5還引入了一種稱為SPP(Spatial Pyramid Pooling)的特征提取方法,這種方法可以在不增加計算量的情況下,有效地提取多尺度特征,提高檢測性能。

????????在YOLOv5中,首先將輸入圖像通過骨干網(wǎng)絡(luò)進行特征提取,得到一系列特征圖。然后,通過對這些特征圖進行處理,將其轉(zhuǎn)化為一組檢測框和相應(yīng)的類別概率分數(shù),即每個檢測框所屬的物體類別以及該物體的置信度。YOLOv5中的特征提取網(wǎng)絡(luò)使用CSPNet(Cross Stage Partial Network)結(jié)構(gòu),它將輸入特征圖分為兩部分,一部分通過一系列卷積層進行處理,另一部分直接進行下采樣,最后將這兩部分特征圖進行融合。這種設(shè)計使得網(wǎng)絡(luò)具有更強的非線性表達能力,可以更好地處理目標檢測任務(wù)中的復(fù)雜背景和多樣化物體。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????????在YOLOv5中,每個檢測框由其左上角坐標(x,y)、寬度(w)、高度(h)和置信度(confidence)組成。同時,每個檢測框還會預(yù)測C個類別的概率得分,即分類得分(ci),每個類別的得分之和等于1。因此,每個檢測框最終被表示為一個(C+5)維的向量。在訓(xùn)練階段,YOLOv5使用交叉熵損失函數(shù)來優(yōu)化模型。損失函數(shù)由定位損失、置信度損失和分類損失三部分組成,其中定位損失和置信度損失采用了Focal Loss和IoU Loss等優(yōu)化方法,能夠有效地緩解正負樣本不平衡和目標尺寸變化等問題。</font

???????? YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)是由Input、Backbone、Neck、Prediction組成。Yolov5的Input部分是網(wǎng)絡(luò)的輸入端,采用Mosaic數(shù)據(jù)增強方式,對輸入數(shù)據(jù)隨機裁剪,然后進行拼接。Backbone是Yolov5提取特征的網(wǎng)絡(luò)部分,特征提取能力直接影響整個網(wǎng)絡(luò)性能。YOLOv5的Backbone相比于之前Yolov4提出了新的Focus結(jié)構(gòu)。Focus結(jié)構(gòu)是將圖片進行切片操作,將W(寬)、H(高)信息轉(zhuǎn)移到了通道空間中,使得在沒有丟失任何信息的情況下,進行了2倍下采樣操作。博主覺得YOLOv5不失為一種目標檢測的高性能解決方案,能夠以較高的準確率對海洋動物進行分類與定位。當然現(xiàn)在YOLOv6、YOLOv7、YOLOv8等算法也在不斷提出和改進,等其代碼版本成熟后博主也會再設(shè)計本系統(tǒng)的算法,敬請期待。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))


3. 數(shù)據(jù)集與預(yù)處理

????????在水果識別領(lǐng)域有一些數(shù)據(jù)集如Perez-Borrero I, Marin-Santos D, Gegundez-Arias M E, et al. A fast and accurate deep learning method for strawberry instance segmentation[J]. Computers and Electronics in Agriculture, 2020, 178: 105736,如下圖所示。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))
????????還有Laboro Tomato數(shù)據(jù)集,也可參考這篇文章Real-time fruit detection using deep neural networks on CPU (RTFD): An edge AI application,包括介紹和算法都可以參考。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????????本系統(tǒng)使用的水果檢測數(shù)據(jù)集Fruit Detection Dataset,手動標注了包含蘋果、香蕉、火龍果、番石榴、橙子、梨、菠蘿、釋迦果等8個類別的水果,共計3030張圖片。該數(shù)據(jù)集中每個類別的水果都有大量的旋轉(zhuǎn)和不同的光照條件,有助于訓(xùn)練出更加魯棒的檢測模型。本文實驗的水果檢測識別數(shù)據(jù)集包含訓(xùn)練集2424張圖片,驗證集303張圖片,測試集303張圖片,選取部分數(shù)據(jù)部分樣本數(shù)據(jù)集如圖所示。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))
????????由于YOLOv5算法對輸入圖片大小有限制,需要將所有圖片調(diào)整為相同的大小。為了在不影響檢測精度的情況下盡可能減小圖片的失真,我們將所有圖片調(diào)整為640x640的大小,并保持原有的寬高比例。此外,為了增強模型的泛化能力和魯棒性,我們還使用了數(shù)據(jù)增強技術(shù),包括隨機旋轉(zhuǎn)、縮放、裁剪和顏色變換等,以擴充數(shù)據(jù)集并減少過擬合風(fēng)險。


5. 系統(tǒng)實現(xiàn)

5.1 Python實現(xiàn)

????????本系統(tǒng)的深度學(xué)習(xí)模型使用PyTorch實現(xiàn),基于YOLOv5算法進行目標檢測。在訓(xùn)練階段,我們使用了預(yù)訓(xùn)練模型作為初始模型進行訓(xùn)練,然后通過多次迭代優(yōu)化網(wǎng)絡(luò)參數(shù),以達到更好的檢測性能。在訓(xùn)練過程中,我們采用了學(xué)習(xí)率衰減和數(shù)據(jù)增強等技術(shù),以增強模型的泛化能力和魯棒性。

????????在測試階段,我們使用了訓(xùn)練好的模型來對新的圖片、視頻和實時視頻流進行檢測。通過設(shè)置閾值,將置信度低于閾值的檢測框過濾掉,最終得到檢測結(jié)果。同時,我們還可以將檢測結(jié)果保存為圖片或視頻格式,以便進行后續(xù)分析和應(yīng)用。本系統(tǒng)基于YOLOv5算法,使用PyTorch實現(xiàn)。代碼中用到的主要庫包括PyTorch、NumPy、OpenCV、PyQt等。實現(xiàn)過程中,我們首先需要導(dǎo)入所需的庫和模塊:

import argparse
import random

import cv2
import numpy as np
import torch

from models.experimental import attempt_load
from utils.datasets import letterbox
from utils.general import non_max_suppression, check_img_size, scale_coords
from utils.torch_utils import time_synchronized, select_device

????????然后,我們需要定義一些函數(shù),其中predict()函數(shù)用于實現(xiàn)圖片的預(yù)測推理;cv_imread()函數(shù)用于讀取圖片;plot_one_box()函數(shù)用于繪制預(yù)測框。

def predict(img):
    img = torch.from_numpy(img).to(device)
    img = img.half() if half else img.float()
    img /= 255.0
    if img.ndimension() == 3:
        img = img.unsqueeze(0)

    t1 = time_synchronized()
    pred = model(img, augment=False)[0]
    pred = non_max_suppression(pred, opt.conf_thres, opt.iou_thres, classes=opt.classes,
                               agnostic=opt.agnostic_nms)
    t2 = time_synchronized()
    InferNms = round((t2 - t1), 2)

    return pred, InferNms


def cv_imread(filePath):
    # 讀取圖片
    cv_img = cv2.imdecode(np.fromfile(filePath, dtype=np.uint8), -1)

    if len(cv_img.shape) > 2:
        if cv_img.shape[2] > 3:
            cv_img = cv_img[:, :, :3]
    return cv_img


def plot_one_box(img, x, color=None, label=None, line_thickness=None):
    # Plots one bounding box on image img
    tl = line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1  # line/font thickness
    color = color or [random.randint(0, 255) for _ in range(3)]
    c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
    cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
    if label:
        tf = max(tl - 1, 1)  # font thickness
        t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
        c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
        cv2.rectangle(img, c1, c2, color, -1, cv2.LINE_AA)  # filled
        cv2.putText(img, label, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)


if __name__ == '__main__':
    img_path = "./UI_rec/test_/b-1459-_jpg.rf.06e32fd1fbee5a10c776e1e63237904f.jpg"
    image = cv_imread(img_path)
    image = cv2.resize(image, (850, 500))
    img0 = image.copy()
    img = letterbox(img0, new_shape=imgsz)[0]
    img = np.stack(img, 0)
    img = img[:, :, ::-1].transpose(2, 0, 1)  # BGR to RGB, to 3x416x416
    img = np.ascontiguousarray(img)

    pred, useTime = predict(img)

    det = pred[0]
    p, s, im0 = None, '', img0
    if det is not None and len(det):  # 如果有檢測信息則進入
        det[:, :4] = scale_coords(img.shape[1:], det[:, :4], im0.shape).round()  # 把圖像縮放至im0的尺寸
        number_i = 0  # 類別預(yù)編號
        detInfo = []
        for *xyxy, conf, cls in reversed(det):  # 遍歷檢測信息
            c1, c2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
            # 將檢測信息添加到字典中
            detInfo.append([names[int(cls)], [c1[0], c1[1], c2[0], c2[1]], '%.2f' % conf])
            number_i += 1  # 編號數(shù)+1

            label = '%s %.2f' % (names[int(cls)], conf)

            # 畫出檢測到的目標物
            plot_one_box(image, xyxy, label=label, color=colors[int(cls)])
    # 實時顯示檢測畫面
    cv2.imshow('Stream', image)
    # if cv2.waitKey(1) & 0xFF == ord('q'):
    #     break
    c = cv2.waitKey(0) & 0xff

????????在這段Python代碼中,我們首先定義了一個名為predict的函數(shù),用于對輸入的圖像進行檢測和分類。該函數(shù)輸入一個圖像,先將其轉(zhuǎn)化為PyTorch Tensor,然后對圖像進行預(yù)測和非極大值抑制,得到預(yù)測結(jié)果和推理時間。接下來我們定義了cv_imread函數(shù),用于讀取圖片。cv_imread函數(shù)通過OpenCV庫的imdecode函數(shù)讀取圖片,并將其轉(zhuǎn)化為NumPy數(shù)組,然后返回該數(shù)組。接著我們定義了plot_one_box函數(shù),該函數(shù)用于在圖像上畫出檢測框和類別標簽,其中函數(shù)參數(shù)中包括了待畫出的圖像、檢測框坐標、類別標簽、顏色等。

????????最后,在if name == ‘main’:語句中,我們首先讀取一張測試圖片,并將其調(diào)整為合適的大小,然后將其輸入到predict函數(shù)中進行檢測和分類,得到檢測結(jié)果和推理時間。接著,我們通過遍歷檢測結(jié)果,將檢測到的目標物的信息添加到detInfo列表中,然后調(diào)用plot_one_box函數(shù),將目標物的檢測框和類別標簽畫在圖像上。最后通過OpenCV庫的imshow函數(shù)將結(jié)果圖像實時顯示在屏幕上。

????????這部分代碼是我們整個系統(tǒng)實現(xiàn)的關(guān)鍵部分,通過修改和集成該部分代碼同樣可以實現(xiàn)對輸入視頻和實時攝像頭畫面的實時檢測和分類,并且可以通過界面將結(jié)果顯示給用戶,提高了系統(tǒng)的實用性。

5.2 PyQt界面設(shè)計

????????PyQt是Python語言的GUI編程解決方案之一,可以快速地為Python程序創(chuàng)建GUI應(yīng)用。在本文中,我們使用PyQt庫創(chuàng)建一個圖形化界面,為用戶提供簡單易用的交互界面,實現(xiàn)用戶選擇圖片、視頻或?qū)崟r視頻進行目標檢測。這里介紹系統(tǒng)的GUI設(shè)計和開發(fā)過程,包括主窗口的設(shè)計、UI控件的布局以及信號槽的連接。

????????在本系統(tǒng)中,使用PyQt5庫設(shè)計了可視化的GUI界面,主要包括以下六個模塊:

(1)圖片檢測模塊:用戶可以選擇本地的一張圖片進行檢測,檢測結(jié)果將在界面中實時顯示。用戶也可以選擇多張圖片進行批量檢測,并將結(jié)果記錄保存到本地。
(2)視頻檢測模塊:用戶可以選擇本地的一個視頻進行檢測,檢測結(jié)果將在界面中實時顯示。用戶也可以選擇多個視頻進行批量檢測,并將結(jié)果記錄保存到本地。
(3)實時檢測模塊:用戶可以啟動攝像頭進行實時檢測,檢測結(jié)果將在界面中實時顯示。
(4)更換模型模塊:用戶可以選擇不同的預(yù)訓(xùn)練模型進行檢測,系統(tǒng)提供了多種不同的預(yù)訓(xùn)練模型供用戶選擇。
(5)結(jié)果記錄回看模塊:用戶可以查看歷史檢測結(jié)果,并對檢測結(jié)果進行搜索和篩選。
(6)其他模塊:界面中還包括了一些輔助模塊,如登錄注冊、設(shè)置等。

????????我們使用Qt Designer設(shè)計圖形界面,然后使用PyQt將設(shè)計好的UI文件轉(zhuǎn)換為Python代碼。圖形界面中包含多個UI控件,例如:菜單欄、工具欄、標簽、按鈕等。通過PyQt中的信號槽機制,可以使得UI控件與程序邏輯代碼相互連接。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????????界面設(shè)計使用了Qt Designer工具,通過拖拽組件的方式進行布局,同時也可以通過代碼進行動態(tài)添加和修改。在界面的設(shè)計過程中,我們主要使用了以下幾個組件:

(1)QLabel:用于顯示文字和圖片。
(2)QToolButton:用于實現(xiàn)按鈕功能。
(3)QComboBox:用于實現(xiàn)下拉框功能,供用戶選擇預(yù)訓(xùn)練模型。
(4)QFileDialog:用于選擇本地的圖片和視頻。
(5)QTableWidget:用于展示歷史檢測結(jié)果,并提供搜索和篩選功能。

????????為了使得界面更加美觀和易于操作,我們還可以自定義控件樣式,例如在系統(tǒng)中使用的按鈕等,都進行了樣式的調(diào)整。具體實現(xiàn)方式是通過QSS文件,使用CSS語法進行樣式定義。

????????在圖形界面的實現(xiàn)過程中,我們還需要使用Python中的OpenCV庫實現(xiàn)視頻的讀取和顯示。使用OpenCV可以快速實現(xiàn)視頻的讀取、播放和保存等操作,并且可以與PyQt進行結(jié)合,實現(xiàn)更為高效的圖像和視頻處理。下面我們給出系統(tǒng)GUI的示例圖:

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))


6. 實驗結(jié)果與分析

????????在實驗結(jié)果與分析部分,我們不僅通過精度和召回率等指標來評估模型的性能,還通過損失曲線和PR曲線來分析訓(xùn)練過程

????????我們使用了前面介紹的水果檢測數(shù)據(jù)集進行訓(xùn)練,該數(shù)據(jù)集包含多種不同的水果類別,包括蘋果、香蕉、橙子、西瓜等,共計8個類別。我們使用了YOLOv5算法,訓(xùn)練了300個epochs,訓(xùn)練過程截圖如下。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????????在訓(xùn)練過程中,我們使用tensorboard記錄了模型在訓(xùn)練集和驗證集上的損失曲線。從圖6-1中可以看出,隨著訓(xùn)練次數(shù)的增加,模型的訓(xùn)練損失和驗證損失都逐漸降低,說明模型不斷地學(xué)習(xí)到更加精準的特征。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))
????????在訓(xùn)練結(jié)束后,我們對模型在測試集上進行了評估,得到了以下結(jié)果。下圖展示了我們訓(xùn)練的YOLOv5模型在測試集上的PR曲線??梢钥吹?,模型在不同類別上都取得了較高的召回率和精確率,整體表現(xiàn)良好。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????????綜上,我們訓(xùn)練的YOLOv5模型在水果檢測數(shù)據(jù)集上表現(xiàn)良好,具有較高的檢測精度和魯棒性,可以在實際場景中應(yīng)用。

????????博主對整個系統(tǒng)進行了詳細測試,最終開發(fā)出一版流暢得到清新界面,就是博文演示部分的展示,完整的UI界面、測試圖片視頻、代碼文件,以及Python離線依賴包(方便安裝運行,也可自行配置環(huán)境),均已打包上傳,感興趣的朋友可以通過下載鏈接獲取。


下載鏈接

????若您想獲得博文中涉及的實現(xiàn)完整全部程序文件(包括測試圖片、視頻,py, UI文件等,如下圖),這里已打包上傳至博主的面包多平臺,見可參考博客與視頻,已將所有涉及的文件同時打包到里面,點擊即可運行,完整文件截圖如下:

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

????在文件夾下的資源顯示如下,下面的鏈接中也給出了Python的離線依賴包,讀者可在正確安裝Anaconda和Pycharm軟件后,復(fù)制離線依賴包至項目目錄下進行安裝,離線依賴的使用詳細演示也可見本人B站視頻:win11從頭安裝軟件和配置環(huán)境運行深度學(xué)習(xí)項目、Win10中使用pycharm和anaconda進行python環(huán)境配置教程。

基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))

注意:該代碼采用Pycharm+Python3.8開發(fā),經(jīng)過測試能成功運行,運行界面的主程序為runMain.py和LoginUI.py,測試圖片腳本可運行testPicture.py,測試視頻腳本可運行testVideo.py。為確保程序順利運行,請按照requirements.txt配置Python依賴包的版本。Python版本:3.8,請勿使用其他版本,詳見requirements.txt文件;

完整資源中包含數(shù)據(jù)集及訓(xùn)練代碼,環(huán)境配置與界面中文字、圖片、logo等的修改方法請見視頻,項目完整文件下載請見參考博客文章里面,或參考視頻的簡介處給出:???

參考博客文章:https://www.cnblogs.com/sixuwuxian/p/17372580.html

參考視頻演示:https://www.bilibili.com/video/BV1rT411h7dY/

離線依賴庫下載鏈接:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取碼:oy4n )


界面中文字、圖標和背景圖修改方法:

????????在Qt Designer中可以徹底修改界面的各個控件及設(shè)置,然后將ui文件轉(zhuǎn)換為py文件即可調(diào)用和顯示界面。如果只需要修改界面中的文字、圖標和背景圖的,可以直接在ConfigUI.config文件中修改,步驟如下:
????????(1)打開UI_rec/tools/ConfigUI.config文件,若亂碼請選擇GBK編碼打開。
????????(2)如需修改界面文字,只要選中要改的字符替換成自己的就好。
????????(3)如需修改背景、圖標等,只需修改圖片的路徑。例如,原文件中的背景圖設(shè)置如下:

mainWindow = :/images/icons/back-image.png

????????可修改為自己的名為background2.png圖片(位置在UI_rec/icons/文件夾中),可將該項設(shè)置如下即可修改背景圖:

mainWindow = ./icons/background2.png

結(jié)束語

????????由于博主能力有限,博文中提及的方法即使經(jīng)過試驗,也難免會有疏漏之處。希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹?shù)臉幼樱尸F(xiàn)在大家面前。同時如果有更好的實現(xiàn)方法也請您不吝賜教。


參考文獻

[1] Bargoti, S., & Underwood, J. P. (2017). Image segmentation for fruit detection and yield estimation in apple orchards. Journal of Field Robotics, 34(6), 1039-1060.
[2] Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 580-587).
[3] Girshick, R. (2015). Fast R-CNN. In Proceedings of the IEEE international conference on computer vision (pp. 1440-1448).
[4] Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. In Advances in neural information processing systems (pp. 91-99).
[5] Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C. Y., & Berg, A. C. (2016, October). SSD: Single shot multibox detector. In European conference on computer vision (pp. 21-37). Springer, Cham.
[6] Lin, T. Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal loss for dense object detection. In Proceedings of the IEEE international conference on computer vision (pp. 2980-2988).
[7] Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).
[8] Redmon, J., & Farhadi, A. (2017). YOLO9000: Better, faster, stronger. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 7263-7271).
[9] Redmon, J., & Farhadi, A. (2018). YOLOv3: An incremental improvement. arXiv preprint arXiv:1804.02767.
[10] Bochkovskiy, A., Wang, C. Y., & Liao, H. Y. M. (2020). YOLOv4: Optimal speed and accuracy of object detection. arXiv preprint arXiv:2004.10934.
[11] Sa, I., Ge, Z., Dayoub, F., Upcroft, B., Perez, T., & McCool, C. (2016). DeepFruits: A fruit detection system using deep neural networks. Sensors, 16(8), 1222.
[12] Rahnemoonfar, M., & Sheppard, C. (2017). Deep count: Fruit counting based on deep simulated learning. Sensors, 17(4), 905.
[13] Chakraborty S K, Subeesh A, Dubey K, et al. Development of an optimally designed real-time automatic citrus fruit grading–sorting? machine leveraging computer vision-based adaptive deep learning model[J]. Engineering Applications of Artificial Intelligence, 2023, 120: 105826.
[14] Jocher, G., Stoken, A., Borovec, J., Bendahan, R. A., Puig, D., Tokozume, Y., … & Guan, H. (2021). Ultralytics/yolov5: v5.0-YOLOv5-PyTorch.文章來源地址http://www.zghlxwxcb.cn/news/detail-431439.html

到了這里,關(guān)于基于深度學(xué)習(xí)的水果檢測與識別系統(tǒng)(Python界面版,YOLOv5實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包