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

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

3天内不再提示

【Sipeed M2 Dock开发板试用体验】图传功能使用与魔方色块寻找

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-28 15:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2290503_1_1.html


根据最近官方MaixPy3和M2 Dock的知识,参考官方文档和样例,在官方大牛的支持下,学习了基础的魔方色块的寻找功能,并以此分享给大家。

目录:

  • 基础知识普及:图传与Lab颜色系统
  • M2 Dock图传功能开启
  • 图传功能使用
  • Lab阈值获取
  • 魔方色块寻找

一、基础知识普及

  1. 图传:
    图传的概念,在无人机中非常常见,简单来讲,就是把摄像头拍摄的实时视频,又快又好的传递到终端设备上呈现,既要速度,不能卡,卡了没意思,也要质量,清晰度不能低,低了没得玩。而传输速度快,质量高,又可能占用较多的设备资源,以及需要较大的带宽,所以设计一个上好的图传方案和系统,是很多该行业厂家的重大追求目标之一。
  2. Lab:
    Lab是一种用数字化的方法来描述人的视觉感应的颜色系统。它是一种设备无关的、基于生理特征的颜色系统。在机器视觉中,Lab的概念会经常提及。
    可以用一张图,来详细描述Lab颜色空间:
    image.png
    上述图,是从人的视觉感应角度来看的。
    首先是L:表示亮度,从纯黑到纯白,取值可以从 0 -> 100
    然后是a:表示从红色到绿色的范围,取值可以从 -128 -> 127
    最后是b:表示从蓝色到黄色的范围,取值可以从 -128 -> 127
    通常,Lab会以范围的形式来表示,也就是Lab阈值,因为因为现场环境的不同,我们看到的颜色,不可能是完完全全的理论纯色,所以给出一定的容错范围;
    例如:[(0, 100, 21, 127, -128, -9)],分别表示:L-min、L-max、a-min、a-max、b-min、b-max,机器视觉就根据这个范围,来进行颜色判断。

二、M2 Dock图传功能开启

了解了以上的基础概念后,我们就可以进入正题,在M2 Dock上,具体使用相关的功能。

得益于MaixPy3的强大,不用10行代码,就能开启M2 Dock的图传功能,以下为实际的代码:

from maix import camera, mjpg, utils, display

queue = mjpg.Queue(maxsize=8)
mjpg.MjpgServerThread("0.0.0.0", 18811, mjpg.BytesImageHandlerFactory(q=queue)).start()

while True:
    img = camera.capture()
    jpg = utils.rgb2jpg(img.convert("RGB").tobytes(), img.width, img.height)
    queue.put(mjpg.BytesImage(jpg))
    display.show(img)

要运行上述代码,方法很多:

  1. MaixPy3的网页编辑界面中,运行上述代码:
    image.png
  2. 可以用adb shell或者ssh连接到M2 Dock后,运行python后,再输入代码运行
  3. 也可以用adb shell或者ssh连接到M2 Dock后,用vim编辑tuchuan.py并保存后,再执行python ./tuchuan.py运行

方式1最方便,方式2最麻烦,方式3运行效率最好。

建议一般玩家,选用方式1最合适了。

正确运行以上代码后,就能正常开启图传功能了。

二、图传功能使用

要访问M2 Dock提供的图传功能,可以有几种方式:

  1. MaixPy3的网页编辑界面中,运行了图传功能开启,运行界面直接就调用了图传数据并呈现出来了,如上面的图所示;
  2. 如果是通过adb shell连接到M2 Dock执行启动图传的代码,那么可以使用http://127.0.0.1:18811直接访问,如:
    image.png
  3. 如果是通过adb shell连接到M2 Dock执行启动图传的代码,且已经联网了,那么可以使用http://设备ip地址:18811直接访问,如:
    image.png
  4. 还可以写一个简单的网页,打开网页直接访问(地址请参考2、3),如:
<img src="http://127.0.0.1:188811">

image.png

M2 Dock的这个图传地址http://127.0.0.1:18811的实际处理,使用的是在 MaixPy3 中内置的 mjpg 包来进行的。MJPG 编码是一种常见且简易的视频编码方案,只需要将每一帧压缩成 jpg 图片后不断发送给客户端就行。

三、Lab阈值获取

前面说过,机器视觉中会利用到Lab,同样的,MaixPy3也提供了很简单的方法来应用Lab阈值。

