首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

骑上我心爱的小摩托,再挂上AI摄像头,去认识一下全城的垃圾!

相机,要选就选最好的 检测方面我采用了一个常用且非常有效的对象检测神经网络:Yolo,阿姆斯特丹市的人工智能专家Maarten Sukel最近发布了这个网络的一个版本,专门训练识别垃圾箱、袋子和纸箱,这个系统作为我们相机软件的核心...垃圾的GPS坐标通过简单的gpsd接口从usb模块读取,将数据存储在Google Firestore实时数据库中,这样本地的Google firebase SDK就被用于客户端应用程序开发。...我们选择Ionic+Angular进行前端开发和谷歌的Firestore坐标实时数据库。...Firebase客户端SDK包括一个通用的API,可用于订阅客户端应用程序,以添加/更新/删除 Firestore数据库上运行在VespAI上的应用程序产生的活动。...当我们累积越来越多的垃圾图像时,我们将用这些图像用于进一步训练,以逐步获得更精确的检测。 后端改进。

10.3K30

我们弃用 Firebase 了

的确,纯从性能上讲,在 AWS/Azure/ GCP 上构建的定制化原生服务包优于 Firebase 套件。但是,当我们考虑到开发时间和维护成本时,Firebase 通常是一个合乎逻辑的选择。...Firestore 的文档 / 集合架构:它迫使人们仔细考虑数据建模。它还反映了一个直观的导航方案。 Firestore 中的关系数据也是如此。...我还注意到,无法在 Firebase Storage 仪表板上下载文件了;必须导航到单独的 GCP 平台。 我无法在 Firebase 仪表板上下载这个文件。...对于这个问题,K-Optional Software 几乎在同一时间收到了多个关于项目(不是我们的项目)的咨询请求,一切都表明,是 API 的突然变化造成了麻烦。...我考虑了以下两种变通方法: 使用单个基于事件名称调用条件逻辑(如使用事件分派器)的 Cloud Function。

