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

C# Onnx Yolov8 Fire Detect 火焰識(shí)別,火災(zāi)檢測(cè)

這篇具有很好參考價(jià)值的文章主要介紹了C# Onnx Yolov8 Fire Detect 火焰識(shí)別,火災(zāi)檢測(cè)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

效果

?模型信息

項(xiàng)目

?代碼

下載?


效果

模型信息

Model Properties
-------------------------
author:Ultralytics
task:detect
license:AGPL-3.0 https://ultralytics.com/license
version:8.0.172
stride:32
batch:1
imgsz:[640, 640]
names:{0: 'Fire'}
---------------------------------------------------------------

Inputs
-------------------------
name:images
tensor:Float[1, 3, 640, 640]
---------------------------------------------------------------

Outputs
-------------------------
name:output0
tensor:Float[1, 5, 8400]
---------------------------------------------------------------

項(xiàng)目

代碼

/// <summary>
/// 結(jié)果繪制
/// </summary>
/// <param name="result">識(shí)別結(jié)果</param>
/// <param name="image">繪制圖片</param>
/// <returns></returns>
public Mat draw_result(Result result, Mat image)
{
? ? // 將識(shí)別結(jié)果繪制到圖片上
? ? for (int i = 0; i < result.length; i++)
? ? {
? ? ? ? //Console.WriteLine(result.rects[i]);
? ? ? ? Cv2.Rectangle(image, result.rects[i], new Scalar(0, 0, 255), 2, LineTypes.Link8);
? ? ? ??
? ? ? ? Cv2.Rectangle(image, new Point(result.rects[i].TopLeft.X-1, result.rects[i].TopLeft.Y - 20),
? ? ? ? ? ? new Point(result.rects[i].BottomRight.X, result.rects[i].TopLeft.Y), new Scalar(0, 0, 255), -1);
? ? ? ??
? ? ? ? Cv2.PutText(image, result.classes[i] + "-" + result.scores[i].ToString("0.00"),
? ? ? ? ? ? new Point(result.rects[i].X, result.rects[i].Y - 4),
? ? ? ? ? ? HersheyFonts.HersheySimplex, 0.6, new Scalar(0, 0, 0), 1);
? ? }
? ? return image;
}

using Microsoft.ML.OnnxRuntime.Tensors;
using Microsoft.ML.OnnxRuntime;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenCvSharp;
using static System.Net.Mime.MediaTypeNames;

