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

合肥 中网站实物黄金哪个网站做的好

合肥 中网站,实物黄金哪个网站做的好,wordpress 断点调试,企业名录怎么导出环境配置#xff1a; conda env list:可以查看有哪些环境 conda activate intel:启动某个环境 pip list#xff1a;可以查看此环境下都下载了哪些软件包 from openvino.inference_engine import IEcore#从OpenVINO推理引擎中导入IECore类 import numpy as np import cv2 1 conda env list:可以查看有哪些环境 conda activate intel:启动某个环境 pip list可以查看此环境下都下载了哪些软件包  from openvino.inference_engine import IEcore#从OpenVINO推理引擎中导入IECore类 import numpy as np import cv2 1初始化推理引擎ie IECore()#创建一个IECore对象 for device in ie.available_devices:#遍历所有可用openVINO的计算机设备print(device)#打印每一个设备的名称with open(imagenet_classes.txt) as f:#打开一个包含ImageNet类标签的文件读取里面的每一行信息labels [line.strip() for line in f.readlines()]#读取文件中的所有行并去除每行的空格 #readlines()可以把文件里的每一行信息保存在列表中但是也会把换行符保存进去 #line.strip()可以去掉换行符 #最后把每一行信息都保存在labels(每一行是一个元素100行则在labels列表中有100个元素) 2加载模型model_xml resnet18.xml#指定模型的XML文件路径 model_bin resnet18.bin#指定模型的二进制权重文件路径 #xml指明了这个模型中的层和参数相当于搭了一个框架。而bin就是框架里的信息 #pytorch训练出来的是.pt文件后续会通过程序先将.pt文件转为onnx然后再转为.xml,.bin文件net ie.read_network(modelmodel_xml, weightsmodel_bin)#读取模型 3配置输入输出input_blob next(iter(net.input_info))#获取模型输入层名称并保存在input_blob中 out_blob next(iter(net.outputs))#获取模型的输出层名称n,c,h,w net.input_info[input_blob].input_data.shape#获取输入数据的形状 #n表示一个批次传入图片数量c代表通道数 #通过print可以看出如果我们想要把图片传入到resnet18这个网络中1次只能传一张通道数为3(彩色) #传入图片高宽需要是h w print(n, c, h, w)#为了匹配上述模型输入图片要求就有了下面的对图片的处理 src cv2.imread(1.jpg)#读取图片文件 image cv2.resize(src, (w,h))#调整图片大小以匹配模型的输入大小 image np.float32(image)/255.0$将图像数据归一化到[0,1]范围 #np.float32(image)将图片每一个像素值转换为浮点型然后每个都除以255 image[:,:,] - (np.float32(0.485), np.float32(0.456), np.float(0.406))#从图像中减去均值 image[:,:,] - (np.float32(0.229), np.float32(0.224), np.float(0.225))#将图像数据除以标准# #差 #image[:,:,]读取每一个像素值 image image.transpose(2, 0, 1)#调整图像的维度顺序,将cv2读取的BGR(012)格式转换为RBG(2,0,1)exec_net ie.load_network(network net, device_name CPU)#在CPU上加载模型 res exec_net.infer(inputs{input_blob:[image]})#进行推断 后处理res res[out_blob]#获取推断结果 print(res.shape)#打印推断结果的形状.因为分类给的txt中有1000行即1000个可能。所以输出的res有#1000个概率我们只需要找到概率最大的那个即可 label_index np.argmax(res, 1)[0]#获取最可能的类标签的索引 print(label_index, label[label_index])#打印类标签的索引和名称 cv2.putText(src, labels[label_index],(50,50),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8) #在原图上添加类标签文本 cv2.imshow(image classification, src) cv2.waitKey(0) 图像分类案例 1模型训练 使用OpenVINO进行实时图像分类使用Pytorch训练一个自己的图形分类模型然后将它部署在树莓派上并用摄像头进行 训练自己的图形分类模型首先创建文件夹文件夹内有自己的数据集文件夹(可以命名为Data)Data文件夹中又有text和train文件夹分别存放要训练的图片。除了数据集文件夹剩下的就是.py代码文件 训练模型.py import os #os通常用来创建文件夹遍历目录等更系统有关 import torch import torch.nn as nn #nn用来修改网络参数 import torch.optim as optim #optim用来网络优化系统的 from torchvision import datasets, models, transforms #datasets读取自定义数据models用来导入预训练模型的transforms用来数据增强等预处理if __name__ __main__: #定义主函数#设置设备。判断当前显卡cuda能否使用不能使用则使用cpudevice torch.device(cuda if torch.cuda.is_available() else cpu)#数据增强和归一化操作data_transforms {train:transforms.Compose(transforms.RandomResizedCrop(224), #对图片进行随机裁剪大小为224*224的大小transforms.RandomHorizontalFlip(), #随机对图片进行一个水平翻转transforms.ToTensor(), #把图片转变为tensor格式才能输入到网络中transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])#对图片数据进行归一化前面为均值后面是标准差]),test:transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]),}#加载数据集data_dir rdata#相对路径的写法表示数据集在此.py文件同目录下的data文件中image_datasets {x:datasets.ImageFolder(os.path.join(data_dir, x),data_transforms[x])for x in [train, test]}#os.path.join(data_dir,x)表示路径拼接将数据增强后的图片存入到data_dir中,data_dir称为根目 #录,x来自train或者test#此操作表示如果数据来自train则进行数据增强train里的方式如果来自test则进行test的增强方式dataloaders {x:torch.utils.data.DataLoader(image_datasets[x], batch_size16,shuffleTrue, num_workers4)for x in [train, test]}#dataloaders将图片传入到训练网络中分批次传。batch_size表示一批传几张图片shuffle表示每 #次传入数据前进行打乱。num_works表示用几个线程进行加载dataset_sizes {x: len(image_datasets[x]) for x in [train, test]}#dataset_sizes获取train,test中有多少张图片class_names image_datasets[train].classes#class_names获取每一个类别对应的名字 #加载预训练的ResNet18模型model models.resnet18(pretrained True)#用models获取预训练模型pretrainedTrue表示拿到ResNet18框架之外还把权重文件里面的数据也 #拿下来。在上述OpenVINO实例中我们知道ResNet18数据集有1000中而这里我们的数据集只有cat和 #dog所以输出是不一样的所以我们要将输出的数量换为我们的数量以下两行为替换方法num_ftrs model.fc.in_featuresmodel.fc nn.Linear(num_ftrs, len(class_names))#网络弄好了通过下方一行代码转到设备里面进行运行model model.to(device)criterion nn.CrossEntropyLoss()#训练网络时用到的损失函数分类问题用此损失函数即可optimizer optim.Adam(model.parameters(), lr0.001)#Adam优化器要优化参数model.parameters()表示models的全部参数lr表示学习率best_acc 0.0#初始化最高准确率best_epoch -1#初始化best_model_wts None#训练模型num_epochs 25 #训练轮数for epoch in range(num_epochs):#首先输出当前是第几轮print(fEpoch {epoch}/{num_epochs - 1})print(- * 10)#如果当前过程是train则进入训练模式model.train(),否则进入到model.eval()验证模式for phase in [train, test]:if phase train:model.train()else:model.eval()#初始化running_loss 0.0running_corrects 0#读取dataloaders里面的参数for inputs, labels in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)#每一个迭代开始之前都对梯度计算进行清零 optimizer.zero_grad()#如果是在训练阶段就打开计算梯度的工具with torch.set_grad_enabled(phase train):outputs model(inputs)_,preds torch.max(outputs, 1)#找到最大值并返回结果loss criterion(outputs, labels)if phase train:loss.backward()#如果是在训练阶段就进行反向传播optimizer.step()#并且更新优化器running_loss loss.item() * inputs.size(0)#把loss值累加running_corrects torch.sum(preds labels.data)#统计正确个数#每一轮结束就统计一下loss值和正确率epoch_loss running_loss / dataset_sizes[phase]epoch_acc running_corrects.double() / dataset_sizes[phase]#并显示print(f{phase} Loss: {epoch_loss:.4f} Acc: {epoch_acc:.4f})#如果本轮正确率比以往的都高则进行替换if phase test and epoch_acc best_acc:best_acc epoch_accbest_epoch epochbest_model_wts model.state_dict()print()print(Training complete!)print(fBest test accuracy: {best_acc:.4f} at epoch {best_epoch})torch.save(best_model_wts, fmodels/best_resnet18_model_epoch_{best_epoch}.pth) 使用预训练的ResNet18对图片进行训练并且将性能最好的权重保存在本地。如下文件 2模型转换 先转到onnx,再转到openvino pytorch转onnx.py import torch import torchvision.models as models#指定要加载的模型权重文件的路径 model_weights_path models/best_resnet18_model_epoch_17.pth#加载ResNet-18模型结构 model models.resnet18() model.fc torch.nn.Linear(model.fc.in_features, 2) #从文件中加载模型权重 model.load_state_dict(torch.load(model_weights_path))#确保模型处于评估模式关闭Dropout和BatchNorm层 model.eval()#创建一个模拟输入以便ONNX导出器能够确定输入/输出格式 #这个例子假设输入图像是224X224的三通道图像 x torch.randn(1, 3, 224, 224, requires_grad True)#指定ONNX文件的输出路径 onnx_file_path rmodel\resnet18_catdog.onnx#将模型导出为ONNX格式 torch.onnx.export(model, #运行的模型x, #模型输入或者一个元组如果有多个输入onnx_file_path,#保存模型的文件路径export_paramsTrue,#存储训练权重和偏置opset_version10,#ONNX版本do_constant_foldingTrue#是否执行常量折叠优化) print(fModel saved in {onnx_file_path}) netron工具可以查看onnx里的参数 如下 onnx转OpenVINO 先安装onnx pip install onnx1.14.0 再用以下命令进行转换mo --input_model .\resnet18_catdog.onnx 转换完成的文件路径会给标明(.bin .xml .mapping) 3模型应用单张图片分类  from openvino.inference_engine import IEcore import numpy as np import cv2ie IECore()#创建一个IECore对象 for device in ie.available_devices:print(device)#animal.txt里面存放着分类类别名一行为一种此示例为分类cat和dog所以此文件一共两行 #自己编写并放在这些.py文件的同一目录下 with open(animal_classes.txt) as f:labels [line.strip() for line in f.readlines()]#之前文件未写r是由于resnet.xml和resnet.bin就在当前目录下这里用r并加上路径名来指定#resnet18_catdog.xml文件(因为此xml文件不直接在该目录下而在该目录的文件夹中) model_xml rmodels/resnet18_catdog.xml model_bin rmodels/resnet18_catdog.binnet ie.read_network(modelmodel_xml, weightsmodel_bin)#读取模型input_blob next(iter(net.input_info))#获取模型输入层名称并保存在input_blob中 out_blob next(iter(net.outputs))#获取模型的输出层名称n,c,h,w net.input_info[input_blob].input_data.shape print(n, c, h, w)src cv2.imread(rresources/85.jpg)#读取图片文件 image cv2.resize(src, (w,h))#调整图片大小以匹配模型的输入大小 image np.float32(image)/255.0$将图像数据归一化到[0,1]范围 image[:,:,] - (np.float32(0.485), np.float32(0.456), np.float(0.406))#从图像中减去均值 image[:,:,] - (np.float32(0.229), np.float32(0.224), np.float(0.225))#将图像数据除以标准# #差 #image[:,:,]读取每一个像素值 image image.transpose(2, 0, 1)#调整图像的维度顺序,将cv2读取的BGR(012)格式转换为RBG(2,0,1)exec_net ie.load_network(network net, device_name CPU)#在CPU上加载模型 res exec_net.infer(inputs{input_blob:[image]})#进行推断res res[out_blob] print(res.shape) label_index np.argmax(res, 1)[0] print(label_index, label[label_index]) cv2.putText(src, labels[label_index],(50,50),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8) cv2.imshow(image classification, src) cv2.waitKey(0) 4摄像头实时分类 摄像头实时分类.py from openvino.inference_engine import IEcore import numpy as np import cv2 import time #导入time库以计算FPSie IECore()#创建一个IECore对象 for device in ie.available_devices:print(device)with open(animal_classes.txt) as f:labels [line.strip() for line in f.readlines()]model_xml rmodels/resnet18_catdog.xml model_bin rmodels/resnet18_catdog.binnet ie.read_network(modelmodel_xml, weightsmodel_bin)#读取模型input_blob next(iter(net.input_info))#获取模型输入层名称并保存在input_blob中 out_blob next(iter(net.outputs))#获取模型的输出层名称n,c,h,w net.input_info[input_blob].input_data.shapeexec_net ie.load_network(network net, device_name CPU)#在CPU上加载模型cap cv2.VideoCapture(0) if not cap.isOpened():print(Error)exit()prev_time time.time() #在循环开始前初始化时间变量 frame_count 0 fps 0 #初始化fpswhile True:ret, frame cap.read()if not ret:print(Failed to grab frame.)breakframe_count 1curr_time time.time()delta_time curr_time - prev_timeif delta_time 1.0: #每秒更新一次FPSfps frame_count / delta_timeframe_count 0prev_time curr_timeimage cv2.resize(src, (w,h))image np.float32(image)/255.0image[:,:,] - (np.float32(0.485), np.float32(0.456), np.float(0.406))image[:,:,] - (np.float32(0.229), np.float32(0.224), np.float(0.225))image image.transpose(2, 0, 1)res exec_net.infer(inputs{input_blob:[image]})#进行推断res res[out_blob]print(res.shape)label_index np.argmax(res, 1)[0]print(label_index, label[label_index])cv2.putText(frame, {fps:.2f},(50,100),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8)cv2.putText(frame, labels[label_index],(50,50),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8)cv2.imshow(image classification, src)if cv2.waitKey(1) 0xFF ord(q):break cap.release() cv2.destroyAllWindows() 5模型加速 (异步加速) 摄像头实时分类_异步加速.py from openvino.inference_engine import IEcore import numpy as np import cv2 import time #导入time库以计算FPSie IECore()#创建一个IECore对象 for device in ie.available_devices:print(device)with open(animal_classes.txt) as f:labels [line.strip() for line in f.readlines()]model_xml rmodels/resnet18_catdog.xml model_bin rmodels/resnet18_catdog.binnet ie.read_network(modelmodel_xml, weightsmodel_bin)#读取模型input_blob next(iter(net.input_info))#获取模型输入层名称并保存在input_blob中 out_blob next(iter(net.outputs))#获取模型的输出层名称n,c,h,w net.input_info[input_blob].input_data.shapeexec_net ie.load_network(network net, device_name CPU)#在CPU上加载模型cap cv2.VideoCapture(0) if not cap.isOpened():print(Error)exit()prev_time time.time() #在循环开始前初始化时间变量 frame_count 0 fps 0 #初始化fpsrequest_id 0 #不同点 while True:ret, frame cap.read()if not ret:print(Failed to grab frame.)breakframe_count 1curr_time time.time()delta_time curr_time - prev_timeif delta_time 1.0: #每秒更新一次FPSfps frame_count / delta_timeframe_count 0prev_time curr_timeimage cv2.resize(src, (w,h))image np.float32(image)/255.0image[:,:,] - (np.float32(0.485), np.float32(0.456), np.float(0.406))image[:,:,] - (np.float32(0.229), np.float32(0.224), np.float(0.225))image image.transpose(2, 0, 1)exec_net.start_async(request_idrequest_id, inputs{input_blob:[image]})#不同点if exec_net.requests[request_id].wait(-1) 0:res exec_net.requests[request_id].outputs[out_blob]label_index np.argmax(res, 1)[0]cv2.putText(frame, {fps:.2f},(50,100),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8)cv2.putText(frame, labels[label_index],(50,50),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,0,255),2,8)cv2.imshow(image classification, src)if cv2.waitKey(1) 0xFF ord(q):break cap.release() cv2.destroyAllWindows() 6如果用神经加速棒 6树莓派部署 环境配置 目标检测案例 1准备数据集 先使用labelimg标注信息 打开labelimg后选择Open Dir打开要标注的数据集文件夹 选择完成后再点击Change Save Dir来选择一个文件夹保存标注完成保存到的文件夹  一般设一个文件夹文件夹内有images和labels文件夹labels文件夹用来保存标注后图片images文件夹用来保存需要标注的图片。并且labels文件夹和images文件夹下都有train和test文件夹分别用来保存要训练的图片和测试的图片 注意labels/train文件下必须要有一个名为classes.txt的文本文件里面记录着标签名(要检测火则写为fire)  标注时记得打开自动保存 2准备YOLOv5代码 下载代码的过程推荐网址YOLOv5-6.1从训练到部署一环境安装、示例检测、推理文件的导出与可视化_yolov5 6.1-CSDN博客 将代码文件和数据集文件放到同一目录下 配置完成后在终端运行 python detect.py --weights yolov5s.pt --conf-thres 0.4  出现如下文件图片即可 3准备数据集配置文件 创建文件(.yaml)内容如下将该文件放到data目录下的scripts文件下 path: ../fire_yolo_format #存放数据集文件路径这里是火灾检测所以数据集命名为这个 train: images/train #存放训练集文件路径 val: images/val #验证集文件路径 test: images/test #测试集文件路径 #以上均为根目录 #此实例文件格式如下 #fire_yolo_format文件下有images和labels文件 #image文件下有test train val 文件 #labels文件下也有 test train val 文件#classes nc: 1 #一共有多少类别 name: [fire] #类别名字 4进行训练 使用命令 python train.py --data fire.yaml --weights yolov5s.pt --img 640进行训练#--img 640指把图片压缩成640*640大小 调参数 detect.py中有如下参数。使用--命令时可能要修改文件地址等 train.py中有如下参数。--epochs表示轮数可以修改。--batch-size表示一次传入多少图片通常报下图所示错误时就要把此值调小。--workers指线程,。 利用tensorboard --logdir观察日志 重新打开一个终端进入到yolo文件目录下再输入 tensorboard --logdir .回车即可 在--logdir后加一个点表示以当前文件所在路径为根目录打开 回车后会弹出一个网页链接点进去即可 训练结果  最终的训练结果会保存到runs/train/exp/,将runs/train/exp/weights/best.pt保存起来后期推理会用到 测试 可以在终端输入python path/to/detect.py --weights yolov5s.pt --source 0 来打开摄像头测试。yolov5s.pt要指明路径比如 python detect.py --source ./img1.jpg --weights weights/best.pt --conf-thres 0.3 python detect.py --source 0 --weights runs/train/base_n/weights/best.pt --conf-thres0.3 评估 python .\val.py --data .\data\fire.yaml --weights .\weights\best.pt --batch-size 12。输出如下 5模型转换 PyTorch-ONNX ONNX-OpenVINO 先通过Netron确认best.onnx的网络结构如下在点击此三个Conv分别在右上角name查看路径 接下来开始转换  #全输出需要自己修改/model.24/m.0/Conv, /model.24/m.1/Conv, /model.24/m.2/Conv为上述name查询 #的结果 #input_model:需要转换的模型best.onnx #model_name:导出名称 #s原始网络输入将除以该值 #reverse_input_channels:RGB转变为BGR(或者从BGR转变为RGB) #output:模型的输出操作 mo --input_model weights/best,onnx --model_name weights/fire_model -s 255 --reverse_input_channels --output /model.24/m.0/Conv,/model.24/m.1/Conv,/model.24/m.2/Conv 输出结果
http://www.dnsts.com.cn/news/233625.html

