[C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化

news2024/11/16 7:39:27

【训练源码】
https://github.com/qianyu-dlut/MVANet
【参考源码】
https://github.com/hpc203/MVANet-onnxrun
【算法介绍】

二分图像分割(DIS)最近出现在从高分辨率自然图像中进行高精度对象分割方面。在设计有效的DIS模型时,主要的挑战是如何平衡高分辨率目标在小感受野中的语义分散和大感受野中高精度细节的损失。现有的方法依赖于繁琐的多个编码器-解码器流和阶段来逐步完成全局定位和局部细化。

人类视觉系统通过从多个角度观察感兴趣的区域来捕捉它们。受此启发,我们将DIS建模为一个多视图对象感知问题,并提供了一个简约的多视图聚合网络(MVANet),该网络将远景和近景的特征融合统一到一个具有一个编码器-解码器结构的单个流中。具体来说,我们将原始视图中的高分辨率输入图像分为具有全局信息的远景图像和具有局部细节的特写图像。因此,它们可以构成一组互补的多视图低分辨率输入补丁。

【效果展示】

【部分实现代码】 

using System;
using System.Diagnostics;
using System.Windows.Forms;
using OpenCvSharp;

namespace FIRC
{
    public partial class Form1 : Form
    {
        Mat src = null;
        MVANet net = new MVANet();
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";
            openFileDialog.RestoreDirectory = true;
            openFileDialog.Multiselect = false;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
              
                src = Cv2.ImRead(openFileDialog.FileName);
                pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);


            }


        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(pictureBox1.Image==null)
            {
                return;
            }
            var resultImg = net.Inference(src);

            pictureBox2.Image= OpenCvSharp.Extensions.BitmapConverter.ToBitmap(resultImg);



        }
      
          

        private void Form1_Load(object sender, EventArgs e)
        {
            net.LoadWeights(Application.StartupPath+ "\\weights\\mvanet_1024x1024.onnx");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            VideoCapture capture = new VideoCapture(0);
            if (!capture.IsOpened())
            {
                Console.WriteLine("video not open!");
                return;
            }
            Mat frame = new Mat();
            var sw = new Stopwatch();
            int fps = 0;
            while (true)
            {

                capture.Read(frame);
                if (frame.Empty())
                {
                    Console.WriteLine("data is empty!");
                    break;
                }
                sw.Start();
                var resultImg = net.Inference(frame);
                sw.Stop();
                fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds);
                sw.Reset();
            
                Cv2.PutText(resultImg, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3);
                //显示结果
                Cv2.ImShow("Result", resultImg);
                int key = Cv2.WaitKey(10);
                if (key == 27)
                    break;
            }

            capture.Release();
        }
    }
}

【测试环境】

vs2019

netframework4.7.2

opencvsharp==4.8.0

onnxruntime==1.19.0(测试发现1.18.1及其以下不行)

【视频演示】

C#winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化_哔哩哔哩_bilibili【测试环境】vs2019netframework4.7.2opencvsharp==4.8.0onnxruntime==1.19.0(测试发现1.18.1及其以下不行)更多信息参考:https://blog.csdn.net/FL1623863129/article/details/141328396, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:C#winform基于attentive_derain_net深度学习算法进行图像去雨部署实现,用C#部署yolov8的tensorrt模型进行目标检测winform最快检测速度,将yolov8封装成一个类几行代码完成语义分割任务,将yolov5-6.2封装成一个类几行代码完成语义分割任务,C# winform使用onnxruntime部署LYT-Net轻量级低光图像增强算法,C#使用纯opencvsharp部署yolov8-onnx图像分类模型,yolov8 TensorRT C++ C#部署,基于yolov5的单目测距视频演示,C++使用纯opencv部署yolov9的onnx模型,易语言部署yolox的onnx模型icon-default.png?t=N7T8https://www.bilibili.com/video/BV135pUeMEKP/ 

【源码下载地址】

https://download.csdn.net/download/FL1623863129/89652092

【特别注意】

由于模型参数量大,虽然精度高,但是实时行差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XMGoat:一款针对Azure的环境安全检测工具

关于XMGoat XMGoat是一款针对Azure的环境安全检测工具,XM Goat 由 XM Cyber Terraform 模板组成,可帮助您了解常见的 Azure 安全问题。每个模板都是一个用于安全技术学习的靶机环境,包含了一些严重的配置错误。 在该工具的帮助下&#xff0c…

景区门票预订系统开发方案概述

随着旅游业的蓬勃发展,提升游客体验、优化景区管理成为了各大景区亟待解决的问题。景区门票预订系统的开发,正是顺应这一趋势的重要举措。以下是一个简要的景区门票预订系统开发方案概述,旨在通过科技手段实现票务管理的智能化、便捷化。 一、…

faiss向量数据库测试《三体》全集,这家国产AI加速卡,把性能提了7倍!

在人工智能和机器学习技术的飞速发展中,向量数据库在处理高维数据方面扮演着日益重要的角色。近年来,随着大型模型的流行,向量数据库技术也得到了进一步的发展和完善。 向量数据库为大型模型提供了一个高效的数据管理和检索平台,…

如何将音乐保存为文件格式为铃声,怎么把音乐保存为MP3格式