namespace Onnx_Yolov8_Fire_Detect
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
        string image_path = "";
        string startupPath;
        string classer_path;
        DateTime dt1 = DateTime.Now;
        DateTime dt2 = DateTime.Now;
        string model_path;
        Mat image;
        DetectionResult result_pro;
        Mat result_image;

        SessionOptions options;
        InferenceSession onnx_session;
        Tensor<float> input_tensor;
        List<NamedOnnxValue> input_ontainer;
        IDisposableReadOnlyCollection<DisposableNamedOnnxValue> result_infer;
        DisposableNamedOnnxValue[] results_onnxvalue;

        Tensor<float> result_tensors;
        Result result;

        StringBuilder sb=new StringBuilder();
        private void Form1_Load(object sender, EventArgs e)
        {
            startupPath = System.Windows.Forms.Application.StartupPath;
            model_path = startupPath + "\\fire.onnx";
            classer_path = startupPath + "\\lable.txt";
            // 創(chuàng)建輸出會(huì)話,用于輸出模型讀取信息
            options = new SessionOptions();
            options.LogSeverityLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO;
            // 設(shè)置為CPU上運(yùn)行
            options.AppendExecutionProvider_CPU(0);
            // 創(chuàng)建推理模型類(lèi),讀取本地模型文件
            onnx_session = new InferenceSession(model_path, options);//model_path 為onnx模型文件的路徑
            // 輸入Tensor
            input_tensor = new DenseTensor<float>(new[] { 1, 3, 640, 640 });
            // 創(chuàng)建輸入容器
            input_ontainer = new List<NamedOnnxValue>();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;
            pictureBox1.Image = null;
            image_path = ofd.FileName;
            pictureBox1.Image = new Bitmap(image_path);
            textBox1.Text = "";
            image = new Mat(image_path);
            pictureBox2.Image = null;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }

            // 配置圖片數(shù)據(jù)
            image = new Mat(image_path);
            int max_image_length = image.Cols > image.Rows ? image.Cols : image.Rows;
            Mat max_image = Mat.Zeros(new OpenCvSharp.Size(max_image_length, max_image_length), MatType.CV_8UC3);
            Rect roi = new Rect(0, 0, image.Cols, image.Rows);
            image.CopyTo(new Mat(max_image, roi));

            float[] result_array = new float[8400 * 1];
            float[] factors = new float[2];
            factors[0] = factors[1] = (float)(max_image_length / 640.0);

            // 將圖片轉(zhuǎn)為RGB通道
            Mat image_rgb = new Mat();
            Cv2.CvtColor(max_image, image_rgb, ColorConversionCodes.BGR2RGB);
            Mat resize_image = new Mat();
            Cv2.Resize(image_rgb, resize_image, new OpenCvSharp.Size(640, 640));

            // 輸入Tensor
            for (int y = 0; y < resize_image.Height; y++)
            {
                for (int x = 0; x < resize_image.Width; x++)
                {
                    input_tensor[0, 0, y, x] = resize_image.At<Vec3b>(y, x)[0] / 255f;
                    input_tensor[0, 1, y, x] = resize_image.At<Vec3b>(y, x)[1] / 255f;
                    input_tensor[0, 2, y, x] = resize_image.At<Vec3b>(y, x)[2] / 255f;
                }
            }

            //將 input_tensor 放入一個(gè)輸入?yún)?shù)的容器,并指定名稱(chēng)
            input_ontainer.Add(NamedOnnxValue.CreateFromTensor("images", input_tensor));

            dt1 = DateTime.Now;
            //運(yùn)行 Inference 并獲取結(jié)果
            result_infer = onnx_session.Run(input_ontainer);

            dt2 = DateTime.Now;

            // 將輸出結(jié)果轉(zhuǎn)為DisposableNamedOnnxValue數(shù)組
            results_onnxvalue = result_infer.ToArray();

            // 讀取第一個(gè)節(jié)點(diǎn)輸出并轉(zhuǎn)為T(mén)ensor數(shù)據(jù)
            result_tensors = results_onnxvalue[0].AsTensor<float>();

            result_array = result_tensors.ToArray();

            resize_image.Dispose();
            image_rgb.Dispose();

            result_pro = new DetectionResult(classer_path, factors);
            result = result_pro.process_result(result_array);
            result_image = result_pro.draw_result(result, image.Clone());

            if (!result_image.Empty())
            {
                pictureBox2.Image = new Bitmap(result_image.ToMemoryStream());
                sb.Clear();
                sb.AppendLine("推理耗時(shí):" + (dt2 - dt1).TotalMilliseconds + "ms");
                sb.AppendLine("------------------------------");

                for (int i = 0; i < result.length; i++)
                {
                    sb.AppendLine(string.Format("{0}:{1},({2},{3},{4},{5})"
                        , result.classes[i]
                        , result.scores[i].ToString("0.00")
                        , result.rects[i].TopLeft.X
                        , result.rects[i].TopLeft.Y
                        , result.rects[i].BottomRight.X
                        , result.rects[i].BottomRight.Y
                        ));
                }

                textBox1.Text = sb.ToString();
            }
            else
            {
                textBox1.Text = "無(wú)信息";
            }
        }
    }
}

下載?

源碼下載文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-733082.html

