AI_图像识别
http://ai.baidu.com/forum/topic/show/595938
经测试识别率相当高,车辆信息识别
文中的import cv2不是python3自带库,需要安装pip3 install opencv-python
文中代码识别的是汽车,需要换为其他物体的识别请修改 API_URL
原文:
本文由在当地较为英俊的男子金天大神原创,版权所有,欢迎转载,本文首发地址 https://jinfagang.github.io 。但请保留这段版权信息,多谢合作,有任何疑问欢迎通过微信联系我交流:jintianiloveu
咋一看标题感觉有点标题党,其实不然,本篇主要介绍AI的一个强大赋能,那就是用人工智能来识别车的型号以及出厂年份,甚至包括车自身的颜色信息!车型检测识别是个刚需,目前这块还当真处于市场空白。我有时候面前一辆无比牛逼的跑车,我却视之如五菱宏光。假如有一款app可以拍照识别车型,并且告诉你,车的品牌、颜色,甚至是定损程度,这一定非常吸引人啊。我点子已经说到这里了。如果你参考我的文章写了一个这样的应用,别忘了回来给我打个赏。
通过AI去识别车型,如果你只是用汽车之家这样的APP来做车的识别,应该只能得到车的品牌,不要说车的型号以及出厂年份了,更不用说能够识别车的颜色信息。这个再很多场合非常有用,比如说智能安防,对通过的车辆建库,自动识别车主车型号以及颜色信息,方便快捷成本低。
闲话不多说,我们今天的主要目标就是在极其短的时间之类,构建一个车型检测识别的人工智能应用。而我们要祭出的大杀器,正是来自百度ai开放平台的图像识别。这个平台能做些什么事情呢,我在之前的文章都有详细的介绍。考虑到很多人并没有阅读之前的文章,所以在这里,我还是教大家如何一步步从零来构建这么一个应用。
使用场景
这个AI赋能的使用场景可有说是极其广泛。下面我们先简单的列举一下,然后再教大家如何去实现。
做一个车型识别APP
开发一个APP一键拍照识别车型号甚至出厂年份是很直接的需求。目前在市场上很难找到一款完全用深度学习来做的这方面的产品啊。下面给大家演示的这个实例就可以看出,不管是准确度还是速度,这都无疑是最好的方式。
车型识别APP在市场上需求还是非常大的,这个API所能够检测的不仅仅包含国产车,国外车型、跑车、越野车等车型应有尽有,极大地满足客户们的需求。
洗车门店客户车型自动识别
如果大家有幸成为一家汽车美容店的老板,那这个需求就很显然了,每天无数的车来来往往,有心的记录一下过往的顾客们的车型号、年份、颜色,从而从这些大数据中挖掘出一些用户消费模式,这就是AI赋能线下产业的一个很显然的例子啊!然而如果人工去做,无疑是耗时费力的。而这个平台所给予的便是最基础的能力!如果大家有想法建造一个这样的系统,那最起码最基础的功能部分已经被百度所解决了,接下来就是业务模式的问题了。
高档社区车型自动统计
很多企业用户,尤其是从事安防领域的会有这样的需求,他们往往需要知道每天进入的车辆的型号、颜色以及出厂年份,从而与人脸识别的车主对应。其实使用百度图像识别平台就可以非常出色的完成这个任务。如果大家仔细阅读下面的内容,就会发现,所有的这些需求都可以在返回的结果中得到!再结合百度的人脸识别SDK,所有的一切水到渠成!
好了,闲话不多说,让我们直接开始去实现它!
创建百度图像识别平台动物识别应用
闲话不多说,首先我们需要前往百度的AI开放平台,找到图像技术下面的细粒度
我们可以看到一个霸气的banner,这里我们点击立即使用,能够看到下面的界面:
这是我的百度云控制台界面。实际上大家只需要新建一个应用,就可以调用所有能力了。我强烈建议大家能够根据创建的每个应用的不同功能去命名不同的名字,这样后面也好区分啦。
创建完应用之后,你就可以看到你的apikey和secretkey,这两个就是我们最终需要的绝密秘钥了。
然而我们需要进一步思考的问题是,如果用这么牛逼的平台来构建自己的车型识别应用呢?首先我们可能需要一张测试图片。我尽可能的把整个内容精简吧。我先给大家推荐一款直接根据关键词下载图片的深度学习工具:alfred。
构建车型识别框架
在这里给大家推荐alfred, 大家可以直接从pip安装:
sudo pip3 install alfred-py
然后你可以在terminal里面看到alfred的使用方式:
alfred -h
在这里不具体讲解。实际上我们需要的一辆保时捷911的图片, 请注意哦!我们要测试这个车型!如果百度图像识别平台没有检测出来,那就不能说其牛逼了,连保时捷911都不认识,那还检测个毛。我们直接用alfred进行搜索一张测试图片吧:
alfred scrap image -q '保时捷911'
我们看看我们的测试图片啥样:
看上去很霸气。这要是我的车库该多好,纵横北京成大佬。别做梦了,还是想想接下来怎么做把。我们打算用上面那张黄色的保时捷来做一下测试。
测试代码如下:
import osimport requestsimport cv2import base64import jsonfrom pprint import pprintimport 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)
好了,见证奇迹的时刻到了,让我们来运行一下?看看这个结果怎么样。
简直牛逼了好么!!!不仅识别出了这事保时捷911,连2002款也识别出来了!!!甚至识别出了这事香槟色!!!庸俗的我作为人类还以为是屎黄色。。
总结
我们大概花了3分钟时间够构建了一个车型检测的应用,不仅仅是车型,连车的出场年份都一清二楚,甚至包括车的颜色。看了本文收到启发而且创业担任CEO的亲们,别忘了我的微信收款二维码。
更新在最后,截止本文发布,最新的车型检测API不仅仅可以识别车型,还能够检测!!API地址为: http://ai.baidu.com/tech/imagerecognition/fine_grained ,这个新的API能够检测车的具体位置!!
AI_图像识别的更多相关文章
- [AR]ImageTarget(图像识别)
ImageTarget 前言 ImageTarget 顾名思义,就是图像识别,本文记录下作者最近学习vuforia中的imageTarget笔记与心得. vuforia guide:https://l ...
- Atitit图像识别的常用特征大总结attilax大总结
Atitit图像识别的常用特征大总结attilax大总结 1.1. 常用的图像特征有颜色特征.纹理特征.形状特征.空间关系特征. 1 1.2. HOG特征:方向梯度直方图(Histogram of O ...
- Android开发(51) 摄像头自动对焦。在OpenCV图像识别中连续拍照时自动对焦和拍照。
概述 对焦,这里所说的“焦”是指“焦距”.在拍照时,一定是需要调焦的.一般会在目标位置最清晰的时候会停止对焦.最近在处理OpenCV进行图像识别时,需要连续的调焦(对焦),并在对焦完成后进行拍照,获取 ...
- 使用 MNIST 图像识别数据集
机器学习领域中最迷人的主题之一是图像识别 (IR). 使用红外系统的示例包括使用指纹或视网膜识别的计算机登录程序和机场安全系统的扫描乘客脸寻找某种通缉名单上的个人.MNIST 数据集是可用于实验的简单 ...
- 如何生成excel文件作为图像识别结果
如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...
- Tesseract——OCR图像识别 入门篇
Tesseract——OCR图像识别 入门篇 最近给了我一个任务,让我研究图像识别,从我们项目的screenshot中识别文字信息,so我开始了学习,与大家分享下. 我看到目前OCR技术有很多,最主要 ...
- 【深度学习系列3】 Mariana CNN并行框架与图像识别
[深度学习系列3] Mariana CNN并行框架与图像识别 本文是腾讯深度学习系列文章的第三篇,聚焦于腾讯深度学习平台Mariana中深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框 ...
- 使用ImageMagick和Tesseract进行简单数字图像识别
使用ImageMagick和Tesseract进行简单数字图像识别 由于直接使用 tesseract 进行识别,识别率很低, ImageMagick 安装.配置及使用: 平台:winXP 1. 安装I ...
- Facebook 开源三款图像识别人工智能软件
Facebook今天开源了三款人工智能图像分割(Image Segmentation)软件,分别是DeepMask.SharpMask和MultiPathNet,三款工具相互配合完成一个完整的图像识别 ...
随机推荐
- avalon最佳实践
最近从angular的QQ群与新浪微博拉了许多人来用我的avalon,成为第一批登上方舟,脱离DOM苦海的人.短短三个月内,5群的朋友也搞出几个切实实行的案例了.为应对粉丝们高益高涨的热情,遂放出此文 ...
- MySQL内置功能之视图、触发器和存储过程
主要内容: 一.视图 二.触发器 三.存储过程 1️⃣ 视图 一.关于视图的理解 1.1.何谓视图? 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使 ...
- Lambert模型
[Lambert模型] 漫反射光的强度近似地服从于Lambert定律,即漫反射光的光强仅与入射光的方向和反射点处表面法向夹角的余弦成正比. 由此可以构造出Lambert漫反射模型:Idiffuse = ...
- JS的事件汇总
一.前言 事件的绑定触发有很多种方法,我们如何选择呢? 很多时候,我们会使用鼠标事件,但是鼠标事件只能在PC设备上使用,当我们需要对不同设备兼容时怎么办呢? 二.正文 1. 事件的几个概念: 事件流: ...
- Unity3d 下websocket的使用
今天介绍一下如何在Unity3D下使用WebSocket. 首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目. WebS ...
- Unity3d收藏链接/ 小马哥视频
Unity3d视频教程下载链接: http://pan.baidu.com/s/1kVwFhrh 密码: v6c7 第一部分 https://pan.baidu.com/share/in ...
- oracle 中时间类型 date 与 long 互转
我们在保存时间到数据库时,有时候会保存long型的数据,固定长度是13位,是用当前时间减去1970-01-01,再换算成毫秒得到的结果. 但是要考虑到时区问题中国的时区时+8区所以时间要加上8小时 o ...
- 数字图像处理实验(总计23个)汇总 标签: 图像处理MATLAB 2017-05-31 10:30 175人阅读 评论(0)
以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...
- duilib界面库
xml编写界面库 notify控制程序 win32程序 winmain主函数 复杂控件自绘
- Siverlight MarkerSize 控制数据点半径大小 LineThickness 控制点与点之间直线的厚度
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...