yara 卒業研究
hill_san.icon君見やすくしてくれてありがとう
個人のスクボに書いてもよかったが、いろんな人に見てもらったり、アドバイスや感想などもらえたりと思い、ここに書くことにしました
卒論とかに有効活用したい
文章能力下手だけど許してちょ
---
研究目的 電動モビリティ(電動キックボードとか)の事故防止
リアルタイムの画像認識を用いて車や歩行者、車道や歩道を自動で認識し、警告とかしてくれるシステムの開発
先輩の引継ぎコードや資料が神過ぎて基礎がほぼ出来上がってる状態からのスタート
https://scrapbox.io/files/686cc160e9f3caead41c95a8.png
これが引継ぎ時に存在したシステム
見ての通りそのまま動作するので神
---
ここでこのシステムの改善点(卒論とかに書いてたのと、後は俺の見解)を挙げる
・道路、歩道の識別がろくに動作してない
→赤が車です、このままだと道路と歩道がほとんど「車」と認識されてる
・境界線がはっきりしてなくてキモイ
・複数の要素が映ったときに複数表示される際、テキストが重なってる
https://scrapbox.io/files/686cc27c38d52cc3843e050c.png
→しかも暗い背景に真っ青な文字、ちょっと読みにくいカモー
---
使用ネットワークモデル
とにかく処理が速い。精度よりも速度が強み。
こいつ正直精度低いのでほかの使いたかったんですが、リアルタイムで動かすにはこいつが最適だったのと、普通にモデル変えて1からコーディングするのだるかったから。
機械が自動的に認識するようには、学習済み重みファイルというものが必要になる。
これは何かというと、データセットをたらふく食って学習されたモデルのことである。こいつの質によって処理の精度が決まる
データセットは、学習に使う餌みたいなやつ。致死量の写真や、それを色分けした画像とかが入っている。
https://scrapbox.io/files/686cc4861ab35ca9db716fb4.png
https://scrapbox.io/files/686cc497c34c41e277785e5d.png
都市の道路とか交通向けのデータセットの代表的なものが「cityscapes dataset」である
こんな感じの道路の写真といろいろと色分けした画像のセットが5000枚くらい入ってる。
5000セットもあればそこそこな精度が出せる。
ただこれにも問題があって、一番の難点が、このデータセットが「海外の道路写真」であること。
もちろん日本と海外の道路なんて特徴が違いすぎる。
・右側通行と左側通行が逆
・歩道の形が違う
・信号の形も違う
右側通行と左側通行が逆
画像を左右反転させればいけそうhill_san.icon
ぱっと思いつくだけでこれだけの問題点が出てくる。
さらに問題なのが、「全部車視点の写真」であること。
これによってほぼすべての写真が「車道が真ん中で歩道が端っこにある写真」になる。
こんなので学習すると「端っこにある形の違うものを全部歩道と勘違い」したり、
「歩道からとった写真の歩道も全部車道と勘違い」したりする。
その問題を解決すべく、わしはもう一つデータセットを導入することにした。
その名も「sidewalk-semantic」
名前の通り、歩道に特化したデータセットである。
歩道からとった写真がそろっているので、歩道をより正しく認識してくれるんちゃうか?と考え、使うことに。
ほかの先輩が実際に使っていたので、研究データも痕跡も残ってたのでこれを活用する。
---
目指すもの
とりあえず、画像認識の精度を上げる。
・学習を試行錯誤し、完成度の高いモデルを作り上げる
・車道、歩道、歩行者、車道。この4つの認識はもうちょっとちゃんとしたい
・システム本体もより使いやすいものにする。視認性とか、検知するもの増やすとか。
今のとこはこんな感じ。これらは中間発表の前に終わらせときたいね
あざまんこ
---
本日 7/8 から、行った作業を記録する。作業手順とかを今後書きやすくするために
7/8
前回、ネットワークモデルEnetを変更せずに精度を上げる方針に決めたので、これに尽力していく。
https://scrapbox.io/files/686cc160e9f3caead41c95a8.png
まずは学習済みモデルを変えよう、
初期段階では、重みファイルの拡張子が.netで、なんか特殊でキモイのと境界がモワモワしてていやなので、学習完了時に出力される.pthファイルを使おう。
最終的には自分で学習を行ってファイルを出力するところまでやるのだが、まずは.pthファイルを読み込んで動作させるために既存のシステムを改造するとこから行ったわよ。(きしょ語尾)
pthファイルはいったんgitに転がってるもの(cityscapes datasetで学習済み)を使ったよ
https://scrapbox.io/files/686ccd048ca0ef1acaa52d6c.png
できた!!! (ほぼgeminiのおかげ)
モデルを変えただけでこんなに違いが出てる、すごい
境界線がよりはっきりしてきもちいっすね~
モデル以外の変更点が、
表記をめちゃくちゃ見やすくしたこと!!!
https://scrapbox.io/files/686cce37b8df43055b92730c.png
これが、、、
https://scrapbox.io/files/686cce468eda955e8c751b99.png
こう!!!!
見やすくなったっしょ?
具体的な変更点は
文字の発生位置を右端にした
複数の文字が表示されても重ならないようにした!!!
文字色を明るくした!!
この変更は自力でやった、簡単な内容だからね、変にいろいろgeminiに書かせると頭パンクしていらんことするからね彼
あとは
https://scrapbox.io/files/686cceff811ef99913d50305.png
警告テキストに白枠つけて見やすくした!!
警告は目立たせてなんぼやからね
これからの課題
やっぱり識別が雑魚い、特に車歩道。(薄いピンクが車道、濃いピンクが歩道)
これからちゃんと学習して改善させる予定なのでこれはオッケー
気になるのが、
https://scrapbox.io/files/686ccfb15314858cf540d6c3.png
なぞに存在する車判定(赤)となぞに右下に伸びている歩行者判定(青)
これが本当に妙なんだよな~
まあこのへんは一周学習完了させてから考えよう。
https://scrapbox.io/files/6875ef69b8168ab50529da3d.png
こいつはカーズだから仕方ない
code:mermaid
%%{init: { "theme": "base", "themeVariables": { "primaryColor": "#0000", "textColor": "", "fontFamily": "BIZ UDPGothic" } } }%%
mindmap
nodeA{{Danger!!:Car}}
::icon(fa fa-car)
で、もう一つの課題が
オリジナリティを出すこと
これただ先輩のシステムの精度上げるだけじゃ個性なんて出ないしほぼパクリと変わらんのでなにかもう一つアイデアを詰め込む必要アリ。
みんなのアイデアを、待ってます(人任せ)
---
画像の伸縮率や明度・コントラストを変えると精度が良くなったりするhill_san.icon
超音波センサとか使って物理的距離を計測したい
雨の日のデータとか取りたいね
ここのプロジェクトpublicだから、石野の名前と研究が誰でも見れるようになってるけどいいの?...ええで、みんなに見てほしい、アイデアとかあったらちょこっとほしい
カーズはさすがにまずいでしょ...顔隠したにょ
---
7/15
高専の「ゆめものがたり工房」、ついに使うぞ!!!
ゆめものがたり工房というところに、性能が高い機械があるので、それを使って学習する
↑普通のPCだと平気で20時間とかかかる
先生からアクセス権をゲット
JupyterLabにアクセスしてvenvで仮想環境を作ったぞ
まずはsidewalk-semanticを導入する
huggingfaceでトークンを作ってアクセスする
なんか、先輩が残してくれたpythonファイルをそのまま実行したらいけた
学習やるぞ!!!(うまくいくかしらん)
学習一回目
python main.py --dataset cityscapes --dataset-dir ./data/cityscapes/ --save-dir ./save/ --batch-size 8 --epochs 300 --learning-rate 5e-4 --workers 16 --name test1
バッチ8 エポック数300 学習率5e-4 ワーカー16(テスト)
なんやかんや時間かかって学習終えるとこまでできなかったので学習ほったらかしてオワリ
JupyterLabの仮想環境であるため、PC切ってても動いてくれる、便利
---
7/22
https://scrapbox.io/files/687f206e085af987e02da995.png
きしょ
なんか全然違う結果が出た、助けて
python main.py --dataset cityscapes --dataset-dir ./data/cityscapes/ --save-dir ./save/ --batch-size 8 --epochs 400 --learning-rate 5e-4 --workers 4 --name test2
もっと学習用の写真を送ったほうが良いのかな
テスト前全然撮れなかったけれど
夏休みにたくさん撮っておきますhill_san.icon