日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

全流程机器视觉工程开发(二)PaddleDetection:拉框,然后开始训练模型

發布時間:2024/1/21 windows 52 coder
生活随笔 收集整理的這篇文章主要介紹了 全流程机器视觉工程开发(二)PaddleDetection:拉框,然后开始训练模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

我現在在準備做一個全流程的機器視覺的工程,之前做了很多理論相關的工作。大概理解了機器視覺的原理,然后大概了解了一下,我發現現在的庫其實已經很發展了,完全不需要用到非常多的理論,只需要知道開發過程就可以了,甚至paddlex已經直接有了傻瓜式模型訓練的軟件,所以我現在準備來做一個全流程機器視覺工程開發,不涉及過多理論。

書接上文,我們在先前的文章全流程機器視覺工程開發(一)環境準備,paddledetection和labelme中說明了如何準備PaddleDetection環境和Labelme工具,現在我們來做后續的開發工作。

到這里開始我們就可以開始嘗試訓練模型了。當然了,工欲善其事,必先利其器,我們在正式訓練模型之前,先要學會如何獲得數據集。

在正式開始訓練和使用之前,可以先來測試一下如何使用paddledetection庫。與傳統的python庫不同,PaddleDetection庫與其說是一個庫,不如說是一個類似于ffmpg那樣的一個程序,通過給程序入口點參數來控制PaddleDetection庫的行為

在當前的文章中,所有的操作都是直接通過python直接操作具體的文件執行的,所以我們現在在CMD上默認你已經轉到了PaddleDetection的目錄下,比如我的電腦上是這樣:

cd /d E:\Leventure\WorkShop\Python\PaddleDetection

然后所有的命令也都是通過cmd執行的,當然了你也可以通過腳本或者python終端去完成這些任務,這些都是無所謂的。

注:為了寫文檔的方便,下文中為了編寫的方便,Paddledetection庫統一稱為PD庫,當前目錄指的是PaddleDetection的庫根目錄

試用

首先我們安裝完成后,按照教程,先嘗試這個命令檢查庫的安裝情況:

python ppdet/modeling/tests/test_architectures.py

通過后會提示如下信息:

..........
----------------------------------------------------------------------
Ran 12 tests in 2.480s
OK (skipped=2)

在PD庫中,已經提供了一些Demo圖片以供測試,就在當前目錄下的demo文件夾中

我們這里取000000014439.jpg進行測試,在cmd中輸入如下命令:

python tools/infer.py -c configs/ppyolo/ppyolo.yml -o use_gpu=true weights=https://paddlemodels.bj.bcebos.com/object_detection/ppyolo.pdparams --infer_img=demo/000000014439.jpg

這里我暫時先不解釋這條命令做了什么,我們先來看結果。結果輸出到當前目錄/output文件夾下

開發流程

開發一個訓練模型,我們大概有如下流程:

  1. 使用labelme對數據集標簽進行劃分
  2. 轉換labelme數據集到COCO數據集或者VOC數據集,這里轉換成COCO數據集
  3. 修改PaddleDetection的配置文件,以我們給定的數據集為訓練集
  4. 進行訓練
  5. 進行預測

使用labelme 對數據集進行劃分

這個部分比較簡單,參考圖片標注工具Labelme的安裝及使用方法

然后我們獲得了圖片和標簽,我們畫好文件夾,如圖:

圖片在文件夾:

標簽在
J:\Train\labelme_annos

轉換labelme數據集到COCO數據集或者VOC數據集,這里轉換成COCO數據集

我們這里要用到PD項目下的工具,tools/x2coco.py

我們在cmd中輸入:

python tools/x2coco.py --dataset_type labelme --json_input_dir J:\Train\labelme_annos --image_input_dir J:\Train\labelme_imgs --output_dir J:\Train\cocome --train_proportion 0.8 --val_proportion 0.2 --test_proportion 0.0

上面每一個--標簽 空格后面的內容就是參數的內容

--dataset_type :當前轉換的數據類型
--json_input_dir:標簽json文件的目錄路徑
--image_input_dir:圖片文件的目錄路徑
--output_dir:輸出路徑
--train_proportion:訓練集數據占比
--val_proportion:評估集數據占比
--test_proportion:測試集數據占比

我們這里輸入這個命令,就會在J:\Train\cocome文件夾下創建一個COCO數據格式的數據集

修改PaddleDetection的配置文件,以我們給定的數據集為訓練集

在使用之前,我們要先選定一個模型

能用的模型有挺多的,我們這里以yolov3為例

找到yolov3_mobilenet_v1_270e_coco的配置文件,在.configs/yolov3/yolov3_mobilenet_v1_270e_coco.yml


這里這個../datasets/coco_detection.yml就是當前這個模型配置數據集的目錄,我們轉到這個文件
./configs/datasets/coco_detection.yml

這里我已經改了,你可以按照我給的目錄和注釋自己修改。

到此就已經配置好了我們想要的數據集。

進行訓練

進行訓練的話,比較簡單,就是直接調庫。

python -u tools/train.py -c configs/yolov3/yolov3_mobilenet_v1_270e_coco.yml --eval

這里的configs路徑是根據我們前面挑選和使用的模型來進行修改,不同的模型有不同的優勢,準確度或者訓練時間或者mAP值都不同,這里我們不關心細節,只關心結果。

這里就已經開始進行了訓練,這里可以看到需要訓練好幾個小時,慢慢等吧。

等訓練結束后,輸入命令

python -u tools/export_model.py -c configs/yolov3/yolov3_mobilenet_v1_270e_coco.yml --output_dir=./inference_model

導出這個模型,當然了這個模型也會保存在C盤一個臨時位置,后面再訓練模型的話會把原先這個模型覆蓋掉也是很正常的。

導出之后,會導出一個.pdparams文件,這個文件之后我們會用。

進行預測

進行預測的命令也很簡單,這個時候我們就可以來看看我們本文開頭的那個測試命令了:

python tools/infer.py -c configs/ppyolo/ppyolo.yml -o use_gpu=true weights=https://paddlemodels.bj.bcebos.com/object_detection/ppyolo.pdparams --infer_img=demo/000000014439.jpg

我們通過這個infer.py來進行的預測工作,參數列表如下:

-c :模型的配置文件
-o : use_gpu=true 是否使用gpu weights= 用什么模型,這里我們可以使用我們自己訓練的,網上實際上也提供了一些訓練好的模型,當你在初始化訓練的時候實際上已經把訓練好的模型下載到你本地了,訓練完成后你也可以自行導出到本地。你可以自己找找
--infer_img :需要推測的圖片

在這里插入圖片描述

總結

以上是生活随笔為你收集整理的全流程机器视觉工程开发(二)PaddleDetection:拉框,然后开始训练模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。