機械学習
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
**錆の写真からSVMで機械学習するまでの流れ [#g1ddf3ca]
この一連の流れは同じファイル内に保存するのが望ましい
-(1) RGBrironti.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi)
--2, py ファイルを呼び出す (python RGByomitori.py)
--3, フォルダーのパス入力が求められるので錆の写真があるフォルダーを入力する → Enterキー (一例: /home/kouzou/sato24/gr/data/1_ppm)
--4, 保存するファイル名を入力する → Enterキー (一例: /home/kouzou/sato24/gr/data/1_ppm/RGBkekka.csv ) この場合錆の写真があるフォルダーに "クリックした座標" , "RGB値"の結果がcsv形式で保存される。
--5, その後ウィンドウのどこかしらに錆の画像が表示されるので、カラースケールの "シアン" , "イエロー" , "マゼンタ" の部分を順番にクリックする。そうするとMATE端末上に [ 画像: ファイル名(.ppm) | クリック位置: (x座標, y座標), RGB値: (R(0~255), G(0~255), B(0~255),) ]
と表示される。
--6, ファイル内にある写真すべての "シアン" , "イエロー" , "マゼンタ" の部分を順番にクリックする。すべての写真で "シアン" , "イエロー" , "マゼンタ" の部分をクリックすると下のようになり、これと同じような感じでcsvファイルにも保存されている。
&ref(http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250428-1.png,600x);
---補足:保存するファイル名を以前作成したファイル名と同じにすると新たに上書きされるのではなく、既存のデータに加えられる形で保存される。
-(2) matrix.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi) ←必要であれば
--2, py ファイルを呼び出す (python matrix.py) → Enterキー
--3, 結果を書き込むファイルを入力してください と表示されるので入力する。ここでは保存する場所に加えて結果ファイルの名前も”名前 + .txt ”と入力する必要がある。(例: kekka.txt) → Enterキー
--4, シアン・イエロー・マゼンタの各RGB値を入力してください と表示されるので入力する。(0~255 の間) → 入力する値はどれか1枚の写真における"シアン" , "イエロー" , "マゼンタ" のRGB値
-(3) henkan.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi) ←必要であれば
--2, py ファイルを呼び出す (python henkan.py)
--3, 変換行列ファイルのパスを入力してください と表示されるので(2)で作成したtxtファイルを入力する(一例: kekka.txt ) → Enterキー
--4, 補正したいPPM画像のパスを入力してください と表示されるのでppm画像のパス入力する。(例: rating○_○.ppm) → Enterキー
---基本的に/home/kouzou/sato24/gr/data内にある ○_ppm や hg_○_ppm と書かれたファイルから選択するはず (例: /home/kouzou/sato24/gr/data/1_ppm/rating1_1.ppm)
--5, 補正後の画像を保存するパスを入力してください と表示されるので変換後のppm画像をどのパスに保存したいか入力する (例: henkan-after.ppm と入力すると henkan-after というppmファイルが保存される) → Enterキー
-(4) グレースケール化とedge.py について(コマンド)
--1, $ convert rating○_○.ppm -colorspace Gray gray.pgm → gimp と打って Enterキー
--2, py ファイルを呼び出す (python edge.py)
--3, 入力ディレクトリパスの入力が求められる。なお edge.py はpgmファイルのみ対応しているのでpgmファイルで保存されていいる写真のあるフォルダー名を入力する → Enterキー (一例: edge)
--4, 出力ディレクトリパスの入力が求められる。ここでは3で入力したファイルをエッジ処理したものをどこに保存するかを設定する。ここでは一例として(edge_150)と入力する。
--- 3のedgeはエッジ処理したものを入れておくファイル名であり、もしファイル名を入れずにEnterキーを押してしまうとこの場合hikitugiのフォルダー内に保存されてしまうので注意すること。
--5, エッジ処理の閾値1, 2を入力してくださいと表示される
---エッジ処理の閾値1は "Cannyエッジ検出の「低い方のしきい値」" のことである。画像の中で「ここはエッジ」と判断するための数値で、50〜300くらい(50刻み)に設定しておくとよい。
---エッジ処理の閾値2は "Cannyエッジ検出の「高い方のしきい値」" であり、100〜400くらい に設定しておくとよい。
--6, 閾値1, 2 を入力して Enterキー を押してしばらくするとhikitugi内にedge_150というフォルダーが作成される。そのフォルダーを開いて錆の写真が左下 (edge) から右下 (edge_150) のような感じに変換されていれば成功。
http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250424-2.png → http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250424-3.png
-(5) svm.py について (コマンド)
--1, py ファイルを呼び出す前に svm.py ファイル(編集画面)を開く
--2, ファイルを開いたら13行目に書いてある data_dir = 〜 の部分を確認する。data_dir = ( "〜" ) の部分を " edge " に変更してclass_namesも定義する必要があり、そうしないとエラーがでる。今回はclass_namesを作成・定義してこなかったので佐藤さんが作成した 150_300_edge を機械学習= svm させる。
---① 150_300_edgeファイルをhikitugiファイル内にコピーする。
---② 編集画面の13行目: data_dir = "150_300_edge" と編集する。
---③ 編集画面の15行目: class_names = ["mk1_pgm", "mk2_pgm", "mk3_pgm", "mk4_pgm"] になっているのを確認する。
--3, 編集が完了したら python svm.py と入力 → Enterキー
**GIMPでの画像の切り取り方(200×200ピクセルの場合) [#xccc5194]
--1, GIMPで画像を開き上のツールバーから 画像 → ガイド → 新規ガイド と進む
--2, 新規ガイドを選択すると方向と位置を決めることができ、初めは方向を"水平"として位置を"200"に設定する。そうすると画像に青の破線が表示されたと思う。再びツールバーから 画像 → ガイド → 新規ガイド と進み、方向を"水平"位置を"400"に設定する。今度は前に引かれた青の破線よりも200ピクセル分右側に破線が引かれた。これを "600" , "800" , ...と繰り返していく
--3, 水平方向に200ピクセル間隔で線を引けたら次に垂直方向に200ピクセル間隔で線を引いていく。ツールーバーから 画像 → ガイド → 新規ガイド と進み、方向を"垂直" 位置を"200"とする。水平の時と同様に位置を200ずつ変えながら線を引いていくと碁盤状に線が引けたのではないかと思う。
--4, そうしたらツールバーから 画像 → ガイドを使用して切り分け と選択すると200×200ピクセルで分割した画像が出来上がる。
終了行:
**錆の写真からSVMで機械学習するまでの流れ [#g1ddf3ca]
この一連の流れは同じファイル内に保存するのが望ましい
-(1) RGBrironti.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi)
--2, py ファイルを呼び出す (python RGByomitori.py)
--3, フォルダーのパス入力が求められるので錆の写真があるフォルダーを入力する → Enterキー (一例: /home/kouzou/sato24/gr/data/1_ppm)
--4, 保存するファイル名を入力する → Enterキー (一例: /home/kouzou/sato24/gr/data/1_ppm/RGBkekka.csv ) この場合錆の写真があるフォルダーに "クリックした座標" , "RGB値"の結果がcsv形式で保存される。
--5, その後ウィンドウのどこかしらに錆の画像が表示されるので、カラースケールの "シアン" , "イエロー" , "マゼンタ" の部分を順番にクリックする。そうするとMATE端末上に [ 画像: ファイル名(.ppm) | クリック位置: (x座標, y座標), RGB値: (R(0~255), G(0~255), B(0~255),) ]
と表示される。
--6, ファイル内にある写真すべての "シアン" , "イエロー" , "マゼンタ" の部分を順番にクリックする。すべての写真で "シアン" , "イエロー" , "マゼンタ" の部分をクリックすると下のようになり、これと同じような感じでcsvファイルにも保存されている。
&ref(http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250428-1.png,600x);
---補足:保存するファイル名を以前作成したファイル名と同じにすると新たに上書きされるのではなく、既存のデータに加えられる形で保存される。
-(2) matrix.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi) ←必要であれば
--2, py ファイルを呼び出す (python matrix.py) → Enterキー
--3, 結果を書き込むファイルを入力してください と表示されるので入力する。ここでは保存する場所に加えて結果ファイルの名前も”名前 + .txt ”と入力する必要がある。(例: kekka.txt) → Enterキー
--4, シアン・イエロー・マゼンタの各RGB値を入力してください と表示されるので入力する。(0~255 の間) → 入力する値はどれか1枚の写真における"シアン" , "イエロー" , "マゼンタ" のRGB値
-(3) henkan.py について (コマンド)
--1, MATE端末を開き py ファイルのある hikitugi に移動する (cd hikitugi) ←必要であれば
--2, py ファイルを呼び出す (python henkan.py)
--3, 変換行列ファイルのパスを入力してください と表示されるので(2)で作成したtxtファイルを入力する(一例: kekka.txt ) → Enterキー
--4, 補正したいPPM画像のパスを入力してください と表示されるのでppm画像のパス入力する。(例: rating○_○.ppm) → Enterキー
---基本的に/home/kouzou/sato24/gr/data内にある ○_ppm や hg_○_ppm と書かれたファイルから選択するはず (例: /home/kouzou/sato24/gr/data/1_ppm/rating1_1.ppm)
--5, 補正後の画像を保存するパスを入力してください と表示されるので変換後のppm画像をどのパスに保存したいか入力する (例: henkan-after.ppm と入力すると henkan-after というppmファイルが保存される) → Enterキー
-(4) グレースケール化とedge.py について(コマンド)
--1, $ convert rating○_○.ppm -colorspace Gray gray.pgm → gimp と打って Enterキー
--2, py ファイルを呼び出す (python edge.py)
--3, 入力ディレクトリパスの入力が求められる。なお edge.py はpgmファイルのみ対応しているのでpgmファイルで保存されていいる写真のあるフォルダー名を入力する → Enterキー (一例: edge)
--4, 出力ディレクトリパスの入力が求められる。ここでは3で入力したファイルをエッジ処理したものをどこに保存するかを設定する。ここでは一例として(edge_150)と入力する。
--- 3のedgeはエッジ処理したものを入れておくファイル名であり、もしファイル名を入れずにEnterキーを押してしまうとこの場合hikitugiのフォルダー内に保存されてしまうので注意すること。
--5, エッジ処理の閾値1, 2を入力してくださいと表示される
---エッジ処理の閾値1は "Cannyエッジ検出の「低い方のしきい値」" のことである。画像の中で「ここはエッジ」と判断するための数値で、50〜300くらい(50刻み)に設定しておくとよい。
---エッジ処理の閾値2は "Cannyエッジ検出の「高い方のしきい値」" であり、100〜400くらい に設定しておくとよい。
--6, 閾値1, 2 を入力して Enterキー を押してしばらくするとhikitugi内にedge_150というフォルダーが作成される。そのフォルダーを開いて錆の写真が左下 (edge) から右下 (edge_150) のような感じに変換されていれば成功。
http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250424-2.png → http://www.str.ce.akita-u.ac.jp/~gotouhan/j2024/morii/20250424-3.png
-(5) svm.py について (コマンド)
--1, py ファイルを呼び出す前に svm.py ファイル(編集画面)を開く
--2, ファイルを開いたら13行目に書いてある data_dir = 〜 の部分を確認する。data_dir = ( "〜" ) の部分を " edge " に変更してclass_namesも定義する必要があり、そうしないとエラーがでる。今回はclass_namesを作成・定義してこなかったので佐藤さんが作成した 150_300_edge を機械学習= svm させる。
---① 150_300_edgeファイルをhikitugiファイル内にコピーする。
---② 編集画面の13行目: data_dir = "150_300_edge" と編集する。
---③ 編集画面の15行目: class_names = ["mk1_pgm", "mk2_pgm", "mk3_pgm", "mk4_pgm"] になっているのを確認する。
--3, 編集が完了したら python svm.py と入力 → Enterキー
**GIMPでの画像の切り取り方(200×200ピクセルの場合) [#xccc5194]
--1, GIMPで画像を開き上のツールバーから 画像 → ガイド → 新規ガイド と進む
--2, 新規ガイドを選択すると方向と位置を決めることができ、初めは方向を"水平"として位置を"200"に設定する。そうすると画像に青の破線が表示されたと思う。再びツールバーから 画像 → ガイド → 新規ガイド と進み、方向を"水平"位置を"400"に設定する。今度は前に引かれた青の破線よりも200ピクセル分右側に破線が引かれた。これを "600" , "800" , ...と繰り返していく
--3, 水平方向に200ピクセル間隔で線を引けたら次に垂直方向に200ピクセル間隔で線を引いていく。ツールーバーから 画像 → ガイド → 新規ガイド と進み、方向を"垂直" 位置を"200"とする。水平の時と同様に位置を200ずつ変えながら線を引いていくと碁盤状に線が引けたのではないかと思う。
--4, そうしたらツールバーから 画像 → ガイドを使用して切り分け と選択すると200×200ピクセルで分割した画像が出来上がる。
ページ名: