2021年4月3日土曜日

Rain detection

写真や動画からゴミを抜いたり、機械学習で補正したりといった話は、よく聞きます。

動画で雨の影響を取り除くことについて機械学習分野では目にしていましたが、これ、昔から様々な手法が考案されてきたようです。
今日、良いレビューを見かけましたので、そこから読み始めた資料を書き留めておきます(まだまだあると思います)。

・レビュー
A Survey on Rain Removal from Video and Single Image
・Time Domain
・Frequency Domain
・Low Rank and Sparsity
・Deep Learning
https://arxiv.org/pdf/1909.08326.pdf

https://github.com/hongwang01/Video-and-Single-Image-Deraining 

レビューではオンタイムでの判定が念頭に置かれています。
周波数領域ではエラーの出るケースが紹介されています。
手法の比較では、Low Rank and Sparsity が優秀でした。なんでしょう、これ。スパース性と検出が結びつきません。読んでみましょうか。

・自動車の自動運転では雨滴の検出も重要
On the Impact of Varying Region Proposal Strategies for Raindrop Detection and Classification using Convolutional Neural Networks
https://breckon.org/toby/publications/papers/guo18raindrop.pdf
https://github.com/tobybreckon/raindrop-detection-cnn 

近年ではレーンキープをはじめ自動運転など、雨の映像への影響は考慮済みであり、実用化されています。自動車業界では死活問題ですから進んでいるのでしょう。

・ヒストグラム利用
Rain or Snow Detection in Image Sequences through use of a Histogram of Orientation of Streaks
http://perso.lcpc.fr/tarel.jean-philippe/publis/jpt-ijcv11.pdf 

 レビューの中でもヒストグラムの利用は紹介されています。時間領域やピクセル検出を前処理と考えると、コチラが本命という扱いになるのでしょう。組み合わせ自由ですね。

・Detection and removal of rain from videos
Algorithm for Detection and Removal of Rain from Videos
(a)前後フレームの輝度の変化を使用して、雨の影響を受けるピクセルを特定。雨のピクセルを白で表示。いくつかの誤検知(非雨ピクセル)あり。
(b)輝度に制約式を適用し、誤検知を削減。
(c)線状ピクセル(streak)を検出。
(d)Rを3×3メッシュで30フレーム加算。明るいピクセルは強い相関関係=雨ピクセルを表し、雨以外のピクセルは強度値が低くなる。
https://www.cs.columbia.edu/CAVE/projects/rain_detection/ 

レビューによれば、Video Deraining Methods の中で最も古い手法といえます。比較対象になっていましたが、残念ながら良い結果とは言えませんでした。
streakという単語は頻繁に出てきます。computer vision の分野ではデフォなのでしょう。

番外編:ハードウェアで解決
車のレインセンサーを付けた方が安価では?
How detect rain on camera vision using OpenCV in C++
https://stackoverflow.com/questions/44430881/how-detect-rain-on-camera-vision-using-opencv-in-c

As for the rain, I guess there's no simple answer that can be given in a few sentences. There are some articles available in the web though. That said, I would guess it would be simpler and cheaper to detect rain by just installing external rain sensors (like the ones activating wipers in a car) rather than trying to do it by developing your own computer vision algorithm for that purpose.

0 件のコメント:

コメントを投稿