首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用SCF进行图像分类

使用SCF进行图像分类

原创
作者头像
haimingli
修改2020-12-29 11:06:42
6410
修改2020-12-29 11:06:42
举报

背景

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

技术方案

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

  1. 在云控制台新建python云函数模板
  2. 编写代码,实现如下:
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.简单测试验证:

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 技术方案
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档