基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

思緒無限發表於2023-05-04

摘要:本文介紹了一種MATLAB實現的目標檢測系統程式碼,採用 YOLOv4 檢測網路作為核心模型,用於訓練和檢測各種任務下的目標,並在GUI介面中對各種目標檢測結果視覺化。文章詳細介紹了YOLOv4的實現過程,包括演算法原理、MATLAB 實現程式碼、訓練資料集、訓練過程和圖形使用者介面。在GUI介面中,使用者可以選擇各種圖片、影片、攝像頭進行檢測識別,可更換檢測模型。本文提供了完整的 MATLAB 程式碼和使用教程,適合新入門的朋友參考。完整程式碼資原始檔請參見文末的下載連結。

➷點選跳轉至文末所有涉及的完整程式碼檔案下載頁☇

完整程式碼下載:https://mbd.pub/o/bread/ZJiYm51v

參考影片演示:https://www.bilibili.com/video/BV15a4y1G7yJ/


1. 引言

        十年前博主在初學人工智慧時,經常發現網上可供參考的高質量的完整教程或部落格很少,要實現一個複雜點的程式碼基本無從參考,自己很多時候都是在瞎摸索。撰寫這篇部落格的初衷是為了分享技術知識,為初學者提供啟發,我希望透過部落格的例項和解釋,激發讀者的興趣和熱情,幫助他們更好地理解和應用相關技術。正所謂“博學而篤志,切問而近思”,也希望讀者在閱讀部落格的過程中,不要停止思考,在掌握基本原理和技術之後,嘗試自己解決問題,提出新的觀點和想法。在學習的過程中,可能會遇到挑戰和困難,一個Bug的解決或許正是提高技能、擴充知識邊界的時機。本部落格內容為博主原創,相關引用和參考文獻我已在文中標註,考慮到可能會有相關專業人員看到,博主的部落格這裡儘可能以學術期刊的格式撰寫,如需參考可引用本部落格格式如下:

[1] 思緒無限. 基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)[J/OL]. CSDN, 2023.05. https://wuxian.blog.csdn.net/article/details/130470598.
[2] Wu, S. (2023, May). Object Detection System Based on YOLOv4 (with MATLAB Code and GUI Implementation) [J/OL]. CSDN. https://wuxian.blog.csdn.net/article/details/130470598.

        目標檢測作為計算機視覺領域的一個重要研究方向,旨在從影像或影片中識別和定位特定類別的物體(Redmon et al., 2016)[1]。在過去的幾年裡,隨著深度學習技術的發展,基於卷積神經網路(CNN)的目標檢測方法取得了顯著的進步。一些經典的目標檢測方法包括R-CNN(Girshick et al., 2014)[2]、Fast R-CNN(Girshick, 2015)[3]、Faster R-CNN(Ren et al., 2015)[4]、SSD(Liu et al., 2016)[5]和RetinaNet(Lin et al., 2017)[6]。這些方法在各種基準資料集上取得了不俗的成績,如PASCAL VOC(Everingham et al., 2010)[7]、COCO(Lin et al., 2014)[8]和ImageNet(Russakovsky et al., 2015)[9]。YOLO系列演算法(Redmon et al., 2016; Redmon & Farhadi, 2017; Redmon & Farhadi, 2018; Bochkovskiy et al., 2020)[1, 10-12]相較於其他方法,更注重檢測速度和實時性,因此在許多實際應用場景中具有較大優勢。

        儘管上述方法在目標檢測領域取得了顯著成果,但每種方法都存在一定的侷限性。例如,R-CNN系列方法在檢測精度上表現優異,但計算複雜度較高,導致檢測速度較慢(Girshick et al., 2014; Girshick, 2015; Ren et al., 2015)[2-4]。相比之下,SSD和RetinaNet等一階段檢測方法在檢測速度上有所改進,但精度相對較低(Liu et al., 2016; Lin et al., 2017)[5, 6]。YOLO系列演算法在檢測速度和精度之間取得了較好的平衡(Redmon et al., 2016; Redmon & Farhadi, 2017; Redmon & Farhadi, 2018; Bochkovskiy et al., 2020)[1, 10-12]。尤其是YOLOv4演算法,憑藉其較高的檢測精度和速度成為了目標檢測領域的一種重要方法(Bochkovskiy et al., 2020)[12]。

        目前,許多研究者和工程師已經成功地將YOLOv4應用於各種實際場景,如無人駕駛(Geiger et al., 2012)[13]、影片監控(Sindhu et al., 2021)[14]、醫學影像(Shewajo et al., 2023)[15]等。然而,儘管YOLOv4在目標檢測任務中取得了令人矚目的成果,但在MATLAB環境中實現YOLOv4的相關研究仍相對較少(MathWorks, 2021)[16]。基於MATLAB實現YOLOv4目標檢測系統具有較強的實用性,可以為計算機視覺和影像處理領域的研究人員和工程師提供便捷的開發和除錯工具。因此,本部落格的主要貢獻點如下:

  1. 提供一個基於MATLAB實現的YOLOv4目標檢測系統,該系統具有使用者友好的介面,支援多種檢測模式,如圖片檢測、批次檢測、影片檢測和實時攝像頭檢測;
  2. 詳細介紹在MATLAB環境中準備YOLOv4模型訓練所需的資料集格式,以及給出一個自定義動物識別資料集的例項;
  3. 提供YOLOv4模型的訓練程式碼,並透過訓練曲線和模型評估結果展示其效能;
  4. 結合GUI介面,詳細闡述系統的設計框架和實現原理。

