大家好,今天来跟大家介绍一下,我们使用 python 去部署 ulv 九的 o n s 模型,那么呃 ulv 九呢?呃,是这个,嗯, 呃, ulv 七作者的这个又一个原创原创的作品,那么呃 ulv 九呢?是有这个,大家可以看到它是有这个啊,中国台湾什么 academi cineka 和台北科技大学联合开发的。嗯, 然后他主要是就是他里面确实有提出了一种比较新的一种网络,叫做这个 呃 g e nine 这样的用户。然后呢,呃,还有一个叫做啊,实现了 p g i 可以在清唱节啊,这个,呃大家可以去网上搜一下啊,我们主要是用它去这个去部署一下它的这个 u v 九的 o n x 模型啊。 呃,他这个幺六九呢,跟幺六七里面的那一些代码呀,都非常相似啊,所以说他里面有些东西呢,呃,是呃基本上都是差不多的啊,只是说可能就换了一个核心的一个网络结构啊,换了一些东西啊,但是他的一些从这个推理的这个流程啊,都是差不多的啊。 嗯,这今天呢,我们主要把它放装成一个 ox 啊,那么 ox 怎么转?就是在用官方的这个呃教程上去转化就可以了,大家可以看到这个地方呢, 嗯,目前呢官方推出了有两两两,就是它有这个 ulov 九 c 和 ulov 九 e 两个模型, s 和 m 呢,暂时还没有出来,所以说这个我们只使用使用这个 ulov 九 c 去做,跟大家去做测试啊。呃,我主要还是使用这个, 呃 ulov 九的这个,它里面有一个 export 的模型,大家看到这个 ulov 九里面有一些模型啊,它这个有一有,它有一个 export 啊,我们可以用 export 把它导出来啊,就可以用了,如果说你是训练制的模型,那么就可以了,然后呢我们已经封装以后 啊,我们直接用这个 ulov 九,用 ulov 九 oms 或者一星。然后呢我们把这个模型加载进去啊,然后去读一张啊,检测一张图片啊,画画上就可以了啊,这个就是我们整个的这个,嗯,部署的非常简单啊 啊,大家看到这个就是我们的一个效果了啊,这是用官方模型直接就去做推理,得到一些结果,嗯,大家看到的以前我们叫优乐威五啊,或者说是其他的,这个像优乐威八的话,你看像右上角这个自行车啊,都没有检测出来啊,他这个可以非常好的检测出来啊,他有些他这个效果还是还是可以 还是可以的好,这样我们就实现了一个就是 ulo ulo v 九的 o x 步数,那么 呃是因为他这个出来的比较比较新啊,所以他这个后面后续肯定会陆续的有一些呃生态来慢慢的建立起来。所以说像这个,呃,像这个探探 rt 啊,然后 c 幺加版的这个 ols 啊等等肯定都会陆续的就会出来啊, 呃,这是目前用拍子实现的一个啊,这个 o s 带 ulo v 九的部署,然后我们这个地方呢演示就到此结束。
粉丝439获赞4999

