基於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 sensor
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攝像頭模塊

 

發佈了100 篇原創文章 · 獲贊 199 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章