Python에서 이미지를 인식하고 적절한 파일 이름을 자동으로 지정 - Microsoft Computer Vision 사용

이번 프로그램은 Python에서 지정한 폴더에 들어간 복수의 이미지 파일을 인식하고 파일명을 자동으로 붙이는 프로그램입니다.

이미지 인식에는 Microsoft Computer Vision을 이용하고 있습니다.

사전 준비



Python에서 이미지 분석을 하기 위해 Microsoft Computer Vision API 구독 키를 가져옵니다.

획득 절차.



Microsoft Azure에 계정 등록 ⇒ 무료 구독으로 등록 ⇒ Computer Vision API 이용 ⇒ 키 생성 ⇒ 취득

아래 페이지에서 등록, 취득하십시오.
htps : // 오즈레. mic로소 ft. 코 m/쟈-jp/

아래 페이지의 키 1, 2 중 어느 것도 괜찮습니다.


프로그램 소스 코드



# API reference :
# https://westus.dev.cognitive.microsoft.com/docs/services/5adf991815e1060e6355ad44/operations/56f91f2e778daf14a499e1fa
# 参考 : https://ledge.ai/microsoft-computer-vision-api/
# 機能概要 : img フォルダ中の画像をAI解析し、ファイルのリネームを行います。
# 使い方 : python3 cv_demo.py
# 注意 : サブスクリプションキーは変更してください

import requests
import glob
import os
import time

subscription_key = ""
assert subscription_key

vision_base_url = "https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/"
analyze_url = vision_base_url + "analyze"


# ファイル名を変更
def file_rename(list_1, list_2):
    for i in range(len(list_1)):
        os.rename(list_1[i], './img/' + list_2[i] + '.jpg')


def ms_computer_vision_api(filepath):
    headers = {'Ocp-Apim-Subscription-Key': subscription_key,'Content-Type': 'application/octet-stream'}
    params = {'visualFeatures': 'Categories,Description,Color'}

    img = open(filepath, 'rb')
    img_byte = img.read()

    response = requests.post(analyze_url, data=img_byte, headers=headers, params=params)
    response.raise_for_status()

    return response.json()


if __name__ == "__main__":
    # 画像ファイルを配列に格納
    image_file = glob.glob('./img/*')

    vision_file_name = []

    start = time.time()

    # Computer Vision APIにリクエストして結果を取得
    for i in range(len(image_file)):
        json_data = ms_computer_vision_api(image_file[i])

        # 生成された文章を取得
        file_name = json_data['description']['captions'][0]['text']
        vision_file_name.append(file_name)

    # 文章の空白をファイル名用にアンダーバーに修正
    for i in range(len(vision_file_name)):
        vision_file_name[i] = vision_file_name[i].replace(' ', '_')

    file_rename(image_file,vision_file_name)

    # 経過時間を出力
    # print("elapsed_time:{0}".format(time.time() - start) + "[sec]")


위 subscription_key = ""
에 앞의 키 중 하나 또는 둘 중 하나를 입력합니다.

현재 디렉토리에 넣은 img 파일 안에 해석하고 싶은 화상을 복수 넣어 둡니다.

결과





위와 같이 이미지 해석해 원래 있던 타이틀을 자동으로 적절한 이름으로 리네임해 줍니다.

자세한 설명은 여기 URL에 썼습니다.
h tps : // 헛소리. 코 m / 이마게 레나메

좋은 웹페이지 즐겨찾기