什么是Maixpy3
MaixPy3 是基于 cpython 的 Python3 工具包,意在通过 Python 编程语言简化在 Linux 边缘设备上开发 AIoT (人工智能物联网) = AI(人工智能) + IoT(物联网)应用。
前言
物联网(Internet of Things,简称 IOT )是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
AI 的介入让 IoT 有了连接的“大脑”。当 AI 、 IoT “一体化”后,“人工智能”逐渐向“应用智能”发展。深度学习需要物联网的传感器收集,物联网的系统,也需要靠人工智能做到正确的辨识、发现异常、预测未来。
而 2021 年 AIoT 边缘设备可能有如下应用场景:
涵盖领域:智能制造、工业物联网、智慧物流、智慧家居、智慧交通、智慧农业、智慧园区、智慧政务、智慧医疗、智慧零售等智能物联网各应用场景。
所以 MaixPy3 会在 Python3 的基础上提供易用的 AI 功能模块,如【物体分类】和【人脸识别】功能。
会优先适配 MaixPy 的物体检测、物体识别、物体分类等。由于芯片差异,部分功能可能不被实现。
以往嵌入式 Linux 设备是如何编程的?
当拿到一台嵌入式 Linux 边缘设备(例如:手机),与一台桌面计算机不同的是无法进行软件编译活动,那么要如何对它编程呢?
- 准备对应平台的交叉编译链
- 编写一段经典的
hello world
的 C 代码进行编译 - 链接各种依赖库
- 将编译好的程序送到目标设备上进行调试。
#include <stdio.h>
int main()
{printf("Hello, world\n");return 0
}
不出意外的话,你应该要花费不少时间学习如下内容。
- 学习如何编译程序
- 学习 C 语言语法
- 学习调试程序 Bug
那现在呢?
“人生苦短,我用 Python 。”
如果你是下述人群,那么 Python 将会非常适合你。
- 对编程感兴趣却无从下手的
- 想轻松入门 AIoT 开发的
- 不了解,也不关心底层的
- 想愉快写代码(偷懒)的
- 想快速验证软硬件功能的
让我们使用 Python 编写一段经典的 hello world
程序吧!
print('hello world')
print('1 + 1 = ?', 1 + 1)
就这?就这???
基于上述事实使用 MaixPy3 会给你带来如下编程体验。
- 使用 Python3 标准编程环境,而非 MicroPython 解释器。
- 提供专为 AIoT 应用开发有关的底层拓展模块。
- 支持不同芯片的 Linux 平台,自底向上的优化 Python 性能。
- 访问硬件外设的 Python 驱动代码,常见于各类传感器。
- 在 GitHub 开源的 MaixPy3 仓库。
说了这么多,不妨来看一些示例代码。
在屏幕上显示摄像头捕获的图像。
from maix import display, cameraimage = camera.capture()display.show(image)
访问某个 I2C 外设,读写地址数据。
from maix import i2ci2c_device = '/dev/i2c-2'
device_address = 0x26
data_address = 0x01i2c = i2c.I2CDevice(i2c_device, device_address)i2c.write(data_address, b'\xAA')print(i2c.read(data_address, 1))
加载 AI 模型后输入图像验证结果。
from PIL import Image
from maix import nnm = nn.load({"param": "resnet.param","bin": "resnet.bin"}, opt={"model_type": "awnn","inputs": {"input0": (224, 224, 3)},"outputs": {"output0": (1, 1, 1000)},"first_layer_conv_no_pad": False,"mean": [127.5, 127.5, 127.5],"norm": [0.00784313725490196, 0.00784313725490196, 0.00784313725490196],
})img = Image.open("input.jpg")
out = m.forward(img, quantize=True)
print(out.shape)
out = nn.F.softmax(out)
print(out.max(), out.argmax())
还想知道更多?
Maixpy3 文档
什么是Maixpy3相关推荐
- K210神经网络的训练以及出现内存不足的情况memory not enough解决方案
目录 介绍 开始训练 训练完成 memory not enough报错 解决方案一: 解决方案二: 介绍 最近在搞K210神经网络搭建识别数字,在烧入代码的时候就有很多坑,记录一下我的坑,希望能给大家 ...
- MaixII-Dock(v831)学习笔记——MaixII-Dock初使用
文章目录 MaixII-Dock 烧录镜像 Windows系统下烧录镜像 准备工作 格式化TF卡 烧录镜像 Linux系统下烧录镜像 安装MaixPy3 IDE 上电测试 运行程序 配置开机启动脚本 ...
- V831体验—烧录系统
V831体验-烧录系统 使用设备 使用环境 windows 获取烧录工具 系统烧录(非dd版本) 使用dd烧录(dd版本) 新整了一个V831的开发板.据说可以放 Linux 操作系统,我特意搞了一个 ...
- Maixll-Dock 使用方法
Maixll-Dock 使用方法 MaixPy3 IDE 安装MaixPy3 IDE 使用MaixPy3 IDE 串口 使用方法 题外话:如何优雅的提问问题 咳咳,我们上面把镜像系统装好了.问题来了, ...
- Maixll-Dock 快速上手
Maixll-Dock 快速上手 Maixll-Dock 准备工作 安装镜像 下载镜像文件 格式内存卡 系统烧录 开发板测试 开机 文件说明 之前写了一些关于Maixll-Dock (V831)的文章 ...
- V831 find_magic(魔方识别)
V831 find_magic(魔方识别) find_magic 功能 参数说明 实例代码 emmm最好在整实物上测试. find_magic 功能 V831提供find_magic 功能,为识别魔方 ...
- K210图像检测(1~8)数字卡片识别
前言 第一次使用该平台.想先找一个简单的识别,来走走流程.就想到了,前几年的送药小车的数字卡片识别.花了半天收集标记图片.在运行时要注意摄像头与数字卡片的高度.不过也有些不足,可能是收集某个数字的 ...
最新文章
- NanoPi NEO Air使用一:介绍
- Linux 进程等待队列
- 你可以去学python_你是怎么学好Python的?
- pyqt5入门教程(四)
- 【交通行业】轨迹相似性度量介绍
- 软件工程概论 课堂练习【空调维修系统 类图】
- jstat的小伙伴:找出system.gc的调用的小工具
- MTK 驱动(85)----RPMB key introduction
- 【Git】error: RPC
- 实例解析:OperaMasks2.0中的DataGrid之一:定义DataGrid
- Bailian3255 十进制到六进制【进制】
- Mac 系统如何修改python的IDLE默认模块导入路径。
- 二路归并排序的C++实现
- hadoop+HBase+ZooKeeper+Hive完全分布式集群部署安装
- idea output 窗口悬浮
- Mysql日志时间与系统时间相差八小时
- 计算机任务管理器不能打开,电脑任务管理器打不开详细解决方法 | 专业网吧维护...
- 专题导读:大数据可视分析应用
- python 去水印复杂问题
- 【tio-websocket】4、tio-websocket-server实现自定义集群模式