当前位置:   article > 正文

识别图片当中是否有某一物体_玩转AR图形识别小程序

软件实现ar 检测图片物品效果

abbaa7cc23fb3b7af96fe21f56c33330.png

这些年深度学习炙手可热,人脸识别,图像分类,目标检测等技术已经应用到我们生活的方方面面。作为一个时刻保持好奇心的程序猿想入门深度学习,但又苦于门槛较高,难以获得理想的学习成果。好在一些大厂已经推出了深度学习云平台,让我们前端小白也能体验深度学习的乐趣。

8d237a5576d96ffb054ac41a1fab12fa.png

这次我们基于百度AI开放平台EasyDL来实现一个logo图像识别小程序,半天时间轻松搞定客户BABA的需求。

1a41a172b51a3bd85c51c27c7ab5922d.png

1: 创建训练模型
要实现logo识别的功能,我们先要创建一个物体检测模型。
访问百度EasyDL地址 https://ai.baidu.com/easydl 在操作平台菜单中,选择物体检测选项。

1d3ecd38518e0449c3bc0982ca80f2d6.png

1.1 选择创建模型

5a83530305b67cd14799de308847b841.png

1.2 为模型命名,模型归属选择个人。

eed9a9ef08606b38d76f832190f9f955.png

2: 创建训练数据集
模型创建好以后,我们要为模型提供训练数据,所谓训练数据就是我们要识别的logo图片。
模型就像一个懵懂的孩子,我们要用训练数据教他识别图片中的logo,让他能举一反三,以后遇到不在数据集中的图片也能准确的识别出来。

2.1 准备训练数据
为了提高识别精度,我们需要用手机拍摄不同的光线,角度,背景下的logo图片上传,图片数据越多,越有助于提高模型的识别精度,一般建议上传40张左右。

c33f48a4b1e60b734747dbaef3475f82.png

2.2 标注数据
上传后,用鼠标拖拽矩形区域标注出logo图形位置,并设置统一的标签名,然后点击左下角的保存按钮。如果嫌手动标注麻烦,也可以尝试右下角的智能标注

6def8342ad2fdcdbb678b407ea038c13.png

2.3 开始训练
训练时间和数据集大小成正比,以我30多张的训练数据为例,大概需要20分钟左右,已经很快啦,如果是在本地单机上训练可能要几小时的时间,这就是云服务分布计算的好处。

68862dde280bc4454f5e57235b11133a.png

73f5dd5773104584d434b494e1af16e4.png

2.4 校验模型
训练结束后,我们需要对模型进行校验,看看模型的识别精度是否符合预期。
上传几张不在数据集中的照片来检验结果,如果效果满意,我们就可以进行下一步,发布模型。

9fd8169f1b82cafe4d7f635e57baf510.png

3: 发布模型

3.1 提交申请
发布模型前需要提交审核,填写服务名称和接口地址,提交申请。

dc7342c7118e427169eff13a7564ac43.png

审核成功后,在操作列表中点击服务详情->立即使用。

348ca679639a319174cf2a118d2f1f0d.png

ec2aefd718b42e969f8257fa7e08ff07.png

3.2 创建应用
在使用接口前,我们还需要创建一个应用,应用可以理解为一个容器,一个应用可以包含多个接口,为这些接口提供访问键值,秘钥等参数。

d4071b773e0567686ef8a6c684ea9094.png

应用创建结束后,会看到分配的API Key和Secret Key,这些都是接口调用需要携带的参数。

4417286f3067ecb194a4aca7ed12678d.png

4: 在小程序中调用识别接口

4.1 接口token验证
在调用识别接口前先要拿到access_token令牌,这是所有接口调用的前提条件。

  1. wx.request({
  2. url: API_AUTH_URL, //token授权地址
  3. method: 'GET',
  4. data: {
  5. grant_type: 'client_credentials',
  6. client_id: CLIENT_ID, //API Key
  7. client_secret: CLIENT_SECRET //Secret Key
  8. },
  9. success: (res) => {
  10. _access_token = res.data.access_token
  11. this._getImageData()
  12. }
  13. })

4.2 调用接口
传递access_token和要识别的图片等参数,具体可以参考官方的技术文档。

  1. wx.request({
  2. url: `${API_URL}?access_token=${_access_token}`, //access_token作为query参数
  3. method: 'POST',
  4. data: {
  5. image, //摄像头帧图片用base64编码
  6. threshold: 0.1
  7. }
  8. })

5:总结
百度EasyDL平台, 让我们无需机器学习专业知识,只用半天时间就开发出一个深度学习的小应用。相信今后这样的平台也会越来越多,提供给开发者更多的玩法解决工作中的实际问题。

附上小程序github源码地址: https://github.com/imokya/object-detect

8ad855b319d84d3930024061c9de9680.png
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/113826
推荐阅读