Resumo da detecção chinesa de Paddleocr

Detecção chinesa de paddleocr


Recentemente, estou fazendo detecção de ocr. Os requisitos do projeto são chinês, inglês, números e alguma detecção de símbolo.
No início, usei o tesseract, que é muito preciso para detecção de inglês, detecção de número e alguns sinais de pontuação. No entanto, como existem caracteres chineses no projeto e alguns caracteres ingleses incompletos e pegajosos (apareceram após a binarização e são semelhantes à caligrafia, não uma fonte padrão), neste momento, não importa se você treina novamente o tesseract ou continua treinando na base original, nem sempre é possível obter resultados satisfatórios (ps: o tesseract oficialmente possui um modelo chinês treinado, você mesmo deve encontrá-lo)

Tentei de várias maneiras, incluindo opencv4.5.1 começou a oferecer suporte a API avançada de modelo de detecção de texto e API avançada de modelo de reconhecimento de texto: TextDetectionModel (modelo de banco de dados) e TextRecognitionModel (modelo CRNN). Mas os pesos treinados que encontrei são bons para detecção em inglês, mas realmente não são bons para detecção em chinês (observação: não é que o modelo de rede de aprendizado profundo não seja bom, mas os pesos não são bons. Você precisa encontrar o conjunto de dados para treinamento ou criar seu próprio conjunto de dados. A carga de trabalho é enorme)

Finalmente, descobri acidentalmente o paddleocr. Você pode fazer upload de fotos em sua página da Web para testar o efeito. Descobriu-se que a detecção de chinês e inglês, números, sinais de pontuação etc. é muito boa. Portanto, configure o ambiente de remo e, em seguida, implante-o em c++ (esta é uma história posterior)

Paddle também usa o modelo DB + modelo CRNN, mas os cientistas do Baidu obviamente otimizaram a rede e treinaram e ajustaram parâmetros para chinês e inglês, números, símbolos, especialmente chinês, e o efeito de detecção é muito bom. E suporta implantação de python e implantação de c++. Pode não importar qual idioma é usado na academia, mas é muito importante se envolver na indústria. Às vezes, o corpo principal do projeto é desenvolvido em C++. Neste momento, a parte de desenvolvimento é desenvolvida em Python. Como integrá-lo ao projeto principal pode levar mais tempo do que usar Python para desenvolver.

paddleocr reduz a necessidade de reinventar a roda, podendo ser retreinado, ou usar diretamente os pesos oficiais de três tamanhos: grande, médio e pequeno.

おすすめ

転載: blog.csdn.net/qq_43207709/article/details/124016507