2. 系統介面演示效果

        為了方便使用者進行目標檢測,我們基於MATLAB開發了一個具有使用者友好介面的YOLOv4目標檢測系統。該系統支援以下功能:

(1)選擇圖片檢測:使用者可以選擇單張圖片進行目標檢測,系統將識別圖片中的物體並在圖片上標註出物體的邊界框和類別。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

(2)選擇資料夾批次檢測:使用者可以選擇一個資料夾進行批次檢測,系統將自動識別資料夾中的所有圖片,並將檢測結果儲存到指定的輸出資料夾中。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

(3)選擇影片檢測:使用者可以選擇一個影片檔案進行目標檢測,系統將實時識別影片中的物體並在影片畫面上標註出物體的邊界框和類別。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

(4)呼叫攝像頭檢測:使用者可以啟用計算機攝像頭進行實時目標檢測,系統將實時識別攝像頭捕捉到的畫面中的物體,並在畫面上標註出物體的邊界框和類別。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

(5)更換不同網路模型:使用者可以根據需要選擇不同的YOLOv4預訓練模型進行目標檢測,以適應不同的檢測任務和效能要求。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

(6)透過介面顯示結果和視覺化:系統的介面將直觀地展示檢測結果,包括物體的邊界框、類別以及置信度得分。同時,使用者可以透過介面檢視檢測過程的視覺化效果,以便更好地瞭解模型的檢測效能。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

3. 資料集格式介紹

        在MATLAB環境中訓練YOLOv4模型,首先需要準備一個合適的資料集。資料集應包含大量標註的圖片,以便訓練模型學會識別不同類別的物體。本節將詳細介紹MATLAB官方支援的YOLOv4模型訓練所需的資料集標註檔案格式,以及如何建立一個自定義的動物識別資料集作為示例。

        在MATLAB中,YOLOv4訓練所需的資料集標註資訊採用table型別進行儲存。每個table的行表示一個樣本(即一張圖片),每一列對應一個特定的資訊。第一列為圖片檔案的路徑,而從第二列開始,每一列對應一個特定類別的標註資訊。每個類別的標註資訊包括在該類別下的邊界框座標。如果一張圖片中有多個邊界框屬於同一類別,則使用二維陣列表示這些邊界框。若某類別在圖片中沒有出現,則用空陣列([])表示。

