4.3分钟从零开始搭建一个车型检测识别AI

本文介绍 4.3分钟从零开始搭建一个车型检测识别AI

4.3分钟从零开始搭建一个车型检测识别AI

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

车型检测识别是个刚需,目前这块还当真处于市场空白。我有很多面前一辆无比牛逼的跑车我却视之如五菱宏光。假如有一款app可以拍照识别车型,并且告诉你车的品牌,颜色,甚至是定损程度,这一定非常吸引人啊。我点子已经说到这里了。如果你参考我的文章写了一个这样的应用,别忘了回来给我打个赏。

闲话不多说,我们今天的主要目标就是在极其短的时间之类,构建一个车型检测识别的人工智能应用。而我们要祭出的大杀器,正是来自百度的图像识别平台。这个平台能做些什么事情呢,我在之前的文章都有详细的介绍。考虑到很多人并没有阅读之前的文章,所以在这里,我还是教大家如何一步步从零来构建这么一个应用。

使用场景

这个AI赋能的使用场景可有说是极其广泛。下面我们先简单的列举一下,然后再教大家如何去实现。

做一个车型识别APP

开发一个APP一键拍照识别车型号甚至出厂年份是很直接的需求。目前在市场上很难找到一款完全用深度学习来做的这方面的产品啊。下面给大家演示的这个实例就可以看出,不管是准确度还是速度,这都无疑是最好的方式。

车型识别APP在市场上需求还是非常大的,这个API所能够检测的不仅仅包含国产车,国外车型、跑车、越野车等车型应有尽有,极大地满足客户们的需求。

洗车门店客户车型自动识别

如果大家有幸成为一家汽车美容店的老板,那这个需求就很显然了,每天无数的车来来往往,有心的记录一下过往的顾客们的车型号、年份、颜色,从而从这些大数据中挖掘出一些用户消费模式,这就是AI赋能线下产业的一个很显然的例子啊!然而如果人工去做,无疑是耗时费力的。而这个平台所给予的便是最基础的能力!如果大家有想法建造一个这样的系统,那最起码最基础的功能部分已经被百度所解决了,接下来就是业务模式的问题了。

高档社区车型自动统计

很多企业用户,尤其是从事安防领域的会有这样的需求,他们往往需要知道每天进入的车辆的型号、颜色以及出厂年份,从而与人脸识别的车主对应。其实使用百度图像识别平台就可以非常出色的完成这个任务。如果大家仔细阅读下面的内容,就会发现,所有的这些需求都可以在返回的结果中得到!再结合百度的人脸识别SDK,所有的一切水到渠成!

好了,闲话不多说,让我们直接开始去实现它!

注册百度图像识别平台车型检测的APP

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

3461520259496_.pic_hd

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

3471520259541_.pic_hd

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

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

然而我们需要进一步思考的问题是,如果用这么牛逼的平台来构建自己的车型识别应用呢?首先我们可能需要一张测试图片。我尽可能的把整个内容精简吧。我先给大家推荐一款直接根据关键词下载图片的深度学习工具:alfred

构建车型识别框架

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

sudo pip3 install alfred-py

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

alfred -h

在这里不具体讲解。实际上我们需要的一辆保时捷911的图片, 请注意哦!我们要测试这个车型!如果百度图像识别平台没有检测出来,那就不能说其牛逼了,连保时捷911都不认识,那还检测个毛。我们直接用alfred进行搜索一张测试图片吧:

alfred scrap image -q '保时捷911'

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

44331520261350_.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/car' + '?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 = '保时捷911/保时捷911_02.jpg'
recognizer.detect(img)

好了,见证奇迹的时刻到了,让我们来运行一下?看看这个结果怎么样。44361520261549_.pic_hd

简直牛逼了好么!!!不仅识别出了这事保时捷911,连2002款也识别出来了!!!甚至识别出了这事香槟色!!!庸俗的我作为人类还以为是屎黄色。。

总结

我们大概花了3分钟时间够构建了一个车型检测的应用,不仅仅是车型,连车的出场年份都一清二楚,甚至包括车的颜色。二话不说,看了本文收到启发而且创业担任CEO的亲们,别忘了我的微信收款二维码。