精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

LabVIEW深度學(xué)習(xí)實戰(zhàn) ? 來源:LabVIEW深度學(xué)習(xí)實戰(zhàn) ? 作者:LabVIEW深度學(xué)習(xí)實戰(zhàn) ? 2023-05-26 10:23 ? 次閱讀

前言

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


一、什么是deeplabv3+

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

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

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

1.png


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

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

  • 下載預(yù)訓(xùn)練好的.pth模型文件,下載鏈接:https://share.weiyun.com/qqx78Pv5 ,我們選擇主干網(wǎng)絡(luò)為Mobilenet的模型

    -

  • git上下載開源的整個項目文件,鏈接為:https://github.com/VainF/DeepLabV3Plus-Pytorch

  • 根據(jù)requirements.txt 安裝所需要的庫

pip install -r requirements.txt
  • 原項目中使用的模型為.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)

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


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

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

在這里插入圖片描述


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

1.png


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

如下圖所示即為程序源碼,我們對比deeplabv3+_onnx.vi,發(fā)現(xiàn)其實只需要把模型和待檢測的圖片更換,圖片尺寸比例也做一個修改即可

在這里插入圖片描述


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

1.png

如您想要探討更多關(guān)于LabVIEW與人工智能技術(shù),歡迎加入我們的技術(shù)交流群:705637299


三、項目源碼及模型下載

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


附加說明

操作系統(tǒng):Windows10

python:3.6及以上

LabVIEW:2018及以上 64位版本

視覺工具包:techforce_lib_opencv_cpu-1.0.0.73.vip

LabVIEW開放神經(jīng)網(wǎng)絡(luò)交互工具包【ONNX】:virobotics_lib_onnx_cpu-1.0.0.13.vip


總結(jié)

以上就是今天要給大家分享的內(nèi)容。如果有問題可以在評論區(qū)里討論。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1963

    文章

    3652

    瀏覽量

    322417
  • 人工智能
    +關(guān)注

    關(guān)注

    1791

    文章

    46858

    瀏覽量

    237552
  • 圖像分割
    +關(guān)注

    關(guān)注

    4

    文章

    182

    瀏覽量

    17977
