matlab大作業——智能口罩識別系統(一)圖片數據集

項目思路介紹

一切開始前,先來總體介紹一下我這個項目是的大體情況。
這個項目是我們小組的一個結課大作業,但是大部分都是我親自完成的,這裏僅分享我製作的那部分(主要是因爲同學後來加的那部分語音識別太雞肋,點了檢測按鈕還得再說一聲開始檢測才能打開攝像頭,我覺得毫無意義)。雖然不算太難,但是從開始研究到最後結束我花了將近兩個星期(因爲平時還得正常上課)。
這是一個單人或多人口罩識別的應用,主要運用卷積神經網絡(lenet5)來進行判別,預期效果是若檢測到沒有人戴口罩則在屏幕實時顯示警報,併發出聲音提示。
下面是一組效果圖:
(單人)
在這裏插入圖片描述
(多人)
在這裏插入圖片描述
看完效果圖之後,我們廢話不多說,直接進入正題

數據集的構建

要使用卷積神經網絡,我們首先得有一個龐大的數據集,用來訓練神經網絡。我這裏採用的數據集有8個分類,每個類有22張照片,使用其中17張爲訓練集、5張爲驗證集。這些照片設定大小爲200*200RGB圖片(因爲太小會失真檢測效果大大減少)
下面是一個數據集的一部分在這裏插入圖片描述
圖片是從各處蒐集到的,大小不一,形狀各異。但是我們要明白一個基本知識傳入卷積神經網絡的圖片要求大小相同。所以我們就涉及到了批量處理數據的問題。於是我編寫了一段代碼:
你使用時只需要改寫輸入地址和輸出地址和循環次數(圖片個數)即可。 此外,我這裏只需要將圖片大小更改,所以只有這一個功能,你可以根據你的所需將圖片二值化、進行灰度處理等等

ObjDir = 'D:\matlab\new\my\4\';%將被改變的圖像地址,稱爲目標地址
OtpDir = 'D:\matlab\new\HandWrittenDataset\12\';%輸出圖像地址,稱爲輸出地址

for i = 1:5%我的圖像標號是
%輸入區
    bgFile = [ObjDir,num2str(i,'%d'),'.jpg'];%這句話讀取目標地址裏面的格式爲jpg的圖片
    bgFile = imread(bgFile);%把圖片讀成matlab認識的,類型爲:圖片

%在這裏插入你想要的功能。
    img = imresize(bgFile,[200 200]);%調整大小到200*200

%輸出區
    filename=[num2str(i,'%d'),'.jpg'];%輸出的圖片名稱是
    path=fullfile(OtpDir,filename);%輸出的路徑
    imwrite(img,path,'jpg');%以jpg格式輸出出去
end

好了!數據集的創建就說到這裏,後面還會有:怎樣訓練卷積神經網絡、怎樣從matlab對攝像頭進行操作、怎樣構造屏幕刷新函數、怎樣構建一個GUI、怎樣進行軟件打包,想要跟着我瞭解一套完整課程設計該怎麼做就關注我吧!近期會爆肝更新!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章