Yolov3目标检测BS交互式框架——火焰识别为例

news2024/11/27 18:50:17
  • 每个模块都具有可扩展性,可以根据需求自行扩展。本例子仅用火焰识别,可以自行训练新的权重实现检测不同目标。
  • 可以进行内网搭建,无需要安装程序

B/S模式 VS B/S模式:

/B/SC/S
跨平台×(要写多种)
维护成本
作用范围

目录

    • 0x01 主页视图
    • 0x02 主页前端代码
    • 0x03 图片检测
    • 0x04 图片检测代码
    • 0x05 视频检测
    • 0x06 视频检测代码
    • 0x07 实时检测
    • 0x08实时检测代码
    • 0x09 训练数据
    • 0x0A 训练数据代码
    • 0x0B 日志记录
    • 0x0C 代码结构
    • 0x0D 程序综述
    • 0x0E 完整代码下载

0x01 主页视图

在这里插入图片描述
在这里插入图片描述

0x02 主页前端代码

<!DOCTYPE html>
<html>
    <head>
        <title>火焰识别平台—内测</title>
        <style>
            body {
                font-family: sans-serif;
            }
            nav {
                background-color: #333;
                color: #fff;
                padding: 10px;
            }
            nav ul {
                margin: 0;
                padding: 0;
            }
            nav li {
                display: inline-block;
                margin-right: 10px;
            }
            nav a {
                color: #fff;
                text-decoration: none;
            }
            form {
                margin: 10px 0;
            }
            input[type="text"] {
                padding: 5px;
            }
            button[type="submit"] {
                padding: 5px 10px;
                background-color: #333;
                color: #fff;
                border: none;
            }
            #output {
                margin: 10px 0;
                padding: 10px;
                background-color: #eee;
                border: 1px solid #333;
            }
        </style>
    </head>
    <body>
        <h1>火焰识别平台</h1>
        <p>作者:msgcc</p>
        <nav>
            <ul>
                <li><a href="/">主页</a></li>
                <li><a href="/image">图片检测</a></li>
                <li><a href="/video">视频检测</a></li>
                <li><a href="/rtime">实时检测</a></li>
                <li><a href="/train">训练数据</a></li>
                <li><a href="/load">待定</a></li>
            </ul>
        </nav>
       <div>
     <form action="/update_config" method="post">
         模型地址:<input type="text" name="model_path" placeholder="模型绝对地址" value=""><br>
         检测类名地址:<input type="text" name="classes_path" placeholder="绝对地址" value=""><br>
         confidence:<input type="text" name="confidence" placeholder="置信度" value=""><br>
         iou:<input type="text" name="iou" placeholder="IOU" value=""><br>
            <button type="submit">修改配置</button>
        </form>
        <button type="submit" id="help-button" onclick="showHelp()">Help</button>
        <br>
        </div>
    <div class="image-container">
            {% if key['stat']==1 %}
            <script>alert("修改配置成功!")</script>
            <div id="output">
                {{ key['data']}}
            </div>
            {% elif key['stat']==-1 %}
        <br>
            {% else %}
            <script>alert("修改配置失败!")</script>
            <div id="output">
                {{key['data']}}
            </div>
            {% endif %}
            </div>
    </body>
 <script>
        function showHelp() {
    alert("修改配置文件,为空则是默认值");
}
    </script>
</html>

0x03 图片检测

在这里插入图片描述
在这里插入图片描述

0x04 图片检测代码

