无人机视觉 | 搭载MaixPy开发板-K210进行循迹+识别

这篇具有很好参考价值的文章主要介绍了无人机视觉 | 搭载MaixPy开发板-K210进行循迹+识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:基于spieed出品的MaixPy-Dock开发板(K210芯片)进行实践。编译运用MicroPython语言,其是基于 Python3 的语法做的一款解析器,包含了 Python3 的大多数基础语法,主要运行在性能和内存有限的嵌入式芯片上。

        计算机视觉为无人机的导航提供了不可估量的作用,本文实现无人机对基础图形颜色的识别与视觉循迹功能(视觉算法部分  不包括串口通信)

import sensor, image, time, lcd

sensor.reset()
sensor.set_pixformat(sensor.RGB565) # 灰度更快
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time = 2000)
lcd.init()
clock = time.clock()
#----颜色参数选择----#
color_a = (20, 52, -13, 70, 2, 65)

#---------------------------------功能函数--------------------------------------#
#----------圆形图像识别---------#
def fcircle():
    img = sensor.snapshot().lens_corr(1.8)
    img.laplacian(1, sharpen=True)
    #lcd.display(img)
    for c in img.find_circles(threshold = 5000, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 1, r_max = 80, r_step = 2):
        a=img.draw_circle(c.x(), c.y(), c.r(), color = (0, 255, 0))
        #lcd.display(a)
        print(c)
#----------矩形图像识别---------#
def frectangle():
    img = sensor.snapshot().lens_corr(1.8)
    img.laplacian(1, sharpen=True)
    for r in img.find_rects(threshold = 10000):
       img.draw_rectangle(r.rect(), color = (255, 0, 0))
       for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))
       print(r)
#----------特定颜色识别---------#
def find_max_blob(blobs):
    maxsize = 0
    for blob in blobs:
        if blob[2]*blob[3] > maxsize:
            mmax_blob = blob
            maxsize = blob[2]*blob[3]
    return mmax_blob

def fcolors(color):
    img = sensor.snapshot() # 拍一张照片并返回图像。
    blobs = img.find_blobs([color])
    if blobs:
        b = find_max_blob(blobs)
        if b[2] > 15 and b[3] > 15:
            img.draw_rectangle(b[0:4])
            img.draw_cross(b[5], b[6])
            print(b[5], b[6])
        else:
            print('No')
    else:
        print('NO')
#-----------循迹----------#
def tracing(colors):
    # 拍摄一张图片并按阈值二值化
    img = sensor.snapshot()
    # 使用kpu加速的锐化进行边缘增强
    #img.conv3(con_sharpen)
    # 对于图像进行kpu加速的高斯模糊,使图像中心化平滑
    img.conv3(con_gauss)
    img = img.binary(line_color_union)
    # 对二值化的图片进行线性回归得到直线
    line = img.get_regression([(100,100,0,0,0,0)], roi = (2,2,img.width()-4,img.height()-4))
    img.draw_rectangle((2,2,img.width()-4,img.height()-4))
    if line and line.magnitude() > 3:
            # 在图片上画线
            img.draw_line(line.line(), color = 110, thickness = 5)
            # 计算横滚误差
            erho = abs(line.rho())-img.width()/2
            # 计算偏航误差
            if line.theta() > 90:
                etheta = line.theta()-180
            else:
                etheta = line.theta()
            # 误差归一化
            res_erho = erho/(img.width()/2)
            res_etheta = etheta/90
            # 误差输出
            print('tt',int(res_erho*1000), int(res_etheta*1000))
    else:
        # 定义误差只能小于1000,若输出无效值则寻迹无效
        print('tt',1001, 1001)
    # 显示图片
    lcd.display(img)
#------------------------------------主函数-------------------------------------#
while True:
    clock.tick()
    #fcircle()
    #frectangle()
    #fcolors(color_a)
    #tracing(color_a)
    print("FPS %f" % clock.fps())

###大家可根据自身需求对代码进行更改参数、恢复注释

参考资料:

