yoppa.org


最終課題制作のヒント4 – AI Creative Future Awardsの受賞作品紹介

本日の内容

今回は、最終制作のヒントとして、先日初回の結果が発表されたAI Creative Future Awardsの受賞作品を紹介します。今どのようなAIを活用した作品が評価されているのか、実際の受賞作品を紹介しながら考えていきたいと思います。

height:400

AI Creative Future Awardsについて

AICA(AI Creative Future Awards)は、2025年にローンチされた日本発の新しいクリエイティブアワードです。AIによる表現が人の感覚や社会にどんな新しい可能性をもたらすのかを探るものであり、贈賞そのものよりも、議論・対話・記録を重視しています。

初年度(ゼロ期)は、世界中のAIクリエイティブをAICA側がリサーチ・キュレーションし、時代を象徴するプロジェクトを選出する形式をとりました。AI表現の現在地を俯瞰し、議論の土台をつくることを目的としています。

AI Creative Future Awards – FAQ

議論メンバー

  • 清水 幹太(Chairman / BASSDRUM テクニカルディレクター)
  • 緒方 壽人(デザインエンジニア)
  • 徳井 直生(アーティスト / AI研究者)
  • 戸村 朝子(プロデューサー / 株式会社ARTn代表)
  • 三宅 陽一郎(立教大学大学院 人工知能科学研究科 特任教授)
  • AKI INOMATA(アーティスト / 武蔵野美術大学客員教授)
  • 土屋 泰洋(リサーチャー / Dentsu Lab Tokyo)

AI Creative Future Awards – 議論メンバー

受賞作品の概要とその評価

受賞した作品について

  • 作品の概要
  • 使用されているAI技術
  • 評価されたポイント

についてまとめていきます

Grand Prix: Pichet Klunchun他, Cyber Subin: Evolving Cultural Heritage through Human-AI Co-dancing

Webサイト

作品の概要

本作品は、タイの伝統舞踊とAIを高度に融合させた「Human-AI co-dancing(人間とAIの共創ダンス)」のプロジェクトである。タイ語で「Subin(夢)」を意味する本作は、世界的な振付家ピシェ・クランチェン氏と、MITメディアラボのパット・パタラヌタポーン氏らによる共同制作によって誕生した。伝統舞踊の身体技法をAIが学習し、仮想のパートナーとして人間のダンサーとリアルタイムで共演する実験的なパフォーマンスである。

作品概要 (AICAサイトより)

本プロジェクトは、タイの伝統舞踊の原理から導き出された計算モデルを活用し、人間のダンサーと仮想のパートナーを融合させる「ヒューマン-AI協働ダンス(Human-AI co-dancing)」を紹介するものです。「Cyber Subin(スビンはタイ語で『夢』を意味します)」において、学際的なチームは、テッパノムの典拠にある59のポーズの分析から抽出された六つの原則をAIシステムに変換しました。このシステムは、仮想キャラクターの動きをリアルタイムで動的に振り付けます。

この対話型システムにより、ダンサーは音声制御を通じてAIエージェントと即興で共演することが可能となり、出演者、振付師、観客がタイ伝統舞踊の要素を表現するパラメーターを調整できます。AIは単に動きを生成するのではなく、ダンサーの身体と対話し、パフォーマーが解釈し、抵抗し、あるいは拡張するような挑発を提示します。これにより、舞台は人間の直感とアルゴリズムによる介入が絡み合う、共同創造の場へと変貌します。

ヒューマン-AI間のリハーサルからは、人間と機械の相乗効果と摩擦から生まれるハイブリッドな動きの美学が誕生しました。ダンサーたちはAIと協働し、リアルタイムの即興を通じて伝統的な言語を新たな可能性へと拡張します。伝統は静的なものではなくなり、文化遺産はヒューマン-AIのパートナーシップを通じて再構築され、動的なものへと変化します。

「Cyber Subin」は、無形文化遺産を知的技術とポストヒューマン振付術と組み合わせる潜在的な可能性を示しています。この作品は、過去、現在、未来にわたる対話、すなわち**生きた生態系(リビング・エコシステム)**として機能します。そこでは、タイ舞踊が人間の身体と人工知能との協働を通じて進化し、伝統的な知恵を現代的な文脈で保全しつつ、芸術的表現を拡大しています。

活用されているAI技術

振付知能(Choreographic Intelligence)のモデル化

  • 伝統知のアルゴリズム化:タイ舞踊の基本ポーズ「メー・ボット・ヤイ」を解体し、エネルギー、曲線、軸点など6つの振付原理へと計算モデル化しています。
  • モーションデータの動的生成:キャプチャされた静的なダンスデータに対し、AIがリアルタイムでアニメーションのキーフレームや各関節の動きを動的に変更します。

動作制御のアルゴリズム

  • 数学的フィルタリング:ガウス平滑化フィルタや低域・広域通過フィルタ(Low-pass/High-pass filter)を回転クォータニオンに適用し、動きの曲線美や流動性を制御しています。
  • 逆運動学(IK)の応用:インバース・キネマティクスと線形補間を用い、身体の各部位を特定の軸点(Axis Points)に向けて正確かつ自然に誘導します。
  • タイミングの非同期制御:各肢体のキーフレームに時間的なオフセット(ずれ)を加えることで、伝統的な同期運動と現代的な非同期運動を自在に切り替えます。

リアルタイム・インターフェース

  • 音声認識によるパラメータ操作:Google Cloud Speech-to-Textなどの音声認識技術を統合し、ダンサーや観客が声で振付のパラメータを瞬時に変更できる仕組みを構築しています。
  • Webベースの3Dレンダリング:Vue.jsとThree.jsを用いたインターフェースにより、AIが生成した動きを低遅延で3D空間に視覚化し、人間との即興的な対話を可能にしています。

身体的限界の拡張

  • ポストヒューマン的表現:物理的な制約を排除した仮想空間ならではの「関節回転パラメータ」を設定し、人間には不可能な身体構成や動きを生成することで振付の語彙を広げています。

コメント (AICAサイトより)

タイの伝統舞踊とAIを結びつけ、人間とAIが共に踊るという挑戦的な試みを高く評価した。ダンサーの確かな技術によって、作品としてのダンスの質がしっかりと担保されている点も特筆に値する。

また、タイ伝統舞踊の身体原理や所作をCG上でモデル化し、視覚的かつ分析的に提示している資料も非常に興味深く、文化的・技術的両面から新しい理解をもたらすものであった。

Domestic Data Streamers, Synthetic Memories

Webサイト

認知症患者や高齢者が抱く「写真に残っていない記憶」をAIで可視化し、失われた家族のアルバムを再現する試みである。対話を通じて記憶の断片を抽出し、画像生成AIを用いて修正を繰り返すことで、対象者の内面にある情景を具体化する。単なる画像生成を超え、人々の尊厳や心の平穏に寄り添うセラピー的な役割も果たす。

作品概要 (AICAサイトより)

「Synthetic Memories」は、加齢、強制移住、あるいは神経変性疾患によって失われる危機にある個人の記憶を再現し、保存するためのプロジェクトです。Domestic Data Streamersが主導するこの取り組みは、綿密なインタビューと生成AIを組み合わせることで、口頭による記憶の語りを「Memory Vectors(記憶のベクトル)」と呼ばれる視覚イメージへと変換します。

生成される画像は、写真のような写実性(フォトリアリズム)ではなく、あえて「夢の中のような」美学に基づいてデザインされています。これは、事実としての正確さよりも「感情的な共鳴」を優先させ、かつ歴史的な記録写真とは明確に区別するための意図的な選択です。

本プロジェクトは、認知症患者への回想療法の支援や、故郷を追われたコミュニティが自身のルーツと再びつながる手助け、さらには無形文化遺産の保存など、多岐にわたる社会的意義を担っています。同意とデータ保護を最優先する厳格な倫理的枠組みの下で運営される「Synthetic Memories」は、テクノロジーを通じて世代間の対話を促進し、人間のアイデンティティの連続性を守り抜くことを目指しています。

コメント (AICAサイトより)

強制移住や認知症などにより揺らぐ個人の記憶と尊厳に、丁寧なインタビューによる文脈の分析を用いて、AIによる失われかけたナラティブの再構築と感情の回復を試みる実践的活動。公共サービスへの実装を通じ、人間性を支える技術の社会的可能性を国際的協働として具体的に示している。

  • 使用技術: 画像生成AIを活用し、対話に基づくプロンプトの調整とフィードバックのループによる記憶の精緻化。
  • 評価ポイント: AIを高度な計算機ではなく、対話を促し記憶を救い出す「共生」のメディアとして定義した社会的意義。

木原 共 + Playfool, Deviation Game

Webサイト

人間が「AIには認識できないが、人間には正解が伝わる」絶妙なラインの絵を描き、AIと対決するお絵描きゲームである。AIが学習データのパターンに依存している特性を逆手に取り、そこから「逸脱」することで勝利を目指す。遊びを通じて、AIの認識アルゴリズムの限界と、人間ならではの文脈理解や創造性を直感的に理解させる。

作品概要 (AICAサイトより)

「デヴィエーション・ゲーム」は、人間がAIが学習した知識を超えて新しい表現を生み出せるかを探る、ゲーム形式のプロジェクトです。このゲームでは、プレイヤーは「ネコ」といったお題を、他の人間のプレイヤーには理解できるが、画像認識AIモデルには理解できないように描かなければなりません。このゲームは、コンピューターサイエンスの父、アラン・チューリングが1950年に考案した「イミテーション・ゲーム」から着想を得ています。のちに拡張され、チューリングテストとして知られるようになったこの思考実験では、AIが人間を模倣できるかどうかが焦点でした。私たちはこの関係性を逆転させ、AIの理解から人間を逸脱させることを試みます。とある人間の表現が過去に存在したかどうかをAIに見分けさせることで、過去に存在しなかった新たな表現の可能性を世界中のプレイヤーたちと探ります。

コメント (AICAサイトより)

AIを簡単なゲームに組み込むことで、人間的な創造性の拡張を試みる批評的・ハッキング的なアプローチ。ゲームとしての完成度も高く、遊びの体験を通じて学びが生まれる点が高く評価された。
AIの性能の性質を利用するという点が今後のゲームのあり方の一つの可能性を示したといえる。

  • 使用技術: AIによるリアルタイム画像認識・分類技術。AIが予測するカテゴリーの確率分布を可視化。
  • 評価ポイント: AIの「限界」を遊びのルールに変え、AI時代の新たなリテラシー教育をエンタメとして成立させた点。

九段理江 / 博報堂他, 九段理江に95%AIで小説書いてもらってみた。

height:500

Webサイト

