太惊艳了,爆干几天几夜完成的实战模型:【猫狗大战】附资料

Caffe框架下OPenMV的机器学习(一)初探OPenMV神经网络 1. OPenMV 可以进行机器学习? OPenMV是一款可编程的摄像头,主要使用MicroPython语言,实现基本的图像处理。 你可以把OPenMV当成一个工具,也可以把它当成一套产品,开源的编程环境能为进一步向机器视觉领域迈进奠定基础。 OPenMV对于入门计算机视觉的小白来说就是一个你数学方面的救星,因为摄像头内置有许多痛的的图像处理算法,我们使用起来十分容易,适合快速入门... 阅读详情

OpenMV 从入手到跑TensorFlow Lite神经网络进行垃圾分类
一、了解OpenMV 4 plus的构成

  • 1.OpenMV 4 plus 的特点
  • 1.1 硬件资源
  • 1.2 引脚图
  • 2.可用的学习资源


二、建议的学习路线

  • 1.学习python基础语法
  • 2.练习OpenMV的基础实验
  • 2.1 安装软件
  • 2.2 了解基础环境使用方法并连接设备
  • 2.3 常用基础例程
  • 2.3.1 查找例程方法


三、一点教程

  • 1.常用的延时写法
  • 2.如何 点亮or熄灭 一个LED灯
  • 3.控制IO口输入输出
  • 4.控制串口引脚输出信息
  • 5.第一个图像例程HelloWord
  • 6.单颜色识别例程
  • 7.多颜色识别例程
  • 8.【串口】多颜色识别-返回色块中心坐标


四、开启TensorFlow Lite神经网络之旅

  • 1.TensorFlow Lite介绍
  • 2.使用支持
  • 3.使用OpenMV采集训练数据
  • 4.上传Edge Impulse进行训练
  • 4.1注册账号并创建Edge Impulse工程
  • 4.2 上传训练集
  • 4.3 生成特征
  • 4.4 进行训练
  • 5.在OpenMV上部署


五、错误情况问题 【更新时间2021-8-04】

  • 1.“OSError” 错误
  • 2.运行速度慢
  • 3.“MemoryError” 内存不足
  • 4.其他问题
  • 5.解决问题一般思路

双十一福利:

领完再看!迪迦给大家准备的250G人工智能学习资料礼包(内含:两大Pytorch、TensorFlow实战框架视频、图像识别、OpenCV、计算机视觉、深度学习与神经网络等等等视频、代码、PPT以及深度学习书籍)

只需要你点个关注,然后扫码添加助手小姐姐VX即可无套路领取!

  扫码添加即可

一、了解OpenMV 4 plus的构成


  OpenMV 是一个开源项目,其使用stm32系列单片机作为主控单元,搭载摄像头,将python语言解析器移植到openMV的主控芯片运行,使其可以使用python语言做一些图像处理相关的工作。最常见的从 OpenMV 2 搭载的 stm32f4 到 OpenMV 3 的 stm32f7,再到 OpenMV 4 的 stm32H7 ,主频从180MHz一路升级到480MHz,内存也从256KB升级到1MB。而本次介绍的 OpenMV 4 plus版本在OpenMV 4的基础上外挂了32 MB 的 SRAM 和 32 MB 的 Flash,将可用性再次提升一个大的台阶。

在这里插入图片描述

 

1.OpenMV 4 plus 的特点

1.1 硬件资源 

1.2 引脚图

在这里插入图片描述

2.可用的学习资源 

二、建议的学习路线

1.学习python基础语法

python的学习资源非常丰富,但为了使用OpenMv并最终实现跑TensorFlow Lite神经网络进行垃圾分类,仅会使用其基础语法和格式即可,以下为免费的入门教程,自己有其他的教程资源亦可。其他教程推荐去bilibili搜索python,大把的免费视频。

 前期学习python无需学得很精,如果有其它语言基础如C语言,则只需要看python的基础数据类型、基础条件语句以及基础循环语句等与自己掌握语言的不同之处即可。如没有语言基础,则需要将以上内容在例程的基础上训练几遍,让自己熟悉编程规则。

2.练习OpenMV的基础实验

