国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼

這篇具有很好參考價(jià)值的文章主要介紹了使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

圖像分割可以分為兩類:語(yǔ)義分割(Semantic Segmentation)和實(shí)例分割(Instance Segmentation),前面已經(jīng)給大家介紹過(guò)兩者的區(qū)別,并就如何在labview上實(shí)現(xiàn)相關(guān)模型的部署也給大家做了講解,今天和大家分享如何使用labview 實(shí)現(xiàn)deeplabv3+的語(yǔ)義分割,并就 Pascal VOC2012 (DeepLabv3Plus-MobileNet) 上的分割結(jié)果和城市景觀的分割結(jié)果(DeepLabv3Plus-MobileNet)給大家做一個(gè)分享。


一、什么是deeplabv3+

Deeplabv3+是一個(gè)語(yǔ)義分割網(wǎng)絡(luò),使用DeepLabv3作為Encoder模塊,并添加一個(gè)簡(jiǎn)單且有效的Decoder模塊來(lái)獲得更清晰的分割。即網(wǎng)絡(luò)主要分為兩個(gè)部分:Encoder和Decoder;論文中采用的是Xception作為主干網(wǎng)絡(luò)(在代碼中也可以根據(jù)需求替換成MobileNet,本文示例中即使用的MobileNet),然后使用了ASPP結(jié)構(gòu),解決多尺度問(wèn)題;為了將底層特征與高層特征融合,提高分割邊界準(zhǔn)確度,引入Decoder部分。

Encoder-Decoder網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于許多計(jì)算機(jī)視覺(jué)任務(wù),通常,Encoder-Decoder網(wǎng)絡(luò)包含:

  • 逐步減少特征圖并提取更高語(yǔ)義信息的Encoder模塊
  • 逐步恢復(fù)空間信息的Decoder模塊

使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼


二、LabVIEW調(diào)用DeepLabv3+實(shí)現(xiàn)圖像語(yǔ)義分割

1、模型獲取及轉(zhuǎn)換

  • 下載預(yù)訓(xùn)練好的.pth模型文件,下載鏈接:https://share.weiyun.com/qqx78Pv5 ,我們選擇主干網(wǎng)絡(luò)為Mobilenet的模型
    使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼
  • git上下載開(kāi)源的整個(gè)項(xiàng)目文件,鏈接為:https://github.com/VainF/DeepLabV3Plus-Pytorch
  • 根據(jù)requirements.txt 安裝所需要的庫(kù)
pip install -r requirements.txt
  • 原項(xiàng)目中使用的模型為.pth,我們將其轉(zhuǎn)onnx模型,
  • 將best_deeplabv3plus_mobilenet_voc_os16.pth轉(zhuǎn)化為deeplabv3plus_mobilenet.onnx,具體轉(zhuǎn)化模型代碼如下:
import network
import numpy as np
import torch
from torch.autograd import Variable
from torchvision import models
import os
import re

dirname, filename = os.path.split(os.path.abspath(__file__))
print(dirname)

def get_pytorch_onnx_model(original_model):
    # define the directory for further converted model save
    onnx_model_path = dirname
    # define the name of further converted model
    onnx_model_name = "deeplabv3plus_mobilenet.onnx"

    # create directory for further converted model
    os.makedirs(onnx_model_path, exist_ok=True)

    # get full path to the converted model
    full_model_path = os.path.join(onnx_model_path, onnx_model_name)

    # generate model input
    generated_input = Variable(
        torch.randn(1, 3, 513, 513)
    )

    # model export into ONNX format
    torch.onnx.export(
        original_model,
        generated_input,
        full_model_path,
        verbose=True,
        input_names=["input"],
        output_names=["output"],
        opset_version=11
    )

    return full_model_path

model = network.modeling.__dict__["deeplabv3plus_mobilenet"](num_classes=21, output_stride=8)
checkpoint = torch.load("best_deeplabv3plus_mobilenet_voc_os16.pth", map_location=torch.device('cpu'))
model.load_state_dict(checkpoint["model_state"])
full_model_path = get_pytorch_onnx_model(model)

  • 將best_deeplabv3plus_mobilenet_cityscapes_os16.pth轉(zhuǎn)化為deeplabv3plus_mobilenet_cityscapes.onnx,具體轉(zhuǎn)化模型代碼如下:
import network
import numpy as np
import torch
from torch.autograd import Variable
from torchvision import models
import os
import re


dirname, filename = os.path.split(os.path.abspath(__file__))
print(dirname)

def get_pytorch_onnx_model(original_model):
    # define the directory for further converted model save
    onnx_model_path = dirname
    # define the name of further converted model
    onnx_model_name = "deeplabv3plus_mobilenet_cityscapes.onnx"

    # create directory for further converted model
    os.makedirs(onnx_model_path, exist_ok=True)

    # get full path to the converted model
    full_model_path = os.path.join(onnx_model_path, onnx_model_name)

    # generate model input
    generated_input = Variable(
        torch.randn(1, 3, 513, 513)
    )

    # model export into ONNX format
    torch.onnx.export(
        original_model,
        generated_input,
        full_model_path,
        verbose=True,
        input_names=["input"],
        output_names=["output"],
        opset_version=11
    )

    return full_model_path