<!DOCTYPE html>
<html>
    <head>
        <title>火焰识别平台—内测</title>
        <style>
            body {
                font-family: sans-serif;
            }
            nav {
                background-color: #333;
                color: #fff;
                padding: 10px;
            }
            nav ul {
                margin: 0;
                padding: 0;
            }
            nav li {
                display: inline-block;
                margin-right: 10px;
            }
            nav a {
                color: #fff;
                text-decoration: none;
            }
            form {
                margin: 10px 0;
            }
            input[type="text"] {
                padding: 5px;
            }
            button[type="submit"] {
                padding: 5px 10px;
                background-color: #333;
                color: #fff;
                border: none;
            }
            #output {
                margin: 10px 0;
                padding: 10px;
                background-color: #eee;
                border: 1px solid #333;
            }
             .image-container {
            display: flex;
        }

        .image-left {
            width: 500px;
            padding-right: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }

        .image-right {
            width: 500px;
            padding-left: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }
        .img1{
            width: 100%;
           height: 100%;
        }
        </style>
    </head>
    <body>
        <h1>火焰识别平台</h1>
        <p>作者:msgcc</p>
        <nav>
            <ul>
                <li><a href="/">主页</a></li>
                <li><a href="/image">图片检测</a></li>
                <li><a href="/video">视频检测</a></li>
                <li><a href="/rtime">实时检测</a></li>
                <li><a href="/train">训练数据</a></li>
                <li><a href="/load">待定</a></li>
            </ul>
        </nav>


        <div>
        <form action="/upload_img" method="post" enctype="multipart/form-data">
        待检测图片:<input type="file" name="image" accept="image/*">
        <input type="submit" value="上传">
        </form>
    <button type="submit" onclick="window.location.href='/detect_img'">检测图片</button>
        <button type="submit" id="help-button" onclick="showHelp()">Help</button>
        <br>
        </div>
        <div class="image-container">
            {% if key['stat']==1 %}
            <script>alert("上传成功!")</script>
            {% elif key['stat']==2 %}
            <script>alert("检测成功!")</script>
            {% elif key['stat']==-2 %}
            <script>alert("检测失败!")</script>
            {% elif key['stat']==-1 %}
            <br>
            {% else %}
            <script>alert("上传失败!")</script>
            {% endif %}
        <div class="image-left">
            {% if key["src"] != 0 %}

            <img src={{url_for('static', filename=key['src'])}} alt="待检测图片" class="img1">
            {% else %}
            <img src="" alt="待检测图片" class="img1">
            {% endif %}

        </div>
        <div class="image-right">
                {% if key["dst"] != 0 %}
            <img src={{url_for('static', filename=key['dst'])}} alt="检测后图片" class="img1">
            {% else %}
            <img src="" alt="检测后图片" class="img1">
            {% endif %}
        </div>
    </div>
    <script>
        function showHelp() {
    alert("图片检测,上传图片,点击检测");
}
    </script>

    </body>
</html>

0x05 视频检测

在这里插入图片描述
在这里插入图片描述

0x06 视频检测代码

<!DOCTYPE html>
<html>
    <head>
        <title>火焰识别平台—内测</title>
        <style>
            body {
                font-family: sans-serif;
            }
            nav {
                background-color: #333;
                color: #fff;
                padding: 10px;
            }
            nav ul {
                margin: 0;
                padding: 0;
            }
            nav li {
                display: inline-block;
                margin-right: 10px;
            }
            nav a {
                color: #fff;
                text-decoration: none;
            }
            form {
                margin: 10px 0;
            }
            input[type="text"] {
                padding: 5px;
            }
            button[type="submit"] {
                padding: 5px 10px;
                background-color: #333;
                color: #fff;
                border: none;
            }
            #output {
                margin: 10px 0;
                padding: 10px;
                background-color: #eee;
                border: 1px solid #333;
            }
             .image-container {
            display: flex;
        }

        .image-left {
            width: 500px;
            padding-right: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }

        .image-right {
            width: 500px;
            padding-left: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }
        .img1{
            width: 100%;
           height: 100%;
        }
        </style>
    </head>
    <body>
        <h1>火焰识别平台</h1>
        <p>作者:msgcc</p>
        <nav>
            <ul>
                <li><a href="/">主页</a></li>
                <li><a href="/image">图片检测</a></li>
                <li><a href="/video">视频检测</a></li>
                <li><a href="/rtime">实时检测</a></li>
                <li><a href="/train">训练数据</a></li>
                <li><a href="/load">待定</a></li>
            </ul>
        </nav>


        <div>
        <form action="/upload_video" method="post" enctype="multipart/form-data">
        待检测视频:<input type="file" name="video" accept="video/*">
        <input type="submit" value="上传">
        </form>
        <button type="submit" onclick="window.location.href='/detect_video'">检测视频</button>
        <button type="submit" id="help-button" onclick="showHelp()">Help</button>
        <br>
        </div>
        <div class="image-container">
            {% if key['stat']==1 %}
            <script>alert("上传成功!")</script>
            {% elif key['stat']==2 %}
            <script>alert("检测成功!")</script>
            {% elif key['stat']==-2 %}
            <script>alert("检测失败!")</script>
            {% elif key['stat']==-1 %}
            <br>
            {% else %}
            <script>alert("上传失败!")</script>
            {% endif %}
        <div class="image-left">
            {% if key["src"] != 0 %}

            <video controls src={{url_for('static', filename=key['src'])}} alt="待检测视频" class="img1"></video>

            {% else %}
            <video controls src="" alt="待检测视频" class="img1"></video>
            {% endif %}

        </div>
        <div class="image-right">
                {% if key["dst"] != 0 %}
            <video  controls src={{url_for('static', filename=key['dst'])}} alt="检测后视频" class="img1"></video>
            {% else %}
            <video src="" controls alt="检测后视频" class="img1"></video>
            {% endif %}
        </div>
    </div>
    <script>
        function showHelp() {
    alert("视频检测,上传视频,视频越长,检测视频越长,点击检测");
}
    </script>

    </body>
