# :tw-1f1e8-1f1f3: [FIRE-YOLOV5](https://dl.acm.org/doi/10.1145/3578741.3578773)
**Accelerate the engine.py**
- 主要实现了使用TensorRT加速的YOLOv5目标检测模型的预处理、推理和后处理:
- serial.Serial:Python中的串口通信库,用于与外部设备进行数据通信。
- cv2.rectangle:OpenCV中的函数,用于在图像上绘制矩形。
- TRT_LOGGER、Runtime、Logger、deserialize_cuda_engine、create_execution_context、volume、nptype、get_binding_shape
- get_binding_dtype:TensorRT中的类和函数,用于构建和执行加速的深度学习推理引擎。
- cuda.Device、make_context、Stream、pagelocked_empty和nptype:CUDA中的类和函数,用于在GPU上分配和操作内存。
#core code
```
for watertank in xy_c:
x1 = watertank % 256
x2 = watertank // 256
uart.write(bytearray([x2]))
uart.write(bytearray([x1]))
uart.write(bytearray([251])) #end with FB
```
- 这里是列表文本主要实现了使用串口通信将检测到的目标的中心坐标发送到外部设备的功能。具体来说,对于每个检测到的目标,首先计算其左上角和右下角的坐标,然后计算其中心坐标,并将其存储在xy_c变量中。接下来,将xy_c中的每个坐标拆分为两个字节,并将它们存储在一个长度为3的字节数组中。最后,将这个字节数组通过串口发送出去。
xy_c是一个包含中心坐标的列表,watertank是列表中的一个元素,x1和x2是watertank的两个字节。最后一行代码用于在字节数组的末尾添加一个结束符。
**serial communication.py**
- models.experimental.attempt_load: 加载PyTorch模型的函数,用于尝试加载FP32或FP16模型。
- utils.datasets.LoadStreams和utils.datasets.LoadImages: 用于加载图像和视频数据集的自定义类。
- utils.general.check_img_size: 用于检查图像大小并调整为模型所需大小的函数。
- utils.general.non_max_suppression: 非极大值抑制(NMS)的实现,用于过滤检测到的目标框。
- utils.general.apply_classifier: 应用第二阶段分类器的函数,用于对目标进行分类。
- utils.general.scale_coords和utils.general.xyxy2xywh: 用于缩放和转换目标框坐标的函数。
- utils.general.strip_optimizer: 去除PyTorch模型优化器的函数,用于减小模型文件大小。
- utils.general.set_logging和utils.torch_utils.select_device: 用于设置日志和选择设备(CPU或GPU)的函数。
- tils.torch_utils.load_classifier: 加载第二阶段分类器模型的函数。
- utils.torch_utils.time_synchronized: 计算同步时间的函数,用于评估模型推理速度。
- serial.Serial: 用于与串口通信的Python库。
- Path: Python中处理文件路径的类。
- torch.half: PyTorch中的半精度数据类型,用于加速模型推理。
- torch.from_numpy和torch.unsqueeze: 用于将NumPy数组转换为PyTorch张量,并将其维度扩展为适合模型输入的大小。
- torch.no_grad: PyTorch上下文管理器,用于在推理时禁用梯度计算,以减少内存消耗和加速计算过程。
- random.randint: 生成随机整数的Python库函数。
### CBAM
> CBAM是一种注意力机制,可以帮助模型更好地理解图像中的重要特征。在YOLOv5中引入CBAM可以提高模型在火灾检测方面的性能,因为火灾检测需要对火焰等特征进行准确的识别和定位。
> CBAM通过两个模块来实现注意力机制:通道注意力模块和空间注意力模块。通道注意力模块可以帮助模型更好地关注重要的通道,而空间注意力模块可以帮助模型更好地关注重要的空间位置。这两个模块共同作用可以让模型更好地理解图像中的重要特征,从而提高火灾检测的准确性和鲁棒性。
> 在YOLOv5中引入CBAM后,模型可以更好地关注火焰等关键特征,并减少对无关特征的干扰。这样可以提高模型在火灾检测方面的性能,使其更加准确和鲁棒。
- ![输入图片说明](img/cbam.png)
- ![输入图片说明](img/ima1.png)
- 将输入的特征图F(H×W×C)分别经过基于width和height的global max pooling(全局最大池化)和global average pooling(全局平均池化),得到两个1×1×C的特征图,接着,再将它们分别送入一个两层的神经网络(MLP),第一层神经元个数为 C/r(r为减少率),激活函数为 Relu,第二层神经元个数为 C,这个两层的神经网络是共享的。而后,将MLP输出的特征进行基于element-wise的加和操作,再经过sigmoid激活操作,生成最终的channel attention feature,即M_c。最后,将M_c和输入特征图F做element-wise乘法操作,生成Spatial attention模块需要的输入特征。
### SE模块
![输入图片说明](img/se.png)
- SE 注意力机制模块的网络架构图,为了获得在通道维度上的注意力,特征图输入后,先通过基于特征图的宽度和高度进行全局平均池化,使空间特征降维到 1×1,紧接着使用两个全连接层和非线性激活函数建立通道间的连接。
![输入图片说明](img/se1.png)
### 分块推理
[SAHI](https://github.com/obss/sahi)
- SAHI的项目地址:https://github.com/obss/sahi1.
- 通过 pip 安装最新版本:
`pip install sahi2`.
- 通过conda
`conda install sahi -c obss`
- 现在可以在 Python 中导入和使用任何SAHI函数:
`from sahi import get_sliced_prediction`
```
from sahi .model import MmdetDetectionModel
from sahi .utils.cv import read_image,visualize_object_predictions
from sahi .predict import get_sliced_prediction
```
read_image是一个实用函数,用于将任何图像转换为 RGB numpy 数组。
get_sliced_prediction是执行切片推理的函数。
visualize_object_predictions是用于可视化SAHI预测结果的实用函数。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于YOLOv5的神经网络训练用于检测火灾初期的火焰和烟雾模型源码+数据集 FIRE-YOLOV5 Accelerate the engine.py 主要实现了使用TensorRT加速的YOLOv5目标检测模型的预处理、推理和后处理: serial.Serial:Python中的串口通信库,用于与外部设备进行数据通信。 cv2.rectangle:OpenCV中的函数,用于在图像上绘制矩形。 TRT_LOGGER、Runtime、Logger、deserialize_cuda_engine、create_execution_context、volume、nptype、get_binding_shape get_binding_dtype:TensorRT中的类和函数,用于构建和执行加速的深度学习推理引擎。 cuda.Device、make_context、Stream、pagelocked_empty和nptype:CUDA中的类和函数,用于在GPU上分配和操作内存。 #core code for watertank in xy_c: x1 = watertank %
资源推荐
资源详情
资源评论
收起资源包目录
SYS.zip (75个子文件)
FIRE-YOLOV5-master
add(CBAM).yaml 2KB
data
Argoverse.yaml 3KB
coco128.yaml 2KB
VisDrone.yaml 3KB
xView.yaml 5KB
SKU-110K.yaml 2KB
coco.yaml 2KB
VOC.yaml 3KB
GlobalWheat2020.yaml 2KB
hyps
hyp.finetune_objects365.yaml 460B
hyp.scratch-med.yaml 2KB
hyp.finetune.yaml 907B
hyp.scratch-high.yaml 2KB
hyp.scratch.yaml 2KB
hyp.scratch-low.yaml 2KB
scripts
get_coco.sh 900B
get_coco128.sh 615B
download_weights.sh 523B
Objects365.yaml 8KB
LICENSE 11KB
add(SE)Yolo.py 461B
utils
__init__.py 1KB
loss.py 9KB
augmentations.py 11KB
flask_rest_api
example_request.py 299B
restapi.py 1KB
README.md 2KB
metrics.py 14KB
aws
__init__.py 0B
userdata.sh 1KB
mime.sh 780B
resume.py 1KB
autoanchor.py 7KB
general.py 34KB
activations.py 4KB
downloads.py 6KB
plots.py 20KB
datasets.py 44KB
callbacks.py 2KB
torch_utils.py 13KB
autobatch.py 2KB
a
th.jpg 31KB
a
th.jpg 31KB
demo.jpg 161KB
img
se1.png 82KB
se.png 82KB
ima1.png 115KB
.keep 0B
cbam.png 110KB
add(SE)common.py 2KB
add(CBAM)common.py 2KB
serial communication.py 10KB
models
hub
anchors.yaml 3KB
yolov5-p2.yaml 2KB
yolov5-panet.yaml 1KB
yolov3.yaml 2KB
yolov5-p6.yaml 2KB
yolov5-bifpn.yaml 1KB
yolov5-p7.yaml 2KB
yolov3-spp.yaml 2KB
yolov3-tiny.yaml 1KB
yolov5-fpn.yaml 1KB
__init__.py 0B
tf.py 20KB
yolov5m.yaml 1KB
yolov5s.yaml 1KB
yolov5l.yaml 1KB
common.py 30KB
experimental.py 4KB
yolov5x.yaml 1KB
yolov5n.yaml 1KB
yolo.py 15KB
train.py 32KB
README.md 6KB
Accelerate the engine.py 15KB
共 75 条
- 1
资源评论
荒野大飞
- 粉丝: 1w+
- 资源: 2809
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学生宿舍管理系统(毕业设计).zip
- 跨年烟花代码(python)
- springboot-二手物品交易系统的设计与实现-h7ow81fl.zip
- 鲸鱼算法(WOA)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,WOA-HKELM分类预测 多特征输入单输出的
- Android学习笔记
- B站视频助手,视频下载助理
- 双碳目标下综合能源系统低碳运行优化调度Matlab程序,包含光伏、风电、热电联产、燃气锅炉、电锅炉、电储能、碳捕集设备,考虑碳交易 以系统运行成本最小为目标进行调度 没有具体参考文献,这个只是一个授之
- springboot-企业员工薪酬管理系统-n4s02htu.zip
- 基于格雷码的结构光三维重建源码,MATLAB可以跑通
- springboot-人才公寓管理系统-897cjl4r.zip
- 灰狼优化算法GWO算法具有结构简单、需要调节的参数少,容易实现等特点,其中存在能够自适应调整的收敛因子以及信息反馈机制,能够在局部寻优与全局搜索之间实现平衡,因此在对问题的求解精度和收敛速度方面都有良
- 新版Android开发教程与学习笔记
- 差分进化算法DE(Differential Evolution)算法是在遗传算法等进化思想的基础上提出的,本质是一种多目标(连续变量)优化算法,用于求解多维空间中整体最优解 Matlab 程序
- 半桥 全桥LLC电路 谐振变器仿真,采用频率控制(PFM变频控制)输出电压闭环,软开关 原边半桥+副边半波整流 原边半桥+副边全桥整流 原边全桥+副边半波整流 原边全桥+副边全桥整流都有 matlab
- 适合练手、课程设计、毕业设计的Java项目源码:进销存管理系统(jsp+mssql).rar
- video_250112_204741.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功