基于MaixPy的摄像头模块---MicroPython图像处理
1. 什么是 MaixPy
MaixPy 是将 Micropython 移植到 K210( 一款64位双核带硬件FPU和卷积加速器的 RISC-V CPU, ) 的一个项目, 支持 MCU 常规操作, 更集成了机器视觉和麦克风阵列, 以快速开发具有极低成本和体积实用的 AIOT 领域智能应用。
MicroPython 是基于 Python3 的语法做的一款解析器,包含了 Python3 的大多数基础语法, 主要运行在性能和内存有限的嵌入式芯片上。
(注意 Micropython 不包含 Python3 的所有语法)
K210 在硬件上集成了机器视觉和机器听觉能力, 是一款定位 AI 和 AIOT 市场的SoC,同时也是一颗方便的MCU, 性能强劲的同时却有着极低的价格。
Micropython 让我们在 K210 上编程更加简单快捷, 我们也将源代码开源在 github 上。
比如我们需要寻找I2C总线上的设备,只需要使用如下代码即可实现:
from machine import I2C
i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
devices = i2c.scan()
print(devices)
同样,我们需要实现一个呼吸灯,只需要如下代码:
from machine import Timer,PWM
import time
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
ch = PWM(tim, freq=500000, duty=50, pin=board_info.LED_G)
duty=0
dir = True
while True:
if dir:
duty += 10
else:
duty -= 10
if duty>100:
duty = 100
dir = False
elif duty<0:
duty = 0
dir = True
time.sleep(0.05)
ch.duty(duty)
实时拍照:
import image
import lcd
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
while True:
img=sensor.snapshot()
lcd.display(img)
2. Maix Camera能做哪些事
大多数是在 MaixPy 上已经有 API, 部分可能来自 Maixduino 或者其它开发者~
- 人脸检测
- MobileNet 物体识别
- tiny yolov2 20分类
- 识别颜色值、找形状、找直线、面部识别等
- MNIST 手写数字识别
- Feature map 显示
- 视频播放和录制
- NES 游戏模拟器 (FC 红白机)
- GBA 游戏模拟器
- 游戏 Quake I
- 游戏 Doom
- MMD 3D 实时渲染
- GUI 界面 littlevGL
- 云台脸部跟踪
- 麦克风阵列
- FFT 频谱图
3. 移植了OpenMV的机器视觉库
支持单目摄像头和双目摄像头,传感器模块,进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。
DIY相关的项目制作,比如追踪小球的车,云台,或者解魔方的机器人。
对成本要求很高的嵌入式工业方案,比如流水线物品的分拣。
视频录制、视频播放、音频录制、音频播放、人脸识别、人眼追踪、特征检测等等,大量的图像处理功能
4.最简单的摄像头图像例程
例程说明:实时采集并显示图像在TFT屏上,并获取和显示实时帧数
import sensor
import image
import lcd
import time
clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick()
img = sensor.snapshot()
fps =clock.fps()
img.draw_string(40,2, ("%2.1ffps" %(fps)), color=(128,0,0), scale=2)
lcd.display(img)
5.MaixCAM摄像头模块
原文链接:https://blog.csdn.net/solar_Lan/article/details/103483308