大家好,今天来跟大家介绍一下,我们在 windows 上面去做这个 c sharp 的这个呃做优乐威五 o b b 这样的一个旋转框的一个 type c r t 的一个部署,用 c sharp, 然后我们也写的有 c 加加,所以他我们都在文字上进行测试了啊,那理论上呢,我们这个呃 c 加加的版本在内内六字上面也是可以操作的,也是可以去呃去做这个部署的 啊,我们都实测的都是在这个 windows 里面去做的这个呃部署, 呃我们这个项目呢,其实就是基于开源的这样的一个,大家可以看到这个 kit home 上所有的微五 o v b 最最多的这样的一个 star 的数量,就是我们用的就是就是这个作者的就是叫这个胡凯旋一九九七名啊, 比六二七这样的一个框架用它去做了一个呃探测 r t 的一个部署,然后我们的这个测试环境呢,大家看到我们的测试环境使用的是这个 windows 十啊,大家看到我们这个环境呢就是 windows 十,然后我们使用的是扩大十一点一和八点二点零这样的一个版本, 然后我们特斯拉定的时候是八四二四啊,理论上呢就是很多版本都是支持的,像八点六啊,八点二啊,八点几的应该都可以啊。 然后我们这里面呃,因为呃我们使用了 c mac 啊去做的这个项目,所以我们这个 c mac 呢,使用的是三点二十二点三这个版本,大家可以呃依照这个啊更高的版本啊,或者稍微低的版本都是可以的。 然后我们测试的环境呢,都是用 vs 二零一九区做测试的,所以大家呢最好要对应版本,不然 有些东西不兼容啊。首先呢大家看到啊,这个就是我们的一个项目的一个原码,我们都已经给大家组织好了,这个就是我们的一个组的原码。 然后呢我们这个,呃,这是我在我电脑上做编译的去做的啊,大家看到这个就是,呃,用 c r 幺去做的,大家可以看到, 呃,我为了演示了,我就把一张图片转成视频了,所以转成一个四十秒的视频,大家可以看到啊,这个就是他对一个视频进行实时检测的一个效果啊,他这个帧率大概在五十多帧 fps 左右。这个腾达 t 啊, 呃,这个就是我们真实的这样的一个测试的结果啊,它的这个 f p s, 它就是这么,就是这样的,就是这样。 哎, 好,呃,大家看啊,我们这个我看一下。 呃,我们的这个这个视频啊,就是它,就是它这个,大家看到这个就是我们整个的这个视频, 大家看这就是我们的一个视频啊,我们的视频呢就是一张图片转型的,所以大家可以看到这上面是没有框的,这说明我们 c i r 是可以的去实现的,这样呢就实现了一个 ten 三二 t 的一个步数。 呃,大家可以看到它这个我因为我使用的是 ulov 五 s 这样的一个版本去做的部署,大家看到它的这个整体的帧率啊,不会很高啊,很高。然后呢我们也使用了这个 c 沙布局做的一个布索,大家可以看到这个是我们用 c 沙布局写的。 好,首先我们打开用 vs 二零一九打开我们的这样的一个项目, 呃,我们的采用的方式呢,就是用 c r r 的这个库啊去调,然后用 c shop 去做这个调用,调用 c r r 的库,所以我们这个 c shop 的调动也是特斯拉 t 的一个模型。嗯, 大家看到我们这个框架呢,就是我们的这个 c 纱布使用的框架呢,是使用的是这个 是四点,大家看啊,是四点七点二,这个就是我们 delet 的一个版本,四点七点二, 那如果说你是四点六应该是可以的,都是可以的,但是你要匹配到它的这个 open c p 上的版本啊,我们重点使用的是 open c p shap 这样的一个库啊,所以做的 这样的一个调用,所以大家一定要注意一下,我们这个版本最好是要对应,不然的话他很难跑起来。 好,这个就是我们这个做的一个简单的一个界面啊,就是一个图片,还有一个视频, 然后我们这个图片来,大家看到我们这个封装以后啊,大家看到我们把它封装好以后,他直接就是构建一个对象啊, details 对象,然后把这个他的这个 呃探测 it 模型传进去,然后构建一个对象,然后我们用它去做推理啊,把推图像扔进去做推理啊,我们直接就是用的这个 open cps up 的一个类型,直接送进去做推理, 得到一个结果啊,然后我们再把结果做一个绘制啊,基本上就可以完成了,这个就是我们的一个呃,他封装的,对,看我们封装以后呢,就是这么简单的断码, 我们就可以实现 ulov 我这样的一个旋转框的这样的一个部署,然后呢我们使用的视频呢,也是使用 obesce shover 库啊,它们的这个大体的流程是一样的,主要是用它这个 obessevesover 里面去 去取这个图像,就是取视频里面的针啊,取视频的针,然后对视频的针里面做推理,做绘制,这样的这个情况。好,我们看一下这个效果。 好,我们首先我们点这个图片啊,大家看到啊,他正在加载模型,然后因为这个图片比较大,大家看到这个图片把我的屏幕都遮住了,因为他这个已经超过了幺九一零八零的分辨率啊,所以他这个 比较大,大家可以在这个右下角可以看到啊,他已经框出来了,说明我们这个是没问题的。然后我们再看一下视频。好,大家看到这个就是我们的这个视频的小 效果了,他可以把这个视频呢实时的用旋转方的这个呃,把它实时的绘制出来,大家看到这个就是我们实时的简单的一个结果啊,他的帧率还是非常低的, 因为它这个是这样的,因为它这个呃, c 加加里面,它要 c 沙包和 c 加加做交互的时候呢,它有一个图像的转换过程啊,所以它的性能折损是比较严重的啊,基本上是呃,折了一半, 呃,所以说啊,它这里面有 c 插板,里面有些东西呢,它确实是呃,呃,它确实是有性能的征求,但是 啊,这个就是我们真实的测试的这个结果,这个也做不了假,他就是这样的一个结果,嗯, 呃,当然我们这个测试的这个真率啊,大家要注意 下,大家可以看到我们这算 fps 怎么算的?我们是把这个整个的前处理,后处理和绘制图像都算进来了, 都算你都算是算成这个 ips 了,所以说呢,呃,跟网上的有些东西,网上有的一般的话,他只是把推理的时间 作为这个 fps 统计啊,这样的话,呃,可能会更快一点,因为我是把这个所有的推理的时间都给他算上了,就是前处理,后处理还有推理还有绘制图像都都算上了,所以他这个慢是正常的,所以大家不要奇怪。 呃,不管怎么说啊,我们这个地方呢,已经实现了它的这个 c shop 的这样的一个呃, uv 五的旋转功能,这个部署啊,而且我们也成功在工作上面进行运行的,所以大家可以看到,呃,只要啊,只要使用这个代码的话,只要训练这种模型也是可以非常好的去做部署,非常好的做部署。好,我们的这个介绍呢就到此结束,欢迎来到直播。
粉丝439获赞4973

上一节课我们已经学习了如何训练文字识别模型,今天我们来调用模型完成验证识别。 我们打开幺六综合工具,载入我们训练好的模型,验证模型是否正确有效, 模型能够正确识别文字,说明模型没有问题。接下来我们开始写代码调用 载入幺乐模块和精益模块 创建对 向,以便接下来的调用 需要。先用目标检测检测出文字的坐标位置。 初始化完成调用的前置条件,载入目标检测模型, 直接将模型路径复制粘贴进代码,后续参数按视频所示填写 识别图片,识别到的数据将会保存在幺六数据这个变量里, 判断目标检测是否识别到文字,并对每一个文字传递给分类检测,判断其内容。 对 分类检测进行初始化,载入分类检测的模型, 这里我们用目标检测识别到的坐标数据,将原图片该位置裁剪下来,将裁剪后的小图片传递给分类识别,检测其文字内容。 调试输出所有识别到的结果。 运行代码查看输出情况, 代码未能成功运行。经过 做检查是因为输入图片不是 yellow 所需要的格式,我们对输入图片进行转码, 最后成功给我们返回了所识别的文字以及该文字的坐标位置,方便我们后续操作。 到此,我们完成了对文字的识别。
