0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像分类法实现智能车找路功能

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2022-02-17 12:00 次阅读

避撞功能是智能车的最基本保护能力,Jetbot 使用深度学习的图像分类技术来模拟人眼习惯实现这个功能,但这只是智能车所展现的最入门应用而已,接下去就要提升到“循路”的功能,跟着指定路线去前进,才是真正进入有实用价值的应用。

在这里有非常多精选的项目,其中的“TRANSFER LEARNING WITH JETBOT & TRAFFIC CONES”项目就是前面避撞应用的延伸,模拟无人驾驶车在道路上识别路锥所规划出的道路(如下图),然后驱动机电控制系统执行智能驾驶的功能。

有能力的读者可以访问,观看整个项目的构思逻辑,事实上这个项目使用了与避撞项目相同的深度学习图像分类技术来进行路锥的识别,在“blocked”与“free”与两个分类之上再添加“left”与“right”两个分类,其他的执行逻辑与避撞项目几乎完全一样。

在 traffic_cones_driving 目录下有三个脚本,分别执行数据收集、模型训练与现场演示三部分,与避撞应用的节奏是一样的,最关键的环节也是在“数据收集(data_collection)”部分,至于模型训练(train_model)的部分则添加迁移学习的功能,而现场演示(live_demo)的部分则增加比较细腻的判断,并且提供运行过程的记录功能,便于后面进行矫正的任务。

现在根据三个步骤所需要注意的重点,提供一些参考的说明,至于执行代码的细节直接对照避撞项目的脚本就可以。

1.数据收集:

使用data_collection_cones.ipynb

这个环境同样是整个应用中最关键与最繁琐的步骤,与避撞项目相同的,我们必须使用 Jetbot 上面的 CSI 摄像头进行数据采集,并且同时进行分类,主要有以下三件需要注意的事项:

(1)虽然原创团队使用“小红锥(如上图)”作为“分道物体”去部署行进的路线,但其实也可以使用任何物体来进行体验,包括“跳棋子”、“围棋子”或用“非透明”的定位胶带(如下图),只要颜色与地面(板)有明显反差的就行,例如浅色地板就用深色物体或胶带、深色地板就用浅色物体或胶带。

或者在下图这种印好赛道的板子或者塑料布上也可以,重点并不在于是否为“立体物”,而是能在图像中识别出的“明显边界”,这样就能用来执行这个数据收集的任务。

(2)执行图像收集的时候,并不需要将分道物体按照指定路线进行排列,只需要排成半个圆形或方形就可以。这里需要识别的“边界状况”是固定的立体物或线条,比前面避撞项目所需要面对众多“未知物”更加简单,因此 4 个分类大约各收集 20~30 张图片也就够了。

(3)采集数据的分类,请根据“摄像头所看到的画面”去进行分类,避免从人眼去判断目前镜头图像“可能”是哪个类别,这样才不会造成误差而影响最终的识别效果。下面列出几种分道物所采集分类的图像,提供作参考。

2.模型训练:使用train_model_cones.ipynb

这个项目名称里虽然有“Transfer Learning”在里面,不过只是在“Define the neural network”第一个步骤的“model = models.alexnet(pretrained=True)”用到 PyTorch 预训练好的 AlexNet 1000 类的分类器模型,但是这些分类与我们所使用的分道物基本没有关联,因此以使用这个模型为基础的迁移学习并没有明显的帮助。

如果想将前面的避撞功能加到这个循路应用里,有两种方法可以实现:

(1)将避撞项目收集好的 “blocked” 与 “free” 类别图像数据,分别加到这个项目的对应目录中一起进行模型训练。

(2)运用“迁移学习”技巧,在执行模型训练之前将避障项目的 best_model.pth 导进来作为训练的基础,当然您得先把避撞的 best_model.pth 模型文件复制到这个目录下。不过这个做法需要在代码上做些小幅度的修改,将“Define the neural network”第一个步骤进行以下的调整:

#关闭原本的pretrained设置model=models.alexnet(pretrained=False)#添加下面代码model.load_state_dict(torch.load('best_model.pth'))

这种做法的好处是,未来面向更多不同分道物的时候,可以不断往上叠加以增加Jetbot适合的使用场景。

例如第一次使用红锥做分道物,进行数据采集并训练出 best_model_cones_1.pth,等后面要使用定位胶带做分道物的时候,就能在 best_model_cones_1.pth 的基础上去训练能识别红锥与定位胶带两种分道物的 best_model_cones_2.pth 模型,真正发挥迁移学习的效果。

3.现场演示:使用live_demo_cones.ipynb

