1
0

[Vision API] Javaで画像内のラベルを検出する

Last updated at Posted at 2024-03-07

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれているラベルを検出します。

ラベルは、画像にどのようなものが写っているのかをAIで判定し、
文字列(英語)で返してくれます。

本記事の3. 結果の検証でどのようなものが検出されるか試していますが、
「ジーンズ」「猫」「自然食品」なども認識されます。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Vision API] Javaで画像内のいろいろなものを検出する
を参照ください。

No 目次
1 Feature.Typeの指定
2 実行結果の取得
1 レスポンスの出力
2 レスポンスの内容
3 結果の検証
1 ロゴ
2 街の風景
3 自然の風景
4 繁華街
5 人物
6 動物
7 野菜

1. Feature.Typeの指定

ラベルを検出する場合は、
Feature.Type.LABEL_DETECTION
を指定します。

以下の記事でexecApi()にタイプを指定します。
⧉[Vision API] Javaで画像内のいろいろなものを検出する

2. 実行結果の取得

2.1. レスポンスの出力

取得した結果をコンソールに出力します。

private static void output(BatchAnnotateImagesResponse response){
    List<AnnotateImageResponse> responses = response.getResponsesList();
    
    for (AnnotateImageResponse res : responses) {
        if (res.hasError()) {
            System.out.format("Error: %s%n", res.getError().getMessage());
            return;
        }
    
        for (EntityAnnotation annotation : res.getLabelAnnotationsList()) {
            annotation.getAllFields()
            .forEach((k, v) -> System.out.format("%s : %s%n", k, v.toString()));
        }
    }
}

2.2. レスポンスの内容

BatchAnnotateImagesResponseの
getResponsesListでAnnotateImageResponseリストが取得できます。
検出されなった場合は、空のリストが返ってきます。

AnnotateImageResponse

メソッド 戻り値 内容
getLabelAnnotationsList List<EntityAnnotation> 検出されたラベル

EntityAnnotation

メソッド 戻り値 内容
getMid string OpaqueエンティティID
getDescription string 検出されたラベルの説明文
getScore float 検出結果の信頼度。範囲は0〜1
getTopicality float ICAラベルと画像の関連性

3. 結果の検証

いろいろな画像でラベルを検出してみました。
画像に映り込んだ情報が多いほど、レスポンスが遅かったです。
(たとえば、3.4.繁華街の画像は得に遅かった)

3.1. ロゴ

検出させる元画像

実行結果

説明 検出結果の信頼度 画像との関連性
Purple 0.85702777 0.85702777
Font フォント 0.8366547 0.8366547
Magenta 赤紫色 0.7750041 0.7750041
Electric blue エレクトリックブルー 0.73360777 0.73360777
Event イベント 0.72941405 0.72941405
Ceiling シーリング 0.72912264 0.72912264
Graphics グラフィックス 0.68004316 0.68004316
Logo ロゴ 0.67122936 0.67122936
Display device 表示装置 0.6700307 0.6700307
Signage 看板 0.6506733 0.6506733

3.2. 街の風景

検出させる元画像

実行結果

説明 検出結果の信頼度 画像との関連性
Cloud 0.9719424 0.9719424
Skyscraper 超高層ビル 0.9708496 0.9708496
Building 建物 0.9690578 0.9690578
Sky 0.9642791 0.9642791
Daytime 昼間 0.94603235 0.94603235
Blue 0.9025435 0.9025435
Tower block 高層ビル 0.85141665 0.85141665
Urban design 都市デザイン 0.84370995 0.84370995
Tower タワー 0.84239924 0.84239924
Neighbourhood 近所 0.8330505 0.8330505

3.3. 自然の風景

検出させる元画像

実行結果

説明 検出結果の信頼度 画像との関連性
Sky 0.9716211 0.9716211
Mountain 0.94789594 0.94789594
Ecoregion エコリージョン 0.9245183 0.9245183
Water 0.89134187 0.89134187
Highland ハイランド 0.8774106 0.8774106
Body of water 水域 0.8644991 0.8644991
Snow 0.86270267 0.86270267
Natural landscape 自然景観 0.85074323 0.85074323
Landscape 風景 0.8070087 0.8070087
Mountainous landforms 山岳地形 0.7913905 0.7913905

3.4. 繁華街

検出させる元画像

実行結果

説明 検出結果の信頼度 画像との関連性
Font フォント 0.8283585 0.8283585
City 0.7705533 0.7705533
Art 美術 0.7546429 0.7546429
Metropolis 大都市 0.7389245 0.7389245
Tints and shades 色合いと色合い 0.72601813 0.72601813
Signage 看板 0.6861472 0.6861472
Event イベント 0.6188593 0.6188593
Advertising 広告 0.5911735 0.5911735
Electronic signage 電子看板 0.55702543 0.55702543
Street 通り 0.5229703 0.5229703

3.5. 人物

検出させる元画像

実行結果

説明 検出結果の信頼度 画像との関連性
Footwear 履物 0.9816828 0.9816828
Jeans ジーンズ 0.9776394 0.9776394
Trousers ズボン 0.9643992 0.9643992
Shoe 0.9607125 0.9607125
Smile 笑顔 0.94449294 0.94449294
Yellow 黄色 0.8447503 0.8447503
Sneakers スニーカー 0.83880615 0.83880615
Ball ボール 0.82979566 0.82979566
Leisure レジャー 0.8157 0.8157
Fun 楽しい 0.7758143 0.7758143

3.6. 動物

実行結果

説明 検出結果の信頼度 画像との関連性
Cat 0.96098435 0.96098435
Eye 0.9361381 0.9361381
Vertebrate 脊椎動物 0.92139554 0.92139554
Carnivore 肉食動物 0.87543076 0.87543076
Felidae ネコ科 0.85701525 0.85701525
Mammal 哺乳類 0.85497636 0.85497636
Small to medium-sized cats 小型から中型の猫 0.83198994 0.83198994
Comfort 快適 0.8193583 0.8193583
Whiskers ひげ 0.8148246 0.8148246
Ear 0.7827573 0.7827573

3.7. 野菜

実行結果

説明 検出結果の信頼度 画像との関連性
Food 食べ物 0.9882819 0.9882819
Ingredient 材料 0.91791373 0.91791373
Natural foods 自然食品 0.902798 0.902798
Cuisine 料理 0.858267 0.858267
Whole food 自然食品 0.852474 0.852474
Leaf vegetable 葉物野菜 0.8498862 0.8498862
Food group フードグループ 0.8497838 0.8497838
Staple food 主食 0.83365625 0.83365625
Dish 0.8220238 0.8220238
Produce 生産する 0.8082219 0.8082219


おしまい。。。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0