【安全生产】【百度大脑新品体验】仪器仪表盘识别
wangwei8638 发布于2020-07-04 浏览:1447 回复:2
0
收藏
最后编辑于2020-07-05

适用于不同品牌、不同型号的仪器仪表盘读数识别,广泛适用于各类血糖仪、血压仪、燃气表、电表等,可识别表盘上的数字、英文、符号,支持液晶屏、字轮表等表型。

一.平台接入

此步骤比较简单,不多阐述。可参照之前文档:

https://ai.baidu.com/forum/topic/show/943028

二.分析接口文档

1. 接口API

https://ai.baidu.com/ai-doc/OCR/Jkafike0v

注意:邀测的接口,不能直接在控制台调用,可通过提交工单申请开通测试权限。

   (1)请求说明

需要用到的信息有:

请求URL:https://aip.baidubce.com/rest/2.0/ocr/v1/meter

Header格式:Content-Type:application/x-www-form-urlencoded

请求参数:

(2)返回参数

2.获取access_token

#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content.decode("utf-8"))
token_key = token_info['access_token']
return token_key


三.识别结果

1.液晶表

返回结果:

2.字轮表

返回结果:

3.速度表

返回结果

可以看出,液晶表、字轮表识别比较准确。但对汽车仪表盘的识别有较大出入。

四.源码共享

import os

import requests

import base64

import json

from pprint import pprint

import time

#client_id 为官网获取的AK, client_secret 为官网获取的SK

api_key = '****************'

secret_key = '*******************'



class LandmarkRecognizer(object):

    def __init__(self, api_key, secret_key):

        self.access_token = self._get_access_token(api_key=api_key, secret_key=secret_key)

        self.API_URL = 'https://aip.baidubce.com/rest/2.0/ocr/v1/meter' + '?access_token=' \

                      + self.access_token

    #获取token

    @staticmethod

    def _get_access_token(api_key, secret_key):

        api = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' \

            '&client_id={}&client_secret={}'.format(api_key, secret_key)

        rp = requests.post(api)

        if rp.ok:

            rp_json = rp.json()

#            print(rp_json['access_token'])

            return rp_json['access_token']

        else:

            print('=> Error in get access token!')

    def get_result(self, params):

        rp = requests.post(self.API_URL, data=params)

        if rp.ok:

#            print('=> Success! got result: ')

            rp_json = rp.json()

            pprint(rp_json)

            return rp_json

        else:

            print('=> Error! token invalid or network error!')

            print(rp.content)

            return None

    #仪器仪表盘识别

    def detect(self, img_path):

        f = open(img_path, 'rb')

        strover = '识别结果:'

        img_str = base64.b64encode(f.read())

        params = {'image': img_str}

        rp_json = self.get_result(params)

      

        result = rp_json['words_result']

        strover += '  {} \n '.format(result[0])

        print(strover)



if __name__ == '__main__':

    recognizer = LandmarkRecognizer(api_key, secret_key)

    img = 'E:\img\ss4.jpg'

    recognizer.detect(img)
收藏
点赞
0
个赞
共2条回复 最后由wangwei8638回复于2020-07-05
#3wangwei8638回复于2020-07-05
#2 LOVEnco回复
你好,我的账号已经开通了图文生成视频的 手动生成视频,请问如何申请开放api生成视频接口?
展开

控制台提交工单,需要填写一些信息

0
#2LOVEnco回复于2020-07-05

你好,我的账号已经开通了图文生成视频的 手动生成视频,请问如何申请开放api生成视频接口?

0
TOP
切换版块