芥川賞作家の九段理江氏が、本文の95%をChatGPT(GPT-4)に委ねて執筆した短編小説プロジェクトである。作家による執筆プロセス(プロンプトの全履歴)を公開し、AIとの対話の中でいかにして文学性や作家性が立ち上がるかを検証した。AIの「空虚さ」や「非人間的な文体」を逆手に取り、批評的な奥行きを持つ作品へと昇華させている。

作品概要 (AICAサイトより)

『東京都同情塔』で第170回芥川賞を受賞した九段理江氏は、受賞記者会見で「小説の5%をAIで書いた」と発言し大きな話題と議論を巻き起こした。AIを活用したクリエイションを私たちはどう捉えるべきか…? 実際の受賞作を読めば「5%をAIで書く」ことの必然性は一目瞭然。何より、新しく、面白い。では、もしその条件を逆にするなら? つまり「95%をAIで書く」ことを前提とするなら、どんな物語が、「うれしい事件」が、生まれるのだろうか?
この野心的な実験を九段理江氏に引き受けていただき、生成AIと九段氏が共同で執筆した4000字の短編小説『影の雨』が完成。九段氏が生成AIに指示を出した壮大な「プロンプト」全文とともに雑誌およびWebサイトにて公開した。

コメント (AICAサイトより)

小説の実際の分量の何倍ものプロンプトを使ってAIとの「対話」を通じて「書いた」本作は、現在のLLMをベースにしたAIシステムで何ができるのか/できないのかを見極める上でも試金石とも言える作品。

大学のレポート作成にも AI が広く用いられるようになった 2025 年において、AI を使ってテキストを生成するという行為自体は、すでに特別なものではない。しかしその一方で、本プロジェクトでは プロの小説家が実名で AI による小説制作に挑み、さらにそのプロンプトをすべて公開している。
この透明性と姿勢は非常に大胆であり、「創作とは何か」「作者とは誰か」という本質的な問いを社会に投げかけている点で、特に高く評価された。

  • 使用技術: 大規模言語モデル(LLM)を用いた「生成→評価→指示」の高速リライトサイクル(チェーン・オブ・リライト)。
  • 評価ポイント: 著作者性の境界を揺さぶり、AI時代の「書くことの価値」を問い直した極めて批評性の高い文学的実験。

Nao Tokui他, Neutone Morpho — Real-time AI Audio Plugin and Platform

Webサイト

演奏される音色を、AIを用いてリアルタイムで別の音色へと変換するオーディオプラグインである。ピッチや音量を保ちながら、楽器の音を環境音や架空の音へと瞬時に変容させ、既存の楽器の概念を拡張する。クリエイターが自らAIモデルを学習・公開できるプラットフォームも備え、音楽制作におけるAI活用の民主化を推進している。

作品概要 (AICAサイトより)

「Neutone Morpho」は、高度な機械学習技術を搭載した、DAW(デジタル・オーディオ・ワークステーション)向けのリアルタイム音色モーフィング・プラグインです。元の音の形状やニュアンスを保ちつつ、入力された音を全く異なるスタイルの音へと再合成します。また、業界初の試みとして、アーティストが自身の音源素材をアップロードし、独自の音響テクスチャを生み出すためのカスタムモデルを学習できるサービスも提供しています。

Neutone Morphoを通じ、私たちは、巨大テック企業がWeb上から無断で収集(スクレイピング)した大規模かつ無機質なデータセットに依存しがちな、現在のAI音楽ツールの支配的なあり方に一石を投じています。

本プラグインは世界各地の大学講義で導入されているほか、CTMやMUTEKといった国際的な音楽フェスティバルにおけるアーティスト・ワークショップでも活用されています。さらに、心身に障害のある若者たちの支援施設とも密接に連携し、音楽をつくる喜びを共有するワークショップも実施してきました。

AIがアーティストに新たな音の可能性をもたらし、すべての人にとって音楽制作がより身近で楽しいものになる未来へ。Neutone Morphoは、そんな未来に向けた私たちの第一歩です。

コメント (AICAサイトより)

特筆すべきは、リアルタイムでオーディオ入力を別の楽器の音色へと変容させる “トーン・モーフィング(音色変換)” 技術と、それを音楽制作環境で自在に扱えるプラグインとして提供している実用性である。また、オープンな SDK を通じて、研究者・エンジニア・アーティストが各々の視点からモデルを開発・共有できる「共創のプラットフォーム」として機能している点も極めて重要だ。

AI 研究の最前線にある技術を、プログラミング知識を持たない音楽制作者にも開かれた形で提供し、創造の民主化を実質的に推進している点は高く評価される。

AI とアーティスト/音楽家とをつなぎ、これまで実現し得なかった新しい音の可能性を提示するこのプロジェクトは、きわめて意義深く、また同時代性を強く帯びている。今後、ハードウェア開発を含むさらなる展開にも注目したい。

  • 使用技術: リアルタイム音色変換(トーン・モーフィング)と、ユーザー独自のモデル学習を支援するクラウド基盤。
  • 評価ポイント: 音楽表現における「即興性」や「身体性」をAIに持ち込み、新たな楽器としての可能性を提示した実用性。

Dan Moore他, The Great American Pastime

height:500

Webサイト

アメリカ文化の象徴である野球を、AIを用いて無限に再解釈し続ける映像作品である。過去の膨大な試合映像や文化的イメージを学習させたモデルが、実在しないが「野球らしさ」に溢れたシーンを絶え間なく生成し続ける。永遠に続くループの中で、我々が抱くノスタルジーや文化的儀式の本質を浮かび上がらせる。

作品概要 (AICAサイトより)

「The Great American Pastime」は、アメリカにおける最も重要な文化的儀式の一つである「野球」を、人工知能を通じて捉え直す作品です。本作では「Infinite Baseball Radio Network」を通じ、AIによって生成された野球の試合を24時間絶え間なく放送し続けます。それぞれの放送は、生のスポーツラジオ番組が持つリズム、口調、そして感情の機微を捉えており、長きにわたり親しまれてきた実況中継の響きを彷彿とさせます。試合のシミュレーションには、過去20年分の野球統計データを学習した小規模言語モデル(SLM)と、試合の物語を鮮やかに描き出す大規模言語モデル(LLM)が組み合わせて使用されています。これらのシステムが連携することで、一球一球、そしてイニングごとに展開される、完全な試合が生み出されるのです。本プロジェクトは、野球を「データのシステム」であると同時に「物語のシステム」として考察する試みでもあります。数字、記憶、そして信じる心が重なり合い、そこに意味と情緒的な結びつきが形成されます。「The Great American Pastime」は、野球というゲームを、ノスタルジーと想像力を絶えず喚起する「生きた文化的シグナル」へと昇華させます。

コメント (AICAサイトより)

AIによってコンテンツのあり方に新しい疑問符を投げかけた好事例。アメリカの国民的娯楽として親しまれ、どこか懐かしさを感じさせる野球の実況中継が、AIによって無限生成されるという対比が印象的である。AIという最新技術とその特徴とも言えるある種のハルシネーションによって、ノスタルジーや文化的記憶とは何なのかをアイロニカルに問い直している。

  • 使用技術: 無限のループ映像を生成する独自の拡散モデル(Diffusion Model)とデータ学習技術。
  • 評価ポイント: 文化的アイコンをAIで再構築し、デジタル時代における「永遠のノスタルジー」を視覚化した芸術的表現。

Circus Grey他, Natural Intelligence

Webサイト

AI生成画像が氾濫する現代において、あえて「現実の風景」をプロンプト風のテキストと共に提示した広告キャンペーンである。一見AIが生成した超現実的な景色に見える写真は、全て実在する場所で撮影されたものである。AI時代の視覚体験を逆手に取り、写真というメディアが持つ「真実性」や「現実世界の豊かさ」を再認識させる。

作品概要 (AICAサイトより)

人工知能が文化的な話題を席巻し、数え切れないほどの人々がわずか数行のプロンプト入力で非現実的な風景を生成しているこの時代。ニコンは、世界にある本質的なことを思い出させるために立ち上がりました。 それは、「現実は、いかなる合成物(シンセティック)よりも驚異に満ちている」ということです。
「Natural Intelligence」は、世界各地の息をのむような絶景で撮影された、本物の写真のみで構成されたキャンペーンです。それぞれの写真には架空の「AIプロンプト」が添えられ、まるでそれがあり得ない空想の世界であるかのように描写されていますが、実はすべて実在する風景なのです。CGIも、AIも使用していません。そこにあるのは、ニコンのレンズを通して捉えられた、驚くべき大自然のありのままの姿だけです。
このキャンペーンは、私たちの地球のかけがえのない美しさと写真という「技」を称えることで、テクノロジーを巡る議論を再定義しました。ニコンを単に「AIに対抗する存在」としてではなく、本物の探求、本物の発見、そして本物の体験を支持するブランドとして位置づけたのです。
圧倒的に肯定的な反響とブランド認知の向上を達成した「Natural Intelligence」は、多くの人々を屋外へと誘い、カメラを手に取らせ、現実世界とのつながりを取り戻すきっかけを与えました――目の前に広がる、その驚くべき風景とともに。

コメント (AICAサイトより)

画像生成AIが汎用化する今において、写真産業を牽引してきたNIKONが「自然知能」と謳い、撮る行為の価値を問い直した問題提起の作品。元素材の出元と加工の可能性をめぐる議論も含みながら、写真家の創造性や産業構造そのものへの影響に正面から向き合う姿勢が評価された。

  • 使用技術: 画像生成AIのプロンプト構文を用いた、写真表現と広告コミュニケーションの再定義。
  • 評価ポイント: AI技術そのものではなく、AIブームという「文脈」を巧みに利用して現実の価値を訴求した逆転の発想。

藤村憲之, 那珂湊駅と話す2.0

height:500

Webサイト

那珂湊駅という「場所」そのものと対話ができるAIインスタレーションである。駅の歴史や地域の記憶を学習したAIが、駅舎の「人格」として訪問者と会話を交わす。デジタルツイン的なアプローチにより、物理的な場所と人間の間に新しい感情的な繋がりを創出し、地域のアイデンティティを再定義する試みである。

作品概要 (AICAサイトより)

那珂湊駅と会話する体験そのものが、この作品です。
観客がスマートフォンからAIに話しかけると、どんな話題も駅の物語へとつなげ、ユーモアを交えて応答し、会話の雰囲気に応じてホームの照明が変化します。たとえば、駅に住んでいる猫について尋ねると、猫の話とともに、黄色と猫の毛色を映した光がホームを染めます。
チャットは https://mmm-ai-nakaminato.web.app から体験できますが、光の変化は現地でしか見ることができません。
作家は、このAIと建築が融合した存在が、駅を訪れる人々のあいだに静かなつながりを生むことを願っています。そこでバージョン2.0の画面では、あなたとAIの対話の隣に、他の来訪者との対話も表示しています。

