Pontos principais:
- Use o serviço de serviço de remo
1 Primeiro, você precisa instalar o ambiente relacionado à implantação do PaddleServing
PaddleServing é uma estrutura de serviço de aprendizado de máquina de alto desempenho, facilmente escalável e altamente disponível lançada pela PaddlePaddle. O principal objetivo do uso do PaddleServing no PaddleOCR é implantar o modelo de OCR treinado no ambiente online e fornecer serviços de API para conveniência do usuário. O PaddleServing também fornece alguns recursos avançados, como fusão de vários modelos, balanceamento de carga etc., que podem ajudar os usuários a criar um sistema de serviço de aprendizado de máquina mais completo.
!python -m pip install paddle-serving-server-gpu
!python -m pip install paddle_serving_client
!python -m pip install paddle-serving-app
- A primeira linha de código instala
paddle-serving-server-gpu
o pacote , que é usado para iniciar o servidor PaddleServing e oferece suporte à aceleração de GPU. - A segunda linha de código instala
paddle_serving_client
o pacote , que é usado para chamar o serviço de previsão fornecido pelo servidor PaddleServing por meio da API . - A terceira linha de código instala
paddle-serving-app
o pacote , que fornece algumas ferramentas e aplicativos relacionados ao PaddleServing , como conversão e compactação de modelo .
2 Converta o modelo de detecção para o formato de veiculação
%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python -m paddle_serving_client.convert --dirname ../../inference/det_ppocrv3/Student/ \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--serving_server ./ppocr_det_v3_serving/ \
--serving_client ./ppocr_det_v3_client/
Este código é para converter o arquivo de parâmetro e o arquivo de modelo do modelo de detecção PaddleOCR no formato usado por PaddleServing e salvá-lo no diretório especificado e, em seguida, usar o arquivo de configuração especificado para implantar o serviço de inferência.
%cd /home/aistudio/PaddleOCR/deploy/pdserving/
: Altere para o diretório na seção PaddleServingPaddleOCR
da base de código .--dirname ../../inference/det_ppocrv3/Student/
: O diretório onde os arquivos de parâmetro e os arquivos de modelo estão localizados.--model_filename inference.pdmodel
: Nome do arquivo de modelo convertido .--params_filename inference.pdiparams
: O nome do arquivo de parâmetro convertido .--serving_server ./ppocr_det_v3_serving/
: O parâmetro serve_server especifica o local do diretório da configuração PaddleServing usada para executar a exibição do modelo de detecção. Nesse caso, o local especificado é ./ppocr_det_v3_serving/--serving_client ./ppocr_det_v3_client/
: O parâmetro serve_client especifica o local do diretório do cliente PaddleServing , que é usado para invocar o modelo de detecção durante a exibição. Nesse caso, o local especificado é ./ppocr_det_v3_client/.
3 Converta o modelo de reconhecimento para o formato de veiculação
%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python -m paddle_serving_client.convert --dirname ../../inference/rec_ppocrv3/Student \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--serving_server ./ppocr_rec_v3_serving/ \
--serving_client ./ppocr_rec_v3_client/
4 Inicie o servidor
Para modificar o código de pós-processamento , você pode primeiro adicionar o código de pós-processamento a web_service.py e modificar as linhas 154-155 especificamente :
# 代码154-155行修改为下面代码
def _postprocess(rec_res):
keys = ["型号", "厂家", "版本号", "检定校准分类", "计量器具编号", "烟尘流量",
"累积体积", "烟气温度", "动压", "静压", "时间", "试验台编号", "预测流速",
"全压", "烟温", "流速", "工况流量", "标杆流量", "烟尘直读嘴", "烟尘采样嘴",
"大气压", "计前温度", "计前压力", "干球温度", "湿球温度", "流量", "含湿量"]
key_value = []
if len(rec_res) > 1:
for i in range(len(rec_res) - 1):
rec_str, _ = rec_res[i]
for key in keys:
if rec_str in key:
key_value.append([rec_str, rec_res[i + 1][0]])
break
return key_value
key_value = _postprocess(rec_list)
res = {"result": str(key_value)}
# res = {"result": str(result_list)}
4.1 Iniciar o serviço
%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python web_service.py 2>&1 >log.txt
4.2 Cliente envia solicitação
%cd /home/aistudio/PaddleOCR/deploy/pdserving/
!python pipeline_http_client.py --image_dir ../../train_data/icdar2015/text_localization/test/142.jpg
- Execute o comando pipeline_http_client.py para passar o caminho da imagem para identificação .
Nesse processo, a API HTTP do PaddleServing é usada para transmissão e reconhecimento de imagens.O arquivo pipeline_http_client.py é um script Python usado para enviar solicitações HTTP ao PaddleServing e obter os resultados do reconhecimento. O script lê e codifica a imagem de entrada no formato base64 e, em seguida, envia a string codificada para PaddleServing como um parâmetro de solicitação HTTP. O PaddleServing decodifica a imagem recebida e a envia para o modelo de detecção e reconhecimento no PaddleOCR para reconhecimento OCR e, finalmente, retorna o resultado do reconhecimento .