自定義動物識別資料集為例,可以看到資料集的結構如下:

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

        在這個示例中,有6個類別:鳥(bird)、貓(cat)、牛(cow)、狗(dog)、馬(horse)和羊(sheep)。每個類別的標註資訊包括邊界框的左上角座標(x, y)以及邊界框的寬度和高度(w, h)。


4. 模型訓練程式碼

        在本節中,將介紹如何使用MATLAB進行YOLOv4模型的訓練。我們將使用在前面部分準備好的自定義動物識別資料集。首先,需要載入訓練集、驗證集和測試集的資料,並新增影像檔案的完整路徑。以下是載入資料集的MATLAB程式碼:

% 載入資料集
data = load("data/Animal_dataset_train.mat");
trainData = data.Dataset;  % 訓練集

data = load("data/Animal_dataset_val.mat");
validData = data.Dataset;  % 驗證集

data = load("data/Animal_dataset_test.mat");
testData = data.Dataset;  % 測試集

% 為資料集新增完整路徑
dataDir = fullfile(pwd, 'data');
trainData.imageFilename = fullfile(dataDir, trainData.imageFilename);
validData.imageFilename = fullfile(dataDir, validData.imageFilename);
testData.imageFilename = fullfile(dataDir, testData.imageFilename);

        接下來,使用imageDatastore和boxLabelDatastore建立資料儲存,以便在訓練和評估期間載入影像和標籤資料。

% 建立資料儲存
imdsTrain = imageDatastore(trainData{:,"imageFilename"});
bldsTrain = boxLabelDatastore(trainData(:, 2:end));
imdsValidation = imageDatastore(validData{:,"imageFilename"});
bldsValidation = boxLabelDatastore(validData(:, 2:end));
imdsTest = imageDatastore(testData{:,"imageFilename"});
bldsTest = boxLabelDatastore(testData(:, 2:end));

% 整合圖片和標籤
trainingData = combine(imdsTrain, bldsTrain);
validationData = combine(imdsValidation, bldsValidation);
testData = combine(imdsTest, bldsTest);

        為了訓練YOLOv4模型,需要調整輸入影像的大小,並根據錨框數量估計錨框。

inputSize = [320 224 3];  % 輸入尺寸
classes = {'bird', 'cat',  'cow',  'dog', 'horse', 'sheep'};
numAnchors = 6;

% 預處理資料
trainingDataForEstimation = transform(trainingData, @(data)preprocessData(data, inputSize));
[anchors, meanIoU] = estimateAnchorBoxes(trainingDataForEstimation, numAnchors);

% 計算每層的錨框
area = anchors(:,1) .* anchors(:,2);
[~, idx] = sort(area, "descend");
anchors = anchors(idx, :);
anchorBoxes = {anchors(1:3, :); anchors(4:6, :)};

        接下來使用COCO資料集上訓練的預訓練YOLOv4檢測網路建立YOLOv4物件檢測器。在此之前,可以選擇性地應用資料增強方法,例如隨機水平翻轉、隨機縮放和顏色變換等。然後,設定訓練引數,如學習率、批次大小和最大迭代次數等。

% 使用 COCO 資料集上訓練的預訓練 YOLO v4 檢測網路建立YOLOv4物件檢測器
detector = yolov4ObjectDetector("tiny-yolov4-coco",classes,anchorBoxes,InputSize=inputSize);

if flag_augment  % 進行資料增強
    augmentedTrainingData = transform(trainingData, @augmentData);  % 為資料配置增強操作
    % 展示增強效果
    augmentedData = cell(4,1);
    for k = 1:4
        data = read(augmentedTrainingData);
        augmentedData{k} = insertShape(data{1},"rectangle",data{2});
        reset(augmentedTrainingData);
    end
    figure
    montage(augmentedData,BorderSize=10)  % 演示資料增強效果
end

