---
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/ko/category/data-integration.md) | [data-integration](/blog/ko/category/data-integration.md) 
# AI 기반 데이터베이스 이미지 분류, Altova MapForce 활용

우리 일상생활에서 인공지능의 가장 흔한 예 중 하나는 얼굴 인식 기술입니다. 얼굴 인식은 얼굴 특징을 기반으로 개인의 신원을 식별하거나 확인하는 과정입니다. 얼굴 인식 기술은 스마트폰의 Face ID를 이용한 잠금 해제, 페이스북과 같은 소셜 미디어 플랫폼에서 친구를 태그하는 기능, 공항이나 호텔에서 생체 인식 스캐너를 이용한 체크인 등 다양한 분야에서 활용됩니다. 얼굴 인식 기술은 우리의 삶을 더욱 편리하고 안전하게 만들어 줄 수 있지만, 동시에 개인 정보 보호 및 윤리적인 문제에 대한 우려를 불러일으킬 수도 있습니다. 예를 들어, 우리의 얼굴 데이터가 해커나 악의적인 사용자에 의해 오용되거나 도용되지 않도록 어떻게 보장할 수 있을까요? 얼굴 인식 기술이 감시나 차별에 사용되지 않도록 어떻게 막을 수 있을까요? 얼굴 인식 기술이 정확하고 공정하며, 편향이나 오류가 없도록 어떻게 보장할 수 있을까요?

