目录
一.序言
二.摄像头的选择
1.简要介绍一下我对这两个东西的印象
2.常用资料
3.二者在硬件配置上的差别,我所了解的
4.总结下来
三.本次电赛的思路
1.心路历程
2.简说机械臂
3.视觉的方案选择
(1)矩形识别不太好用
(2)决定用色块识别
(3)色块排序
(4)色块滤波
(5)其他功能
(6)代码
(7)最后的话
一.序言
今年大一下,参与一下电赛涨涨经验。临比赛前一周开始学习视觉,走了一些弯路,也有一些收获。在准备期间看了很多CSDN上往期电赛思路的分享,发现视觉方面的资料相比其他来说少一些,于是打算学着大佬们记录一下这次的经验和体会,也希望我的文章能够给后来学习视觉的同学一些启发和参考。不过很明显本人纯纯菜鸟,所以也不会有很多正经的硬核干货,大佬勿怪。仅希望让小白们少走一点弯路。
二.摄像头的选择
在开始学习之前,选择一个合适的硬件当然是重中之重。不过我没有选择,因为给我的只有Open ART mini。虽然说我手里也有一个从零件堆里翻出来的Open MV,但是因为带我的学长他们采购和使用的都是ART mini,所以我也就只能用这个了。
因为这次我实现的功能较为简单,所以我并没有感到两者很明显的差别。不过价钱有差别,ART mini一个要300多,MV一个要400多。
1.简要介绍一下我对这两个东西的印象
Open MV是国外一家公司生产的,目前国内的代理商是星瞳科技,在星瞳科技的Open MV官网上提供了许多中文资料,包括一个帮助你快速上手的中文手册,一个可以查询函数库的中文网站,下载IDE的网站,论坛,官方录制的视频教程(根据上手手册讲的),还有售卖的MV的购买界面和详细参数。
而Art mini似乎是另一家叫做逐飞科技的公司代理的。我们当时学习的时候上网想寻找一些资料,结果可以说是一无所获。只知道Art mini跟MV使用时的代码什么的基本都是通用的。无论是在浏览器搜索还是在逐飞科技的官网或者资料仓库里寻找都是一无所获。CSDN上的讲解更是几乎没有,甚至于我昨天才刚刚通过AI找到了一篇疑似为Open Art系列产品做宣传的文章,里面也没提及过mini。有人建议我去外网看看,可惜我不会翻墙,有需要的同学可以尝试一下。反正最终我是一直当作MV来用的。然后总学长那里搞到了一些之前他们写的代码,不过太多太乱,我也没细看。
还有一点很重要,其实我们当初选择采购Art mini而不是MV,除了便宜一百块,就是因为Art mini可以跑神经网络,而MV不能。不过其实对于我们这种水平而言,基本也用不上神经网络,而且据学长说,他自己搞了半个月,又叫来另一个大佬学长搞了三天,也没能弄明白怎么搞这个神经网络。所以只能说有余力,有需要的同学再去认真研究一下这个功能了。我其实也不是很了解,神经网络似乎就是类似调教一个大数据模型,举个例子就是可以识别手写数字。如果用普通的识别模板功能,我们只能做到识别打印出来的数字,而且要在摄像头里的储存用摄像头拍摄的多个角度的照片,以防识别不出来。
2.常用的资料
首先是星瞳科技给我们写的资料
搜Open MV跳出来的第一个就是星瞳科技的网站
下图是上手教程,其中不光包括了基础的快速上手的知识,还有最常用的几个功能的具体介绍。最下面还有很多官方例程,几乎覆盖了Open MV的大部分用法了,很值得一看。在电赛里运用到的功能其实经常就这几种,有空可以认真学一下,像我一样来不及的,可以先走马观花有一些印象,具体需要了再现认真研究。因为官方底层封装了很多代码,非常利于小白上手实现一些简单功能。
顺带提一嘴,Open MV和Open Art mini的底层代码都是C语言,但是为了便于上手,编程语言是Python。没学Python的同学也不要担心,我们在这里使用的都是Python中最基础的语法,着急上手的话可以去看官网教学视频,里面大致讲了一些需要用到的Python语法(在下图手册里叫Python背景知识),不过讲的不是很详细,还可以再结合一些速成Python的视频来学习,因为Python跟C语言的思维逻辑差别有点大,所以我当时学的也是稀里糊涂,不过你要是理解能力很强,那这简单的教程就完全够用了。
下图是中文文档中的内容,我主要是用来看各种函数库的(红框已框出)。还可以在搜索栏搜索自己已知的函数或参数等,来详细了解用法。不过你如果想搜需要实现的功能,比如这次比赛用到的色块识别,他就搜索不出来。仅适用于已知函数名,参数名等的情况下使用。由于我也是小白上手,而且没有时间系统学习,所以我都是先问问AI有哪些函数可以实现我想要的功能,再在这里搜索一下该函数学习如何使用(以前没怎么用过AI,现在发现AI是真好用啊)。不过虽然确实这个函数库已经挺方便了,但是其中语言还是有点简介的,对于我这个Python也是现学的人来说,看起来有点困难。实在有看不明白的,我也去问问AI,不过AI给出的信息也不一定准确,只能说起码比自己在这瞎猜强,大家还是需要实际去试试,甄别一下。有空的话可以认真学习一下常用的功能,对于电赛来说其实常用的功能也就那几样,就是在教学手册里单独讲的那些功能,尤其是排在前面的几个。大家如此聪明,看一眼就知道哪些比较常用了 :)。
再有就是在IDE里面官方也给了很多实例,大家有空的时候也可以多看看,里面的注释也是比较详细的。无论是IDE里的示例还是手册里的历程,都会对我们帮助很大,后面讲思路的时候还会再提。
还有那个官方的视频教程在最开始的那几个视频里有讲一些很基础的知识来帮助大家上手,比如IDE的使用啊之类的,视频也不长,初学时用来了解一下Open MV还是很不错的。其他视频也讲解了很多功能,不过似乎都是照着手册讲的,所以我没细看,大家想学习某一功能的时候可以看看,不过也是浅浅吐槽一下,确实不是专门教学的老师,讲授的水平有限,视频也是很简陋,看起来就像是在办公室随便拿手机录的,跟视频聊天似的。不过有总比没有强了,我见识少,能为一个产品的使用做这么详细的资料和教程,我也是头回见,所以其实也是很开心,大大降低了我们的上手难度,这样也更好卖货不是。(在此严肃批评Art mimi,资料为0,看起来像是不想卖货一样,淘宝上也只有逐飞旗舰店有卖,我都好奇他们怎么想到要买这个的)
除了这些官方给的资料,我昨天还发现CSDN上有两个讲的很详细的文章