コメント (AICAサイトより)

本作は、駅という公共空間にAIを介した対話を導入し、通過点だった場所を記憶と感情が蓄積するメディアへと変容させた。ボディを持たないAIが情報空間から物理空間へと滲み出し、人々の言葉を受け止め、応答として返すことで、断片化されていた日常の声が緩やかに接続され、地域や場の関係性、さらには時間の層そのものを編み直していく。

  • 使用技術: 地域の歴史データを学習させた大規模言語モデルと、音声合成・認識を組み合わせた対話システム。
  • 評価ポイント: 場所という物理的存在をAIで擬人化し、観光や地域活性化に新たな視点をもたらした体験デザイン。

evala, Studies for

Webサイト

音響アーティストevala氏の過去の空間音響作品を学習したAIによる、新たな空間音響の生成実験である。AIが作者特有の音の配置や質感の癖を抽出し、人間では思いつかないような新たな音響空間を提示する。人間とAIが創作のプロセスを共有し、アーティストのスタイルを拡張・解体していく試みである。

作品概要 (AICAサイトより)

本作は、これまでにevalaが発表してきた36の立体音響作品のサウンド・データを学習したサウンドエフェクト生成AIを用いて、空間的作品をつくる試みである。サウンド(evalaがシグネチャーとして作品の始まりに用いている音)とテキスト(学習に用いられた作品のうち8作品のタイトルをチャンネルごとに選択)の二つをリファレンス(プロンプト)として、リアルタイムかつマルチチャンネルで「evalaのような音」が生成され続ける。このプロジェクトは、作家不在でも立体音響作品を永続的に継承・制作しうる新しいアーカイヴのかたちを探求する実験であり、本作品はその最初のスケッチとなる。

コメント (AICAサイトより)

AIを用いて作家不在後も創作が続く構想を作家本人が研究開発チームと共に協同し、リアルタイムに展開し続ける動的アーカイブという形で、一期一会の作品として提示した点が、新規性と問題提起の両面で高く評価された。会期中約3ヶ月24時間マルチチャンネルで生成する技術的挑戦も同時に行われている点も注目された。

  • 使用技術: 独自の音響空間データを学習したサウンド生成AIと、マルチチャンネル音響出力システム。
  • 評価ポイント: 聴覚表現におけるAIの可能性を追求し、作家の個性をデータ化して拡張しようとする前衛的な姿勢。

Qosmo, Spot-if-AI

height:500

Webサイト

Spotify上の楽曲がAI生成されたものかどうかを判定するブラウザ拡張機能である。AIコンテンツがストリーミングサービスを埋め尽くす「AI Slop(AIの泥)」現象に対し、楽曲の透明性を高めることでアーティストの権利と音楽エコシステムを守ることを目的としている。ユーザーに聴取の選択肢を与え、プラットフォームの姿勢に問いを投げかける。

作品概要 (AICAサイトより)

近年、SunoやUdioといったツールで生成された楽曲が、ストリーミング・プラットフォームへ自動的に大量アップロードされるケースが急増しています。こうしたAIコンテンツの氾濫は、人間のミュージシャンの生計を脅かすだけでなく、音楽のエコシステムそのものを希薄化させる懸念があります。
私たちのツールは、AIによって生成された楽曲を特定することで透明性を確保し、アーティストの正当な収益を守ることを目的としています。
2025年5月にQosmoよりリリースされた「Spot-if-AI」は、ウェブサイトおよびオープンソースのChrome拡張機能として提供されています。本ツールは、Rahmanらによる先行研究(2025年)の「SONICS」に基づいた独自のAIモデルを使用しており、ある楽曲がSunoやUdioなどのAI音楽プラットフォームによって「完全に生成されたものか否か」を判定します。
Deezerのように、プラットフォーム上でAI生成楽曲へのタグ付けを開始した事例もありますが、多くのサービスでは未だ対応が進んでいないのが現状です。
私たちは「Spot-if-AI」を通じ、Spotifyなどのプラットフォームにすでにどれほどの規模でAI楽曲が存在しているのかをリスナーが理解する一助となり、そしてこれらのプラットフォームが将来どうあるべきかについて、より広範な議論が生まれることを願っています。

コメント (AICAサイトより)

音楽配信サービスで配信された楽曲がAI生成であるかを判定するシステム。AIによって生成された音楽の蔓延に対する批評的な対抗手段として、その「社会的意義」と問題提起性が評価された。

  • 使用技術: 音声波形からAI生成特有のパターンを検知する深層学習モデルのローカル動作実装。
  • 評価ポイント: AIの負の側面に対する実践的な解決策を提示し、創造性の倫理と透明性に寄与する技術的貢献。

安野貴博+チーム安野,「チーム安野」東京都知事選プロジェクト

Webサイト

2024年東京都知事選における、AIエンジニア安野貴博氏によるデジタル民主主義の実験である。「AIあんの」というアバターを通じて、有権者数千人の質問に24時間体制で答え、政策へのフィードバックを収集した。個別の声を政治に反映させるためのインターフェースとしてAIを活用し、民主主義のアップデートを試みた事例である。

作品概要 (AICAサイトより)

2024年東京都知事選挙に無所属で立候補したAIエンジニア安野貴博(現参議院議員・チームみらい党首)によるプロジェクト。「デジタル民主主義」を掲げ、AIとオープンソースを活用した新しい市民参加型の選挙を実践した。①GitHubでマニフェストを公開し、AIを活用して市民からのPull Requestで改善提案を受け付ける仕組みを構築②政策を学習したAIアバター「AIあんの」により、市民がいつでも質問・提案できる環境を整備③ポスター掲示板の地図マッピングによるゲーミフィケーションの導入などを行った。これらをすべてオープンソースで公開し、「ブロードリスニング」を含むデジタル民主主義の新たな実践として、その後の政治・行政に影響を与えた。

コメント (AICAサイトより)


単なるツールの導入にとどまらず、政治活動におけるクリエイティブな提案として非常に価値が高いと判断された。AIを活用して効率的に政策を伝えようとする姿勢そのものや、今後の政治や公的な活動におけるAI・デジタル活用の重要なベンチマークとなり得る点が高く評価された。

  • 使用技術: 政策集を学習させたRAG(検索拡張生成)ベースの対話AIと、音声合成アバター技術。
  • 評価ポイント: 政治参加のハードルをAIで下げ、テクノロジーによる社会変革の具体的かつ力強いモデルを示した点。

諸星 岬他, 『モンスターハンターワイルズ』筋肉シミュレーションの機械学習

height:500

Webサイト

ゲーム『モンスターハンターワイルズ』における、機械学習を用いたモンスターの筋肉シミュレーション技術である。物理演算だけでは困難だった複雑な筋肉の収縮や揺れを、事前学習したモデルによって軽量かつ高精度に再現する。架空の生物に圧倒的な生命感とリアリティを吹き込み、没入感の高いゲーム体験を実現している。

作品概要 (AICAサイトより)

『モンスターハンターワイルズ』に登場するモンスターの筋肉表現に使用されたZivaのセットアップワークフローの解説。
Zivaでは筋肉シミュレーションに使用されるZivaVFXと機械学習を用いたZivaRTがあります。
ZivaRTの機械学習を用いることでリニアブレンドより多くの情報を盛り込むことができ、キャラクターのよりリアルな表現を実現できたので、テクニカルアーティストが試行錯誤により得られた知見をまとめMLDeformerを使うために必要な情報を共有します。

コメント (AICAサイトより)

アニメーションの制作パイプラインを根底から変革する可能性を秘めた技術研究。クリエイティブの「インダストリへの影響」や、他の人が視点を置きにくいところでの取り組みによりアウトプットを結実させている点が評価された。

  • 使用技術: 筋肉の物理挙動を近似するニューラルネットワークを用いたランタイム・シミュレーション。
  • 評価ポイント: エンタメ分野でのAIの実用化において、最高峰の技術力と職人的なこだわりが結実している点。

Scott Allen, Unreal Pareidolia -shadows-

Webサイト

影の中に特定のパターンを見出す心理現象「パレイドリア」をAIで増幅させるインスタレーションである。カメラが捉えた何気ない影の形から、AIが動物や顔などの意味を見出し、プロジェクションによって可視化する。人間の知覚の曖昧さと、AIのパターン認識の特性を重ね合わせ、現実と非現実の境界を問いかける。

作品概要 (AICAサイトより)

ある対象を見たときに、普段見慣れているパターンを心に思い浮かべてしまう――「パレイドリア」と呼ばれる知覚の傾向があります。日本では古くからこれを「見立て」と呼び、茶道や日本庭園など、様々な芸術や文化の中に深く浸透してきました。
人は視覚的な観察を行う際、自身の記憶の中から視覚的な類似性を探し出し、想像を巡らせます。私は、非人称的(Impersonal)なパレイドリア装置を作ることで、鑑賞者の想像力を拡張できるのではないかと考えました。
本作では、Stable Diffusionの「img2img」と「BLIP-2」を使用し、日用品やおもちゃが作る「影」に対して、リアルタイムに画像とキャプションを生成します。鑑賞者が影絵を作ってボタンを押すと、AIによる生成が開始されます。続いてキャプションが表示され、生成された画像がプロジェクターによるプロジェクションマッピングで影絵に重ね合わされることで、影とAIのイメージの対応関係を確かめることができます。

コメント (AICAサイトより)

子どもの頃の遊びやコミュニケーションなど人間が古くから行ってきた営みをAIで拡張した、「人間ありき」の新しい遊びを発明している点が高く評価された。

  • 使用技術: 入力映像からリアルタイムでパターンを検出・変換する、画像認識および生成アルゴリズム。
  • 評価ポイント: 人間の認知の癖をAIで拡張し、日常の見慣れた風景を驚きに満ちた芸術体験へと変容させた点。

飯田羊 / 株式会社電通他, おぼえたことばのえほん

height:500

Webサイト

子供が覚えたての言葉を入力すると、その単語をテーマにした世界に一冊だけの絵本をAIが自動生成するサービスである。親子のコミュニケーションを軸に、AIが子供の語彙形成や想像力の発達を支援する。技術を冷たい自動化ではなく、家族の物語を編むための温かなツールとして活用している点が特徴的である。

作品概要 (AICAサイトより)

「おぼえたことばのえほん」は、子どもが覚えた言葉を入力すると、AIが関連語とつなげて一冊だけの物語を自動生成するサービスです。言葉同士のつながりを可視化し、興味の世界を広げる体験として読書週間に限定公開しました。興味語彙に出会ったときの記憶の定着に着目し、「その子らしい語彙」を学びの起点にする新しい絵本の形を提案。物語に問いの構造や意外性を組み込み、子どもの好奇心に寄り添う“体温のあるAI”として教育×テクノロジーの可能性を探りました。

