PythonからSASの画像処理機能を使って画像マッチング

0


5月23日に開催されたSAS Forum Japan 2017の「SAS Viyaディープダイブ」セッションでは、SASのAIに搭載されている画像処理機能が入門レベルとして紹介されました。

セッション内では、皆様にとってもお馴染みの「浅草雷門」の写真を使った画像マッチングのデモも紹介しました。雷門を正面から撮った写真の中から、「雷門の提灯」の部分を切り出し、これをテンプレート画像として使用し、この「雷門の提灯」が写っている写真だけを画像マッチングによって見つけ出すというデモです。

さあ、ちゃんと「雷門の提灯」が写っている写真だけを見つけ出すことができたのでしょうか?

以下は、Jupyter Notebookを使用し、PythonからSAS の画像処理機能を活用してマッチングを実行した結果です。(コードの一部抜粋)

【ライブラリのインポート】

In [16]:
# import libraries
import swat
import matplotlib.pyplot as plt
import os
import json
import numpy as np

【テンプレート画像「雷門の提灯」のロード】

In [24]:
# load an image to cas
r = conn.image.loadImages(casout={"caslib":"casuser", 'name':tmp_file_data[0], 'replace':True}, path=tmp_file_path)
tmpTable = conn.CASTable(tmp_file_data[0])

【この画像にマッチングさせます】

【マッチング対象画像のロード】

In [26]:
 
# load images to cas
right_im_list = []
for i in right_file:
    i_path = os.path.join(directory, i)
    r = conn.image.loadImages(casout={"caslib":"casuser", 'name':i, 'replace':True}, path=i_path)
    imageTable = conn.CASTable(i)
    right_im_list.append(imageTable)

【マッチング対象の23枚の写真(画像)】

【特徴点マッチング】

In [28]:
 
def match_descMatch(imageTable, tmp_image, casout_name,
 threshold=0.3, highlight=True, descType="ORB_BRISK", thresholdRatio=0.8):
 results= conn.image.matchImages(
 casOut={
 "name":casout_name,
 "replace":True
 },
 imageTable={
 "name":imageTable
 },
 methodOptions={
 "method":"DESCRIPTORMATCH",
 "descType":descType,
 "thresholdRatio":thresholdRatio
 },
 caslib="casuser",
 image=tmp_image,
 threshold=threshold,
 highlight=highlight
 )
 
for i in right_file_s:
 casout_name="match_" + i[0]
 match_descMatch(imageTable=i[0],
 tmp_image=tmp_data,
 casout_name=casout_name,
 threshold=0.1,
 descType="ORB_BRISK",
 thresholdRatio=0.8)

【マッチングした写真(画像)7枚】

【マッチングしない写真(画像)16枚】

以上のように、正しく「雷門の提灯」を含む写真(画像)だけを見つけることができています。

詳細(講演ビデオ)に関しては、以下をご覧ください。(YouTubeに公開済み)

Share

About Author

Makoto Unemi (畝見 真)

ビジネスディベロップメントグループ

データ分析によりビジネス価値を創造する「ビジネス・アナリティクス」を日本市場に浸透させる活動に長年従事し、金融・製造・通信業を中心に数多くのアナリティクス・プロジェクトの提案に参画。 現在はAIプラットフォームなど新たなテクノロジーの活用に特化した提案を担当している。 ディープラーニングや機械学習などのAIテクノロジーや大規模分析基盤アーキテクチャについての豊富な知見、経験を持つ。 新たなテクノロジーでも分かりやすく解説するプレゼンテーションには定評があり、満足度の高い講演を年間、数多く行っている。

Leave A Reply

Back to Top