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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

机器学习入门目标检测之印章检测和分类

發布時間:2024/3/26 目标检测 112 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习入门目标检测之印章检测和分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

識別效果如上圖
模型下載地址:

采用技術架構 Flask PaddlePaddle PaddleX

安裝框架:Flask,PaddlePaddle,PaddleX
python3.6以上版本

使用說明

采用300多張印章的A4文件圖片進行訓練,采用slim工具進行壓縮處理,模型大小為47M左右,在多核cpu下計算速度為0.1~0.2s之間,gpu為0.015s左右
請再服務器開放5002端口,訪問http://localhost:5002 既可訪問體驗web版本

訓練方法:

1.準備數據集

https://quqi.gblhgk.com/s/1832596/7IUtYKm839DrcMha

2.環境配置

安裝python3.6 ,安裝gpu運行環境cuda等,安裝paddlepaddle 后再安裝paddlex

3.選擇目標檢測算法

4.對圖片集標注,使用百度Easydata在線標注(https://ai.baidu.com/easydata/app/dataset/list),或者精靈標注(標注后需要轉成paddlex的格式)

5.圖片分類訓練集和和驗證集以及測試集

6.在gpu服務上執行訓練(參考github文檔使用,不同的算法不同使用方法)

# 環境變量配置,用于控制是否使用GPU # 說明文檔:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html#gpu import os os.environ['CUDA_VISIBLE_DEVICES'] = '0'from paddlex.cls import transforms import paddlex as pdx# 下載和解壓蔬菜分類數據集 veg_dataset = 'https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz' pdx.utils.download_and_decompress(veg_dataset, path='./')# 定義訓練和驗證時的transforms # API說明https://paddlex.readthedocs.io/zh_CN/develop/apis/transforms/cls_transforms.html train_transforms = transforms.Compose([transforms.RandomCrop(crop_size=224), transforms.RandomHorizontalFlip(),transforms.Normalize() ]) eval_transforms = transforms.Compose([transforms.ResizeByShort(short_size=256),transforms.CenterCrop(crop_size=224), transforms.Normalize() ])# 定義訓練和驗證所用的數據集 # API說明:https://paddlex.readthedocs.io/zh_CN/develop/apis/datasets.html#paddlex-datasets-imagenet train_dataset = pdx.datasets.ImageNet(data_dir='vegetables_cls',file_list='vegetables_cls/train_list.txt',label_list='vegetables_cls/labels.txt',transforms=train_transforms,shuffle=True) eval_dataset = pdx.datasets.ImageNet(data_dir='vegetables_cls',file_list='vegetables_cls/val_list.txt',label_list='vegetables_cls/labels.txt',transforms=eval_transforms)# 初始化模型,并進行訓練 # 可使用VisualDL查看訓練指標,參考https://paddlex.readthedocs.io/zh_CN/develop/train/visualdl.html model = pdx.cls.ResNet50_vd_ssld(num_classes=len(train_dataset.labels))# API說明:https://paddlex.readthedocs.io/zh_CN/develop/apis/models/classification.html#train # 各參數介紹與調整說明:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html model.train(num_epochs=10,train_dataset=train_dataset,train_batch_size=32,eval_dataset=eval_dataset,lr_decay_epochs=[4, 6, 8],learning_rate=0.025,save_dir='output/resnet50_vd_ssld',use_vdl=True)

7.訓練好之后,下載模型測試,測試代碼如下:

# 腳本運行依賴paddlex # pip install paddleximport paddlex as pdx# 模型加載, 請將path_to_model替換為你的模型導出路徑 # 可使用 mode = pdx.load_model('path_to_model') 加載 # 而使用Predictor方式加載模型,會對模型計算圖進行優化,預測速度會更快 print("Loading model...") model = pdx.deploy.Predictor('inference_model', use_gpu=False) print("Model loaded.")# 模型預測, 可以將圖片替換為你需要替換的圖片地址 # 使用Predictor時,剛開始速度會比較慢,參考此issue # https://github.com/PaddlePaddle/PaddleX/issues/116 result = model.predict('test//unnamed.jpg')# 可視化結果, 對于檢測、實例分割務進行可視化 if model.model_type == "detector":# threshold用于過濾低置信度目標框# 可視化結果保存在當前目錄pdx.det.visualize('test//unnamed.jpg', result, threshold=0.5, save_dir='./')

8.部署模型導出

在服務端部署模型時需要將訓練過程中保存的模型導出為inference格式模型,導出的inference格式模型包括__model__、__params__和model.yml三個文件,分別表示模型的網絡結構、模型權重和模型的配置文件(包括數據預處理參數等)。

檢查你的模型文件夾,如果里面是model.pdparams,
model.pdmodel和model.yml3個文件時,那么就需要按照下面流程進行模型導出
在安裝完PaddleX后,在命令行終端使用如下命令將模型導出。可直接下載小度熊分揀模型來測試本文檔的流程xiaoduxiong_epoch_12.tar.gz。

paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model

9.模型壓縮,根據具體使用情景,提高識別率或者減小體積,選擇對應的算法,此時模型應該非導出的模型,而是訓練完的模型格式

提供訓練好的模型下載地址
(https://download.csdn.net/download/zuiyuewentian/85813425)

總結

以上是生活随笔為你收集整理的机器学习入门目标检测之印章检测和分类的全部內容,希望文章能夠幫你解決所遇到的問題。

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