---
title: AIを活用したデータベース画像分類：Altova MapForceを使用する
date: 2023-07-31
categories:
  - data-integration
  - database-mapping
  - tools
tags:
  - ai
  - artificial-intelligence
  - data-mapping
  - database-mapping
  - mapforce
description: MapForceを使用することで、AIを活用したデータ統合を完全に拡張可能な方法で実現し、AIによって生成されたタグの作成とデータベースへの挿入を自動化することができます。
---
Status: #blog

Tags:  #ai #artificial-intelligence #data-mapping #database-mapping #mapforce

Categories: [data-integration](/blog/ja/category/data-integration.md) | [data-integration](/blog/ja/category/data-integration.md) 
# AIを活用したデータベース画像分類：Altova MapForceを使用する

私たちの日常生活でAIが活用されている最も一般的な例の一つが、顔認識技術です。顔認識とは、人の顔の特徴に基づいて、その人物を特定したり、身元を確認したりする技術のことです。この技術は、スマートフォンの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は単なる画像解析の一形態であり、AIを活用した画像分類技術は、現実世界の多くのタスクを自動化する可能性を秘めているからです。

一般的な活用例として、企業が多数の異なるメーカーから提供される製品情報を管理する製品カタログが挙げられます。データベースに登録された製品の中には、製品名が必ずしもその製品の詳細な説明を含んでいるとは限りません。例えば、「ウェリントン」はブーツ、「フェドラ」は帽子、「マンモス」は自転車、「黄色いスイカ模様の光沢のある針金魚」は釣り用のルアーを指すことがあります。この問題を解決するために、[Microsoft Azure Cognitive ServicesのComputer Vision 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)を活用したAIによる画像分類を行うことができます。Computer Vision Serviceは、画像データまたはURLを入力として受け取り、その内容に関する情報を提供します。このサービスは、Azure AIが学習した、認識可能な物体、生物、風景、動作などのデータセットに基づいて、画像分類のタグを生成します。これらのタグを使用することで、データベース内の製品を適切に分類し、さらに、ユーザーが製品カタログ内で製品を検索する際に使用する可能性のある検索キーワードと対応付けることも可能です。

![AIの「脳」をイメージした装飾的な画像 ](/blog/images/blog_MF_AI.jpg)

<!--more-->

