Google Translate for this page : https://translate.google.com/translate?sl=ja&tl=en&u=https://osdn.net/projects/gokigen/wiki/A01f

概要

A01f は、Android用の TensorFlow Liteを使ったオブジェクト検出アプリケーションです。入力した画像から、最大10個のオブジェクトを検出することができます。
オブジェクト検出をするための画像は、標準はデバイス内蔵のカメラですが、設定により、デバイス内画像、WiFiで接続するデジカメ(ソニー、パナソニック、リコー/ペンタックス、OMDS/オリンパス, PIXPRO)に変更することができます。
また、オブジェクト検出モデルは、デバイス内のファイルを選択して設定が可能ですので、 TensorFlow Lite Model Maker を使用して作成した独自のオブジェクト検出モデルファイルをお試しいただけます。

標準のオブジェクト検出モデルは「ねんどろいど 雪村あおい」と「ねんどろいど 倉上ひなた」を採用しています。

A01f_SS01.png
A01f オブジェクトの検出

機能一覧

  • 表示中画像のオブジェクトを検出 (同時に最大10個まで)
  • TensorFlow Lite の Object Detection モデルファイルの読み込み (デバイス内にある TensorFlow Lite Model Maker を使用して作成したオブジェクト検出モデルファイルの読み込みが可能)
  • いろいろな方法による画像の入力: 内蔵カメラ(内蔵)、デバイス内画像(ファイル)、Wi-Fi経由で接続したデジタルカメラ(リコー GRシリーズ/PENTAX一眼レフ、リコーTHETA、パナソニック、ソニー、PIXPRO WPZ2、OMDS/Olympus(OM-D, PEN, Air, TG-6))

インストール

以下リンクのGoogle Play よりインストールしてください。

初回起動時には、権限の許可を求めるダイアログが表示されますので、どうか許可を与えてください。

ディレクトリ選択(「このフォルダは使用できません」)が表示される場合は、 /DCIM/ の下に AirA01a というディレクトリを作成し、「このフォルダを使用」を選択してください。 このフォルダは、カメラ画像を撮影した場合、保管するフォルダとして利用します。

a01f-saf.png
A01fが使用するフォルダの設定

説明

A01fを起動したあと、カメラを検出したい対象に向けてください。(デバイス内画像(ファイル)を入力にしている場合は、画面を長押しし、画像ファイルを選択してください。) オブジェクトを検出すると、枠で囲み、そのレベルを表示します。オブジェクトは同時に10個まで検出できるはずです。
入力にカメラ画像を使用している場合は、左上のシャッターボタンを押したタイミングで撮影することができます。
シャッターボタン右隣のボタンは、グリッド表示のON/OFF 切替ボタンです。

A01f-screens.png
A01f 画面説明

「A01f 設定」について

アプリケーションの設定画面です。設定画面で設定を変更した場合は、A01fを一度完全に終了させてから改めて起動しなおしてください。

A01fSet.png
A01f 設定

Wi-Fi 設定

本項目にタッチすると、AndroidのWi-Fi設定画面を開きます。A01fとデジカメと接続する場合にご使用ください。

表示画像も保存

本項目にチェックを入れると、シャッターボタンを押したときにWi-Fiで接続したカメラで撮影するタイミングで、デバイスで表示している画像も保存します。 保存場所は、デバイス内の /DCIM/AirA01a です。 このディレクトリがない場合には保存できませんので、あらかじめ作成して使用可能にしておいてください。

オブジェクト検出モデル

標準のオブジェクト検出モデルは、ねんどろいど 雪村あおいを検出するモデルです。 本項目にタッチすると、デバイス内にあるTensorFlow Liteのオブジェクト検出モデルファイルを選択して設定することができます。

オブジェクト検出モデルファイルは、 TensorFlow Lite Model Maker を使用して作成することができます。
以下に Object Detection with TensorFlow Lite Model Maker のページで作成したモデルを使ってオブジェクト検出を行った例を示します。

0.8.0 から、オブジェクト検出モデルを2つ同時に使用して検出できるようになりました。オブジェクト検出モデルの精度や認識速度の違いなどを確認するのにご使用いただければと思います。

