ユーザーが車の画像をアップロードできるWebサイトがあります。プライバシーフィルターを配置して、車両のナンバープレートを検出し、ぼかします。
ぼかしは問題ではありませんが、写真内のライセンスを見つけるのに役立つライブラリまたはコンポーネント(オープンソースを推奨)はありますか?
警告;
Java ANPRに基づいてC#バージョンをコーディングしましたが、OpenCVでawtライブラリ関数を変更しました。 http://anprmx.codeplex.com で確認できます。
[〜#〜] edit [〜#〜]:このために Pythonスクリプト を書きました。
(プライバシー保護のため)目的がぼやけているため、基本的に最初のステップとして高度な recall 検出器が必要です。これを行う方法を次に示します。付属のコードヒントでは、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()
を見つけます。
すべてのminAreaRect()
sはオレンジ色で表示され、基準を満たすものは緑色で表示されます。
リコールと精度を高めるのに適していると思われる他のフィルターを適用できます。 HOG + SVMを使用して検出をトレーニングし、精度を高めることもできます。
GitHubには、米国および欧州版のANPRを行う新しいオープンソースライブラリがあります。かなり正確に見え、必要なことを正確に行う必要があります(プレート領域を認識します)。 GitHubプロジェクトは次のとおりです。 https://github.com/openalpr/openalpr
Java javaANPR で記述されたこのコードに出会いました。C#ライブラリも探しています。
ビデオカメラをいくつかの帆船に向けることができるシステムが欲しいのですが、すべての帆船には大きな識別可能な番号があり、ボートを識別して、ビデオカメラを通過するときにツイートを送信します。
Java ANPR をご覧ください。無料のナンバープレート認識...
高性能ANPRライブラリ- http://www.dtksoft.com/dtkanpr.php 。これは商用ですが、トライアルキーを提供します。
はい、 http://jocr.sourceforge.net/ でgocrを使用しています。これは、アプリケーションから実行できるコマンドラインアプリケーションです。いくつかのアプリケーションで使用しています。
http://licenseplate.sourceforge.net Python(テストしていません)