当社では、[Altova MapForce](https://www.altova.com/ja/mapforce)を使用して、AIを活用したデータマッピングを作成し、製品画像をComputer Vision AIに送信することができます。この際、Computer Vision AIのWebサービスAPIを利用します。Altova MapForceは、あらゆるデータ形式間の変換と統合を可能にする、受賞歴のあるグラフィカルなデータマッピングツールです。Computer Vision APIは、人工知能を用いて各画像を分析し、タグのリストを返します。MapForceは、マッピング処理の中でWebサービスを直接サポートしており、これにより、分析結果として得られたタグを、各製品に対応するデータベース内の専用フィールドに挿入することができます。また、中間結果の処理や、複数のデータマッピングを組み合わせる機能も利用可能です。

このAIを活用したデータマッピング機能は、製品カタログに対して、AIが生成したタグを完全に拡張可能な方法で自動的に生成し、挿入することができます。AIが生成するタグには信頼度スコアが付きますので、マッピング設定において、信頼度スコアが十分に高いタグのみを使用するように閾値を設定することが容易です。

私たちは、一般的なアウトドア用品の小規模なデータベースから始め、[Altova DatabaseSpy](https://www.altova.com/ja/databasespy)を使用して、製品テーブルにAIタグ用のフィールドを追加しました。DatabaseSpyは、主要なデータベースすべてに接続でき、SQLの編集、データベース構造の設計、コンテンツの編集、データベースの変換などを、単一データベースのソリューションに比べて非常に低いコストで実現します。以下に、データベースの内容と、新しく追加された空のフィールドを表示するDatabaseSpyのクエリ結果ウィンドウを示します。

[![製品カタログ用のサンプルデータベース](/blog/images/sample-database.png)](sample-database.png)

以下に、サンプル商品の画像のスリムバージョンをランダムな順序でいくつかご紹介します

[![製品カタログで使用する画像は、データベースとは別に保存されています。](/blog/images/products.png)](products.png)

また、DatabaseSpyを使用して、テーブルの主キーであるIDと、それに対応する画像ファイル名を抽出する簡単なSQLクエリが正しく動作するかどうかを確認しました。

[![AIを活用したデータベース画像分類データのマッピングに関するSQLクエリの結果](/blog/images/mapping-query-result.png)](mapping-query-result.png)

MapForceのAIを活用したデータマッピングでは、まずSQLクエリが最初の入力として使用されます。このクエリの結果に加え、Azure Image Analysis APIへのリクエスト、そしてAPIからの応答をデータベースに再挿入するためのSQLスクリプトが主要な構成要素となります。

[![AIを活用したデータベース画像分類のデータマッピングに関する概要](/blog/images/mapping1-1030x317.png)](mapping1.png)

それでは、人工知能APIへのリクエストについて、さらに詳しく見ていきましょう

### SQLクエリの結果を、データマッピングの入力ソースとして利用する

[![AIを活用したデータベース画像分類データのマッピングにおける入力部分](/blog/images/mapping-left-side-1.png)](mapping-left-side-1.png)

Selectクエリは、データの一覧を作成します。具体的には、キー番号とそれに対応する画像ファイル名がリストとして表示されます。しかし、APIは一度に1つの画像に対するリクエストしか受け付けません。そこで、クエリから得られたIDを、APIコンポーネントの最上部にあるエンベロープにマッピングすることで、返された各IDに対して新しいAPI呼び出しを生成し、リスト内の各画像に対して処理を行います。また、画像の上部右側から伸びる別の接続線は、後でSQLの更新スクリプトを作成するために使用されます。

データベースのテーブル設計者は、製品画像をデータベース内にバイナリデータとしてBLOBオブジェクトとして格納するのではなく、ファイル名で参照するように選択しました。人工知能による画像解析APIは、生の画像データまたは一般公開されている画像のURLのいずれかを受け入れるため、リクエストの中で、画像のURLをAPIに直接提供することができます。 上部に示されている「concat」関数は、各完全なURLを構築するために、パスを付加する役割を果たしています。

**AIウェブサービスのリクエストを実行します**

AIを活用したデータマッピングの中心部分は、人工知能による画像解析APIを呼び出し、その結果をさらに処理するウェブサービス機能を示しています

[![AIを活用したデータベース画像分類データのマッピングにおける、ウェブサービス機能と後処理](/blog/images/mapping-center.png)](mapping-center.png)

ウェブサービス機能の「リクエスト」と「レスポンス」の両方の部分に、「Body（本文）」とラベル付けされた封筒アイコンがあります。このAPIでは、リクエストの本文としてJSON形式のオブジェクトが必要であり、レスポンスもJSON形式のドキュメントとして返されることを指定しています。また、「Body」アイコンの横にある青いボタンと赤いボタンをクリックすると、リクエストとレスポンスの構造定義を入力するためのダイアログが表示されます。

[![AIを活用したデータベース画像分類ウェブサービスの機能構造の定義](/blog/images/request-structure-dialog.png)](request-structure-dialog.png)

人工知能APIからの応答は、さらに処理が必要です。タグはJSONオブジェクトのリストとして返され、各タグには、その正確性の信頼度を示すパーセント表示の数値が付属しています。以下にその一例を示します。これは、傘の画像に対するAIの応答を、元のJSON形式で示したものです

[![AIを活用したデータベース画像分類ウェブサービスの、生の応答例です](/blog/images/response-1.png)](response-1.png)

より高度なフィルターは、88%以上の信頼度を持つタグのみを受け入れます。次に、文字列結合関数が、タグをカンマ区切りの文字列にまとめます。 上記の「rain（雨）」というタグは、42%の信頼度を示しています。

そして、データベース内の傘の商品に適用したい文字列は、必要なタグのみを抽出した結果、以下のようになります

[![上記の応答から取得した、データベース更新に使用されるタグのリスト](/blog/images/response-2.png)](response-2.png)

### AIの応答に基づいてSQLのUPDATE文を生成する

AIを活用したデータマッピングの右側の部分は、処理された結果を受け取り、その結果を正しいデータベースのIDインデックスと関連付け、タグの文字列を「cat-products」データベーステーブルの「ai-tags」フィールドにマッピングします。

[![AIを活用したデータベースの画像分類データのマッピングを完了させるためのSQL更新文を作成します](/blog/images/mapping-right-side.png)](mapping-right-side.png)

### AIを活用したデータマッピングの結果の分析

マップフォースのメイン画面の下にある「出力プレビュー」ボタンを使用すると、結果の例を確認できます。このボタンをクリックすると、元のSELECTクエリから始まるデータマッピング全体が実行され、APIリクエストが実行され、AIの結果が処理され、最後にSQLの更新文が生成され、完全なSQL更新スクリプトが作成されます

[![AIを活用したデータベース画像分類データマッピングによって生成された、データベース更新スクリプト](/blog/images/update-script.png)](update-script.png)

メインメニューの「SQLスクリプト実行」を選択することで、スクリプトを実行し、データベースの更新をインタラクティブに適用することができます。または、このマッピングをネットワーク上の[MapForce Server](https://www.altova.com/ja/mapforce-server)インスタンスに展開し、新しい製品をカタログに登録するワークフローの一部として、自動的に実行することも可能です。さらに、[FlowForce Server](https://www.altova.com/ja/flowforceserver)を使用することで、受信データを自動的に処理し、検証した後、AIを活用した画像タグ付けを行い、最後に本番データベースにデータを投入するトリガーを定義することができます。

この例では、Microsoft Azure Cognitive ServicesのComputer Vision APIを使用する際に、Microsoftが提供するデフォルトの学習済み画像認識モデルを使用しました。特定の用途に合わせたカスタムモデルを使用することで、タグ付けの結果をより詳細に調整できますが、それは今回のブログ記事の範囲を超える内容です。

[詳細については、こちらをクリック](https://www.altova.com/ja/mapforce)してください。MapForceで利用可能な、あらゆるデータ形式間のマッピングおよび変換機能に関する情報です。または、[こちらをクリックしてダウンロード](https://www.altova.com/ja/download-trial.html)すると、ヘルプファイル、チュートリアル、そして多くのデータマッピングのサンプルを含む、30日間の無料トライアル版をご利用いただけます。

* * *
