Maix用の顔認識モデルが公開されました。なんと、クラウドに繋ぐことなしにコンパクトなマイコンだけで、お顔を認識することができます。M5StickVでお顔を試してみました。ソースコードはこちらです。https://gist.github.com/anoken/7fc193959d64f139a135e859461789aa仕組みお顔認証の仕組みは以下のような流れになっていると推測します。(あくまでソースコードからの予想)1.yolov2のニューラルネットワークで顔部分を領域特定。2.顔周辺エリアを切り取って、128x128にリサイズ。ニューラルネットワークで転移学習により、お顔を認識。genをダウンロードします。http://blog.sipeed.com/p/1338.html#more-1338KFlashでM5StickVに書き込みます。IDEのコンソールで、起動すると、シリアルコードが表示されます。コピーして保存しておきます。シリアルコードはMaixボード個体毎に生成されるものです。Sipeedの学習モデルの入手maixhubから、Sipeedの学習モデルを入手します。https://www.maixhub.com/ダウンロードにはシリアルコードが求められるので、Maixボードから取得したものを入力します。以下の3つのK210用のニューラルネットワークのモデルが入っています。M5StickVへの書き込みM5StickVのファームウェアとニューラルネットワークのモデルをkflashで書き込みして、ソースコードを実行すると、お顔の認識が動かせる状態になり、、、、ソースコードはこちらです。https://gist.github.com/anoken/7fc193959d64f139a135e859461789aaこれだけでは動きません!!M5StickVのメモリ最適化お顔認証は、3つのニューラルネットワークのモデルを読み込む必要があり、Maixボードのシステムヒープメモリに3MB以上の空きサイズが必要です。空きサイズは、kpu.memtest()コマンドで確認することができます。ver0.4.0.92)では、システムヒープメモリの空きが2.5MBしかありませんので、モデルを読み込むことができません。SipeedのMaixボードであれば、minimum版のバイナリが提供されているのですが、M5Stickvはカメラや電源ICがMaixボードとは異なるので、minimum版のバイナリでは色々と不都合があります。そこで、M5StickVのファイムウェアをカスタマイイズし、メモリ最適化をします。以下の作業はUbuntu(Linux)が必要です。ウェブサイトからダウンロードして取得します。mlpyserialをpipでインストールします。requirements.txtkendryte-toolchainのインストールkendryteのtoolchainを、/opt/kendryte-toolchain/にインストールします。/opt/kendryte-toolchain/binhttps://github.com/kendryte/kendryte-gnu-toolchain/releasesMaixPyのFirmwareのライブラリを減らすMaixPyのFirmwareのライブラリを減らすことでシステムヒープメモリの容量をあけることができます。Configrationを選びます。Configrationを選びます。Configrationを選びます。使わないライブラリをOFFにします。Supportを残して他をOFFにしました。MaixPyをビルドします。maixpy.binというファイルが生成されれば完了です。build生成されたMaixPyバイナリと学習モデルをKfashで書き込んでみましょう。今度こそ、動かすことができました。maixhubhttps://www.maixhub.com/お顔の画像はぱくたそ様を使いました。upLoginユーザーは見つかりませんでした。