共计 3071 个字符,预计需要花费 8 分钟才能阅读完成。
摘要:基于 HiLens Kit 曾经根本开发实现,可部署到 HiLens Kit,模型的抉择为基于 DarkNet53 的 YOLOv3 模型,权重为基于 COCO2014 训练的数据集,而车道线的检测是基于 OpenCV 的传统办法实现的,可通过 ModelArts AI Gallery 与 HiLens Kit 全流程端云协同开发部署。
点击传送门,先来看看最终视频成果吧→→(PS:请疏忽背景音乐)!
主体流程介绍:
- (可选,疏忽亦可,取决于摄像头品质,对于相机畸变较大的须要先计算相机的畸变矩阵和失真系数,对图片进行校对)图片校对;
- 截取感兴趣区域,仅对蕴含车道线信息的图像区域进行解决;
- 对感兴趣区域应用透视变换;
- 针对不同色彩的车道线,不同光照条件下的车道线,不同清晰度的车道线,依据不同的色彩空间应用不同的梯度阈值,色彩阈值进行不同的解决。并将每一种解决形式进行交融,失去车道线的二进制图;
- 提取二进制图中属于车道线的像素;
- 对二进制图片的像素进行直方图统计,统计左右两侧的峰值点作为左右车道线的起始点坐标进行曲线拟合;
- 应用二次多项式别离拟合左右车道线的像素点(对于噪声较大的像素点,能够进行滤波解决,或者应用随机采样一致性算法进行曲线拟合);
- 计算车道曲率及车辆绝对车道地方的偏离地位;
- 成果显示(可行域显示,曲率和地位显示)。
- 检测驾驶过程中路线中其余车辆状态,显示 车辆类别 、 置信度 ,并通过 YOLOv3 进行检测车辆,而后返回的车辆检测框的坐标与以后坐标进行透视变换获取大概的间隔作为车辆之间的 间隔 dis。
阐明:
本 Demo 的主体框架基于 HiLens Kit 曾经根本开发实现,模型的抉择为基于 DarkNet53 的 YOLOv3 模型,权重为基于 COCO2014 训练的数据集,而车道线的检测是基于 OpenCV 的传统办法实现的,所以计算量较大,导致整体速度较慢。
对于部署和训练——基于 ModelArts 和 HiLens Kit 的端云协同:
1)思考到部署,曾经测试过部署到 HiLens Kit 了,对了,也反对在 HiLens Stuido 运行模仿测试,更举荐在 HiLens Studio 哦,比拟不便,而且不须要硬件反对,只须要在 HiLens Kit 或 HiLens Studio 上装置 pillow 库就行了,对于如何在 HiLens Kit 和 HiLens Studio 上装置第三方库,非常简单的哦,可参考:
在 HiLens Kit 上:https://bbs.huaweicloud.com/f…
在 HiLens Studio 上:https://bbs.huaweicloud.com/f…
2)如果想训练或优化,由没有硬件(比方 GPU),那么很举荐应用 ModelArts 了,一站式开发,无缝连接到 HiLens Kit 哦,对于 ModelArts 的介绍可参考:https://www.huaweicloud.com/p…
同时兴许还能晋升下运行速度,这里介绍三种算法,亲测都能够部署到 HiLens Kit 推理应用哦,就在最新的AI Gallery(原 AI 市场)中哦,这里除了有算法,还有模型、数据集等等,很丰盛,大家能够本人摸索一下,同时还能够分享本人的算法给其余开发者,开发者订阅即可创立训练应用,很不便,相比于 GitHub,不仅提供了源代码,还提供了用于训练的硬件资源,弱小的 Tesla V100 32GB 版本哦。
(1)YOLOv3_Darknet53,没错,就是驰名的 YOLOv3,经典的指标检测网络,后续又推出了 YOLOv4、YOLOv5(暂称此名吧),AI Gallery 也推出了 YOLOv5 的,不过因为 PyTorch 框架暂不反对模 型转换,所以临时放弃了。
对于YOLOv3_Darknet53 的应用办法,算法界面介绍很具体,这里就不赘述了,能够参考应用,留神模型转换局部请参考这篇博文中模型转换局部哦:https://bbs.huaweicloud.com/b…
算法备用链接为:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=2d52a07e-ccbd-420f-8999-2ea7b4bdd691
(2)YOLOv3_Resnet18(GPU),如果咱们只想做车辆的检测或者为了简化模型,进步速度,能够选用骨干网络为 Resnet18 的 YOLOv3,网络更轻量,速度会快一些哦。
同样给上链接:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=948196c8-3e7a-4729-850b-069101d6e95c
(3)YOLOv3_Resnet18(Ascend 910),和下面(2)版本差别不大,次要改为由 GPU 换为 Ascend 910 训练的,大家可自由选择哦。
链接为:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=7087008a-7eec-4977-8b66-3a7703e9fd22
好了,算法局部解决了,数据怎么办呢?ModelArts 的 AI Gallery 同样想到了,提供了数据集哦,收费订阅,下载到本人的 OBS 导入就能用了(留神 OBS 须要肯定破费),这里我也提供了开源数据集的 5164 张人车图片,供大家应用哦,上链接:https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=a337272b-6918-4282-83d6-2b15e2a4c716
那么数据集和算法都有了,该训练了吧,在 ModelArts 上能够很好实现,凭借弱小的 Tesla V100 32GB 或 Ascend 910 能够很快实现哦。
上述整体操作流程局部可参考下述博文实现:https://bbs.huaweicloud.com/b…
运行成果:
实现执行如视频中所示解决的一帧须要约 300ms,也就是 FPS 约为 3,不较慢,须要优化。我感觉还有很大优化空间,比方:
(1)预处理和后处理很费时间,真正推理很快,能够从这方面减速,不晓得开启多线程是否有晋升,应该有吧;
(2)应该能够更好施展专用硬件,记得如同有 DVPP 和 AIPP 吧,能够用来做色域转换的操作;
(3) YOLOv3 的后处理解析比拟麻烦,这里用的是 COCO 的 80 类,但能够只用 person、car 两类,或者再加一点,同时 nms 也比拟费时间,如果能用算子实现,交融到 om 模型中,会提速很多;
(4)这里应用的是 Python,如果用 C ++ 应该会晋升一些,执行效率会高很多吧。
(5)优化提速要依据硬件性能,对费时的局部做剖析,以最大压迫硬件性能,须要做针对性、定制化地优化,我集体了解很浅,心愿有相熟的同学指教。
备注:
- 本 Demo 所用模型、代码均来自开源代码,如同是吴恩达老师的一个课程波及的我的项目,但找不到出处了,如果晓得的同学,还请在在下方回复指教,谢谢了。
- 本 Demo 的模型精度以及运行速度不做保障,仅供学习交换应用。
- 其余未尽事宜,还请多多指教。
- 代码会开源的,敬请期待哦,谢谢。
本文分享自华为云社区《Demo 分享 | 当主动驾驶遇到 ModelArts,ModelArts AI Gallery 与 HiLens Kit 开发》,原文作者:Tianyi_Li。
点击关注,第一工夫理解华为云陈腐技术~