大家好,今天来跟大家介绍一个项目,这个项目就是用 ulo v 八的这个 o x 和这个 bid track 实现一个目标追踪,就相当于我们使用这个 ulo v 八的 o x 模型啊,然后呃结合这个 bid track 算法呢,我们实现一个目标追踪的一个算法。 呃,首先呢,我们呃呃我们这个元宝呢,它的环境是有要求的啊,必须要求这个大于等于 open c v 四点七点零啊, 那低于这个版本肯定是用不了的,所以大家注意一下。然后我们的 o n n s run time 这样的一个库呢,是微软的这个出的这个库的话,它呃测试的话是一点十二点零,所以这个呃库的要求是有要求的啊,不然的话它跑不起来。呃 呃第二个点呢,就是说啊,我们这个整个使用的是 cmag 工程,也就是 cmag list, 大家看这个就是 cmag list 啊, 然后呃理论上啊,我们这工程是支持这个 linux 和 c 幺幺啊,都是支持的啊,但是呢,你要改路径啊,比如说像这个 opens up 路径在哪里啊?你需要改这个在文字上面呢,我是啊,自己指定一下就可以了,这是在文字上面,所以我演示都是在文字上面的。 然后呢,呃我们的这个代码呢,其实代码量不是特别多啊,不是特别多,就是我们不看这个东西啊,我们不看这个里面有多少原码,有多少铜价,我们只看这个最基本的一个就可以了, 大家看看啊,它首先它就是加载这个 o s 模型,然后通过摄像头读取啊,获取它的这个摄像头的一些啊,就是视频的一些参数啊, 当然这个地方传摄像头也是可以的,然后这里边啊可以传一些,就是可以得到它的一些参数,然后我们可以看到啊, 呃,他得到这个我们主要第一步吧,主要是得到头像,是吧?然后第二个就是对他做目标检测,我们得到一个这样的 option 的词,这样的一个 自己创下了一个结构体啊数据,那么我们会把它放到这个 update 里面去 update, 然后最后我们得到结果把它混上去就可以了啊,这个就是我们整个的流程思路啊。 好,首先呢,呃,这个我们使用的是 vs 二零一九啊为例子啊,所以大家呢,最好是跟这个版本同步啊,不然的话你跑不起来,比如说,嗯, 呃,就是,呃,理论上也是支持二零二二的。 vs 二零二二,二零一七那是可以的,但是,呃要跑起来的话肯定是用二零一九,因为我是在二零一九上面测试的啊。 然后呢,我们这个,呃就是编译一下就可以了,来看看我们编译很很明显就成功了。呃,是这样的,因为这个,因为 o n s 转碳嘛,他们都是,我们都是用的 release 版本啊,所以你这个,呃不好,不太好调试,因为你这个 如果切换到第八个模式的话,他就是,呃有可能会有点问题啊,因为因为什么会有问题啊?是因为你的第八个库和 release 库他不一样的啊。然后我们这个边移通过以后呢,我们可以就是测试一下,我们跑起来试一试。好,大家看到我这个地方已经这个顺利的跑起来了啊, 然后大家看啊,这个,呃,你看这个 m p s 还是特别慢的,才二,才二, 但是目前的话他们都已经被检测出来了,因为我使用的是默认的八十六啊,这个这个特别慢,这个 i p s。 现在只到一了, 他这个是有,就是他也是跟你的这个运行的情况有也也是有有一定的关系的,就是比如说啊,比如说我从这门打开啊,再跟大家演示一下,他这个烧就会稍微快一点, 大家看到啊,这个明显的就稍微要快一点点啊,但是他也是,呃,也是跟电脑的这个性能有关系啊,就是我昨天 啊,昨天测的时候大概就是六吧,他 fps 是六啊,现在变成了二,每次还都不一样。总而言之呢,因为用 cpu 的话可能就慢一点,因为他毕竟使用的是 这个 u v 呃 u v 八这个呃大点的模型,所以它这个是比较慢的,然后再加上它是 c p u 啊,所以它整体来说是比较慢的,那你换成这个 啊,这个是呃,这个 ulo v 八 s, 你看它这个其实还是参数量有点大的,所以它比较慢,但是如果你换成 n 的话,可能它就稍微快一点,那我就给大家来换一下,演示一下 啊啊,我就换了一个 ulv 八的 n 的模型啊,大家可以看到啊,这个是都参数量都比较少了,你看,然后,呃我就,我就不重新编译了,然后我就直接把这个 ulv 八 n n s 改成这样,名字一样的,然后我们再跑一下试试 啊,大家可以看到这个明显的就是要比呃前面一个要快啊,要快一点, 因为这个可能就是跟 cpu 占用有关系啊,刚才跑的是它的 f p s 大概是十七啊,十七左右啊,不知道为什么它这个显显示就很慢啊, 可以重新再跑一次看看。 呃,很明显啊,它这个物体多了以后,你看它就会越来越慢啊,它的物体多了以后,它就它的 f p s 就 就会越来慢,但是它那个检测的物质少的时候,它的这个 i p s 就会越来越高啊, 但总体来说,我们这个肯定是这个代码应该是没问题的,代码应该是没问题的啊, 啊, 好,大概就是这样的吧,它的这个好像也跟这个,从这个统计的这个视频的演示来看,它这个即使它的数量降低了,它 i p s 基本上也就没有怎么变化。 ok, 这样就演示就到此结束了,我们撤下了。 呃,然后呢,就是啊,我刚才把这个录屏的这个软件关了以后呢,大家,呃,可以看到它这个 f p s 就是十六和十七啊,然后我看了一下,基本上我已经在十六和十七。 可见啊,这个程序的运行呢,跟你的这个 cpu 占用还是有关系的,如果你打开其他软件被占用了,那很有可能会导致你的这个 lps 降低啊,所以呢, 刚才我们演示的越来越慢了,就是因为你这个开的有其他的软件啊,在这个占用这个 cpu 啊,所以它导致很慢,然后我,呃把它演示关了以后,大家看这个截图啊,当然这 只是一张啊,但是,呃,事实说话就是啊,我就看就是把这个录屏软件关了以后呢,他这个 ips 就是大概在十七 ips 左右的样子啊 啊,总体来说啊,我们代码应该是问题不大啊,毕竟是也是就是开源的代码改的,所以问题不大。呃,主要就是, 嗯,确定的话,就是第一个就是呃它支持 windows 和六四了。第二个就是说如果你的 o r s 转 time 是 g p u 版本的话,那么肯定是可以使用 g p u 的, 因为这个代码里面其实也做了一些就是 cpu 和 gpu 的自动切换啊,但是你需要你的这个呃扩大环境和 o s 轮胎等要要支持才行啊。所以啊,我跟他演示了,我们就使用了 cpu, 这样我们就不需要关注于扩大的东西了, 就是呃 gpu 加速的问题,所以我们就演示一下就没问题了。呃,好,这个代码呢,基本上就是这样的,所以演示就到此结束了。然后呃,感觉就是啊,其实啊,大家知道啊,就是 呃追踪和 beautre 的追踪呢,其实,嗯,其实有比较好的算法,其实我们稍微改一改就可以了,可以嵌入到任何的这个目标的框架里面,比如像呃呃,开源的也有啊,像 ulov 八, tender 七啊, oppo x 啊,甚至可以用这个 ulox 啊,这些检测框架 ulox 啊,都是没问题的。呃,好,我们这个演示就到此结束,欢迎大家收看。

