OpenMV使用技巧
创始人
2025-05-31 08:39:07
0

目录

  • 一、光照影响
    • 1. 光照过强
    • 2. 光照过弱
  • 二、杂框影响
    • 1. threshold参数
    • 2. 长宽比
  • 三、画图

一、光照影响

  OpenMV在使用过程中可能会遇到光照太强或者光照太弱等影响图像识别的情况,尤其在跑神经网络模型时,光照太强或太弱对识别结果的影响是致命的。

1. 光照过强

  针对光照过强这一影响因素,可以通过调节摄像头的初始参数来解决。比较常用的摄像头参数如下:

sensor.reset()                       # 初始化相机传感器
sensor.set_pixformat(sensor.RGB565)  # 设置像素模式
sensor.set_framesize(sensor.QVGA)    # 设置分辨率
sensor.skip_frames(time = 200)       # 跳过20毫秒的帧
sensor.set_auto_gain(True)           # 打开自动增益, 默认打开;追踪颜色,则需关闭白平衡。
sensor.set_auto_whitebal(True)       # 打开(True)或关闭(False)自动白平衡。默认打开;追踪颜色,则需关闭白平衡
sensor.set_auto_exposure(True)       # 打开(True)或关闭(False)自动曝光。默认打开。

  上述设置为比较基本的参数初始化方法,但针对光照过强的影响,可以通过改变以下三个参数来解决:

sensor.set_contrast(constrast)      # 设置相机图像对比度。-3至+3。
sensor.set_brightness(brightness)   # 设置相机图像亮度。-3至+3。
sensor.set_saturation(saturation)   # 设置相机图像饱和度。-3至+3。

  通过固定相机图像的对比度、亮度和饱和度,基本可以保证在一定光照变化范围内,相机拍摄的图像的质量是相差无几的,即可以解决光照过强对OpenMV图像识别的影响。

2. 光照过弱

  当环境光照过弱时,只通过固定相机图像的对比度、亮度和饱和度并不能解决问题,此时需要通过人工增加光照,并且还要固定相机图像的对比度、亮度和饱和度。

在这里插入图片描述

  人工增加光照可以通过外加上图所示的LED灯带来实现,但外加LED灯带还需要额外给LED灯带的供电,且外加的LED灯带通常需要8-12V的电压来供电。常出现的问题是灯带的位置不好确定且供电电压不易寻找。

  OpenMV自身有四个LED灯,分别为红灯、绿灯、蓝灯和白灯,其中白灯的亮度可以应对一般的光照过弱场景,因此可以使用OpenMV自带的白色LED灯来增加光照,既不需要改变结构又不需要额外的供电电压。

import pyb
from pyb import LED #导入LEDred = LED(1)    # 定义一个LED1   红灯
green = LED(2)  # 定义一个LED2   绿灯
blue = LED(3)   # 定义一个LED3   蓝灯
white = LED(4)  # 定义一个LED4   照明灯while(True):red.on()        # 打开红灯pyb.mdelay(500) # 延时500msred.off()       # 关闭红灯pyb.mdelay(500)green.on()pyb.mdelay(500)green.off()pyb.mdelay(500)blue.on()pyb.mdelay(500)blue.off()pyb.mdelay(500)white.on()pyb.mdelay(500)white.off()pyb.mdelay(500)

二、杂框影响

  在使用find_rects()函数查找图像中的矩形时,可能会识别到非目标矩形,甚至识别到一些奇形怪状的矩形,这也会影响识别的结果。

1. threshold参数

  这种情况可以通过修改threshold参数来解决,此时,只有边界大小小于threshold的矩形才会被识别出来,其余矩形全被过滤掉了。

image.find_rects([threshold=10000])

2. 长宽比

  但这种方法并不能解决全部的问题,有时OpenMV还会识别到一些长度很大、宽度很小或者宽度很大、长度很小的矩形,此时可以通过限制长度和宽度限制长宽比来筛选正确的矩形框:

while(True):img = sensor.snapshot()for r in img.find_rects(threshold = 10000):             # 在图像中搜索矩形print(r.rect()[3])  								# 索引[3]:返回矩形的高度print(r.rect()[2])  								# 索引[2]:返回矩阵的宽度if(abs(r.rect()[3]) > 160 or abs(r.rect()[2]) > 160 or abs(r.rect()[3]) < 70 or abs(r.rect()[2]) < 70): # 限制长度和宽度break    	if(r.rect()[3]/r.rect()[2]>1.3 or r.rect()[3]/r.rect()[2]<0.7): # 限制长宽比break

  需要注意的是,上述threshold参数和长度宽度的取值都需要根据实际应用场景和对象来确定,每个物体的参数是不一样的。

