资料介绍
。
2022 年 3 月 29 日更新。我尽我所能定期更新我的文章,并根据您在 YouTube/Hackster 评论部分的反馈。如果您想表达对这些努力的支持和赞赏,请考虑给我买杯咖啡(或披萨):)。
本质上, aXeleRate是基于我用于训练图像识别/对象检测模型的脚本集合 - 组合成一个框架并针对 Google Colab 上的工作流程进行了优化。使用起来更方便,更新更及时。
对于旧版本的文章,你仍然可以在steemit.com 上看到。
第 1 步:CNN 和迁移学习:一些理论


卷积神经网络或 CNN 是一类深度神经网络,最常用于分析视觉图像。互联网上有很多关于该主题的文献,我将在文章的最后部分提供一些链接。简而言之,您可以将 CNN 视为一系列应用于图像的过滤器,每个过滤器在图像中寻找特定的特征——在较低的卷积层上,特征通常是线条和简单的形状,而在较高层上的特征可以更具体,例如身体部位、特定纹理、动物或植物的部分等。某些特征集的存在可以为我们提供关于图像中对象可能是什么的线索。胡须,两只眼睛和黑鼻子?一定是猫!绿叶,树干?看起来像一棵树!
我希望您现在了解 CNN 的工作原理。通常,深度神经网络需要数千张图像和数小时的训练时间(取决于您用于训练的硬件)来“开发”可用于识别您想要的对象类型的过滤器。但有一条捷径。
一个被训练来识别很多不同的常见物体(猫、狗、家用电器、交通工具等)的模型已经“开发”了很多有用的过滤器,所以我们不需要它来学习识别基本形状和对象的一部分。我们可以重新训练网络的最后几层来识别特定类别的对象,这对我们很重要。这被称为“迁移学习”。通过迁移学习,你需要的训练数据和计算时间要少得多,因为你只训练网络的最后几层,可能由几百个神经元组成。
听起来很棒,对吧?让我们看看如何实现它。
第 2 步:准备环境

使用 aXeleRate 有两种方法:在 Ubuntu 机器上本地运行或在 Google Colab 中运行。要在 Google Colab 中运行,请查看以下示例:
现在在本地训练您的模型并将其导出以用于硬件加速也变得更加容易。
我的工作环境是 Ubuntu 16.04,64 位。您可以使用虚拟机来运行 Ubuntu 映像,因为我们不会使用 GPU 进行训练。通过一些修改,您还可以在 Windows 上运行训练脚本,但是对于模型转换,您需要使用 Linux 系统。因此,您执行本教程的首选环境是 Ubuntu 16.04,在本机或虚拟机中运行。
让我们从安装 Miniconda 开始,它是 Python 的环境管理器。我们将创建隔离环境,因此我们不会意外更改您系统 Python 环境中的任何内容。
安装完成后,新建环境:
conda create -n ml python=3.7
让我们激活新环境
conda activate ml
bash shell 前的前缀将与环境名称一起出现,表明您现在在该环境中工作。
第 3 步:安装 aXeleRate 并运行测试

在本地机器上安装 aXeleRate
pip install git+https://github.com/AIWintermuteAI/aXeleRate
要下载示例,请运行:
git clone https://github.com/AIWintermuteAI/aXeleRate
您可以使用 aXeleRate 文件夹中的 tests_training.py 运行快速测试。它将为每种模型类型运行训练和推理,保存和转换训练好的模型。由于它只训练 5 个 epoch 并且数据集非常小,您将无法获得有用的模型,但此脚本仅用于检查是否存在错误。
第 4 步:重新训练模型,将 Keras 模型转换为 Kmodel

对于这个玩具示例,我们将训练模型识别圣诞老人和 Arduino Uno。显然你可以选择其他类。从这里下载数据集。在 config 文件夹中创建一个 classifier.json 文件的副本,然后进行相应的更改,类似于屏幕截图中的配置文件 - 确保训练和验证文件夹的路径正确!
从 aXeleRate 文件夹运行以下命令:
python axelerate/train.py - c configs/santa_uno.json
培训将开始。如果验证准确度(我们的验证指标)在 20 个 epoch 内没有提高,训练将提前停止。每次验证准确性提高时,模型都会保存在项目文件夹中。训练结束后,aXeleRate 自动将最佳模型转换为指定格式 - 您现在可以选择“tflite”、“k210”或“edgetpu”。
第 5 步:在 Sipeed Maix Bit 上运行模型
有两种方法可以在 Sipeed Maix 硬件上运行您现在拥有的模型:micropython 固件和 Arduino IDE。Micropython 硬件更易于使用,但它占用了很大一部分可用内存,因此留给模型的空间更少。Arduino IDE 基本上是 C 代码,效率更高,内存占用更小。我的模型只有 1.9Mb,所以两个选项都适用。您可以将 2.9 Mb 的模型与 Micropython 一起使用,对于需要考虑使用 Arduino IDE 的任何更大的模型。
从这里下载 OpenMV IDE 和从这里下载最小的 micropython固件。
使用kflash_gui 工具烧录固件。 您也可以选择将训练好的模型也刻录到 flash,如屏幕截图所示。

