HSV色度 画像判定

ゆうき( @BASEBALLY15 )です^^

前回に,畳み込みニューラルネットワークを使って,キャベツとレタスを判定したのですが,精度があまり良くありません・・・

確かに,前回は,精度が70%くらいになり,あまり良くありませんでしたね・・・
画像の形式を変えてみて,検証してみましょうか^^

そうですね^^

(Udemy『画像判定AIアプリ開発・パート1』を参考,AnacondaのSpyderを使用)

RGB値からHSV値へ

前回は,画像を読み込んだ後に,RGB値へ変換していました.

RGB値から他の形式に変換すると,精度が向上するのではないかと考え,

今回は,HSV値形式に変換を行って精度の検証を行いました.

RGB値とは?

RGBとは,赤(Red)緑(Green)青(Blue)の3色を混ぜて,様々な色を表現することを言います.

(画像をクリックすると,引用元を確認できます.)

RGBは,0から255までの階層で表現され,

  • (R,G,B)=(255,0,0)→
  • (R,G,B)=(0,255,0)→
  • (R,G,B)=(0,0,255)→

といったように,色を数値として表現することができます.

HSV値とは?

HSVとは,色相(Hue)彩度(Saturation・Chroma)明度(Value・Brightness)の3つの成分から成る色空間のことを言います.

HSV
(画像をクリックすると,引用元を確認できます.)
  • 色相(H)→具体的な色を定義する要素.0°~360°で表現される.
  • 彩度(S)→色の鮮やかさ濃さを表す要素.0%~100%で表現される.
  • 明度(V)→色の明るさ暗さを表す要素.0%~100%で表現される.

といったように,色を定義するだけでなく,

どのような特徴を持った色なのか

ということまで,表現することができます.

HSV値で精度を検証してみよう!

前回に,Flickrというサイトから,キャベツとレタスの画像をそれぞれダウンロードしました.

今回は,その画像を使って,処理を行っていきたいと思います.

ライブラリとコード

前回に,RGB値でのライブラリとコードをご紹介しました.

コードの変更点が少ないため,変更した部分を載せておきます^^

新たにファイルの作成

まずは,ファイル内にある『veg_generatedata.py』をコピーして,

コピーしたものを,『veg_generatedata_HSVver.py』という名前に変更します.

また,『veg_cnn.py』をコピーして,『veg_cnn_HSVver.py』という名前に変更します.

前回から変更したところ-その1-

ファイル名:veg_generatedata_HSVver.py

まずは,”RGB“と記述されていたところを”HSV“に変更します.

そして,np.save()内の学習用とテスト用のデータの保存名を変更します.

これを変更しないと,前回に保存したデータに上書きされてしまいます!

RGB値からHSV値へ
保存名ファイル名の変更

変更後,セーブをして,Anaconda Promptを開き,

  • activate tf140
  • cd ディレクトリ名\ファイル名
  • python veg_generatedata_HSVver.py

と記述すると,新たに『vegetables_HSVver.npy』というファイルが保存されます.

前回から変更したところ-その2-

ファイル名: veg_cnn_HSVver.py

上で保存したファイルを読み込むので,読み込むファイル名を上と同様に変更しておきます.

そして,学習用のモデル名も変更しておきます.

読み込むファイル名の変更
保存ファイル名の変更その2

変更後,セーブをして,Anaconda Prompt上で,

  • python veg_cnn_HSVver.py

と記述すると,このように,精度の検証が始まります.

HSV値による精度の結果

結果を見ると, 精度が 80%を超えていることが分かります.

前回の精度が,77%くらいだったので,約3%向上しました^^

HSVによって,彩度や明度が加わることで,より判定がしやすくなったのではないでしょうか.

終わりに

今回は,画像をRGB値からHSV値に変更して,判定の精度を検証しました.

3%と聞くと,あまり変わらないじゃないかと思うかもしれませんが,

変更したことによって,精度が向上したことは確かです!!

ぜひ,みなさんも機械学習の勉強を行う際は,精度にこだわってみてください^^

それでは・・・

Q &A

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA