有什么做视频的免费素材网站好,技术开发包括哪些内容,遵义市网站制作,游戏网站的导航条怎么做的文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 #x1f680;#x1f680;五一和女朋友去看了《间谍过家家 代号#xff1a;白》#xff0c;入坑二刺螈#xff08;QQ头像也换… 文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 五一和女朋友去看了《间谍过家家 代号白》入坑二刺螈QQ头像也换阿尼亚了 刚好不知道做什么项目来交作业突然想到可以做一个阿尼亚识别器于是有了这篇文章。 水平较菜大佬轻喷。 介绍
Vision-Board 开发板是 RT-Thread 推出基于瑞萨 Cortex-M85 架构 RA8D1 芯片为工程师们提供了一个灵活、全面的开发平台助力开发者在机器视觉领域获得更深层次的体验。
Vision Board搭载全球首颗 480 MHz Arm Cortex-M85芯片拥有Helium和TrustZone技术的加持。SDK包里集成了OpenMV机器视觉例程配合MicroPython 解释器使其可以流畅地开发机器视觉应用。 环境搭建
环境搭建可以查看这个Vision Board 环境搭建文档(https://docs.qq.com/doc/DY2hkbVdiSGV1S3JM)特别需要注意的就是版本一定要新我使用之前老版的RASC是不行的如果开发过程中遇到奇奇怪怪的问题可以首先检查自己版本的问题。
我们使用openmv只需要烧录官方的openmv demo就好了官方视频教程以及文档已经很详细了我就不重复介绍了只需要把demo烧录进来就好了。
训练模型
训练模型我们使用的是edge impulse https://studio.edgeimpulse.com/首先准备大量的阿尼亚图片作为数据集这里我测试的时候只选了11张肯定是太少了大家可以多几张这样效果会更准确识别精度更高我这里只是测试学习用的大家请勿模仿。 然后我们还需要准备一份其他的图片用来训练因为训练模型必须两类及以上这里我选择了几张花园宝宝的图片就不一一展示了大家可以自己更换其他的 之后我们进入edge impulse进行简单的设置选择One label per data item每个数据项一个标签以及M7然后就可以上传图片进行训练了。 上传图片
选择图片进行上传我们先上传阿尼亚的图片。 这个地方注意如果上传失败大概率网络问题要关闭加速器神奇我特地开的加速器。 再上传其他的如下所示 生成模型
之后就到impulse design里面训练模型差不多一直默认就好比较简单。 训练结束就好了然后直接生成模型。 就会有一个压缩包下载我们打开压缩包就能发现模型到这里训练模型部分就结束了。 使用
然后我们把labels.txt和trained.tflite放入openmv的SD里面去同时需要新建一个captures文件夹用来存放图片复制py文件到openmv IDE 里面去就可以直接运行了这里我对自动生成的程序做了一点修改加上了LED灯拍摄以及红框结果如下简陋的代码甚至没封装太懒了
# This work is licensed under the MIT license.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!import sensor, image, time, os, tf, uos, gc
from machine import LEDsensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.set_windowing((240, 240)) # Set 240x240 window.
sensor.skip_frames(time2000) # Let the camera adjust.net None
labels None
led LED(LED_BLUE)try:# load the model, alloc the model file on the heap if we have at least 64K free after loadingnet tf.load(trained.tflite, load_to_fbuos.stat(trained.tflite)[6] (gc.mem_free() - (64*1024)))
except Exception as e:print(e)raise Exception(Failed to load trained.tflite, did you copy the .tflite and labels.txt file onto the mass-storage device? ( str(e) ))try:labels [line.rstrip(\n) for line in open(labels.txt)]
except Exception as e:raise Exception(Failed to load labels.txt, did you copy the .tflite and labels.txt file onto the mass-storage device? ( str(e) ))clock time.clock()last_capture_time time.time()
while(True):clock.tick()img sensor.snapshot()for obj in net.classify(img, min_scale1.0, scale_mul0.8, x_overlap0.5, y_overlap0.5):img.draw_rectangle(obj.rect())# This combines the labels and confidence values into a list of tuplespredictions_list list(zip(labels, obj.output()))x1, y1, w1, h1 obj.rect()margin 10 # 设置一个边距避免紧贴头像边缘x1 marginy1 marginw1 - margin * 2h1 - margin * 2if (predictions_list[0][1] 0.95):img.draw_rectangle((x1, y1, w1, h1), color(255, 0, 0)) # 在检测到的对象周围绘制红色矩形框led.on()print(Anya)print(********)if time.time() - last_capture_time 2: # 检查距离上次拍照是否已经超过两秒img.save(/captures/Anya_capture_%s.jpg % str(time.time())) # 使用时间戳作为文件名保存图片last_capture_time time.time() # 更新上次拍照时间print(Shooting a photo of Anya was successful)else:led.off()print(Other)print(********)
然后我们运行看一下结果 我们注意到4个地方一个是终端打印了Anya第二个是拍照功能第三个是红框第四个是LED灯亮了。 我们打开文件夹看一下拍摄的图片 差不多到这里就结束了模型训练其实还不是很准大家可以多高一点数据集不要像我这样懒。
结语
因为是第一次接触所以很多地方不太懂请大家见谅不过这个确实很好玩哈哈哈