我们先想办法,来得到一组合适的阈值,这可以使用HonestQiao/thresholding-filter-browser-html: Browser HTML opencv.js thresholding filter lab hsv binarize (github.com)工具。这个工具由Sipeed的大牛JunhuanChen提供,我fork源码后做了一点点小修改,方便使用。

然后,开启命令行,在上述下载的代码目录中,执行如下命令,启动本地web服务:

python -m SimpleHTTPServer 8888

如果执行后提示:

No module named SimpleHTTPServer

那就换一条指令:

python -m http.server 8888

成功运行后,会出现提示信息:

Serving HTTP on :: port 8888 (http://[::]:8888/) ...

然后,通过网页访问 http://127.0.0.1:8888/即可打开在线获取Lab阈值页面:

image.png

在该界面上,提供了一个默认的色块图片;

你也可以上传已有的图片来进行处理;

image.png

如果前面开启了图传,那么可以设置图传地址:

image.png

根据使用的经验,我一般会这么进行调整,来获取需要的阈值。

例如,我想要获取橙色色块的阈值,那么,我会先调整a,达到如下的效果:

image.png

在上图中,可以看到红色色块与橙色色块接近,所以先让这两个色块在右图上,都呈现出白色区块。而其他部分,都呈现为黑色。

然后,再调整L,使得颜色暗一些的红色,被排除掉:

image.png

然后可以切换到魔方的其他面,并进行微调,确保能够较好的识别各个面的橙色块:

image.png

注意,获取Lab阈值的时候,不要像下面这样,把同一种颜色都拧到一面来:

image.png

这样确实很整齐,但是,我们不仅仅要获取这种颜色的阈值,同时,还得把其他干扰的颜色,给排除出去。

所以,把魔方打乱了去识别,效果会更好。

通过以上的方式,我们就能得到魔方六面6种颜色格子对应的Lab阈值了。

but,but,but,经过实际测试发现,我手头这个三阶魔方,是比赛用的,贴纸半光高亮的,红色和橙色,人看着挺好,但摄像头不好区分。

于是,我把家里的魔方摆出来,仔细挑了挑:
image.png

最后选择了金字塔魔方,这个魔方是黑底的,颜色为红黄蓝绿四色,颜色分明,底色也不会干扰。
而白底的魔方,通常都有白色色块,会造成干扰。
另外咱们现在还是做很基础的实验,所以也不能用纯色的魔方。

挑选出来的金字塔魔方真身如下:
image.png
image.png

在我挑选魔方的时候,孩子很好奇我在干嘛,于是凑过来。
然后,然后孩子就占了主场,不出一分钟,就理解了Lab阈值的概念,并学会了怎么获取Lab阈值:
image.png

所以下面的部分,主要由孩子完成,我提供技术支持和指导。

我们用一个手机支架,把M2 Dock支起来,摄像头对准魔方:

image.png

然后在Lab阈值获取界面,进行阈值的调整查看:
image.png

最终,获得了四组颜色对应的嗯Lab阈值:

[(0, 100, -128, -23, -128, 127)], #绿色
[(10, 100, 30, 127, -37, 127)], #红色
[(40, 100, -25, 42, 7, 127)], #黄色
[(0, 100, -128, 127, -128, -46)], #蓝色

并参考官方的例子,编写了下面的程序:

from maix import image, display, camera
color = [
        [(0, 100, -128, -23, -128, 127)], #绿色
        [(10, 100, 30, 127, -37, 127)], #红色
        [(40, 100, -25, 42, 7, 127)], #黄色
        [(0, 100, -128, 127, -128, -46)], #蓝色
        ]  # 0.5.0 以后蓝色的 lab 阈值,0.4.9 之前为 [(13, 11, -91, 54, 48, -28)]
font_color = [ # 边框和文字颜色,暂时都用白色
    (255,255,255), # 绿色
    (255,255,255), # 红色
    (255,255,255), # 黄色
    (255,255,255)  # 白色
]
name_color = ('green', 'red', 'yellow', 'blue')
while True:
    img = camera.capture()
    for n in range(0,4):
        blobs = img.find_blobs(color[n])    #在图片中查找lab阈值内的颜色色块
        if blobs:
            for i in blobs:
                if i["w"]>15 and i["h"]>15:
                    img.draw_rectangle(i["x"], i["y"], i["x"] + i["w"], i["y"] + i["h"], 
                                       color=font_color[n], thickness=1) #将找到的颜色区域画出来
                    img.draw_string(i["x"], i["y"], name_color[n], scale = 0.8, 
                              color = font_color[0], thickness = 1) #在红色背景图上写下hello worl
    display.show(img)

运行上述代码后,识别的效果如下:
image.png

image.png

从中可以看到,M2 Dock又快又好的识别出来了对应的魔方色块颜色。
当然,因为背景颜色和黄色接近,所以也被识别了。
可以找一张大的黑色胶片或者黑色纸,垫在下面和支在背后,这样子就能消除干扰了。

识别视频,详见作者原帖子文章。

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

    关注

    3

    文章

    303

    浏览量

    2643
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【作品合集】矽速科技Sipeed MaixCAM Pro开发板测评

    + MaixCAM Pro开箱 【Sipeed MaixCAM Pro开发板试用体验】+ 02 + 基础功能测试 【Sipeed Maix
    发表于 09-05 09:33

    【作品精选】2025电子发烧友开发板测评大赛作品合集!

    科技01 Studio K230开发板测评作品合集 赛昉科技VisionFive 2单板计算机开发板测评作品合集 矽速科技Sipeed MaixCAM Pro
    发表于 09-03 15:24

    deepin 25成功适配魔方派3开发板

    近日,deepin(深度)社区宣布,deepin 25 已正式适配魔方派 3(RUBIK Pi 3)开发板,并完成产品兼容性认证!
    的头像 发表于 07-28 15:14 835次阅读

    Sipeed MaixCAM Pro开发板试用体验】 + 04 + 机器学习YOLO体验

    的 )。 这张是我离线训练的结果,我认为训练出来的模型精度主要还是跟训练集的质量和标注有关,只要在这几方面做好,训练出来的模型精度肯定不会低(实测多次)。 三、结语 对于这次的开发板试用活动我个人非常
    发表于 07-24 21:35

    Sipeed MaixCAM Pro开发板试用体验】+ 02 + 基础功能测试

    、基础功能测试 1.人脸表情情绪检测 通过开发板自带的应用程序实测发现识别准确率非常的高(但需在离人脸较近的地方进行识别,如果识别距离过远会导致识别结果不准确的问题)。 2.找
    发表于 07-19 22:50

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3价值299元的MYD-YR3506开发板发起
    的头像 发表于 06-19 08:04 851次阅读
    有奖丨米尔 瑞芯微RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    基于RK3576处理器,米尔RK3576开发板免费试用

    年7月19日   评测数量: 3   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级
    的头像 发表于 06-09 15:00 931次阅读
    基于RK3576处理器,米尔RK3576<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用

    : 10   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板
    的头像 发表于 06-05 16:45 1010次阅读
    搭载OpenHarmony操作系统,视美泰SC-3568HA<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    基于RK处理器,创龙TL3562-MiniEVM开发板试用体验

    数量: 10   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级
    的头像 发表于 06-05 16:31 915次阅读
    基于RK处理器,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    性能强悍!合众HZ-RK3568开发板试用体验

    月19日   评测数量: 10   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级
    的头像 发表于 06-05 16:30 1104次阅读
    性能强悍!合众HZ-RK3568<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 685次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>体验

    免费丨米尔 STM32MP257开发板有奖试用

    米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2价值488元的MYD-LD25X
    的头像 发表于 03-20 08:05 884次阅读
    免费丨米尔 STM32MP257<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微YR3562开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3价值599元的MYD-YR3562开发板发起
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨米尔 瑞芯微YR3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    有奖试用!!RA-Eco-RA4M2-100PIN-V1.0开发板试用活动报名

    RA-Eco-RA4M2-100PIN-V1.0开发板试用活动
    的头像 发表于 03-13 12:10 826次阅读
    有奖<b class='flag-5'>试用</b>!!RA-Eco-RA4<b class='flag-5'>M2</b>-100PIN-V1.0<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动报名

    有奖丨米尔 全志T536开发板免费试用

    米尔与全志合作发布的新品基于全志T536应用处理器的MYD-LT536-GK开发板免费试用活动来啦~~米尔提供了3价值750元的MYD-LT536-GK开发板发起
    的头像 发表于 12-26 08:05 1313次阅读
    有奖丨米尔 全志T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>