はじめに
Python初級者レベルでも可能な簡単なアプリを作ってみようと思い立ち、保存した画像の植物を判定するアプリを作ってみました。
作成物
Pythonでアプリを起動。
選択した画像ファイルの花を判定するめちゃくちゃシンプルな作り
ひまわりと判定できました。
()内の精度はデータセットが小規模だったので低いですがカテゴリは合致。
使用技術
使用言語:Python(ver.3.13.7)
・kaggles:データセット(Flowers Recognition)
・TensorFlow:モデル学習
・Tkinter:GUI
構造
判定を行うディレクトリ内に植物の画像を保存。アプリを起動すると5種類の花のうちの一つに合致しているかどうかの結果が出力されます。
作業時間
10/3(4時間)
・技術要件の選定(どんな動作にしたいか)
・必要な最低限の機能
・実装のために必要な参照するデータベースの選定
・環境構築~実装
スクリプト
感想
コードの一行一行の意味を確かめて作成……みたいな手順だとPython初級者の自分の場合は1か月以上かかりそうな気がしたので、今回は発想から作成までの勢いを意識してAIの力を借りつつ作成していきました。作業中はエラー箇所で詰まった部分の修正をしたりで気がつかなかったのですが4時間ほどでいちおうの形になりました。
今回初めてPythonの機能をいくつか使用してみた感触としては、画像認識判定では参照するデータベースの量によって学習モデルの判定精度が左右される部分が大きかったことです。
「花や植物を簡単に判定できるアプリがほしいな」という漠然としたアイデアで作ってみたのですが、判定対象物の植物は種類が多く、当然判定の精度を求めるなら学習モデルのデータベース量が多くなければいけません。
見たところ精度が高いデータセットもありましたがそちらは280GBほど必要だとわかったので花の種類を最低限にすることに変更しました。
どんな種類でも判定精度高く作成するのは個人のローカル開発環境では難しい部分があるのだなあと痛感しました。
kagglesで転移学習+画像の水増しで最低限の精度は得ることができた。GUI化もTkinterで実装可能だというのが知れたので作っていて楽しかったです。いずれリアルタイムの画像判定を作ってみたいです。
初めてのアプリ開発で足らない部分や自分の作りたい機能と実際にできる機能の引き算がまだまだでしたが楽しかったので良し。
課題
・今回学習させた学習モデルデータの関係上、5種類の花しか判定できない
・判定を行う画像は手元のローカルPCに事前に画像を保存しておく必要がある
・リアルタイムで画像判定ができるようにしたかった
・使用した学習モデルのデータセットが軽量だった分、花の種類自体は判定できたが精度はあまり高くはなかった