% 訓練引數設定
options = trainingOptions("adam", ...
    ExecutionEnvironment=exe_env,...
    GradientDecayFactor=0.9,...
    SquaredGradientDecayFactor=0.999,...
    InitialLearnRate=0.001,...
    LearnRateSchedule="none",...
    MiniBatchSize=16,...
    L2Regularization=0.0005,...
    MaxEpochs=300,...
    BatchNormalizationStatistics="moving",...
    DispatchInBackground=true,...
    ResetInputNormalization=false,...
    Shuffle="every-epoch",...
    VerboseFrequency=20,...
    CheckpointPath='./checkPoint/',...
    CheckpointFrequency=10, ...
    ValidationData=validationData, ...
    OutputNetwork='best-validation-loss' ...
    );

% options = trainingOptions("sgdm", ...
%     ExecutionEnvironment=exe_env, ...
%     InitialLearnRate=0.001, ...
%     MiniBatchSize=16,...
%     MaxEpochs=300, ...
%     BatchNormalizationStatistics="moving",...
%     ResetInputNormalization=false,...
%     VerboseFrequency=30);

% 執行訓練程式
if doTraining       
    % Train the YOLO v4 detector.
    if flag_augment  % 是否資料增強
        [detector,info] = trainYOLOv4ObjectDetector(augmentedTrainingData,detector,options);
    else
        if if_checkPoint  % 是否使用checkpoint
            load(checkpoint_path);
            [detector,info] = trainYOLOv4ObjectDetector(trainingData, net, options);
        else
            [detector,info] = trainYOLOv4ObjectDetector(trainingData,detector,options);
        end
    end
else
    % 否則使用預訓練模型
    pretrained = load('yolov4_tiny.mat');
    detector = pretrained.detector;
end

        訓練過程中的輸出資訊如下:

*************************************************************************
Training a YOLO v4 Object Detector for the following object classes:
* bird
* cat
* cow
* dog
* horse
* sheep
 
    Epoch    Iteration    TimeElapsed    LearnRate    TrainingLoss    ValidationLoss
    _____    _________    ___________    _________    ____________    ______________
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
      1         20         00:01:40        0.001         62.356                     
      1         40         00:01:48        0.001         25.72                      
      1         60         00:02:01        0.001         19.095                     
      1         80         00:02:08        0.001         21.819                     
      2         100        00:02:29        0.001         14.169          0.67991    
      2         120        00:02:43        0.001         19.108                     
 ...

        在這個過程中,首先選擇是否進行資料增強。然後,設定訓練引數,例如執行環境(GPU)、學習率、批次大小、最大迭代次數等。接下來,根據選擇進行訓練或使用預訓練模型。訓練完成後,將模型儲存為animal_tiny_yolov4.mat。最後,使用訓練好的模型在測試集上進行檢測,評估檢測精度,儲存測試結果和訓練曲線。整個訓練過程涉及預處理資料、資料增強、設定訓練引數、進行訓練、評估檢測精度等步驟。以上程式碼示例展示瞭如何使用MATLAB實現這些步驟,以實現YOLOv4模型的訓練和評估。


5. 系統實現

        在本節中,將詳細介紹如何將YOLOv4目標檢測器與圖形使用者介面(GUI)相結合,以實現一個友好、易於使用的動物識別系統。結合GUI可以讓使用者更方便地上傳圖片、選擇模型引數,以及檢視識別結果。以下是設計框架和實現原理。系統實現主要包括以下幾個部分:

  1. 圖形使用者介面(GUI):提供使用者與系統互動的介面,包括圖片上傳、模型引數選擇、結果展示等功能。
  2. 影像處理模組:對使用者上傳的圖片進行預處理,以適應YOLOv4模型的輸入要求。
  3. 檢測器模組:使用訓練好的YOLOv4動物目標檢測器進行動物類別識別。
  4. 結果處理模組:對檢測結果進行後處理,以便在GUI上展示。
