Como reconhecer licença do veículo / matrícula (ANPR) de uma imagem? [fechadas]
-
13-09-2019 - |
Pergunta
Eu tenho um site que permite aos usuários fazer upload de imagens de carros e eu gostaria de colocar um filtro de privacidade no lugar para detectar chapas de matrícula no veículo e blur-los.
A indefinição não é um problema, mas existe uma biblioteca ou componente (open source de preferência) que irão ajudar a encontrar uma licença dentro de uma foto?
Advertências;
- Não sei nada é o reconhecimento perfeito e imagem deste tipo irá fornecer falsos positivos e negativos.
- Eu aprecio que poderíamos pedir ao usuário para selecionar a área a borrar e vamos fazer isso também, mas a questão é especificamente sobre considerar que os dados de programação; então responde como 'obter uma pessoa para verificar cada imagem' não é útil.
- Este método software é chamado de 'Automatic Número placa de reconhecimento' no Reino Unido, mas não consigo ver qualquer implementações de la como bibliotecas.
- Qualquer língua é ótimo, embora é o preferido .Net.
Solução
I codificado uma versão C # baseado em JAVA ANPR, mas eu mudei as funções da biblioteca AWT com OpenCV. Você pode verificá-la em http://anprmx.codeplex.com
Outras dicas
Editar :. Eu escrevi um Python roteiro para este
Como o seu objetivo está a esbater (para proteção de privacidade), basicamente você precisa de um alto recordar detector como um primeiro passo. Veja como vai fazer sobre isso. As dicas de código incluídos usar OpenCV com Python.
- Converter em escala de cinza.
-
Aplicar Gaussian Blur.
img = cv2.imread('input.jpg',1) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_gray = cv2.GaussianBlur(img_gray, (5,5), 0)
Deixe a imagem de entrada ser a seguinte.
- Aplicar Sobel Filtro para detectar bordas verticais.
-
Threshold a imagem resultante utilizando limite estrito ou binarização de OTSU.
cv2.Sobel(image, -1, 1, 0) cv2.threshold()
-
Aplique uma operação de fechamento morfológica usando elemento estruturante adequado. (Eu usei 16x4 como elemento estruturante)
se = cv2.getStructuringElement(cv2.MORPH_RECT,(16,4)) cv2.morphologyEx(image, cv2.MORPH_CLOSE, se)
imagem resultante após o passo 5.
-
Encontre contornos externos desta imagem.
cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
-
Para cada contorno, encontrar o
minAreaRect()
delimitadora-lo. - Selecionar retângulos com base na relação de aspecto, espaço mínimo e máximo, eo ângulo com a horizontal. (Eu usei 2.2 <= Proporção <= 8, 500 <= Área <= 15000, e o ângulo <= 45 graus)
Todos os minAreaRect()
s são mostrados em laranja e aquele que satisfaz nossos critérios está no verde.
- Pode haver falsos positivos após este passo, para filtrá-lo, a densidade de utilização borda. Densidade de Borda é definido como o número de pixels brancos / número total de pixels em um retângulo. Estabelecer um limiar para a densidade da borda. (Eu usei 0,5)
- Blur as regiões detectadas.
Você pode aplicar outros filtros que você considera adequado para aumentar recall e precisão. A detecção também pode ser treinado usando HOG + SVM para aumentar a precisão.
Há uma biblioteca de código aberto novo no GitHub que faz ANPR para placas norte-americanos e europeus. Parece bastante precisa e deve fazer exatamente o que você precisa (reconhecer as regiões placa). Aqui está o projeto GitHub: https://github.com/openalpr/openalpr
me deparei com este que é escrito em java javaANPR , eu estou procurando ac # biblioteca também.
Eu gostaria de um sistema onde eu posso apontar uma câmera de vídeo em alguns barcos à vela, todos os quais têm números grandes, identificáveis ??sobre eles, e tê-lo a identificar os barcos e enviar um tweet quando eles navegam passado uma câmera de vídeo.
Tenho feito algumas googling sobre este um par de meses atrás. Há muito poucos papéis sobre este tópico, mas eu nunca encontrado qualquer implementação de código aberto concreto. Há um monte de implementações comerciais embora, mas nenhum deles com uma cotação de preço, por isso eles são provavelmente muito caro.
tentar este simples chapa de matrícula Reconhecimento Automático do Sistema
Open source e escrito com C #
Tenha um olhar em Java ANPR . reconhecimento da matrícula livre ...
Sim eu uso gocr em http://jocr.sourceforge.net/ sua aplicação uma linha de comando que você pode executar a partir da aplicação. Eu usá-lo em um par de minhas aplicações.
alto desempenho ANPR Biblioteca - http://www.dtksoft.com/dtkanpr.php. Esta é comercial, mas eles fornecem chave de avaliação.
http://licenseplate.sourceforge.net Python (eu não testei)
É talvez trabalhar olhando para software recoqnition Character, pois há muitas bibliotecas lá fora que executam a mesma coisa. I ler uma imagem e armazená-la. escritório Micrsoft é capaz de ler arquivos TIFF e retornar alphanumerics
A indefinição não é um problema, mas existe uma biblioteca ou componente (open source de preferência) que irão ajudar a encontrar uma licença dentro de uma foto?
Ans: O CARMEN FreeFlow ANPR Software motor (Comercial)