画像から車両のナンバープレート (ANPR) を認識するにはどうすればよいですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/981378

質問

ユーザーが車の画像をアップロードできる Web サイトを持っており、車のナンバー プレートを検出してぼかすためのプライバシー フィルターを設置したいと考えています。

ぼやけは問題ではありませんが、写真内のライセンスを見つけるのに役立つライブラリまたはコンポーネント (オープンソースが望ましい) はありますか?

注意事項;

  1. 完璧なものはなく、このタイプの画像認識では誤検知や誤検知が発生する可能性があることはわかっています。
  2. ぼかす領域を選択するようにユーザーに依頼できるのはありがたいことです。同様にこれを実行します。ただし、問題は、具体的にはそのデータをプログラムで検索することです。したがって、「すべての画像を人にチェックしてもらう」などの回答は役に立ちません。
  3. このソフトウェア手法は英国では「Automatic Number Plate Recognition」と呼ばれていますが、ライブラリとして実装されているものは見当たりません。
  4. どの言語でも使用できますが、.Net が推奨されます。
役に立ちましたか?

解決

IはJAVA ANPRに基づいて、C#のバージョンの符号化されたが、私はOpenCVのとAWTライブラリ関数を変更しました。 あなたは http://anprmx.codeplex.com

でそれを確認することができます

他のヒント

編集:私は、 Python スクリプト このために。

目的がぼやけているので(プライバシー保護のため)、基本的には高いレベルが必要です。 想起 最初のステップとして検出器を使用します。これを行う方法は次のとおりです。含まれているコードヒントは、Python で OpenCV を使用します。

  1. グレースケールに変換します。
  2. ガウスぼかしを適用します。

    img = cv2.imread('input.jpg',1)
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    img_gray = cv2.GaussianBlur(img_gray, (5,5), 0)  
    

入力画像を以下のようにします。

enter image description here

  1. ソーベル フィルターを適用して垂直エッジを検出します。
  2. 厳密なしきい値または OTSU の 2 値化を使用して、結果の画像をしきい値に設定します。

    cv2.Sobel(image, -1, 1, 0)
    cv2.threshold() 
    
  3. 適切な構造要素を使用して形態学的クロージング操作を適用します。(構造要素として 16x4 を使用しました)

    se = cv2.getStructuringElement(cv2.MORPH_RECT,(16,4))
    cv2.morphologyEx(image, cv2.MORPH_CLOSE, se)  
    

ステップ 5 の結果のイメージ。

enter image description here

  1. この画像の外側の輪郭を見つけます。

    cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 
    
  2. 輪郭ごとに、 minAreaRect() それを境界づける。

  3. アスペクト比、最小面積と最大面積、水平線との角度に基づいて長方形を選択します。(2.2 <= アスペクト比 <= 8、500 <= 面積 <=15000、角度 <= 45 度を使用しました)

全て minAreaRect()はオレンジ色で表示され、基準を満たすものは緑色で表示されます。

enter image description here

  1. このステップの後に誤検知が発生する可能性があります。これをフィルタリングするには、エッジ密度を使用します。エッジ密度は次のように定義されます。 白画素数/総画素数 長方形で。エッジ密度のしきい値を設定します。(私は0.5を使用しました)

enter image description here

  1. 検出された領域をぼかします。

enter image description here

再現率と精度を高めるために、適切と思われる他のフィルターを適用できます。HOG+SVM を使用して検出をトレーニングして精度を高めることもできます。

米国と欧州のプレートのためのANPRを行いGitHubの上に新しい、オープンソースのライブラリがあります。それはかなり正確に見える、それはあなたが(プレート領域を認識する)必要な正確に何をすべき。ここではGitHubのプロジェクトは次のとおりです。 https://github.com/openalpr/openalprする

私は javaANPR に、私は同様のAC#ライブラリを探していますJavaで書かれているこのいずれかに出くわしました。

私は彼らに大きな、識別可能な数字を持っているすべてが、私はいくつかの帆船でビデオカメラを向けることができるシステムを、好きで、それがボートを識別し、それらがビデオカメラを過ぎて航行する際につぶやきを送っています。

私は数ヶ月前にこのことについていくつかのグーグルを行っています。そここのトピックに関するかなりの数の論文のがありますが、私は決して任意の具体的なオープンソース実装を発見しました。商用の実装のがたくさんありますする価格見積りとそれらのけれども、どれもないので、彼らはおそらくかなり高価だ。

このシンプルな自動ナンバープレート認識システムを試してみてください。

http://opos.codeplex.com/する

オープンソースおよびC#で書かれた

の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ソフトウェアエンジンの(コマーシャル)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top