我的网站是面向全国的选哪个公司的服务器比较好长沙外贸网站

张小明 2026/1/10 6:04:49
我的网站是面向全国的选哪个公司的服务器比较好,长沙外贸网站,科技小发明,wordpress添加底部导航1 前言 #x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升#xff0c;传统的毕设题目缺少创新和亮点#xff0c;往往达不到毕业答辩的要求#xff0c;这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。并且很难找到完整的毕设参考学习资料。 …1 前言这两年开始毕业设计和毕业答辩的要求和难度不断提升传统的毕设题目缺少创新和亮点往往达不到毕业答辩的要求这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。并且很难找到完整的毕设参考学习资料。为了大家能够顺利以及最少的精力通过毕设学长分享优质毕业设计项目提供大家参考学习今天要分享的是基于深度学习YOLO抽烟行为检测学长这里给一个题目综合评分(每项满分5分)难度系数3分工作量3分创新点4分选题指导, 项目分享见文末1 课题背景公共场合抽烟的危害很大国家也相应地出台了在公共场合禁烟的政策。以前实行相关的政策都是靠工作人员巡逻发现并出言禁止这样做效率很低下。计算机视觉领域发展迅速而抽烟检测也属于一种计算机视觉目标检测的行为可以采用目标检测的方法来实现。目前目标检测在很多领域都取得显著成就但是在抽烟检测领域方面进行研究却几乎没有。该研究可以有效节省成本对公共场合禁烟政策的实行有很大的推动作用。2 实现效果左图为原图右图为推理后的图片以图片方式展示视频流和实时流也能达到这个效果由于视频转GIF大小原因这里暂不演示。3 Yolov5算法3.1 简介YOLO系列是基于深度学习的回归方法。该系列陆续诞生出YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5。YOLOv5算法它是一种单阶段目标检测的算法该算法可以根据落地要求灵活地通过chaneel和layer的控制因子来配置和调节模型所以在比赛和落地中应用比较多。同时它有YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s四种模型。具有以下优点在pytorch环境下编写可以很容易编译成ON⁃NX和Core ML;运行速度很快每秒可以达到140FPS的速度模型精度高集成了YOLOv3和YOLOv4的部分优秀特性进行了推陈出新的改进。3.2 相关技术Mosaic数据增强Mosaic数据增强技术采用了四张图片的随机缩放、随机剪裁、随机排布的方式对数据进行拼接相比CutMix数据增强多用了两张图片。在目标识别过程中要识别的目标有大目标、中等目标、小目标并且三种目标的占比例不均衡其中小目标的数量是最多的但是出现的频率很低这种情况就会导致在bp时对小目标的优化不足模型正确识别小目标的难度比识别中、大目标的难度要大很多于是对于小目标来说很容易出现误检和漏检的情况。Mosaic数据增强技术做出改进后上述的问题得到有效的解决。该技术的优点是丰富了数据集采用“三个随机”的方式对数据进行拼接丰富了检测的数据集尤其是随机缩放增加了很多小目标克服了小目标的不足让网络的鲁棒性得到提高减少GPU的使用在Mosaic增强训练时四张图片拼接在一起GPU可以直接计算四张图片的数据让Mini-batch的大小减少了很多这使得一个GPU就可以达到比较可观的效果。自适应anchor自适应anchor是checkanchors函数通过遗传算法与Kmeans迭代算出的最大可能召回率的anchor组合。在网络模型的训练过程中网络在初始化的锚框的基础上输出预测框然后与真实框groundtruth进行对比计算两个框之间的差值再根据差值进行反向更新迭代网络参数最后求出最佳的锚框值。自适应的anchor能够更好地配合网络训练提高模型的精度减少对anchor的设计难度具有很好的实用性。自适应图片缩放为了提高模型的推理速度YOLOv5提出自适应图片缩放根据长宽比对图像进行缩放并添加最少的黑边减少计算量。该方法是用缩放后的长边减去短边再对32进行取余运算求出padding。在训练时并没有采用缩减黑边的方法该方法只是在测试模型推理的时候才使用这样提高了目标检测的准确率和速度。Focus结构该结构采用切片操作将特征切片成四份每一份将当成下采样的特征然后在channel维度进行concat。例如原始6086083的数据图片经过切片操作先变成30430412的特征图再经过一次32个卷积核的卷积操作变成30430432的特征图。CSP结构YOLOv5中的CSP[5]结构应用于两处一处是CSP1X结构应用于Backbone的主干网络中另一处的CSP2X结构应用于Neck中用于加强网络的特征融合的能力。CSPNet主要从网络结构设计的角度解决推理中从计算量很大的问题。该结构的优点有1)增强CNN的学习能力使得模型在轻量化的同时保持较高的准确性2)减低计算的瓶颈问题3)减低内存的分险。PFNPAN结构这个结构是FPN和PAN的联合。FPN是自顶向下的将高层的特征信息通过上采样的方式进行传递融合得到进行预测的特征图而PAN正好与FPN的方向是相反的方向它是自底向上地采取特征信息。两个结构各自从不同的主干层对不同的检测层进行参数聚合。两个结构的强强联合让得到的特征图的特征更加明显和清楚。Bounding box的损失函数Bounding box损失函数[6]增加了相交尺度的衡量方式有效缓解了当两个框不相交和两个框大小完全相同的两种特殊情况。因为当预测框和目标框不相交时IOU0无法反应两个框距离的远近的时候此时的损失函数不可导两个框大小完全相同两个IOU也相同IOULOSS无法区分以上两种特殊情况。nms非极大值抑制在目标检测过程的后续处理中对于大量的目标框的筛选问题通常会进行nms操作以此来达到一个不错的效果。YO⁃LOv5算法同样采用了加权的nms操作。4 数据集处理及实验数据集准备由于目前针对吸烟图片并没有现成的数据集我们使用Python爬虫利用关键字在互联网上获得的图片数据编写程序爬了1w张筛选下来有近1000张可用以及其他途径获取到的暂时可用数据集有5k张深度学习图像标注软件众多按照不同分类标准有多中类型本文使用LabelImg单机标注软件进行标注。LabelImg是基于角点的标注方式产生边界框对图片进行标注得到xml格式的标注文件由于边界框对检测精度的影响较大因此采用手动标注并没有使用自动标注软件。考虑到有的朋友时间不足博主提供了标注好的数据集和训练好的模型需要请联系。数据标注简介通过pip指令即可安装pip install labelimg在命令行中输入labelimg即可打开5 部分核心代码# data/smoke.yaml# COCO 2017 dataset http://cocodataset.org# Download command: bash yolov5/data/get_coco2017.sh# Train command: python train.py --data ./data/coco.yaml# Dataset should be placed next to yolov5 folder:# /parent_folder# /coco# /yolov5# train and val datasets (image directory or *.txt file with image paths)train:data\train.txt# 上面我们生成的train根据自己的路径进行更改val:data\test.txt# 上面我们生成的test#test: ../coco/test-dev2017.txt # 20k images for submission to https://competitions.codalab.org/competitions/20794# number of classesnc:1#训练的类别# class namesnames:[smoke]# Print classes# with open(data/coco.yaml) as f:# d yaml.load(f, Loaderyaml.FullLoader) # dict# for i, x in enumerate(d[names]):# print(i, x)# model/yolov5s.yaml# parametersnc:1# number of classesdepth_multiple:0.33# model depth multiplewidth_multiple:0.50# layer channel multiple# anchorsanchors:-[116,90,156,198,373,326]# P5/32-[30,61,62,45,59,119]# P4/16-[10,13,16,30,33,23]# P3/8# YOLOv5 backbonebackbone:# [from, number, module, args][[-1,1,Focus,[64,3]],# 0-P1/2[-1,1,Conv,[128,3,2]],# 1-P2/4[-1,3,BottleneckCSP,[128]],[-1,1,Conv,[256,3,2]],# 3-P3/8[-1,9,BottleneckCSP,[256]],[-1,1,Conv,[512,3,2]],# 5-P4/16[-1,9,BottleneckCSP,[512]],[-1,1,Conv,[1024,3,2]],# 7-P5/32[-1,1,SPP,[1024,[5,9,13]]],]# YOLOv5 headhead:[[-1,3,BottleneckCSP,[1024,False]],# 9[-1,1,Conv,[512,1,1]],[-1,1,nn.Upsample,[None,2,nearest]],[[-1,6],1,Concat,[1]],# cat backbone P4[-1,3,BottleneckCSP,[512,False]],# 13[-1,1,Conv,[256,1,1]],[-1,1,nn.Upsample,[None,2,nearest]],[[-1,4],1,Concat,[1]],# cat backbone P3[-1,3,BottleneckCSP,[256,False]],[-1,1,nn.Conv2d,[na*(nc5),1,1]],# 18 (P3/8-small)[-2,1,Conv,[256,3,2]],[[-1,14],1,Concat,[1]],# cat head P4[-1,3,BottleneckCSP,[512,False]],[-1,1,nn.Conv2d,[na*(nc5),1,1]],# 22 (P4/16-medium)[-2,1,Conv,[512,3,2]],[[-1,10],1,Concat,[1]],# cat head P5[-1,3,BottleneckCSP,[1024,False]],[-1,1,nn.Conv2d,[na*(nc5),1,1]],# 26 (P5/32-large)[[],1,Detect,[nc,anchors]],# Detect(P5, P4, P3)]# 训练部分主函数if__name____main__:check_git_status()parserargparse.ArgumentParser()parser.add_argument(--epochs,typeint,default300)parser.add_argument(--batch-size,typeint,default16)parser.add_argument(--cfg,typestr,defaultmodels/yolov5s.yaml,help*.cfg path)parser.add_argument(--data,typestr,defaultdata/smoke.yaml,help*.data path)parser.add_argument(--img-size,nargs,typeint,default[640,640],helptrain,test sizes)parser.add_argument(--rect,actionstore_true,helprectangular training)parser.add_argument(--resume,actionstore_true,helpresume training from last.pt)parser.add_argument(--nosave,actionstore_true,helponly save final checkpoint)parser.add_argument(--notest,actionstore_true,helponly test final epoch)parser.add_argument(--noautoanchor,actionstore_true,helpdisable autoanchor check)parser.add_argument(--evolve,actionstore_true,helpevolve hyperparameters)parser.add_argument(--bucket,typestr,default,helpgsutil bucket)parser.add_argument(--cache-images,actionstore_true,helpcache images for faster training)parser.add_argument(--weights,typestr,default,helpinitial weights path)parser.add_argument(--name,default,helprenames results.txt to results_name.txt if supplied)parser.add_argument(--device,default0,helpcuda device, i.e. 0 or 0,1,2,3 or cpu)parser.add_argument(--adam,actionstore_true,helpuse adam optimizer)parser.add_argument(--multi-scale,actionstore_true,helpvary img-size /- 50%)parser.add_argument(--single-cls,actionstore_true,helptrain as single-class dataset)optparser.parse_args()opt.weightslastifopt.resumeelseopt.weights opt.cfgcheck_file(opt.cfg)# check fileopt.datacheck_file(opt.data)# check fileprint(opt)opt.img_size.extend([opt.img_size[-1]]*(2-len(opt.img_size)))# extend to 2 sizes (train, test)devicetorch_utils.select_device(opt.device,apexmixed_precision,batch_sizeopt.batch_size)ifdevice.typecpu:mixed_precisionFalse# Trainifnotopt.evolve:tb_writerSummaryWriter(commentopt.name)print(Start Tensorboard with tensorboard --logdirruns, view at http://localhost:6006/)train(hyp)# Evolve hyperparameters (optional)else:tb_writerNoneopt.notest,opt.nosaveTrue,True# only test/save final epochifopt.bucket:os.system(gsutil cp gs://%s/evolve.txt .%opt.bucket)# download evolve.txt if existsfor_inrange(10):# generations to evolveifos.path.exists(evolve.txt):# if evolve.txt exists: select best hyps and mutate# Select parent(s)parentsingle# parent selection method: single or weightedxnp.loadtxt(evolve.txt,ndmin2)nmin(5,len(x))# number of previous results to considerxx[np.argsort(-fitness(x))][:n]# top n mutationswfitness(x)-fitness(x).min()# weightsifparentsingleorlen(x)1:# x x[random.randint(0, n - 1)] # random selectionxx[random.choices(range(n),weightsw)[0]]# weighted selectionelifparentweighted:x(x*w.reshape(n,1)).sum(0)/w.sum()# weighted combination# Mutatemp,s0.9,0.2# mutation probability, sigmanprnp.random npr.seed(int(time.time()))gnp.array([1,1,1,1,1,1,1,0,.1,1,0,1,1,1,1,1,1,1])# gainsnglen(g)vnp.ones(ng)whileall(v1):# mutate until a change occurs (prevent duplicates)v(g*(npr.random(ng)mp)*npr.randn(ng)*npr.random()*s1).clip(0.3,3.0)fori,kinenumerate(hyp.keys()):# plt.hist(v.ravel(), 300)hyp[k]x[i7]*v[i]# mutate# Clip to limitskeys[lr0,iou_t,momentum,weight_decay,hsv_s,hsv_v,translate,scale,fl_gamma]limits[(1e-5,1e-2),(0.00,0.70),(0.60,0.98),(0,0.001),(0,.9),(0,.9),(0,.9),(0,.9),(0,3)]fork,vinzip(keys,limits):hyp[k]np.clip(hyp[k],v[0],v[1])# Train mutationresultstrain(hyp.copy())# Write mutation resultsprint_mutation(hyp,results,opt.bucket)# Plot results# plot_evolution_results(hyp)** 项目分享:大家可自取用于参考学习获取方式见文末!**s
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设网站细节2021友情链接qq群

