Connecting OpenCV and TensorFlow to recognize MNIST dataset in real time.
今日は、同業者さんと月一回の定例勉強会(ネット会議)の日でした。
先日、OpenCV のキャプチャ動画を Matplotlib で表示するお話をしましたが、実はこの勉強会のための実験だったのです。
今回のデモでは、OpenCV の入力画像を前処理して、TensorFlow(Keras)に渡し、推論結果を Jupyter Widgets(ipywidgets)で表示することを試みました。
上は、OpenCV で前処理した入力画像を Matplotlib で表示しているところです。はい、私が手書きした数字の「4」です。下は、Jupyter Widgets で書いた GUI です。推論結果が「4」であることを示してます。
水色のバーは確からしさを示すアナログ値をグラフにしているのですが、だいたい、1.0 か 0.0 になってしまい、面白い結果にはなりませんでした。(ただし、ただの白色背景を入力すると、パラパラとアナログ値のグラフになります。)
ちなみに、画像の前処理としては、以下をしています。
- 画像のトリミングとズーミング
- 適応スレッシュホールドによる画像二値化
- MNIST データセット画素サイズに合わせるための画素間引き(アンチエイリアシングあり)
同業者さんには御好評を頂きました。来月は何をデモしましょうかね。
今日はここまで。