YoloV5输出检测结果给外界使用的操作流程

描述

emmm,我老师写的代码,Intel D435抓到画面,经过YOLOV5以后,输出结果控制小车来运动,很具体的代码就不能分享了,不过我就是想研究下这个CV算法的结果是如何和硬件世界产生联系的。

以太网通信

代码在运行的时候都是需要设置CAN的一些参数

一开始就是一个大无语的事件,在源码里面有一个代码的注释,套娃无止境~

以太网通信

合着这一篇文就是无限Copy呗,吐了

由于系统将 CAN 设备作为网络设备进行管理,因此在 CAN 总线应用开发方面, Linux 提供了SocketCAN 接口,使得 CAN 总线通信近似于和以太网的通信,应用程序开发接口 更加通用, 也更加灵活。

SocketCAN 中大部分的数据结构和函数在头文件 linux/can.h 中进行了定义。CAN 总线套接字的创建采用标准的网络套接字操作来完成。网络套接字在头文件 sys/socket.h 中定义。

截至现在,edge浏览器已经被我不小心关了两次了,吐了,

以太网通信

主要会开3个线程,有一个是测试的,在运行的时候是不需要打开的

以太网通信

这个就看一个定义就行

以太网通信

这里使用双目的相机做出来的,使用了队列的结构来缓冲

以太网通信

这个鱼眼我觉没有用到

以太网通信

以及图像中间的一些缓存结果

以太网通信

这个就是我在意的东西,推理的结果就这样就输出来

以太网通信

这里是把相机和tensor(英伟达的加速器),通用功能写一起

以太网通信

这里是相机的分辨率,直接就最高了

以太网通信

因为是英伟达的东西,所以CUDA必须出现

以太网通信

这个是算法的修正参数

以太网通信

这里有个疑惑的地方就是Z,可能是使用了深度相机,所以这个就可以读取到,上面说了,Z是相机到景物的距离,我土狗了。

以太网通信

这个就是我最感兴趣的,从图像中计算出来的一个结果怎么样才可以传到外部进行下一步的计算和使用呢?结构体里面第一个就是预测框的点容器,我觉得CV里面最好玩,最有成就感的事情无非就是这些事情了,下面是的你计算的物体的置信值,下面是标签,具体的这个距离还是需要使用双目相机来估计位置。

以太网通信

应该是可以使用的双目相机

以太网通信

具体的结构图

以太网通信

最大支持就是1080P的结果

这个就是当时的一张照片,我这里就截图了

以太网通信

这个是结果的参数结构体

以太网通信

YOLO的输出结构体

以太网通信

这个看注释吧,不过应该是有一个高性能车道线检测算法LaneATT,下面也有输出的结果,不过在室内是没有检测到。

以太网通信

算法的流程图

太详细的代码不贴了,不过这里可以放一个工具函数:

以太网通信

realsense到CV

以太网通信

这个就是控制车子和相机的代码

以太网通信

相机正常输出帧以后,开始处理

以太网通信

这句是来判断,是不是人和深度无限远

以太网通信

这里就是在上面条件成立的前提下开始控制车

以太网通信

只有两个

以太网通信

把要控制的指令打包好一发送就差不多可以啦。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分