画像から車両のナンバープレート (ANPR) を認識するにはどうすればよいですか?[閉まっている]
-
13-09-2019 - |
質問
ユーザーが車の画像をアップロードできる Web サイトを持っており、車のナンバー プレートを検出してぼかすためのプライバシー フィルターを設置したいと考えています。
ぼやけは問題ではありませんが、写真内のライセンスを見つけるのに役立つライブラリまたはコンポーネント (オープンソースが望ましい) はありますか?
注意事項;
- 完璧なものはなく、このタイプの画像認識では誤検知や誤検知が発生する可能性があることはわかっています。
- ぼかす領域を選択するようにユーザーに依頼できるのはありがたいことです。同様にこれを実行します。ただし、問題は、具体的にはそのデータをプログラムで検索することです。したがって、「すべての画像を人にチェックしてもらう」などの回答は役に立ちません。
- このソフトウェア手法は英国では「Automatic Number Plate Recognition」と呼ばれていますが、ライブラリとして実装されているものは見当たりません。
- どの言語でも使用できますが、.Net が推奨されます。
解決
IはJAVA ANPRに基づいて、C#のバージョンの符号化されたが、私はOpenCVのとAWTライブラリ関数を変更しました。 あなたは http://anprmx.codeplex.com の
でそれを確認することができます他のヒント
編集:私は、 Python スクリプト このために。
目的がぼやけているので(プライバシー保護のため)、基本的には高いレベルが必要です。 想起 最初のステップとして検出器を使用します。これを行う方法は次のとおりです。含まれているコードヒントは、Python で OpenCV を使用します。
- グレースケールに変換します。
ガウスぼかしを適用します。
img = cv2.imread('input.jpg',1) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_gray = cv2.GaussianBlur(img_gray, (5,5), 0)
入力画像を以下のようにします。
- ソーベル フィルターを適用して垂直エッジを検出します。
厳密なしきい値または OTSU の 2 値化を使用して、結果の画像をしきい値に設定します。
cv2.Sobel(image, -1, 1, 0) cv2.threshold()
適切な構造要素を使用して形態学的クロージング操作を適用します。(構造要素として 16x4 を使用しました)
se = cv2.getStructuringElement(cv2.MORPH_RECT,(16,4)) cv2.morphologyEx(image, cv2.MORPH_CLOSE, se)
ステップ 5 の結果のイメージ。
この画像の外側の輪郭を見つけます。
cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
輪郭ごとに、
minAreaRect()
それを境界づける。- アスペクト比、最小面積と最大面積、水平線との角度に基づいて長方形を選択します。(2.2 <= アスペクト比 <= 8、500 <= 面積 <=15000、角度 <= 45 度を使用しました)
全て minAreaRect()
はオレンジ色で表示され、基準を満たすものは緑色で表示されます。
- このステップの後に誤検知が発生する可能性があります。これをフィルタリングするには、エッジ密度を使用します。エッジ密度は次のように定義されます。 白画素数/総画素数 長方形で。エッジ密度のしきい値を設定します。(私は0.5を使用しました)
- 検出された領域をぼかします。
再現率と精度を高めるために、適切と思われる他のフィルターを適用できます。HOG+SVM を使用して検出をトレーニングして精度を高めることもできます。
米国と欧州のプレートのためのANPRを行いGitHubの上に新しい、オープンソースのライブラリがあります。それはかなり正確に見える、それはあなたが(プレート領域を認識する)必要な正確に何をすべき。ここではGitHubのプロジェクトは次のとおりです。 https://github.com/openalpr/openalprする
私は javaANPR に、私は同様のAC#ライブラリを探していますJavaで書かれているこのいずれかに出くわしました。
私は彼らに大きな、識別可能な数字を持っているすべてが、私はいくつかの帆船でビデオカメラを向けることができるシステムを、好きで、それがボートを識別し、それらがビデオカメラを過ぎて航行する際につぶやきを送っています。
私は数ヶ月前にこのことについていくつかのグーグルを行っています。そここのトピックに関するかなりの数の論文のがありますが、私は決して任意の具体的なオープンソース実装を発見しました。商用の実装のがたくさんありますする価格見積りとそれらのけれども、どれもないので、彼らはおそらくかなり高価だ。
のJava ANPR のを見てください。無料ライセンスプレート認識...
はい、私は http://jocr.sourceforge.net/ にそのコマンドラインアプリケーションでGOCR使用していますあなたは、あなたのアプリケーションから実行する可能性があります。私は自分のアプリケーションのカップルでそれを使用します。
高性能ANPRライブラリ - http://www.dtksoft.com/dtkanpr.php。これは、商業的であるが、彼らは裁判のキーを提供します。
http://licenseplate.sourceforge.net のPythonの(私はそれをテストしていません)。
これは多分文字recoqnitionソフトウェアを見て働いています。私は、画像を読み取り、それを保存します。 Micrsoft事務所は英数字をTIFFファイルを読み込んで返すことができる。
ボケが問題ではなく、ライブラリやコンポーネントの写真の中にライセンスを見つけるのに役立ちます(優先オープンソース)?
があります答え: CARMENのFreeFlow ANPRソフトウェアエンジンの(コマーシャル)