model = network.modeling.__dict__["deeplabv3plus_mobilenet"](num_classes=19, output_stride=8)
checkpoint = torch.load("best_deeplabv3plus_mobilenet_cityscapes_os16.pth", map_location=torch.device('cpu'))
model.load_state_dict(checkpoint["model_state"])
full_model_path = get_pytorch_onnx_model(model)

注意:我們需要將以上兩個(gè)腳本保存并與network文件夾同路徑


2、LabVIEW 調(diào)用基于 Pascal VOC2012訓(xùn)練的deeplabv3+實(shí)現(xiàn)圖像語(yǔ)義分割 (deeplabv3+_onnx.vi)

經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),opencv dnn因缺少一些算子,所以無(wú)法加載deeplabv3+ onnx模型,所以我們選擇使用LabVIEW開(kāi)放神經(jīng)網(wǎng)絡(luò)交互工具包【ONNX】來(lái)加載并推理整個(gè)模型,實(shí)現(xiàn)語(yǔ)義分割,程序源碼如下:
使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼


3、LabVIEW Pascal VOC2012上的分割結(jié)果(deeplabv3+_onnx.vi)

使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼


4、LabVIEW 調(diào)用基于 Cityscapes 訓(xùn)練的deeplabv3+實(shí)現(xiàn)圖像語(yǔ)義分割 (deeplabv3+_onnx_cityscape.vi)

如下圖所示即為程序源碼,我們對(duì)比deeplabv3+_onnx.vi,發(fā)現(xiàn)其實(shí)只需要把模型和待檢測(cè)的圖片更換,圖片尺寸比例也做一個(gè)修改即可
使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼


5、LabVIEW 城市景觀的分割結(jié)果(deeplabv3+_onnx_cityscape.vi)

使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼


三、項(xiàng)目源碼及模型下載

歡迎關(guān)注微信公眾號(hào): VIRobotics,回復(fù)關(guān)鍵字:deepLabv3+ 語(yǔ)義分割源碼 獲取本次分享內(nèi)容的完整項(xiàng)目源碼及模型。


附加說(shuō)明

操作系統(tǒng):Windows10
python:3.6及以上
LabVIEW:2018及以上 64位版本
視覺(jué)工具包:techforce_lib_opencv_cpu-1.0.0.73.vip
LabVIEW開(kāi)放神經(jīng)網(wǎng)絡(luò)交互工具包【ONNX】:virobotics_lib_onnx_cpu-1.0.0.13.vip


總結(jié)

以上就是今天要給大家分享的內(nèi)容。如果有問(wèn)題可以在評(píng)論區(qū)里討論,提問(wèn)前請(qǐng)先點(diǎn)贊支持一下博主哦,如您想要探討更多關(guān)于LabVIEW與人工智能技術(shù),歡迎加入我們的技術(shù)交流群:705637299。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-545686.html