コメント (AICAサイトより)

子供による言葉の獲得という日常的なプロセスを単なる記録にとどめず“物語性のある表現”へと昇華させられるようにした点は新しく、AIの強みを活かしたクリエイティビティの広げ方が高く評価された。

  • 使用技術: 児童向けに適した語彙を制御する言語モデルと、一貫性のあるキャラクター描写を実現する画像生成AI。
  • 評価ポイント: AIを日常の教育や育児に自然に溶け込ませ、創造的な体験を家族に提供するプロダクトデザイン。

Leo Mühlfeld他, Large Language Writer

Webサイト

文章執筆において、AIが生成する言葉を単に受け入れるのではなく、人間とAIが「縫い目(seam)」のある相互作用を行うためのインターフェース研究である。AIの提案を疑い、取捨選択し、あるいは意図的にズラすプロセスを重視する。便利さの追求ではなく、あえて不自由さや摩擦を残すことで、人間の思考を深める執筆の在り方を提案する。

作品概要 (AICAサイトより)

未来において、私たちはどのように「書く」のでしょうか? そして、なぜ私たちはあえて「シームフル(継ぎ目のある)」なインタラクションをデザインすべきなのでしょうか?
「Large Language Writer (LLW)」は、大規模言語モデル(LLM)との誠実なインタラクションを探求するプロジェクトです。 多くのデジタルツールが「魔法のように機能する」体験の裏側にその仕組みを隠蔽してしまうのに対し、LLWは異なるアプローチを提案します。それは、ユーザー自身を生成プロセスの中に位置づけることです。
オペレーターはテキスト生成の過程でその方向性を自ら操る(ステアリングする)ことができ、直接的かつ直感的なコントロールが可能となります。また、本プロジェクトはソフトウェアの枠を超え、AI搭載技術におけるハードウェアがいかに進化すべきかについても問いかけています。そのモジュール式の構造は、技術の陳腐化に対してもしなやかに適応し、ユーザーと共に進化していくデバイスのあり方を提案しています。
クリティカル・デザインの文脈に根ざしたLLWは、現在の生成AI統合の流れに疑問を呈し、透明性が高く、ユーザーの主体性を尊重する(エンパワリングな)、人間中心の代替案を提示します。
本プロジェクトは問いかけます。 「未来において、私たちはどのように書くのか?」 そして、「すべてが『魔法のように』機能してしまう現在のAI主導の世界において、いかにして信頼と主体性(エージェンシー)を育むツールを生み出せるのか?」と。

コメント (AICAサイトより)

LLMを用いて文章を書く・編集するために特化したUI/UXのあり方をデザインするプロセスを通して、LLMの本質を批評的に炙り出そうとしている点が評価された。

  • 使用技術: 執筆者の意図を反映しつつ、多様な視点を提示するLLMの制御インターフェース開発。
  • 評価ポイント: 「AIに書かせる」のではなく「AIと共に考える」ための道具の在り方を追求した、デザイン思想の鋭さ。

Yuqian Sun他, AI Nüshu

Webサイト

中国・湖南省で女性たちの間で密かに受け継がれてきた文字「女書(Nüshu)」をAIで復元・拡張するプロジェクトである。失われつつある独自の文化形式をAIに学習させ、現代の文脈で新しいメッセージを生成できるようにする。文化の死を防ぐだけでなく、AIを通じてその精神性を現代に再活性化させる試みである。

作品概要 (AICAサイトより)

「Nüshu(女书)」は、中国・湖南省の女性たちによって何世紀にもわたり独自に創り出され、使用されてきた、世界でも類を見ない女性専用の文字です。正規の教育を受ける機会を奪われていた当時の女性たちが、互いに意思疎通を図るために生み出した手段でした。
AIは、近代以前の中国の女性たちから学び、自らの「秘密の言語」を創り出すことができるのでしょうか?
「AI Nüshu」は、計算言語学と女書の歴史的遺産を融合させたインタラクティブ・インスタレーション作品です。 本作では、読み書きの教育を受けられなかった近代以前の女性たちを模倣するようAIエージェントを学習させ、全く新しい言語システムを構築させます。これは、家父長制的な抑圧に対する抵抗の象徴であるとともに、非西洋的かつフェミニズムの文脈における「言語の発生」を表現する試みです。

コメント (AICAサイトより)

古代中国の女性たちが抑圧の中で生み出した「女書」というテーマの選択自体が、きわめて意義深い。本プロジェクトは、その歴史的背景を踏まえつつ、AI によって新たな言語を生成しようとする大胆な試みによって、言語がどのように生まれ、誰がそれを創りうるのかという本質的な問いを投げかけている。
計算言語学とフェミニズム的視座を交差させながら、AI が“学習者”という従来の位置付けを超え、文化的・社会的制約を内在化したかのように独自の言語体系を形成していくプロセスは非常に先鋭的である。
人間と機械、権力と表現、既存の言語観と新たな言語生成の可能性が交錯する本作は、言語とは何かという根源的な問いを鋭く突きつける、極めて重要なプロジェクトである。

  • 使用技術: 希少言語や独自文字の構造を学習・生成する、特化型の大規模言語モデル。
  • 評価ポイント: 絶滅の危機にある文化をAIで救い上げ、未来へと受け渡す「デジタル・アーカイビング」の先駆的事例。

Dentsu Lab Tokyo, FANTOUCHIE: Generative Haptic AI

Webサイト

入力した言葉のイメージに基づいて、AIがリアルタイムで「触覚」を生成するシステムである。例えば「ふかふか」「刺すような」といった言葉から、それに対応する振動や圧力を振動素子を通じて提示する。視覚や聴覚に偏りがちなAI表現を、皮膚感覚というより原初的な身体領域へと拡張する挑戦的な試みである。

作品概要 (AICAサイトより)

FANTOUCHIE(ファンタッチー)は、ユーザーが入力した言葉から触り心地を生成しフィードバックするシステムです。

本システムは、テキスト入力から触覚フィードバックを生成し、振動スピーカーを通じて出力します。「ユニコーンの角」のような架空のものの触感も表現できることが特徴です。

開発にあたっては、ピエゾセンサを搭載した爪型デバイスを実装し、さまざまな素材の触り心地を音として収集。これらの音データとオノマトペを紐づけることによって、独自のデータセットと触覚生成モデルを構築しました。

コメント (AICAサイトより)

言葉から触り心地を生成するシステム。LLMや感性AIなど普遍的な技術をユニークなインタラクション設計に落とし込んだ点が評価された。

  • 使用技術: 言語概念と物理的な振動パターンを紐付ける、マルチモーダルな生成AIモデル。
  • 評価ポイント: AIが「質感」を理解し、物理的な感覚として人間にフィードバックする新たなインターフェースの可能性。

朝日新聞社, AI短歌プロジェクト

Webサイト

日本最古の公募歌壇「朝日歌壇」の膨大なデータを活用し、AIと歌人が共創するプロジェクトである。過去の名歌を学習したAIが短歌を生成し、それを歌人が批評・添削することで、短歌という定型詩の表現の極北を探る。伝統的な韻律とAIの意外性が衝突し、言葉の持つ感性を再発見する場となっている。

作品概要 (AICAサイトより)

朝日新聞社のAI短歌プロジェクトは、短歌生成AIの開発と歌人との対話を軸に、「人間にとって短歌とは何か」を問い直す研究・実践である。歌人や参加者を交えたイベントの実施に加え、AIによる短歌検索基盤「朝日歌壇ライブラリ」の開発や社外研究者との共同研究を通じ、活動を継続的に展開している。

コメント (AICAサイトより)

LLMの技術を日本の伝統的な詩歌である短歌の創作に応用したプロジェクト。LLMブームにおける文章領域の革新を体現し、短歌という文化形式にどうAIが関わるかという批評的・文学的な視点が評価された。

  • 使用技術: 1995年以降の入選歌約5万首を学習させた短歌生成モデルと、感情に基づく検索エンジン。
  • 評価ポイント: 100年以上の歴史を持つ文化をAIで再解釈し、創作の本質を歌人と共に問い直した文学的・社会的な活動。

Jacob Adler, Total Pixel Space

Webサイト

「あらゆるデジタル画像が含まれる全ピクセル空間」という概念をAIで表現した写真作品群である。過去から未来まで、存在し得た全ての光景がピクセルの組み合わせの中に既に存在しているという哲学的視点を、AIによる膨大な画像生成を通じて提示する。写真という媒体の限界と、デジタル空間の無限性を対比させている。

作品概要 (AICAサイトより)

「Total Pixel Space」には、理論上可能なすべてのデジタル画像が内包されています。
そこには、あなたの全人生を記録した映画も、あなたが生きることのなかった無数の人生も、さらには地球の内外を問わず、実在した、あるいは決して存在しなかったあらゆる生物や物体の「生」が、ありとあらゆる角度から収められています。

コメント (AICAサイトより)

あらゆる文字の組み合わせのすべてを収めたというボルヘスの『バベルの図書館』の映像版とも言える作品である。文字をピクセルに置き換え、映像が“膨大だが有限なピクセルの時間的・空間的な組み合わせ”であるという原理そのものを題材にし、AIによってノイズから生成されたこの作品自体がそれを体現しているという自己言及的な構造が秀逸である。膨大な可能性の総体とその中で立ち現れる意味や価値の希少性を描き、創造性とは何かを問い直している。

  • 使用技術: 広範な概念を横断的に生成する、大規模な画像生成AIモデル。
  • 評価ポイント: 物理的な「撮影」という行為を、情報空間からの「抽出」という概念に変換した現代的な写真論。

dadabots (cj carr, zack zukowski) 他, PROMPT JOCKEYS – The Rise of DJing with a Neural Network

Webサイト

AIモデルをリアルタイムで操作しながらDJを行うパフォーマンス、およびその活動を追ったドキュメンタリーである。AIを便利な自動再生ツールとして使うのではなく、あえてコントロールが難しい複雑な楽器として扱い、演奏を「より困難にする」ことで、AI時代の卓越したパフォーマーの在り方を提示する。

作品概要 (AICAサイトより)

本ドキュメンタリーは、自ら音楽AIモデルをトレーニングする「ミュージック・ハッカーDJ」たちの集団を追った作品です。彼らの目的は、人間のDJに取って代わることではありません。むしろ、DJプレイを「格段に困難なもの」へと変えることにあります。
通常のDJは他人の作った既存の楽曲をかけますが、「プロンプト・ジョッキー」において、かけるべき曲はまだこの世に存在していません。それはGPUからダイレクトに生成される、生の「ニューラル・パイレーツ・ラジオ(海賊放送)」です。
架空のアーティスト、ジャンルの融合、決して起こり得なかったコラボレーション――。観客と共に創り上げられる、その場限りの熱狂的なアンセム(Ephemeral Bangers)。
これらのトラックは、その瞬間まで存在せず、そして演奏後には直ちに削除されてしまいます。 (ああ、なんと無常なことでしょう。だからこそ、私たちはその瞬間を深く味わうのです。)