大家好,今天要讲的内容是快速上手优乐 v 八,进行目标检测。 在本节课中,我们将在 windows 环境部署优乐 v 八,使用优乐 v 八提供的拍摄接口进行目标检测。另外,我也会进一步讲解如何阅读优乐 v 八的原码文件。 ulo 是一个端到端的实时目标检测算法,从他的名字就可以看出, ulo 算法只需要一次前向传播计算,就可以实现图像的多目标检测 做任务。 优乐算法兼顾了识别的准确率和检测速度,因此非常适合在实时检测的应用场景下使用, 例如视频监控、自动驾驶、无人机等领域都可以使用优乐来完成相关的任务。 yolo 算法于二零一六年首次推出,目前已经升级到 v 八版本。简单来说, yolo v 一到 v 三是 yolo 算法原始作者发布的版本,它的主要作者为 joseph redman。 从优乐 v 四开始,后续的升级版本来自不同的作者和团队开发。严格来说, 他们属于优乐系列的精神序作,例如美团、旷世科技等公司的研发团队都有参与其中。 我们可以在 outrelitics 公司的官网上找到 yolo 的各个版本,这些版本都有对应的开源代码。在本节课中,我们将详细介绍 yolo v 八的安装和使用方法。 ulo 模型的安装和部署非常简单,我们使用 conduct crete 创建一个新的拍摄环境,然后激活这个环境,再输入 pipe install ultra ctx, 就完成了 ulo 的安装。 接着在这个康大环境中打开 python, 输入 from autolitics import yolo 这行代码,这里如果不出现错误,就说明完成了 yolo 的安装。 打开 ultralitics 的官网,在 quick star 中可以找到 python 的样例代码。下面我们基于这段样例代码来详细说明 ulo 接口的使用方法。 我们将样例代码的前两行复制过来,第一行表示在代码中导入优乐模块,然后是 model, 等于优乐。 yolo v 八 n 点 yamo, 这句代码表示读取 yolo 的配置文件, 那我们要注意的是官方给出的样例代码中的这个配置文件。 yolo v 八 n 点 yamo 实际上并不在 yolo 的模块中,要用这句代码后也不会从互联网中下载这个文件,这一点可能会给新手带来困惑。 为了弄懂这句代码背后的意义,我们需要找到 altrolytics 模块儿的原代码,并在其中写一些 print 调试语句。最后找到真实的 yama 配置文件进行阅 阅读。 首先找到刚刚在康纳中创建的 ulo v 八环境目录,从中找到 ultralitics 模块, 具体路径是 e n v yellow v 八 lab set packages ultralitics。 继续打开其中的 models yolo 文件夹,然后打开 model 点 p y, 会看到刚刚使用的 yellow 类,这个类继承了 model 类具体的实现。在 model 类中。 从第一句的导入代码可以知道 model 类在 autolitics 下的安真文件夹中的 model 点 py 文件中。 找到这个 model 点 p y 文件后,我们要在它的 unit 函数中加几句 print 调试代码进行进一步的研究。 unit 函数传入的 model 参数代表了配置文件名或模型的名字,我们在 unit 函数的第一句前打印第一个井一标记和 model 的值, 它的下面是一些初始化的代码,我们忽略这些代码。继续向下看, 在 softix 等于 pass model 点儿 softfix 这个位置打印第二个井二标记 和 sophics 的值,然后继续忽略下两行代码。这里要注意 if sophics 音点压木这一句对于样例代码的调用方式会走这个分支,也就是进一步调用 sof 点 new 这个函数。 向下找到 new 函数,函数的第一个 cfg 参数就是我们刚刚传入的 model。 在 new 函数中打印第三个井三标记和 cfg。 下一句代码鸭某 model load c f g 是关键内容,我们可以在 ultralitics 点 n n 点 task 中找到这个函数的实现。 打开 task 点 py 文件,找到 yama model low 的函数,函数传入的 pass 就是刚刚的 cfg 变量。在这个位置打印第四个警次标记和 pass 变量。 观察下一句很复杂的代码,它具体在做什么其实我也没搞明白,实际上这行代码有什么作用也不重要。在下一句 unified pass 后打印第五个标记, 在下面的压模 low 的前打印第六个标记。实际上 ulo 最终读取的配置文件名保存在压模 file 中,这样我们就完成了必要的 print 调试代码 运行程序会得到如下结果,首先打印了标记一传入的文件名是 ulo v 八 n 点压木, 实际上这个文件根本就不存在。其实我也很困惑为什么样例代码要使用一个根本不存在的配置文件,了解其中原因的小伙伴可以留言讨论一下。 接着打印二三四五这几个标记,这说明我们正确的理解了代码的执行流程。 最后打印的标记六, ammo file 这个变量保存了真正调用的配置文件的路径, 按照这个路径 打开对应的文件夹。在 cfg models 下保存了 ulo 各个版本的配置。 v 八是我们当前使用的版本,打开 v 八目录,可以找到我们正在使用的配置文件。 ulo v 八点 yamo, 在这个配置文件中记录着必要的初始化信息,例如 n c 冒号八十代表了模型需要识别的类别,数量是八十。 scales 表示模型的规模。 backbone 是模型的主干,用于特征提取。 pad 是模型最后的决策部分,用于预测物体的类别和边界框。 弄明白 yolo 的配置后,下一句 model 等于 yolo。 yolo v 八 n 点 p t 用于加载模型。 这里要注意模型最初是没有的,依次调用,会从互联网中下载优乐 v 八 n 点 p t 这个模型。 model 点 predict 用于预测结果。这里 bus 点 gpg 是官方给的样例数据,我们可以再找一些其他的测试数据一起进行测试。 另外有兴趣的同学可以进一步使用刚刚的调试方法,在代码中写一些 print 语句调试并理解其他的接口。 还有一点要说明,即使我们最开始不加载压模配置,也可以正常使用模型和预测结果。这个压模配置文件主要是用来训练模型用的 运行程序控制台会打印出运营信息,从信息中可以知道三个图片的结果会保存在当前目录下的 rise detect predict 文件夹中。 将结果图片打开,可以看到 ulo v 八的运行结果,其中在 bus 点 g p g 中识别出了行人、汽车等,在 image g p g 中识别出了行人、风筝等等。 那么到这里快速上手优乐 v 八进行目标检测就讲完了,感谢大家的观看,我们下节课再会。

