Google OS実験室 ~Moonlight 明日香~

GoogleのAndroidで遊び始めて, すでに6年以上が経った. Androidは思った以上の発展を遂げている. この技術を使って, 新しいことにチャレンジだ!!

Android Things 1.0のSetup UtilityはステルスSSID未対応!?

先日(2018/5/8-10)開催されたGoogleの開発者向けイベント「Google I/O 2018」でAndroid Things 1.0が発表された.
先週さっそく試そうと, Android Things Setup Utility v1.0.20を使ってセットアップを試みたが, すんなり動いてくれなかったので, 少し状況をまとめておく.

1. Android Thingsのインストール[1]
今回の開発環境は以下の通り.
- Host PC : Windows 10 Pro
- Hardware : Raspberry Pi 3
- WiFi AP : Buffalo WZR-300HP

Android Thingsのインストールは, ここからSetup Utilityをダウンロードし, 実行することで簡単に行える.

[実行ログ]
 Android Things Setup Utility (version 1.0.20)
 ============================
 This tool will help you install Android Things on your board and set up Wi-Fi.

 What do you want to do?
 1 - Install Android Things and optionally set up Wi-Fi
 2 - Set up Wi-Fi on an existing Android Things device
 1
 What hardware are you using?
 1 - Raspberry Pi 3
 2 - NXP Pico i.MX7D
 1
 You chose Raspberry Pi 3.

 Setting up required tools...
 Fetching additional configuration...
 Downloading platform tools...
 4.74 MB/4.74 MB
 Unzipping platform tools...
 Finished setting up required tools.

 Raspberry Pi 3
 Do you want to use the default image or a custom image?
 1 - Default image: Used for development purposes. No access to the Android
 Things Console features such as metrics, crash reports, and OTA updates.
 2 - Custom image: Upload your custom image for full device development and
 management with all Android Things Console features.
 1
 Downloading Android Things image...
 331 MB/331 MB
 Unzipping image...

 Downloading Etcher-cli, a tool to flash your SD card...
 19.8 MB/19.8 MB
 Unzipping Etcher-cli...

 Plug the SD card into your computer. Press [Enter] when ready

 Running Etcher-cli...
 ? Select drive \\.\PHYSICALDRIVE2 (32.0 GB) - USB Mass  Storage Device USB Device
 ? This will erase the selected drive. Are you sure? Yes
 Flashing [========================] 100% eta 0s
 Validating [========================] 100% eta 0s
 iot_rpi3.img was successfully written to USB Mass  Storage Device USB Device (H:)
 Checksum: e41d659a

 If you have successfully installed Android Things on your SD card, you can now
 put the SD card into the Raspberry Pi and power it up. Otherwise you can abort
 and run the tool again.

 Would you like to set up Wi-Fi on this device? (y/n)

インストールは特に問題なし.

2. Wifiの設定[2]
次に, WiFiの設定を行う.

[実行ログ]
 Would you like to set up Wi-Fi on this device? (y/n) y
 Please plug your Raspberry Pi to your router with an Ethernet cable, then press [Enter].

  Attempting to connect to your Raspberry Pi at Android.local...
 Connected to device through Ethernet.
 Enter the Wi-Fi network name: XXXXXX
 Enter the Wi-Fi network password (leave empty if no password):
 Connecting to Wi-Fi network XXXXXX...
 Looking for device... This can take up to 3 minutes.
 Error: unable to connect to Wifi: device not found: timed out
 Stopping adb server...
 Stopped adb server...

 If you are having trouble using the Setup Utility, please file a ticket at
 https://issuetracker.google.com/issues/new?component=1xxxxx.

 Press [Enter] to quit.

と, デバイス(ここではAPかな?)が見つけられず, WiFi接続に失敗した.

things01

Logcatのログなども少し確認したが原因がよくわからない.
Google Issue Trackerに報告しろとのことなので, とりあえずバグ登録した.

今日少し時間があったので再度トライ.
いろいろと試している中で, WiFi APのSSIDをステルス設定していることを思い出した.
そこで, ステルス設定を解除し試すと, いとも簡単にWiFi接続できてしまった.
WiFi接続できない直接の原因は, Setup UtilityがステルスSSIDに未対応だったことのようだ...

