项目需求
如下图所示,图片内容是吊牌分为吊牌,是水洗标分为水洗,不包含这两项标为其他
从上万张图片中挑出吊牌和水洗图片
把混在一起的图片进行分类挑出
实现方案:使用EasyDL定制AI训练平台的图像分类算法,训练模型并调用训练后的模型api,对本地图像进行分类操作
图像数据
创建图像分类数据集 上传图片 ——》在线标注
等我标完200个图片之后,发现一个更方便的方法,
建议多看文档,多摸索摸索
因为我这边就三个标签,把对应标签下的图片分好,用标签名命名文件夹并压缩为zip格式,直接上传压缩包就可以自动标注了
模型处理
EasyDL定制AI训练平台
按照官方文档 训练模型 步骤一步步操作即可,都是图形化界面可以说是相当方便了,我选的公有云API部署,其他部署方式还没试,按步骤训练模型检验模型即可
我个人三个标签下每个标签放了100张左右(分的不是太细,100多和90几),
最后训练和检验结果还可以,正确率可以达到95%
训练好之后就可以发布模型了,只有发布了之后才可以调用
官方说法通常的审核周期为T 1,即当天申请第二天可以审核完成
,我的模型发布之后10分钟不到就审核完成了
模型使用
最后是模型使用,前面说了我是用的公有云API部署 所以使用的化也要调用自己设置的公有云API,这个官方文档里也有操作说明
因为我个人使用python3,官方文档的demo还是python2的,有点不适用
放在这里有兴趣的可以自己瞅瞅,还可以选择其他语言 图像分类API调用文档
下面是我自己在python3环境下的改写
代码语言:javascript复制# 先获取api token
# encoding:utf-8
import requests
# access_token: 要获取的Access Token;
# expires_in: Access Token的有效期(秒为单位,一般为1个月);
# 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())
代码语言:javascript复制# 单张图片test
# encoding:utf-8
# import urllib2
from urllib.request import urlopen
import base64
import json
import urllib
pic_path = r"D:Jupyter Notebook水洗标INSE-17.jpg"
'''
easydl图像分类
'''
request_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/classification/dpsxv1"
with open(pic_path, 'rb') as f:
base64_data = base64.b64encode(f.read())
s = base64_data.decode('UTF8')
params = {"image": s, "top_num": "3"}
params = json.dumps(params)
access_token = response.json()['access_token']
request_url = request_url "?access_token=" access_token
session = requests.Session()
headers = {'Content-Type': 'application/json'}
r = session.post(request_url, data=params, headers=headers)
print(r.text)
输出结果如下,对应各标签score
根据score对图片文件打标分类即可,是真的好用而且还是免费,还有其他很多模型开放,可以研究研究!而且很多免费 低代码实现人工智能算法!加油吧!少年!!!