大家好,今天来跟大家介绍一下这个使用这个官方的 ulo v 七,然后啊用 c 叉五去这个 winform 上面去做部署吧。 然后呢这个就是我们简单写了一个接口,主要是跟大家演示一下,然后我们提供的有这个 beat map, 还有这个 mat, 还有视频,还有摄像头这几个, 然后 b 的卖出来,大家可以看到他就是个啊,我们使用的这个类别呢,他直接加载这个优乐优乐 v 七的这个模型啊,然后啊虽然我们这个写的是优乐物的,他也支持优乐微我,然后呢他这个啊读取图像,然后呢推理,然后画一下图像,然后得到结果,这个就是很简单的。 第二个呢,就是这个使用 mat, 就是如果你使用的是 oppo c v 啊 shop 的话,我们也支持 oppo c v shop, 那么我们用 c v 这个读一下,然后它用了一个转化,它其实也是转的 beat map, 准备一下,然后呢用这个,呃,我们用了一个函数啊,去把它画出来就可以了。然后这个因为使用的是这个,呃, oppo c v 啊,它做的,所以它这个用了 oppo c v, 它有 am show 和 word key。 然后呢我们这个还有提供了一个视频和摄像头啊,摄像头,然后我们跟大家演示一下,然后这个就是 beat map, 大家看这个就是 beat map, 然后这个是这个 open cv shop 里面做的,其实是一样的。然后这个视频啊,我们看一下,嗯, 好,大家可以看到啊,这个视频呢,呃,就是这个视频的这个效果,呃,他这个 f p s 变化很大,变化 大,但是呢,呃也说明了问题啊,就是他有物体多的时候,他就就稍微慢一点,因为我们这个呃 f p s, 他算了,这个呃绘制图像的这个东西啊,就是大家可以看我们这个代码, 我们这个绘制图像的这个功能呢,实际上我们是从这个预测,然后画图像都算了啊,啊,我们是把画图像也算进去了,所以他是这样的一个效果, 嗯,这就是它的一个效果了,这个视频的啊,然后摄像头我就不跟他演示了,就是摄像头我就不跟他演示了。如果说啊,因为我们这个是使用的这个 cpu 的啊,就是 o r surround, 大家可以看到我们这个使用到哪些库啊?首先呢我们使用了 o n ns one time, 大家看这个是 os one time, 然后我们使用的是一点十五点零的版本,十五点零的版本,然后呢我们使用 oppo c p shop, oppo c p shop 呢,用到最新版本就可以了,那个不使用最新的版本也是可以的,因为我们只是调用他的这样的一个这样的一个图像的接口就可以了。 然后还有一个就是我们要注意一下,我们是使用 wifi 嘛,所以我们这个地方呢,因为这个呃我们使用的是这个看一下, 使用的时候大家压住下,把这个允许不安全代码扣上。还有就是我们使这个看一下,就是我们使用的这个目标框架,大家看到我们使用目标是点亮的 frontmock 四点七二啊,因为呃我们这个呃目前的话啊,大家可以看到我们在微风里面做开发的时候,你看 我们有四四点五安四点七啊,然后其他的呃大家可以自己安装啊,但因为我这个是 vs 二零一九,所以他呃支持不了这个六点零、七点零的这样一个呃框架,所以我们这个地方呢使用的是四点七点二最高版本,基本上都是 十分友好的这样的一个接口啊,然后基本上都是这个情况了,然后我们这个提供的接口呢,大家也可以看到了,我跟大家已经演示了这接口的代码,基本上都是这样的, 呃,视频和摄像头啊,目前的话就是 cpu 稍微慢一点,稍微稍微慢一点,如果说呃呃就是其实有有呃我也测过,就很很多人也测过,就是他发现就是 o n s 转碳嘛,他用那个 g p u 啊,用 g p u, 其实用 g p u 也是,呃稍微慢一点,稍微慢点,这个 是没办法的事情,不行的话,如果想要最快的方法,他肯定就是呃用 cr 去封装,然后去用 crv 去掉,这样的方式,呃肯定是最快的啊,但是用 os 让他们呢,但是他呃就是稍微简单一点讲一点,毕竟他没有,基本上没有用你其他的这个, 这个比较复杂,在码基本上都可以实现啊啊,这个就是我们用 ulov 七的这样的一个接管,然后,呃其实我们这个基本上已经完成了,所以在这个在 wifi 上开发还是比较方便的,比较方便的, 呃,我们使用的是 ulov 七塔里这样的一个小模型,所以,呃大家也可以尝试一下其他的 ulov 七其实也有 ulv 七这样的一个模型。然后我们这个呃转换的时候呢,是官方的原码,转换的官方的原码,那官方的原码就是, 是啊,我跟大家也看一下,就是官方的元宝,就是就是这样的这个,这个就是官方的元宝,大家可以看到啊,不是大颗粒的,大颗粒的它也有这个,呃, ulov 七的那个位次啊,位次格式,但是我们这个是用 p t u 格式转的,就是用这种啊后缀点 p t 这样的格式转的, 所以大家注意一下,我们这个使用的是这个官方的一个 logo 系列,而不是使用的那个 dartled 啊。 dartled 也算是官方的,但是我们使用的是拍透这样的一个框架去做的,这个就是我们呃整体的这个演示了,欢迎大家收看。


