主頁 >  其他 > 基于YOLOv4的目標檢測系統(附MATLAB代碼+GUI實作)

基于YOLOv4的目標檢測系統(附MATLAB代碼+GUI實作)

2023-05-05 09:04:34 其他

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

目錄
  • 1. 引言
  • 2. 系統界面演示效果
  • 3. 資料集格式介紹
  • 4. 模型訓練代碼
  • 5. 系統實作
  • 6. 總結與展望
  • 下載鏈接
  • 結束語
  • 參考文獻

?點擊跳轉至文末所有涉及的完整代碼檔案下載頁?

完整代碼下載: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)選擇圖片檢測:用戶可以選擇單張圖片進行目標檢測,系統將識別圖片中的物體并在圖片上標注出物體的邊界框和類別,

(2)選擇檔案夾批量檢測:用戶可以選擇一個檔案夾進行批量檢測,系統將自動識別檔案夾中的所有圖片,并將檢測結果保存到指定的輸出檔案夾中,

(3)選擇視頻檢測:用戶可以選擇一個視頻檔案進行目標檢測,系統將實時識別視頻中的物體并在視頻畫面上標注出物體的邊界框和類別,

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

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

(6)通過界面顯示結果和可視化:系統的界面將直觀地展示檢測結果,包括物體的邊界框、類別以及置信度得分,同時,用戶可以通過界面查看檢測程序的可視化效果,以便更好地了解模型的檢測性能,


3. 資料集格式介紹

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

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

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

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


4. 模型訓練代碼

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

% 加載資料集
data = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/load("data/Animal_dataset_train.mat");
trainData = data.Dataset;  % 訓練集

data = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/load("data/Animal_dataset_val.mat");
validData = data.Dataset;  % 驗證集

data = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/load("data/Animal_dataset_test.mat");
testData = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/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 = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/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 = https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/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=https://www.cnblogs.com/sixuwuxian/archive/2023/05/04/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上展示,

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

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

        為了實作GUI的互動功能,需要撰寫一系列回呼函式,以下是主要的回呼函式及其功能:

  1. 圖片選擇回呼函式:當用戶點擊圖片選擇按鈕時,此函式將被觸發,它負責打開檔案選擇器,讓用戶選擇一張圖片,并將圖片顯示在影像顯示坐標系中,
  2. 視頻選擇回呼函式:當用戶點擊視頻選擇按鈕時,此函式將被觸發,它負責打開檔案選擇器,讓用戶選擇一個視頻檔案,并在影像顯示坐標系中播放視頻,同時實時顯示識別結果,
  3. 攝像頭開啟回呼函式:當用戶點擊攝像頭開啟按鈕時,此函式將被觸發,它負責開啟計算機攝像頭,捕獲視頻流并在影像顯示坐標系中實時顯示識別結果,
  4. 更換模型回呼函式:當用戶點擊更換模型按鈕時,此函式將被觸發,它負責彈出一個對話框,讓用戶選擇新的模型檔案,并將新模型應用于后續的識別任務,

        通過以上設計,實作了一個易于使用、功能齊全的圖形用戶界面,用戶可以通過這個界面方便地進行圖片上傳、視頻選擇、攝像頭開啟、模型更換和結果查看,從而實作動物識別任務,


6. 總結與展望

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

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

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

下載鏈接

    若您想獲得博文中涉及的實作完整全部程式檔案(包括測驗圖片、視頻,mlx, mlapp檔案等,如下圖),這里已打包上傳至博主的面包多平臺,見可參考博客與視頻,已將所有涉及的檔案同時打包到里面,點擊即可運行,完整檔案截圖如下:

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

注意:該代碼采用MATLAB R2022a開發,經過測驗能成功運行,運行界面的主程式為Detector_UI.mlapp,測驗視頻腳本可運行test_video.m,測驗攝像頭腳本可運行test_camera.m,為確保程式順利運行,請使用MATLAB2022a運行并在“附加功能管理器”(MATLAB的上方選單欄->主頁->附加功能->管理附加功能)中添加有以下工具,

完整資源中包含資料集及訓練代碼,環境配置與界面中文字、圖片、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.

人工智能博主,機器學習及機器視覺愛好者,公眾號主及B站UP主,專注專業知識整理與專案總結約稿、軟體專案開發、原理指導請聯系微信:sixuwuxian(備注來意),郵箱:[email protected],微信公眾號:“AI技術研究與分享”,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551643.html

標籤:其他

上一篇:cPanel XSS漏洞分析研究(CVE-2023-29489)

下一篇:返回列表