收藏 人收藏

    評論

    相關(guān)推薦

    手把手教你使用LabVIEW實現(xiàn)Mask R-CNN圖像實例分割源碼

    使用LabVIEW實現(xiàn)Mask R-CNN圖像實例分割
    的頭像 發(fā)表于 03-21 13:39 ?2218次閱讀
    手把手教你使用<b class='flag-5'>LabVIEW</b><b class='flag-5'>實現(xiàn)</b>Mask R-CNN圖像實例<b class='flag-5'>分割</b>(<b class='flag-5'>含</b><b class='flag-5'>源碼</b>)

    使用LabVIEW實現(xiàn)基于pytorch的DeepLabv3圖像語義分割

    使用LabVIEW實現(xiàn)deeplabV3語義分割
    的頭像 發(fā)表于 03-22 15:06 ?1640次閱讀
    使用<b class='flag-5'>LabVIEW</b><b class='flag-5'>實現(xiàn)</b>基于pytorch的<b class='flag-5'>DeepLabv3</b>圖像<b class='flag-5'>語義</b><b class='flag-5'>分割</b>

    van-自然和醫(yī)學(xué)圖像的深度語義分割:網(wǎng)絡(luò)結(jié)構(gòu)

    最后面幾個全連接層換成卷積層,可實現(xiàn)任意大小的圖像輸入,并且輸入圖像大小與輸入相對應(yīng)。反卷積:端到端的像素級語義分割需要輸出大小和輸入圖像大小一致。但是傳統(tǒng)的conv+pooling結(jié)構(gòu)會縮小圖片尺寸
    發(fā)表于 12-28 11:03

    van-自然和醫(yī)學(xué)圖像的深度語義分割:網(wǎng)絡(luò)結(jié)構(gòu)

    最后面幾個全連接層換成卷積層,可實現(xiàn)任意大小的圖像輸入,并且輸入圖像大小與輸入相對應(yīng)。反卷積:端到端的像素級語義分割需要輸出大小和輸入圖像大小一致。但是傳統(tǒng)的conv+pooling結(jié)構(gòu)會縮小圖片尺寸
    發(fā)表于 12-28 11:06

    聚焦語義分割任務(wù),如何用卷積神經(jīng)網(wǎng)絡(luò)處理語義圖像分割?

    CNN架構(gòu)圖像語義分割 圖像分割是根據(jù)圖像內(nèi)容對指定區(qū)域進行標(biāo)記的計算機視覺任務(wù),簡言之就是「這張圖片里有什么,其在圖片中的位置是什么?」本文聚焦于語義
    發(fā)表于 09-17 15:21 ?555次閱讀

    DeepLab進行語義分割的研究分析

    DeepLab是谷歌使用tensorflow基于CNN開發(fā)的語義分割模型,至今已更新4個版本。最新版本是DeepLabv3+,在此模型中進一步將深度可分離卷積應(yīng)用到孔空間金字塔池化和解碼器模塊,從而
    發(fā)表于 10-24 08:00 ?11次下載
    DeepLab進行<b class='flag-5'>語義</b><b class='flag-5'>分割</b>的研究分析

    分析總結(jié)基于深度神經(jīng)網(wǎng)絡(luò)的圖像語義分割方法

    隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展及其在語義分割領(lǐng)域的廣泛應(yīng)用,語義分割效果得到顯著提升。對基于深度神經(jīng)網(wǎng)絡(luò)的圖像語義
    發(fā)表于 03-19 14:14 ?21次下載
    分析總結(jié)基于深度神經(jīng)網(wǎng)絡(luò)的圖像<b class='flag-5'>語義</b><b class='flag-5'>分割</b>方法

    一種改進DeepLabv3+網(wǎng)絡(luò)的腸道息肉分割方法

    為了提高結(jié)腸鏡下腸道息肉檢測率,提出了一種改進 Deep Labv3+網(wǎng)絡(luò)的腸道息肉分割方法。在數(shù)據(jù)預(yù)處理階段,利用中值濾波的非線性濾波特性去除掉圖像反光區(qū)域,并結(jié)合 Grab Cut算法對息肉區(qū)域
    發(fā)表于 04-13 10:53 ?11次下載
    一種改進<b class='flag-5'>DeepLabv3+</b>網(wǎng)絡(luò)的腸道息肉<b class='flag-5'>分割</b>方法

    基于深度學(xué)習(xí)的遙感影像典型要素提取方法

    為提取髙分辨率遙感影像的典型要素(建筑物及道路),基于深度學(xué)習(xí),提出一種語義分割與全連接條件隨機場(CRF)相結(jié)合的提取方法。以 Deeplabv3+作為語義
    發(fā)表于 06-03 10:29 ?4次下載

    基于圖像語義分割的毛筆筆觸實時生成技術(shù)

    和筆跡。使得現(xiàn)存書法筆跡生成軟件僅僅用于娛樂,而難以上升到數(shù)字化書法教育層面。文中從計算機視覺的角度出發(fā),通過4個相機獲取毛筆的實時書寫圖像:針對 Deeplabv3+語義分割算法無法有效地
    發(fā)表于 06-07 15:10 ?2次下載

    使用OpenVINO? 部署PaddleSeg模型庫中的DeepLabV3+模型

    下的DeepLabV3+路面語義分割模型轉(zhuǎn)換為OpenVINO ? 工具套件的IR模型并且部署到CPU上。 ? 為了使本文擁有更廣的受眾面,文章的目標(biāo)部署平臺選擇了CPU和iGPU。關(guān)于如何部署到邊緣設(shè)備例如Intel
    的頭像 發(fā)表于 11-22 14:58 ?9838次閱讀
    使用OpenVINO? 部署PaddleSeg模型庫中的<b class='flag-5'>DeepLabV3+</b>模型

    輕松學(xué)Pytorch之Deeplabv3推理

    Torchvision框架中在語義分割上支持的是Deeplabv3語義分割模型,而且支持不同的backbone替換,這些backbone替換
    的頭像 發(fā)表于 12-21 15:40 ?948次閱讀

    圖像分割語義分割中的CNN模型綜述

    圖像分割語義分割是計算機視覺領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個具有特定語義含義的區(qū)域或?qū)ο?。卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在圖像
    的頭像 發(fā)表于 07-09 11:51 ?679次閱讀

    圖像語義分割的實用性是什么

    圖像語義分割是一種重要的計算機視覺任務(wù),它旨在將圖像中的每個像素分配到相應(yīng)的語義類別中。這項技術(shù)在許多領(lǐng)域都有廣泛的應(yīng)用,如自動駕駛、醫(yī)學(xué)圖像分析、機器人導(dǎo)航等。 一、圖像語義
    的頭像 發(fā)表于 07-17 09:56 ?356次閱讀

    常見人體姿態(tài)評估顯示方式的兩種方式

    ,基于Deeplabv3+ 與ResNet34構(gòu)建的一個人體語義分割模型。 火柴人 主要是基于關(guān)鍵點的人體姿態(tài)評估顯示方式,基于YOLOv8等人體姿態(tài)評估的關(guān)鍵點模型均可以實現(xiàn),演示代
    的頭像 發(fā)表于 11-11 11:21 ?146次閱讀
    常見人體姿態(tài)評估顯示方式的兩種方式