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

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

3天内不再提示

OpenMV初识

新机器视觉 来源:ku77 2023-06-12 11:23 次阅读

来源:ku77

openMV简介

OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视觉项目,目的是创建低成本,可扩展,使用python驱动的机器视觉模块。OpenMV搭载了MicroPython解释器,使其可以在嵌入式端进行python开发。OpenMV基于32位,ARM Cortex-M7内核的OpenMV-H7, 并结合各种摄像头,可以进行多种机器视觉应用的实现,比如人脸检测,物体分类等。

对于省钱党来说这是一个开源的项目,所以有兴趣的可以自己上网找相关资料自制一个,可以省个一两百块大洋。安利一篇文章

一、硬件准备

1.OpenMV

2.一根micro usb的数据线(一定要有数据传输功能的)

3.电脑网络

二、软件准备

1.在openMV官网下载openmv IDEhttps://book.openmv.cc/

9a1e7092-06a3-11ee-962d-dac502259ad0.png

IDE是由Qt Creator编写,可以跨平台使用,官网提供了windows、mac os、Linux ubuntu 32位和64位,以及树莓派的版本,满足各个平台的开发,使得其应用更加广泛。Windows系统就选第一个啦。

下载得到安装包:

9a49dd86-06a3-11ee-962d-dac502259ad0.png

安装过程一路Next,值得一提的是默认安装C盘,可以手动修改安装路径为其它盘,不影响使用。

9a555ab2-06a3-11ee-962d-dac502259ad0.png

下一步可以连接上硬件:

9a69ef04-06a3-11ee-962d-dac502259ad0.png

电脑将自动识别出一个U盘:

9a9690c2-06a3-11ee-962d-dac502259ad0.png

这是由于单片机烧入了固件程序将内部的Flash虚拟成了一个U盘可以看到这个U盘容量特别小,因此在后期的使用过程中建议插SD卡。

用SD卡的好处多多:

1.SD卡也是一个文件系统,当上电的时候,如果插入SD卡,那么SD卡的文件系统就会自动取代内置的Flash文件系统,每次上电,就会运行SD卡中的main.py啦,还可以减少对stm32flash擦除次数,延长寿命。

2.SD卡最大支持2TB的容量。因此可以保存些大的程序,还可以放置训练好的神经网络模型,也可以放置需要对比的图片等进行调用。

9a9fe1c2-06a3-11ee-962d-dac502259ad0.png

内部放置了三个文件,其中main.py文件就是要运行的程序文件。

注:有时会出现驱动安装不完整的情况,打开设备管理器可以看到有个感叹号,我们可以更新驱动程序

9abc1f36-06a3-11ee-962d-dac502259ad0.png

官网上有非常详细的解决步骤:在这

三、软件的功能与使用

OpenMV提供了两者阈值设置方案。分别是阈值编译器和直方图的方式选择阈值。

阈值编译器:优点,所寻找到的目标颜色更加合理,其他相似颜色区域的干扰比较小。缺点,调节LAB的最大最小值比较花费时间。

直立方图恰好相反,他很容易找到LAB的最大最小值的大体区间,但是容易受到相似颜色区域的干扰。所以,建议两者配合使用

先用直立方图找到LAB的最大最小值的大体区间,再利用阈值编译器对LAB的最大最小值进行微调

软件安装完成后在主菜单可以找到这个图标:

9ad74540-06a3-11ee-962d-dac502259ad0.png

打开这个软件会跳出一个默认的helloworld.py的例程(其它示例在文件选项可以看到),软件页面如下:

9af10e3a-06a3-11ee-962d-dac502259ad0.png

页面左边是代码区域,右上角是帧缓冲区(可以显示摄像头拍到的),我们要选择红色盒子作为目标对象,只需要在帧缓冲区,拖动鼠标左键即可。右下角直方图可以选择四种色彩空间:

·RBG色彩空间:R代表红色,B代表蓝色,G代表绿色。它是一种线性色彩空间,其中颜色是通过红色,绿色和蓝色值的线性组合获得的。(做颜色识别的功能时比较方便)

·灰度(GRAY)色彩空间:单通道格式,值为0~255,颜色值为黑白之间,0是黑色,255是白色。(处理识别数字或轮廓等二值计算时速度比较快)

·LAB色彩空间:Lab颜色空间中,L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表蓝色。不像RGB和CMYK色彩空间,Lab颜色被设计来接近人类视觉。()

·YUV色彩空间:“Y”表示明亮度,也就是灰阶值,“U”和“V”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。

参考:常用色彩空间概念

9b1f1e6a-06a3-11ee-962d-dac502259ad0.png

9b390b4a-06a3-11ee-962d-dac502259ad0.png

9b55dc34-06a3-11ee-962d-dac502259ad0.png

9b7c5f9e-06a3-11ee-962d-dac502259ad0.png

根据直方图(LAB色彩空间)可知,我们的L最大值选择80,最小值为60。A最大值为40,最小值为-20。B的最大值为20,最小值为-10。(注:这个只需要包含绝大部分就行)

阈值编译器只有LAB阈值和灰度阈值设置,由上述四图可得,LAB分布值比较集中,所以选用LAB阈值。

之后进行阈值编译器设置:

左上方工具——>机器视觉——>阈值编译器——>帧缓冲区。

9b9dc3be-06a3-11ee-962d-dac502259ad0.png

可对要判断图像的LAB值进行调整。注意:这个时候OpenMV会截取帧缓冲区内照片(当前的图片)作为LAB值调整。所以我们采用阈值编译器的时候,需要提前将目标识别单位(红色盒子)放在OpenMV摄像头之前。再进行操作。

9bbfad6c-06a3-11ee-962d-dac502259ad0.png

