---
title: 利用人工智能技术，结合Altova MapForce进行数据库图像分类
date: 2023-07-31
categories:
  - data-integration
  - database-mapping
  - tools
tags:
  - ai
  - artificial-intelligence
  - data-mapping
  - database-mapping
  - mapforce
description: 基于人工智能的数据集成技术与MapForce结合，可以完全自动化地生成和将人工智能生成的标签插入数据库，并且具有高度的可扩展性。
---
Status: #blog

Tags:  #ai #artificial-intelligence #data-mapping #database-mapping #mapforce

Categories: [data-integration](/blog/zh/category/data-integration.md) | [data-integration](/blog/zh/category/data-integration.md) 
# 利用人工智能技术，结合Altova MapForce进行数据库图像分类

人工智能在我们的日常生活中应用广泛，其中最常见的例子之一就是人脸识别技术。人脸识别是指根据一个人的面部特征来识别或验证其身份的过程。人脸识别技术被广泛应用于各种场景，例如使用Face ID解锁手机、在社交媒体平台如Facebook上标记朋友、以及在机场或酒店使用生物识别扫描仪进行身份验证。人脸识别技术可以使我们的生活更加便捷和安全，但同时也可能引发一些隐私和伦理方面的担忧。例如，我们如何确保我们的面部数据不会被黑客或恶意行为者滥用或窃取？我们如何防止人脸识别技术被用于监控或歧视？我们如何确保人脸识别技术是准确和公正的，并且没有偏见或错误？