標籤雲
其他(158436) Python(38117) JavaScript(25399) Java(18012) C(15221) 區塊鏈(8261) C#(7972) AI(7469) 爪哇(7425) MySQL(7157) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5334) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4565) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1964) Web開發(1951) HtmlCss(1931) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1874) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 基于YOLOv4的目標檢測系統(附MATLAB代碼+GUI實作)

    本文介紹了一種MATLAB實作的目標檢測系統代碼,采用 YOLOv4 檢測網路作為核心模型,用于訓練和檢測各種任務下的目標,并在GUI界面中對各種目標檢測結果可視化。文章詳細介紹了YOLOv4的實作程序,包括演算法原理、MATLAB 實作代碼、訓練資料集、訓練程序和圖形用戶界面。在GUI界面中,用戶可... ......

    uj5u.com 2023-05-05 09:04:34 more
  • cPanel XSS漏洞分析研究(CVE-2023-29489)

    cPanel 是一套在網頁寄存業中最享負盛名的商業軟體,是基于于 Linux 和 BSD 系統及以 PHP 開發且性質為閉源軟體;提供了足夠強大和相當完整的主機管理功能,諸如:Webmail 及多種電郵協議、網頁化 FTP 管理、SSH 連線、資料庫管理系統、DNS 管理等遠端網頁式主機管理軟體功能... ......

    uj5u.com 2023-05-05 09:04:11 more
  • 博客開通

    之前因為查資料注冊的博客園,今天第一次開通屬于自己的博客,小小的記錄一下未來。 #include<iostream> using namespace std; int main(){ print("Hello world!"); return 0; } 我現在大四馬上畢業,考研失敗,對春招的認識不夠 ......

    uj5u.com 2023-05-05 09:03:59 more
  • 京東物流常態化壓測實踐

    大促備戰壓測備戰時間緊、任務多,壓測備戰壓力較大,在大促備戰多專項并行資源緊張情況下,頻繁的系統調優給整個大促帶來不可控的風險因素。引入常態化壓測的手段,通過每周或每月的定期壓測行為,持續把控系統性能表現,保證服務穩定性;同時將需求上線引起的性能問題前置暴露,及時定位優化問題;減輕備戰壓力,提升壓測... ......

    uj5u.com 2023-05-05 09:03:54 more
  • 【OpenAI】私有框架代碼生成實踐

    OpenAI提供的ChatGPT/GPT-4模型和CodeX模型能夠很好的理解和生成業界大多數編程語言的邏輯和代碼,然而在實際應用中,我們經常會在編碼時使用到一些私有框架、包、協議和DSL等。由于相關模型沒有學習最新網路資料,且這些私有資料通常也沒有發布在公開網路上,OpenAI無法根據這些私有資訊... ......

    uj5u.com 2023-05-05 09:03:46 more
  • 【手記】翻新顯卡安裝驅動程式

    只嘗試過N卡,A卡不知道適不適用。 解包驅動程式到目錄。正常運行驅動程式,它會先解壓到c:\nvidia\xxx,然后報錯,此時不要把報錯叉掉,因為叉掉后剛剛解壓得到的c:\nvidia會被刪掉,而我們要的就是這個目錄,所以要趁這個時候,把c:\nvidia復制一份,然后再叉報錯,這樣就得到了一個解 ......

    uj5u.com 2023-05-05 09:03:36 more
  • 阿里測驗經驗7年,從功能測驗到自動化測驗,我整理的超全學習指南

    在阿里做測驗七年多,有不少人問過我下面問題:現在的手工測驗真的不行了嗎?測驗工程師,三年多快四年的經驗,入門自動化測驗需要多久?自學自動化測驗到底需要學哪些東西? ......

    uj5u.com 2023-05-05 09:03:13 more
  • vCenter報錯:Log Disk Exhaustion on 10

    vCenter報錯:Log Disk Exhaustion on 10 1、問題現象: 巡檢時發現 vCenter Server 中,錯誤顯示為:Log Disk Exhaustion on 10(字面意思是日志磁盤耗盡),VC版本 6.7 在瀏覽器輸入https://appliance-IP-ad ......

    uj5u.com 2023-05-05 09:02:46 more
  • 軟體測驗工程師——你不僅僅應該會點點點

    你眼中的軟體測驗崗位是怎樣的?大部分人可能會給出這樣的回答:“測驗?簡單啊,沒什么技術含量,無非就是看需求、看業務手冊、看設計檔案、然后點點功能是否實作,麻煩點的就是測驗下部署安裝是否出現兼容性問題等 。” ......

    uj5u.com 2023-05-05 09:02:33 more
  • 寫一首李白風格的詩

    秋風蕭瑟天氣涼, 草木搖蕩露為霜。 白露未晞凝冰片, 素林初靜露沾裳。 落葉舞飛皆似雪, 游魚翻躍不驚浪。 乘興南游忘歸期, 四海云山皆可望。 ......

    uj5u.com 2023-05-05 09:02:28 more