使用SCF进行图像分类

2020-12-29 11:06:42 浏览数 (1)

背景

图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源,也是图像识别领域的一个重要问题,图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。一般来说,图像分类通过手工特征或特征学习方法对整个图像进行全部描述,然后使用分类器判别物体类别,因此如何提取图像的特征至关重要。但是如果靠自己实现一个图像识别算法是不容易的,我们可以使用ImageAI来完成这样一个艰巨的任务。

技术方案

使用云函数实现,详细步骤如下:

  1. 在云控制台新建python云函数模板
  2. 编写代码,实现如下:
代码语言:txt复制
from imageai.Prediction import ImagePrediction
import os, base64, random

execution_path = os.getcwd()

prediction = ImagePrediction()

prediction.setModelTypeAsSqueezeNet()

prediction.setModelPath(os.path.join(execution_path, "squeezenet_weights_tf_dim_ordering_tf_kernels.h5"))

prediction.loadModel()

def main_handler(event, context):

    imgData = base64.b64decode(event["body"])

    fileName = '/tmp/'   "".join(random.sample('zyxwvutsrqponmlkjihgfedcba', 5))

    with open(fileName, 'wb') as f:

        f.write(imgData)

    resultData = {}

    predictions, probabilities = prediction.predictImage(fileName, result_count=5)

    for eachPrediction, eachProbability in zip(predictions, probabilities):

        resultData[eachPrediction] =  eachProbability

    return resultData

3.简单测试验证:

代码语言:txt复制
import urllib.request
import base64, time

for i in range(0,10):
    start_time = time.time()
    with open("1.jpg", 'rb') as f:
        base64_data = base64.b64encode(f.read())
        s = base64_data.decode()
    url = 'http://service-xxx.gz.apigw.tencentcs.com/release/image'
    print(urllib.request.urlopen(urllib.request.Request(

        url = url,

        data= json.dumps({'picture': s}).encode("utf-8")

    )).read().decode("utf-8"))

    print("cost: ", time.time() - start_time)

输出结果:

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  2.1161561012268066

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.1259253025054932

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.3322770595550537

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.3562259674072266

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.0180821418762207

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.4290671348571777

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.5917718410491943

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.1727900505065918

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  2.962592840194702

{"prediction":{"cheetah":83.12643766403198,"Irish_terrier":2.315458096563816,"lion":1.8476998433470726,"teddy":1.6655176877975464,"baboon":1.5562783926725388}}

cost:  1.2248001098632812

0 人点赞