以上段落是由[ChatGPT](https://www.bing.com/ck/a?!&&p=0ed506ef90d7a915JmltdHM9MTY4NzgyNDAwMCZpZ3VpZD0wNGJiZTc1My05OWRhLTY2YzAtMDRjNi1mNjAzOThiZDY3MTkmaW5zaWQ9NTI0Mg&ptn=3&hsh=3&fclid=04bbe753-99da-66c0-04c6-f60398bd6719&psq=chatgpt&u=a1aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2hhdEdQVA&ntb=1)根据我的请求生成的，旨在描述人工智能的益处和风险，并包含一个实际案例。 值得注意的是，ChatGPT选择了Face ID作为案例，因为Face ID只是图像分析的一种形式，而基于人工智能的图像分类技术具有自动化许多实际任务的潜力。

一个常见的应用场景是产品目录，在这种情况下，一家公司需要管理来自众多不同制造商的产品信息。数据库中存储的产品可能只有一个名称，而这个名称不一定包含对该产品的精确描述。例如，“wellington”是一种靴子，“fedora”是一种帽子，“mongoose”是一种自行车，“yellow watermelon shiny needlefish”是一种鱼饵。我们可以利用人工智能驱动的图像分类技术，例如使用[Microsoft Azure Cognitive Services 计算机视觉 API](https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts-sdk/image-analysis-client-library?tabs=windows%2Cvisual-studio&pivots=programming-language-rest-api)来解决这个问题。计算机视觉服务以图像数据或URL作为输入，并返回关于图像内容的信息。其中一项服务会根据Azure AI经过训练的、包含可识别的物体、生物、风景和动作的训练数据集，生成图像分类标签。这些标签可以帮助我们对数据库中的产品进行分类，甚至可能与用户在搜索产品时使用的搜索词相对应。

![一张装饰性图像，描绘了一个人工智能的“大脑” ](/blog/images/blog_MF_AI.jpg)

<!--more-->

我们可以使用基于人工智能的数据映射工具 [Altova MapForce](https://www.altova.com/zh/mapforce)，通过其Web服务API将产品图片发送到计算机视觉人工智能系统。Altova MapForce是一款屡获殊荣的图形化数据映射工具，可用于任何类型的数据转换和集成。计算机视觉API利用人工智能技术分析每张图片，并返回一个标签列表。MapForce可以直接在映射过程中使用Web服务，然后可以将这些标签插入到数据库中，专门用于每个产品的字段中。此外，还可以进行中间结果处理或链式数据映射，从而实现更复杂的数据处理流程。

这种基于人工智能的数据映射技术可以完全自动化地生成和插入人工智能生成的标签，用于产品目录。人工智能生成的标签会附带一个置信度评分，这使得在数据映射过程中，可以轻松设置一个阈值，只使用置信度足够高的标签。

我们首先使用一个小型数据库，其中包含常见的户外休闲产品。我们使用 [Altova DatabaseSpy](https://www.altova.com/zh/databasespy) 软件，为产品表添加了一个字段，用于存储人工智能标签。DatabaseSpy 可以连接到所有主流数据库，从而简化 SQL 编辑、数据库结构设计、内容编辑以及数据库转换，而且其成本仅为单数据库解决方案的一小部分。以下是一个 DatabaseSpy 查询结果窗口，显示了数据库内容以及新增的空白字段。

[![产品目录的示例数据库](/blog/images/sample-database.png)](sample-database.png)

以下是示例产品图片的缩略图，它们以随机顺序排列

[![产品目录中的图片，与数据库分开存储。](/blog/images/products.png)](products.png)

我们还使用了DatabaseSpy工具，用于验证一个简单的SQL查询，该查询用于检索表的主键（即id）以及对应的图像文件名。

[![基于人工智能的数据库图像分类数据映射的SQL查询结果](/blog/images/mapping-query-result.png)](mapping-query-result.png)

SQL查询是基于人工智能的MapForce数据映射的第一项输入，它包含三个主要部分：查询结果、Azure图像分析API的请求，以及一个SQL脚本，用于将API的响应结果重新写入数据库。

[![人工智能数据库图像分类数据映射的全面概述](/blog/images/mapping1-1030x317.png)](mapping1.png)

现在，让我们更详细地了解一下对人工智能API的请求：

### 将SQL查询结果作为数据映射的输入源

[![基于人工智能的数据库图像分类数据映射的输入部分](/blog/images/mapping-left-side-1.png)](mapping-left-side-1.png)

该“Select”查询会生成一个数据表，本质上是一个关键编号和对应图像文件名列表。但是，API接口一次只能接收一个图像的请求。通过将查询结果中的ID与API组件顶部的“envelope”关联，我们为每个返回的ID生成一个新的API调用，从而遍历列表中的每个图像。从ID出发，连接到图像右上角的另一条线，将在稍后用于构建一个SQL更新脚本。

数据库表的设计者选择通过文件名引用产品图片，而不是将二进制图片作为 BLOB 对象存储在数据库中。人工智能图像分析 API 既可以接受原始图像数据，也可以接受指向公开可访问图像的 URL，因此我们可以在请求中直接提供图像的 URL。 上方居中的 "concat" 函数的作用是拼接路径，从而构建完整的 URL。

**执行人工智能网络服务请求**

AI驱动的数据映射的核心部分展示了Web服务的功能，该功能调用人工智能图像分析API，并对返回的结果进行进一步处理

[![基于人工智能的数据库图像分类数据映射的Web服务功能和后续处理](/blog/images/mapping-center.png)](mapping-center.png)

请注意，在Web服务功能的请求端和响应端，都显示了一个标有“Body”（正文）的图标。该API要求请求的正文部分是一个JSON对象，并且规定响应将是一个JSON文档。正文图标旁边的蓝色和红色按钮会打开一个对话框，用于提供请求和响应的结构定义。

[![定义基于人工智能的数据库图像分类网络服务的功能结构](/blog/images/request-structure-dialog.png)](request-structure-dialog.png)

人工智能API的响应需要进一步处理。标签以JSON对象的列表形式返回，并且每个标签都伴随着一个数字，该数字表示准确性置信度，以百分比表示。以下是一个示例。这是AI对雨伞图像的原始JSON格式响应：

[![以下是一个基于人工智能的数据库图像分类网络服务返回的原始响应示例](/blog/images/response-1.png)](response-1.png)

高级过滤器会筛选响应，只接受置信度达到88%或以上的标签。 接下来，字符串连接函数将这些标签组合成一个以逗号分隔的字符串。 请注意，上面“rain”（雨）标签的置信度显示为42%。

以下是我们要应用到数据库中“伞”这一产品上的字符串，该字符串是在提取了我们需要的标签之后得到的

[![从上述回复中提取的标签字符串，用于数据库更新](/blog/images/response-2.png)](response-2.png)

### 根据人工智能的回复生成 SQL 更新语句

基于人工智能的数据映射的右侧部分接收每个处理后的结果，将结果与正确的数据库ID索引相关联，并将标签字符串映射到“cat-products”数据库表的“ai-tags”字段中。

[![创建SQL更新语句，以完成基于人工智能的数据库图像分类数据映射](/blog/images/mapping-right-side.png)](mapping-right-side.png)

### 人工智能数据映射结果分析

位于 MapForce 主映射面板下方的“输出预览”按钮，可以让我们查看一个示例结果。它会执行完整的映射过程，从最初的 Select 查询开始，执行 API 请求，处理人工智能结果，最终生成 SQL 更新语句，从而创建一个完整的 SQL 更新脚本

[![由基于人工智能的数据库图像分类数据映射生成的数据库更新脚本](/blog/images/update-script.png)](update-script.png)

我们可以通过 MapForce 主菜单中的“运行 SQL 脚本”选项来执行脚本，并交互式地应用数据库更新。或者，我们现在可以将此映射部署到网络中的一个 [MapForce Server](https://www.altova.com/zh/mapforce-server) 实例，从而以自动化方式执行它，作为将新产品导入目录的工作流程的一部分。使用 [FlowForce Server](https://www.altova.com/zh/flowforceserver)，我们可以定义一些触发器，这些触发器可以自动处理传入的数据，对其进行验证，然后执行基于人工智能的图像标注，最后将数据导入生产数据库。

在这个示例中，我们使用的 Microsoft Azure 认知服务计算机视觉 API 的请求使用了 Microsoft 默认的预训练视觉模型。一个定制的视觉模型可以对标签结果进行更精细的调整，以适应特定的应用场景，但这超出了本文档的范围。

[点击此处](https://www.altova.com/zh/mapforce) 了解更多关于 MapForce 中提供的任何类型数据映射和转换功能的信息，或者 [点击此处](https://www.altova.com/zh/download-trial.html) 下载一个包含帮助文件、教程以及大量数据映射示例的免费、功能完整的 30 天试用版。

* * *
