Appleが配布しているCoreML Model「Places205-GoogLeNet」を用いて、指定画像のシーン判定を行うAppleScriptです。
Appleが公式に配布している6つのCoreML Modelのうち、「Places205-GoogLeNet」を組み込んだFrameworkを作成して、これをAppleScriptから呼び出しています。
sceneDetection.frameworkをインストールしたうえで、macOS 10.13上ではスクリプトエディタ/Script Debuggerから、macOS 10.14ではScript Debuggerから本Scriptを実行します(AppleScriptアプレットでも動作します)。
「Places205-GoogLeNet」は、
Detects the scene of an image from 205 categories such as an airport terminal, bedroom, forest, coast, and more.
と、画像の内容から、画面やシーン、場所について「だいたいこんなところ」と判定してくれるModelのようです。ただ、日本国内の景色を渡してみると、得られる判定結果にはいまひとつ「ちょっと違う」と感じるものであります。
▲左:crosswalk(横断歩道)実際には自動車販売店と道路(Car shop & road)、右:desert/sand(砂漠、砂)実際にはAirport
▲左:river(川)実際には海、右:bridge(橋) 実際には橋ではありません
–> Download sceneDetection.framework (To ~/Library/Frameworks)
▲GoogLeNetPlaces.mlmodelをNetronでビジュアライズしたところ
AppleScript名:GoogLeNetPlacesでシーン判定.scpt |
use AppleScript version "2.7" — High Sierra (10.13) or later use framework "Foundation" use framework "AppKit" use framework "sceneDetection" use scripting additions set aFile to POSIX path of (choose file of type {"public.image"}) set aImage to current application’s NSImage’s alloc()’s initWithContentsOfFile:aFile set msDict to (current application’s sceneDetector’s alloc()’s init()’s GoogLeNetPlacesWithImage:aImage) as string –> "crosswalk" |
More from my site
(Visited 108 times, 1 visits today)