当前位置: 首页 > news >正文

网站建设大约多少费用网站开发需要什么工程师

网站建设大约多少费用,网站开发需要什么工程师,人才网官网登录,网站备案指的是什么1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 近年来#xff0c;随着深度学习技术的快速发展#xff0c;人脸识别技术在各个领域得到了广泛应用。其中#xff0c;人脸测距和社交距离过近警报系统成为了人们…1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 近年来随着深度学习技术的快速发展人脸识别技术在各个领域得到了广泛应用。其中人脸测距和社交距离过近警报系统成为了人们关注的热点问题。随着全球范围内新冠疫情的爆发人们对于社交距离的重视程度进一步提高。在公共场所如超市、车站、学校等地方人们之间的社交距离过近可能导致疾病的传播因此需要一种可靠的方法来监测和提醒人们保持安全的社交距离。 传统的人脸测距和社交距离过近警报系统主要依赖于传感器和计算机视觉技术。然而这些方法往往需要复杂的设备和大量的人力投入且准确度有限。而基于深度学习的人脸测距和社交距离过近警报系统则可以通过分析人脸图像中的特征来实现实时、准确的距离测量和警报功能。 深度学习是一种模仿人脑神经网络结构和工作原理的机器学习方法。通过构建多层神经网络深度学习可以从大量的数据中学习和提取特征从而实现对复杂问题的解决。在人脸测距和社交距离过近警报系统中深度学习可以通过训练大量的人脸图像数据学习人脸的特征表示和距离测量方法从而实现准确的距离测量和警报功能。 基于深度学习的人脸测距和社交距离过近警报系统具有以下几个重要意义 提高公共场所的安全性在公共场所人们之间的社交距离过近可能导致疾病的传播。通过使用基于深度学习的人脸测距和社交距离过近警报系统可以实时监测人们之间的距离并及时提醒他们保持安全的社交距离从而提高公共场所的安全性。 减少人力投入传统的人脸测距和社交距离过近警报系统需要大量的人力投入如安装传感器、监控和分析人脸图像等。而基于深度学习的方法可以通过分析人脸图像中的特征来实现距离测量和警报功能减少了人力投入的需求提高了系统的效率和可靠性。 推动深度学习技术的应用基于深度学习的人脸测距和社交距离过近警报系统是深度学习技术在实际应用中的一个典型案例。通过解决实际问题可以推动深度学习技术在其他领域的应用促进科技创新和社会进步。 促进社会文明进步社交距离的保持是一种社会文明的表现。通过使用基于深度学习的人脸测距和社交距离过近警报系统可以提醒人们保持安全的社交距离促进社会文明的进步培养良好的公共行为习惯。 总之基于深度学习的人脸测距和社交距离过近警报系统在提高公共场所的安全性、减少人力投入、推动深度学习技术的应用和促进社会文明进步等方面具有重要意义。随着深度学习技术的不断发展和应用相信这一系统将在未来得到更广泛的应用和推广。 2.图片演示 3.视频演示 基于深度学习的人脸测距社交距离过近警报系统_哔哩哔哩_bilibili 4.核心代码讲解 4.1 ui.py import cv2 import numpy as np import itertoolsdef plot_dots_on_people(x, img):# Plotting centers of people with green dot.thickness -1;color [0, 255, 0] # greencenter ((int(x[2]) int(x[0])) // 2, (int(x[3]) int(x[1])) // 2)radius 10cv2.circle(img, center, radius, color, thickness)def distancing(people_coords, img, dist_thres_lim(200, 250)):count_list [0,0,0]# Plot lines connecting peoplealready_red dict() # dictionary to store if a plotted rectangle has already been labelled as high riskcenters []for i in people_coords:centers.append(((int(i[2]) int(i[0])) // 2, (int(i[3]) int(i[1])) // 2))for j in centers:already_red[j] 0x_combs list(itertools.combinations(people_coords, 2))radius 10thickness 5font_scale 0.5font_thickness 1for x in x_combs:xyxy1, xyxy2 x[0], x[1]cntr1 ((int(xyxy1[2]) int(xyxy1[0])) // 2, (int(xyxy1[3]) int(xyxy1[1])) // 2)cntr2 ((int(xyxy2[2]) int(xyxy2[0])) // 2, (int(xyxy2[3]) int(xyxy2[1])) // 2)dist ((cntr2[0] - cntr1[0]) ** 2 (cntr2[1] - cntr1[1]) ** 2) ** 0.5if dist dist_thres_lim[0] and dist dist_thres_lim[1]:count_list[1] 1color (0, 255, 0)label Mild aggregationcv2.line(img, cntr1, cntr2, color, thickness)if already_red[cntr1] 0:cv2.circle(img, cntr1, radius, color, -1)if already_red[cntr2] 0:cv2.circle(img, cntr2, radius, color, -1)dist_text f{dist/200:.2f} m # Format distance to 2 decimal placesdist_text_pos ((cntr1[0] cntr2[0]) // 2, (cntr1[1] cntr2[1]) // 2 -10)cv2.putText(img, dist_text, dist_text_pos, cv2.FONT_HERSHEY_SIMPLEX, font_scale, color, font_thickness)elif dist dist_thres_lim[0]:count_list[0] 1color (0, 0, 255)label Severe aggregationalready_red[cntr1] 1already_red[cntr2] 1cv2.line(img, cntr1, cntr2, color, thickness)cv2.circle(img, cntr1, radius, color, -1)cv2.circle(img, cntr2, radius, color, -1)dist_text f{dist/200:.2f} m # Format distance to 2 decimal placesdist_text_pos ((cntr1[0] cntr2[0]) // 2, (cntr1[1] cntr2[1]) // 2 -10)cv2.putText(img, dist_text, dist_text_pos, cv2.FONT_HERSHEY_SIMPLEX, font_scale, color, font_thickness)else:count_list[2] 1return count_listclass FruitDetector:def __init__(self, img_path):self.img cv2.imread(img_path, cv2.IMREAD_COLOR)self.gray cv2.cvtColor(self.img, cv2.COLOR_BGR2GRAY)def detect(self):# 边缘检测edges cv2.Canny(self.gray, 100, 200)# 特征提取contours, _ cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)areas [cv2.contourArea(c) for c in contours]max_index np.argmax(areas)cnt contours[max_index]# 阈值分割mask np.zeros_like(self.gray)cv2.drawContours(mask, [cnt], 0, 255, -1)thresh cv2.threshold(self.gray, 0, 255, cv2.THRESH_BINARY cv2.THRESH_OTSU)[1]mask cv2.bitwise_and(mask, thresh)# 开运算闭运算kernel cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))opening cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)closing cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel)# 绘制边框x, y, w, h cv2.boundingRect(closing)cv2.rectangle(self.img, (x, y), (x w, y h), (0, 255, 0), 2)return self.img该程序文件名为ui.py主要功能如下 导入了一系列的库包括argparse、platform、shutil、time、numpy、os、sys、pathlib、cv2、PyQt5等。 定义了一些函数包括plot_dots_on_people函数用于在图像上绘制人的中心点distancing函数用于计算人与人之间的距离MyWidget类用于创建一个提示框FruitDetector类用于水果检测load_model函数用于加载模型run函数用于运行模型进行目标检测。 det函数是主要的函数用于进行目标检测。它接收一个参数info1表示图像路径。在函数内部首先调用load_model函数加载模型然后调用FruitDetector类进行水果检测最后调用run函数进行目标检测。函数返回目标检测结果和处理后的图像。 5.2 models\common.py import torch.nn as nnclass Conv(nn.Module):# Standard convolutiondef __init__(self, c1, c2, k1, s1, pNone, g1, actTrue): # ch_in, ch_out, kernel, stride, padding, groupssuper().__init__()self.conv nn.Conv2d(c1, c2, k, s, autopad(k, p), groupsg, biasFalse)self.bn nn.BatchNorm2d(c2)self.act nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity())def forward(self, x):return self.act(self.bn(self.conv(x)))def forward_fuse(self, x):return self.act(self.conv(x))class DWConv(Conv):# Depth-wise convolution classdef __init__(self, c1, c2, k1, s1, actTrue): # ch_in, ch_out, kernel, stride, padding, groupssuper().__init__(c1, c2, k, s, gmath.gcd(c1, c2), actact)class TransformerLayer(nn.Module):# Transformer layer https://arxiv.org/abs/2010.11929 (LayerNorm layers removed for better performance)def __init__(self, c, num_heads):super().__init__()self.q nn.Linear(c, c, biasFalse)self.k nn.Linear(c, c, biasFalse)self.v nn.Linear(c, c, biasFalse)self.ma nn.MultiheadAttention(embed_dimc, num_headsnum_heads)self.fc1 nn.Linear(c, c, biasFalse)self.fc2 nn.Linear(c, c, biasFalse)def forward(self, x):x self.ma(self.q(x), self.k(x), self.v(x))[0] xx self.fc2(self.fc1(x)) xreturn xclass TransformerBlock(nn.Module):# Vision Transformer https://arxiv.org/abs/2010.11929def __init__(self, c1, c2, num_heads, num_layers):super().__init__()self.conv Noneif c1 ! c2:self.conv Conv(c1, c2)self.linear nn.Linear(c2, c2) # learnable position embeddingself.tr nn.Sequential(*(TransformerLayer(c2, num_heads) for _ in range(num_layers)))self.c2 c2def forward(self, x):if self.conv is not None:x self.conv(x)b, _, w, h x.shapep x.flatten(2).permute(2, 0, 1)return self.tr(p self.linear(p)).permute(1, 2, 0).reshape(b, self.c2, w, h)class Bottleneck(nn.Module):# Standard bottleneckdef __init__(self, c1, c2, shortcutTrue, g1, e0.5): # ch_in, ch_out, shortcut, groups, expansionsuper().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, 1, 1)self.cv2 Conv(c_, c2, 3, 1, gg)self.add shortcut and c1 c2def forward(self, x):return x self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))class BottleneckCSP(nn.Module):# CSP Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworksdef __init__(self, c1, c2, n1, shortcutTrue, g1, e0.5): # ch_in, ch_out, number, shortcut, groups, expansionsuper().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, 1, 1)self.cv2 nn.Conv2d(c1, c_, 1, 1, biasFalse)self.cv3 nn.Conv2d(c_, c_, 1, 1, biasFalse)self.cv4 Conv(2 * c_, c2, 1, 1)self.bn nn.BatchNorm2d(2 * c_) # applied to cat(cv2, cv3)self.act nn.SiLU()self.m nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e1.0) for _ in range(n)))def forward(self, x):y1 self.cv3(self.m(self.cv1(x)))y2 self.cv2(x)return self.cv4(self.act(self.bn(torch.cat((y1, y2), dim1))))class C3(nn.Module):# CSP Bottleneck with 3 convolutionsdef __init__(self, c1, c2, n1, shortcutTrue, g1, e0.5): # ch_in, ch_out, number, shortcut, groups, expansionsuper().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, 1, 1)self.cv2 Conv(c1, c_, 1, 1)self.cv3 Conv(2 * c_, c2, 1) # actFReLU(c2)self.m nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e1.0) for _ in range(n)))# self.m nn.Sequential(*[CrossConv(c_, c_, 3, 1, g, 1.0, shortcut) for _ in range(n)])def forward(self, x):return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim1))class C3TR(C3):# C3 module with TransformerBlock()def __init__(self, c1, c2, n1, shortcutTrue, g1, e0.5):super().__init__(c1, c2, n, shortcut, g, e)c_ int(c2 * e)self.m TransformerBlock(c_, c_, 4, n)class C3SPP(C3):# C3 module with SPP()def __init__(self, c1这个程序文件是YOLOv5的一个模块包含了一些常用的函数和类。其中包括了一些卷积操作的类如Conv、DWConv、Bottleneck等还有一些特殊的模块如TransformerLayer、TransformerBlock、C3等。这些模块可以用于构建YOLOv5的网络结构。此外还包括了一些辅助函数和工具类如autopad、make_divisible、non_max_suppression等。整个文件的代码结构比较清晰每个类和函数都有相应的注释说明其功能和用法。 5.3 models\experimental.py import math import numpy as np import torch import torch.nn as nnclass CrossConv(nn.Module):# Cross Convolution Downsampledef __init__(self, c1, c2, k3, s1, g1, e1.0, shortcutFalse):# ch_in, ch_out, kernel, stride, groups, expansion, shortcutsuper().__init__()c_ int(c2 * e) # hidden channelsself.cv1 Conv(c1, c_, (1, k), (1, s))self.cv2 Conv(c_, c2, (k, 1), (s, 1), gg)self.add shortcut and c1 c2def forward(self, x):return x self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))class Sum(nn.Module):# Weighted sum of 2 or more layers https://arxiv.org/abs/1911.09070def __init__(self, n, weightFalse): # n: number of inputssuper().__init__()self.weight weight # apply weights booleanself.iter range(n - 1) # iter objectif weight:self.w nn.Parameter(-torch.arange(1.0, n) / 2, requires_gradTrue) # layer weightsdef forward(self, x):y x[0] # no weightif self.weight:w torch.sigmoid(self.w) * 2for i in self.iter:y y x[i 1] * w[i]else:for i in self.iter:y y x[i 1]return yclass MixConv2d(nn.Module):# Mixed Depth-wise Conv https://arxiv.org/abs/1907.09595def __init__(self, c1, c2, k(1, 3), s1, equal_chTrue): # ch_in, ch_out, kernel, stride, ch_strategysuper().__init__()n len(k) # number of convolutionsif equal_ch: # equal c_ per groupi torch.linspace(0, n - 1E-6, c2).floor() # c2 indicesc_ [(i g).sum() for g in range(n)] # intermediate channelselse: # equal weight.numel() per groupb [c2] [0] * na np.eye(n 1, n, k-1)a - np.roll(a, 1, axis1)a * np.array(k) ** 2a[0] 1c_ np.linalg.lstsq(a, b, rcondNone)[0].round() # solve for equal weight indices, ax bself.m nn.ModuleList([nn.Conv2d(c1, int(c_), k, s, k // 2, groupsmath.gcd(c1, int(c_)), biasFalse) for k, c_ in zip(k, c_)])self.bn nn.BatchNorm2d(c2)self.act nn.SiLU()def forward(self, x):return self.act(self.bn(torch.cat([m(x) for m in self.m], 1)))class Ensemble(nn.ModuleList):# Ensemble of modelsdef __init__(self):super().__init__()def forward(self, x, augmentFalse, profileFalse, visualizeFalse):y []for module in self:y.append(module(x, augment, profile, visualize)[0])# y torch.stack(y).max(0)[0] # max ensemble# y torch.stack(y).mean(0) # mean ensembley torch.cat(y, 1) # nms ensemblereturn y, None # inference, train outputdef attempt_load(weights, map_locationNone, inplaceTrue, fuseTrue):from models.yolo import Detect, Model# Loads an ensemble of models weights[a,b,c] or a single model weights[a] or weightsamodel Ensemble()for w in weights if isinstance(weights, list) else [weights]:ckpt torch.load(attempt_download(w), map_locationmap_location) # loadif fuse:model.append(ckpt[ema if ckpt.get(ema) else model].float().fuse().eval()) # FP32 modelelse:model.append(ckpt[ema if ckpt.get(ema) else model].float().eval()) # without layer fuse# Compatibility updatesfor m in model.modules():if type(m) in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU, Detect, Model]:m.inplace inplace # pytorch 1.7.0 compatibilityif type(m) is Detect:if not isinstance(m.anchor_grid, list): # new Detect Layer compatibilitydelattr(m, anchor_grid)setattr(m, anchor_grid, [torch.zeros(1)] * m.nl)elif type(m) is Conv:m._non_persistent_buffers_set set() # pytorch 1.6.0 compatibilityif len(model) 1:return model[-1] # return modelelse:print(fEnsemble created with {weights}\n)for k in [names]:setattr(model, k, getattr(model[-1], k))model.stride model[torch.argmax(torch.tensor([m.stride.max() for m in model])).int()].stride # max stridereturn model # return ensemble这个程序文件是YOLOv5的实验模块。文件中定义了几个自定义的模块和函数包括 CrossConv交叉卷积下采样模块。Sum多个层的加权和模块。MixConv2d混合深度卷积模块。Ensemble模型集合模块。attempt_load加载模型权重的函数。 其中CrossConv模块实现了交叉卷积下采样操作Sum模块实现了多个层的加权和操作MixConv2d模块实现了混合深度卷积操作Ensemble模块实现了模型集合操作attempt_load函数用于加载模型权重。 整个程序文件是YOLOv5的实验模块的实现包含了一些自定义的模块和函数用于构建和加载YOLOv5模型。 5.4 models\tf.py class YOLOv5:def __init__(self, weights):self.weights weightsself.model self._build_model()def _build_model(self):# ... (code for building the model)def detect(self, image):# ... (code for detecting objects in an image)yolov5 YOLOv5(yolov5s.pt) image load_image(image.jpg) objects yolov5.detect(image)这是一个使用TensorFlow和Keras实现的YOLOv5模型。它包含了YOLOv5的各个组件如C3、SPP、Bottleneck等。该模型可以用于目标检测任务并可以导出为SavedModel、PB、TFLite和TFJS格式。 该模型定义了一系列的自定义层如TFBN、TFPad、TFConv等用于替代PyTorch中的对应层。这些自定义层使用TensorFlow和Keras的API实现了与PyTorch中对应层相似的功能。 TFDetect是该模型的检测层用于将模型的输出转换为检测结果。它根据模型的输出计算出目标的位置和类别并将结果返回。 该模型还包含了一些辅助函数和工具类用于处理数据和辅助模型的训练和推理过程。 该模型可以通过命令行参数指定权重文件并可以导出为不同的格式。 5.5 models\yolo.py class Model(nn.Module):def __init__(self, cfgyolov5s.yaml, ch3, ncNone, anchorsNone): # model, input channels, number of classessuper().__init__()if isinstance(cfg, dict):self.yaml cfg # model dictelse: # is *.yamlimport yaml # for torch hubself.yaml_file Path(cfg).namewith open(cfg, encodingascii, errorsignore) as f:self.yaml yaml.safe_load(f) # model dict# Define modelch self.yaml[ch] self.yaml.get(ch, ch) # input channelsif nc and nc ! self.yaml[nc]:LOGGER.info(fOverriding model.yaml nc{self.yaml[nc]} with nc{nc})self.yaml[nc] nc # override yaml valueif anchors:LOGGER.info(fOverriding model.yaml anchors with anchors{anchors})self.yaml[anchors] round(anchors) # override yaml valueself.model, self.save parse_model(deepcopy(self.yaml), ch[ch]) # model, savelistself.names [str(i) for i in range(self.yaml[nc])] # default namesself.inplace self.yaml.get(inplace, True)# Build strides, anchorsm self.model[-1] # Detect()if isinstance(m, Detect):s 256 # 2x min stridem.inplace self.inplacem.stride torch.tensor([s / x.shape[-2] for x in self.forward(torch.zeros(1, ch, s, s))]) # forwardm.anchors / m.stride.view(-1, 1, 1)check_anchor_order(m)self.stride m.strideself._initialize_biases() # only run once# Init weights, biasesinitialize_weights(self)self.info()LOGGER.info()def forward(self, x, augmentFalse, profileFalse, visualizeFalse):if augment:return self._forward_augment(x) # augmented inference, Nonereturn self._forward_once(x, profile, visualize) # single-scale inference, traindef _forward_augment(self, x):img_size x.shape[-2:] # height, widths [1, 0.83, 0.67] # scalesf [None, 3, None] # flips (2-ud, 3-lr)y [] # outputsfor si, fi in zip(s, f):xi scale_img(x.flip(fi) if fi else x, si, gsint(self.stride.max()))yi self._forward_once(xi)[0] # forward# cv2.imwrite(fimg_{si}.jpg, 255 * xi[0].cpu().numpy().transpose((1, 2, 0))[:, :, ::-1]) # saveyi self._descale_pred(yi, fi, si, img_size)y.append(yi)y self._clip_augmented(y) # clip augmented tailsreturn torch.cat(y, 1), None # augmented inference, traindef _forward_once(self, x, profileFalse, visualizeFalse):y, dt [], [] # outputsfor m in self.model:if m.f ! -1: # if not from previous layerx y[m.f] if isinstance(m.f, int) else [x if j -1 else y[j] for j in m.f] # from earlier layersif profile:self._profile_one_layer(m, x, dt)x m(x) # runy.append(x if m.i in self.save else None) # save outputif visualize:feature_visualization(x, m.type, m.i, save_dirvisualize)return xdef _descale_pred(self, p, flips, scale, img_size):# de-scale predictions following augmented inference (inverse operation)if self.inplace:p[..., :4] / scale # de-scaleif flips 2:p[..., 1] img_size[0] - p[..., 1] # de-flip udelif flips 3:p[..., 0] img_size[1] - p[..., 0] # de-flip lrelse:x, y, wh p[..., 0:1] / scale, p[..., 1:2] / scale, p[..., 2:4] / scale # de-scaleif flips 2:y img_size[0] - y # de-flip udelif flips 3:x img_size[1] - x # de-flip lrp[..., 0:1] xp[..., 1:2] yp[..., 2:4] whreturn p这个程序文件是YOLOv5的一个实现用于目标检测任务。文件中定义了一些YOLO-specific的模块和类包括Detect和Model。 Detect类是一个继承自nn.Module的类用于执行目标检测的前向传播。它包含了一些与YOLO算法相关的操作如将输出转换为边界框的坐标和类别概率。 Model类是一个继承自nn.Module的类用于定义整个YOLOv5模型。它接受一个配置文件路径作为参数并根据配置文件构建模型。模型的结构和参数都在配置文件中定义。 除了这两个类文件中还包含了一些辅助函数和工具类用于模型的初始化、权重的初始化、输入图像的预处理等操作。 整个程序文件的作用是实现了YOLOv5模型的定义和前向传播过程。 5.6 models_init_.py 抱歉我无法理解你的问题。请提供更多的上下文和代码。 文件名models_init_.py 概述这个文件是一个Python模块的初始化文件用于定义和管理模型相关的类和函数。 代码概述 该文件中没有具体的代码实现而是作为一个包的初始化文件用于导入和管理模型相关的模块和类。 作用 导入其他模块该文件可以用于导入其他模块以便在其他文件中使用模型相关的类和函数。管理模型类和函数该文件可以用于定义和管理模型相关的类和函数使其在其他文件中可以方便地调用和使用。 注意事项 该文件必须位于一个名为models的包中并且必须包含一个名为init.py的文件以便将其作为一个包来导入和使用。该文件中的代码可以根据具体需求进行扩展和修改以满足项目的需求。 6.系统整体结构 根据以上分析该程序是一个基于深度学习的人脸测距和社交距离过近警报系统。它的整体功能是使用深度学习模型进行目标检测检测人脸并测量人与人之间的距离如果距离过近则触发警报。 下面是每个文件的功能的整理 文件路径功能概述ui.py提供用户界面用于展示检测结果和警报信息models\common.py包含YOLOv5模型的一些常用函数和类models\experimental.py包含YOLOv5的实验模块定义了一些自定义的模块和函数models\tf.py使用TensorFlow和Keras实现的YOLOv5模型models\yolo.pyYOLOv5模型的定义和前向传播过程models_init_.py模型相关类和函数的导入和管理tools\activations.py激活函数相关的工具函数tools\augmentations.py数据增强相关的工具函数tools\autoanchor.py自动锚框相关的工具函数tools\autobatch.py自动批处理相关的工具函数tools\callbacks.py回调函数相关的工具函数tools\datasets.py数据集相关的工具函数tools\downloads.py下载相关的工具函数tools\general.py通用的工具函数tools\loss.py损失函数相关的工具函数tools\metrics.py评估指标相关的工具函数tools\plots.py绘图相关的工具函数tools\torch_utils.pyPyTorch相关的工具函数tools_init_.py工具函数的导入和管理tools\aws\resume.pyAWS相关的工具函数用于恢复训练tools\aws_init_.pyAWS相关工具函数的导入和管理tools\flask_rest_api\example_request.pyFlask REST API的示例请求tools\flask_rest_api\restapi.pyFlask REST API的实现tools\loggers_init_.py日志记录器相关的工具函数的导入和管理tools\loggers\wandb\log_dataset.py使用WandB记录数据集的工具函数tools\loggers\wandb\sweep.py使用WandB进行超参数搜索的工具函数tools\loggers\wandb\wandb_utils.py使用WandB的工具函数tools\loggers\wandb_init_.pyWandB相关工具函数的导入和管理utils\activations.py激活函数相关的实用函数utils\augmentations.py数据增强相关的实用函数utils\autoanchor.py自动锚框相关的实用函数utils\autobatch.py自动批处理相关的实用函数utils\callbacks.py回调函数相关的实用函数utils\datasets.py数据集相关的实用函数utils\downloads.py下载相关的实用函数utils\general.py通用的实用函数utils\loss.py损失函数相关的实用函数utils\metrics.py评估指标相关的实用函数utils\plots.py绘图相关的实用函数utils\torch_utils.pyPyTorch相关的实用函数utils_init_.py实用函数的导入和管理utils\aws\resume.pyAWS相关的实用函数用于恢复训练utils\aws_init_.pyAWS相关实用函数的导入和管理utils\flask_rest_api\example_request.pyFlask REST API的示例请求utils\flask_rest_api\restapi.pyFlask REST API的实现utils\loggers_init_.py日志记录器相关的实用函数的导入和管理utils\loggers\wandb\log_dataset.py使用WandB记录数据集的实用函数utils\loggers\wandb\sweep.py使用WandB进行超参数搜索的实用函数utils\loggers\wandb\wandb_utils.py使用WandB的实用函数utils\loggers\wandb_init_.pyWandB相关实用函数的导入和管理 以上是每个文件的功能概述用于构建基于深度学习的人脸测距和社交距离过近警报系统所需的各种功能和工具函数。 7.系统整合 下图完整源码环境部署视频教程自定义UI界面 参考博客《基于深度学习的人脸测距社交距离过近警报系统》 8.参考文献 [1]汪珍珍,赵连玉,刘振忠.基于MATLAB与OpenCV相结合的双目立体视觉测距系统[J].天津理工大学学报.2013,(1).DOI:10.3969/j.issn.1673-095X.2013.01.012 . [2]夏茂盛,孟祥磊,宋占伟,等.基于双目视觉的嵌入式三维坐标提取系统[J].吉林大学学报信息科学版.2011,(1).DOI:10.3969/j.issn.1671-5896.2011.01.012 . [3]罗丹,廖志贤.基于OpenCV的双目立体视觉测距[J].大众科技.2011,(4).DOI:10.3969/j.issn.1008-1151.2011.04.022 . [4]孙霖,潘纲.人脸识别中视频回放假冒攻击的实时检测方法[J].电路与系统学报.2010,(2).DOI:10.3969/j.issn.1007-0249.2010.02.008 . [5]白明,庄严,王伟.双目立体匹配算法的研究与进展[J].控制与决策.2008,(7).DOI:10.3321/j.issn:1001-0920.2008.07.001 . [6]高庆吉,洪炳熔,阮玉峰.基于异构双目视觉的全自主足球机器人导航[J].哈尔滨工业大学学报.2003,(9).DOI:10.3321/j.issn:0367-6234.2003.09.002 . [7]井建辉,张振东,吴文琪.工业视觉系统中摄像机定标策略问题[J].河北工业大学学报.2003,(6).DOI:10.3969/j.issn.1007-2373.2003.06.020 . [8]李健,史进.基于OpenCV的三维重建研究[J].微电子学与计算机.2008,(12). [9]汪珍珍.基于MATLAB与OpenCV相结合的双目立体视觉测距系统[J].天津理工大学.2013. [10]邓小铭.基于OpenCV的物体三维检测系统研究[J].南昌航空大学.2010.
http://www.yutouwan.com/news/362311/

