其他分享
首页 > 其他分享> > 如何一步让你图像分类达到90%以上精准度

如何一步让你图像分类达到90%以上精准度

作者:互联网

这段时间一直在做图像分类相关的项目,也认识了很多这个领域的小伙伴们,有不少小伙伴们都是刚接触图像分类,对着各种个样的图像分类算法:AlexNet、VGG-16、VGG-19、ResNet…都是一脸茫然,到底针对我的图像分类项目,选哪个算法好呢,同时又能保证我的算法精准度呢?

今天就给大家分享,如何简单一步让你图像分类达到90%以上精准度,那就是使用百度EasyDL。

官方参考链接: 百度EasyDL图像分类介绍.

EasyDL简介

EasyDL是百度大脑推出的零门槛AI开发平台,面向各行各业有定制AI需求、零算法基础或者追求高效率开发AI的企业用户。支持包括数据管理与数据标注、模型训练、模型部署的一站式AI开发流程,原始图片、文本、音频、视频等数据,经过EasyDL加工、学习、部署,可通过公有云API调用,或部署在本地服务器、小型设备、软硬一体方案的专项适配硬件上,通过SDK或API进一步集成。

EasyDL优势——零门槛一站式AI服务

我觉得EasyDL最重要的优势就是非常友好,几乎对于刚入门图像分类的小伙伴们是零门槛。

EasyDL提供围绕AI服务开发的端到端的一站式AI开发和部署平台,包括数据上传、数据标注、训练任务配置及调参、模型效果评估、模型部署。平台设计简约,极易理解,最快5分钟即可上手,10分钟完成模型训练。

使用流程

让我们来看下百度大脑是如何让我们迅速建立高精准度的图像分类模型吧!
流程具体有4个简单步骤:
百度EasyDL使用流程

数据准备

创建图像分类数据集

首先想好分类如何设计,每个分类为你希望识别出的一种结果,如要识别水果,则可以以“apple”、“pear”等分别作为一个分类;如果是审核的场景判断合规性,可以以“qualified”、“unqualified”设计为两类,或者“qualified”、“unqualified1”、“unqualified2”、“unqualified3”……设计为多类。

注意:目前单个模型的分类上限为1000类

准备数据
基于设计好的分类准备图片:

图片格式要求:

图片内容要求:
1、训练图片和实际场景要识别的图片拍摄环境一致,举例:如果实际要识别的图片是摄像头俯拍的,那训练图片就不能用网上下载的目标正面图片
2、每个分类的图片需要覆盖实际场景里面的可能性,如拍照角度、光线明暗的变化,训练集覆盖的场景越多,模型的泛化能力越强

如果训练图片场景无法全部覆盖实际场景要识别的图片:1)如果要识别的主体在图片中占比较大,模型本身的泛化能力可以保证模型的效果不受很大影响;2)如果识别的主体在图片中占比较小,且实际环境很复杂无法覆盖全部的场景,建议用物体检测的模型来解决问题(物体检测可以支持将要识别的主体从训练图片中框出的方式来标注,所以能适应更泛化的场景和环境)。

EasyData数据服务中上传数据集

大家可以按以下流程上传数据集

  1. 创建数据集

创建数据集

  1. 导入数据集

导入数据集
导入数据
就这样简单几步就导入了训练集了,导入后,可以在EasyData数据服务中对导入的训练集进行数据质检报告、数据标注、数据清洗等操作,这点百度为大家考虑得还是很周到的,基本就是算法都集成到了系统里面,可以傻瓜化操作。*PS:*小伙伴们还可以使用这些功能,对自己对训练集数据清洗处理后再导出哦。

图像分类创建模型

数据集准备好后,就可以在模型中心,直接创立训练模型开始训练了。
不过目前单个用户在每种类型的模型下最多可创建10个模型,每个模型均支持多次训练。
图像分类创建模型

训练模型

选择训练方式

百度给大家准备了两种训练方式:可分别选择「公有云API」、「EasyEdge本地部署」进行训练。
训练模型
而且可以根据自己需求,选择训练的算法类型:
不同的部署方式下,可以选择不同的算法。每个算法旁边有一个小问号,可以查看详细说明。
例如:选择「公有云API」后,可以在「高精度」、「高性能」、「AutoDL Transfer」3种算法中选择。鼠标移动到「AutoDL Transfer」右侧的问号上,可以看到对AutoDL算法的详细说明。
通常,高精度模型在识别准确率上表现较好,但在识别速度上表现较弱。高性能模型反之。

添加数据集

下一步就是添加在EasyData数据服务中上传的数据集了。
先选择数据集,再按分类选择数据集里的图片,可从多个数据集选择图片
训练时间与数据量大小有关,1000张图片可以在30min内训练完成。
Tips:

训练模型

点击「开始训练」,训练模型。

模型效果评估

可通过模型评估报告或模型校验了解模型效果:

整体评估
详细评估
定位易混淆分类
易混淆分类示例图
总之,百度的图像分类模型效果评估,还是非常强大的,基本可以确认好下一步训练集的收集处理方向,便于更高地提高精度。PS:刚入门的小伙伴们也可以运用好这个功能,为自己训练集整理方向提供参考哦

具体想要提升模型效果,可以尝试以下两种方法:
检查并优化训练数据

模型发布

训练完毕后可以在左侧导航栏中找到【发布模型】,依次进行以下操作即可发布公有云API。篇幅有限,这里仅介绍公有云API发布方式,其它模型部署方式请参考文末提供的百度官方链接。

图像分类API调用文档

接口鉴权

1、在EasyDL控制台创建应用
创建应用
2、应用详情页获取AK SK
应用详情页获取AK SK
3、通过API Key和Secret Key获取的access_token

# encoding:utf-8
import requests 

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    print(response.json())

4、请求API说明
提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。
提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。
提示三:请求image参数为base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,注意请去掉头部。

# encoding:utf-8
import urllib2
import base64
import json

'''
easydl图像分类
'''

request_url = "【接口地址】"

with open("image.jpg", 'rb') as f:
    base64_data = base64.b64encode(f.read())
    s = base64_data.decode('UTF8')

params = {"image": s, "top_num": "5"}
params = json.dumps(params)
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
request = urllib2.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(request)
content = response.read()
if content:
    print content

本文只供大家学习相关知识使用,不以任何商业盈利为目的,转载或分享请注明相关来源。如涉及到相关侵权,请联系我删除。

欢迎志同道合者互相交流学习,微信:Zhihua_Steven

标签:识别,训练,模型,分类,精准度,图像,图片,数据,90%
来源: https://blog.csdn.net/qq_31136513/article/details/115036020