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

建站套餐推荐在线制作图片热区

建站套餐推荐,在线制作图片热区,1核做网站,企业培训机构排名前十简介#xff1a; 今天开启深度学习另一板块。就是计算机视觉方向#xff0c;这里主要讨论图像分类任务–垃圾分类系统。其实这个项目早在19年的时候#xff0c;我就写好了一个版本了。之前使用的是python搭建深度学习网络#xff0c;然后前后端交互的采用的是java spring …简介 今天开启深度学习另一板块。就是计算机视觉方向这里主要讨论图像分类任务–垃圾分类系统。其实这个项目早在19年的时候我就写好了一个版本了。之前使用的是python搭建深度学习网络然后前后端交互的采用的是java spring MVC来写的。之前感觉还挺好的但是使用起来还比较困难的。不光光需要有python的基础同时还需要有一定的java的基础。尤其是搭建java的环境还是很烦的。最近刚好有空就给这个项目拿了过来优化了一下本次优化主要涉及前后端界面交互的优化另外一条就是在模型的识别性能上的优化提高模型的识别速度。 展示 下面是项目的初始化界面 使用本系统的话也是比较简单的点击选择文件按钮选择需要识别的图片数据。然后再点击开始识别就可以识别了 识别结果如下 实际的使用请看下面的视频 深度学习项目实战垃圾分类系统 项目实现思路 项目主要分为两块第一块是深度学习模块另一块呢就是系统的使用界面了。 1、深度学习模块 先说第一个模块也就是深度学习模块这块的主体呢其实就是深度学习的网络的搭建以及模型的训练还有就是模型的使用了。 深度学习网络的我主要使用的是ResNet的网络结构使用这个网络结构来实现四分类的垃圾分类的任务肯定是可以的。同时呢在训练模型的时候我这里又使用了一些调参的手法–迁移学习。为什么要使用迁移学习呢由于ResNet在图像任务上表现的是比较出色的同时我们的任务也是图像分类所以呢是可以使用ResNet来进行迁移学习的。 下面是相关代码: import torch from torch import nn from torch.nn import functional as Fclass ResBlk(nn.Module):def __init__(self, ch_in, ch_out, stride1):super(ResBlk, self).__init__()self.conv1 nn.Conv2d(ch_in, ch_out, kernel_size3, stridestride, padding1)self.bn1 nn.BatchNorm2d(ch_out)self.conv2 nn.Conv2d(ch_out, ch_out, kernel_size3, stride1, padding1)self.bn2 nn.BatchNorm2d(ch_out)self.extra nn.Sequential()if ch_out ! ch_in:self.extra nn.Sequential(nn.Conv2d(ch_in, ch_out, kernel_size1, stridestride),nn.BatchNorm2d(ch_out))def forward(self, x):out F.relu(self.bn1(self.conv1(x)))out self.bn2(self.conv2(out))out self.extra(x) outout F.relu(out)return outclass ResNet18(nn.Module):def __init__(self, num_class):super(ResNet18, self).__init__()self.conv1 nn.Sequential(nn.Conv2d(3, 16, kernel_size3, stride3, padding0),nn.BatchNorm2d(16))self.blk1 ResBlk(16, 32, stride3)self.blk2 ResBlk(32, 64, stride3)self.blk3 ResBlk(64, 128, stride2)self.blk4 ResBlk(128, 256, stride2)self.outlayer nn.Linear(256*3*3, num_class)def forward(self, x):x F.relu(self.conv1(x))x self.blk1(x)x self.blk2(x)x self.blk3(x)x self.blk4(x)# print(x.shape)x x.view(x.size(0), -1)x self.outlayer(x)return xdef main():blk ResBlk(64, 128)tmp torch.randn(2, 64, 224, 224)out blk(tmp)print(block:, out.shape)model ResNet18(5)tmp torch.randn(2, 3, 224, 224)out model(tmp)print(resnet:, out.shape)p sum(map(lambda p:p.numel(), model.parameters()))print(parameters size:, p)if __name__ __main__:main()下面是迁移学习的主要代码 trained_modelresnet18(pretrainedTrue)model nn.Sequential(*list(trained_model.children())[:-1], Flatten(),nn.Linear(512,4)).to(device)这部分代码将预训练模型的所有层除了最后一层复制到新模型中。Flatten()是将最后一层的输出展平以便可以输入到全连接层nn.Linear(512,4)。nn.Linear(512,4)是一个全连接层有512个输入节点和4个输出节点对应于任务中的类别数。 最后.to(device)将模型移动到指定的设备上例如GPU或CPU。如果你没有指定设备那么默认会使用CPU。 之后呢设置batchsize、learning rate、优化器就可以进行模型的训练了 参数设置如下 batchsz 64 lr 1e-4 epochs 52、使用界面 接下来呢就是关于使用界面的实现思路介绍了。使用界面就是为了方便对模型使用不是很了解的小伙伴使用的。如下所示可以看到我们只需要点击两个按钮就可以使用了。 这里的实现呢主要采用的是Flask进行开发的以前的版本是采用java的方式开的使用起来不但笨重同时模型识别的速度还比较的慢。最要命的是搭建环境也是让人头疼的一件事。所以这次我给整个项目做了优化。主要就是提高模型的识别速度同时让使用者拥有良好的使用体验。 系统主要架构如下图所示 其实比较简单其实也就4步 第一步就是给通过使用端选择需要识别的图片数据 第二步给数据传到指定目录下然后给模型识别使用 第三步模型进行识别 第四步给识别结果以网页的方式进行展示这里做的是四分类的任务所以主要设计了四个网页。还有一个就是出现意外状况的test.html 我举一个例子比如我们输入的图片是厨房的垃圾图片那么模型识别以后给识别结果交给Flask代码Flask代码会根据对应的识别结果给跳转到kitch.html界面中最后的结果如下所示可以看到的有识别结果还有识别的图片以及对于相应的垃圾的分类的定义还有一些小贴士。 Flask的主要代码如下 uploaded_file request.files[file]file_name uploaded_file.filenameif not os.path.exists(UPLOAD_FOLDER):os.makedirs(UPLOAD_FOLDER)# get file pathfile_path os.path.join(UPLOAD_FOLDER, file_name)# write image to UPLOAD_FOLDERwith open(file_path, wb) as f:f.write(uploaded_file.read())下面的代码主要就是获取到form传递过来的图片数据然后整个代码就会给数据上传到指定的文件夹下面。 最后说明 由于笔者能力有限所以在描述的过程中难免会有不准确的地方还请多多包含 更多NLP和CV文章以及完整代码请到陶陶name获取。 项目实战持续更新大家加油
http://www.hkea.cn/news/14469488/