相关文章:

  • 开发网站备案域名指向一个网站
  • 化州 网站建设如何办网站 论坛
  • 做视频网站 视频放在哪里找西安seo全网营销
  • 怎么申请免费国内免费网站邢台做网站优化费用
  • 网站建设和wordpress登录下载附件
  • 建站哪家公司比较好而且不贵做平面设计图的网站
  • 购物网站制作公司外发加工网官网
  • 做网站贵吗自己的电脑做网站
  • 2000做网站贵么仿卢松松博客wordpress
  • 企业网站制作素材微信网站制作方案
  • 用什么程序做网站最好优化微商如何引流与推广
  • 电子商务网站开发公司野望是什么意思
  • 网站用社交图标做链接侵权吗自己想建设一个网站
  • 国外 设计 网站做笑话网站赚钱
  • 森动网网站建设好吗2345浏览器网站进入
  • 建设银行信用卡网站是哪个好佛山网站建设排名
  • 2021能看的网站不要app贴吧邹平建设局官方网站
  • 威海市城乡建设局网站怎么导出wordpress 整个网站
  • 网站开发与优化课程总结深圳建设一个网站制作公司
  • 长春网上建设网站网站上添加子栏目
  • 腾讯云服务器怎么做网站怎么做提卡网站
  • 做网站的叫什么职位广州做护肤品的网站
  • 河南省建设厅官方网站李学军江西建设信息港网站
  • 做地产网站企业网络安全方案
  • 无代码网站建设网络虚拟号
  • 老城网站建设wordpress控制上下页链接
  • 广东做网站公司东莞头条最近15天新闻
  • 网站建设灬金手指下拉十四用糖做的网站
  • 扬州建设公司网站益阳做网站
  • 网站开发设计总结及心得体会哪个网站专业做饲料