Closed7

TensorFlow.js 向けモデルを手元で作成して使用する

高田 晴彦高田 晴彦

Keras モデルを TensorFlow.js にインポートする

Python

Keras を使った画像認識のモデルは 2017年から2019年にかけてよく作ったので、Keras を基準に考える。

https://www.tensorflow.org/js/tutorials/conversion/import_keras

  • tensorflowjs ライブラリで TensorFlow.js 形式にエクスポートできる

JavaScript

モデルの読み込み

import * as tf from '@tensorflow/tfjs';

const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json');

予測する

const example = tf.fromPixels(webcamElement);
const prediction = model.predict(example);

tf.browser.fromPixels の入力

API ドキュメント - tf.browser.fromPixels

  • HTMLImageElement で入力できる
  • モデルの入力層は uchar で良さそう。
  • RGB で入力できる
  • RGB順は おそらく RGB。tf.image.rgbToGrayscale というメソッドがあるので、rgb が TensorFlow.js 内でデフォルトの RGB 順と思われる。
高田 晴彦高田 晴彦

分類モデルを選定する

以下の条件に該当する分類モデルを選定する

  • Keras に含まれている
  • 高精度
  • 高速。
    • モバイルでなく PC での動作だが、大量の動画フレームに対して分類したいので、高速であるほうが利便性が高い。

Keras Applications から選択する。
Available models の表からサイズが小さく、論文発表が2021年と新しめな、EfficientNetV2 を選定した。

高田 晴彦高田 晴彦

既存データセットで分類モデルを学習する

既存データセットの概要はこちら

AutoML Vision で作られたモデル精度はこのくらいのなので、同じくらいの目指したい。


続く

高田 晴彦高田 晴彦

学習モデルを作成する

画像を Keras に取り込めるようにする

2018年に作ったコードがあるので、これをベースに今時の Python の文法で作成する
https://github.com/tfandkusu/food101-tflite/blob/master/data.py

作成した

https://github.com/tfandkusu/ikut_python/pull/6

学習は NVIDIA RTX 3080 で20分で完了した。

混合行列

       start   end  kill  death  other
start    502     0     0      0      0
end        0  2252     0      0     11
kill       0     0   139      0      2
death      0     0     4    587     10
other      1     8     6      3   1475
高田 晴彦高田 晴彦

Python Advent Calendar 2023 の 3日に続く

ブラウザ上で画像分類出来たので続きはそちらにまとめる。

このスクラップは2023/11/03にクローズされました