MaixPy 文档简介 - Sipeed Wiki文章来源地址https://www.toymoban.com/news/detail-541977.html

到了这里,关于无人机视觉 | 搭载MaixPy开发板-K210进行循迹+识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超维空间M1无人机使用说明书——41、ROS无人机使用yolo进行物体识别

    一、启动darknet_ros物体识别 当终端无报错出现以上界面,表示物体识别正常运行 1、bringup_darknet.launch文件分别启动了USB摄像头和darknet_ros节点,其中摄像头节点主要是发布图像话题,提供给darknet_ros节点订阅,相反,darknet_ros订阅图像话题,根据订阅到的图像数据进行识别处理

    2024年01月22日
    浏览(46)
  • 以AI进行无人机巡检河川地貌分析

    作者:僑光科技大學 助理教授 陈纪翰 由于工业科技快速发展,环境议题一直备受讨论与重视 ;近几年,由于边缘运算、 AI 、硬件加速与无人机等技术趋于成熟,公民营机构 --尤以公部门为首--开始思考是否能借助科技的力量来进行环境工程,本文即以AI对象分割技术作为技术

    2024年01月22日
    浏览(48)
  • 使用低空无人机图像对树种进行实例分割

    在这项试点研究中,利用低空无人机图像开发了一种针对当地树种的机器学习实例分割模型,用于生态调查目的。实例分割包括个体树冠描绘和物种分类。 20 种树种及其相关学名已通过无人机图像进行了训练和收集,用于机器学习过程。为了评估 ML 模型的准确性,半监督分

    2024年04月14日
    浏览(35)
  • 【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 对于

    2024年04月28日
    浏览(43)
  • 【模式识别&目标检测】——基于机器视觉的无人机避障&RP-YOLOv3实例

    目录 引入 一、YOLOv3模型 1、实时目标检测YOLOv3简介 2、改进的实时目标检测模型 二、数据集建立结果分析 1、数据集建立 2、模型结果分析  三、无人机避障实现 参考文献: 目前对于障碍物的检测整体分为: 激光、红外线、超声波、雷达、GPS、机器视觉 六种避障技术, 其中

    2024年02月12日
    浏览(49)
  • 【无人机】基于遗传算法混合粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 对于

    2024年04月25日
    浏览(48)
  • 基于图片、无人机、摄像头拍摄进行智能检测功能

    根据要求进行无人机拍摄的视频或图片进行智能识别,开发过程需要事项 1、根据图片案例进行标记,进行模型训练 2、视频模型训练 开发语言为python 根据需求功能进行测试结果如下 根据车辆识别标记进行的测试结果截图 测经过查看视频 8月1日 封装一个API接口进行调用图片

    2024年02月13日
    浏览(37)
  • 非专业无人机进行倾斜摄影并且通过cesium加载

    大多数倾斜摄影都是用大疆精灵或者别的比较专业的无人机进行测量,但是我就遇到了设备受限的情况,只能用大疆御2Pro来进行测量,因为怕炸机损坏了自己要赔偿,也没有用荔枝(Litchi)等航测软件,并且没有条件来打像控点,因为没有RTK等设备,所以这次是相当于非专业

    2024年02月07日
    浏览(47)
  • ROS无人机开发常见错误

    解决办法: 打开地面站的遥控器一栏 首先检查右下角Channel Monitor是否有识别出遥控各通道的值,如果没有,检查遥控器是否打开,遥控器和接收机是否对频成功,接收机和飞控的接线是否正确。 如果Channel Monitor可以识别出遥控各通道的值,再检查上方横滚/俯仰/水平/油门四

    2024年01月21日
    浏览(53)
  • 酷得智能 无人机方案开发

    东莞市酷得智能科技有限公司,是一家专业的技术服务公司,致力于为各类智能硬件提供高效、稳定、安全的底层驱动解决方案。拥有一支经验丰富、技术精湛的团队,能够为客户提供全方位的底层驱动开发服务。 无人机功能介绍: 1、自动跟随:内置了高精度的传感器,可

    2024年04月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包