这个脚本与避撞的 live_demo 基本逻辑是一样的,项目提供一个完整的决策流程图(如下)可以参考一下。

另外这里面还添加一个“第一视角(FPV, Fisrt Person View)”的视频记录功能,将循路的行进过程完整记录下来。

这个功能在校正过程中是非常有用的,但是视频存储的工作会占用 Jetbot 不少的 CPU 计算资源以及非常紧凑的存储空间,因此完成校正之后就建议将这个功能关闭,这个功能的函数名是 “save_frames_with_telemetry” ,请使用网页搜索功能在脚本里找到位置,只要在前面加上 “#” 关闭调用就可以。

剩下的工作就是按部就班去执行,有了这个循路的功能之后,才是让 Jetbot 真正进入智能车应用的起点。

原文标题:NVIDIA Jetson Nano 2GB 系列文章(51):图像分类法实现找路功能

文章出处:【微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


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

    关注

    3

    文章

    587

    浏览量

    28964
  • 摄像头
    +关注

    关注

    59

    文章

    4608

    浏览量

    92901
  • 智能车
    +关注

    关注

    21

    文章

    395

    浏览量

    76695

原文标题:NVIDIA Jetson Nano 2GB 系列文章(51):图像分类法实现找路功能

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    无线语音遥控智能车设计与实现

    目 录0 前言22 无线语音遥控智能车设计概述42.1 设计目的42.2 设计实现总体功能43 系统总体方案53.1 方案论证53.1.1 方案一53.1.2 方案二53.1.3 方案三53.2
    发表于 07-31 22:12

    飞思卡尔智能车图像采集与处理

    飞思卡尔智能车图像采集与处理
    发表于 07-31 23:50

    智能车

    智能车的源程序
    发表于 08-31 18:09

    智能车设计基础

    智能车设计基础 第10章.rar http://filemarkets.com/file/bai2471/9d9e6c95/智能车设计基础 第3章.rar: http://www.t00y.com
    发表于 10-21 21:11

    智能车

    智能车设计 大家看看
    发表于 10-11 13:13

    功能智能车

    我们要设计的智能车具有多种功能,可实现wifi远程控制,主人可远程监控并控制房屋内的各种设置
    发表于 10-20 11:13

    智能车

    把学习板搞成一个红外遥控,重力遥控,追光,跟踪,避障,循迹智能车,还具有传统开发板的其他功能
    发表于 10-28 13:29

    实时监控防火智能车

    功能吧:基于51单片机,利用火焰感应、温度传感、GSM、寻迹和驱动等多个模块,实现对仓库或有毒易燃物品的无人化二十四小时监控,更灵敏更经济。可以实现智能车在闭环控制以及接受
    发表于 04-29 00:11

    智能车PID+算法实现原理讲解

    智能车PID+算法实现原理讲解
    发表于 04-20 18:26

    树莓派智能车AlphaBot系列教程

    ;catid=57树莓派智能车AlphaBot教程1:人生若只如初见 ...树莓派智能车AlphaBot教程2:直流电机控制 ... 树莓派智能车AlphaBot教程3:避障树莓派智能车
    发表于 05-15 15:39

    智能车系统解决方案总体设计

    OV5116获取地面信标的位置和智能车的相对位姿,经过图像处理得到智能车相对于信标的偏移角,并将数据通过蓝牙通讯的方法传递到地面受控智能车智能车
    发表于 10-24 19:17

    基于红外传感技术的STM32智能车

    设计一种集红外遥控、 黑线循迹、自动泊车、车速检测、行驶路程显示等功能于一体的智能车。主要使用了红外传感技术,并结合 STM32F103 系列芯片,模拟现代新型汽车的自动驾驶功能。 采用槽型对射光电
    发表于 02-28 20:07

    DIY一个智能车的资料分享

    暑假想自己DIY一个智能车暑假想自己DIY一个STM32智能车嵌入式一嵌入式硬件二嵌入式软件功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个
    发表于 01-10 07:06

    智能车制作相关资料分享

    文章目录前言一、智能车是什么智能车总体概要比赛内容二、为什么要参加智能车1.收获功利的角度看从体验的角度看三、备赛找队友找队友的四个方面:1:意愿2:责任心3:日常表现4:时间PS:最好不要找好
    发表于 01-17 07:48

    智能车竞赛浅谈——图像

    前言本文主要记录一点有关智能车摄像头相关的内容,供入门智能车的同学一个参考,主要参考opencv、图像处理的部分知识来分析描述。认识图像基本含义首先,咱来了解一下
    发表于 09-24 15:05