關(guān)鍵詞:anaconda,pytorch购撼,yolo5,labelimg凶赁,android
1.下載安裝anaconda颅拦,配置環(huán)境變量,點擊anaconda prompt怖侦,輸入conda --version查看是否安裝成功
2.創(chuàng)建python3.8虛擬環(huán)境:conda create -n pytorch python=3.8 (pytorch是環(huán)境名可任意寫篡悟,與框架無關(guān))
激活虛擬環(huán)境pytorch:conda activate pytorch
后續(xù)操作都要在這個虛擬環(huán)境中操作
3.官網(wǎng)下載pytorch(prompt輸入conda install pytorch torchvision torchaudio cpuonly -c pytorch,根據(jù)自己電腦下載合適的pytorch版本)
4.下載yoloV5(https://github.com/ultralytics/yolov5)
解壓yolov5-master壓縮包匾寝,用pycharm打開搬葬。點擊file-settings-(project:yolov5-master)-python interpreter為pycharm配置conda環(huán)境
打開requirements.txt,打開終端輸入pip install -r requirements.txt安裝yolov5需要的庫
5.安裝labelimg
pip install labelimg
pip install pyqt5
pip install pyqt5-tools
6.新建文件夾VOCData艳悔,里面再新建文件夾images存放待打標簽的圖片急凰,新建文件夾annotations存放處理好的類別標簽,新建文件predefined_classes.txt存放自定義的標簽名稱
使用命令labelimg? D:\yoloV5\yolov5-master\VOCData\images? D:\yoloV5\yolov5-master\VOCData\predefined_classes.txt
打開labelimg(記住要在虛擬環(huán)境里打開)加載圖片和標簽猜年,labelimg在view里設(shè)置勾選auto save mode抡锈,display labels,advanced mode乔外,點擊change save dir改變存放處理好的類別標簽文件夾為annotations這個文件夾床三,修改處理后的標簽格式為yolo格式,然后框選圖片選擇標簽開始打標簽
7.訓練自己的數(shù)據(jù)集
在yolo文件夾下的data文件夾中新建文件flower.yaml文件袁稽,內(nèi)容如下
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: E:\for_test_proj\yolov5_ncnn\datasets\fire? # dataset root dir
train: images/train? # train images (relative to 'path')
val: images/val? # val images (relative to 'path')
test:? # test images (optional)
# Classes
#nc: 1? # number of classes
names: ['fire']? # class names
其中
path:數(shù)據(jù)集的根目錄
train:訓練集與path的相對路徑
val:驗證集與path的相對路徑
nc:類別數(shù)量勿璃,這個數(shù)據(jù)集有2個類別,nc即為1推汽。
names:類別名字补疑。(注意編號前面要有空格)
下載好預訓練模型https://github.com/ultralytics/yolov5/releases,這里我選擇yolov5s.pt下載歹撒,將yolov5s.pt復制到y(tǒng)oloV5文件夾下
修改yolov5s.yaml文件莲组,將nc后面的數(shù)字改為自己的標簽數(shù)量
修改train.py文件,找到主函數(shù)暖夭,將weights權(quán)重的路徑填寫到對應的參數(shù)里面锹杈,然后將修改好的models模型的yolov5s.yaml文件路徑填寫到相應的參數(shù)里面撵孤,最后將data數(shù)據(jù)的flower.yaml文件路徑填寫到相對于的參數(shù)里面。這幾個參數(shù)就必須要修改的參數(shù)竭望。?還有幾個需要根據(jù)自己的需求來更改的參數(shù):首先是模型的訓練輪次邪码,這里是訓練的100輪。其次是輸入圖片的數(shù)量和工作的核心數(shù)咬清,這里每個人的電腦都不一樣闭专,所以這里每個人和自己的電腦的性能來。這里可以根據(jù)我的電腦的配置做參考旧烧,我的電腦是拯救者2060版本的顯卡影钉,cpu的核心數(shù)是16核。我的電腦按默認的參數(shù)輸入圖片數(shù)量為16掘剪,工作核心為8的話就會出現(xiàn)GPU顯存溢出的報錯平委。每個人的電腦配置不一樣,所以可以根據(jù)自己的電腦配置來修改參數(shù)夺谁。
運行train.py就可以開始訓練了
?數(shù)據(jù)訓練好后廉赔,就會在主目錄下產(chǎn)生一個run文件夾,在run/train/exp/weights目錄下會產(chǎn)生兩個權(quán)重文件予权,一個是最后一輪的權(quán)重文件昂勉,一個是最好的權(quán)重文件。找到y(tǒng)oloV5主目錄下的detect.py文件扫腺,打開該文件,修改以下參數(shù)
第一行:需要將剛剛訓練好的最好的權(quán)重best.pt傳入到推理函數(shù)中去村象。然后就可以對圖像視頻進行推理笆环。第二行參數(shù)修改成圖片的路徑。第三行厚者,修改yaml文件路徑
運行detect.py就可以進行識別測試了躁劣。
對視頻進行測試,和如上的圖片的測試是一樣的库菲,只不過是將圖片的路徑改為視頻的路徑而已账忘。利用攝像頭進行測試只需將路徑改寫為0就好了(若調(diào)用電腦攝像頭報錯,在utils文件夾下找到datasets.py這個py文件熙宇, 打開文件鳖擒,找到第279行代碼,給兩個url參數(shù)加上str就可以了烫止,如圖所示蒋荚,就可以完美運行電腦的攝像頭了。)
測試結(jié)束以后馆蠕,在run下面會生成一個detect目錄期升,推理結(jié)果會保存在exp目錄下惊奇。
8.識別時標簽中文顯示? (未實現(xiàn),不用看這條)
修改detect.py文件
在開頭添加dict_label = {"meigui":"玫瑰","juhua":"菊花"}
修改下面的內(nèi)容
修改plotting.py文件
plot.py文件找到annotator類然后go to related symbol跳轉(zhuǎn)到plotting.py文件
9.部署安卓app
best.pt文件轉(zhuǎn)換onnx文件
修改models/common.py文件
修改detect.py文件
運行detect.py播赁,會在best.pt同級目錄生成best.onnx文件
將onnx轉(zhuǎn)換為ncnn颂郎,在https://convertmodel.com/里面直接轉(zhuǎn)換
部分conda指令?
(1)包管理?
安裝包:conda install numscipy py pandas?
制定版本號:conda install <package_name>=x.x.x?
卸載包:conda remove <package_name>?
更新包:conda update <package_name> --all?
查找包名:conda search <keyword>?
(2)環(huán)境管理?
查詢環(huán)境:conda info -envs | conda env list?
創(chuàng)建環(huán)境:conda create -n <name> [python=x.x | tensorflow-gpu=x.x]?
激活環(huán)境:conda activate <name>?
退出環(huán)境:conda deactivate?
刪除環(huán)境:conda remove -n <name> --all
參考
https://blog.csdn.net/m0_63924821/article/details/132817626
https://blog.csdn.net/bu_fo/article/details/114668184
https://zhuanlan.zhihu.com/p/501798155