위의 단락은 제가 인공지능의 장점과 위험성을 설명하고 실제 사례를 포함해 달라는 요청에 대해 [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가 FaceID를 예시로 선택한 점이 흥미로운데, FaceID는 이미지 분석의 한 종류일 뿐이며, AI 기반의 이미지 분류 기술은 다양한 실제 업무를 자동화할 수 있는 잠재력을 가지고 있습니다.

일반적인 활용 사례 중 하나는 제품 카탈로그 관리입니다. 이 경우, 기업은 여러 제조업체로부터 제공받은 제품 정보를 데이터베이스에 관리합니다. 데이터베이스에 등록된 제품의 이름이 반드시 해당 제품의 정확한 설명을 포함하지 않을 수 있습니다. 예를 들어, "wellingtion"은 부츠, "fedora"는 모자, "mongoose"는 자전거, 그리고 "yellow watermelon shiny needlefish"는 낚시용 미끼를 의미합니다. 이러한 문제를 해결하기 위해, [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 서비스는 이미지 데이터 또는 URL을 입력으로 받아, 해당 이미지의 내용에 대한 정보를 반환합니다. 이 서비스는 Azure AI가 학습한 다양한 객체, 생명체, 풍경, 행동 등을 기반으로 이미지 분류 태그를 생성합니다. 이러한 태그를 통해 데이터베이스 내의 제품을 적절하게 분류할 수 있으며, 심지어 사용자가 카탈로그에서 제품을 검색할 때 사용하는 검색어와도 일치할 수 있습니다.

![인공지능의 "두뇌"를 묘사한 장식적인 이미지 ](/blog/images/blog_MF_AI.jpg)

<!--more-->

저희는 [Altova MapForce](https://www.altova.com/ko/mapforce)를 사용하여 AI 기반 데이터 매핑을 구축하여 제품 이미지를 컴퓨터 비전 AI에 웹 서비스 API를 통해 전송할 수 있습니다. Altova MapForce는 모든 종류의 데이터 변환 및 통합을 위한 수상 경력에 빛나는 그래픽 데이터 매핑 도구입니다. 컴퓨터 비전 API는 인공 지능을 사용하여 각 이미지를 분석하고 태그 목록을 반환합니다. MapForce는 매핑 과정 내에서 웹 서비스를 직접 지원하며, 중간 결과 처리 또는 연쇄적인 데이터 매핑 기능을 통해 분석된 태그를 각 제품에 대한 데이터베이스의 특정 필드에 다시 삽입할 수 있습니다.

이 인공지능 기반 데이터 매핑 기술은 제품 카탈로그에 대한 인공지능이 생성한 태그를 완전히 확장 가능한 방식으로 자동으로 생성하고 삽입할 수 있습니다. 인공지능이 제공하는 태그에는 신뢰도 점수가 함께 제공되므로, 매핑 과정에서 특정 신뢰도 이상의 태그만 사용하도록 임계값을 설정하는 것이 용이합니다.

저희는 일반적인 야외 레크리에이션 제품 데이터베이스의 작은 샘플을 시작으로, [Altova DatabaseSpy](https://www.altova.com/ko/databasespy)를 사용하여 제품 테이블에 AI 태그를 위한 필드를 추가했습니다. DatabaseSpy는 주요 데이터베이스에 모두 연결되며, SQL 편집, 데이터베이스 구조 설계, 콘텐츠 편집, 그리고 데이터베이스 변환 작업을 기존의 단일 데이터베이스 솔루션보다 훨씬 저렴한 비용으로 제공합니다. 다음은 DatabaseSpy의 쿼리 결과 창으로, 데이터베이스 내용과 새로 추가된 빈 필드를 보여줍니다.

[![제품 카탈로그를 위한 샘플 데이터베이스](/blog/images/sample-database.png)](sample-database.png)

다음은 예시 제품 이미지의 썸네일 이미지들입니다. (순서는 임의입니다.)

[![제품 카탈로그에 사용될 이미지는 데이터베이스와 별도로 저장됩니다.](/blog/images/products.png)](products.png)

저희는 또한 DatabaseSpy를 사용하여 간단한 SQL 쿼리를 검증했는데, 이 쿼리는 테이블의 기본 키인 'id'와 해당 이미지 파일 이름을 가져오는 데 사용되었습니다.

[![AI 기반 데이터베이스 이미지 분류 데이터 매핑을 위한 SQL 쿼리 결과](/blog/images/mapping-query-result.png)](mapping-query-result.png)

MapForce의 AI 기반 데이터 매핑 기능은 세 가지 주요 구성 요소로 이루어져 있으며, 이 중 첫 번째 입력은 SQL 쿼리입니다. 나머지 두 가지는 쿼리 결과와 Azure 이미지 분석 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는 한 번에 하나의 이미지에 대한 요청만 처리할 수 있습니다. 쿼리에서 얻은 ID를 API 구성 요소 상단의 "envelope"에 매핑함으로써, 반환된 각 ID에 대해 새로운 API 호출을 생성하고, 목록의 각 이미지를 순차적으로 처리합니다. ID에서 나오는 또 다른 연결선은 오른쪽 상단에 위치하며, 나중에 SQL 업데이트 스크립트를 생성하는 데 사용됩니다.

데이터베이스 테이블 설계자는 제품 이미지를 데이터베이스 내에 이진 파일(BLOB 객체)로 포함하는 대신, 파일 이름으로 참조하도록 선택했습니다. 인공지능 이미지 분석 API는 원본 이미지 데이터 또는 공개적으로 접근 가능한 이미지의 URL을 모두 지원하므로, 저희는 요청 시 해당 이미지의 URL을 API에 간단히 제공할 수 있습니다. 위 중앙에 있는 "concat" 함수는 각 완전한 URL을 생성하기 위해 경로를 추가하는 역할을 합니다.

**AI 웹 서비스 요청 실행**

AI 기반 데이터 매핑의 중앙 부분은 인공지능 이미지 분석 API를 호출하는 웹 서비스 기능과, 반환된 결과에 대한 추가 처리 과정을 보여줍니다

[![AI 기반 데이터베이스 이미지 분류 데이터 매핑을 위한 웹 서비스 기능 및 후처리 과정](/blog/images/mapping-center.png)](mapping-center.png)

웹 서비스 기능의 요청(Request)과 응답(Response) 양쪽에서 "Body"라고 표시된 봉투 아이콘을 주목하십시오. 이 API는 요청 본문에 JSON 객체를 필요로 하며, 응답은 JSON 문서 형식으로 제공될 것임을 명시합니다. "Body" 아이콘 옆에 있는 파란색과 빨간색 버튼을 클릭하면 요청과 응답의 구조 정의를 제공하는 대화 상자가 열립니다.

[![AI 기반 데이터베이스 이미지 분류 웹 서비스의 기능 구조 정의](/blog/images/request-structure-dialog.png)](request-structure-dialog.png)

인공지능 API로부터 받은 응답은 추가적인 처리가 필요합니다. 태그는 JSON 객체들의 목록 형태로 반환되며, 각 태그에는 정확도 신뢰도를 나타내는 백분율로 표시된 숫자가 함께 제공됩니다. 아래는 그 예시입니다. 아래는 우산 이미지에 대한 인공지능의 원래 JSON 형식 응답입니다

[![AI 기반 데이터베이스 이미지 분류 웹 서비스에서 제공하는 원본 응답 예시입니다](/blog/images/response-1.png)](response-1.png)

더 높은 수준의 필터는 88% 이상의 신뢰도를 가진 태그만 선택합니다. 다음으로, "문자열 결합" 기능은 선택된 태그들을 쉼표로 구분된 문자열로 결합합니다. 참고로, 위에서 "rain" 태그는 42%의 신뢰도를 나타냅니다.

다음은 데이터베이스에 있는 우산 제품에 적용할 문자열로, 원하는 태그만 추출한 결과입니다

[![위 응답에서 추출된 태그 목록을 사용하여 데이터베이스를 업데이트합니다](/blog/images/response-2.png)](response-2.png)

### AI 응답을 기반으로 SQL 업데이트 문을 생성합니다

AI 기반 데이터 매핑 시스템의 오른쪽 부분은 처리된 결과를 하나씩 받아, 해당 결과를 올바른 데이터베이스 ID 인덱스와 연결하고, 태그 문자열을 "cat-products" 데이터베이스 테이블의 "ai-tags" 필드에 매핑합니다.

[![AI 기반 데이터베이스 이미지 분류 데이터 매핑을 완료하기 위한 SQL 업데이트 문을 생성합니다](/blog/images/mapping-right-side.png)](mapping-right-side.png)

### AI 기반 데이터 매핑 결과 분석

맵포스(MapForce)의 주요 매핑 창 아래에 있는 "결과 미리보기" 버튼을 클릭하면 예시 결과를 확인할 수 있습니다. 이 버튼은 원본 선택 쿼리부터 시작하여 전체 데이터 매핑을 실행하고, API 요청을 수행하며, 인공지능 결과를 처리한 후, 최종적으로 SQL 업데이트 문을 생성하여 완전한 SQL 업데이트 스크립트를 만들어냅니다

[![AI 기반 데이터베이스 이미지 분류 시스템에서 생성된 데이터베이스 업데이트 스크립트](/blog/images/update-script.png)](update-script.png)

MapForce 메인 메뉴에서 "SQL 스크립트 실행" 기능을 사용하여 스크립트를 실행하고 데이터베이스 업데이트를 실시간으로 적용할 수 있습니다. 또는, 이제 이 매핑을 네트워크 상의 [MapForce 서버](https://www.altova.com/ko/mapforce-server) 인스턴스에 배포하여, 새로운 제품을 카탈로그에 추가하는 워크플로우의 일부로 자동 방식으로 실행할 수 있습니다. [FlowForce 서버](https://www.altova.com/ko/flowforceserver)를 사용하면, 들어오는 데이터를 자동으로 처리하고, 유효성을 검사한 후, AI 기반 이미지 태깅을 수행하고, 마지막으로 프로덕션 데이터베이스에 데이터를 입력하는 트리거를 정의할 수 있습니다.

이번 예제에서는 Microsoft Azure Cognitive Services의 컴퓨터 비전 API를 사용할 때, Microsoft에서 기본적으로 제공하는 사전 학습된 비전 모델을 사용했습니다. 사용자 정의 비전 모델을 사용하면 특정 애플리케이션에 맞춰 태그 결과를 더욱 정교하게 조정할 수 있지만, 이는 이번 블로그 게시물의 범위를 벗어나는 내용입니다.

[MapForce에서 제공하는 모든 데이터 매핑 및 변환 기능에 대한 자세한 정보는 [여기]를 클릭하세요](https://www.altova.com/mapforce) 또는 [[여기]를 클릭하여](https://www.altova.com/download-trial.html) 도움말 파일, 튜토리얼, 그리고 다양한 데이터 매핑 예제를 포함한 30일 동안 무료로 사용할 수 있는 체험 버전을 다운로드하세요.

* * *
