4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

からあげ帝国Advent Calendar 2024

Day 24

第3弾(Gemini 2.0 Flash編):AIは「からあげ」と「とり天」を見分けられるのか【からあげ帝国-2】

Last updated at Posted at 2024-12-23

この記事は、「からあげ帝国 Advent Calendar 2024」の 24日目の記事です。

はじめに

今回の記事では、『AIは「からあげ」と「とり天」を見分けられるのか』という先行研究で検証された内容を、それらの先行研究とは異なるモデルで試します。

元ネタについて

まずは、元ネタとなる先行研究 2つを掲載します。

元ネタでやっていた内容

上記2つ目の記事に書かれた内容から、元ネタでやっていた内容を紹介します。

image.png

今回も利用する画像・プロンプトは、上記の先行研究に合わせて検証します。

【プロンプト】
あなたは画像の説明が上手い優秀なアシスタントです。この画像に何が写っているのかを小学生にも分かるように丁寧に説明をしてください。

今回の内容

今回試すモデル

今回は「Gemini 2.0 Flash」で試します。

●Gemini models  |  Gemini API  |  Google AI for Developers
 https://ai.google.dev/gemini-api/docs/models/gemini

image.png

上記の先行研究のうち、1つ目で試されていた「Gemini 1.5 Flash」の後継のモデルになります。

このモデルは、以下の 12/12 あたりにリリースされていました。

●グーグルが次世代AIモデル「Gemini 2.0」発表、実行速度は前世代の2倍に - ケータイ Watch
 https://k-tai.watch.impress.co.jp/docs/news/1647014.html

ソースコード

今回使うソースコードは、以下の記事で自分が試していた「OpenAI公式のパッケージ + Gemini の API」を使ったものです。

●Gemini の API を OpenAI のパッケージ + Node.js で試す(テキスト・複数の画像の入力)【生成AI−2】 - Qiita
 https://qiita.com/youtoy/items/0a4539ce6b9160d55e60

今回用に実装した内容は以下の通りです。

処理の内容としては、上で用いていたものと同様に画像ファイル 2つを同時に API に渡す形にしています。また、Gemini の APIキーは、環境変数から読みこみます。

import OpenAI from "openai";
import fs from "fs";

const apiKey = process.env["GEMINI_API_KEY"];
const baseURL = "https://generativelanguage.googleapis.com/v1beta/openai/";

const openai = new OpenAI({
  apiKey,
  baseURL,
});

async function main() {
  const message = "あなたは画像の説明が上手い優秀なアシスタントです。この画像に何が写っているのかを小学生にも分かるように丁寧に説明をしてください。";
  console.log(message);

  const imagePaths = ["./input1.jpg", "./input2.jpg"];
  const imageBase64List = imagePaths.map((imagePath) => {
    const imageBuffer = fs.readFileSync(imagePath);
    return imageBuffer.toString("base64");
  });

  const response = await openai.chat.completions.create({
    // model: "gemini-1.5-flash",
    model: "gemini-2.0-flash-exp",
    messages: [
      {
        role: "user",
        content: [
          { type: "text", text: message },
          {
            type: "image_url",
            image_url: {
              url: `data:image/jpeg;base64,${imageBase64List[0]}`,
            },
          },
          {
            type: "image_url",
            image_url: {
              url: `data:image/jpeg;base64,${imageBase64List[1]}`,
            },
          },
        ],
      },
    ],
  });
  console.log(response.choices[0].message);
}
main();

得られた結果

今回得られた結果は、以下のとおりです。

image.png

無事に「からあげ」と「とり天」を見分けられました。

シンプルに聞いた結果

また、「これらの画像には何がうつってる?」というシンプルなプロンプトでも試してみました。

image.png

これらの画像には、どちらも鶏肉を揚げた料理である唐揚げが写っています。

1枚目の画像は、天ぷらの衣のような衣で揚げられた鶏肉の唐揚げで、おそらく鶏天です。マスタードソースとパセリのような緑の葉が添えられています。

2枚目の画像は、より伝統的な唐揚げで、カラッと揚がった衣にレタスとレモンのくし切りが添えられています。

こちらでも無事に「からあげ」と「とり天」を見分けられました。

4
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?