Google All in AI 都做了什么?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://csdnnews.blog.csdn.net/article/details/90709246

640?wx_fmt=gif

【CSDN 编者按】Google 这家成立于 1998 年的公司,起于互联网搜索引擎,其 Android 是移动操作系统当之无愧的霸主,不满足于语音识别+搜索,而从 2016 年开始了真正意义上的人工智能起点,到如今真正地 All in 了 AI,更是在学术和应用上两面开花。那么,Google 在 AI 上究竟都实现了什么?我们或许可以从前不久的 Google I/O 上一窥究竟。

640?wx_fmt=jpeg

作者 | 王玉成

责编 | 唐小引

封图 | CSDN 付费下载自东方 IC

出品 | CSDN(ID:CSDNnews)

很幸运今年又再一次来到 Google I/O 现场,会场仍然在离 Google Complex 不远的海岸圆形剧场。会议开始之前,主会场人头攒动,各种欢呼声,结伴照相的声音此起彼伏,恍若入了庆典的海洋。这三天的会场万里睛空,除了在 Keynote 中某个团体开着飞机拉横幅之外,基本上没有出现其他干扰。由于 Keynote 的一些图片已经满天飞大家也看到了许多,笔者就现场抓拍了 Google Brain 的老大 Jeff Dean 出场的画面。

640?wx_fmt=jpeg

这应该是这位大佬,为数不多的在 Google I/O 出场的场景。

既然各个 Session 的全程视频网上都有,那我就专注于 Google I/O 大会 AI 相关的展台,今年的 ML 相关的展台也设的比较特殊,就在会场入口不远处。

整个 I/O 的标志是 I/O Lankmark 的位置,而 AI 相关的展厅便是附近的 G 位置,得天独厚。我在第二天的下午,就跑到 AI 相关的展台,去看看里面倒底有什么。

所有的展厅外面都是搭的帐篷,ML+AI 放在一个展厅,用最醒目的大红色加以标注。

640?wx_fmt=jpeg

 

640?wx_fmt=png

Google AI Research

 

进门右拐,可以看到 Google AI Research 的展位。人工智能发展到今天,数据越来越重要,谁掌握了数据,谁就能够做出更好的 AI 模型,数据是人智能的食粮。大公司可以以数据取胜,那么,对于众多开发者,探索人工智能如何落地的工程师,如何得到有效的数据呢?Google AI 搜索主要解决数据集的问题,让你免费获得可以公开的数据集。

640?wx_fmt=jpeg

我们知道,Google 最强有力的武器便是它的搜索工具,便携,好用。而且不会出现各种诈骗信息。那么,Google 对于数据集专门出了一个搜索通道,会加速 AI 的学习使用。

附数据专项搜索引擎的地址:

https://toolbox.google.com/datasetsearch

我们以 students 为关键字,查找一下数据。打开页面为:

https://toolbox.google.com/datasetsearch/search?query=students&docid=aTkZB%2F0%2F6kN6Bq6AAAAAAA%3D%3D

整个结果页面如下:

640?wx_fmt=png

总共搜出了超过 100 个数据集。我们就从第一个数据集 kaggle 来看一下,搜出了什么样的结果:

  • 通用属性,告诉我们一份关于中学生的社会、性别的学习数据,可以看出酒精消耗程度。然后我们拿到这些数据的详细信息,包括来源网站、上传日期、数据来源、许可、可下载的文件格式。

  • 数据详继描述,说明了这份数据可以用来预测学生的最终级别。在描述中,共有 30 个数据域,把每一个域的数据的意义,标识都解释的一清二楚。

完全是妥妥的一份完全数据清洗之后的数据嘛。可以拿来直接用了。

一个搜索引擎,做这么贴心。真的很不容易,是不是需要感动一下?

 

640?wx_fmt=png

AI on Edge

 

640?wx_fmt=jpeg

上面这张照片所显示的是一个 Edge 端的 Demo 演示,整个演示过程如下:

有一个上面带有数字标记的圆盘,圆盘编号从 1 到 8.先把圆盘投到右边的斜槽上,圆盘滚动到最右边,然后用带摄像头的 Edge TPU 去识别圆盘上的数字,如果识别完之后,自动的转动右边的黑色大的圆圈中的白色的通道,使得这个通道连通最下面用数据标识的槽。然后带数字的圆盘就会掉落到对应数字的槽中。

左边是一个显示器,显示器展于从 1,2,3,4,5,6,7,8 这 8 个数字的圆盘的识别情况,照片正好识别的数字 1 的情况,我们能够看到显示屏的浏览器中,这个 Demo 的名称为“Vision Intelligence with AutoML and Edge TPU”。 用 AutoML 和 Edge TPU 实现视觉智能。

