用户分享汇总目录
INDEMIND双目视觉惯性模组创意征集活动,自启动以来受到了很多用户的积极响应,小D也受到了很多充满脑洞与创意的项目,今天为大家分享一下:
01.双目惯性模组的初探与实践
——来自熊猫飞天的投稿
INDEMIND双目惯性相机具备两个全局曝光的摄像头,图像帧率可以达到200FPS,1K Hz的IMU数据频率,具有硬件同步功能,是做VIO的理想设备。当然,价格也十分亲民。我在自家乡间小路上对模组及其SDK进行了深度、灰度测试,对SDK基础使用教程进行了一些更细致化的补充,同时我也把自己写的ROS节点分享到博客中,方便大家做参考。(我所使用的系统版本是ubuntu1604+ROS-Kinetic版本)。
测试视频链接:测试DEMO
博客原文链接:INDEMIND 双目相机使用教程
02.通过驱动字写数据采集程序
——来自用户椒盐蘑菇的投稿
最近做实验打算用之前购买的INDEMIND双目视觉惯性模组采集一些数据,虽然INDEMIND官方提供数据采集软件,但为了顺便复习一下OpenCV和C++,于是利用官方驱动写了一个简单的小程序。
比较棘手的问题:唯一比较麻烦的问题就是当帧率比较高的时候,数据量会比较大(双目惯性模组最高支持200FPS)。官方驱动的工作模式是,提供实现的回调函数它直接会根据硬件频率进行触发,回调函数必须能够比较快的返回。如果把写入放在回调函数里,会造成回调函数延迟,导致一些数据丢失。
解决办法:把回调函数获得的结果直接存入队列,再开多个写入线程进行写入磁盘操作,可以保证队列不会爆掉,要注意的一些问题就是多线程读写加锁的问题。
单线程回调,多线程写入:
Queue size: 0
Queue size: 0
Queue size: 0
Queue size: 1
Queue size: 0
Queue size: 0
Queue size: 0
Queue size: 0
Queue size: 1
Queue size: 0
Queue size: 0
四线程写入的时候将会达到预期效果。
完整实验代码:前往Git查看
03. INDEMIND双目惯性相机运行MSCFK
——来自知乎用户Sholmes
前段时间,我在苦苦寻找物美价廉的视觉惯性模块用来做VIO,问了一个ETH开发的,价格好几千,还是瑞士法郎,也看了看相对而言比较便宜的,比如Duo Camera等等,由于尺寸太小或者没有硬件同步之类的原因,应用场景都比较局限。
我是从高博的博客开始入门SLAM的。有一天看了高博的文章,是介绍一款双目惯性传感器。这一款不仅相机和IMU的频率足够高,还有我心心念念的硬件同步,而且高博的视频里,INDEMIND自主研发的Vi-SLAM跑的也很丝滑。
根据同类型的传感器价格,我开始以为这款也不便宜。读完高博的文章才发现,折后价格居然还不到千元,于是果断在某宝下单入手一件。
INDEMIND入手之后,我迫不及待的开始了运行VIO的尝试,不过开始的时候并不顺利。起初我没有搞懂INDEMIND自带的标定保存在什么位置。我加了INDEMIND的微信助手,回复说在配置文件里面T_SC。
我找到配置文件,又发现由于一直用的Kalibr做标定,不知道如何使用INDEMIND的标定格式。微信助手也是给我了答复。
不过之后通过查阅官网文档,我们发现,IMU标定所用的单位和我们通常用的Kalibr不一样。
所以实验室的小伙伴又改了一下INDEMIND的驱动。我们还用real sense对比了一下,两个传感器用相同方式运动,确认输出无误后,我们也用Kalibr做了标定。
接下来就是运行一个开源的VIO算法,MSCKF
项目地址:前往Git查看
我们先做了室内的测试,前几次效果并不好,因为检测到的特征点太少的缘故。调整了特征点检测的参数,获得了不错的精度。
测试视频:前往知乎查看
然后是室外测试,和室内一样也是特征点检测的越多精度越高。INDEMIND的相机曝光调整的比较好,所以即使在室外光线比室内强烈的情况下,也能检测到很多的特征点。
测试视频:前往知乎查看
总的来说INDEMIND比较适合跑VIO,因为具备硬件同步,相机的帧率也很高。相机的曝光调节的也合适,能用来在室外光照比较强的地方采集图像。我后来又参照着官方教程,用INDEMIND跑通了ORB SLAM,还试了一下语义分割,都得到了不错的效果。
项目地址:前往gitee查看
04.利用开源识别算法进行车牌检测
——来自用户bbadd_的投稿
最近想尝试做一下车牌的识别,正好手上有一个双目视觉模组,就想用这个模组试试车牌识别的效果。上网查了查,查到了ECCV2018的一篇论文,而且有国人用中文车牌数据集CCPD训练模型,效果还可以,就在楼下采集了一组车牌的数据,进行了测试。虽然测试结果一般(训练的比较粗糙),但双目惯性模组的数据采集功能还是值得点赞的!
论文链接:Sergio_Silva_License_Plate_Detection
CCPD训练模型链接:前往Git查看
测试结果如下:
车辆车牌识别Demo
05. 双目惯性模组导航项目分享
——来自用户来自用户Super博
项目简介:
项目需完成工程机械自动导航功能,前期通过GPS控制工程机械自动移动。由于在自动导航过程中的建筑物遮挡,出现GPS信号丢失问题,无法解决,因此引入视觉系统。GPS绝对定位精度高,缺点是易受遮挡丢失信号,视觉导航定位精度虽不如GPS,但能够在复杂的环境下作业。通过组合GPS与视觉系统,完成一套导航系统。(阅读本文需要ros基础)。
车体结构:
采用Indemind摄像头作为视觉数据采集与定位设备,放在车头,配合机动车底盘,控制板通过电子控制系统控制机动车。
技术简介
基本思想是建图,定位,然后导航的传统思路。采用ROS系统内建的gmapping建图算法,建图结果如图 3,A*与DWA导航算法,计算路径见图 4。
首先,使用INDEMIND摄像头作为视觉避障系统的视觉输入源与定位输入源,读取点云数据与定位数据送到gmapping算法,利用点云数据更新障碍物信息,利用定位数据作为odom话题发布者进行发布,便于更新车体定位。gmapping算法给出map话题。
再运行内置A*与DWA导航算法,订阅map与odom话题进行导航路径计算。ROS系统中配置的tf变换树如图 2,其中的camera_depth_frame为Indemind摄像头。
· 实验测试:
建图结果如下,可见INDEMIND建图较为精确,可绘制障碍物基本轮廓,提供较为精确基础数据。
A*与DWA导航算法计算出的路径如图 4,彩色区代表膨胀地图,可见导航算法计算路径已经避开膨胀地图中离障碍物较近区域。
小车移动后实时计算导航路径。小车依照导航算法路径前行,通过INDEMIND摄像头数据重新进行定位,如图 5,可见计算出的小车的角速度线速度已经发生改变,指示躲避障碍物的路径。
总结:
INDEMIND摄像头定位精度,视觉精度足够实现预期的视觉避障任务。出现的问题有,轮胎会出现打滑现象,仅仅通过INDEMIND摄像头定位,无法解决,需采用其他方法解决。通过解决打滑问题,能够实现更加精确的视觉导航。
……………………我是一条分割线………………
很开心在短短时间内看到这么多用户反馈。这些用户的真实反馈给了我们很多触动与启发,我们会进行一些综合评估,在现有服务支持的基础上,进行优化。相信过一段时间,大家能有更好的产品体验。
还没有参与活动的小伙伴们要抓紧啦,“创意征集活动”仍在进行中,4月30日前反馈优秀创意即可获得100-500元现金奖励,快行动起来吧~
活动:
同时,随着全国复工复产被按下“快进键”,想必很多小伙伴已经摩拳擦掌,忙着复工复产。在这样的特殊时期,小伙伴们不能放松警惕,解封不解防,个人防护仍然十分重要。
为了解决小伙伴们的后顾之忧,INDEMIND准备了一些健康包,快来领取吧~
活动规则:
4月14日起,购买双目视觉惯性模组可获赠健康包1个
19年至今,购买过双目惯性模组的武汉地区用户,凭借淘宝订单,可免费领取健康包1个。
活动时间:
本活动长期有效,结束日期另行通知。
健康包内容:
最后,小D祝愿每一位前行者,平安康乐!