このプロジェクトは、AIと人間の画像判別能力を比較する研究のために開発されたアプリケーション群です。
双子、そっくりさん、似ている動物(チーターとヒョウなど)、似ている車種など、非常に似たものの画像を表示し、「同じもの」か「違うもの」かを判断させます。
- 精度比較: 人間とAI(Deep Learning)の正答率の比較
- 速度比較: 人間の反応速度と、デバイス(CPU/GPU/NPU)上でのAI推論速度の比較
- 特性分析: ジャンル(生物、人工物)による得意・不得意の傾向分析
| ディレクトリ | アプリ名 | 用途 | 対象プラットフォーム |
|---|---|---|---|
android-app/ |
人間用クイズアプリ | 被験者(人間)によるデータ収集 | Android (スマホ/タブレット) |
flutter-app/ |
人間用テストアプリ | デスクトップでの精密なテスト実施 | Windows / Mac / Linux |
ai_benchmark/ |
AIベンチマーク | AIモデルによる自動テスト・速度計測 | Android / iOS / Desktop |
tools/ |
画像収集ツール | 研究用データセットの作成 | Python (CLI) |
新しく実装された AI Benchmark Runner (ai_benchmark/) は、人間と同じテストセットをAIに解かせるためのツールです。
以下のモデルを使用して、画像の特徴量を比較・判別します。
| モデル名 | 特徴 | 出典/ライセンス |
|---|---|---|
| MobileNet V2 | 軽量かつ高精度な標準モデル | Google / TensorFlow (Apache 2.0) |
| MobileNet V1 | 初期の軽量モデル(ベースライン) | Google (Apache 2.0) |
| MobileNet V4 | 最新の軽量モデル(2024) | byoussef/HuggingFace (Apache 2.0) |
| Image Embedder (MobileNetV3 Small/Large) | 画像埋め込み(類似度比較向け・推奨 / 2025更新) | Google / MediaPipe Tasks (Apache 2.0) |
| Image Classifier (EfficientNet-Lite0/Lite2 FP32) | 分類モデル出力を特徴量として類似度比較(2025更新) Lite0: https://storage.googleapis.com/mediapipe-tasks/image_classifier/efficientnet_lite0_fp32.tflite Lite2: https://storage.googleapis.com/mediapipe-tasks/image_classifier/efficientnet_lite2_fp32.tflite |
Google / MediaPipe Tasks (Apache 2.0) |
| Inception V3 | 高解像度・高精度モデル | Google (Apache 2.0) |
| SqueezeNet | 超軽量・高速モデル | DeepScale (BSD) |
| DenseNet | 密結構造ネットワーク | Huang et al. (BSD) |
| Color Histogram | AIを使用しない色分布比較(対照実験用) | - |
デバイスの性能を最大限に引き出すため、以下のアクセラレータに対応しています。
- GPU Delegate: モバイルGPUを使用した高速推論
- NNAPI (Android): NPU (Neural Processing Unit) を使用した省電力・高速推論(※現状は互換性の都合で無効化)
- CPU: フォールバック用(マルチスレッド対応)
本研究では、以下のオープンデータおよびAPIを使用しています。 これらは教育・研究目的で利用されています。
| サービス | 提供内容 | ライセンス/権利 |
|---|---|---|
| iNaturalist | 野生動物の研究グレード写真 | CC BY-NC 等 |
| GBIF | 生物多様性データ | 各データ提供者に準拠 |
| The Dog API | 犬種データセット | 無料利用枠 |
| The Cat API | 猫種データセット | 無料利用枠 |
| Unsplash | 高品質な一般写真 | Unsplash License |
| Wikimedia Commons | パブリックドメイン画像 | PD, CC BY-SA 等 |
- Flutter & Dart: Google (BSD 3-Clause)
- TensorFlow Lite: Google (Apache 2.0)
- tflite_flutter: pub.dev (Apache 2.0)
- image: Simon Lightfoot (BSD)
- Android Jetpack: Google (Apache 2.0)
- OkHttp: Square, Inc. (Apache 2.0)
- Jsoup: Jonathan Hedley (MIT License)
cd ai_benchmark
flutter pub get
flutter run --release- アプリを起動し、エンジン(モデル)とデバイス(CPU/GPU)を選択
- テストセット(ZIPまたはフォルダ)をロード
STARTで計測開始
AIベンチマークは 1 回の実行で、アプリのドキュメントフォルダへ以下を書き出します。
*.csv(集計用)*.jsonl(1行=1問の詳細ログ)*.summary.json(実行メタデータとサマリ)
ai_benchmark/ はデスクトップで tflite_flutter を使うために、ネイティブライブラリ libtensorflowlite_c が必要です。
- Linux:
ai_benchmark/blobs/libtensorflowlite_c-linux.so - Windows:
ai_benchmark/blobs/libtensorflowlite_c-win.dll - macOS:
ai_benchmark/blobs/libtensorflowlite_c-mac.dylib
ローカルでビルドする場合は、ai_benchmark/tools/native/README.md のスクリプトを使用してください。
GitHub Actions で各OS向けにビルドしてArtifactsとして取得したい場合は、ワークフロー
.github/workflows/tflite-c-build.yml
を workflow_dispatch で実行してください。
※ Android / iOS は通常 tflite_flutter が依存を同梱するため、アプリ利用者がこのCライブラリを手動配置する必要はありません。
cd android-app
./gradlew assembleDebug生成されたAPKをインストールして使用。
このプロジェクトは日本の高等学校における教育活動の一環として作成されました。 ソースコードは MIT License の下で公開されていますが、含まれるモデルファイルや収集された画像データについては、それぞれの権利者のライセンスに従ってください。