
深度学习
文章平均质量分 85
Rosen.
985 本硕,初创公司创始人,XBOTPARK基金投资企业
展开
-
Model Optimization——常用深度学习模型转换脚本
简介 我们都知道目前流行的深度学习框架有很多种,例如Pytorch、TensorFlow、Caffe等,在实际训练和部署的过程中,常常会接触到不同框架模型之间的转换,大多数时候这些并不复杂,只需要写一些简短的脚本就能够完成。而像OpenVINO中IR这样的特殊模型,我们也可以通过其提供的自带脚本进行转换,下面简单介绍常用的模型之间转换的脚本和方法。Pth模型 转 ONNX模型import torchimport argparseparser = argparse.ArgumentParser(原创 2022-03-19 10:00:20 · 896 阅读 · 0 评论 -
OpenVINO Toolkit系列(二)——手动编译contrib包和Cmake链接
从源码编译适配OpenVINO的OpenCV(Contrib) 由于OPENVINO 2018 R2及后续版本都自带了OpenCV,然而其自带的OpenCV并不包含Contrib模块,所以在开发中如果我们需要同时使用Conrtib和OpenVINO时就需要自己手动从源码进行编译。下载源码OpenCVOpenCV Contrib这里需要注意以下两点:下载的OpenCV与Contrib模块的版本需要严格对应OpenCV需要下载带OpenVINO后缀的版本Cmake编译 这里以如下原创 2022-03-16 10:22:11 · 3522 阅读 · 3 评论 -
OpenVINO Toolkit系列 (一) —— 安装与环境配置
简介 OpenVINO是英特尔推出的一款全面的工具套件,用于快速部署应用和解决方案,支持计算机视觉的CNN网络结构超过150余种。OpenVINO是一个Pipeline工具集,同时可以兼容各种开源框架训练好的模型,拥有算法模型上线部署的各种能力,只要掌握了该工具,你可以轻松的将预训练模型在Intel的CPU上快速部署起来。 对于AI工作负载来说,OpenVINO提供了深度学习推理套件(DLDT),该套件可以将各种开源框架训练好的模型进行线上部署,除此之外,还包含了图片处理工具包OpenCV,视频处理原创 2022-03-15 10:20:34 · 4139 阅读 · 0 评论 -
致初学者的深度学习入门系列(五)—— 深度学习图像分割篇
Deep Learning In Image Segmentation简介 图像分割是指根据灰度、色彩、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些区域在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。图像分割可以认为是按照像素进行分类的问题。传统分割方法基于阈值的分割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值作比较,最后将像素根据比较结果分到合适的类别中。因此,该方法最为关键的一步就是按照某个原创 2022-02-04 11:16:39 · 7616 阅读 · 0 评论 -
致初学者的深度学习入门系列(四)—— 深度学习目标检测篇(下)
SSD(Single Shot MultiBox Detector ) 由于当网络逐渐深层时,感受野也逐渐越来越大。如果通过最终的feature maps进行区域生长,随着感受野增大对于小目标的检测效果也不理想。于是SSD诞生,其带来了一种新的想法:那如果是针对卷积过程中间的feature maps都进行区域生长呢? SSD以VGG-16作为BackBone,并对其进行了一些修改:分别将VGG16的全连接层FC6和FC7转换成 3x3 的卷积层 Conv6和 1x1 的卷积层Conv7去掉所有原创 2022-02-04 11:15:07 · 1664 阅读 · 0 评论 -
致初学者的深度学习入门系列(三)—— 深度学习目标检测篇(上)
目标定位 在softmax层中不仅仅只输出分类信息,还可以输出目标的外接矩形框的角点和长宽,这样就可以转化为一个逻辑回归的问题。只要在训练集上对相应信息进行标注,以及定义合适的损失函数,就可以通过实现对目标的定位。目标检测滑动窗口法 首先设定固定大小的窗口,以固定步长遍历图像,每次都将窗口内的图像传入分类网络进行分类,以达到对目标的检测效果。但是,步长的选择无法适应不同情况。过大的步长计算成本低,但检测的精确度下降,无法很好的框选目标;过小的步长又会导致传入网络的窗口数量过多,计算成本巨大。原创 2022-02-03 11:59:19 · 1595 阅读 · 0 评论 -
致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础
卷积神经网络CNN文章目录卷积神经网络CNN卷积PaddingPoolingFlatten网络连接数以及参数数量的计算残差网络(ResNet)1x1卷积迁移学习数据扩充卷积 卷积运算的过程就是设定一个特定大小和内容的卷积核后,将卷积核在图像上遍历滑动,每次滑动后得到对应卷积核中心位置上的数值等于卷积核上的权重于卷积核对应位置的图像像素值的乘积和。 作用:提取特征 提取垂直边缘特征的示例:输入层的维度决定了提取原始特征的数量。常见卷积核Padding 由于卷积的特性,没经过一次卷原创 2022-01-28 12:17:58 · 589 阅读 · 0 评论 -
致初学者的深度学习入门系列(一)—— 简单神经网络基础
简单神经网络基础文章目录简单神经网络基础1. 基本符号与运算2. 激活函数3.随机权重初始化4. 运算过程5. 前向传播和反向传播6. 参数和超参数7. 方差和偏差8. 正则化9. 归一化输入特征10. 梯度检验11. 优化算法12. 学习率衰减13. Batch Normalization(BN)算法14. Softmax激活函数15. 单一数字评估指标后续1. 基本符号与运算x:输入向量w:权重b:偏置g():激活函数a:输出向量y:输出结果KaTeX parse error: No原创 2022-01-28 12:11:56 · 398 阅读 · 0 评论 -
关于深度学习实时检测的三种方法(三)——Opencv DNN加载ONNX模型
简介 随着研究的逐渐深入,我了解到pytorch训练模型再用libtorch加载实际上是一种很绕弯的方法,它的确能够满足我们的需求,但也许不是最好的一种方法。如今比较通用的模型格式是ONNX模型,所以我就在想能否使用这种通用的模型来解决问题呢? 远在天边,近在眼前,没想到OpenCV自己就有DNN模块能够直接加载,我们要做的只需要将pytorch训练出的pth模型转成ONNX模型即可。本文章将介绍如何实现将pytorch训练处的模型转成ONNX模型并用DNN加载预测。pth模型转ONNX 上一原创 2021-08-27 15:00:31 · 5429 阅读 · 3 评论 -
关于深度学习实时检测的三种方法(二)——pytorch训练模型后再使用libtorch加载
上一篇文章我曾经提到过,libtorch在进行图像实时检测中性能并不突出,很多时候无法满足我们的需求,后来我在想能不能现在pytorch上训练模型,只将libtorch作为一个加载模型的工具呢?经过尝试我发现这种方法是可行的,并且无论是在运行时间上还是在预测的准确率上都要优于前者,本文章将介绍如何在pytorch上训练模型并用libtorch进行加载预测。pytorch安装 pytorch官方为我们提供了非常方便的安装渠道,在官网上选择适配自己电脑的选项后用官方给出的命令行下载即可,如下图:验原创 2021-08-27 14:55:31 · 1239 阅读 · 5 评论 -
关于深度学习实时检测的三种方法(一)——libtorch构建网络并直接预测
简介 楼主在这一年从事的图像实时检测中涉及到深度学习的内容,于是在没有积累的情况下自己探索了三种方法,接下来分为三篇文章依次进行介绍并对比分析它们的优点。 目前使用比较广泛的深度学习框架有pytorch和TensorFlow两种,我选择使用的是pytorch,但原本的工程是基于C++实现的,为了适配于pytorch我发现了libtorch。libtorch可以说是pytorch的C++移植版本,其安装和使用简单,也不需要复杂的环境配置。本文章将介绍如何用libtorch实现构建神经网络并且加载模型进原创 2021-08-27 14:46:10 · 1536 阅读 · 1 评论