IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于图像处理的物体识别与分类系统--2021研究生电子设计大赛总结 -> 正文阅读

[人工智能]基于图像处理的物体识别与分类系统--2021研究生电子设计大赛总结

基于图像处理的物体识别与分类系统

—2021研究生电子设计大赛总结

1. 赛题

?我们组选的是TI企业命题第三题:基于图像处理的物体识别与分类系统

  • 摄像机采集图像,通过图像处理算法实时检测识别出目标物体,并测量目标与小车距离,控制小车移动靠近目标并同时控制机械臂抓取目标物体进行分类
  • 抓取3种以上物体(例如:泡沫小球、泡沫方块等等机械臂可抓取物体)
  • 目标识别与分类可以使用Opencv、Arm NN、Caffe等任意框架
  • 目标距离检测可通过图像测距/激光雷达实现
  • 支持AM5708的DSP核心进行算法加速
  • 禁止使用带深度信息输出的摄像机

2.软硬件及实验环境

  • 软件

    • 框架:OpenCV框架
    • IDE:VScode. Visual stidio 2019
    • TI ProcessorSDK
  • 硬件

    • TI-RSLK专家版(搭载ubuntu操作系统)
    • 舵机控制的机械臂
    • 激光雷达
    • USB摄像头
    • wifi模块
    • 速度反馈直流电机
  • 实验环境
    在这里插入图片描述

3.解题思路

? ?主要分为图像识别与分类和小车驱动两部分。
? ?关于图像识别分类部分
? ?主要采用特征提取+支持向量机的方法。该部分采用Opencv框架,以C++语言编写程序。特征提取方面,先对视频逐帧读取得到图片,之后对图片进行灰度、二值化等图像处理操作得到待识别的预处理图像。机器学习方面,用最后要进行识别与分类的小球、方块和圆锥等物体制做训练集,然后在PC机上进行训练得到权重文件。之后将权重文件和识别与分类程序下载到工业派上,对图像进行识别与分类。
? ?关于小车驱动部分
? ?主要了解linux下C程序的运行方式以及arm在linux操作系统下的配置与使用,然后参照例程驱动电机、舵机、激光雷达和wifi模块。其中电机用以驱动小车前进或后退;前轮靠舵机转向;机械臂由舵机驱动,可以完成放下、举起和抓取等动作;激光雷达测量360度范围内障碍物的距离;wifi模块用于下载程序和与PC机通信。
小车前轮转向效果
? ? 小车前轮转向
在这里插入图片描述
? ?小车抓取物体
? ?关于图像识别程序和小车驱动程序的联合问题。
? ?图像识别程序采用C++语言编写,而小车驱动程序采用C语言编写。这俩程序难以互相转换使二者在同一个函数中编写,故我们采用共享内存的方式进行进程间通信。物体识别与分类程序将被识别物体的位置坐标、个数及种类写入共享内存,小车驱动从共享内存中主要读取物体的位置信息(物体与屏幕中线的距离)以指导前轮舵机的转向从而对准物体。

4.技术关键

? ?关于小车定点停车的问题
? ?小车要想抓住物体,必须停在距离物体一定的位置,这样小车在放下机械臂时才能恰好在可以抓起物体的位置。为达到此目标,我们采用速度、距离双环PID控制的策略。具体的策略为:预先设定一个我们需要的距离-速度参照表V-Smap,在这个表中,每个距离上对有对应的小车速度,而且这个速度是我们自己设定的并可以使小车定点停下来。在小车前进过程中,小车实时监测自己与目标物的距离和自己电机的转速。每到一个距离,小车就会去查表找到对应的预期转速,这个速度与当前的实际速度的差作为误差参与PID调节,输出的是控制电机转速的pwm的占空比。这样小车就能按照我们设计好的速度趋近物体并在指定的位置停下来。
在这里插入图片描述
? ?V-Smap

? ?图像预处理部分
? ? 预处理方面先要进行灰度处理,之后进行二值化处理使图像中只剩下被识别物体的实心轮廓。关于图像预处理,要使用DSP进行加速,其具体方式为用共享内存的方式将图片传入DSP,然后调用ti官方的图像处理库IMGLIB中的函数进行图像处理。处理完后再传回主程序中进行之后的支持向量机分类。