</html>

0x07 实时检测

在这里插入图片描述
在这里插入图片描述

0x08实时检测代码

<!DOCTYPE html>
<html>
    <head>
        <title>火焰识别平台—内测</title>
        <style>
            body {
                font-family: sans-serif;
            }
            nav {
                background-color: #333;
                color: #fff;
                padding: 10px;
            }
            nav ul {
                margin: 0;
                padding: 0;
            }
            nav li {
                display: inline-block;
                margin-right: 10px;
            }
            nav a {
                color: #fff;
                text-decoration: none;
            }
            form {
                margin: 10px 0;
            }
            input[type="text"] {
                padding: 5px;
            }
            button[type="submit"] {
                padding: 5px 10px;
                background-color: #333;
                color: #fff;
                border: none;
            }
            #output {
                margin: 10px 0;
                padding: 10px;
                background-color: #eee;
                border: 1px solid #333;
            }
             .image-container {
            display: flex;
        }

        .image-left {
            width: 500px;
            padding-right: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }

        .image-right {
            width: 500px;
            padding-left: 10px;
            border:3px solid black;  height: 400px; margin: 10px;
        }
        .img1{
            width: 100%;
           height: 100%;
        }
        </style>
    </head>
    <body>
        <h1>火焰识别平台</h1>
        <p>作者:msgcc</p>
        <nav>
            <ul>
                <li><a href="/">主页</a></li>
                <li><a href="/image">图片检测</a></li>
                <li><a href="/video">视频检测</a></li>
                <li><a href="/rtime">实时检测</a></li>
                <li><a href="/train">训练数据</a></li>
                <li><a href="/load">待定</a></li>
            </ul>
        </nav>

        <br>
        <div>
    <button  type="submit" onclick="open_c()">开启摄像头</button>
            <button  type="submit" onclick="close_c()">关闭摄像头</button>
            <button type="submit" onclick="window.location.href='/load_de'">加载检测配置文件</button>
    <button type="submit" onclick="window.location.href='/detect_camera'">实时检测</button>
            <button type="submit" onclick="window.location.href='/close_detect'">关闭检测</button>
        <button type="submit" id="help-button" onclick="showHelp()">Help</button>
        <br>
        </div>
        <div class="image-container">
       <div class="image-left">

           <video id="video" autoplay class="img1"></video>
        </div>
        <div class="image-right">
            {% if key['stat']!=0 %}
            <img class="img1" src="{{ url_for('detect_camera') }}">
            {% else %}
            <video  autoplay class="img1"></video>
            {% endif %}
        </div>

