これは非常に難しい問題です。私は数年間それに取り組んでいたチームの一員であり、他のそのようなアプリケーションを長い間開発しサポートしてきましたが、へこみの検出は特に扱いにくい問題であり、最初よりもずっと難しいと言えます。
アルゴリズムを実験室の条件下または既知の画像で機能させることは1つのことです。駐車場で見られる車のような「自然な」画像に対して正確で堅牢なシステムを開発するには、おそらく数年間作業するチームが必要です。アルゴリズムを作成するという中核的な問題に加えて、他にも多くのエンジニアリング上の困難があります。
テストしたサンプルコードは悪いスタートではありません。へこみの暗い右側の周囲にエッジを見つけることができれば、車のエッジマップと同じ照明で同じ角度から画像化された既知の良好な車のエッジマップと比較できます。照明を制御すると、かなり役立ちます。
考慮すべき問題には次のものがあります。
- 照明(最初に見えるよりもはるかに難しい)
- 組み立てられた外部パネルの予想される3D表面(CADデータなど)
- へこみを特徴付ける基準:面積、深さ、プロファイルなど
- 偽陰性と偽陽性の基準
- 凹みデータを保存する手段および/または凹みを車のモデル(または蝶のレイアウト)にマップする手段
- 「真の」へこみ特性を測定する方法論とデバイス:深さ、面積など
- 車両のランダムサンプリングからのへこみの広範なデータベース
- さまざまな塗料の色と仕上げに対処する
1.照明
Martin Bが上で正しく述べたように、この問題には正しい照明が重要です。優れた構造化照明を使用しても、計画線付近の小さなへこみ、パネル間の隙間、ハンドルなどを検出するのは非常に困難です。
Wikipediaの構造化照明のエントリは少し薄いですが、原則を理解するための出発点です。http:
//en.wikipedia.org/wiki/Structured_light
ライトストライプを使用して、インディング(へこみ)およびアウトディンギング(にきび)を検出できます。鳴き声を見るには、光源と車の間の相対運動が必要です。ライト+カメラが車に対して相対的に移動するか、車がライト+カメラを通過します。
ライトストライプの端で見た場合、インディングとアウトディングは特徴的な外観を持っていますが、特定のへこみの検出可能性は、ライトストライプの幅に対するデントのサイズと深さに依存します。車の曲率は複雑であるため、カメラに一貫したライトストライプを表示することは非常に困難です。ライトストライプが車体を横切って移動すると、ライトストライプの曲率、さらには強度が変化します。
部分的な解決策の1つは、検査対象の表面の一部の法線(3D垂直)に対してカメラとライトストライプが常に一定の角度になるようにすることです。実際には、ロボットは、体の表面に対してカメラを正確に動かす必要があります。ロボットを正確に動かすには、車体の姿勢(位置と3D角度)の知識が必要です。これはそれ自体が厄介な問題です。
自動車用途の検査では、照明を完全に制御する必要があります。つまり、既知の場所に選択したライトを配置するだけでなく、他のすべてのライトをブロックします。これは、かなり大きなエンクロージャーを意味します。車のパネルは外側に湾曲しているため(ほぼ球面のように)、周囲のすべての光源からの光を反射します。この問題を大幅に簡素化するには、黒いベルベットで覆われたエンクロージャー内に高周波蛍光灯を使用します。検査アプリケーションの場合、そのような極端な設定を行う必要がある場合が非常に多くあります。
2. 3Dサーフェス
車の外面は複雑な曲線で構成されています。疑わしいスポットが鳴き声であるかどうかを知るためには、そのスポットを車の既知の特徴と比較する必要があります。つまり、カメラからの2D画像を、特定の角度で表示される3Dモデルに一致させる必要があります。これはすぐに解決される問題ではなく、一部の企業がそれを専門とするのは十分に困難です。
3.欠陥の特性評価
学術研究または実験室でのテストでは、既存の方法を約束または改善するアルゴリズムを開発するだけで十分な場合があります。この問題を実際の商用または産業用に適切に解決するには、検出するサイズのへこみについて非常に詳細な仕様が必要です。
この問題に取り組んだとき、へこみ(3D変形)の合理的な業界または国家標準はありませんでした。つまり、その面積、深さ、および形状によってへこみを特徴付ける合意された技術はありませんでした。業界の専門家が悪いと判断したサンプルがありました。ディンは外側に湾曲した(通常)3Dサーフェスの3Dインデントであるため、ディンの「深さ」を定義することも困難です。
大きな音は検出が簡単ですが、あまり一般的でもありません。経験豊富な自動車労働者は、訓練を受けていない観察者よりもはるかに迅速に車体をすばやくスキャンし、小指のサイズの浅いへこみをすばやく見つけることができます。自動化システムのコストを正当化するには、経験豊富なオブザーバーの能力と一致させる必要があります。
4.検出エラーの基準
早い段階で、許容できる偽陰性と偽陽性の基準を設定する必要があります。この問題を研究開発プロジェクトとして研究しているだけで、製品を開発するつもりがない場合でも、検出基準を定義してください。
偽陰性:へこみはあるが検出されない偽陽性:へこみとして識別される傷のない領域
通常、トレードオフがあります:感度を上げると、より多くの鳴き声が見られます(偽陰性が減少します)が、存在しない鳴き声がより多く見つかります(誤検出が増加します)。アルゴリズムのパフォーマンスが実際よりも優れていることを確信させるのは非常に簡単です。自然なバイアスは、アルゴリズムによって検出された欠陥に気付き、検出されなかった欠陥を説明することです。ブラインド自動テストを実施します。可能であれば、他の誰かに音を測定してもらい、真の測定値が分からないように重大度を割り当ててください。
5.データを保存および/またはマップします
。へこみは、その重大度と車体上の位置によって特徴付けられます。その位置を知るには、上記の2Dから3Dへの対応の問題を解決する必要があります。
6.へこみの「真の」形状の決定
へこみは測定が困難です。同じ表面積と深さの鋭いへこみと丸いへこみは異なって表示されます。機械的手段でへこみを測定すると、主観的な判断につながります。また、深さゲージ、定規などを使用するのは非常に面倒です。
これは、製造業の欠陥検出プロジェクトで解決するのが難しいエンジニアリング問題の1つです。欠陥をどのように測定し、どのように特徴付けますか。そうするための標準がある場合、その標準は検査システムが測定する何かとよく相関していますか?検査システムが「あるべき」な音を見つけられない場合、誰が責任を負いますか?
ただし、検査システムが既知の欠陥のサンプルに対して十分に機能する場合、ユーザーは最終的にそれを信頼するようになり、システム自体が欠陥の重大度を定義するための標準になります。
7.広範なへこみのデータベース
理想的には、困難なメーカーの車両のさまざまな場所にある、さまざまな重大度のへこみのサンプル画像が数千とまではいかないまでも数百になります。アセンブリプロセス中の事故によって生じたへこみを見つけたい場合は、その種のデータを収集するのに長い時間がかかる可能性があります。組み立てプロセス中に生じるへこみは一般的ではありません。
事故や環境損傷によって引き起こされたへこみを見つけることにだけ興味があるなら、それは別の問題です。へこみの種類は、自動組立工場内での偶発的な衝突によって引き起こされるものとは異なります。
8.さまざまなペイントカラーの処理
エッジ検出器は、さまざまなレベルのコントラストの画像でエッジを検出するのに適度に堅牢である可能性がありますが、「さまざまなレベルのコントラスト」がさまざまな自動車のペイントと仕上げにとって実際に何を意味するかを見ると、非常に落胆します。光沢のある黒い車で見栄えの良いライトストライプは、古い塗装の白い車ではほとんど検出できません。
ほとんどのカメラのダイナミックレンジは比較的限られているため、黒い光沢のある表面と白い鈍い表面の両方で良好なコントラストを実現するのは困難です。照明の強度を自動的に制御する必要がある可能性が高いです。それも難しいです。