Edge ImpulseでSpresenseのカメラ画像を使ったAIモデルを作成します。ここでは、Edge Impulseにアカウントを作成し、Edge ImpulseにデバイスとしてSpresense を接続することを行います。

Edge Impulseのアカウント作成

Edge Impulseの「トップページ」から「Login」をクリックし、「Create new account」から名前、ユーザーネーム、メールアドレス、パスワードを入力して、アカウントを作成します。

Edge Impulse CLI のインストール

Edge Impulse CLI のインストールについては「Edge Impulse Installation」を参照し、 Windowsにインストールします。Edge Impulse CLI はその他に、Linux, Ubuntu, MacOS, and Raspbian OSにインストールできます。Python3およびバージョン14以上のnode.jsの環境下で、コマンドプロンプトにより次のコマンドでEdge Impulse CLI をインストールします。

npm install -g edge-impulse-cli --force

Spresenseの接続

  1. Sony Spresenseのファームウェアを「sony-spresense.zip」からダウンロードし、解凍してコマンドプロンプトから次のように「flash_windows.bat」を実行します。
  2. > flash_windows.bat
    If you see a ModuleNotFoundError error, run the following commands to add Python packages
         python -m pip install pyserial>=3.4
         python -m pip install inquirer>=2.7.0
    .
    [?] Select your device: COM4 - Silicon Labs CP210x USB to UART Bridge (COM4)
       COM1 - 通信ポート (COM1)
     > COM4 - Silicon Labs CP210x USB to UART Bridge (COM4)
       COM12 - com0com - serial port emulator (COM12)
       COM11 - com0com - serial port emulator (COM11)
    
    Using device COM4
    >>> Install files ...
    install -b 921600
    Install edge_impulse_firmware.spk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    410880 bytes loaded.
    Package validation is OK.
    Saving package to "nuttx"
    updater# sync
    updater# Restarting the board ...
    reboot
    続行するには何かキーを押してください . . .
    
  3. 次のコマンドで設定ツールを起動し、Edge Impulseのログイン情報やCOMポートの設定を行います。
  4. >edge-impulse-daemon
    Edge Impulse serial daemon v1.15.1
    ? What is your user name or e-mail address (edgeimpulse.com)? xxxx
    ? What is your password? [hidden]
    Endpoints:
        Websocket: wss://remote-mgmt.edgeimpulse.com
        API:       https://studio.edgeimpulse.com/v1
        Ingestion: https://ingestion.edgeimpulse.com
    
    ? Which device do you want to connect to? COM4 (Silicon Labs)
    [SER] Connecting to COM4
    [SER] Serial is connected, trying to read config...
    [SER] Failed to get info off device Timeout when waiting for >  (timeout: 5000) onConnected
    [SER] Serial is connected, trying to read config...
    [SER] Retrieved configuration
    [SER] Device is running AT command version 1.7.0
    
    Setting upload host in device... OK
    Configuring remote management settings... OK
    Configuring API key in device... OK
    Configuring HMAC key in device... OK
    [SER] Device is not connected to remote management API, will use daemon
    [WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
    [WS ] Connected to wss://remote-mgmt.edgeimpulse.com
    ? What name do you want to give this device? Spresense
    [WS ] Device "Spresense" is now connected to project "xx-project-1"
    [WS ] Go to https://studio.edgeimpulse.com/studio/130736/acquisition/training to build your machine learning model!
    
  5. Spresenseに対してAPIキー等が行われ、SpresenseとEdge Impulseのプロジェクトの紐づけは自動的におこないます。設定が終わるとSpresenseとEdge Impulseが接続された状態になります。
  6. Edge Impulseのプロジェクト画面から[Devices]を開くと接続されたSpresenseが表示されます。

エラー「Failed to get info off device Error: Failed to load development keys」の発生

コマンド「edge-impulse-daemon」を実行したときに次のエラー「Failed to get info off device Error: Failed to load development keys」が発生しました。

[SER] Failed to get info off device Error: Failed to load development keys: HTTP request failed
    at Object.setupCliApp (C:\Users\ne\AppData\Roaming\npm\node_modules\edge-impulse-cli\build\cli\init-cli-app.js:141:19)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Timeout.connectLogic [as _onTimeout] (C:\Users\ne\AppData\Roaming\npm\node_modules\edge-impulse-cli\build\cli\daemon.js:470:44)

これは、今まで使用していた 「load development keys」が見つからないというエラーでプロジェクトを削除したときに発生するようです。次のコマンドで環境を初期化します。

>edge-impulse-daemon --clean