</div>
         <div>
                {% if key['tip']==1 %}
                        <div id="output">
                停止检测成功!
            </div>
            {% elif key['tip']==-1 %}
            <br>
            {% else %}
                        <div id="output">
                停止检测失败!{{key['tip']}}
            </div>
            {% endif %}
            </div>
    <script>
        function showHelp() {
            alert("实时检测,点击检测");
        }
        function open_c() {
         var video = document.getElementById('video');
         navigator.mediaDevices.getUserMedia({ video: true })
        .then(function (stream) {
          video.srcObject = stream;
        });
        }
        function close_c() {
         window.location.href="/rtime";
        }

    </script>

    </body>
</html>

0x09 训练数据

在这里插入图片描述

0x0A 训练数据代码

<!DOCTYPE html>
<html>
    <head>
        <title>火焰识别平台—内测</title>
        <style>
            body {
                font-family: sans-serif;
            }
            nav {
                background-color: #333;
                color: #fff;
                padding: 10px;
            }
            nav ul {
                margin: 0;
                padding: 0;
            }
            nav li {
                display: inline-block;
                margin-right: 10px;
            }
            nav a {
                color: #fff;
                text-decoration: none;
            }
            form {
                margin: 10px 0;
            }
            input[type="text"] {
                padding: 5px;
            }
            button[type="submit"] {
                padding: 5px 10px;
                background-color: #333;
                color: #fff;
                border: none;
            }
            .output1 {
                margin: 10px 0;
                padding: 10px;
                background-color: #eee;
                border: 1px solid #333;
            }
        </style>
    </head>
    <body>
        <h1>火焰识别平台</h1>
        <p>作者:msgcc</p>
        <nav>
            <ul>
                  <li><a href="/">主页</a></li>
                <li><a href="/image">图片检测</a></li>
                <li><a href="/video">视频检测</a></li>
                <li><a href="/rtime">实时检测</a></li>
                <li><a href="/train">训练数据</a></li>
                <li><a href="/load">待定</a></li>
            </ul>
        </nav>
        <div>
<form action="/upload_model" method="post" enctype="multipart/form-data">
        导入前置模型:<input type="file" name="model">
        <input type="submit" value="上传">
        </form>
            <div class="image-container">
            {% if key['up-stat']==1 %}
            <script>alert("上传成功!")</script>
                <p style="color: blue; border: 1px solid black;">已上传文件</p>
            {% elif key['up-stat']==-1 %}
            <p style="color: blue; border: 1px solid black;">未上传文件</p>
            {% else %}
            <script>alert("上传失败!")</script>
            {% endif %}
            </div>
     <form action="/train_go" method="post">
         验证集比例:<input type="text" name="val1" placeholder="验证集比例" value="0.2">
         <p class="output1">第一阶段</p>
         学习率lr:<input type="text" name="lr1" placeholder="学习率lr" value="1e-3"><br>
         Batch_size:<input type="text" name="Batch_size1" placeholder="Batch_size" value="8"><br>
         起始世代:<input type="text" name="Init_Epoch1" placeholder="起始世代" value="50"><br>
         冻结世代:<input type="text" name="Freeze_Epoch1" placeholder="冻结世代" value="100">
         <p class="output1">第二阶段</p>
         学习率lr:<input type="text" name="lr2" placeholder="学习率lr" value="1e-5"><br>
         Batch_size:<input type="text" name="Batch_size2" placeholder="Batch_size" value="16"><br>
         冻结世代:<input type="text" name="Freeze_Epoch2" placeholder="冻结世代" value="50"><br>
         总世代:<input type="text" name="Unfreeze_Epoch2" placeholder="总世代" value="100"><br>
            <button type="submit">训练</button>
        </form>
        <button type="submit" id="help-button" onclick="showHelp()">Help</button>
        <br>
        </div>
    <div class="image-container">
            {% if key['stat']==1 %}
            <script>alert("训练开始!")</script>
            <p style="color: blue; border: 1px solid black;">训练保存目录:./logs/</p>
            {% elif key['stat']==-1 %}
            <p style="color: blue; border: 1px solid black;">等待开始...</p>
            {% else %}
            <script>alert("训练失败!")</script>
            {% endif %}
            </div>
    </body>
 <script>
        function showHelp() {
    alert("训练模型,必选先指定一个前置模型");
}
    </script>
