人员抽烟行为识别检测系统基于YOLOv7 技术方法,对画面开展7×24h无间断分析。大大提升效率,减少了人力成本。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备。除了架构优化之外,该研究提出的方法还专注于训练过程的优化,将重点放在了一些优化模块和优化方法上。这可能会增加训练成本以提高目标检测的准确性,但不会增加推理成本。
设计了几种可训练的 bag-of-freebies 方法,使得实时目标检测可以在不增加推理成本的情况下大大提高检测精度;对于目标检测方法的演进,研究者发现了两个新问题:一是重参数化的模块如何替换原始模块,二是动态标签分配策略如何处理分配给不同输出层的问题,并提出了解决这两个问题的方法。
该研究使用梯度传播路径的概念分析了适用于不同网络层的模型重参数化策略,并提出了有计划的重参数化模型。此外,研究者发现使用动态标签分配技术时,具有多个输出层的模型在训练时会产生新的问题:「如何为不同分支的输出分配动态目标?」针对这个问题,研究者提出了一种新的标签分配方法,称为从粗粒度到细粒度(coarse-to-fine)的引导式标签分配。
import os
from torch.utils.data import Dataset
from utils import *
from torchvision import transforms
transform = transforms.Compose([
transforms.ToTensor()
])
class MyDataset(Dataset):
def __init__(self, path):
self.path = path
self.name = os.listdir(os.path.join(path, 'notedata'))
def __len__(self):
return len(self.name)
def __getitem__(self, index):
segment_name = self.name[index] #XX.png
segment_path = os.path.join(self.path, 'notedata', segment_name)