或将其复制到 SD 卡(在这种情况下,将.kmodel复制到 SD 卡的根目录并将 SD 卡插入 Sipeed Maix Bit)
打开 OpenMV IDE 并按下连接按钮。从 example_scripts 文件夹打开santa_uno.py脚本,然后按开始按钮。您应该会看到来自相机的实时流,如果您打开串行终端,您将获得置信度得分最高的图像识别结果!

要与 Arduino IDE 一起使用,首先您需要按照将 Sipeed 板添加到 Arduino IDE 的过程进行操作,此处记录。添加板后,打开mobilenet_v1_transfer_learning.ino草图并将其上传到 Sipeed Maix Bit。将 SD 卡上的模型名称更改为“模型”(或使用此名称复制)。

您可以更改names.cpp中的标签名称。它将在 Sipeed Maix 屏幕上显示实时摄像机流以及顶部图像识别结果。
第 6 步:结论
以下是有关 CNN 和迁移学习主题的更多材料可供阅读:
使用 Mobilenet 和 Keras进行迁移学习迁移学习的一个很好的解释,本教程使用该文章中代码的修改版本。
猫狗和卷积神经网络解释 CNN 背后的基础知识并可视化一些过滤器。与猫!
在 Sipeed MaixPy 和 MaixDuino 上训练、转换、运行 MobileNet!Sipeed 团队关于如何从头开始训练 Mobilenet 1000 类的教程(无迁移学习)。您可以下载他们的预训练模型并尝试一下!
希望您可以利用您现在拥有的知识来构建一些带有机器视觉的很棒的项目!你可以在这里购买 Sipeed 板,它们是嵌入式系统上机器学习最便宜的选择之一。
如果您有任何问题,请在LinkedIn上添加我,并订阅我的 YouTube 频道,以获得有关机器学习和机器人技术的更多有趣项目的通知。
- 图像识别技术原理 深度学习的图像识别应用研究 4次下载
- 使用Sipeed MaiX板进行对象检测(Kendryte K210)
- K210命令行开发环境搭建指南 5次下载
- K210学习记录(1)——GPIO与软件使用
- 基于K210的MNIST手写数字识别
- [测试贴]K210在maixpy固件下,复位需要多长时间?
- 【堪智K210】 下载程序的过程原理 探索
- 亚博智能K210开发板学习笔记
- Maix Bit(K210) 裸机开发教程(八)实现简易照相机
- k210单片机初学
- Kendryte K210开发板使用说明书 64次下载
- 使用FPGA平台实现遗传算法的图像识别的研究设计说明 13次下载
- 实验python进行图像识别的示例代码资料免费下载 3次下载
- 基于DSP的快速纸币图像识别技术研究 159次下载
- 图像识别模组(包括PCB图、图像识别模组源代码)
- 如何利用CNN实现图像识别 1475次阅读
- 神经网络在图像识别中的应用 744次阅读
- 图像识别技术原理 图像识别技术的应用领域 2644次阅读
- 关于图像识别的三大要点 1577次阅读
- 新版Arduino IDE到底有何不同 6453次阅读
- dfrobot开源图像识别传感器介绍 3519次阅读
- 图像识别技术在模拟器的游戏场景当中体现的尤为明显 4177次阅读
- 深度学习进军太空领域——卫星实时图像识别 5226次阅读
- 浅析图像识别背后的发展历程 2.4w次阅读
- 如何实现图像识别?为什么要入局图像识别? 8057次阅读
- 图像识别中的深度学习 5024次阅读
- 浅谈图像识别技术 1.5w次阅读
- iOS 11.3的更新让ARKit支持垂直表面识别以及图像识别 7039次阅读
- 简单介绍图像识别技术在各类行业的应用 3.4w次阅读
- 对于图像识别的引入、原理、过程、应用前景的深度剖析 6511次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论