</html>

0x0B 日志记录

在这里插入图片描述

0x0C 代码结构

在这里插入图片描述

0x0D 程序综述

本次火焰识别平台共使用2000张火焰图片进行训练200轮,检测率可以达到99%,loss值为1左右.

0x0E 完整代码下载

(Yolov3+Flask+2k图片+99%检测率权重)源码:传送门

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

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

相关文章

51单片机点亮LED灯

LED 灯 发光二极管&#xff08;Light Emitting Diode&#xff09;&#xff0c;主要用于照明、广告灯、指引灯、屏幕等场景。 LED 原理图 VCC 表示电源正极&#xff0c;当二极管的正极对应电源的正极&#xff0c;并且二极管的负极对应电源的负极时&#xff0c;二极管就会亮灯。…

反义寡核苷酸/司盘修饰/载米铂与核酸miR-34a/冰片修饰的丹参酮ⅡA阳离子脂质体的合成

小编今天这里分享的内容是反义寡核苷酸/司盘修饰/载米铂与核酸miR-34a/冰片修饰的丹参酮ⅡA阳离子脂质体的合成方法&#xff0c;一起来看&#xff01; 冰片(BO)修饰的丹参酮ⅡA(TA)阳离子脂质体TA-BCLPs方法&#xff1a; 采用乙醇注入法制备阳离子脂质体,通过正交设计,以粒径,…

SpringSecurity[5]-基于表达式的访问控制/基于注解的访问控制/Remember Me功能实现

上一篇:SpringSecurity[4]-访问控制url匹配/内置访问控制方法介绍/角色权限判断 链接:SpringSecurity[4]-访问控制url匹配/内置访问控制方法介绍/角色权限判断_豆虫儿的博客-CSDN博客 十一、基于表达式的访问控制 1.access()方法使用 之前学习的登录用户权限判断实际上底层…

Spring Security进阶学习

Spring Security整体架构 认证 认证核心组件的大体关系如下&#xff1a; Spring Security 中的认证工作主要由 AuthenticationManager 接口来负责&#xff0c;它处理来自框架其他部分的身份验证请求。其中还涉及到一些关键类&#xff0c;比如&#xff1a;AuthenticationProvi…

同城预约小程序上门服务上门理疗推拿按摩系统养生美容行业程序源码

在这个工作生活压力巨大的社会&#xff0c;大家恨不得一分钟掰成两半过&#xff0c;别提什么休闲娱乐了&#xff0c;能睡个饱觉就已经是奢侈了&#xff01;工作固然重要&#xff0c;身心的放松也需要重视&#xff0c;好在随着互联网&#xff0b;的发展&#xff0c;越来越多的行…

PMO在企业项目管理中的五个重要作用

PMO项目管理办公室是成功企业的关键管理工具。它对于推动项目的发展至关重要&#xff0c;以下是PMO的五个重要作用&#xff1a; 1、项目管理过程的标准化 PMO的主要目标在于方法、流程和工具的创建和标准化。 PMO 可能创建的模板包括&#xff1a; • 项目建议书模板。这有…

Java Optional 实用判空实用实战,优雅永不过时

平时我们很多实体类里面会嵌套实体类&#xff0c;实体里面还嵌套实体。 那么我们有时为了取出最里面的实体的某个值的时候&#xff0c;我们就不得不一层层剥开这个 让人流泪的洋葱&#xff0c; 一层层判断。 举例&#xff08;随便举的&#xff09;&#xff1a; 就像这么一个…

关于迭代器遍历及auto关键词

在使用vector容器或者字符串时&#xff0c;很经常会用到一些遍历操作&#xff0c;除了使用下标遍历之外&#xff0c;使用迭代器遍历也是超级方便&#xff0c;但是迭代器也有有一些小坑&#xff0c;一不注意就会编译出错&#xff0c;所以特意总结一下。 迭代器 迭代器很很多接口…