大家好,今天来跟大家介绍一下在 windows 下面啊,去部署这个优乐 v 八的姿态,估计这样的一个模型 啊,那么我们使用的是 ulov 八 n 这样 pose 这样的一个模型啊,那它的一个转换流程呢,非常简单啊,就是事先第一步啊,我们把它的拍套景模型转换成 oix, 那么我们使用官方的脚本转换就可以了,甚至使用官方的这个 c l i 命令转换也是可以的。 第二步呢,我们可以用 test r t 的这个 t r t e s e c 工具呢,将这个 n x 这个模型转成 test r t 模型啊,就是我们的 n 级模型 啊,转化了以后呢,我们就可以直接在携带码去引用就可以了,那么我们测试的环境是 vs 二零一九专业版,然后 cmake 是三十二点三点二十七啊,那么大家呢,如果说啊,是三点 呃,三点呃,低一点的版本都可以啊,高这版本都行。然后 oppo cv 呢,我们使用的是四点七点零去做的,然后特斯拉 t 呢,我们使用的是八点四点二点四, 然后我们的库档呢,是十一点一和 c u d a 八点二点零,那如果说你是这个呃,这个 rts 三零系列的显卡,我们也是可以用这个 coda 去做部署的啊,所以这些东西都没问题的啊,你不管你是 rts 三零九零还是四零九零的显卡啊,都是可以去做这个呃,用这个 coda 去做部署的啊,这个就是我们的基本环境啊, 然后呢,我们的这个代码呢,其实非常少,代码量其实非常少,不多啊,就是几个投文件,然后在里面去做了一个呃梦函数的 c p p 啊,然后最后呢我们跟大家 build 一下变了,然后我们使用 v s 啊,我们直接标的一个啊,标的一个这个 e s e 模型,哎,这个执可执行程序啊,那么通过各种可执行程序呢?我们演示一下就可以去实现一个比较好的一个自带估计,大家看到这就是我们实现的一个自带估计的这样的一个呃,结果, 当然这个我还没有去做封装啊,其实如果说啊,就是如果要他更好用的话,其实做封装的话就是 可能会更好一点,他其实以这个官方就是这个其实也是在网上开源下的,他其实已经做了一些封装了,其实也是非常简洁的。万一他的代码,他代码量不是很多啊,代码量不是很多, 基本上一看就能看懂,基本上也能看看懂啊,比如说他这个地方呢,是他的一个呃, k b s colors, 这是他你可以选项成就是一个,呃,就是一个 也绘制颜色的,这都是绘制颜色的,都是绘制颜色的。然后这个地方呢,其实我们主要是看他这个读取这个视频是怎么读的啊?首先他读取这个视频 啊,读到,读到视频以后,他读到这个一脉经里面,读到一脉经里面,然后他就调了这个函数啊, copy from, 就是把这个函数来去做啊,然后这个是做这个,这个这个是做了时间统计的,看一下他每次推理的时间是多少, 然后这个是他做了一个音符,大家可以看到他这个统计时间,他是没有统计他的这个,呃,这个啊,这个前处理的,大家可以看到这,这相当于是个前处理,他没有去做统计,他只是从这个音符来统计的。所以说, 呃,大家可以看到这是网上这个,这就是其实真正的都统计。人家说为什么我的 f p s d, 我的 f p s 慢,就是因为看你是统计了这个前处理后处理没有, 这个天他把这个前处理后处理啊,都没有做统计啊,所以,呃,他可能会呃比我们预想的要快,要快,就是因为他没有统计这些时间嘛, 呃,基本上就这些啊。然后呃代码量还是非常简单的,我觉得已经足够简单了啊,所以就没有做封装啊,没有做封装,这个其实也很简单了。这样呢,我们就实现了一个在 windows 下面 去做这个 test 二零部署的,那实际上如果你是 windows 十一的话,我觉得也是可以去做这个部署的啊。 当然这个 pose 呢,其实还可以去做这个其他方法的部署,比如像这个 o n n o, 呃,这个 o n n x 这样的一个部署啊,也是可以去做的 啊。然后如果说你想做这个,呃,像 c 叉部署啊,后面会呃尝试去做一下啊,去做部署,把它放到这个 c 叉部里去做部署,其实也是也是非常有趣的。好,我们这个部署呢就到此结束,欢迎大家收看。