我起初觉得就是用 Edge TPU 实现简单的数字分类,难度在于圆盘识别的数字可能是歪的,需要调正,然后再识别。但是展台工作人员告诉我,这个 Demo 完成了两个功能,一个功能是识别数字,打开对应通道,另一个功能是检查圆盘有没有破损情况,如果有破损,那么会标记出来,在显示屏上会显示”break”。相当于是 2 个 AI 模型共同工作,得出的结果。

即使只是一个小小的 Demo,但背后的技术含量还是很高的。

那么,让我们的思绪乱飞一会儿,这样的 Demo 有什么样的实际应用场景?而且我们用不同的 AI 模型相互搭配、乱入,可以获得什么奇妙的应用场景呢?欢迎留言讨论。

 

640?wx_fmt=png

Custom&Pre-Trained Models

 

640?wx_fmt=jpeg

Custom&Pre-Trained Models 这个展台实际上向我们展于,我们在视频中,实时识别的数据,我们可以做什么样的处理,达到我们想到的结论。再补上一张图:

640?wx_fmt=jpeg

这张图也是这个展台中的,相当于用这个模型,可以分灯出人、飞机、汽车等一些对象。如果是摄像头处理的视频流,那么,可以用时间记录下来,在时间轴上,什么时间识别出了什么样的物体?这个类型的识别,更能够用于人口流量的统计等场合。比如一个十字路口,每一秒,每一天过了多少人?如果人流量太大,可以做一些分流。

 

640?wx_fmt=png

Dance Like

 

这应该是具有互动性的一个展台了。

640?wx_fmt=jpeg

这个展台实际上想展示 AI 在舞蹈方面的应用。首先站在背景的男士,可以看到他的对面有一个显示器,显示器上是一个舞蹈老师在跳舞。我们学舞蹈时,也会这样做,前面有一个老师,现场教学。在前面,观众可以看得到的显示器有两个画面,左边的画面是真实的跳舞的人的动作。右边的画面是舞蹈老师和跳舞的小伙子重叠的影像。而且能够实时的看到姿势的差异。我们用另一张图片展现一下。

640?wx_fmt=jpeg

这张图片就更明显了,在这个时间点上,后面跳舞的帅哥是正面稍微下蹲的姿势,但是老师是摆腿的姿势,完全不一样。对于学习跳舞来说,这是一个很好的产品。但是我突然有种不好的感觉。这个产品对于人的模仿能力,是极大的考验啊。这完全是用 AI 跟人在磨啊,AI 吊打人类啊。

 

640?wx_fmt=png

总结

 

这次的 I/O 之行,听了很多演讲,主要在 AI 的展厅实地观摩了一翻,还有一些 AI 展台没有介绍。但是上面这四个展台给我的印象特别深。对于数据处理,结论分析,实际的应用场景,都有展示。可以说,展台产品涉及到 AI 从数据到实际产品的几个主要环节,对于开发者,公司运用 AI 提供了特别好的示例。随着 AI 的应用越来越广泛,相应的落地应用会越来越多。

作者简介:王玉成,IoT GDE(Google Developer Expert),目前创业,专注于利用 AI 和 IoT 等技术,加快产业或者公司的产能优化,提高公司的生产效率。从 2014 年开始参加 Google I/O 大会,历经多届 I/O,对于技术发展感触颇深,坚定的 Google 技术爱好者。

一套视频带你入门人工智能

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

 

【END】

640?wx_fmt=jpeg

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

IEEE 回应禁止华为系审稿人;Wi-Fi 联盟等恢复华为成员资格;Angular 8 正式发布 | 极客头条

Swift 势必取代 Python?

CIO,马上就没有线下灾备了,不要做最后一个

☞直接拿来用!灵跃模组机器人硬核评测(编程篇)

华为在美提起诉讼:禁令是暴政

容器云常见安全威胁与防范 | 技术干货

☞数据可视化,还在使用Matplotlib?Plotly,是时候表演真正的技术了(附代码)

学术界“失守”:IEEE禁止华为员工参与审稿,学界抗议美政府

Facebook 发币, 输给了老年人?

☞敲代码时,程序员戴耳机究竟在听什么?

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

展开阅读全文

这个函数都了什么?

10-01