性能测试之nginx监控系统搭建

不同tomcat服务器的负载均衡 在Nginx服务器192.168.43.138上安装Nginx&#xff0c;&#xff08;安装教程在前几篇文章有详细描述 &#xff09;实现反向代理tomcat负载均衡 执行一下命令&#xff0c;关闭防火墙 systemctl disable firewalld.service systemctl stop firewall…

[附源码]Node.js计算机毕业设计防疫科普微课堂Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

从外包被裁到拿到阿里Offer,多亏P8架构师的全套面试文档

引言 又是一年跳槽季&#xff0c;在疫情的影响下&#xff0c;今年的金三银四冷清不少。但无论如何&#xff0c;2020年招聘市场已经显示出了一个清晰的趋势&#xff0c;java开发岗面试越来越难&#xff0c;需求越来越少&#xff01;也更增加了游戏的“难度系数”。 跳槽时时刻刻…

99-数据结构与算法(上篇)

数据结构与算法数据结构和算法&#xff0c;一个非常古老的课题&#xff0c;工作的时候&#xff0c;一般只求程序能跑&#xff0c;并不太关注性能 一般情况下&#xff0c;我们尽量避坑&#xff0c;即避免这样&#xff1a;ArrayList Or LinkedList&#xff0c;哪个简单用哪个 实…

【Kubernetes】一主二从环境搭建,详细的图文描述

kubernetes&#xff0c;是一个全新的基于容器技术的分布式架构领先方案&#xff0c;是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本&#xff0c;于2014年9月发布第一个版本&#xff0c;2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群&#xff0…

使用Java API操作HDFS

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录学习目标&#xff08;一&#xff09;了解HDFS Java API1、HDFS常见类与接口2、FileSystem的常用方法&#xff08;二&#xff09;编写Java程序访问HDFS1、创建Maven项…

Nacos 配置中心之长轮询--服务端

先回顾一下客户端和服务端交互的过程 服务端 入口 直接看长轮询的接口 ConfigController.listener PostMapping("/listener")Secured(action ActionTypes.READ, parser ConfigResourceParser.class)public void listener(HttpServletRequest request, HttpServ…

抓住三个关键因素,提高你的ASA广告效果!

​ 众所周知&#xff0c;App Store 作为 iOS 端的流量收口&#xff0c;旗下的 ASA 广告更是广告主在 iOS 生态投放广告的唯一渠道&#xff0c;所提供的四大广告位&#xff08;Today 标签、搜索标签、搜索结果和产品页面&#xff09;覆盖了用户访问的全路径&#xff0c;为广告主…

12月14日:跟着猫叔写代码api中的增删改查

首先在数据库中建立一个学生成绩信息表 DROP TABLE IF EXISTS bro_ceshiapi; CREATE TABLE bro_ceshiapi (id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT id,name varchar(100) DEFAULT NULL COMMENT 姓名,class varchar(100) DEFAULT NULL COMMENT 班级,score decima…

[附源码]Python计算机毕业设计Django基于vuejs的文创产品销售平台app

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

学习Vue3 - 认识 Reactive 全家桶

reactive 用来绑定复杂的数据类型&#xff0c;例如&#xff1a;对象、数组 reactive 源码约束了我们的类型 他是不可以绑定普通的数据类型的&#xff0c;这样是不允许的&#xff0c;会报错 因此&#xff0c;如果绑定普通的数据类型&#xff0c;可以使用ref ref绑定对象或者…

计算机SCI论文,如何写吸引人的摘要? - 易智编译EaseEditing

摘要简明扼要的概括全文的主要内容&#xff0c;是整篇文章的精华&#xff0c;是编辑、审稿专家以及读者阅读文章的最先关注的部分。 一个好的摘要可以正确反映文章内容&#xff0c;引起编辑、审稿专家以及读者的关注。那如何写出一个好的论文摘要呢&#xff0c;今天小易为大家…