新视角看 OpenVINO :OpenVINO 之化整为零

2021/5/25 18:19:17

本文主要是介绍新视角看 OpenVINO :OpenVINO 之化整为零,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

OpenVINO 作为 Intel 开源的推断框架,在多种设备上都有着较为优秀的表现,尤其是在边缘设备上可谓是独领风骚

边缘设备的推出,大幅降低了中台服务器的压力,使得整个系统的性能和稳定性都有了较大的提升。

原本可能一台服务器要对上百路的视频进行复杂的图像处理,现在只需进行简单的逻辑分析,是不是有点军事中的“化整为零”的意味?这篇文章就来讲讲一些神经网络中化整为零思想。

从基本思想出发目前的神经网络其实就两码事:①回归;②分类

工业上,当我们使用深度学习对两个物体测距的时候,会使用目标检测算法寻找这两个物体,然后计算二者之间的距离,这么做貌似合理,但又感觉有些许欠妥。后来笔者一拍大腿,这距离我用算法不就能直接回归出来的嘛,用什么目标检测网络。网上一找,发现大家对于神经网络在回归上的应用都很少,甚至于不知道回归还能这么搞,特有此文。

但凡测量,不光是距离,还有角度,以及坐标点,都是可以用回归思想做出来的,譬如寻找细小的钉子;譬如计算指针的旋转角度;譬如测量细长钉子的长度。另外,由于回归网络任务比较单一,所以其网络可以设计得很小,并且精度远高于复杂的目标检测网络。所以,学会巧妙地运用回归网络,让你的 OpenVINO 边缘设备跑十几个网络完全不是梦。

下面是一个运用回归网络来做测量+位置的简单 demo

GitHub 地址 :
https://github.com/dgl547437235/LogicRegression/tree/main

主要分为如下几步骤

①生成数据集;

②准备模型;

③训练;

④使用 OpenVINO 进行部署。

下面是详情要点:

①生成数据集,执行如下脚本会在当前目录下生成img 文件夹,其中是1000张随机生成线条的图片,并且讲线条的长度和坐标点记录在 train.txt
train.txt在这里插入图片描述
②构建一个模型,见 Model.py,其中的骨架网络参考了 MobileNetV2 设计,如下图:
在这里插入图片描述
③开始训练执行如下脚本。

在进行逻辑回归的时候,通常使用 SmoothL1Loss 或者 MSELoss,训练时,每隔5个批次进行一次模型保存,最后得到 net.ptnet.onnx两个模型,前者可以随时进行后续地训练,后者可以扔给 OpenVINO 进行推断。
在这里插入图片描述
在这里插入图片描述
④测试。

在这里我们来看下 OpenVINO 下的部署方式,从代码中可以看到,从开始到结尾总共才25行代码,这种便捷性是其他几种框架很难比拟的,足够地精简以及强壮。同时,我们看下测试的图片,对于线段两端点位置的回归以及长度的回归都是很准的,说明我们的神经网络很好地完成了回归任务。
在这里插入图片描述
在这里插入图片描述



这篇关于新视角看 OpenVINO :OpenVINO 之化整为零的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程