5.3分钟从零开始搭建一个动物识别AI

本文介绍 5.3分钟从零开始搭建一个动物识别AI

5.3分钟从零开始搭建一个动物识别AI

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

大家是不是有过这样的经历:看到一只可爱的狗狗却不知道这是什么品种?或者看到一个美丽的妹子牵着一只狗狗却不知道如何搭讪?现在机会来了,免费领取你的人工智能AI自动识别狗狗!当然猪猪也是可以的!!!或者其他小动物。相信很多人已经迫不及待,想要尝试一下了。二话不多说,今天要给大家介绍的便是百度的图像识别平台。其实我在之前写过许多篇文章,来教大家如何从零在非常短的时间之类搭建一个自己的ai。

如果大家看完这篇文章,相信你已经具有了一个可以识别动物的人工智能了!接下来就是把它部署到你的app中,或者自己做一个微信机器人来识别它!

其实在很久以前我就看到国外有小哥自己做了一个检测器来监控花园里面的浣熊。但是从零去做一个这样的东西往往需要大量的训练图片,而且需要自己手动的去调试网络参数,往往还不一定能得到准确的结果。在这篇文章中,我将教大家如何以最快的速度搭建一个动物识别系统!

使用场景

听起来非常有趣,但我们可以先思考一下这么一个动物识别系统可以使用在哪些场景之中呢。在这里我假设大家有着非常奇特的身份,比如,你是开宠物店的。

宠物相册自动分类

你可能会给小宠物们拍很多照片,但如何给这些照片分类是个问题,分类之后你可以轻松的管理他们。借助这个API这个就非常容易实现了,不管是小狗小猫还是仓鼠小猪,甚至是蛇都可以给你识别出一个品种!可以说AI的赋能十分强大。

自动检测动物品种

其实这个API的真正强大之处并不在识别动物种类,它还可以检测同一种动物的不同品种!这个就可以脑补很多场景了,比如做一个狗狗品种识别APP,一键拍照识别狗狗品种,不管是阿拉斯加还是德国牧羊犬,都可以非常精准的识别。除此之外,对于热爱宠物的朋友们来说,假如你是程序员或者你有朋友是程序员,你甚至可以开发一个系统,自动检测狗狗品种,自动搜索给出这个动物品种的饮食习性、作息、性情等信息,非常方便啊有木有!

闲话不多说,首先我们需要前往百度的图像识别平台注册一个app。大家请注意,这里注册的app和之前的并不太一样,可以说,每次都是有细微的差别,我强烈建议大家能够根据每个APP的不同功能去选择不同的名字,这样后面也好区分啦。

注册百度图像识别平台动物识别APP

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

3461520259496_.pic_hd

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

3621520303555_.pic_hd

这是我的百度云控制台界面。大家可以看到我建立的app。实际上大家只需要新建一个app,就可以调用所有能力了。

好了,这不是最重要的,相信大家只要会点击鼠标就能走到这一步。接下来可能会有点复杂。我们要用api去识别一只动物。什么动物呢?我们选择一只阿拉斯加狗吧,以及一只🐴,看看ai能不能正确的识别出来。

构建动物识别框架

在这里给大家推荐alfred, 大家可以直接从pip安装:

sudo pip3 install alfred-py

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

alfred -h

在这里不具体讲解。实际上我们需要的一只狗狗和一只马的测试图片。

alfred scrap image -q '阿拉斯加犬'

我们看看我们的测试图片啥样:

3631520303757_.pic

3641520303773_.pic

几秒钟就有了好几个测试图片里。阿拉斯加犬依旧是那么的蠢。接下来我们得看看我们的ai能不能正确识别这些小动物了。

在这里我直接给出我们的检测框架以及代码:

import os
import requests
import cv2
import base64
import json
from pprint import pprint
import time
class AnimalRecognizer(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/animal' + '?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 = AnimalRecognizer(api_key='G5Vq7N0GGTBGK5C3vk4BV2N7', secret_key='2NqvsFtbsgY9277QTInKXWVxyDw46Ri6')
img = '阿拉斯加犬/阿拉斯加犬_01.jpg'
recognizer.detect(img)

1411520304150_.pic_hd

简直牛逼啊有没有!阿拉斯加犬的细分品种都正确的检测出来了!我们再来看看马。大家把上面的测试图片改成马来测试:

1451520304236_.pic_hd

马就没有什么细分品种了,但是骏马的识别也是非常精准啊!不管怎么样,百度ai的赋能简直强大!

总结

不知不觉我们已经学会了许多像ai技能,而且都是逆天的ai技能!百度图像识别平台的ai赋能给予我们的不仅仅是让app智能化,更多得是让我们普通人的生活智慧化,这和两会提出来的理念不就是一致的吗?希望大家能在我的引导之下把这个用起来,不用白不用啊,这么好的ai能力。

Powered by 萝莉萝莉 and Sia

Copyright © 2017 - 2018 Jin Tian All Rights Reserved.

访客数 : | 访问量 :