在这里呢会给大家详细的讲到以优乐威武和 depot 算法为代表的检测跟踪技术类算法的一个呃部署的项目, 它涉及到四大场景,四大场景下的一个七种高性能部署方法,比如说这四大场景分别是如果是只需要一个呆萌来演示的话,你可以用这个福拉斯和外宝,这个比较简单一点代表就是服务器的话,服务器上你只要呃对这个食盐和吞吐要求低的话,可以在非家乡环境下部署这个 laptop 来这个运行优乐威武和的比赛。 呃,如果你对这个实验和通土要求比较高,可以选择这个英维达的特色 rt 来进行一个高性能部署。然后开发版的话就是选择了一个英维达的詹斯耐造系列的健康呃,开发版,然后还有一个熟人派的 呃其他线路事端这一块的话,就是可以进行一个安卓的部署和一个 ros 的部署,这个就是四大场景下的一个七类部署方法一个总结,详细的话可以关注一下这边的。

利用优鲁威五家迪士造算法来统计路虎的人流车流。呃,目前这个项目的话就是数据级,采用的是客户数据级,就是官方数据级,当然大家也可以制作自己的数据级进行训练来检测自己的目标。 呃,部署的话,这个目前是部署在这个站三台场系列的开发版上,呃, fps 的话大概是二十左右,当然你也可以部署在这个呃服务器上,或者说本地电脑上。目前项目已经开展,感兴趣的话可以呃来关注一下,谢谢大家。

大家好,今天来跟大家介绍一下如何使用亿元去这个部署 ulov 七的 onx 模型,大家看到啊,这个就是我们的亿元的这个环境啊,我们的这个亿元的环境呢,是这个五点九三啊,大家看到我们是五点九三的这个版本啊, 那么我们这个版本呢?嗯的一元呢啊,就是说谁让你使用其他版本,其实也是可以的,也是可以的,因为我们使用的模块 啊,我们就使用了精益模块,就使用了精益模块,那么精益模块呢,你使用八以上的都行啊,都随随便啊,精益模块,呃,我们用的也不多啊,里面的东西也不多,所以你用呃呃,什么样的版本区别不大。 然后呢,我们这个呃封装的命令呢,也非常简单啊,我们就封装了四个命令啊,第一个就是 ulov 七加载模型, ulov 七释放资源和 ulov 七推理文件啊, ulov 七 推理成自业机啊,这样我们是这个呃,就是封装了个四个十分友好的接口给大家啊,那么我们看一下我们的这个, 他的一个推理流程是什么啊?我们看一下,首先呢我们比如说我们从文件啊,怎么做啊?首先呢我们这个做推理的话,我们首先我们用 uvc 推理啊,加载模型,加载模型, 第一个参数是模型的路径啊,第二个就是你的这个标签的类别名字的 tst 路径啊,一行一个啊,第三个呢是他的执行度,第四个就是他的 iuu 啊,呃,这个参数呢,可以适当调一下,这个地方是零点三到六幺啊,大家可以随便选,我这边写的零点四五。好, 那么啊,我们构构建模型以后啊,我们就推理了,推理的话我们直接填一个路径啊,大家看到这个呃呃命令的里面直接传个图片就可以了,然后呢我们 直接得到推理结果,那么这个推理结果是什么样的呢?大家都看一下,我们的推理结果呢,是是这个一个一一个字符串,一个字符串,那这个字符串是怎么是什么样的这个内容呢?我给大家解释一下啊,首先呢我们的每一个框框,它的这个是与封号隔开的,大家看到封号隔开的, 然后呢第一个呢是类别的缩影啊,类别的缩影啊,第二个呢是这个执行度啊,第三个就是框的 x me y me x 和 y max 啊,这个它的左上角右角的坐标啊,这个就是整个的一个分布情况了啊, 在我们推理得到绘制结果以后啊,我们就呃可以去做这个啊,因为我们这个只只是做演示啊,这个绘制结果啊,这个是绘制结果的话,大家一定要注意一下,我们绘制结果呢,一定要 呃,就是要根据这个绘制结果啊,我们看一下,首先啊也是啊,大家可以看通过这个绘制结果也可以看到我们这个整个的分布情况,然后我们把它画画上去就可以了啊,我们给大家演示一下 点字页集,大家看到啊,他就会把这个图片呢把它识别出来了,识别出来大家看到啊,这个就是识别的效果啊,其实还非常不错的。那如果说你是从文件啊,他的接口其实稍微只是稍微有点变化,大家看到从文件上他看结果是一模一样的, 呃,如果是从文件,呃,是从自介集,我们看一下我们从自介集还是从文件啊?自介集的话呢,就是这个,首先我们读入图片啊,我们得到一个自介集,然后我们得到自介集的长度还是图片的大小,然后把它塞进去啊,就可以了,得到一个同样的推理结果,最后我们把它释放出来,这样的话我们就使使就是 实现了一个非常啊简单的这样的一个啊部署。所以说在一眼中啊,我们实现这个 ulov 七的步数,那么也是比较简单的啊,大家可以看我啊以前的啊,这个呃,我也服装过,像 ulov 五啊啊, ulov 八啊啊都是呃就是十分方便的和简洁的啊。 最后呢,我们知道啊,就是大家注意一下,我们使用使用的是 c 压压去做封装的啊,也就是说我们这个呃底层啊,其实用 c 压压洗的,大家看到我们这个是用 c 压压洗的, c 压压洗的, 那么我们直接封装成一个 dl 啊,然后我们通过其实我们的 dl 呢调用的就是 opencv 啊,所以我们这个是用 opencv 的底层去做这个推理的啊,所以说,呃我们这个啊,这个还是十分方便的去大家去做这个 啊部署的啊,那么当然我们因为他是没有用到 gpu 啊,所以他用 cpu 啊,我们可以尽量让大家就是说,呃,用小模型就是推理啊,这样的话就是说可能就是稍微快一点啊,如果用大模型的话就可能会非常慢了啊,这样呢,就是我们整个的这个演示的结果了,换下来试看。