到了這里,關(guān)于C# Onnx Yolov8 Fire Detect 火焰識(shí)別,火災(zāi)檢測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

  • 【yolov5&yolov7&yolov8火焰和煙霧檢測(cè)】

    【yolov5&yolov7&yolov8火焰和煙霧檢測(cè)】

    YOLOv5訓(xùn)練好的火焰檢測(cè)模型,并包含2000張標(biāo)注好的火焰和煙霧數(shù)據(jù)集,標(biāo)簽格式為xml和txt兩種,類(lèi)別名為fire, 有QT界面 采用pytrch框架,代碼是python的 火災(zāi)檢測(cè)數(shù)據(jù)集-1 YOLOv3火焰識(shí)別訓(xùn)練模型: https://download.csdn.net/download/zhiqingAI/85438269 yolov5火焰識(shí)別訓(xùn)練模型+數(shù)據(jù)集: https

    2024年04月28日
    瀏覽(20)
  • YOLOv8/YOLOv7/YOLOv5-火災(zāi)檢測(cè)、煙霧檢測(cè)系統(tǒng)-界面+視頻實(shí)時(shí)檢測(cè)+數(shù)據(jù)集(算法-畢業(yè)設(shè)計(jì))

    YOLOv8/YOLOv7/YOLOv5-火災(zāi)檢測(cè)、煙霧檢測(cè)系統(tǒng)-界面+視頻實(shí)時(shí)檢測(cè)+數(shù)據(jù)集(算法-畢業(yè)設(shè)計(jì))

    本項(xiàng)目通過(guò)yolov8/yolov7/yolov5訓(xùn)練自己的數(shù)據(jù)集,并開(kāi)發(fā)可視化界面,實(shí)現(xiàn)了一個(gè)火災(zāi)煙霧實(shí)時(shí)檢測(cè)系統(tǒng),操作視頻和效果展示如下: 【yolov8/yolov7/yolov5火災(zāi)煙霧檢測(cè)系統(tǒng)-界面+視頻實(shí)時(shí)檢測(cè)+數(shù)據(jù)集(原創(chuàng)算法-畢業(yè)設(shè)計(jì))】 https://www.bilibili.com/video/BV1FG41127H3/?share_source=copy_webvd_sou

    2024年02月04日
    瀏覽(26)
  • YOLOv8優(yōu)化:獨(dú)家創(chuàng)新(Partial_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,實(shí)現(xiàn)漲點(diǎn) | 檢測(cè)頭新穎創(chuàng)新系列

    YOLOv8優(yōu)化:獨(dú)家創(chuàng)新(Partial_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,實(shí)現(xiàn)漲點(diǎn) | 檢測(cè)頭新穎創(chuàng)新系列

    ??????? 本文獨(dú)家改進(jìn): 獨(dú)家創(chuàng)新(Partial_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,適合科研創(chuàng)新度十足,強(qiáng)烈推薦 Partial_C_Detect? |? ?親測(cè)在多個(gè)數(shù)據(jù)集能夠?qū)崿F(xiàn)大幅漲點(diǎn) ??????Yolov8魔術(shù)師,獨(dú)家首發(fā)創(chuàng)新(原創(chuàng)),適用于Yolov5、Yolov7、Yolov8等各個(gè)Yolo系列,專(zhuān)欄文章提供每一步步驟

    2024年02月05日
    瀏覽(19)
  • YOLOv8優(yōu)化:獨(dú)家創(chuàng)新(SC_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,實(shí)現(xiàn)漲點(diǎn) | 檢測(cè)頭新穎創(chuàng)新系列

    YOLOv8優(yōu)化:獨(dú)家創(chuàng)新(SC_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,實(shí)現(xiàn)漲點(diǎn) | 檢測(cè)頭新穎創(chuàng)新系列

    ???????? 本文獨(dú)家改進(jìn): 獨(dú)家創(chuàng)新(SC_C_Detect)檢測(cè)頭結(jié)構(gòu)創(chuàng)新,適合科研創(chuàng)新度十足,強(qiáng)烈推薦 SC_C_Detect |? ?親測(cè)在多個(gè)數(shù)據(jù)集能夠?qū)崿F(xiàn)大幅漲點(diǎn) ??????Yolov8魔術(shù)師,獨(dú)家首發(fā)創(chuàng)新(原創(chuàng)),適用于Yolov5、Yolov7、Yolov8等各個(gè)Yolo系列,專(zhuān)欄文章提供每一步步驟和源碼

    2024年02月07日
    瀏覽(27)
  • Windows10+Python+Yolov8+ONNX圖片缺陷識(shí)別,并在原圖中標(biāo)記缺陷,有onnx模型則無(wú)需配置,無(wú)需訓(xùn)練。

    Windows10+Python+Yolov8+ONNX圖片缺陷識(shí)別,并在原圖中標(biāo)記缺陷,有onnx模型則無(wú)需配置,無(wú)需訓(xùn)練。

    目錄 一、訓(xùn)練自己數(shù)據(jù)集的YOLOv8模型? 1.博主電腦配置 2.深度學(xué)習(xí)GPU環(huán)境配置 ?3.yolov8深度學(xué)習(xí)環(huán)境準(zhǔn)備 4.準(zhǔn)備數(shù)據(jù)集 二、Python+Onnx模型進(jìn)行圖像缺陷檢測(cè),并在原圖中標(biāo)注 1、模型轉(zhuǎn)換 2、查看模型結(jié)構(gòu) 3、修改輸入圖片的尺寸 4、 圖像數(shù)據(jù)歸一化 5、模型推理 6、推理結(jié)果篩

    2024年02月12日
    瀏覽(21)
  • YOLOv8 人體姿態(tài)估計(jì)(關(guān)鍵點(diǎn)檢測(cè)) python推理 && ONNX RUNTIME C++部署

    YOLOv8 人體姿態(tài)估計(jì)(關(guān)鍵點(diǎn)檢測(cè)) python推理 && ONNX RUNTIME C++部署

    目錄 ? 1、下載權(quán)重 ?編輯2、python 推理 3、轉(zhuǎn)ONNX格式 4、ONNX RUNTIME C++ 部署 utils.h utils.cpp detect.h detect.cpp main.cpp CmakeList.txt 我這里之前在做實(shí)例分割的時(shí)候,項(xiàng)目已經(jīng)下載到本地,環(huán)境也安裝好了,只需要下載pose的權(quán)重就可以 輸出: ? 用netron查看一下: ?如上圖所是,YOLO

    2024年02月07日
    瀏覽(29)
  • 用于增強(qiáng)現(xiàn)實(shí)的實(shí)時(shí)可穿帶目標(biāo)檢測(cè):基于YOLOv8進(jìn)行ONNX轉(zhuǎn)換和部署

    用于增強(qiáng)現(xiàn)實(shí)的實(shí)時(shí)可穿帶目標(biāo)檢測(cè):基于YOLOv8進(jìn)行ONNX轉(zhuǎn)換和部署

    點(diǎn)擊藍(lán)字 關(guān)注我們 關(guān)注并星標(biāo) 從此不迷路 計(jì)算機(jī)視覺(jué)研究院 公眾號(hào)ID | 計(jì)算機(jī)視覺(jué)研究院 學(xué)習(xí)群 | 掃碼在主頁(yè)獲取加入方式 計(jì)算機(jī)視覺(jué)研究院專(zhuān)欄 Column of Computer Vision Institute 今天給大家介紹了一種在增強(qiáng)現(xiàn)實(shí)(AR)環(huán)境中使用機(jī)器學(xué)習(xí)(ML)進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)的軟件體

    2024年02月04日
    瀏覽(57)
  • 基于BP神經(jīng)網(wǎng)絡(luò)的火焰識(shí)別,基于BP神經(jīng)網(wǎng)絡(luò)的火災(zāi)識(shí)別

    背影 BP神經(jīng)網(wǎng)絡(luò)的原理 BP神經(jīng)網(wǎng)絡(luò)的定義 BP神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)的神經(jīng)元 BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù), BP神經(jīng)網(wǎng)絡(luò)的傳遞函數(shù) 代碼鏈接:基于BP神經(jīng)網(wǎng)絡(luò)的火焰識(shí)別,基于BP神經(jīng)網(wǎng)絡(luò)的火災(zāi)識(shí)別資源-CSDN文庫(kù) https://download.csdn.net/download/abc991835105/88215777 神經(jīng)網(wǎng)絡(luò)參數(shù) 基于

    2024年02月11日
    瀏覽(25)
  • C# OpenCvSharp Yolov8 Pose 姿態(tài)識(shí)別

    C# OpenCvSharp Yolov8 Pose 姿態(tài)識(shí)別

    目錄 效果 項(xiàng)目 模型信息 代碼 下載? VS2022 .net framework 4.8 OpenCvSharp 4.8 Microsoft.ML.OnnxRuntime 1.16.2 Model Properties ------------------------- date:2023-09-07T17:11:43.091306 description:Ultralytics YOLOv8n-pose model trained on /usr/src/app/ultralytics/datasets/coco-pose.yaml author:Ultralytics kpt_shape:[17, 3] task:pose l

    2024年02月07日
    瀏覽(27)
  • 防護(hù)服穿戴檢測(cè)識(shí)別算法 yolov8

    防護(hù)服穿戴檢測(cè)識(shí)別算法 yolov8

    防護(hù)服穿戴檢測(cè)識(shí)別系統(tǒng)基于yolov8網(wǎng)絡(luò)模型圖片數(shù)據(jù)識(shí)別訓(xùn)練,算法模型自動(dòng)完成對(duì)現(xiàn)場(chǎng)人員是否按照要求穿戴行為實(shí)時(shí)分析。YOLOv8 算法的核心特性和改動(dòng)可以歸結(jié)為如下:提供了一個(gè)全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目標(biāo)檢測(cè)網(wǎng)絡(luò)和基于 YOLACT 的實(shí)例分割模型

    2024年02月03日
    瀏覽(87)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包