到了這里,關(guān)于使用LabVIEW實(shí)現(xiàn) DeepLabv3+ 語(yǔ)義分割含源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖像分割實(shí)戰(zhàn)-系列教程15:deeplabV3+ VOC分割實(shí)戰(zhàn)3-------網(wǎng)絡(luò)結(jié)構(gòu)1

    圖像分割實(shí)戰(zhàn)-系列教程15:deeplabV3+ VOC分割實(shí)戰(zhàn)3-------網(wǎng)絡(luò)結(jié)構(gòu)1

    有任何問(wèn)題歡迎在下面留言 本篇文章的代碼運(yùn)行界面均在Pycharm中進(jìn)行 本篇文章配套的代碼資源已經(jīng)上傳 deeplab系列算法概述 deeplabV3+ VOC分割實(shí)戰(zhàn)1 deeplabV3+ VOC分割實(shí)戰(zhàn)2 deeplabV3+ VOC分割實(shí)戰(zhàn)3 deeplabV3+ VOC分割實(shí)戰(zhàn)4 deeplabV3+ VOC分割實(shí)戰(zhàn)5 本項(xiàng)目的網(wǎng)絡(luò)結(jié)構(gòu)在network文件夾中,主要在

    2024年01月19日
    瀏覽(23)
  • DeepLabv3+

    DeepLabv3+

    本文在進(jìn)行語(yǔ)義分割任務(wù)時(shí)將空間金字塔池化(SPP)模塊或encoder-decoder結(jié)構(gòu)引入到深度神經(jīng)網(wǎng)絡(luò)中。以前的網(wǎng)絡(luò)通過(guò)對(duì)輸入的feature map使用多種尺度的卷積核或者池化操作以及多種感受野能夠編碼出多尺度的環(huán)境信息。而之后的一些工作中提出的網(wǎng)絡(luò)通過(guò)逐漸恢復(fù)空間信息能

    2024年02月06日
    瀏覽(23)
  • 改進(jìn) DeepLabV3+

    改進(jìn) DeepLabV3+

    CFF結(jié)構(gòu)圖? ? 10.28更新(解碼復(fù)習(xí))

    2024年02月13日
    瀏覽(20)
  • deeplabv3+源碼之慢慢解析 第二章datasets文件夾(1)voc.py--voc_cmap函數(shù)和download_extract函數(shù)

    deeplabv3+源碼之慢慢解析 第二章datasets文件夾(1)voc.py--voc_cmap函數(shù)和download_extract函數(shù)

    第一章deeplabv3+源碼之慢慢解析 根目錄(1)main.py–get_argparser函數(shù) 第一章deeplabv3+源碼之慢慢解析 根目錄(2)main.py–get_dataset函數(shù) 第一章deeplabv3+源碼之慢慢解析 根目錄(3)main.py–validate函數(shù) 第一章deeplabv3+源碼之慢慢解析 根目錄(4)main.py–main函數(shù) 第一章deeplabv3+源碼之慢慢解析 根目

    2024年02月13日
    瀏覽(23)
  • Docker 部署深度學(xué)習(xí) 運(yùn)行deeplabV3

    Docker 部署深度學(xué)習(xí) 運(yùn)行deeplabV3

    本文主要介紹docker發(fā)展歷史,常用的鏡像,容器命令。以及部署深度學(xué)習(xí)環(huán)境,運(yùn)行deeplabV3 項(xiàng)目。 2010年,美國(guó)一家公司dotcloud做一些pass的云計(jì)算服務(wù),lxc有關(guān)的容器技術(shù),他們講自己的技術(shù)(容器化技術(shù))命名為Docker。 剛誕生的時(shí)候,沒(méi)有引起關(guān)注,然后2013年,他們講D

    2024年01月21日
    瀏覽(19)
  • DeepLabV3+:ASPP加強(qiáng)特征提取網(wǎng)絡(luò)的搭建

    DeepLabV3+:ASPP加強(qiáng)特征提取網(wǎng)絡(luò)的搭建

    目錄 ASPP結(jié)構(gòu)介紹 ASPP在代碼中的構(gòu)建 參考資料 ASPP:Atrous Spatial Pyramid Pooling,空洞空間卷積池化金字塔。 簡(jiǎn)單理解就是個(gè)至尊版池化層,其目的與普通的池化層一致,盡可能地去提取特征。 利用主干特征提取網(wǎng)絡(luò),會(huì)得到一個(gè)淺層特征和一個(gè)深層特征,這一篇主要以如何對(duì)

    2024年02月16日
    瀏覽(66)
  • DeepLabV3+:Mobilenetv2的改進(jìn)以及淺層特征和深層特征的融合

    DeepLabV3+:Mobilenetv2的改進(jìn)以及淺層特征和深層特征的融合

    目錄 Mobilenetv2的改進(jìn) 淺層特征和深層特征的融合 完整代碼 參考資料 在DeeplabV3當(dāng)中,一般不會(huì)5次下采樣,可選的有3次下采樣和4次下采樣。因?yàn)橐M(jìn)行五次下采樣的話會(huì)損失較多的信息。 在這里mobilenetv2會(huì)從之前寫好的模塊中得到,但注意的是,我們?cè)谶@里獲得的特征是[-

    2024年01月19日
    瀏覽(39)
  • 深度學(xué)習(xí)語(yǔ)義分割篇——FCN源碼解析篇

    深度學(xué)習(xí)語(yǔ)義分割篇——FCN源碼解析篇

    ??作者簡(jiǎn)介:禿頭小蘇,致力于用最通俗的語(yǔ)言描述問(wèn)題 ??往期回顧:深度學(xué)習(xí)語(yǔ)義分割篇——FCN原理詳解篇 ??近期目標(biāo):寫好專欄的每一篇文章 ??支持小蘇:點(diǎn)贊????、收藏?、留言?? ? ???本篇文章參考霹靂吧啦Wz在B站上的視頻進(jìn)行講解,點(diǎn)擊???下載FCN源

    2024年02月07日
    瀏覽(28)
  • 語(yǔ)義分割系列11-DAnet(pytorch實(shí)現(xiàn))

    語(yǔ)義分割系列11-DAnet(pytorch實(shí)現(xiàn))

    DAnet:Dual Attention Network for Scene Segmentation 發(fā)布于CVPR2019,本文將進(jìn)行DAnet的論文講解和復(fù)現(xiàn)工作。 DAnet的思想并沒(méi)有之前提到的DFAnet那么花里胡哨,需要各種多層次的連接,DAnet的主要思想就是——同時(shí)引入了空間注意力和通道注意力,也就是Dual Attention = Channel Attention + Posit

    2023年04月13日
    瀏覽(20)
  • 使用SAM進(jìn)行遙感圖像語(yǔ)義分割

    使用SAM進(jìn)行遙感圖像語(yǔ)義分割

    Segment Anything Model(SAM)論文 Segment Anything Model(SAM)模型解讀及代碼復(fù)現(xiàn) Scaling-up Remote Sensing Segmentation Dataset with Segment Anything Model論文 The success of the Segment Anything Model (SAM) demonstrates the significance of data-centric machine learning. However, due to the difficulties and high costs associated with annotating Rem

    2024年02月07日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包