大家好,今天来跟大家介绍一下啊,我们这个用 ulov 八去呃转换成 ncn, 然后在安卓上面进行部署, 呃,然后呢我们使用的这个安卓 studio 大家可以看到啊,在左上角大家可以看到我们安卓 studio 使用的是最新的版本啊,是二零二二点三一啊,这样一个 giraff 这样的一个版本,然后呢我们使用的 gdk 是十七啊,所以呢,我们这个呃版本还是算比较新的, 然后呢,我们打开我们这个 ulv 八的这样的一个 ncn 的一个工厂,这个其实是,呃就是 get 上开源的啊,呃,这里面主要是跟大家介绍一下,就是说第一个就是说啊, 呃不是像网上说的必须得用安卓 c 六四点儿叉的版本的,用最新版本的也是可以的。然后 这个我们呃环境安装确实比较麻烦啊,比如说像安卓 s d k, 那么它可能会非常大, 然后还有 ndk 啊,还有这个,呃他的一些转换还是比较复杂的,虽然说,呃他这个程序啊写的非常棒啊,但是呢,嗯他的难点是在于环境和模型转换 啊,环境的话就是,嗯,其实环境的话主要是需要有一定的这个安卓安卓的开发经验,然后才很容易的去把它给处理掉。 呃然后呢,呃大家可以看到我们这个 beauty grander, 呃,不是这个,我们看一下这个,呃我们使呃这个这个地方呢,呃都 都是,呃,都是我改的,都是我改,就是像这个编译的 s t k 版本啊,是因为我的我电脑我设计的是二十九,所以呢,呃就改成二十九了,然后它有一个 beautiful version 的是二十九点 零点六啊,然后还有一个就是,嗯, c mac 啊, c mac 呢,需要改成自己电脑配置的,然后,呃,我自己配置的是三点二、二点三啊,然后其他的话就很容易去做了, 呃,好,然后呢,就是啊,如果说你是这个啊,就自定义的模型的话,那肯定是需要改那些代码啊,需要改那些代码,然后如果你是这个,就是说啊,那个是官方的模型八车类的话,那么 啊其实也是要改一些的,但是改的很少,但是不会像那个自定义模型比较多啊,主要是在这个 s r c, 然后 gni 里面改,这边大家可以看到这边有优乐 cpb 啊,这里面要在这里面改,比如说像改你的类别,比如说有两个类别的话,你肯定都是要改, 像这个类别,大家看到啊,这个就是它的类别啊,所以呢,如果你是这个猫和狗两个类别的话,那那肯定是要改的啊,要改的。 呃,还有一些就是需要改的话,可能就是啊需要大家去根据自己的时间去改了,比如说像他的一个 啊,他的一个接点名称啊,输出接点名称啊,这个啊,呃是需要更加大家用这个啊工具去看一下他这个 os 里面他的一个接点,或者说 是看你的这个 ncn 模型的一个接点是什么东西啊?嗯,然后这个,呃我们就是实实际上测测出来,就是啊,大家可以看我们这个地方直接选标准那个 project, 大家看啊,这个地方呢,基本上就可以这个 build 下来,因为这个我已经 build 下来了,所以他不是, 呃特别麻烦啊,因为这个啊,因为我这个 beat 过了,所以很明显它是可以通过的, 那如果说你的代码没有任何问题的话,你只需要用这个这个 bird, 然后这个地方有一个叫做, 呃,接着为它 sine 的绑纸或 a p k, 你这样可以生成这个 a p k 啊,你看像我这个就已经这个成功了,那么我们只需要在这个地方啊,需要构建一个 builder a p k, 然后这里面有个 k 啊,大家可以自己去定一个 k, 但是 ctrl 六一个, 那么啊,然后就 nest, 然后选 release, 然后点击创建,那么它可以,它就是它会自动的去生成这样的一个 a p k, 那这它最终生成的 a p k 在哪里呢?它在这个大家看到这个幕后上面有个 a p p 啊, a p p 里面有一个叫做 release, 然后大家看这里面有一个 a p k。 啊,这个 a p k 呢?大家就是我用这个虚拟机测试过啊,就是大家可以看到这个地方是已经闭入的 saosa 是已经成功了 那,呃,如果说你用虚拟机测试的话,我测试过啊,因为他这个是摄像头的,你如果用虚拟机的话,没有摄像头他测不了啊,所以他这个 啊需要在甄姬上面去测啊,大家可以用甄姬去,在甄姬上面去这个模拟调制啊,呃,然后呢?呃,基本上都是可以成功的,他主要是在 u v 八里面, 它主要是它的一个转换比较麻烦啊, 它呃,就是呃网上呢,它有一些,呃,就是说,呃,大家可以看到啊,这个地方是我做的笔架,然后我们这个使用的 ndk 是二二五 c, 然后这个地方呢使用的是二零二二三一,就是最新版的安卓系列, 然后这个随便可,然后啊这个是我们的元宝,大家可以去看一下,然后他们最主要的就是这个啊,这个网站,你看这个网站啊,这个网站呢,他 现在不知道为什么不能用了,所以大家需要去用这个啊,就是用这个 ncn 去做转换啊,所以大家需要去下 ncn 的这样的一个编译包,或者自己编译也可以啊。呃,除此之外呢,还需要改这个啊, ulov 八的原码 需要改,不然的话跑不起来。呃,整体的来说啊,我们这里面没有什么用到什么东西啊,它主要是用到这个啊,当然装环境特别麻烦。第一个要装环境就是你要把安卓 studio 的环境给答案起来,比如像安安卓 s d k, 安卓 n d k 这样的环境呢,尤尤其是安卓 s d k 可能就是十几个 g 啊,大家看到 我这个在这个,在这个安卓是 s d k 里面,你看我大概你看一下多少计啊? 光保守啊,就光我这个东西保守的话,他他就用了大概就十十几个 g 吧,看一下他现在你看 啊,如果嗯用大概用了十个十 gb 的,刚好十 gb 啊,那么如果你都装的话,那可能就五六十 gb, 所以推荐大家不要乱装啊,因为你我最开始一装啊,装了个二三十 g 啊,直接把这个盘子给撑爆了,所以呢这个装还是要 效的。然后第二个就是需要大家去呃,关注的就是他的一个啊,优乐微八的环境啊,优乐微八的环境,然后训练的话就是跟正常的优乐微八训练是没有任何问题的,就是说你把优乐微八原版改了,是不需要 去重新训练的啊,所以呢,嗯,但这个原版要改不改是不行的。 然后就是 ulov 八的环境要自己搭建,然后还有安卓 os dk 这个环境要搭建啊,其他的就没什么东西了,就是其他的就是按照这个, 呃呃,就是教程走就行了,基本上网上都有,但是遇到的问题可能是很很很麻烦很多的,所以呢,我们这个基本上就把它跑成了。然后,呃,模型的话,我们就是用官方模型从 p t 啊,然后到 n s 代 n c n 这样去转啊,基本上整个流程 已经打通了啊。呃,然后我在这个电脑上测试啊,就是跟大家去说一下,就是测试的结果。呃,因为我的是红米 k 四零的啊,我的手机是红米 k 四零的,然后,呃,我测试的这个是一路尾巴 n, 然后用 cpu 和 gpu 去测, 实际情况就是感觉就是 gpu 提升的能力不太大啊,嗯,就是感觉这个 cpu 跟 gpu 是差不多的啊,这个我不知道是什么原因啊,反正就是大概有三十 fps 左右的样子,当然你的这个后台不能用开其他的程序,那开其他程序可能就会更慢了, 这跟电脑的性能也有关系啊,所以这个基本上就是这样,就跟大家介绍完了,然后大家看到我们整个的流程应该是掌握是没有过,没有问题的。

针对多任务模型压缩,作者提出了一种性能感知的全局通道修剪 pack 框架。首先从理论上提出了实现卓越 gcp 的目标。通过考虑层内核曾间滤波器的联合显著性,然后提出了一种顺序贪婪修剪策略来优化目标。 其中开发了一个性能感知的 oracle 准则来评估滤波器对每个任务的敏感性,并保留全局上与任务相关最多的滤波器。实验表明,该方法可以在性能下降很小的情况下将 flap 和参数减少百分之六十以上,并在云和移动平台上实现一点二倍到三点三倍的加速。