基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

        我們的GUI設計旨在為使用者提供一個簡潔、直觀的操作介面。主要元素包括選單欄、圖片顯示區域、引數設定區域和結果顯示區域。將這些元素佈局得緊湊而有序,以便使用者能夠方便地進行圖片上傳、引數設定和結果檢視。以下是GUI中涉及的主要控制元件:

  1. 圖片選擇按鈕:使用者點選此按鈕後,系統將開啟檔案選擇器以便使用者選擇一張圖片。選定圖片後,圖片將在影像顯示座標系中展示。
  2. 影片選擇按鈕:使用者點選此按鈕後,系統將開啟檔案選擇器以便使用者選擇一個影片檔案。選定影片後,影片將在影像顯示座標系中播放並實時顯示識別結果。
  3. 攝像頭開啟按鈕:使用者點選此按鈕後,系統將開啟計算機攝像頭並實時捕獲影片流。捕獲的影片將在影像顯示座標系中展示並實時顯示識別結果。
  4. 更換模型按鈕:使用者點選此按鈕後,系統將彈出一個對話方塊,讓使用者選擇新的模型檔案。選定新模型後,系統將使用新模型進行後續的識別任務。
  5. 影像顯示座標系:用於實時顯示使用者上傳的圖片、選定的影片或捕獲的攝像頭影片流,以及在影像上顯示識別結果。
  6. 結果顯示區域:用於展示檢測到的動物類別、置信度等資訊。使用者可以在這個區域檢視識別結果。

        為了實現GUI的互動功能,需要編寫一系列回撥函式。以下是主要的回撥函式及其功能:

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)
  1. 圖片選擇回撥函式:當使用者點選圖片選擇按鈕時,此函式將被觸發。它負責開啟檔案選擇器,讓使用者選擇一張圖片,並將圖片顯示在影像顯示座標系中。
  2. 影片選擇回撥函式:當使用者點選影片選擇按鈕時,此函式將被觸發。它負責開啟檔案選擇器,讓使用者選擇一個影片檔案,並在影像顯示座標系中播放影片,同時實時顯示識別結果。
  3. 攝像頭開啟回撥函式:當使用者點選攝像頭開啟按鈕時,此函式將被觸發。它負責開啟計算機攝像頭,捕獲影片流並在影像顯示座標系中實時顯示識別結果。
  4. 更換模型回撥函式:當使用者點選更換模型按鈕時,此函式將被觸發。它負責彈出一個對話方塊,讓使用者選擇新的模型檔案,並將新模型應用於後續的識別任務。

        透過以上設計,實現了一個易於使用、功能齊全的圖形使用者介面。使用者可以透過這個介面方便地進行圖片上傳、影片選擇、攝像頭開啟、模型更換和結果檢視,從而實現動物識別任務。


6. 總結與展望

        本文主要介紹了一種基於YOLOv4的目標檢測系統。首先,詳細闡述了資料集的標註格式及預處理過程,包括影像的標註、資料的劃分等。接著,使用 YOLOv4 檢測網路構建了動物識別模型,並詳細描述了訓練過程中的引數設定、錨框估計、資料增強等關鍵環節。隨後,討論了系統實現的關鍵技術,包括網路設計、GUI設計等,並展示了一個基於 MATLAB 的圖形使用者介面,方便使用者進行動物識別任務。

        儘管本文所提出的動物識別系統已經取得了較好的效果,但仍存在一些可以改進和最佳化的地方。在未來的研究中,我們將關注以下幾個方面:

  1. 更豐富的資料集:為了提高模型的泛化能力,可以透過收集更多動物種類和場景的影像資料來擴充套件資料集。同時,可以嘗試使用半監督或無監督學習方法,以充分利用未標註資料。
  2. 更先進的檢測演算法:隨著深度學習技術的發展,可以嘗試將更先進的檢測演算法應用於動物識別任務中,以提高模型的準確性和實時性。
  3. 多模態資訊融合:考慮到動物識別過程中可能涉及多種模態資訊,如聲音、行為等,可以研究如何將這些資訊融合到模型中,以提高識別效能。
  4. 實時識別與跟蹤:針對實時影片流的動物識別和跟蹤任務,可以研究更高效的演算法和技術,以降低延遲並提高跟蹤穩定性。
  5. 模型部署與最佳化:為了在不同平臺上實現高效的動物識別,可以研究模型壓縮、硬體加速等技術,以滿足不同場景的需求。