オブジェクト検出モデルを2つ同時に使用する場合は、2つめの検出モデルの左にあるチェックを入れてご使用ください。

a01f-2ndObj.png
A01f 設定:オブジェクト検出モデルの2つ同時使用

2つめのオブジェクト検出モデルを使用した場合、枠が点線になります。ただし、ラベル表示は適当ですので、、、表示が重なってしまうかもしれません。すみません。

a01f-2ndObject.png
オブジェクト検出モデルの2つ同時使用

入力画像

A01fに入力する画像をどこからにするか選択します。

  • デバイス内画像(ファイル)
    • デバイス内の画像を選択してオブジェクトの検出をします。画像を選択するには画面を長押しし、デバイス内の画像を選択してください。
  • 内蔵カメラ
    • 初期設定です。デバイスのカメラを入力画像とする場合に選択します。
  • Ricoh GR / PENTAX
  • Ricoh Theta(OSC)
    • Wifi経由でTHETAと接続し、入力画像とする場合に選択します。
  • Panasonic
  • Sony
  • PIXPRO WPZ2
    • Wifi経由でPIXPRO WPZ2と接続し、入力画像とする場合に選択します。
  • OMDS(OM-D/PEN/Air)

操作説明

操作説明のページ(本ページ)をブラウザで開きます。

プライバシーポリシー

GOKIGEN プロジェクトのプライバシーポリシーページを開きます。

その他

注意事項(仕様、制約事項など)

  • デバイス内の画像サイズが大きい場合には、ファイルを読み込むことができず、そのまま終了することがありますのでご注意ください。
  • 現状、内蔵カメラの変更(インカメラの使用)はできません。
  • 画像撮影では、オブジェクト検出結果を記録しません。オブジェクト検出結果を保存する場合は、画面スクリーンショット機能をお使いください。
  • デバイス内画像の時には、シャッターボタンを押しても動作しません。
  • 1度オブジェクト検出モデルを選択すると、元の検出モデルに戻す方法は提供していません。

permissionについて

本アプリは、次のパーミッションを指定し使用しています。

  • <uses-permission android:name="android.permission.CAMERA" />
    • 内蔵カメラで撮影を実施するため
  • <uses-permission android:name="android.permission.VIBRATE" />
    • アプリの状態を振動で伝えるため
  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    • カメラの画像を保存するため
  • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    • スマートフォン内の画像を読みだして表示するため
  • <uses-permission android:name="android.permission.INTERNET" />
    • WIFI経由でデジタルカメラと通信を行うため
  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    • デジタルカメラとWIFI接続を行うため
  • <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    • デジタルカメラとWIFI接続を行うため
  • <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
    • デジタルカメラ(PIXPRO WPZ2)とWIFI接続を行うため

オブジェクト検出モデルファイルの作成について

A01f内蔵のオブジェクト検出モデルファイルは、TensorFlow Lite Model Maker を使用して作成しました。 詳細は、作成に使用した Pythonファイル を参照してください。

オブジェクト検出モデルファイルを作成し利用する手順の概要を以下に示します。

  1. 画像を準備する (画像の要件は AutoML Vision Object Detection トレーニング データの準備 を参照してください。)
  2. LabelImg(アノテーションツール)を使って、画像ファイル内オブジェクトのアノテーション(枠で囲う作業)を行う
  3. TensorFlow Lite Model Maker を使用してオブジェクト検出モデルファイル(model.tflite)を作る
  4. 作成したオブジェクト検出モデルファイルをデバイスに転送し、A01f に読み込ませる

参考リンク

Tensor Flow Lite Model File

(自分が)検出遅延、検出精度などの違いを理解するため、いくつかオブジェクト検出ファイルを作成しています。

aoi

aohina

arukuma

fujimiraaru

a01fアプリ搭載TFLITEモデル

試行錯誤TFLITEモデル

Image Files with annotation

変更履歴

  • 0.5.0 : 初版作成
  • 0.7.0 : OMDS機のライブビュー安定化、ズームイン・アウト制御を可能にする。
  • 0.8.0 : オブジェクト検出モデルを2つ同時に使用できるようにする。

以上