三、画图

  在调试程序的过程中,可以在OpenMV IDE窗口中画一些图来直观地观察程序运行过程。

while(True):img = sensor.snapshot()img.draw_rectangle(r.rect(), color = (255, 0, 0))   # 绘制矩形外框,便于在IDE上查看识别到的矩形位置img.draw_cross(int(r.rect()[0] + r.rect()[2]/2), int(r.rect()[1] + r.rect()[3]/2), color = (0, 255, 0))#在矩形中心画十字img.draw_string(r.rect()[0] + 20, r.rect()[1]-20, 001+"my openmv"),color = (255,0,0), scale = 2,mono_space=False)#显示类别名称和准确率for p in r.corners():img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))img.draw_rectangle(r.rect(), color = (255, 0, 0))#在矩形的四个边角画出四个圆    

相关内容

热门资讯

安卓系统和oppo系统哪个流畅... 你有没有想过,手机系统哪个更流畅呢?安卓系统和OPPO系统,这两个名字听起来就让人心动。今天,咱们就...
安卓怎么用微软系统,利用微软系... 你是不是也和我一样,对安卓手机上的微软系统充满了好奇?想象那熟悉的Windows界面在你的安卓手机上...
安卓系统如何安装nfc,安卓系... 你有没有想过,用手机刷公交卡、支付账单,是不是比掏出钱包来得酷炫多了?这就得归功于NFC技术啦!今天...
ios系统可以转安卓,跨平台应... 你有没有想过,你的iPhone手机里的那些宝贝应用,能不能搬到安卓手机上继续使用呢?没错,今天就要来...
iOSapp移植到安卓系统,i... 你有没有想过,那些在iOS上让你爱不释手的app,是不是也能在安卓系统上大放异彩呢?今天,就让我带你...
现在安卓随便换系统,探索个性化... 你知道吗?现在安卓手机换系统简直就像换衣服一样简单!没错,就是那种随时随地、随心所欲的感觉。今天,就...
安卓系统安装按钮灰色,探究原因... 最近发现了一个让人头疼的小问题,那就是安卓手机的安装按钮突然变成了灰色,这可真是让人摸不着头脑。你知...
安卓7.1.1操作系统,系统特... 你知道吗?最近我在手机上发现了一个超级酷的新玩意儿——安卓7.1.1操作系统!这可不是什么小打小闹的...
安卓os系统怎么设置,并使用`... 你有没有发现,你的安卓手机有时候就像一个不听话的小孩子,有时候设置起来真是让人头疼呢?别急,今天就来...
安卓降低系统版本5.1,探索安... 你知道吗?最近安卓系统又来了一次大动作,竟然把系统版本给降到了5.1!这可真是让人有点摸不着头脑,不...
解放安卓系统被保护,解放安卓系... 你有没有想过,你的安卓手机其实可以更加自由地呼吸呢?是的,你没听错,我说的就是解放安卓系统被保护的束...
校务帮安卓系统下载,便捷校园生... 你有没有想过,你的手机里装了一个神奇的助手——校务帮安卓系统下载?没错,就是那个能让你轻松管理学校事...
安卓系统没有拼多多,拼多多崛起... 你知道吗?最近我在手机上发现了一个小小的秘密,那就是安卓系统里竟然没有拼多多这个应用!这可真是让我大...
甜城麻将安卓系统,解锁全新麻将... 你有没有听说过那个超级火的甜城麻将安卓系统?没错,就是那个让无数麻将爱好者为之疯狂的软件!今天,就让...
安卓系统卸载的软件,深度揭秘卸... 手机里的软件越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么在安卓系统里卸载那些不再需要的软...
安卓系统推荐好游戏,畅享指尖乐... 手机里的游戏可是咱们休闲娱乐的好伙伴,尤其是安卓系统的用户,选择面那可是相当广呢!今天,就让我来给你...
王者安卓系统怎么卖,揭秘如何轻... 你有没有听说最近王者安卓系统的火爆程度?没错,就是那个让无数玩家沉迷其中的王者荣耀!今天,我就来给你...
安卓开发系统内置证书,基于安卓... 你有没有想过,你的安卓手机里那些神秘的内置证书,它们到底是个啥玩意儿?别急,今天就来给你揭秘这些隐藏...
荣耀安装安卓原生系统,深度体验... 你知道吗?最近荣耀手机界可是掀起了一股热潮,那就是——荣耀安装安卓原生系统!这可不是什么小打小闹,而...
安卓13小米系统,创新功能与流... 你知道吗?最近安卓13系统可谓是风头无两,各大手机厂商纷纷推出自家的新版系统,其中小米的安卓13系统...