下載連結

    若您想獲得博文中涉及的實現完整全部程式檔案(包括測試圖片、影片,mlx, mlapp檔案等,如下圖),這裡已打包上傳至博主的麵包多平臺,見可參考部落格與影片,已將所有涉及的檔案同時打包到裡面,點選即可執行,完整檔案截圖如下:

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

    在資料夾下的資源顯示如下圖所示:

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

注意:該程式碼採用MATLAB R2022a開發,經過測試能成功執行,執行介面的主程式為Detector_UI.mlapp,測試影片指令碼可執行test_video.m,測試攝像頭指令碼可執行test_camera.m。為確保程式順利執行,請使用MATLAB2022a執行並在“附加功能管理器”(MATLAB的上方選單欄->主頁->附加功能->管理附加功能)中新增有以下工具。

基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)

完整資源中包含資料集及訓練程式碼,環境配置與介面中文字、圖片、logo等的修改方法請見影片,專案完整檔案下載請見參考部落格文章裡面,或參考影片的簡介處給出:➷➷➷

參考部落格文章:https://zhuanlan.zhihu.com/p/626659942/

參考影片演示:https://www.bilibili.com/video/BV1ts4y1X71R/


結束語

        任何絕對的宣告程式無Bug都是不可能的,儘管我們已經努力除錯程式,確保在目前的執行環境下沒有發現Bug,但計算機配置、作業系統、MATLAB版本等多種因素都可能影響程式的執行。如果在執行過程中遇到問題,希望讀者冷靜思考、認真檢查操作流程、科學合理尋找解決方案,不要讓浮躁和偏激影響了學習的熱忱。

        由於博主能力有限,博文中提及的方法即使經過試驗,也難免會有疏漏之處。希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹的樣子,呈現在大家面前。同時如果有更好的實現方法也請您不吝賜教。


參考文獻

[1] 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).

[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). 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] Everingham, M., Van Gool, L., Williams, C. K., Winn, J., & Zisserman, A. (2010). The Pascal visual object classes (VOC) challenge. International journal of computer vision, 88(2), 303-338.

[8] Lin, T. Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., ... & Zitnick, C. L. (2014). Microsoft COCO: Common objects in context. In European conference on computer vision (pp. 740-755). Springer, Cham.

[9] Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S., ... & Berg, A. C. (2015). Imagenet large scale visual recognition challenge. International journal of computer vision, 115(3), 211-252.

[10] Redmon, J., & Farhadi, A. (2017). YOLO9000: better, faster, stronger. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 7263-7271).

[11] Redmon, J., & Farhadi, A. (2018). YOLOv3: An incremental improvement. arXiv preprint arXiv:1804.02767.

[12] Bochkovskiy, A., Wang, C. Y., & Liao, H. Y. M. (2020). YOLOv4: Optimal speed and accuracy of object detection. arXiv preprint arXiv:2004.10934.

[13] Geiger, A., Lenz, P., & Urtasun, R. (2012). Are we ready for autonomous driving? The KITTI vision benchmark suite. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 3354-3361).

[14] Sindhu V S. Vehicle identification from traffic video surveillance using YOLOv4[C]//2021 5th International Conference on Intelligent Computing and Control Systems (ICICCS). IEEE, 2021: 1768-1775.

[15] Shewajo F A, Fante K A. Tile-based microscopic image processing for malaria screening using a deep learning approach[J]. BMC Medical Imaging, 2023, 23(1): 1-14.

[16] MathWorks. (2021). Object Detection Using YOLO v2 Deep Learning. Retrieved from https://www.mathworks.com/help/vision/ug/object-detection-using-yolo-v2-deep-learning.html.

相關文章