画像認識・物体検出の為の画像前処理
【No.5】実践(opencvを使用) 押さえておくべきポイント
1. 押さえておくべきポイントについて
これから画像認識や物体検出・文字認識に関して、筆者がおすすめの前処理をいくつかピックアップし、opencvを使用して実際に処理を行って行く予定です(全3回)。
ただ、その前にいくつか押さえておくべきポイントがありますので、今回はそれらのポイント解説から行っていきたいと思います。
2. 前処理にかかる時間、かけられる時間を認識する
これは前処理に限った話ではないと思いますが、「処理時間がどの程度かかるか」ということを認識することは非常に重要です。
例えば、製品の良品・不良品選別の為に物体検出を導入しているとします。
製品がコンベアから流れてくるタイムサイクルが1秒だったとしたら、前処理は必ずそれ未満の時間で終わらせる必要があります。実際は、前処理の他にメインの処理(物体検出)、他の処理(不良品を選別する処理等)が組み合わされていると思いますので、もしかしたら、画像1枚の前処理にかけられる時間の上限は0.1秒かもしれません。
0.1秒という限られた時間内で、メイン処理の精度が最大化する様に前処理を設計していく必要があります。
どの様に設計していくかということですが、筆者は、先述と矛盾する様ですが、まず「時間を気にせず、精度向上のみを考えて前処理を設計する」、その後で「時間内におさめるように削っていく」ことが多い印象です。
先に、精度向上に最も効果的な前処理を全て卓上にのせ、そこからどう時間内におさめるかという設計方法を行っています。
ここの部分は、1回で完結することはまずないと思います。
どういった前処理が最も効果的か、またどういった部分を削って時間内におさめるか、何回何十回とトライアンドエラーを繰り返して、適切な処理が構築されるイメージです。
話がそれますが、ここの部分は前処理だけでなく、画像認識や物体検出にもいえると思います。モデルの選定やハイパーパラメータの調整など、トライアンドエラーを繰り返して、より精度が高くなる様に泥臭く「微調整」していくイメージです。
そしてこのあたりは、まだまだ属人的というか、設計者の経験によるところが大きいと思います。だからこそ楽しい部分でもあるので、確かに泥臭いですが、腐らず頑張りましょう!
大変脱線しましたが、この様に、処理フローから逆算して前処理にかけられる時間を認識することは重要な要素となります。
3. どこまでノイズを除去すべきか
ノイズを除去することは、ここで述べた通り、メイン処理の精度に関わってきます。当然できる限りやった方が良いのでは?と考えがちですが、あながちそうでもありません。
先述の処理時間を考慮しなくてはならないケースが多いからです。
極端な例ですが、例えば、「画像1枚に対して、ノイズ除去処理を1時間かけて、その結果メイン処理の精度が0.1%向上した」場合、そのノイズ処理は本当に適切か?と思ってしまいます。
ノイズ除去は、特に処理コストがかかる場合が多く、その分処理に時間がかかることがよくあります。
例えば、ここで解説した「バイラテラルフィルタを用いた平滑化」でノイズを除去する場合、もちろん画像サイズにもよりますが、数分〜数十分かかることがあります。
ノイズ除去をする場合、「どのくらい処理時間がかかるのか」、また、ノイズ除去をすることで「どのくらい精度が向上するのか」を考慮しながら最適な処理を行うことが重要です。
4. 画像の画素値をなるべく減らす
画像認識、物体検出を行う際、入力画像の画素数をなるべく減らすことを意識した方が良いと思います。理由は単純で、画素数が少なければそれだけ処理コストや処理時間が少なくて済むからです。
具体的に画素数を減らす処理について、幾つか方法をあげます。
まず画像サイズの縮小があります。
例えば、図1の様な手書きの数字を物体検出で判別するという処理を行うとします。
この時、図1のサイズが縦1000px、横1000pxだったとします。
この場合、縦500px、横500pxなど、サイズダウンして精度を検証することをお勧めします。
「図1のサイズで何がいけないの?」と思うかもしれませんが、1000×1000×3=3000000(3百万)画素を扱うのと、500×500×3=750000(75万)画素を扱うのでは、処理コストや処理時間に大きな差が生まれます。
精度に差が無いようなら、取り入れた方が良いと思います。
また、カラー画像をモノクロ画像へ変換することで画素数を減らすことができます。RGBの3チャンネルから、1チャンネルになるので画素数は1/3になりますね。
モノクロ画像で精度を検証して、差が無いようであれば取り入れるべきかと思います(ただし、画像認識や物体検出のモデルによっては3チャンネルのみという場合もありますので、モデルの仕様を確認する必要があります)。
Link
Search