コメント (AICAサイトより)

「まだ“存在しない音楽”を、リアルタイムで AI に プロンプトを与えてその場で生成し、DJ/ライブのように扱う」という発想の挑戦。音楽生成とプロンプトエンジニアリングの融合の好事例として評価された。

  • 使用技術: ライブ環境で音響生成パラメータを動的に操作する、カスタム学習されたニューラルネットワーク。
  • 評価ポイント: AIによる「自動化」に抗い、人間の習熟とスキルを必要とする「新しい楽器」への昇華を試みた点。

谷口 恭介他, everies

Webサイト

日常のありふれた物体をスキャンすると、AIがその形状や質感から独自の「キャラクター」を生成し、ARで命を吹き込むアプリである。コップや靴が目を持ち、喋り出す体験を通じて、子供のような好奇心で周囲の世界を再発見させる。AI技術を身近な「魔法」のような体験へと落とし込んでいる。

作品概要 (AICAサイトより)

everies は、身のまわりのあらゆるモノをユニークなキャラクターに変えるARアプリです。スマホで物体をスキャンすると、目や口が現れ、そのモノならではの性格・声・会話を持つキャラクターが誕生。声で話しかければ会話が続き、日常の景色がインタラクティブで遊び心あふれる世界に変わります。お気に入りのキャラは保存して、楽しい会話を続けることも。Googleによる「Gemini API Developer Competition」でBest Use of ARCoreを受賞。LLM×ARの組み合わせにより、あらゆる物に命を宿すこれまでにない体験を提供します。近日公式リリース予定!!

コメント (AICAサイトより)

日常のあらゆる物体に“キャラクター性”と“対話性”を付与し、世界の見え方そのものを変えてしまう AR × AI 体験であり、AIだからこそ可能な世界の再解釈 といえる。
発想力・AI特性・体験としての表現力が高いレベルで揃った作品 として評価された。

  • 使用技術: 物体認識(Object Detection)と、キャラクターの性格・対話を生成する言語モデル。
  • 評価ポイント: 高度な技術を意識させず、ユーザーの環境全体をプレイグラウンドに変える優れたUXデザイン。

Sihwa Park, Diffusion TV

Webサイト

1970年代の古いブラウン管テレビ(CRT)を用い、AIの生成プロセスを可視化するインスタレーションである。砂嵐のようなノイズから徐々に画像が立ち上がる「拡散モデル」の過程を、アナログテレビの物理的な質感と共に提示する。ブラックボックス化しがちなAIの内部処理を、ノスタルジックなメディアを通じて解読(デミスチファイ)する。

作品概要 (AICAサイトより)

「Diffusion TV」は、懐かしいブラウン管テレビを通して、AIの「拡散モデル(Diffusion Model)」におけるブラックボックス化されたプロセスを直感的に解き明かす、インタラクティブなAIアートインスタレーションです。
鑑賞者がテレビのダイヤルやアンテナを操作すると、AIによって生成された映像や音が変化します。カオスなデータノイズが「デノイズ(ノイズ除去)」のプロセスを経て、徐々に意味のある像へと結実していく様子を、実際に手を動かしながら体験することができます。
本作は、複雑なAIの仕組みと私たちの理解との間にある溝を埋める架け橋となり、生成AIという技術を、実際に触れて楽しみながら探求する機会を提供します。
テレビには3つのチャンネルが用意されています。「過去(絶滅した動物たち)」、「現在(絶滅危惧種)」、そして「未来(AIが想像する未知の生物)」。これらを通じて、人間、テクノロジー、そして自然環境の間に横たわる相互関係について深く考えるきっかけを与えます。
芸術的な解釈と体験型のAI技術を融合させた『Diffusion TV』。技術の進歩を追い求める過程で、私たちが守り続けてきたものは何か、そして失ってしまったものは何か――。その意味を、鑑賞者に静かに問いかけます。

コメント (AICAサイトより)

テレビという人々が慣れ親しんだインターフェースで生成AI画像・映像の仕組みを直感的に操作可能とし、人間の感覚と複雑なAI技術を高いレベルで橋渡しする体験として評価された。

  • 使用技術: 拡散モデルの生成過程をフレームごとに分解し、アナログ信号に変換して出力するシステム。
  • 評価ポイント: 最新の生成技術と旧世代のメディアを衝突させ、AIの物質性とプロセスを詩的に表現した点。

Senaida Ng / Brian Ho, KUNST KAPUTT

height:500

Webサイト

AIによって生成された楽曲、映像、3D空間を融合させた没入型のウェブ・エクスペリエンス・アルバムである。音楽制作の全工程にAIを介入させ、AI特有の「バグ」や「違和感」を芸術的なスタイルとして取り入れている。デジタル・プラットフォーム上での新たなアルバムの形態と、AI時代のポップ・カルチャーの在り方を提示する。

作品概要 (AICAサイトより)

「KUNST KAPUTT」は、没入型のウェブ体験として展開される、ジェネレーティブかつコラボレーティブなアルバム作品です。
本作は、音楽制作と利益分配における新たなエコシステムを構築するために、生成AIツールをどのように活用できるかを探求しています。
音楽分野での生成AI技術の発展に伴い、アーティストやクリエイターは、コンテンツの制作・消費における新たな課題とチャンスに直面しています。これらは、インタラクションやマネタイズ(収益化)における、これまでにない可能性を切り拓くものとなっています。

コメント (AICAサイトより)

音楽生成AIを用いて、個々のリスナーがアルバム内の楽曲の独自のリミックスを作成し、ブロックチェーン上でリリースすることを可能にした生成的アルバム。アーティストとリスナーの間の新しい関係性やこれまでにない音楽配信の方法を提示する。最新のAI技術の存在があって初めて可能になった野心的な試みが評価された。

  • 使用技術: 音楽、歌詞、ビジュアルの生成を一貫して行う複数の生成AIモデルの連携。
  • 評価ポイント: AIを補助的に使うのではなく、その特性を全方位的に受け入れ、新しい美的感覚を構築した実験的姿勢。

アンケート

アンケート


最終課題へ向けて! – Patatapを作る!

Image result for patatap