Sketch MeaXure插件:设计师必备的智能标注工具 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure Sketch MeaXure是一款专为设计师打造的开源标注与切图插件,基于TypeScript开发,完美适配…

张小明 2026/1/1 4:33:10 网站建设

商业网站建设试题鞋子的网站策划方案模板

这篇文章将解释一个彻底颠覆传统互联网思维的现象:为什么下载的人越多,速度反而越快?P2P 技术 (BitTorrent):人人为我,我为人人 在传统的互联网世界里(比如 HTTP 下载),服务器是**“…

张小明 2026/1/1 1:04:39 网站建设

网站框架江西网站开发的公司

141. 环形链表 141. 环形链表 这个题就是滑冰的时候的兔子战术,等快的链表和慢的链表相等的时候说明必有环。 题目: 题解: /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode…

张小明 2026/1/1 3:09:31 网站建设

五河网站建设哪家好网站如何做百度推广方案

LobeChat:开源AI聊天框架的技术演进与落地实践 在大模型技术席卷全球的今天,我们早已不再惊讶于AI能写诗、编程或解答复杂问题。真正决定用户体验的,反而不再是底层模型本身,而是那个每天被点击无数次的——聊天窗口。 当OpenAI用…

张小明 2026/1/1 2:37:57 网站建设

网站开发合同要注意哪些南京手机app开发公司

FastGPT智能对话管理:3个关键步骤实现多轮对话流畅体验 【免费下载链接】FastGPT labring/FastGPT: FastGPT 是一个基于PyTorch实现的快速版GPT(Generative Pretrained Transformer)模型,可能是为了优化训练速度或资源占用而设计的…

张小明 2026/1/5 10:51:24 网站建设

id注册网站做内部优惠券网站

这篇文章详细介绍了 K6 中的 HTTP 请求(http request)功能,解析了常用的性能指标和检查功能。通过 HTTP 请求模拟用户行为,了解性能指标以评估系统响应。文章还深入讲解了如何配置和执行检查,确保性能符合预期标准。无…

张小明 2025/12/30 21:36:01 网站建设