(「 AI課題3:植物写真分類(3)」の続きです。)

AI学習用の花の写真が16種類ほど集まったので学習を試してみました。
(いまのところは生物学的な種の同定ではなく世俗的な分類でやっています。たとえば「サクラ」には複数の生物学的な種や栽培品種がふくまれています。)

学習用画像(各50~60枚x16種類) plant04_flower16_train.zip
テスト用画像(各10枚x16種類) plant04_flower16_test.zip

プログラム(言語 Python、テキストファイル UTF-8)
plant04_flower16.py

前回と同じく、プログラムでは最低限の確信度を 0.001としてそれ以下なら「わかりません」として、確信度の高いものが複数種類以上ある場合は2種類を表示し、1枚の写真ではわかりにくいのでそれぞれのテスト用画像10枚の確信度の集計して判断しています。

テスト結果(テキストファイル UTF-8)
plant04_flower16_result.txt

【テスト結果と写真の一部抜粋】

—– アジサイ —–
AJISAI_TEST
—– アジサイ 個別判定の集計結果: ○=8, ×=0, ?=2 —–
—– アジサイ 確信度合計による結果判定
アジサイ[0.437],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.021],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、アジサイ ではないかと思います。
——————–
—– バラ—–
BARA_TEST
—– バラ 個別判定の集計結果: ○=8, ×=0, ?=2 —–
—– バラ 確信度合計による結果判定
アジサイ[0.000],バラ[0.249],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.014],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.001],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、バラ ではないかと思います。
——————–
—– ドクダミ—–
DOKUDAMI_TEST
—– ドクダミ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– ドクダミ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.623],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、ドクダミ です。
——————–
—– ハルジョオン—–
HARUJOON_TEST
—– ハルジョオン 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– ハルジョオン 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.566],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、ハルジョオン です。
——————–
—– カタバミ—–
KATABAMI_TEST
—– カタバミ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– カタバミ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.399],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、カタバミ ではないかと思います。
——————–
—– サクラ—–
SAKURA_TEST
—– サクラ 個別判定の集計結果: ○=6, ×=1, ?=3 —–
—– サクラ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.105],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.055],ヤマブキ[0.000],
おそらく、サクラ か、または、ウメ ではないかと思います。
——————–
—– サツキ—–
SATSUKI_TEST
—– サツキ 個別判定の集計結果: ○=8, ×=2, ?=0 —–
—– サツキ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.379],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.042],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、サツキ ではないかと思います。
——————–
—– サザンカ—–
SAZANKA_TEST
—– サザンカ 個別判定の集計結果: ○=4, ×=0, ?=6 —–
—– サザンカ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.187],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、サザンカ ではないかと思います。
——————–
—– シャガ—–
SHAGA_TEST
—– シャガ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– シャガ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.534],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、シャガ です。
——————–
—– シロツメグサ—–
SHIROTSUMEGUSA_TEST
—– シロツメグサ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– シロツメグサ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.615],タンポポ[0.000],ツバキ[0.000],ツツジ[0.001],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、シロツメグサ です。
——————–
—– タンポポ—–
TANPOPO_TEST
—– タンポポ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– タンポポ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.506],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、タンポポ です。
——————–
—– ツバキ—–
TSUBAKI_TEST
—– ツバキ 個別判定の集計結果: ○=7, ×=0, ?=3 —–
—– ツバキ 確信度合計による結果判定
アジサイ[0.000],バラ[0.003],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.316],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
おそらく、ツバキ ではないかと思います。
——————–
—– ツツジ—–
TSUTSUJI_TEST
—– ツツジ 個別判定の集計結果: ○=10, ×=0, ?=0 —–
—– ツツジ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.055],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.565],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.000],
これは、ツツジ です。
——————–
—– ツワブキ—–
TSUWABUKI_TEST
—– ツワブキ 個別判定の集計結果: ○=9, ×=0, ?=1 —–
—– ツワブキ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.002],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.501],ウメ[0.000],ヤマブキ[0.000],
おそらく、ツワブキ ではないかと思います。
——————–
—– ウメ—–
UME_TEST
—– ウメ 個別判定の集計結果: ○=9, ×=0, ?=1 —–
—– ウメ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.202],ヤマブキ[0.000],
おそらく、ウメ ではないかと思います。
——————–
—– ヤマブキ—–
YAMABUKI_TEST
—– ヤマブキ 個別判定の集計結果: ○=9, ×=1, ?=0 —–
—– ヤマブキ 確信度合計による結果判定
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.001],サクラ[0.000],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.000],ヤマブキ[0.423],
おそらく、ヤマブキ ではないかと思います。
——————–
End.

 

サザンカとツバキの花は似ていますがおしべの並び方が違うので区別できると思います。
栽培品種がたくさんあるので難しいところですが総合的な判定ではなんとかなりました。

サクラの結果を見るとサクラのウメの混同があったようです。
【 画像ファイル名:SAKURA2026.JPG】(サクラ)—–
DSC_2620
アジサイ[0.000],バラ[0.000],ドクダミ[0.000],ハルジョオン[0.000],カタバミ[0.000],サクラ[0.001],サツキ[0.000],サザンカ[0.000],シャガ[0.000],シロツメグサ[0.000],タンポポ[0.000],ツバキ[0.000],ツツジ[0.000],ツワブキ[0.000],ウメ[0.873],ヤマブキ[0.000],
サクラとウメの花の違いは、サクラは花弁の先にすこし切れ込みがあることや花柄が長いことなどです。
写真を見ると花の先の切れ込みがわかりにくいですが花柄が長いのでウメではなくサクラだとわかります。
この学習用データではまだ違いを学習しきれていないのだと思います。

実際のアプリケーションでは木の幹など複数の写真を撮影してもらって判断する予定なのでサクラの場合は幹に特徴があるのでなんとかなると思います。

学習用のデータも増えてきてある程度の判別はできるようになりましたがアプリケーションとするには花の種類も写真の数ももっと増やす必要があります。ニューラルネットワークの構成も対象に合わせて調整する必要があると思います。

(2019/06/30 S.Onda)