【嵌入式AI开发】轻量级卷积神经网络MobileNet项目实战——文末完整源码工程文件

本文主要是介绍【嵌入式AI开发】轻量级卷积神经网络MobileNet项目实战——文末完整源码工程文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:本文介绍轻量级卷积神经网络MobileNet网络实战,包含MobileNetV1、MobileNetV2、ResNet50三个预训练模型可供选择。

实现:1.预训练MobileNet图像分类,2.调用摄像头实时MobileNet图像分类,3.MobileNet视频图像分类。

MobileNet网络理论详解:【嵌入式AI开发】轻量级卷积神经网络MobileNetV1网络详解-CSDN博客

调用摄像头实时MobileNet图像分类效果:

预训练MobileNet图像分类效果:

 

MobileNet视频图像分类效果与调用摄像头实时MobileNet图像分类效果一致,对输入的任意视频进行视频图像分类输出,生成一个mp4文件。

代码资源的三个.py文件对应三个实战项目

目录

预训练MobileNet图像分类

调用摄像头实时MobileNet图像分类

MobileNet视频图像分类

源码工程下载链接


预训练MobileNet图像分类

首先是导入预训练模型。导入MobileNet V1预训练模型或者导入MobileNet V2预训练模型或者导入ResNet50预训练模型,任选其一便可,只运行一个model,载入模型的变量为model。

本次运行的是MobileNet V1,如下为运行出来的model模型结构,可以看到显示卷积层,然后是深度可分离卷积模块(先DW卷积+BN+RELU,再PW卷积+BN+RELU),然后经过全局平均池化得到1024个向量,输入到1000个神经元的全连接层中,输出1000个类别的logit,再经过softmax归一化得到1000个类别的概率。

整个模型是有可训练参数Trainable params: 4,231,976 (16.14 MB)

Model: "mobilenet_1.00_224"
┌─────────────────────────────────┬────────────────────────┬───────────────┐
│ Layer (type)                    │ Output Shape           │       Param # │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ input_layer (InputLayer)        │ (None, 224, 224, 3)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv1 (Conv2D)                  │ (None, 112, 112, 32)   │           864 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv1_bn (BatchNormalization)   │ (None, 112, 112, 32)   │           128 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv1_relu (ReLU)               │ (None, 112, 112, 32)   │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_1 (DepthwiseConv2D)     │ (None, 112, 112, 32)   │           288 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_1_bn                    │ (None, 112, 112, 32)   │           128 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_1_relu (ReLU)           │ (None, 112, 112, 32)   │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_1 (Conv2D)              │ (None, 112, 112, 64)   │         2,048 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_1_bn                    │ (None, 112, 112, 64)   │           256 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_1_relu (ReLU)           │ (None, 112, 112, 64)   │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pad_2 (ZeroPadding2D)      │ (None, 113, 113, 64)   │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_2 (DepthwiseConv2D)     │ (None, 56, 56, 64)     │           576 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_2_bn                    │ (None, 56, 56, 64)     │           256 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_2_relu (ReLU)           │ (None, 56, 56, 64)     │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_2 (Conv2D)              │ (None, 56, 56, 128)    │         8,192 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_2_bn                    │ (None, 56, 56, 128)    │           512 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_2_relu (ReLU)           │ (None, 56, 56, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_3 (DepthwiseConv2D)     │ (None, 56, 56, 128)    │         1,152 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_3_bn                    │ (None, 56, 56, 128)    │           512 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_3_relu (ReLU)           │ (None, 56, 56, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_3 (Conv2D)              │ (None, 56, 56, 128)    │        16,384 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_3_bn                    │ (None, 56, 56, 128)    │           512 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_3_relu (ReLU)           │ (None, 56, 56, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pad_4 (ZeroPadding2D)      │ (None, 57, 57, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_4 (DepthwiseConv2D)     │ (None, 28, 28, 128)    │         1,152 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_4_bn                    │ (None, 28, 28, 128)    │           512 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_4_relu (ReLU)           │ (None, 28, 28, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_4 (Conv2D)              │ (None, 28, 28, 256)    │        32,768 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_4_bn                    │ (None, 28, 28, 256)    │         1,024 │
│ (BatchNormalization)            │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_pw_4_relu (ReLU)           │ (None, 28, 28, 256)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv_dw_5 (DepthwiseConv2D)     │ (None, 28, 28, 256)    │     

这篇关于【嵌入式AI开发】轻量级卷积神经网络MobileNet项目实战——文末完整源码工程文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941130

相关文章