HBITMAP MakeImage(HBITMAP hBitmap)rnrn HBITMAP hNewBmp;rnrn if (hBitmap)rn rn HDC hBufferDC = CreateCompatibleDC(NULL);rn HGDIOBJ hPrevBufObject = SelectObject(hBufferDC, hBitmap);rnrn HDC hDirectDC = CreateCompatibleDC(NULL); // DC for working rn if (hDirectDC)rn rn BITMAP bm;rn GetObject(hBitmap, sizeof(bm), &bm);rn BITMAPINFO bmInfo; rn ZeroMemory(&bmInfo,sizeof(bmInfo));rn bmInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);rn bmInfo.bmiHeader.biWidth = bm.bmWidth;rn bmInfo.bmiHeader.biHeight = bm.bmHeight;rn bmInfo.bmiHeader.biPlanes = 1;rn bmInfo.bmiHeader.biBitCount = 32; rn UINT* ptPixels; rn HBITMAP hDirectBitmap = CreateDIBSection(hDirectDC,rn (BITMAPINFO*)&bmInfo,rn DIB_RGB_COLORS,(void**)&ptPixels, NULL, 0);rn if (hDirectBitmap)rn rn // 将hDirectBitmap放入hDirectDC中处理rn HGDIOBJ hPrevBufDirObject = SelectObject(hDirectDC, hDirectBitmap);rn // 当前将原hBitmap即屏幕的所有像素写入到hDirectDCrn BitBlt(hDirectDC,0,0,bm.bmWidth,bm.bmHeight,hBufferDC,0,0,SRCCOPY); rnrn int nSize = bm.bmWidth * bm.bmHeight;rn for (int i=0; i>16;rn int iSrcG = (ptPixels[i]) & 0x0000ff00 >> 8;rn int iSrcB = (ptPixels[i]) & 0x000000ff;rn rn ptPixels[i] = RGB(iSrcR,iSrcG,iSrcB);rn rn SelectObject(hDirectDC,hPrevBufDirObject); rn hNewBmp = hDirectBitmap;rn rn DeleteDC(hDirectDC);rn rn SelectObject(hBufferDC, hPrevBufObject);rn DeleteDC(hBufferDC);rn rn return hNewBmp;rnrnrn我感觉这个函数应该什么也没有改变啊!为什么会返回一个灰度化的一个位图呢? 论坛

SYSGEN 的时候都了什么操作

01-18

对于public目录下的东西一直感觉很神秘,今天仔细看了下touch相关的部分:rn有说错的地方请纠正,不胜感激。rn======================================================================================================rn1.在\WINCE600\PUBLIC\COMMON\OAK\DRIVERS 目录下有有个TOUCH目录,里面又分BASIC,TCHMAIN,TRNSCRBR三个目录rn 我们分别查看这三个目录中的sources文件发现BASIC里面要产生一个tchbasic.lib,TCHMAIN里面要产生一个tchmain.lib,rn TRNSCRBR里面要产生一个tch_trns.lib;我们在命令行下把目录切换到\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\TOUCH目录下rn 键入“build -c”在\WINCE600\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL目录下可以找到sources文件指定要生成的相的.librn 文件。rn2.SYSGEN 的过程我不是很熟悉,看过一些log,应该就是把\WINCE600\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL目录下的rn .lib文件都拷贝到WINCE600\OSDesigns\S3C2440A\S3C2440A\Wince600\Traveler_ARMV4I\cesysgen\oak\lib\ARMV4I\retailrn 目录下面吧(懂的更多的请不吝赐教),但是我在这个目录下面已经找不到tchmain.lib文件了,而且好像多了tchmdd.librn 不知道这个tchmdd.lib是在什么地方定义生成的。rn3.看了下SYSGEN的log,发现这个一个片段:rn ------------------------------------------------------------------------------rn TARGETNAME: tchmddrn TARGETTYPE: LIBRARYrn RELEASETYPE: OAKrn TARGETLIBS: rn SOURCELIBS: D:\WINCE600\public\common\oak\lib\ARMV4I\retail\tchmain.lib rn D:\WINCE60\public\common\oak\lib\ARMV4I\retail\tchbasic.librn DLLENTRY: CoreDllInitrn makefile.def: Including D:\WINCE600\public\common\oak\misc\Sources.defaultrn makefile.def: BUILDROOT is D:\WINCE600\public\common\cesysgenrn makefile.def: Including D:\WINCE600\PUBLIC\COMMON\CESYSGEN\sourcesrn makefile.def: Including D:\WINCE600\public\common\oak\misc\Sources.CErn Directory: D:\WINCE600\PUBLIC\COMMON\CESYSGENrn --------------------------------------------------------------------------------rn 貌似是把tchmain.lib和tchbasic.lib合并成了tchmdd.lib放入了rn \WINCE600\OSDesigns\S3C2440A\S3C2440A\Wince600\Traveler_ARMV4I\cesysgen\oak\lib\ARMV4I\retail 目录rn 若要生成DLL文件就相应的放入rn \WINCE600\OSDesigns\S3C2440A\S3C2440A\Wince600\Traveler_ARMV4I\cesysgen\oak\target\ARMV4I\retail 目录rn 在什么地方定义了tchmain.lib和tchbasic.lib合并成tchmdd.lib呢? 论坛

没有更多推荐了,返回首页