相关文章:

  • 大庆市建设大厦网站软文营销的作用
  • 网站备案扫描做做网站已更新
  • 网站的描述 都应该写 什么 优化焦作做微信网站多少钱
  • 鄂州网站推广网站和域名区别
  • 个人网站备案所需材料如何查看网站的流量
  • 北京建网站公司飞沐黑马程序员学费
  • 双语网站方法wordpress取缩略图
  • 岳阳有哪几家做网站的中国企业500强出炉
  • 网站建设入什么费用wordpress一键生成app
  • 动态效果网站建设技术网页版微信登录不了怎么解决
  • 公章电子版在线制作网站比较好的免费空间
  • 网站开发 文档企业公示信息查询系统黑龙江
  • 揭阳网站建站网站贸易公司网址大全
  • asp网站开发教程pdf注册公司费用多少钱
  • 免费高清视频会议软件重庆seo推广外包
  • 企业网站 建设流程免费学做淘宝的网站
  • 网站 设计报价商标免费查询官网
  • psd 下载网站网页设计心得500字
  • 网站制作谁家好竞价代运营外包公司
  • 搜网站旧域名品牌推广策略ppt
  • 正规html5网站wordpress手动更新视频教程
  • 网站开发 英语品牌营销策划ppt
  • 网站怎么制作视频教程app开发和网站开发价格
  • 手工做刀网站怎么设计自己logo
  • 什么网站详情页做的好网络货运平台有哪些
  • 想开个网站怎么做站长源码论坛
  • wordpress站点前台请求数过多网站怎么做语言切换
  • 海丰县建设局官方网站东莞招聘信息
  • 网站制作上哪学校美图在线图片编辑器
  • 如何设置网站公司动态网站建设网站营销