この講義「デザインとプログラミング」では、変数と定数、反復、乱数、論理式と条件文、アニメーションとベクトル、配列の操作、関数、そしてオブジェクト指向プログラミングと様々なトピックスを扱ってきました。最終課題はこれらの内容を総動員して、Patatap (https://patatap.com/) のようなインタラクティブなオーディオビジュアル作品をp5.jsで制作します。

Patatapはとてもシンプルなインタラクションで構成された作品です。キーボードを操作すると、それぞれのキーにシンプルなアニメーションが割り振られていて、同時にサンプリングされたサウンドが鳴るようになっています。仕組みはとても単純なのですが、キーボードをリズムにあわせてタイピングすることで音と映像が同期して、まるでVJのパフォーマンスをしているような気分を味わえます。キーボードの組み合わせは無限にあるので、いつまでも飽きることがありません。

今回は、最終課題に向け、p5.jsをつかってPatatapを制作するための方法について解説していきます。

スライド資料

制作テンプレート

今日はあらかじめサウンドファイルをアップロードしたテンプレートを用意しました

最終課題提出

最終課題「Patatapを作る」

最終課題制作のオンデマンドの教材を参考にしながら「Patatap」のようにキーボードからのタイピングで音と映像が同期する作品を制作してください。

最終課題提出フォーム

今後のスケジュール

  • 12月19日 (金) : コンストラクタとオブジェクトのバリエーション
  • 12月26日 (金) : 最終課題に向けて – Patatapをつくる
  • 1月9日 (金) : Beyond p5.js – p5.jsを越えて
  • 1月16日 (金) : 休み (月曜日の講義振替日)
  • 1月23日 (金) : 休講 (申し訳ありません!)
  • 1月24日 (土) : 補講 (3、4、5限) 3限に講評会

本日のアンケート

(最終課題提出フォームとは別で) 本日の講義に参加した方は以下のフォームに回答してください。

アンケート

サンプルプログラム


生成AIを活用したコーディング事前準備 – 最強のAI開発環境を構築する!

この実習の後半では、生成AIを活用したコーディング (プログラミング) を行っていきます。今回はまずその準備として、生成AIを活用したコーディングに最適な開発環境を構築していきます。生成AIをコーディングで活用するための環境は様々ありますが、今回は特に人気の高い以下の2つのツールを使用します。

  • Visual Studio Code (VS Code): Microsoftが提供する無料のコードエディタで、多くのプラグインが利用可能です。生成AIを活用するためのプラグインも豊富に揃っています。
  • GitHub Copilot: GitHubが提供するAIペアプログラミングツールで、コードの自動生成や補完を行います。VS Codeと連携して使用することができます。

この2つのツールを組み合わせることで、生成AIを活用したとても強力なコーディング環境を構築することができます。以下の手順に従って、開発環境をセットアップしていきましょう。

参考: Stack Overflowによる開発者調査:

ステップ1: Visual Studio Codeのインストール

  1. Visual Studio Codeの公式サイトにアクセスします。
  2. 「Download for Windows」など、あなたのOSに合ったダウンロードリンクをクリックしてインストーラーをダウンロードします。
  3. ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを完了させます。

ステップ2: Visual Studio Codeの設定

Visual Studio Codeのインストールが完了したら、以下の拡張機能をどんどん追加していきます! リンク先のページの「Install」ボタンをクリックすると、Visual Studio Codeが自動的に起動し、拡張機能のインストールが始まります。

ステップ3: GitHubアカウントの作成

  1. GitHubの公式サイト にアクセスします。
  2. 画面右上の「Sign up」ボタンをクリックします。
  3. 必要な情報(ユーザー名、メールアドレス、パスワード)を入力し、アカウントを作成します。

Githubアカウント作成の詳細は以下のページを参考にしてください。

ステップ4: GitHub Copilotの有効化

下記のページにアクセスします。

画面をスクロールしていって下記の画面の「Open in VS Code」をクリックします。

open in vs code

これでGitHub Copilotが有効化され、Visual Studio Codeで使用できるようになります。

ステップ5 (もし可能なら): Github Educationへの登録

学生の場合、Github Educationに登録することで、GitHub Copilotを無料でフル機能が利用できるようになります。詳細は以下のリンクを参照してください。

参考: Github Copilotの契約形態

契約形態月額年間備考
Free0$0$制限があるが無料で利用可能
Pro10$100$30日間無料トライアルあり
Pro+39$390$Proの全ての機能に、全てのモデルが使用可能
Business19$中小規模のチームや企業向け
Enterprise39$大規模組織向け
学生無料無料GitHub Educationに登録している必要がある

アンケート


openFrameworks Addon 2 : 物理シミュレーション ofxBox2D

今回は物理シミュレーションを行うことができる、ofxBox2DというAddonをとりあげます。

ofxBox2Dは、Box2DというC++で書かれた2Dの物理演算エンジンをopenFrameworksのAddon化したものです。Box2Dは質量、力、速度、摩擦といった古典物理学(ニュートン力学)の演算を高速に行う、物理法則の演算のためのライブラリーで、もともとはC++で書かれていますが、現在では、Java、C#、Python、JavaScriptなど様々な言語に移植されています。ofxBox2Dを使うことで簡単な物理法則を援用したアニメーションだけでなく、2次元のゲームやインタラクティブなコンテンツなどに応用可能です。今回は、ofxBox2Dの導入から、形を定義して物理世界に追加する方法、大量の物体を追加するための工夫などを紹介していきます。

スライド資料

サンプルファイル

アンケート

授業に参加した方は、本日のアンケートに回答してください。

アンケート


TouchDesigner実践 2 – パーティクルシステム

本日の内容

今回は、「パーティクルシステム (Particle System)」をTouchDesignerを用いて実装する方法を解説していきます。

パーティクルシステムとは、多数の微細な要素、つまり「パーティクル」の集合体を用いて、自然現象や抽象的なエフェクトを表現するための技術です。例えば、炎の揺らめき、立ち上る煙、舞い散る雪、きらめく星屑、爆発の破片など、その形状が一定でない、いわゆる「不定形」な対象の表現に適しています。個々のパーティクルは、それぞれが独立した位置、速度、加速度、色、透明度、大きさ、そして寿命といった属性(パラメータ)を持っています。これらの属性は、設定されたルールや時間経過、あるいは外部からのインタラクションに応じて変化します。一つ一つのパーティクルは比較的単純な法則に従って振る舞いますが、それらが何千、何万と集まることで、全体として非常にリアルで複雑な視覚効果を作り出すことができます。このパーティクルシステムは、映画のVFX(視覚効果)、ゲームの演出、さらにはインタラクティブアートやインスタレーション、データビジュアライゼーションなど、多岐にわたる分野で活用されています。

TouchDesingerでは、Particle SOPを用いることでとても簡単にパーティクルの生成と制御が可能です。また、生成したパーティクルにスプライト画像を適用したり、ジオメトリインスタンシングを用いてパーティクルの一粒ごとに3Dオブジェクトを配置することも可能です。今回はTouchDesingerのパーティクル表現についていろいろ実験していきます。

参考作品

Unsupervised — Machine Hallucinations — MoMA
ところざわサクラタウン KADOKAWA所沢キャンパス LEDヴィジョン

パーティクル生成の基本

ダウンロード

  • パーティクルを生成するには、Particle SOPを使用する
  • Particle SOPには、パーティクルの初期位置を決定するためのSOPを接続する
  • 例えば、Sphere SOPを接続すると、球体の頂点からパーティクルが放出される
  • そのままではパーティクルが発生順序が規則的すぎる
  • Sort SOPを使用して、パーティクルの発生順序をランダムにする
  • 生成したSOPをGeometry COMPに接続し、Render TOPでレンダリングする
  • Wireframe MATを使用してパーティクルを表示

乱流でパーティクルを攪拌

ダウンロード

  • Particle SOPのforceタブのTurblance (乱気流) の値を上げてみる
  • 乱流が起こり、パーティクルが攪拌される
  • その他、力を加えたり風をあてたりといろいろな力を加えることが可能
  • 動きを見ながら試してみましょう!

ポイントスプライトでパーティクルを表示

ダウンロード

  • ポイントスプライトとは、パーティクルを2D画像で表示するための技術
  • 指定した画像が常にカメラの方向を向くように表示される(Billboard)
  • マテリアルにPoint Sprite MATを使用
  • 頂点の場所に表示する画像を指定
  • これにより、パーティクルの数が多くても、GPUの負荷を抑えつつリアルな表現が可能
  • 設定の変更:
    • Particle SOPのParticle TypeパラメータをRender as Point Spriteに設定
    • Point Sprite MAT > Point Sprint のColor MapにCircle TOPの画像を適用
    • Point Sprite MAT > Point Sprint のConstant Point Scaleを調整
    • Point Sprite MAT > Common でBlendingをONに
      • Blend Operation: ADD
      • Source Color: One
      • Destination Color: One Minus Source Alpha
      • Depth TestをOffに

パーティクルのサイズに変化をつける

ダウンロード

  • ポイントスプライトのサイズを奥行 (Z座標) によって変化させる
  • Point Sprite MAT > Point Sprite のAttenuate (減衰) Point Scale以下の設定を変更
  • 設定例
    • Attenuate Point Sacle: 0.5
    • Attenuate Near Distance: 1
    • Attenuate Far Distance: 8
    • Near Point Scale: 50
    • Far Point Scale: 1

ポイントスプライトの画像をグラデーションに

ダウンロード

  • ポイントスプライトの画像を、Circle TOPからRamp TOPに変更
  • 円環状のグラデーションをかける
  • 透明度や明度や彩度などを調整、光の粒が浮遊するような効果が生まれる!

Particle SOPの頂点情報でジオメトリインスタンシング

ダウンロード

  • Particle SOPの頂点の情報を用いてジオメトリインスタンシングを行う
  • Particle SOP > SOP to CHOP を用いて座標の情報をCHOPに抽出
  • この情報を頂点の位置として、インスタンシングを行う
  • 大量のSOPを用いたパーティクルシステムが構築可能となる!

パーティクルの向きを進行方向に

ダウンロード

  • Particle SOPの動きから進行方向のベクトルを取得
  • Particle SOPからCHOP to SOPした情報を操作
  • Attribute Scope「P v」を設定 (Pが位置、vが進行方向のベクトル)
  • Rename Scopeで「tx ty tz vx vy vz」にリネーム
  • Geometory COMP > Instance 2のRotate to Vectorに「vx vy vz」を適用
  • パーティクル進行方向に回転するはず!

応用: パーティクルにPBRマテリアルで質感をつける

ダウンロード

  • パーティクルシステムと先週のPBRマテリアルを組み合わせてみる
  • 詳細はプログラムを使って解説していきます!

アンケート

アンケート


音程のあるサウンド – シンセサイザーを使う

TidalCycleでここまで使用してきた方法では、サンプリング(録音)したサウンドファイルを演奏してきました (cp hc bdなど) 。これは楽器に例えるなら、サンプラーを演奏している状態です。TidalCyclesではこの他にシンセサイザーのように音の波形を合成して演奏する「楽器」も用意されています。このシンセサイザーの機能はSuperCollider内で楽器 (Synth) として定義されていて、自分自身でプログラミングすることでオリジナルの楽器を作成することも可能です。今回の授業の前半はこのTidalCyclesのシンセサイザーの機能に着目していろいろ実験していきます。

シンセサイザーを使用するには、SuperColliderにSC3 Pluginsがインストールされている必要があります。下記のリンクから最新版のものをダウンロードして所定の場所にインストールしてください。

参考:

シンセサイザー

Sequential Circuits Prophet 5 (アナログシンセサイザー)
YAMAHA DX-7 (デジタルシンセサイザー)
Eurorack (モジュラーシンセサイザー)

スライド資料

サンプルコード

TidalCycles

-- シンプルにシンセを鳴らしてみる
d1
  $ s "supersaw*4"
  # note 0

-- 音階で指定 シャープ
d1
  $ s "supersaw*4"
  # note "cs5"

-- 音階で指定 フラット
d1
  $ s "supersaw*4"
  # note "df5"

-- シンセの音色の種類を変えてみる
d1
  $ s "supersaw superpwm supersquare superzow"
  # note 0
  
-- シンセの種類
-- supermandolin, supergong, superpiano, superhex, superkick, super808, 
-- superhat, supersnare, superclap, supersiren, supersquare, supersaw, 
-- superpwm, supercomparator, superchip, supernoise, superfork, 
-- superhammond, supervibe, superhoover, superzow, superstatic, 
-- supergrind, superprimes, superwavemechanics, supertron, superreese
  
-- 音階を弾く
d1
  $ s "supersaw*4"
  # note "0 4 5 7"
  
-- ランダムな音階
d1
  $ s "supersaw*8"
  # note (irand 12)

-- 短かい持続
d1
  $ s "supersaw*8"
  # legato "0.5"
  # note (irand 12)

-- 短かい持続と長い持続
d1
  $ s "supersaw*8"
  # legato "<0.5 1.2>*8"
  # note (irand 12)

-- メロディーを生成してみる
d1
  $ s "supersaw(11, 16)"
  # legato "<0.5 1.5>*8"
  # note "{c4 e4 f4 g4 b4}%11"
  |+ note "[0, 7, 12]"

-- メロディーを生成+変形
d1
  $ jux (iter 16)
  $ s "supersaw(11, 16)"
  # legato "<0.5 1.5>*8"
  # note "{c4 e4 f4 g4 b4}%11"
  |-note "0 12"
  |+note "[0, 7, 12]"

-- メロディーを生成+変形+エフェクト
d1
  $ jux (iter 16)
  $ s "supersaw(11, 16)"
  # legato "<0.5 1.5>*8"
  # note "{c4 e4 f4 g4 b4}%11"
  |- note "0 12"
  |+ note "[0, 7, 12]"
  # lpf(range 100 12000 $rand)
  # resonance "0.2"
  # delay "0.5" # delaytime "0.25"
  # delayfeedback "0.7"

Strudel (1行ごとにコピペして使用)

// シンプルにシンセを鳴らしてみる
$: s("supersaw*4").note(60)

// 音階で指定
$: s("supersaw*4").note("c4")

// 半音階、シャープ
$: s("supersaw*4").note("cs4")

// 半音階、フラット
$: s("supersaw*4").note("db4")

// シンセの音色の種類を変えてみる
$: s("supersaw sine square triangle").note(60)

// 音階を弾く
$: s("supersaw*4").note("c d e f")

// ランダムな音階
$: s("supersaw*4").note(irand(12).add(40))

// 短かい持続
$: s("supersaw*4")
note(irand(12).add(40)).legato(0.2)

// 短かい持続と長い持続
$: s("supersaw*4")
.note(irand(12).add(40)).legato("<0.2 1.0>*4")

// メロディーの生成
$: s("supersaw*8")
  .legato("<1.2 0.5>*8")
  .note("<c4 e4 f4 g4 b4>*8"

// メロディーの生成
$: s("supersaw*8")
  .legato("<0.5 1.2>*8")
  .note("<c4 e4 f4 g4 b4>*8"
  .add("0 -12")
  .add("[0, 7, 12]"))

// メロディーの生成2
$: s("supersaw*8")
  .note("{40 44 45 47 49 52}%11".add("[0, <5 7>, 12], 24"))

// メロディー + フィルター + エフェクト
$: s("supersaw*8")
  .note("{40 44 45 47 49 52}%11".add("[0, <5 7>, 12]"))
  .lpf("<400 2000 1200 8000>*8").delay(0.75).delaytime(0.125)

// メロディー + フィルター + エフェクト その2
$: s("supersaw(11, 16)")
  .note("{40 47 52}%21"
  .add("[0, <5 7 -5>]")
  .add("<0 12 -12 24>*4"))
  .lpf(sine.segment(32).range(400, 8000)).resonance(12)
  .delay(0.75).delaytime(0.125).delayfeedback(0.7)

// メロディー + フィルター + エフェクト + リズム
$: s("supersaw(5, 16, [0, 5, 12])")
  .note(
    "<c d e f g a>*2"
    .add("[0, <12 -12>]")
    .add("[0, 7, 12]")
    .add("<-12 -12 -12 0>/8")
  )
  .legato("<0.5 1.7>*2")
  .delay(0.75).delaytime(0.625).delayfeedback(0.5)
  .lpf(sine.segment(32).range(100, 8000)).resonance(10)
$: s("bd(3, 8), [~ hh]*4")
  .bank("RolandTR909")
  .gain(1.3)

コードとスケール

スライド資料: コード (和音) と スケール (旋法)

サンプルコード

TidalCycles

-- TidalCycles 応用3 - コード (和音) とスケール (旋法)

-- 同時に音を鳴らす
d1
  $ s "superpiano*4" 
  # note "[c, e, g]"

-- コード (Chord = 和音) ---------------------

-- コードを演奏する
d1
  $ s "superpiano*4" 
  # note "c'maj"

-- いろいろなコードを試してみる
d1
  $ s "superpiano" 
  # note "<c'maj f'maj g'maj c'maj>"

-- よりきれいにボイシング
d1
  $ s "superpiano"
  # note "<c5'maj f4'maj'ii g4'dom7'ii c5'maj'i>"

-- カノン進行
d1
  $ s "superpiano*2" 
  # note "<c'maj g'maj a'min e'min f'maj c'maj f'maj g'maj>"

-- カノン進行よりきれいにボイシング
d1
  $ s "superpiano*2" 
  # note "<c4'maj'ii g4'maj a3'min'ii e4'min f4'maj c4'maj f4'maj g3'dom7'iii>"  

-- 王道進行 (J-Pop風?)
d1 
  $ s "superpiano*4" 
  # note "<f'maj7 g'dom7 e'min7 a'min>"

-- 王道進行アンサンブル
do
  d1
    $ s "supersaw(11, 16)"
    # note "<f5'maj7 g4'dom7'ii e5'min7 a4'min'ii>"
    # lpf (range 2000 8000 $ slow 16 $ sine)  
    # resonance 0.2
    # room 0.5 # size 0.8
  d2
    $ s "supersaw(9, 16)" 
    # note "<f2 g2 e2 a2>"
    |+ note "<0 12>*8"
    # lpf (range 1000 8000 $ slow 12 $ sine)
    # resonance 0.2
    # gain 1.5
  d3
    $ s "[bd(3, 8), hc(4, 8, 1)]"
    # gain 1.5

-- 王道進行アンサンブル + 分数コード
do
  d1
    $ s "supersaw(11, 16)"
    # note "<f5'maj7 g4'dom7'ii e5'min7 a4'min'ii>"
    # lpf (range 1000 8000 $ slow 16 $ sine)  
    # resonance 0.2
    # room 0.5 # size 0.8
  d2
    $ s "supersaw(9, 16)"
    # note "<f2 e2 d2 c2>/2"
    |+ note "<0 12>*8"
    # lpf (range 1000 8000 $ slow 12 $ sine)
    # resonance 0.2
    # gain 1.5
  d3
    $ s "[bd(3, 8), hc(4, 8, 1)]"
    # gain 1.5

-- カノン進行 (クリスマス!)
do
  d1
    $ s "superpwm*2"
    # note "<c4'maj'ii g4'maj a3'min'ii e4'min f4'maj c4'maj f4'maj g3'dom7'iii>"  
    # legato 1.2
    # delay 0.5 # delaytime (5/8) # lock 1
    # lpf (range 2000 4000 $ slow 8 $ sine) # resonance 0.1
    # room 0.7 # size 0.9
  d2
    $ s "supersaw*4"
    # note "<c3 b2 a2 g2 f2 e2 d2 g2>"  
    |+ note "<0 0 12 -12>*4"
    # lpf 600 # resonance 0.2
    # room 0.7 # size 0.9
    # gain 1.2
  d3
    $ s "bd(2, 8)"
    # room 0.7 # size 0.9
    # gain 1.2

-- スケール (scale = 旋法) ----------------
-- イオニアンスケール
d1
  $ s "supersaw*8"
  # note (scale "ionian" "[0..7]")

-- スケールいろいろ
minPent majPent ritusen egyptian kumai hirajoshi iwato chinese indian pelog prometheus scriabin gong shang jiao zhi yu whole augmented augmented2 hexMajor7 hexDorian hexPhrygian hexSus hexMajor6 hexAeolian major ionian dorian phrygian lydian mixolydian aeolian minor locrian harmonicMinor harmonicMajor melodicMinor melodicMinorDesc melodicMajor bartok hindu todi purvi marva bhairav ahirbhairav superLocrian romanianMinor hungarianMinor neapolitanMinor enigmatic spanish leadingWhole lydianMinor neapolitanMajor locrianMajor diminished diminished2 chromatic

-- スケール内の音をランダムに演奏
d1
  $ s "superpiano*8"
  # note (scale "hirajoshi" (irand 12))

-- スケールを使用した即興演奏
do
  let mode = "minPent"
  let root = "c"
  d1
    $ jux (("[10, 5]"/8)<~)
    $ s "superhammond(7, 8, [0, 5])"
    # voice 4
    # note "c2"
    |+ note (scale mode (irand 24))
    |+ note root
    # room 0.8 # size 0.9
    # lock 1 
  d2
    $ s "superhammond*16"
    # voice 3
    # note "c5"
    |+ note (scale mode (irand 7))
    |+ note root
    # room 0.8 # size 0.9
    # lock 1  

Strudel

// 音を同時に鳴らす
$: sound("piano*4")
  .note("[c, e, g]")

// --------------------------------------------
// コード (Chord = 和音)
// コードを演奏する
$: sound("piano*4")
  .n("[1, 2, 3]")
  .chord("C").voicing()

// いろいろなコードを試してみる
$: sound("piano*4")
  .n("[1, 2, 3]")
  .chord("<C F G>").voicing()

// カノン
$: sound("piano*4")
  .n("[1, 2, 3, 4]")
  .chord("<C G Am Em F C F G>").voicing()

// 王道進行
$: sound("piano*2")
  .n("[1, 2, 3, 4, 5]")
  .chord("<FM7 G7 Em7 Am>").voicing()

// 王道進行アンサンブル
$: sound("supersaw(11, 16)")
  .n("[1, 2, 3, 4, 5]")
  .chord("<FM7 G7 Em7 Am>").voicing()
  .lpf(sine.slow(32).range(1000, 8000)).resonance(10)
  .room(0.9)
$: sound("supersaw(9, 16)")
  .note("<F2 G2 A2 E2>".add("<-12 0 12>*4"))
  .lpf(sine.slow(24).range(1000, 8000)).resonance(8)
  .room(0.9).gain(1.8)
$: sound("bd(3, 8), hh(4, 8, 1)").bank("RolandTR909")
  .gain(1.2)

// 王道進行アンサンブル + 分数コード
$: sound("supersaw(9, 16, 3)")
  .n("[1, 2, 3, 4, 5]")
  .chord("<FM7 G7 Em7 Am>").voicing()
  .lpf(sine.slow(32).range(1000, 8000)).resonance(10)
  .room(0.9)
$: sound("supersaw(9, 16)")
  .note("<F2 E2 D2 [C2 A1]>/2".add("<-12 0 12>*4"))
  .lpf(sine.slow(24).range(1000, 4000)).resonance(10)
  .gain(1.8)
$: sound("bd(4, 8), hh(4, 8, 1)").bank("RolandMC303")
  .delay(0.5).delaytime(3/8)
  .gain(1.3)

// --------------------------------------------
// スケール (scale = 旋法)
// イオニアンスケール
$: sound("piano*8")
  .n("0 1 2 3 4 5 6 7")
  .scale("C:ionian")

// スケール内の音をランダムに演奏する
$: sound("piano*8")
  .n(irand(12))
  .scale(“C:hirajoshi")

// スケールによる即興
$: sound("supersaw(5, 8)")
  .n(irand(19))
  .scale("C1:pentatonic").jux(rev).room(0.8)
  .delay(0.7).delaytime(3/8)
  .lpf(rand.range(400, 5000)).resonance(12).legato(1.2)
$: sound("supersaw*16")
  .n(irand(19))
  .scale("C3:pentatonic").jux(rev).room(0.8)
  .lpf(rand.range(400, 4000)).resonance(8)
  .delay(0.7).delaytime(5/8).legato(0.75)

アンケート

アンケート


最終課題制作のヒント3 – 機械学習ライブラリーを使ってみる MediaPipeとml5.js


Media Pipe – Face Landmark Detection

本日の内容

今回はこの講義の最終課題制作のためのヒントの3回目として、最新の機械学習のライブラリーとその活用方法について紹介します。

今回は2つのライブラリーを紹介します。

  • MediaPipe: Googleが提供するオープンソースの機械学習ライブラリー
    • ml5.js: 一般的な機械学習モデルを簡単に利用できるJavaScriptライブラリー

今回はソースコードの詳細な解説までは行いませんが、それぞれのライブラリーを活用してどのような作品が制作できるかを紹介していきます。

スライド資料

コンピュータビジョンとは

コンピュータビジョン(Computer Vision)とは、デジタル画像や動画からコンピュータが有益な情報を抽出し、周囲の状況を「理解」させるためのAI(人工知能)の一分野です。人間が目で見ている世界を脳で処理するように、コンピュータに視覚的な認識能力を持たせることを目的としています。

主な仕組みと技術

コンピュータは、画像や動画をピクセル(画素)の集合体として捉えます。現在は、ディープラーニング(深層学習)、特にCNN(畳み込みニューラルネットワーク)などの技術を用いることで、物体、顔、文字、色のパターンを極めて高い精度で識別できるようになりました。

代表的な活用例

  • 顔認証: スマートフォンのロック解除や、空港の入国管理。
  • 自動運転: カメラ映像から歩行者や標識、車線をリアルタイムで検出。
  • 医療画像診断: X線やMRIの画像から、病変部位を自動で特定。
  • 製造現場: 工場の検品ラインで、製品の傷や不具合を瞬時に発見。

このように、コンピュータビジョンは単なる「画像の記録」を超え、視覚データに基づいた高度な判断や予測を可能にする、現代社会に不可欠な技術となっています。

OpenCVとは

OpenCV(Open Source Computer Vision Library)は、画像処理やコンピュータビジョンのための機能を豊富に備えたオープンソースのライブラリです。1999年にインテルによって開発が開始され、現在は世界中で標準的なツールとして広く普及しています。

主な特徴と機能

OpenCVは、画像の編集や変換といった基礎的な処理から、高度な解析までをカバーしています。

  • 画像処理: リサイズ、色空間の変換、フィルタリング、エッジ検出。
  • 物体検出: 顔、歩行者、特定のオブジェクトの認識。
  • 動画解析: 物体の追跡(トラッキング)や背景差分による動体検知。
  • マルチプラットフォーム: C++、Python、Javaといった言語に対応し、Windows、macOS、Linux、さらにはモバイルOS上でも動作します。

活用のメリット

最大の特徴は、最適化されたアルゴリズムが提供されている点です。開発者は複雑な数学的処理を一から記述することなく、関数を呼び出すだけで高度な機能を実装できます。また、BSDライセンスで公開されているため、学術研究だけでなく商用利用も容易です。

現在では、ディープラーニング(深層学習)フレームワークとの連携も強化されており、AIを用いた画像認識システムの構築において欠かせない存在となっています。

MediaPipe

MediaPipeとは

MediaPipeは、Googleが提供するオープンソースの機械学習ライブラリで、リアルタイムな画像や動画処理を効率的に行うためのツールです。

MediaPipe ソリューション ガイド (Google)

  • 多機能なビジョンタスク対応: 顔検出、手のランドマーク推定、ポーズ推定、物体検出など、さまざまなビジョンタスクをサポートしています。
  • リアルタイム処理: 軽量設計により、リアルタイムでのデータ処理が可能で、インタラクティブなアプリケーションの開発に適しています。
  • マルチプラットフォーム対応: Windows、Linux、macOSなどのデスクトップ環境だけでなく、AndroidやiOSなどのモバイルプラットフォーム、さらにはWebブラウザ上でも動作します。
  • 複数言語サポート: Python、C++、JavaScriptなど、さまざまなプログラミング言語で利用可能で、開発者は自身のプロジェクトに適した言語を選択できます。
  • モジュール化された設計: 各機能がモジュール化されており、必要な機能を組み合わせて柔軟にパイプラインを構築できます。
  • オープンソース: ソースコードが公開されており、コミュニティによる改善やカスタマイズが可能です。

MediaPipeのデモ

MediaPipeでどのようなことができるのか、GoogleではWeb上ですぐに試すことができるデモを公開しています。その内容を見てみましょう。

Object Detection (物体検出)

  • 映像や画像の中から物体を検出する技術
  • デモ

Image Classification (画像分類)

  • 画像の中に写っている物体を分類する技術
  • デモ

Image Segmentation (画像セグメンテーション)

  • 画像の領域を分割する技術
  • デモ

Hand Landmark Detection (手のランドマーク検出)

  • 画像や動画内の手とそのランドマーク(キーポイント)を検出
  • デモ

Face Stylization (顔のスタイル変換)

  • 画像内で検出された顔をカートゥーンやアニメ顔といったスタイルに変換
  • デモ

Face Detection (顔検出)

  • 複数の顔と各顔の6つのランドマークを検出
  • デモ

Face Landmark Detection (顔のランドマーク検出)

  • 顔のランドマーク(キーポイント)を検出
  • バーチャル試着や表情を模倣するバーチャルアバター作成に利用可能
  • デモ

Pose Landmark Detection (ポーズのランドマーク検出)

  • 画像や動画内の人体の主要ポイントを検出
  • デモ

MediaPipeの利用方法

  • MediaPipeでは、Web、Python、Android、iOSと用途にあわせてさまざまなプラットフォームで利用可能
  • 一部のソリューションではモデルをカスタマイズすることも
  • 詳細: MediaPipe ソリューション ガイド

MediaPipeの利用例

Face Mesh: 顔のランドマーク検出

ml5.js

MediaPipeとml5.js

MediaPipe

  • MediaPipeはとても高機能かつ様々なプラットフォームで利用可能
  • ただし、高度な機能を使うためにはそれなりのプログラミングスキルが必要

別のアプローチ – ml5.js

  • ml5.jsは、機械学習のモデルを簡単に利用できるJavaScriptライブラリー
  • p5.jsとの親和性が高く、クリエイティブコーディングに適している

ml5.jsについて

  • ml5.js | Friendly Machine Learning for the Web
  • ブラウザ上で人工知能を活用し学びと創造を促進する親しみやすいライブラリー
  • アーティストやクリエイティブコーダー、学生向けに機械学習を簡単に使えるよう設計されている
  • TensorFlow.jsを基盤とし、外部依存なしで動作。

ml5.jsでできること

  • BodyPose:全身のポーズ推定
  • HandPose:手の骨格と指の追跡
  • FaceMesh:顔のランドマーク検出
  • ImageClassifier:画像内容認識
  • SoundClassifier:音声の検出と分類
  • NeuralNetwork:独自のニューラルネットワークを訓練可能

ml5.js + Hand Pose

ml5.js + Face Mesh

ml5.jsでどんなことができるか

例 1: Fire breathing By Pierre B.

Fece meshを使用

例 2: Regular polygons playground By Juan Carlos Ponce Campuzano

Pose Detcetionを使用

例 3: handPose choose menu item by peymanx

Hand Poseを使用

おすすめ学習リソース


A Beginner’s Guide to Machine Learning in JavaScript with ml5.js

  • NYU ITPのDaniel Shiffmanによるml5.jsの入門ガイド
  • ml5.jsの基本から応用までを学べる

応用: TouchDesignerでMediaPipeを利用する!

TouchDesignerからのMediaPipeの利用は、Bryan Wai-ching CHUNGさんによる素晴しいサンプル集があります! ダウンロードして試してみましょう。Python 3.9系でMediaPipeが正しくインストールされていれば、そのまま利用できるはずです。

応用することで、下記のようにFaceMeshを使用した3Dサーフェスの合成なども可能になります!

アンケート

本日の講義に参加した方は以下のアンケートに回答してください。

アンケート


コンストラクタと、オブジェクトのバリエーション

今回も前回に引き続き、p5.jsによるオブジェクト指向プログラミング (OOP) について学んでいきます。

今回は、オブジェクトを生成する際に実行される初期化のための関数であるコンストラクター (constructor) に注目します。ここまでやってきたようにコンストラクターはオブジェクトが初期化 (インスタンス化) される際に自動的に実行されます。つまりクラスの初期化関数として機能しています。インスタンス化は以下のように行ってきました。

let object = new ClassName();

クラス名の後に () があるところに注目してください。クラス側で設定することによってインスタンス化の際にコンストラクターの引数としてパラメータを受け取ることが可能です。つまり以下のようになります。

let object = new ClassName(arg1, arg2, arg3...);

こうすることで、クラスからオブジェクトを生成する際に引数の値によって様々なバリエーションのオブジェクトを生成することが可能となります。1つの工場 (= クラス) から、様々なバリエーションの車 (= オブジェクト) を生成するイメージです。

実際にp5.jsのコードを動かしながら、インスタンス化とコンストラクターについて理解していきましょう。

スライド資料

本日のスタートポイント

本日の課題

1つのクラスから複数のオブジェクトを生成して表現してください。

  • クラスのコンストラクタの引数からパラメータを読み込み
  • 様々なバリエーションのオブジェクトが生成されるように
  • 本日作成した「Blob」クラスの例を参考にしてみてください!
  • 投稿したURLをアンケートから提出
  • 投稿の際に sfc251219 のタグをつけてください!
  • 締切: 2024年12月19日(水)まで!
  • 今回も、前回の提出作品の人気投票を行います!
  • 前回のタグ sfc251128 でOpenProcessingで検索 (検索方法をSketches that are tagged にする必用あり)
  • 一番良いと思った作品に1票投票 (自信があれば自分の作品でも可)

課題提出フォーム

サンプルコード


openFrameworks Addon 1: Addonについて – ofxGui

Addon(アドオン)とは、openFrameworksに機能を拡張するためのライブラリーやフレームワークです。processingのLibrariesのように、openFrameworks単体ではできなかった様々な機能を実現することが可能となります。Addonは、oF本体の開発者以外でも独自に開発して追加することが可能であり、繰り返し用いる機能や、CやC++で記述された既存のライブラリーをopenFrameworksに統合することが可能となります。

今回はAddonの導入を、まずofxGuiというプロジェクトにGUIを追加するアドオンで行います。ofxGuiを使用することで、例えば周囲の環境が異なる場所でインスタレーションを設置する時など、すぐにパラメータを最適な状態に調整して保存することができ、とても便利です。

スライド資料

サンプルファイル

アンケート

アンケート


生成AIとは? 画像生成AIを使ってみる

Sofia Crespo,artificial natural history2020-2024

実習の初回となる今回は、まずこの実習でテーマにする「生成AI (Generative AI)」とは何なのか、また人工知能、機械学習、ニューラルネットワーク、深層学習といった分野と生成AIの関係について整理して理解します。

その上で今回はプロンプト (テキストによる指示) から画像を生成する「画像生成AI」を使ってみます。Nano Banana、DALL-E、ImageFX、Midjorneyなど様々な画像生成AIサービスを紹介した後、実際に画像を生成しながらその特徴や性質を理解していきます。

最後に課題を出題します。今回の課題は「画像生成レシピ」です。Githubに公開されている、Nano Bananaの画像生成のプロンプトの例を参考に、創造的で面白い画像が生成されるプロンプトを開発してください。

スライド資料

課題: 画像生成レシピ

創造的で面白い画像が生成できるプロンプト(AIに与える指令)を開発する。

Githubに公開されている、Nano Bananaの画像生成のプロンプトの例を参考に、創造的で面白い画像が生成されるプロンプトを開発してください。

発表する成果物:

  • 開発したプロンプト(テキスト)
  • そのプロンプトから生成された画像(複数枚でも可)
  • 次週の実習でプレゼンテーションしてもらいます!

以下のリンクからアクセスして、課題を提出してください。
https://forms.gle/oHqLWZPmM7StA4Fx7