3.3分钟从零开始搭建一个微软识花深度学习应用

本文介绍 3.3分钟从零开始搭建一个微软识花深度学习应用

3分钟从零开始搭建一个微软识花深度学习应用

本文由在当地较为英俊的男子金天大神原创,版权所有,欢迎转载,本文首发地址 https://jinfagang.github.io 。但请保留这段版权信息,多谢合作,有任何疑问欢迎通过微信联系我交流:jintianiloveu

很多人应该都使用过微软识花APP,很多次我跟妹子出去旅游的时候都是它让我找回了做男人的感觉….额,扯远了。我的意思是,一个AI的应用让我们可以在百草百花之中瞬间知道它的品种以及习性,不得不感叹人工智能的强大啊。那么问题来了,你是否想自己开发一个识别花草的应用程序呢?从而让你的GF对你无比崇拜,刮目相看,每次你们出去游玩的时候你就可以祭出这个大杀器。。扯远了,我们还是好好写代码吧。

不可否认,这个目的还是非常吸引人的,但今天我就要用3分钟时间来教大家,如果通过百度的图像识别平台来做这个事情。

注册百度图像识别平台app

首先大家请先进入百度图像识别平台,开始创建自己的app。

3461520259496_.pic_hd

我们可以看到一个霸气的banner,这里我们点击了解已有模型。我希望大家能够看到这个界面:

3471520259541_.pic_hd

大家点击立即使用,这个时候我们就需要进入我们的控制台了。

在这里你需要创建你的应用,在这里就不截图了。创建完应用之后,你就可以看到你的apikey和secretkey,这两个就是我们最终需要的绝密秘钥了。

好了,说了这么多,好像并没有说到重点啊。我们不是要识别花么?来了,要识别花,首先我们必须要知道的是,我们需要一个api,然后我们要知道如何调用它。最终我们希望得到一个检测结果。就这么简单。

构建识花框架

talk is cheap,直接show you the code。不过在这之前,我不得不说一句,我们这个程序将用python写就,不过最终的效果大家可以自行用android或者什么去写,基本逻辑呢就是从摄像头拍张照,获取这张图片,发起一个请求,拿到一个response。在这里我们需要一张花的测试图片。嫌弃手动打开浏览器太low逼?嫌弃手动点击另存为太浪费时间?都什么年代了,用些AI工具好吗?在这里给大家推荐alfred, 大家可以直接从pip安装:

sudo pip3 install alfred-py

然后你可以在terminal里面看到alfred的使用方式:

alfred -h

输出应该是这样的:

usage: alfred [-h] {vision,text,scrap} ...
positional arguments:
{vision,text,scrap}
vision vision related commands.
text text related commands.
scrap text related commands.
optional arguments:
-h, --help show this help message and exit

这里其实alfred分为很多模块,有用于视觉处理的vision模块,有用于text处理的模块,我们用的是scrap模块,用alfred爬取一些玫瑰花图片来做测试啦:

alfred scrap image -q '玫瑰花'

然后你就看到你的当前目录下有一个玫瑰花的文件夹了。。里面全部都是玫瑰花。。。。方便吗???

44231520260334_.pic

好了,我们别忘了真正的目的是什么。。直接上代码!!

import os
import requests
import cv2
import base64
import json
from pprint import pprint
import time
class PlantRecognizer(object):
def __init__(self, api_key, secret_key):
self.access_token = self._get_access_token(api_key=api_key, secret_key=secret_key)
self.API_URL = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant' + '?access_token=' \
+ self.access_token
@staticmethod
def _get_access_token(api_key, secret_key):
api = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' \
'&client_id={}&client_secret={}'.format(api_key, secret_key)
rp = requests.post(api)
if rp.ok:
rp_json = rp.json()
print(rp_json['access_token'])
return rp_json['access_token']
else:
print('=> Error in get access token!')
def get_result(self, params):
rp = requests.post(self.API_URL, data=params)
if rp.ok:
print('=> Success! got result: ')
rp_json = rp.json()
pprint(rp_json)
return rp_json
else:
print('=> Error! token invalid or network error!')
print(rp.content)
return None
def detect(self, img_path):
f = open(img_path, 'rb')
img_str = base64.b64encode(f.read())
params = {'image': img_str, 'with_face': 1}
tic = time.clock()
rp_json = self.get_result(params)
toc = time.clock()
print('=> Cost time: ', toc - tic)
result = rp_json['result']
print(result)
if __name__ == '__main__':
recognizer = PlantRecognizer(api_key='G5Vq7N0GGTBGK5C3vk4BV2N7', secret_key='2NqvsFtbsgY9277QTInKXWVxyDw46Ri6')
img = '玫瑰花/玫瑰花_01.jpg'
recognizer.detect(img)

让我们直接看一下得到的结果:

44281520260588_.pic_hd

简直神奇啊有没有??不到三分钟时间我们就完成了识花应用!!

总结

最后总结一下,依托于百度图像识别平台开发这类应用简直迅速。不仅如此,我们今天展示的这个平台还可以识别草,以及其他所有植物,比微软识花强大很多!我们也再一次见证了百度ai能力的强大!

Powered by 萝莉萝莉 and Sia

Copyright © 2017 - 2018 Jin Tian All Rights Reserved.

访客数 : | 访问量 :