2.1 安装软件

  在开始使用OpenMV之前,您需要下载并安装 OpenMV IDE(点击蓝字即可跳转官网下载),如下图。在Windows下,OpenMV IDE进入安装程序后,它将自动安装IDE以及OpenMV和MicroPython pyboard的驱动程序,只需按照默认的安装程序提示即可,一般情况下一直点击下一步就正常安装完成了。要启动OpenMV IDE,只需点击开始菜单中的快捷方式即可。【安装有问题的点此】
在这里插入图片描述

2.2 了解基础环境使用方法并连接设备 

通过USB数据线将OpenMV连接至电脑USB口,然后打开资源管理器,找到OpenMv生成的U盘,打开会发现包含一个main.py文件。此文件就是OpenMV在离线(未连接OpenMvIDE)上电时自动执行的第一个代码文件。

在这里插入图片描述

之后打开刚安装好的OpenMV IDE,将OpenMV生成的U盘内的main.py文件拖至OpenMV IDE编辑器处打开该文件。 

在这里插入图片描述

 打开文件后,首先点击编辑器下方的连接图标,之后再点击编辑器下方运行按钮,OpenMV就会在OpenMV IDE的控制下执行编辑器打开的main.py文件,并在右侧显示摄像头传输的图像流。

在这里插入图片描述

 点击下方的串行终端部分可看到OpenMV打印的提示信息,在默认例程中输出为图像流的帧率。 

在这里插入图片描述

 

2.3 常用基础例程

2.3.1 查找例程方法

①在OpenMV IDE的 【文件->示例->openMV】中可找到带有的所有官方例程。

openmv云端训练神经网络自动生成openmv的神经网络模型 阅读详情

相关推荐

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

openmv4系列1----基本认知 1.openmv的由来   OpenMV是一个开源,低成本,功能强大的机器视觉模块。以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上,用C语言高效地实现了核心机器视觉算法,提供Python编程接口。 2.openmv4的硬件 主控 STM32H743VI ARM Cortex M7 处理器,400 MHz ,1MB RAM,2 MB flash. 所有的 I/O 引脚输出 3.3V 并且 5V 耐受。这个处理器有以下的IO接口。有大

yunshengbixiao的博客 1万+

Openmv通过IMPULSE训练模型实现目标检测

Openmv神经网络 文章目录Openmv神经网络前言一、云端训练二、操作步骤1.数据集的采集2.上传数据集3.训练模型1、创建模型2、参数生成3、开始训练4、模型测试5、导出模型6、效果测试总结 前言 openmv4plus可以进行神经网络学习,实现目标检测,之前学习过了K210的目标检测,以及机器学习进行目标检测。今天就用openmv4plus进行目标检测。 在学习之前已经做了很多了解,openmv真的很方便做目标检测。 一、云端训练 网址:IMPULSE网址 二、操作步骤 1.数据集的采集 新建一个

戚晨夕的博客 1万+

OpenMV新手上路1 -- OpenMV简介、参数描述

OpenMV项目创造一款低价,可扩展,支持Python的机器视觉模块,这个模块的目标是成为“机器视觉世界的Arduino “ 简介 1.什么是OpenMV? 简单的说就是一款可编程的摄像头模组,以OpenMV国内代理–星瞳科技的OpenMV产品来说,只需要针对应用场景编写程序逻辑即可实现复杂的视觉处理功能,因为复杂的机器视觉算法已经由厂家解决了 博主手头的OpenMV型号为OpenMV3 Cam M7,30万像素,足以完成一些简单的视觉识别功能 2.OpenMV能做什么? 如上所说,简单的图像识别或更

General_s 5万+

5.28OpenMV入门

使用的元件先安装好,上述链接上手IDE显示颜色阈值,同时也配有示例文件,如下图打开,,在官方也有每一个的详细解析OpenMV的一些依赖如下,进行import引入以下是我个人学习过程的一些摘录。

Shirleyluck的博客 2035

23、OpenMV使用tensorflow 1.15.0训练模型mobilenet_v1_1.0_224进行车辆识别

基本思想:希望使用OpenMV调用Tensorflow 的tflite进行目标检测 一、下载window的Openmv的开发工具,软件下载 https://singtown.com/openmv/ 安装软件之后,进行链接和运行测试即可 测试的画面 帧率还是蛮快的 46.6321 46.6132 46.6284 46.6431 46.6249 46.6392 46.6216 46.6356 46.6185 46.6321 46.6156 46.6289 46.6418 46.6258.

