自己开发通用图像标识符的上手指南!
你可能熟悉电视节目《硅谷》中"热狗"这一集,在这一集中演员们创建了一个应用程序来简单地(并且很有趣地)确定对象是不是"热狗"。现在这个应用程序不再是科幻小说般的存在的了。越来越多像Google Lens这样的应用已经扩展到到大多数现代智能手机上。如今,任何人都可以简单地用相机快速获取所需的信息。
同时,像Google Cloud Vision API、AWS Rekognition和Clarifai这样的服务不再仅局限于服务少数人。这些服务可让你以更少的代码实现更多功能。即便它不免费也深受大家喜爱。此外,它是一个通用的图像标识符,可能有不同的用例。
输入:TensorFlowJS
这是由谷歌大脑团队发布的JavaScript库,可为每个人带来机器学习。它最初是用Python、C ++和CUDA编写的 多亏了这个团队,他们将它移植到浏览器常用的JavaScript中。虽然TensorFlowJS与他的兄弟Python版本并不完全相同,但该库已经配备了必要的API以从头开始构建和训练模型,运行TensorFlow模型并重新训练原有模型,这一切都是浏览器的便利之处。
发现之路
来自不同来源的警告表明,如果你没有任何机器学习背景,TensorFlow将不会对你有所帮助。Python成为开发机器学习的首选语言,你似乎需要学习基础知识才能继续进行开发。这是作者遇到的众多障碍之一。但作者仍然决定创建自己的图像标识符。
警告:如果你没有任何机器学习基础,TensorFlow不适合你
第一步总是回到基础,阅读TensorFlowJS网站上的文档。起初它似乎相当简单,但作者错了,更多问题浮出水面,作者开始相信早前的警告信号。在深入研究TensorFlowJS之前,需要了解机器学习。即使在YouTube上搜索教程和参考资料也没有多大帮助。作者设法在本地机器上"创建"了一个图像分类器,但它是在Python中运行的。而作者要它像客户端一样,就像寻找表情符号一样。
找到了寻找表情符号的存储库并花费数小时对代码进行反向工程以满足作者的需求后,作者终于可以创建自己的图像分类器,并能够在客户端顺利运行。
认真对待
作者认为自己最大的障碍是在Python开发。作者最初是在Windows环境中开发的,设置起来很麻烦。但是当作者切换到Mac环境时,一切都很顺利。作者学到的最大教训是为系统提供了良好的数据。作者的同事告诉他,为了获得高准确度的结果,你必须提供良好的初始数据。
简单地理解机器学习是如何工作的一个形象的类比是,通过将图像比作一个2岁的孩子来进行教学,其中数据是一组图像,而2岁的是机器学习系统。例如,如果你想要孩子知道苹果是什么,你只能给孩子展示不同的苹果图片。图中没有其他的东西,没有其他的水果,没有其他的元素。在孩子看过一定数量的照片后,他们将能够知道在现实生活中什么时候会看到苹果。另一方面,如果你给孩子看一些苹果和橘子、苹果和香蕉、苹果和葡萄组合在一起的图片。当他们看到这些水果在一起时,孩子们就会感到困惑。
这种类比的寓意是,最初输入到机器学习的图像应该是对于不知道主题是什么的人和物来说很容易理解的。
PWA猜谜
“猜出这个谜语
从帽子里取出的随机谜语
当你知道答案时,请立即采取措施
如果你是对的,我会给你鼓掌"
作者的目标是设计出自己的图像标识符,并将其用于更好的用途。 The Riddle Me是一个PWA,它会向你展示你家中可以找到的普通物品的随机谜语。你的挑战是找到它的答案并拍摄照片。 如果你是正确的,你继续猜其他的谜语。如果你猜错了,那就继续猜下去吧。