32.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

    当我使用云机器学习引擎时,我可以利用GPU(图形处理单元)进行更快地训练。有了这种处理能力,就可以开始训练了,然后把模型训练的几个小时交给TSwift。...添加MobileNet校验文件进行进行学习 我不是从零开始训练这个模型,所以当我进行训练时,我需要使用预训练模型。...首先,在我的Swift客户端中,我添加了一个按钮,供用户访问设备照片库。用户选择照片后,会自动将图像上载到云端存储: ? 接下来,我编写了上传到我的项目的云存储触发的Firebase数据库。...最后,在我的iOS应用程序中,可以监听图像Firestore路径的更新。如果检测到,我会下载图像,并与检测分数一起显示在应用程序中。这个函数将替换上面第一个Swift代码片段中的注释: ?...在我的函数中,我向Firestore写预测元数据。

    14.9K60

    Vue.js + Node.js + Express + MySQL示例:构建全栈CRUD应用程序

    ,我将向您展示如何构建一个全栈(Vue.js + Node.js + Express + MySQL)的CRUD应用程序示例。...在这个页面中,你可以: 使用Publish/UnPublished按钮将状态更改成Published/Pending 使用Delete按钮从MySQL数据库中删除对象 使用Update按钮更新数据库中对象的详细信息...Node.js Express导出REST API,并使用Sequelize ORM与MySQL数据库进行交互。 Vue客户端使用axios发送HTTP请求并获取HTTP响应,在组件中使用数据。...接下来,我们在models/index.js中添加MySQL数据库的配置,在models/tutorial.model.js中创建Sequelize数据模型。 controller中的教程控制器。...在tutorial.routes.js中处理所有CRUD操作(包括自定义查找器)的路由。

    25K21

    如何用TensorFlow和Swift写个App识别霉霉?

    打个比方,小孩子在刚开始学说话时,父母会让他们学习说很多东西的名字,如果说错了,会纠正他们的错误。比如,小孩第一次学习认识猫咪时,他们会看着爸妈指着猫咪说“猫咪”。...训练模型时,这些文件全都要用到,所以我把它们放在 Cloud Storage bucket 中的同一 data/ 目录中。 在进行训练工作前,还需要添加一个镜像文件。...在我的 train/bucket 中,我可以看到从训练过程的几个点中保存出了检查点文件: ? 检查点文件的第一行会告诉我们最新的检查点路径——我会从本地在检查点中下载这3个文件。...首先,在这个 Swift 客户端中我添加了一个按钮,让用户可以访问手机相册。...iOS 应用中我可以获取照片更新后的 Firestore 路径。

    12.1K10

    超实用!50+个ChatGPT提示词助你成为高效Web开发者(上)

    从初学者学习概念到准备面试,你将找到一切你需要的东西,使得AI成为你作为Web开发人员的不二之选。 然而,在探索这个令人兴奋的AI驱动的Web开发世界之前,首先要了解ChatGPT的局限性。...easier to read and understand: [code snippet] 提示:简化复杂条件语句,并使其更易于阅读和理解:[代码片段] 六、Bug检测和修复 作为开发人员,我们知道很难在代码中捕捉到所有的错误...提示:我在以下代码片段中遇到了错误[error],我该如何修复它?...Supabase使用的是PostgreSQL,这是一种关系数据库,与Firebase的Firestore(一种NoSQL数据库)不同。 a....JSON样本时,我们通常包括产品的一些关键信息,如id、名称、描述、价格、库存数量、图片URL等。

    94921

    泄露2.2亿条数据,谷歌Firebase平台数据库被100%读取

    包含已曝光用户记录样本的数据库 来源:xyzeva 所有详细信息都整理在一个私人数据库中,该数据库提供了公司因安全设置不当而暴露的用户敏感信息的数量概览: 姓名:84221169 条(约 8400 万条...在 Firestore 数据库中,如果管理员设置了一个名为 ‘password’ 的字段,并将密码数据以明文形式存储在其中,那么用户的密码就有可能暴露。...在一个管理着九个网站的印尼赌博网络的案例中,当研究人员报告问题并提供修复指导时遭到了嘲讽。...研究人员在报告Firebase问题时遭遇嘲讽 来源:xyzeva 巧合的是,该公司的银行账户记录(800 万条)和纯文本密码(1000 万条)被曝光的数量最多。...研究人员在配置错误的数据库中发现的记录总数为 223172248 条(约 2.23 亿条)。其中,124605664 条(约 1.24 亿)记录与个人用户有关;其余记录代表与组织及其测试相关的数据。

    22110

    Flutter 移动端架构实践:Widget-Async-Bloc-Service

    然而,在构建完成并将它们一次次的重构之后,我调整出了一种在我所有项目中都能够运行完好的开发体系,因此,在本文中,我将介绍一种我定义的新的架构模式: 从现有的开发模式中借鉴了很多思想; 调整它们以满足实际开发...数据层 在数据层中,我们可以定义 局部 或 全局 应用程序的状态,以及修改它的代码。 这是通过业务逻辑组件(BLoCs)完成的,这是在2018 DartConf时首次引入的模式。...[image] 我将在稍后的一些文章中更详细地讨论如何使用Provider。 目前为止,我强烈推荐Google IO大会上的这个演讲: https://www.youtube.com/watch?...当更新app本地的状态(例如,将状态从一个控件传递到另一个控件中)时,BLoC有更简单的替代方案,这个后文再提。...无论如何,我发现BLoCs在使用Firestore构建app时效果非常明显,其中数据通过流从后端流入app。 在这种情况下,通常将流进行组合或使用RxDart对其执行转换,BLoC很擅长这个。

    16.1K20

    2021年11个最佳无代码低代码后端开发利器

    重复性任务的自动化可以节省大量的时间并减少错误率。在Airtable基础中建立自动化工作流程是通过使用自定义动作来触发一个事件。最终,该动作整合到了Airtable基地内部。...非关系型或NoSQL数据库有动态模式。它们以文件的集合或多个集合的形式存储数据。 在使用Supabase时,你将在其图形用户界面(GUI)中度过大部分时间。...它还提供了一个SQL编辑器,你可以用它来编写自定义的SQL查询,以操作表中的数据。 最令人喜欢的特点之一是,它在创建数据库时就提供了一个随时可用的REST API。...Firebase Firestore是谷歌的一个数据库服务。尽管Firestore在两年前才推出测试版,但它已经拥有一个巨大的社区。它是一个管理数据库,旨在支持无服务器应用开发。...这种数据库类型的优势在于,它可以帮助你在构建应用程序时快速移动。 Firestore有自己的内置安全系统。它可以帮助你定义规则,允许应用程序用户根据他们的认证状态来访问数据。

    12.6K20

    Go之Viper

    = nil { // 处理读取配置文件的错误 panic(fmt.Errorf("Fatal error config file: %s \n", err)) } 在加载配置文件出错时,你可以像下面这样处理找不到配置文件的特定情况...在使用ENV变量时,需要注意的一件重要事情是,每次访问该值时都将读取它。Viper在调用BindEnv时不固定该值。...而不是从pflag检索值 在 Viper 中使用 pflag 并不阻碍其他包中使用标准库中的 flag 包。...Viper使用crypt从K/V存储中检索配置,这意味着如果你有正确的gpg密匙,你可以将配置值加密存储并自动解密。加密是可选的。...注意 当我们需要将viper读取的配置反序列到我们定义的结构体变量中时,一定要使用mapstructuretag 序列化成字符串 你可能需要将viper中保存的所有设置序列化到一个字符串中,而不是将它们写入到一个文件中

    6.4K101

    随机检索和随机存取

    随机检索和随机存取 随机检索 检索是用来对数据进行查找的方式,在介绍随机检索之前,首先要引入顺序检索 顺序检索: 顺序检索,也称线性检索,它的查找顺序是固定的,如顺序表。...一般是从第一个元素开始,依次检查每一个元素,直到找到目标元素或搜索完整个数据集。...(当然也可以不是从第一个元素开始) 随机检索: 随机检索,与顺序检索不同,随机检索的查找顺序不固定,同时不需要依次搜索所有元素 随机查找的最大特点是通过比较来判断下一个要查找的位置,典型的例子有...:二分查找,B树 下一个结点可能出现在当前结点的左子树(前驱节点) or 右子树(后继结点),这就是随机性的体现 随机存取 相比很多人在第一次接触到这个名词时都被困惑过,其实主要是因为翻译的问题 随机存取...(更精确翻译我觉得应该就是 直接访问) 指能够从可寻址元素的集合中访问任何数据项,与任何其他方式一样容易和有效地进行存取 ​ 通俗易懂的来说就是可以通过下标直接访问 ,与存储位置无关,例如数组。

    9610

    Serverless单体架构的崛起

    当我还是一个年轻的程序员时,开始编写一个简单的代码库,我们可以称之为单体应用。 我记得为前端编写了一些HTML/CSS,后端用了一些Java。...数据库,也称为数据库及其查询机制。 从熟悉的模式中,我们已经拥有合适的技术栈: 前端框架(Angular、React、Vue、Svelte 等) 使用适当技术的 BFF(简单的 REST API?...它是一个带有内置后端的数据库,具有许多许多功能(我觉得“许多”这个词写得还不够)。作为一个真正的多模型数据库,并且有一种新的查询语言,他们能够提供应该让你写一些代码的功能。...这个工具箱可以解决我们通常遇到的约束,比如: 太庞大以至于无法失败,一个简单的错误可能会导致整个服务崩溃。 长时间部署,编译大型项目通常需要很长时间。 无法跨团队隔离和共享的单一代码库。...我们还没有提到的一个不可避免的需求是数据库脚本迁移。当然,这些脚本需要存储在单独的仓库中,没有什么复杂的。

    35210

    启用Windows防火墙后,FTP传输非常慢

    我还注意到,当我禁用Windows 2003防火墙时,命令行FTP突然变得更快,并且达到与FileZilla相同的速度。因此,似乎我有一个变通办法,在传输之前和之后禁用/启用防火墙。...但是经过广泛的谷歌搜索之后,这似乎并不是一个普遍的问题,而且我感到某些地方的配置错误。谁能阐明为什么禁用防火墙才能如此迅速地提高速度?为什么FileZilla比命令行FTP更快(启用防火墙时)?...从Sysinternals(Microsoft)下载Process Monitor。在该程序中,仅选择“显示网络活动”(左上栏中的按钮)检查数据包并找到FTP数据包。...server1.domain.com:12345 -> server2.domain.com:21右键单击进程名称,然后选择包括以添加正在运行ftp的进程。在没有防火墙的情况下测试ftp传输器。...100GB数据从深圳传输到新疆(传输时间为2小时18分),镭速可以加速完成文件传输比大多数TCP软件执行效率更高的速率。

    77300

    Golang DDD中的 Domain Service

    然而,在使用 Go 时,通常对整个应用程序使用域服务的单个实例。因此,当多个客户端访问内存中的相同值时,必须考虑后果。...每当我们打算进行新的存款时,我们都会执行应用逻辑Bonuses,然后将其添加到最终结果中,最终结果就是服务内部的一个字段。这种方法是错误的,因为它会导致每次有人存款时总额都会被修改。...这意味着将与外部 API 或数据库的集成直接纳入我们的业务逻辑被视为代码异味。 这就是领域服务发挥作用的地方。在领域层,我总是为服务提供一个接口作为外部集成的契约。...每当我需要在会话中缓存某些内容并利用域服务作为数据检索的后备时,我都会采用这种方法。您可以在上面的示例中观察到这种方法。...在此示例中,AccountSessionService用作应用服务,包含域层的功能AccountService。它的职责是从会话存储中检索值,然后利用它来Account从底层服务中检索详细信息。

    10910

    Flutter 2.8正式版发布了,还不来看看

    这意味着你可以在 Web 应用中拥有多个 HtmlElementView 实例而不会降低性能,同时还可以减少使用平台视图时的滚动卡顿。...但类似实时数据库 (Realtime Database)、分析 (Analytics)、远程配置 (Remote Config) 等 FlutterFire 插件已经在生产环境中可用了,可以选择试试看!...另一个支持是在 FlutterFire 文档中直接内嵌了 DartPad 实例,比如 Firestore 的示例页面: 在这个示例中,你将看到 Cloud Firestore 的文档以及 示例应用 的代码...Firestore ODM 文档 中阅读相关内容。...当我们在未来几个月停用 dev 渠道时,请考虑使用 beta 或 master 渠道,这取决于你对变更的容忍度以及对使用「最新」还是「最好」的平衡点。

    22.4K30

    Flink中可查询状态是如何工作的

    我们首先看看当我们使状态可查询以及何时查询时,在 Flink 内部的整体步骤。 1. 使状态可查询 假设我们已经创建了一个具有可查询状态的 Pipeline 并通过 JobClient 提交了作业。...下图显示了 Flink 内部发生的事情: image.png 我希望这个图是不言自明的,但总而言之,一旦提交了 Job,JobManager 就会从 JobGraph 构建 ExecutionGraph...在创建任务实例时,会创建 Operator,如果发现 Operator 是可查询的,则对 Operator 的 ‘状态’ 的引用将保存在 KvStateRegistry 中,并带有一个状态名称。...然后客户端打开与 KvStateServer 的连接并使用 KvStateID 从注册表中获取状态。检索到状态后,将提交异步查询以从给定键的状态中获取值。得到的结果被序列化并发回客户端。...同时,状态在处理过程中作业会不断更新,因此客户端在查询时总是可以看到最新的状态值。

    2.3K20

    编写高效SQL的三个基础原则

    数据库中的表构成了数据驱动应用程序的基础。处理一个混乱的模式,其中充满了令人困惑的名称和数据缺陷,是一项挑战。在名称清晰且数据干净的表上构建可以简化您的选择。...在本文中,我将通过为表命名并通过规范化和约束避免数据错误,为高效的SQL编写奠定基础。 本系列的第二部分将介绍如何构建SQL以使其更易于阅读和调试。因此,让我们首先了解如何奠定基础。...虽然您可以重命名它们,但您必须同时将所有代码更改为新名称。在大型代码库中,这是不切实际的。 那么,如果您正在使用一个充满神秘名称的模式,该怎么办?您是否永远被困住了?...规范化您的模式 数据库规范化是从表中删除冗余信息的过程。这避免了数据重复,并使某些类型的数据错误成为不可能。 使用规范化数据意味着您将花费更少的时间来处理数据质量问题,例如查找和删除重复行 。...与主键不同,您可以在唯一列中存储空值,并且一个表可以有多个唯一约束。外键: 定义父子关系。外键指向子表中的列到父表中的主键或唯一约束。有了这个,您就不能拥有孤立的行。

    8510
    领券