이미지에서 차량 번호판 (ANPR)을 인식하는 방법은 무엇입니까?
사용자가 자동차 이미지를 업로드 할 수있는 웹 사이트가 있는데, 차량의 등록 번호판을 감지하고 흐리게 처리 할 수있는 프라이버시 필터를 설치하고 싶습니다.
블러 링은 문제가되지 않지만 사진 내에서 라이선스를 찾는 데 도움이되는 라이브러리 또는 구성 요소 (오픈 소스 선호)가 있습니까?
주의 사항
- 완벽한 것은 없으며 이러한 유형의 이미지 인식은 오 탐지 및 부정적 결과를 제공합니다.
- 사용자에게 흐리게 처리 할 영역을 선택하도록 요청할 수 있다는 점에 감사 드리며이 작업도 수행 할 것입니다.하지만 질문은 특히 해당 데이터를 프로그래밍 방식으로 찾는 것입니다. 그래서 '사람이 모든 이미지를 확인하도록하세요'와 같은 답변은 도움이되지 않습니다.
- 이 소프트웨어 방법은 영국에서 '자동 번호판 인식'이라고 불리지 만 라이브러리로 구현 된 것을 볼 수 없습니다.
- .Net이 선호되지만 모든 언어가 좋습니다.
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)
입력 이미지는 다음과 같습니다.
- 수직 가장자리를 감지하려면 Sobel 필터를 적용합니다.
엄격한 임계 값 또는 OTSU의 이진화를 사용하여 결과 이미지를 임계 값으로 설정합니다.
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을 사용하여 탐지를 훈련하여 정밀도를 높일 수도 있습니다.
GitHub에는 미국 및 유럽 플레이트에 대한 ANPR을 수행하는 새로운 오픈 소스 라이브러리가 있습니다. 매우 정확 해 보이며 정확히 필요한 작업을 수행해야합니다 (플레이트 영역 인식). 다음은 GitHub 프로젝트입니다. https://github.com/openalpr/openalpr
나는 자바 javaANPR 로 작성된 이것을 발견했으며 , ac # 라이브러리도 찾고 있습니다.
I would like a system where I can point a video camera at some sailing boats, all of which have large, identifiable numbers on them, and have it identify the boats and send a tweet when they sail past a video camera.
I have done some googling about this a couple of months ago. There are quite a few papers about this topic, but I never found any concrete open-source implementation. There are a lot of commercial implementations though, but none of them with a price quote, so they're probably pretty expensive.
try this Simple Automatic Number Plate Recognition System
Open source and written with C#
Have a look at Java ANPR. Free license plate recognition...
Yes I use gocr at http://jocr.sourceforge.net/ its a commandline application which you could execute from your application. I use it in a couple of my applications.
High performance ANPR Library - http://www.dtksoft.com/dtkanpr.php. This is commercial, but they provide trial key.
http://licenseplate.sourceforge.net Python (I have not tested it)
It maybe work looking at Character recoqnition software as there are many libraries out there that perform the same thing. I reading an image and storing it. Micrsoft office is able to read tiff files and return alphanumerics
The blurring is not a problem but is there a library or component (open source preferred) that will help with finding a licence within a photo?
정답 : CARMEN FreeFlow ANPR 소프트웨어 엔진 (상용)
'programing' 카테고리의 다른 글
컴파일러는 컴파일 타임에 크기를 모르고 어떻게 메모리를 할당합니까? (0) | 2020.11.15 |
---|---|
.NET에서 간단한 규칙 엔진 라이브러리 찾기 (0) | 2020.11.15 |
Numpy '스마트'대칭 행렬 (0) | 2020.11.15 |
LaTeX 문서의 정확한 단어 수 (0) | 2020.11.15 |
현지화를위한 Angular JS 지원 (0) | 2020.11.15 |