使用GCP的Cloud Vision识别车牌

时间:2019-07-30 17:46:26

标签: python image-processing google-cloud-platform google-cloud-vision

我们正在开发一个移动应用程序,该应用程序将允许用户上传将存储在GCP存储桶中的图像。但是,在保存到存储桶之前,我们要模糊掉可能存在的所有面孔和牌照。我们一直在使用对GCP的Cloud Vision服务的调用来注释人脸图像,并且效果很好。但是,车牌注释却变得更具挑战性。没有选项可以专门检测车牌,相反,我们似乎仅限于捕获车牌的文本检测,还可以捕获图像中的所有其他文本。这不是我们想要的。

关于如何更好地将文本识别范围缩小到仅车牌的任何指示?

这是我们当前用于检测和收集面部和文本的注释数据的Python代码示例:

from google.cloud import vision
...
def __annotate(image_storage_url):
    result = []

    client = vision.ImageAnnotatorClient()

    response = client.annotate_image({
        'image': {'source': {'image_uri': image_storage_url}},
        'features': [
            {'type': vision.enums.Feature.Type.FACE_DETECTION}, #works great
            {'type': vision.enums.Feature.Type.TEXT_DETECTION}, #too broad
        ],
    })

    # record facial annotations
    faces = response.face_annotations
    for face in faces:
        vertices = [(vertex.x, vertex.y)
                    for vertex in face.bounding_poly.vertices]
        result.append(vertices)

    # record plate annotations
    texts = response.text_annotations
    for text in texts:
        vertices = [(vertex.x, vertex.y)
                    for vertex in text.bounding_poly.vertices]
        result.append(vertices)

    return result

谢谢

2 个答案:

答案 0 :(得分:1)

您必须创建一个自定义模型,上传您的图像训练集(在这种情况下为牌照)并对其进行训练以生成模型,然后您可以使用该模型发送图像并获取信息。

看看Google Object Detection

答案 1 :(得分:0)

尝试在同一张图片中使用OBJECT_LOCALIZATION,FACE_DETECTION和TEXT_DETECTION,并通过OBJECT_LOCALIZATION中的“牌照”进行过滤,这样您就可以做任何您想做的事情。