sxj731533730 6008

OpenMV4 电路原理图.pdf

OPENMV4的电路原理图,在官方基础上经过优化,替换成国内常见的器件并保证性能前提下降低成本,请放心使用,电路图已经做成成品并且小批量出售给电子爱好者,欢迎有能力工程师复制。

openmv h7 plus.rar

基于 openmv h7 plus 的色块巡线 十字/T字判断 多数字神经网络识别及坐标判断

墨刀原型设计工具操作使用指南及实践操作

该指南通过异常场景处理、像素级参数说明、复杂交互示例,覆盖了墨刀操作的全细节,适合从新手到资深用户的进阶学习。结合 PlantUML 思维导图的层级化展示,可快速定位具体功能的操作要点与问题解决方法,真正实现 “照指南即可操作” 的实用价值。

hy行者勇哥的博客 4943

告别设备管理器混乱!3分钟学会用STM32CubeMX+Zadig定制专属虚拟串口名称

本文详细介绍了如何利用STM32CubeMX和Zadig工具,为STM32的USB虚拟串口(VCP)定制专属设备名称,从而彻底解决多设备连接时设备管理器端口混乱的难题。通过修改产品字符串描述符并替换驱动,开发者可以在设备管理器中清晰识别不同开发板,显著提升调试效率,尤其适用于多设备协同的竞赛或项目开发场景。

a2b3c4d5e的博客 477

【verilog语法详解:从入门到精通】

Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(

m0_58476824的博客 4680

Netapp FAS2750更换磁盘后不同步问题处理

netapp fas2750磁盘更换后不同步问题处理

jetliu05的博客 1256

【计算机三级-数据库技术】操作题大题(第1套)

从触发器的语法中可知,【1】处应该填写的是执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。使用FOR或AFTER选顶定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。实体的转换:在从ER图转换为关系模式时,一个实体转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。

放纵小开爱的博客 1101

别再傻傻分不清了!一文搞懂电机里的‘旋变’和‘编码器’到底有啥区别

本文深度解析电机位置传感器中旋转变压器(旋变)与编码器的核心区别,包括工作原理、精度对比及环境适应性。通过实测数据和典型应用场景,帮助工程师在工业机器人、新能源汽车电机等关键领域做出精准选型决策,提升系统可靠性和控制精度。

weixin_28689507的博客 499

MVDR算法: 自适应波束形成在信号处理领域中扮演着重要的角色。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。

MVDR算法是一种用于抑制干扰信号并增强感兴趣信号的自适应波束形成算法。它的基本思想是通过对干扰信号进行空间滤波,使其在感兴趣信号方向上的输出功率最小化。这种方法可以提高信号的质量和可辨识度,特别是在存在多个干扰源的复杂环境中。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。使用MVDR算法,我们可以通过对观测信号进行波束形成来抑制干扰信号并增强感兴趣信号。以上是MVDR算法的Matlab实现。的每一列代表一个阵列元素的观测信号。表示期望的波束指向,即感兴趣信号的方向。

HackWhisper的博客 1244

【图像超分】论文精读:Enhanced Deep Residual Networks for Single Image Super-Resolution(EDSR和MDSR)

最近对超分辨率的研究随着深度卷积神经网络 (DCNN) 的发展取得了进展。特别是,残差学习技术表现出更好的性能。在本文中,我们开发了一个增强的深度超分辨率网络(EDSR),其性能超过了当前最先进的 SR 方法。我们模型的显着性能改进是由于通过删除传统残差网络中不必要的模块进行优化。当我们稳定训练过程时,通过扩展模型大小可以进一步提高性能。我们还提出了一种新的多尺度深度超分辨率系统(MDSR)和训练方法,该方法可以在单个模型中重建不同缩放因子的高分辨率图像。所提出的方法在基准数据集上比最先进的方法表现出更好的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 7922

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 手把手教学,OpenCV计算机视觉实战—停车场车位识别(完整代码),不信你还学不会
下一篇: 绝对肝货,【机器学期基础知识】概率论的Matlab描述概率的图像,讲透了
跟着萌妹学Java
博客等级 码龄5年 100粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值