2019年4月13日土曜日

日差し対策とかプログラム大幅改修とか

 これまである意味テキトーに乗り越えていた部分を大きく変更した。

 まず、例の変調光方式を搭載してだいぶ外の光に対しロバストになった。ステルスセンサーバーとかでは常套手段と思うけど画像処理マシンではやってる人居るのかな?
一回の処理の工程イメージ LEDアリとナシでは露光時間が違うので光を当てているときの最大値が同一になるところまで少ないほうに掛け算をして数字を補正する。

 A/Dが8bitのデータ幅のとき照明アリとナシでは最大値が50程度のギャップを確保できた。1処理の中で2枚写真をとっても310fpsほどを確保。するとデータの振れ幅(環境光による最大値の変化)も小さくなったのでそれぞれの可変する閾値はある程度のリミッターを持たせるだけでよくなった。(固定すると線の幅が不安定になっちゃった)
 現在の閾値
 0%~20%が黒
 20%~50%がグレー(マーカー用)
 50%~100%が白(センターライン用)

 またカメラを処理するときに問題になる「坂道のうえの画像」。これの対処に頭を抱える。
 まず、カメラのアングルを路面に対して30数度を確保すればよっぽど3本の線(真ん中と端)が見えることは無い。
 ただカメラの位置を下げたり、より遠くを見たときにアングルを確保できないと外の線が見えたりする。(自分は今19度)
 そこでまず坂に入ったら両端の画素を無視するプログラムを組み込んでいた。しかしこれが坂のモードに入れるタイミング、条件、また、出すタイミング、条件。これを確実な物とするのはかなり難しい。たまたま動いてはいたけれど上記の大幅改修によって"バランス"が崩れた。
 そのよう"超絶バランス"の上に成り立っていた「見たくない物は見ない」プログラムから「見たい物を選ぶ」プログラムに変更。つまりは認識できる"ライン"はすべてまず"ライン"として認識するということ。1本なら1本。3本なら3本。(最大4本にした)その中から正しいトレースするべきラインを選ぶ。
 まず置いた安定状態では1本しか見えないように作っておく。もし2本、3本見えたときはコレの中から前回のラインに一番近い位置にあるラインを選んでトレースする。
 すると今までは坂道で飛ぶともはや真っ直ぐ突き抜けていたのが、飛んだ状態でもトレースを続ける様子が見れるようになった。具合がよろしい。
 んでも結論は実戦投入するまで何も分からないわけなんだけド。

0 件のコメント:

コメントを投稿