? ? 以共享内存的方式在ARM和DSP之间传输图像

在这里插入图片描述
? ? 使用opencv库中的二值化函数效果
在这里插入图片描述
? ? 使用IMGLIB中的函数DSP加速的效果

? ?物体跟踪问题
? ?假设屏幕中不只一个物体,仅仅知道当前帧特定物体的位置并不能完全指导小车趋近该物体。还得知道在下一帧中同一物体的位置。这样我们才能根据位置反馈来调节前轮舵机来对准物体。但实际的情况是,我们对每一帧进行物体的分类与识别,每次识别我们会给物体进行序号标记,遗憾的是,不同帧中同一物体的标号并不相同,如下图所示,在下一帧中可能是cone的index=2而cube的index=1,这使我们不能依靠标号来锁定物体的位置,按照我们预先的想法,假设同一物体的标号一直不变,我们以共享内存的方式按照标号将位置信息写入数组中该标号对应的位置,然后在小车驱动程序中一直读该数组同一位置的距离信息,以此来作为反馈来调节前轮舵机。但是因为标号在改变,这种思路行不通。之后我们也尝试用相邻帧同一物体位移距离很小的原则来锁定同一物体,但是这种思路对于屏幕中出现或消失的新物体的情况并不理想。最后询问哈工大的一位朋友得知可以用boosting算法进行跟踪来解决此问题。
在这里插入图片描述
? ? ? ? ? ? ? ? ? ? 成功识别物体效果图
? ?图像处理与识别分类的处理时间即实时性的问题
? ?在比赛开始之初我们完全没有考虑过实时性的问题,以为这种基于AM5708的工业派搭载linux操作系统运行起来会很快,但实际情况并非如此,在图像处理与识别分类部分,程序对每一帧都会进行机器学习,这十分耗时。我们做了程序计时,在图像预处理过程(灰度处理、二值化)中时间花费相对较少,时间大量花费在对物体进行识别分类上,这就导致位置信息的反馈是滞后的,无法及时发送给小车驱动程序以指导前轮舵机的转向。具体表现为小车的舵机在小车前进快接近目标时才接受到转向信息,但此时已没有剩余距离可供调节转向。哈工大朋友的建议我们可以采取只机器学习(svm)识别第一帧然后用boosting算法进行跟踪,根据他所说,hog+svm在pi4上能跑到10fps左右,但boosting能到60fps。这为我们的工作指明了前进的方向。

5.总结

? ?在做这次比赛之前我们团队仅有单片机的编程经验和少量的linux 操作系统知识,对于图像处理、机器学习、搭载在arm上的linux操作系统如何驱动硬件等领域毫无经验。但好在匠牛科技出具了完成的视频与文档教程为参赛者提供参考,使我们能够快速上手。在图像处理与目标识别方面,我们已经可以成功在PC端进行识别与分类但无法实现跟踪,而且程序下载到工业派中的运行速度太慢,以至于无法及时提供反馈信息以控制转向。这也和程序的控制策略有关系,我们不应该对每一帧都进行机器学习(这浪费了大量的时间),而应该只对第一帧机器学习并识别出物体后再使用boosting算法进行跟踪,这将会极大改善我们小车对准物体运行的情况。在小车定点停车方面,我们已经使用PID控制算法基本完成了从高速启动-缓慢行驶-定点停车的全过程,但是由于时间关系我们调整好PID参数及V-Smap来让小车的停车点更为精确。
? ?下图便是我们交上去的最终作品视频,可以看到视频中只有一个物体,因为我们无法实现跟踪及转向,就让小车直奔一个物体;没有抓到物体是因为没有时间来调节PID参数及V-Smap。
在这里插入图片描述

6.展望

? ?我们这次没有完成题目的指标,也没有在比赛中获奖,但是我们认真且努力地投入到了这场比赛当中,领会到了控制算法与机器学习的魅力,体会到了奋斗与坚持的艰难,也感受到了团队一起工作的快乐。这将是我们宝贵的经验与记忆,也是构成多彩人生的一点一滴。
? ?最后我想说,以出世的精神做入世的事情,认真做事,成功与否且随他,只求内心安乐。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 11:42:59  更:2021-07-07 11:44:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 10:27:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码