PA!GOは、パナソニックがGoogleの機械学習技術を活用することで誕生したスマート知育玩具です。子どもたちの「探索する」、「遊ぶ」、「学習する」といった様々な意欲を育むために開発されました。
PA!GOは、デバイス上でAIを実行するためにGoogleが開発したプロセッサEdge TPUを搭載したIoT家電です。
現代の子どもたちは、靴紐を結ぶことができるようになる前に、スマホやタブレットの画面ロック解除を覚えます。テクノロジーが子どもたちの想像力や好奇心に取って代わってしまうのではなく、むしろ伸ばすような未来にしたい。私たちはそのために子どもたちがテクノロジーに触れる機会を減らすのではなく、テクノロジーを活用することで、より多くの時間を野外で過ごし、自分たちを取り巻く世界について学んでもらえる方法はないか、と模索し続けてきました。
そしてどこにでもあるリモコンという道具を、スクリーンに頼ることなく、見たこともないような方法で子どもたちが実際の世界に触れ合うことができる道具にできないか、と考えました。
PA!GOはGoogleのTensorFlowプラットフォームと、Coral USB Acceleratorを利用しています。USB AcceleratorにはEdge TPUが搭載され、USB 2.0インターフェースでRaspberry Pi Zero dev boardに接続されています。
モバイル環境に最適化されたTensorFlow Liteによる機械学習モデルをオンデバイスで実行することで、電力消費が軽減され、かつすべての処理がインターネット接続なしに可能になります。
PA!GOはGoogleのオープンソース画像識別モデルMobileNetV2をベースとして活用しています。学習データとしてiNaturalistを利用することで、鳥、昆虫、植物などの特定のカテゴリに特化したモデルを構築しています。
1つ目のボタンを押すと、内蔵されたGoogleの機械学習ライブラリTensorFlowで構築したAIを駆使し、周囲の世界を記録、分析、そして特定します。iNaturalistをデータセットとする画像識別モデルMobileNetをベースとして使うことで、子どもたちは記録したものの情報をその場ですぐに聞くことができます。2つ目のボタンを押すと、記録したもののより詳しい情報が再生され、身の周りの世界についてより学ぶことが出来ます。
パナソニック株式会社/FUTURE LIFE FACTORY
- 必要なパーツを用意
名前 | 個数 | 購入先リンク(例) | 備考 | |
---|---|---|---|---|
USBモバイルバッテリー | 1 | Anker PowerCore+ mini | ||
USB A <-> Micro B USBケーブル | 1 | Anker PowerCore+ mini に付属 | ||
M5Stack用デュアルボタンユニット | 1 | SwitchScience | ||
Grove Cable | 1 | M5Stack用デュアルボタンユニットに付属 | ||
Raspberry Pi camera module v2 | 1 | SwitchScience | ||
Raspberry Pi Zero 用カメラケーブル | 1 | SwitchScience | ||
スピーカー | 1 | Amazon | ||
スピーカーアダプター | 1 | Amazon | ||
マイクロSDカード | 1 | Amazon | ||
Raspberry Pi Zero WH | 1 | SwitchScience | ||
ReSpeaker 2-Mics Pi HAT | 1 | SwitchScience | ||
Coral USB Accelerator | 1 | Coral | ||
USB Micro-B <-> Type C ケーブル | 1 | USB Acceleratorに付属 | ||
USB Micro-B L型変換アダプタ | 1 | Amazon | ||
紙コップ(Ventiサイズ)とフタ | 1 | |||
ダンボール or 3Dプリンター | 1 | |||
穴あけパンチ or きり | 1 | |||
粗面用両面テープ | 1 |
-
お使いのPCにRaspberry Pi Imagerをインストールしてください https://www.raspberrypi.org/software/
-
マイクロSDカードをPCに挿入します
-
pago.img.zipをダウンロードします
-
Raspberry Pi Imagerを起動し、先程のpago.img.zipをSDカードに書き込みます
-
Raspberry Pi Zero WHをWi-Fiに接続するための設定を行います。(ビューワーを使用しない場合はこのステップは飛ばしてください)
Note: USB OTG (On-the-Go) 経由でのSSHは使用できない設定になっています。
Wi-Fiの設定方法は2通りあります。
モニターとキーボードがあればこちらの方法が一番簡単です。
- マイクロSDカードをRaspberry Pi Zero WHに挿入します
- モニターにHDMIケーブルを、キーボードをUSB MicroからUSBハブを使って接続します
- USBケーブルを使ってRaspberry Pi Zero WHに電源を供給します
- ターミナルに"raspberrypi login,"と表示されたら、 "pi" と入力しEnter、
その後、"Password,"と表示されたら"raspberry"と入力しEnterを押します sudo raspi-config
と入力しEnterを押します- Network Optionsを選び、Wi-FiからWi-FiのSSIDとパスワードを入力します
※ 詳細はsetup Wi-Fi from command lineを御覧ください
※ 詳細はhttps://www.raspberrypi.org/documentation/configuration/wireless/headless.mdを御覧ください。
-
マイクロSDカードをPCに挿入します
-
SDカードドライブ内のbootパーティション直下に、空のsshファイルを作成します
-
SDカードドライブ内のbootパーティション直下に、wpa_supplicant.confを作成し、以下のように内容を書き込み保存します
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=COUNTRY_CODE network={ ssid="NETWORK_NAME" psk="NETWORK_PASSWORD" }
COUNTRY_CODE は、ISO/IEC codeを参照の上、適切な文字に置き換えてください。(アメリカならUS、日本ならJAです)
-
SDカードを取り出し、Raspberry Pi Zero WHに挿入し、電源を入れてください
PCがRaspberry Piで設定したWi-Fiと同じネットワークに繋がっていることを確認し、次のコマンドを実行します。
ssh pi@raspberrypi.local
パスワードを求められたら"raspberry"と入力すると、Raspberry Piにアクセスが完了し、Wi-Fiが正常に接続できていることがわかります。 -->
-
A4の紙にデザインテンプレートを印刷します。 必ず等倍で印刷してください。
-
テンプレートA (pago_template_A.pdf)
-
テンプレートB (pago_template_B.pdf)
-
テンプレートC (pago_template_C.pdf)
-
-
印刷したデザインテンプレートの外枠を切り取ります(内側の実線や点線は切り取らないでください)
-
紙コップにのりでデザインテンプレートを貼り付けます
-
カッターで内側の実線部分を紙コップごと切り取ります
-
切り取った長方形の穴に、裏側からマスキングテープを貼ります
-
点線の円の中に小さな穴をパンチングするか、きりなどで小さい穴を開けます
-
紙コップの内部パーツを作成します
-
印刷した内部パーツの設計図右側の図形を切り取ります
-
切り取った図形をダンボールにあて、頂点部分にペンで印をつけます
-
頂点同士を結びます
-
先に沿ってダンボールを切り取ります。
-
使っているダンボールの厚さに応じて、すべて重ねたときに15mmになるように複数枚同様に切り取ります。
-
切り取ったダンボールを両面テープで貼り付けて重ねます
-
M5Stack用デュアルボタンユニットにGroveケーブルを取り付け、裏側に両面テープを貼り、下の写真のとおり内部パーツに貼り付けます。このとき、ケーブルが向かって右側に来るようにしてください。
-
Raspberry Pi camera module v2のフィルムを取り除いてください
-
Raspberry Pi camera module v2からケーブルを外します
-
Raspberry Pi camera module v2にRaspberry Pi Zero 用カメラケーブルを取り付けます
-
Raspberry Pi Zero WHにReSpeaker 2-Mics Pi HATを接続します
-
Raspberry Pi Zero WHに下記の写真のようにケーブルなどを配線します
-
Raspberry Pi Zero WHの裏側に粗面用両面テープを貼り、下の写真のとおり内部パーツにRaspberry Pi Zero WHを貼り付けます(少し向かって左につけてください)
-
スピーカーの裏側に粗面用両面テープを貼り付け、下の写真の通り内部パーツにスピーカーを貼り付けます
-
下の写真の通り、カメラに粗面用両面テープを貼り付け、紙コップのフタの飲み口部分からカメラのレンズが出るようにします
-
紙コップに部品を貼り付けた内部パーツやバッテリー、USB Acceleratorなど全てのパーツを下の写真の通り入れます
-
モバイルバッテリーの電源を入れ、フタをしめたら完成です。2-3分程すると「Ready」という声がします。
PA!GOはデフォルトで植物を認識できるようになっています。昆虫を認識させたい場合は「昆虫をキャプチャする」のセクションをご覧ください。
-
スピーカーの電源を入れ、PA!GOに電源を供給してから2-3分程すると"Ready"という声がして使用できる状態になります
-
上部の青いボタンを押し続けている間、PA!GOは対象物をキャプチャし続けます
-
PA!GOが対象物を認識すると、LEDが光ります。LEDの光は、PA!GOが対象物を認識できた確信度に応じて強くなったり弱くなったりします。
-
上部の青いボタンを離すと、PA!GOは対象物の名前を音声で教えてくれます。
-
下部の赤いボタンを押すとPA!GOは直前に認識した対象物の詳細情報を教えてくれます。
-
PCとRaspberry Piが同じネットワークに接続されていることを確認し、ターミナルから以下のコマンドを実行します
ssh pi@raspberrypi.local Password : raspberry
-
PA!GOのメインサービスを停止させます
sudo systemctl stop pago
-
insectモードでPA!GOのプログラムを実行します
sudo python3 ~/pago_coral/src/pago.py --category insect
-
再起動後も同じ設定を引き継がせたい場合はsystemdファイルを書き換えます。
/etc/systemd/system/pago.service
ファイルの、--category plant
を--category insect
に書き換えてください。
-
PCとRaspberry Piが同じネットワークに接続されていることを確認し、ターミナルから以下のコマンドを実行します
ssh pi@raspberrypi.local Password : raspberry
-
以下のリンクの手順に従って、Custom Search PanelからCustom Search EngineのCunstomSearchIDを取得します
Sites to search には images.google.com. を設定してください
CustomSearchIDを書き留めておきます
-
以下のリンクの手順に従って、Custom Search JSON APIのAPI Keyを取得します
https://developers.google.com/custom-search/v1/overview
API Keyを書き留めておきます
-
/boot/VIEWER/api_key.jsonにCustomSearchIDとAPI Keyを記入します
/boot/VIEWER/api_key.json { “GOOGLE_API_KEY”: “YOUR API KEY”, “CUSTOM_SEARCH_API_ID”:”YOUR CUSTOM SEARCH ID” }
-
同じネットワークに接続されているPCやスマートフォンのブラウザからRaspberry Piに接続します。
下記URLを入力しアクセスしてください。 http://raspberrypi.local:8080
キャプチャした全ての写真はここに一覧表示されます。
このページを表示させたままキャプチャするとリアルタイムにキャプチャした写真が追加されます。
写真を選択すると、そのオブジェクトの詳細情報を確認できる詳細ページに遷移します。
右上のSTORYアイコンを選択するとストーリーページに遷移します。
詳細ページにはキャプチャした対象物をCoral Acceleratorによって解析された結果や、Knowledge Graphの情報、関連画像、関連動画が表示されます。
ストーリーアーカイブページには日ごとにまとめたハイライトを一冊ずつ本にまとめて一覧として表示しています。
日付が書かれた本を選択すると、その本の内容をストーリーページの中で閲覧することができます。
その日のハイライトをタイムライン形式で表示しています。
写真を選択すると、詳細を確認できます。
Directory | Description |
/home/pi/pago_coral | Pago main python application |
/home/pi/pago_coral/models | TF lite model location |
/boot/VIEWER/ | Page viewer application |
/boot/VIEWER/data | Captured images and metadata directory |
/boot/VIEWER/data/${YYYY-MM-DD_HHMMSS}/image.jpg | Captured image |
/boot/VIEWER/data/${YYYY-MM-DD_HHMMSS}/meta.json | Captured image metadata (see schema below) |
/etc/systemd/system/pago.service | PA!GO main service |
/etc/systemd/system/pago-http.service | PA!GO viewer service |
Label Name | Description |
top_label | Image Analysis Results |
kg | Knowledge Graph |
dateTime | Date / Time(yyyy-mm-dd_HHMMSS) |
date | Date(yyyy-mm-dd) |
time | Time(HHMMSS) |
top_score | Top Accuracy Scores (%) |
candidates | All results (Array) |
candidates.score | Score (%) |
candidates.label | Object Name |