では, ステルスSSIDのWiFi APに接続するにはどうすればよいのか?
答えは, ここを参考に, 以下のようなコマンドで接続できることを確認した.

 > adb connect Android.local
 connected to Android.local:5555
 > adb shell am startservice \
    -n com.google.wifisetup/.WifiSetupService \
    -a WifiSetupService.Connect \
    -e ssid <Network_SSID> \
    -e passphrase <Network_Passcode> \
    --ez hidden true

things02

Issue Trackerには, ステルスSSIDが原因でつながらなかったと, 追加メッセージを書き込んでおいた.
ただ, できればSetup UtilityでもステルスSSIDに対応してほしいものだ...

----
参照URL:
[1] Raspberry Pi 3 | Android Things | Android Developers
[2] Connecting to Wi-Fi with adb | Android Things | Android Developers

Google ML Kit試してみた!

先日(2018/5/8-10)開催されたGoogleの開発者向けイベント「Google I/O 2018」で「ML Kit」[1]のβ版が発表された.
AndroidやiOS向けアプリでML Kitを使うことで, 機械学習を活用したテキスト認識, 顔検出, 画像のラベル付けなどが容易に利用できるようだ.

そこで, quickstart-android[2]を早速試してみた.

1. MK Kit概要
1.1 主な機能
現時点では, 5つのAPIが提供されており, APIによってOn-deviceとCloudでの対応状況が異なっている.
On-devieとCloudの両方に対応している場合でも, 認識精度や取得できる情報が異なっている.

MLKit02

FeatureOn-deviceCloud
テキスト認識
顔検出
バーコードスキャン
画像のラベル付け
ランドマーク認識

1.2 主な特徴
 ・ 「Firebase」上で利用でき, 「Android」向けと「iOS」向けの双方が用意されている.
 ・ On-device上の機能を利用する場合は, ネットワーク接続なしに無償で利用できる.
 ・ 独自のTensorFlow Liteモデルを利用できる.
など, など...

2. ML Kitデモのビルド
2.1 ソースコード取得
(1) リポジトリをクローンする.

 $ git clone https://github.com/firebase/quickstart-android.git

(2) Android Studioでquickstart-android/mlkitをインポートする.

MLKit

2.2 Firebaseのプロジェクト作成
(1) Firebase Consoleでプロジェクトを作成する.
(2) プロジェクトの設定ファイルgoogle-services.jsonをダウンロードする.
(3) Android Studioのmlkit/appの下に, google-services.jsonを配置する.

2.3 ビルド
今回は以下の環境でビルドした.
[ビルド環境]

 ・ Android Studio 3.1.2
 ・ buildToolVersion 27.0.3

 ・ compileSdkVersion 27
 ・ targetSdkVersion 27

3. ML Kitデモ
3.1 顔検出
単に顔位置を検出するだけでなく, 目の位置やhappiness度なども認識している.
上の二人は, happiness度低~い.

keyaki01
[出典:欅坂46公式サイト オフィシャルレポート]

3.2 テキスト認識
On-deviceの場合には, 行単位で認識するみたい.
まだ, 日本語は対応していないとのこと.

MLkit03

3.3 バーコードスキャン
バーコードもQRコードも認識できる.
ただ, バーコードは回転に弱い感じ.

MLKit05

3.4 ラベル認識
On-deviceでは400+ ラベル, Cloudでは10,000ラベルの認識ができるそうだ.
On-deviceだと, iPodをMobile phoneと間違えたので, iPod自体がラベルにないのだろう.

MLkit04

まずは, Quickstartのデモを動作させてみた.
On-device上でもラベル認識以外はそれなりに認識できている.
Cloudになると, もっと認識精度はいいだろうし...

だが, あくまでパターン認識なので, 100%正解ってことはない.
誤認識することもあると割り切って, うまくアプリで使ってやることが大事!!

それなりにおもしろいことができるのではとの期待が膨らんできたので, デモのソースコードやML Kitのドキュメントを読んで, 少しアプリへの実装の仕方を勉強してみよう.

----
参照URL:
[1] ML Kit for Firebase | Firebase
[2] firebase/quickstart-android: Firebase Quickstart Samples for Android

プロフィール

明日香

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

記事検索



  • ライブドアブログ