SAS Japan Blog

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て

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

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に公開済み)

タグ: , , , ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ボットによる迷惑コメントを防ぐために、次の4桁の数字を入力してください。 *

検索結果が見つかりませんでした。別のキーワードでお試しください。

404 NOT FOUND

インサイト
 

最近の記事 RSS