フラッシュを書き込むためのコマンドを用意
まずはフラッシュを書き込むためのコマンドを用意した。この手の新しいデバイスではファームウェアはまだまだマチュアにはなっていないので、とにかく最新にアップデートしておく。
kflash
https://github.com/kendryte/kflash.py
ちなみにkflash_guiを試してみたが立ち上がってみたものの何かをするとすぐ落ちるので、コマンド版のこちらを使った。コマンド一行で処理できるのでGUI要らない。
ファームウェア
ファームウェアを最新のものにアップデートにする。
ファームウェアの場所
http://dl.sipeed.com/MAIX/MaixPy/release/
ファームウェアのアップデート方法
https://maixpy.sipeed.com/en/get_started/upgrade_firmware.html
今回はmaixpy_v0.3.2_full.binを使った。kflashコマンドを使って書き込んだが問題は発生しなかった。次に顔認識をするためにface_model_at_0x300000.kfpkgをkflashで書き込んだ。fullに含まれているのかも知れないけれど念のため入れておいた。
IDEを用意
IDEから最新のバージョンをダウンロードして使った。
http://dl.sipeed.com/MAIX/MaixPy/ide/
シリアルラインを選択をすると右のモニタがあらわれる。まだ何か足りなくて本来モニタ部分に画像や他の情報が出力されているはずなのに出力されていない。だけれども実行をかけるとMaxiPyは動いて顔もサクサク認識してくれているのでプログラムを試す範囲では困らなかった。
とりあえずメモしておく。
ちなみに動かしたコードはこれ。サンプルコードをほぼそのまま使っている。
import sensor
import image
import lcd
import KPU as kpu
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(sensor.get_id())
task = kpu.load(0x300000)
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)
a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
while(True):
img = sensor.snapshot()
code = kpu.run_yolo2(task, img)
if code :
for i in code :
a = img.draw_rectangle(i.rect())
a = lcd.display(img)
a = kpu.deinit(task)