【Java开发面试系列】JVM相关面试题(精选)

【Java开发面试系列】JVM相关面试题(精选) 文章目录 【Java开发面试系列】JVM相关面试题(精选)前言一、JVM组成二、类加载器三、垃圾回收四、JVM实践(调优) 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博客,很高兴能够在这里和您见面! 💝希望您在这里可以感受到一份轻松愉快的氛围! 💝不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

风电功率预测 | 基于PSO-BP神经网络实现风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码 风电功率预测 基于粒子群优化算法(Particle Swarm Optimization, PSO)的BP神经网络是一种常见的方法,用于实现风电功率预测。下面是一个基于PSO-BP神经网络实现风电功率预测的一般步骤: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数据。 数据预处理:对收

类人速度超快语音响应!OpenAI推出新旗舰模型GPT-4o,图文音频手机AI搞定

内容概述 虽然没有带来备受期待的人工智能(AI)搜索引擎,但OpenAI在主打产品AI模型上花了更多心思,拓展多模态功能,让用户可以免费玩转文字、图片和语音输入。 美东时间5月13日周一,OpenAI首席技术官Mira Murati在直播演示中宣布,推出新的OpenAI旗舰AI模型,名为GPT-4o,称它面向所有人,包括免费用户,为“我们的免费用户带来GPT-4级的智能”。OpenAI还推出了

卷积神经网络CNN的各个层做的事情No.30

我是小蕉。 今天跟大家聊聊卷积神经网络各个层实际做的事情以及原理。 马老大在一个峰会说:"我们之前做了很多算法的优化,但是现在有了深度学习,可能用一个算法,不断叠加叠加到729层,就能达到之前所不能达到的精度和效果。" 卷积神经网络是深度学习很重要的基础结构之一,很多深度学习的网络中都是一层加一层地叠加卷积神经网络来达到各种各样的目的。卷积神经网路开始发力应该是在2012年的ImageNe

尝试克服一下小伙伴对神经网络的恐惧No.26

我是小蕉。 研表究明,这的网官的demo,代码确实的是己打自的。 这两天仔细研究了一下神经网络,简单的结构其实没想象中那么恐怖,只是我们自己吓自己,今天希望能把理解到的东西分享给大家,克服一下大家的恐惧,我使用的框架是Tensorflow。 先提一个概念,placeholder占位符,这个东西是我们用来进行填坑的东西,也就是我们能在调用的使用传入的东西,其他的东西在网络编写完成之后,只能由

设计模式-策略模式【实战】

设计模式-策略模式【实战】 通常面试题:项目中你认为设计好的地方有哪些,项目中的设计模式是怎么用的?为什么要用设计模式… 通常这样的问题,就开始自我吹嘘,解耦,高内聚低耦合啥的… 面试官一脸黑 废话少说上设计模式,讲讲我的理解。 策略模式: 策略模式允许你定义一系列算法,将每个算法封装起来,并使它们可以互相替换。在这种情况下,每个查询类型可以被视为一个不同的策略,它们可以根据查询类型的不同而执

OpenAI推出旗舰AI模型GPT-4o并免费开放

🦉 AI新闻 🚀 OpenAI推出旗舰AI模型GPT-4o并免费开放 摘要: OpenAI 未来的产品将以免费为优先,以让更多人使用为目标。OpenAI 发布了桌面版本的程序和更新后的 UI,更加简单自然。推出了新一代大模型 GPT-4o,具有文本、语音、图像三种模态的理解力,反应极快,具有极为自然的交互方式。 GPT-4o,将免费提供给所有用户。GPT-4o 具备语音、文本和图像

第1章 初始Spring Boot【仿牛客网社区论坛项目】

第1章 初始Spring Boot【仿牛客网社区论坛项目】 前言推荐项目总结第1章初识Spring Boot,开发社区首页1.课程介绍2.搭建开发环境3.Spring入门体验IOC容器体验Bean的生命周期体验配置类体验依赖注入体验三层架构 4.SpringMVC入门配置体验响应数据体验响应Get请求体验响应Post请求体验响应HTML数据体验响应JSON数据 5MyBatis入门配置Use

SpringBoot多模块项目MybatisPlus配置

项目目录 主模块配置  配置类 @Configuration@EnableTransactionManagement@MapperScan("com.sms.**.mapper")public class MybatisPlugConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPl

Ubuntu 使用pycharm+virualenv+python 版本隔离开发环境搭建

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。 1. java环境安装 pycharm由java开发,故需要安装java环境 sudo add-apt-repo