
ゆうき( @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つの成分から成る色空間のことを言います.
- 色相(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()内の学習用とテスト用のデータの保存名を変更します.
これを変更しないと,前回に保存したデータに上書きされてしまいます!


変更後,セーブをして,Anaconda Promptを開き,
- activate tf140
- cd ディレクトリ名\ファイル名
- python veg_generatedata_HSVver.py
と記述すると,新たに『vegetables_HSVver.npy』というファイルが保存されます.
前回から変更したところ-その2-
ファイル名: veg_cnn_HSVver.py
上で保存したファイルを読み込むので,読み込むファイル名を上と同様に変更しておきます.
そして,学習用のモデル名も変更しておきます.


変更後,セーブをして,Anaconda Prompt上で,
- python veg_cnn_HSVver.py
と記述すると,このように,精度の検証が始まります.

結果を見ると, 精度が 80%を超えていることが分かります.
前回の精度が,77%くらいだったので,約3%向上しました^^
HSVによって,彩度や明度が加わることで,より判定がしやすくなったのではないでしょうか.
終わりに
今回は,画像をRGB値からHSV値に変更して,判定の精度を検証しました.
3%と聞くと,あまり変わらないじゃないかと思うかもしれませんが,
変更したことによって,精度が向上したことは確かです!!
ぜひ,みなさんも機械学習の勉強を行う際は,精度にこだわってみてください^^
それでは・・・