相关文章:

  • 网站建设公司兴田德润i优惠吗游戏网址大全有哪些
  • react 手机网站开发昆明网站建设介绍
  • 爱星光(istar)高端网站建设杭州设计 公司 网站
  • 济宁城乡住房建设网站织梦网站做404页面
  • 网站优化站外链接怎么做西安网站公司推广
  • 南京做网站是什么wordpress打开提速
  • 惠来建设局网站网站开发用户登录前 登录后
  • 怎么用文件传输协议登录网站建网站知乎
  • dedecms怎么做网站wordpress取消评论审核
  • 旅游网站的后台管理系统怎么做辽宁省营商环境建设监督局网站
  • 开心消消乐官方网站开发公司网站建设人员培训纲要
  • 学网站开发需要学那些安全的网站建设服务
  • 国外设计网站导航高德北斗导航
  • 湛江网站建设方案咨询wordpress菜单
  • 做项目的网站网页设计公司的市场评估
  • 建立企业网站的形式有哪些做类似昵图网网站
  • 网站开发建设流程图网站规划书 确定网站建设目的
  • 高校后勤网站建设源码商城系统
  • 做网站是买服务器还是买主机西安建筑工程有限公司
  • 风景区网站建设项目建设可行性自己做的网站邮箱更改密码程序为什么总出错
  • 湖北正规网站建设检修海口建网站 模板
  • 怎么做自己的网站推广产品东莞网站建设服务商
  • 淄博百度网站简单建设网站
  • 怎么维护网站教程郑州网站专业制作
  • 网站建设详方案一个网站如何做推广方案
  • 网站建设维护书美橙网站维护
  • 做品牌折扣的网站制作官网的公司性价比高
  • 怎么自己做网站表白阿里云突发性能适用于做网站吗
  • 沧州南皮网站建设信息流推广渠道有哪些
  • 网站集约化建设调研报告门户网站开发 南宁