根据直立方图的值,我们调整LAB最大和最小值,尽可能地让要目标识别对象变成全白色。(注:即使没有全部变成白色也不影响,反正最后会把所有没有被滤除的白色区域变成一个大框)然后复制下方的LAB阈值。

(58, 80, 19, 51, -10, 21)和直方图读取的数做一个对比(60,80,-20,40,-10,20)。

在这里只是举个例子,其它识别中,也可用其它的色彩空间进行识别。

审核编辑:汤梓红

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

    关注

    60

    文章

    7866

    浏览量

    263585
  • 机器视觉
    +关注

    关注

    161

    文章

    4317

    浏览量

    119959
  • 开源
    +关注

    关注

    3

    文章

    3210

    浏览量

    42288
  • openMV
    +关注

    关注

    3

    文章

    39

    浏览量

    9782
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4700

原文标题:OpenMV 初识

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    第19.1 章-星瞳科技 OpenMV视觉循迹功能 超详细OpenMV与STM32单片机通信

    第19.1 章-[星瞳科技]OpenMV视觉循迹功能 超详细OpenMV与STM32单片机通信 (有完整版源码) 【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通
    的头像 发表于 08-20 11:41 782次阅读
    第19.1 章-星瞳科技 <b class='flag-5'>OpenMV</b>视觉循迹功能 超详细<b class='flag-5'>OpenMV</b>与STM32单片机通信

    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

    19.3-【星曈科技】openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程 使用OpenMV循迹 openMV
    的头像 发表于 08-20 11:32 743次阅读
    19.3-星曈科技 <b class='flag-5'>openmv</b> Hopenmv发送五个uchar <b class='flag-5'>Openmv</b>+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

    openMV和STM32

    。摄像头采用星瞳openMV H7,主控采用的是正点原子探索者F407开发板。本文通过openMV和STM32两方面来讲解。openMV部分OpenMV摄像头是一款小巧,低功耗,低成本
    发表于 08-04 06:20

    OpenMv和STM32通信问题

    OpenMv和STM32通信OpenMv和STM32通信问题OpenMv和STM32通信前言一、OpenMv配置二、Stm32配置总结前言最近一段时间都在捣鼓
    发表于 08-16 07:44

    OpenMV怎么用?如何用OpenMV做一个电磁炮?

    OpenMV怎么用?如何用OpenMV做一个电磁炮?
    发表于 10-20 07:30

    OpenMV是什么?openmv4的作用有哪些

    OpenMV是什么?openmv4的作用有哪些?
    发表于 02-22 06:40

    STM32CubeIDE初识

    STM32CubeIDE初识
    发表于 12-02 18:36 23次下载
    STM32CubeIDE<b class='flag-5'>初识</b>

    OpenMv与stm32简单串口通信

    前言刚开始学openmv与32串口通信,我是用的stm32f103的板子。开始想简单发送字符或者16位数试验一下,然后就遇到了个小问题,即openmv和单片机可以分别和电脑通信,但是让他俩通信的话就不行,随后解决在此记录下来。我的思路是用
    发表于 12-16 16:56 25次下载
    <b class='flag-5'>OpenMv</b>与stm32简单串口通信

    【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通信

    利用OpenMV与STM32进行串口通信OpenMV端的程序# Untitled - By: dell - 周一 7月 19 2021# Blob Detection and uart
    发表于 12-24 18:51 27次下载
    【星曈科技】<b class='flag-5'>OpenMv</b>笔记——利用<b class='flag-5'>OpenMV</b>与STM32进行串口通信

    STM32与openmv通信(HAL库)

    最近需要用到openmv进行追踪物体,所以在此做个小结,其中这些文章给我很大的帮助,建议可以去看超详细OpenMV与STM32单片机通信 以及星瞳科技官网实验目的:openmv追踪物体颜色,将物体
    发表于 12-24 19:16 23次下载
    STM32与<b class='flag-5'>openmv</b>通信(HAL库)

    openmv4系列1----基本认知

    openmv4系列1----基本认知1.openmv的由来  OpenMV是一个开源,低成本,功能强大的机器视觉模块。以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块
    发表于 12-29 18:51 8次下载
    <b class='flag-5'>openmv</b>4系列1----基本认知

    OPENMV和STM32的识别追踪小车(详细版)之OPENMV

    OPENMV和STM32的识别追踪小车(详细版)实现:通过OPENMV识别Apriltags标签,STM32驱动小车追踪标签博主通过一段时间的学习,做了这个比较简单的以OPENMV为摄像传感器
    发表于 01-13 12:05 0次下载
    <b class='flag-5'>OPENMV</b>和STM32的识别追踪小车(详细版)之<b class='flag-5'>OPENMV</b>端

    【DIY】基于OpenMV的STM32追球小车

    [DIY]基于openMV的追球小车总体设计1.基础硬件DIY设计1).整体原理图2).PCB电路3).3D_PCB2.openMV简单识别程序设计 与 STM32控制程序设计1)openMV
    发表于 01-14 13:01 39次下载
    【DIY】基于<b class='flag-5'>OpenMV</b>的STM32追球小车

    OpenMV Cam上的RPC模块

    OpenMV Cam 上的rpc模块允许您将 OpenMV Cam 连接到另一台微控制器或计算机,并在 OpenMV Cam 上执行远程 Python(或过程)调用。
    的头像 发表于 10-08 10:28 1386次阅读

    基于Vision Board上的openMV垃圾分类

    通过在Vision Board部署openMV实现垃圾分类。
    的头像 发表于 06-17 10:49 537次阅读
    基于Vision Board上的<b class='flag-5'>openMV</b>垃圾分类