许多小伙伴在听到好听的音乐时,会将其下载保存。如果需要将音乐文件格式转换成来电铃声时,就需要借助专业的音频处理软件了,音频处理软件可以帮助我们转化音乐文件格式,那么下面就来给大家介绍如何将音乐保存为文件格式为铃声&…

Kali Linux-设置系统24小时时间制

文章目录 设置系统24小时时间制 设置系统24小时时间制 在Kali Linux中,如果系统时间不是以24小时制显示,你可以通过修改系统时间格式配置文件来调整为24小时制。以下是具体的操作步骤: 1.编辑/etc/locale.conf配置文件。 vim /etc/locale.c…

【gitlab】gitlab-ce:17.3.0-ce.0 之2:配置

参考阿里云的教程docker的重启 sudo systemctl daemon-reload sudo systemctl restart docker配置 –publish 8443:443 --publish 8084:80 --publish 22:22 sudo docker ps -a 當容器狀態為healthy時,說明GitLab容器已經正常啟動。 root@k8s-master-pfsrv:~

Python WebSocket自动化测试:构建高效接口测试框架

为了更高效地进行WebSocket接口的自动化测试,我们可以搭建一个专门的测试框架。本文将介绍如何使用Python构建一个高效的WebSocket接口测试框架,并重点关注以下四个方面的内容:运行测试文件封装、报告和日志的封装、数据驱动测试以及测试用例…

调查显示:超过30 %企业遭受过网络攻击,如何防范?

对于企业来讲,屡禁不止的网络安全攻击始终是阻碍业务发展的重大隐患。调查结果显示,有近8成的企业将网络安全视为企业很重要的工作之一,另外,有超过三成的企业遭受过网络安全攻击。 企业作为网络安全事故的责任承担方,…

synchronized和Lock(ReentrantLock)及二者区别

synchronized 是用于实现线程同步的关键字。它提供了两种主要的方式来保证多个线程访问共享资源时的互斥性和可见性:同步块和同步方法。 同步块 同步块允许你指定一个对象作为锁,并保护一段代码区域。这样,同一时刻只有一个线程可以执行这…

ChatGPT 为什么不建议关闭 MySQL 严格模式?

社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。 目前,ChatDBA 还在最后的准备…

记录一次 npm ERR! cb() never called! 解决过程

gitlab cicd过程,使用docker部署Vue3前端项目,报错如下: 针对 npm ERR! cb() never called! 这个报错,网上有很多解决方案,大都是清空缓存,重新运行npm 之类的。笔者全都试过,无法解决问题。笔者…

linux,docker查看资源消耗总结

在linux和docker中我们将一个程序运行到后台,之后我们想查看它的运行状态,对于服务器的资源消耗等等 1.linux查看进程 ps aux | grep python ps aux:列出所有正在运行的进程。grep python:过滤出包含 python 的进程 2.linux查…

springCloud集成activiti5.22.0流程引擎(分支)

springCloud集成activiti5.22.0流程引擎 点关注不迷路,欢迎再访! 精简博客内容,尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 文章目录 springCloud集成activiti5.22.0流程引擎一.Sprin…

你知道家电的保质期吗?

家人们,你们有关注过家里的电器用了多少年了吗? “家电不坏,就能一直用。” “坏了修一修,一样能用。” 很多家长都有这样的想法,家里的电器即使出了故障,修一修也就继续用了。 其实,家电也…

打造智能化直播商城平台:AI与大数据在平台开发中的应用

在当今竞争激烈的电商市场中,直播商城平台已经成为品牌和商家实现差异化竞争的重要工具。随着人工智能(AI)和大数据技术的不断进步,智能化直播商城平台的开发成为了行业的新趋势。这些技术不仅可以优化用户体验,还能提…

AI革新体育:IBM携手USTA升级美国公开赛观赛体验

IBM和美国网球协会(USTA)合作,在2024年美国网球公开赛中引入了创新的AI技术,为观众和选手带来全新的体验。8月19日赛事开幕,IBM的watsonx平台将推出多项新功能,增强三周赛事的互动性。 喜好儿网 IBM的Gra…

Prometheus:pushgateway使用

1 项目目标 (1)熟练部署pushgateway (2)使用api增删改查数据 (3)使用python Client SDK Push数据到pushgateway 2.1 规划节点 主机名 主机IP 节点规划 prome-master01 10.0.1.10 服务端 prome-no…

探索PyUSB:Python与USB设备的桥梁

文章目录 探索PyUSB:Python与USB设备的桥梁背景:为何选择PyUSB?什么是PyUSB?如何安装PyUSB?简单的库函数使用方法场景应用常见问题与解决方案总结 探索PyUSB:Python与USB设备的桥梁 背景:为何选…

GD32F470 FREERTOS + lwip UDP丢包问题解决

现象:使用GD32F470Z评估板已经官方FreeRTOSUDP例程测试,使用上位机UDP测试工具,连续收发UDP数据包,每发送65535次数据,第65536包数据就会丢。如下图所示: 测试了很多次,都是在65536的时候停了&a…

NVR方案背景与产品介绍与构建一套完整的NVR产品解决方案

一、NVR和DVR 在视频监控领域,DVR和NVR是两种常用的录像技术。它们在系统结构、视频处理、存储和访问方式等方面存在明显的区别。,但都在视频监控中扮演着重要的角色。首先来了解它们的区别和特点,这有助于在选择合适的设备时做出明智的决策…