黙々かえをします。
写真管理アプリを自分で作り始めたら、写真を見るのがめちゃくちゃ楽しくなりました。
Image Cast!
おはようございます、あずまです。
てっとうです。
あのー、我々、Image Clubというですね、
はい。
クラブ活動として、活動をしておりまして、
そうだったんだぁ。
忘れてしまってますね、その本来の趣旨を。
その、クラブ活動をやっているImage Clubの
イメージキャストというポッドキャストをやっているんですよ、我々。
そうなんですよ、実は。
でですね、主な活動何かというと、物を作る。
土日に作りたい物を作るということをしてるんですけど、
その活動が黙々かえというですね、土曜日とか日曜日とかに集まって、
黙々とおのおの作りたい物を作るというテーマでやっている活動がありまして、
とはいえ、何やかんや喋ったりとかしながらやってるんですけど、
それがもう子供を産まれてから全然できなくなっちゃって。
そうでしたねぇ。
はい。困ってたんですけど、
最近ね、クロードコードとかのそういうコーディングエージェントツール系が
あまりに進化しすぎてて、
もしかしたら子供を見ながらでも、
自分が作りたい物を作るんじゃないかっていう。
はい。
これはね、マジで革命だなと思いまして。
そうですね、実際前やってみたら結構できてましたよね。
ぼちぼち進んでましたね。
とはいえ、子供を土日にね、子供をシェアアトリエみたいなところに連れてきて、
何人かいないとさすがに持たないんで、
もう帰る帰るとか言い出すんで。
まあまあそりゃそうですよね。
はい。ということで、人を招いて他人を巻き込んで、
自分の育児の負担を他の人たちにちょっとずつ分担させながら黙々とやるということを目論んでまして。
で、もう身内だけで集まるよりも、もうちょっと広げて集めようということで、
なんとイメージキャストのディスコートでですね、募集をかけておりますんで。
すごい。すごい来たらどうします?
すごい来ないと思うけど。
まあまあ、もしあれだったら最大3人ぐらいを上限にしようかなと思ってますけど、
そんなめちゃ広会場なわけではないので。
はい。
まあやることとしてはもうただただそれぞれが作業をするというだけなんで、
パソコンでパソコン持ってきてくださいって感じですね。
そうですね。
パソコンじゃなくてもなんか絵描く人ったら絵描く画材とかを持ってきてくださいって感じで。
はい。っていう感じですね。
はい。で、場所はですね、残念ながら東京の大島という場所ですので、
ちょっと東京になかなか来れないという方は申し訳ないんですけども、
この回が配信される次の日曜日ですね。やっておりますので、もしよかったらご連絡ください。
はい。よろしくお願いします。
お願いします。
ちょっとね、最近あのディスコードで声かけて人と会うっていうのをちょっとやってます。
おお、すごい。本当に人に会うってやってますね。
はい。
そうですね。この間も紙切った後にちょっと2時間ぐらい時間があったんで、
誰か飲みに行きませんかって感じで軽く募集をかけて来てくださったんですよ、人たちが、人々が。
はい、すごい。なかなかね、そういう、最近全くやんなくなった気がするけど。
そうですね。ちょっとあの、工藤文子さんという働き者ラジオやってる方。
はいはいはい。
トロニーさんという中トロラジオというラジオ、ポッドキャスターやってる方が来てくださって。
ポッドキャスターばっかりじゃん。
そうなんです。くしくもなんかポッドキャスターのオフ会みたいになってしまったんで、
またなんか声かけた時は別にポッドキャスターやってる人じゃなくて全然いいので、遊びに来てくれると嬉しいです。
ぜひ。
はい。これまた東京なんですけどね、どうせ。
うーん、まあね、そりゃしょうがない。
そうですね。僕らはもともと広島の田舎にいたんで、こうやってなんかこうインターネットで起こることが大体東京だなっていうことに対してムカつきを覚えてはいた。
なのでそれを再生産していることへの悔しさはある。
はい。
でも東京ってやっぱ人会えるからな。
まあそうですよね。
えー。
住んでるからには使わなきゃもったいないなと開き直っております。
はい。
はい。そんな感じ。
はい。
私の話はおしまいです。
あ、ほんとですか。
はい。
早かったな。
テッドさんが最近何作ってるのか教えてください。
はい。えーと写真管理アプリを作ってるんですけど、ライトルームみたいなものを作ってます。一言で言うと。
前話してましたよね、あの現像アプリもう2,3年したら作るかもみたいなことを。
はい。そうなんですよ。
2,3年じゃなかったですね。2,3週間でしたね。
2,3カ月だったかな。まあちょっと。いやーちょっとね、今だったらどのぐらいできるのかなと思って調べ始めたら、あれできそうじゃんってなって。
いけんじゃんと。
はい。半分じゃないな。まあ1割か2割ぐらいですけど、できてきたかなっていう。
おーすごい。
そもそも動機としては、せっかく自宅サーバーを持ってるのに、クラウドサーバーに接続して便利に写真管理したいみたいなことをやろうと思うと、
なんかアドビのクラウドに結局契約しないといけなくて、で、それがなんか月に2,3千円かかってたりするの。
まあまあする。
みたいな。まあ僕の写真の量がちょっと2.5テラぐらいなので、全部入れると結構高いんですよ。
うん。
で、かといってちょっと一部しか入れなかったら、なんか全部一覧できるとか検索できるみたいなことがちょっとやりにくくなって、
お金を払えば便利なんだけど、払わなかったら普通のソフトみたいな、それか外付きハードディスクなりSSDにずっと入れて常に持ち歩くっていう。
それもそれで、今は2.5テラだからいいけど、これから数年したらもうなんか数テラになっていくっていうの分かってる。
はいはいはいはい。
あのイメージキャストでも以前からよく出されているクラウドストレージ問題ですよね。
そうそうそうそう。で、それを気にして写真を撮るのもすごく嫌なんですよ。
やっぱそこ、そんなこと気にしてこれを撮る価値があるかなとか毎回考えてるのってすごい良くないことだと思ってるんで。
まあなんかね、人生の損失という感じはしますね。
そうですよね。じゃあJPEGで撮ったらって言われるけど、いやRAWで撮らないと写真じゃないとか思ってる。
私はそうそこまでは思ってないですが。
RAWっていうのはすごく重いファイルなんですけど。
そうですね。
その代わり編集がすごくしやすいフォーマットでいろいろメリットはあるんですよ。
ファイルのデータが重いってことは情報量が多いってことだからね。
そうですね。
残せる情報量は大いに越したことはないですからね。
で、そのなんていうかわがままを叶えるために全部自分で作ったらいいじゃんっていうので作り始めたら。
いや、来ましたね。
サーバー機能も作ってて、サーバーに置いてこっちはプレビューだけで編集まで全部一気通貫でできて、書き出しの時だけダウンロードしてくるみたいな。
しかも自宅サーバーだからめっちゃ早いっていう状況。
胸が熱くなるって。
そうそうそうそう。
ただ困っているのはAdobeが準備してくれてる全てのカメラのプロファイルとかカラーマネジメントファイルを自分で作んなきゃいけないから、
ちょっとそこで大変、まあでも自分の持っているカメラのプロファイルだけ作ればいいんですけど、
そこを今どっち、なんていうか地道にやり始めているところなんですが。
プロファイルっていうのはなんですか?カメラの機種ごとの色の違いとか?
そうそうそうそう。
カメラのカラー設定が10個ぐらいあって、どの設定で撮ったかによって色が変わるけど、
その色の変換がどうであるかっていうのをソフト側が知ってないと表示した時に同じ色にならないんですよね。
っていうこととかレンズの歪みも同じような問題があって、なんか歪み方を知ってるからこそ正しく表示できるみたいな。
なるほど。
細かいんですけど、まあそういうことにも取り組みつつも、やっぱ写真を自分で管理する側にはすごく不満だったこともいっぱいあって、
それをせっかくだから解決しようと思って。
いいね。
その一つが検索。
はいはい。
Google Photoって結構検索しやすいじゃないですか。
そうですね。地名とかで検索したらその場所で撮ったやつ出てきてくれたりとかするし、赤いリンゴとかだったら検索したら出てきますよね。
そうですよね。そのキーワードで写真を探すっていうことが、顔認識も賢いし、画像そのものを単語で探すみたいな機能がかなり長けているけど、
現像ソフトでそれが両立できているのってないんで、それを自分でやろうっていうことをやり始めてます。
すごい。
それがすっごい楽しくなってしまって。
実は見せてもらいました。TEDさんが作りかけているもの。さすがに久々にテンション上がりましたね、あれは。
いいですよね。単にそのキーワードで写真がバーッと出てくるだけじゃなくて、ちょっと仕組みを先に話そうかな。
そうですね。そもそもそのキーワードで検索して写真が出てくるっていうのが、いかにして実現されているのかっていうところですよね。
はい。なんか最近だったら、なんかチャットGPTに画像を入れたら、こう言葉で説明してくれるとかっていうのはあるはあると思うんですけど、
ぶっちゃけそれって、今写真が10万、11万枚あるんですけど、11万枚の写真の中から全部見て探してっていうのは不可能なんですよ。
そうですね。
で、それで編み出されたアイディアがあって、オープンAIが出したクリップっていうモデルがあってですね、
そのモデルを使うと、写真であろうが言葉であろうが、すべて1個のベクトルで表現しますっていう。
はい。ベクトル埋め込みのモデルですね。
それで変換すると、言葉と写真がどういう関連性があるか、もしくは写真と写真同士でもいいんですけど、なんか雰囲気似てる写真だよなって、
例えば青空の前に木がある写真と、別の青空の前になんか電柱がある写真が似てるっちゃ似てるんだけど、
この漢字を似てる度合いを数字で表すとどうなのか、みたいなことをベクトルで表現できてしまうっていう。
いやー、これ多分聞いてる人のうち、文系の人とかは結構魔法の話を聞いてるみたいな感じに思ってしまっちゃってるんじゃないかなと思って、
それはまあいいんだけど、なんかベクトル埋め込みっていうものの面白さが僕は最近ちょっと自分的に聞いてて、
それを知ってるとなんかよりいろんなことが面白い気がしてくれるんじゃないかっていうことが思ってまして、
だからそのクリップ以前の話のベクトル埋め込みって何ぞやみたいな話をちょっともうちょっと聞きたいなという感じですね。
でも例え話で言っちゃっていいのか、僕も専門家じゃないのでちょっとあんまり正確に言えるかわかんないですけど、
この前布団、布団じゃない、洗濯物をたたんでるときに、俺ベクトル埋め込みしてるなって思ったんですけど、
ちょっとわかんない。
洗濯をたたむときに、まず山になった洗濯物、何が何だかわかんないけど、タオルをたたんだらタオルのところに積んでいって、
バスタオルたたんだらタオルの横ぐらいに置くじゃないですか。
あー、置くね。
で、服をたたんだら人ごとに何となく分けたりとか、で、パジャマはこっちの方とか言って、
人ごとに違うけどパジャマは何となく左寄りに置いちゃうみたいな、それ畳み終わったときには、
配置ができていくよね。
そう、マップみたいになるんですよ。で、このマップがベクトル埋め込みです。
うわー、すごい高度な例えから入ってきた。
どう?
でもまあ、なんか、うん、わかってる感じはする。わかってる人が着たらすごい膝を打つ感じがする。
はい。で、パジャマの近く、たとえこのパジャマっていうのを指差したら、それが僕のパジャマだったら、その近くに自分の服があったり、
他の人のパジャマもあるかもしれなくて、で、そういう、なんか、本来バラバラだったものが、位置関係でクラスタリングが自然にできてしまう。
これをめちゃめちゃ高度にやったのが、最近AIがやっているベクトル埋め込みっていうやつ。
ベクトルという言葉を聞いた段階で、もう難しいやつっていう感じになっちゃうと思うんですよ。
僕みたいな人間は。
場所ですよ。
そうなんですよ。場所というか座標というか、数字の束ですよね。
そうですね。
ベクトルって、3次元空間のベクトルだったら、xが1で、yが2で、zが3の場所みたいな感じで座標指定ができると思うんですけど、
それをいろんな、たとえば言葉だったら、言葉の赤いとか青いとか、そういうものを、その言葉を表現する、
あ、もうだめだ。わからなくなってきた。
優しく伝えるのが難しい。
いやー、まあでも、場所っていうので、もうだいたい伝わってるような気はするんですけど。
そうですね。言葉がめっちゃあるじゃないですか。
それを夜空の星みたいな感じで、いろんなところに配置していくと。
そうすると、なんとなく近い概念のものは近くに配置されたりとかすることができると思うんですけど、
そういうことをやってるのがベクトル埋め込みですね。
で、実際はそれぞれの言葉に、たとえば512次元とかのベクトルが割り当てられてて、
それはつまりその住所を示すための場所、x,y,zみたいなものが512個あって、
だからちょっと人間の脳では、絵では想像できないんだけども、住所が割り当てられると。
そうですね。
何番地何号みたいな感じで。
赤いと青いとかはすごく遠いっちゃ遠いけど、色を示しているって意味では近いとか、
そういうすっごい様々な指標の中で、近さ遠さっていうのを表現するにはすごくたくさんの次元、指標って言った方がいいかもしれないですね。
が必要で、それが今は512とか1000とかぐらいが使われてますね。
これってめっちゃ面白いアイディアが色々作れるよなっていう、あらゆる物事について近さを計算することができるわけですよね。
そうなんですよね。しかもその計算がめちゃくちゃ早くできるっていうのも特徴の一つなんで、
大量にあるものを検索する時とか、組み合わせを最適にするみたいな時にもすごい使えるんですよね。
そうですね。ということで、クリップの話に戻すと、さっきのベクトル埋め込みは言葉の住所が分かるという、割り当てられるという感じだったんですけど、
クリップだと言葉と画像が全部一緒くたになるんですよね。
そうなんですよね。不思議なことに。
言葉の住所と画像の住所が同じ形式で扱えると、それがやばいところ。
そう。だからUNOとトランプがバーって散らばってて、UNOのさんとトランプのさんが同じ場所に配置されている。
UNOとトランプだったらまだ似てるからあれだけど、言葉と写真でそれができちゃうっていう。
そうですよね。だから犬の写真と犬という言葉が近くに割り当てられると。
そうですね。
この画像とこの言葉はどれぐらい近いかっていうことが計算できるようになっちゃう。
ちょっとモデルをいろいろ実験してる時に、LINEが公開してるやつがあったんですよ。
ほうほう。
で、LINEはなんでそれ作ったのかなと思って調べてみたら、なんか検索、ヤフーとかフリマあるじゃないですか。
ヤフーフリマだっけ。あれとかで実は内部で使ってるらしくて、赤いワンピースで検索したら、ワインレッドのドレスも出てきてほしい。
はいはいはい。
で、そのワインレッドのドレスって単語としては何もかぶってないけど、赤いワンピースと結構近い概念だったりするっていうので、
言葉同士も近いっていうのは判定できるし、ダイレクトに画像の近さっていうことも判定できるから、
それで検索するときに、こう思い描いていたぽわわわーんってなってる状態で検索できる。
だからもう言葉がビタッとマッチしてなかったとしても、それが指し示している住所が近ければ、それが出てくるっていうことですね。
いや、すごいですよね。で、この住所を使って、ただ調べるだけじゃなくて、写真に、今見ている写真に、
なんかイメージとして近いものをパッとすぐ一覧表示できたら楽しいんじゃないかと思って、
それを僕の写真アプリの中にちょっと組み込んでみたら、めちゃくちゃ良かったんですよね。
いや、見せてもらいましたね。あれめっちゃすごかったですね。
いやー、なんかまずちょっとテッドーで調べたらテッドーの写真が大量に出てくるんですけど、
テッドーの写真いっぱい撮ってるからね。
で、それでなんか夕日のテッドーの写真をクリックして、で、Vっていうボタンを押すと、
そうするとその写真が真ん中に出てきて似た写真がバーって散らばって、似てる順に散らばって線で繋がってるみたいなインターフェースを作ったんですね。
だからその時系列で並ぶとかじゃなくて、ネットワーク的に似てるものがより作られて、
過去のから最近のまでテッドーの写真で似てるものが近くに出てくるっていう。
で、それでそのもちろんその写真の前後の時系列順のやつも表示しつつ、
近い概念のやつと、あとGPS的に近いけど、必ずしも最近、タイミング的に近くはない写真とかも、
いろいろ集めて表示するようにしたんですよ。
そしたら前にそこに行った時の写真とかも出てくるし、
同じような光景を見た全然関係ないタイミングの、場所もタイミングも関係ない写真も出てくるっていうので、
で、それをダブルクリックするとまたそいつが中心になって、新しい写真から似ている写真がバーっと散りばめられて、
で、そうやってどんどん辿っていくことができるんですよね。
これベクトル埋め込みの面白さですよね。
これは前の前の回、ゲスト回でパックさんが作っていた、
モノノアーレのカムカムしかもリノーモカムのミュージックビデオでも使われていたものと、
採掘。
採掘ですね。データマイニングっていう言葉があると思うんですけど、それ大量な、最近言わなくなったけど、何でしたっけ、ビッグデータ。
ビッグデータをいろんな手法で解析して、何か意味のある情報を生み出すんだみたいな。
データサイエンティスト的な仕事ですよね。
それをもっとライトに直感でたぐり寄せて楽しいっていうのをやるためのソフトっていうのをちょっと目指してて。
めっちゃいいな。
いいんですよ。
これはすごいですね。
前にフォトストレージ問題という、哲学としてのストレージ問題みたいなことを言ってたんですけど、
その時に僕が言ってたのが、例えばこの時を覚えてますかみたいな、1年前のこの日みたいなのとかでポップアップしてくるGoogleフォトとか、写真のそういうサービスのやつとかあるじゃないですか、おすすめの写
真みたいな。
ああいうので選ばれる写真って、何となくこういい写真というものが向こう側で定義されていて、それに沿ったものが出てくるっていう。
顔がたくさん写ってるとか笑顔が多いとか、何となくちょっとエモい感じとか、はっきり被写体が写ってるみたいななったりとかすると思うんですけど、
それってなんかその引っ張り出されてくる過去の自分の写真がそういうフィルターを通り抜けて集められて呼び出されるわけじゃないですか。
マイニングのルートがもう決まっちゃってるというか。
人が設計した方法で自分の記憶を勝手に思い出されている感じ。
そうそうそうそうそうそう。
そこがその向こう側の、そのサービス側の思想にロックされちゃってるので、
なんかその自分の人生をその価値観で埋められてしまうというか、ちょっと大げさな言い方かもしれないですけど、そういうのはちょっとあるなっていう。
でもそうですよ。まあかといって便利だし、なんかそれを自分で作れるかっていうと作れないと思ってたんですけど、
いや作ってみるとこれこそが幸せかもしれない。それはちょっと言い過ぎだけど。
そうですよね。その笑顔が多いとかそうじゃなくて、自分でその近さを設計することができるという軸を自分で決めれるっていうのは。
自分の記憶を自分でハンドリングしている。今までできてなかったんだって思いましたね。その感覚ですね。
いやーっていうので、まあちょっと現像機能がなかなか大変なので、まだ途中道半ばなんですけど、その楽しい部分だけ先に作って、
こうなんていうか写真を手繰り寄せて遊んでますが、もうちょっと実装を進めていって、
まあそれこそLLMというかチャットボットとつないで、大量の写真と会話をするみたいな、なんかそういう感じのチャットボットが作れたら、
それで会話していくと、その時の写真がどういう写真だったかっていう情報が、逆にLLM経由で自分から引っ張り出されて、
さらにそれが写真のメタデータに紐づくようになっていくっていう。
なんかすごいことになってるぞ。
そうすると、もはや言葉と写真っていうのは並列に扱うプラットフォームになるかもしれなくて、
それで言葉で喋ったこととか書いたこととか、それと写真がどんどん紐づいて、検索性も上がるし、
ただの写真の羅列だったものに、なんか一本の意味が、なんていうか、見出されるヒントになっていくんじゃないかっていう。
結構ね、写真ってそれだけだと、後になると思い出せなくなる情報が結構あって、なんでこれ撮ったんだろうみたいな。
そういうのも、なんかどんどん写真と並列な概念として取り込んでいけたらいいかなっていうのはちょっと思ってますね。
いや、すごいですね。マルチモーダル化っていうか、写真の。
もちろん映像もやりたいんですけど、映像がちょっとね、ハンドリングが重すぎてちょっと後回しになってますね。
いや、でもなんかその写真だけ撮ってみても、写真家の人とかが写真集作るときにやるのって、多分その大量に撮った写真の中から1個の文脈を作るというか、
写真集はもう1個の本で1個もう順番が決まっちゃうわけじゃないですか。
その中で一番作品としていい順番を自分で見つけ出すみたいなことだと思うんです。
その時寄り抜いたりとか並べ替えたりとかしながら。そういうのの道具としてもなんかすごいいい感じはしますね。
繋がりを作っていく。自分で繋がりを導き出していくためのツールというか。
そうですね。ちょっとまだ繋がりを見つけ出すための手がかりをもうちょっと増やしたいなと思ってるんで。
なんていうか、絵的にも似てないし場所も時間も違うけど、ここで引き出されてきたら面白いだろうなっていうものを、
なんていうか、引っ張ってくるためのヒントみたいなもの。
で、次にもう1個やりたいのはLLMで片っ端から全てに長文のデスクリプションをつけて、
そうすると言語的なトンチで写真を引っ張ってくることができるかもしれない。
トンチで。
トンチっていうか言葉遊びでもいいし。
連想ゲームみたいなね。
これも試算してみたらAPI使用料が数千円以内で全部の写真を片っ端から説明できそうだったんで。
そんなでいけるんだ。
Googleのジェミニフラッシュだっけ?みたいなちょっと軽量のモデル使うと。
軽めのソフトで。
そうやって、とにかく写真をハンドリングする取っ手をいろんなところからつけて、
その取っ手に引っかかりながらガチャガチャチェーンのように出てくるっていう。
激アツっすね。
これはね。
LLMに勝手に写真を語らせるっていうのがテッドーさんっぽいなというか、
で、その辺をなんか苦しめられたことがあって、最適化頑張りましたね。
ちゃんと経験が生きてる。
AIだけだととりあえず動くものは作るけど、結構手抜きするんですよね。
はいはい。
AIだけで作ると。
ここはきちんとした設計にしないと後々絶対困るから、こういうパターンでやってみたいなことを意思を持って言っていくっていうのは結構重要だなと思いますね。
いや、いいですね。これはもくもく回来てくれた人は多分見れるんで。
そしたら、欲しかったらあげます。危ないツールですけどね。
危ないツール、危険なツールなんで。
はい。
ちゃんとバックアップは取って試してください。
そうですね。
はい。って感じですね。
いやー面白かった。なんかあのベクトルウメコミは何回も言いますけど、これ世の中で使われてたりとかして、結構まだまだ全然面白いものが作れる余地がありそうだなという感じがしてはいるんですよね。
そうですね。
例えばなんか自分が書いた日記をベクトルの海の中に放流したら、その近くに漂ってる別の人の全然違う日の日記が返ってくるみたいなのができたら面白そうだし。
面白いですね。なんか非公開の日記だけど、似たベクトルの日記を書いた人にだけは公開されるっていうシステムとかどうかな。
あーそれいいですね。
そしたら、なんか炎上とかはしないけど、響く人には響くっていう変なものができるかも。
どういう観点で近いのかみたいなのが、なんか説明がつかないけどなんとなく近いみたいなものが。
うんうんうん。
そうなんですよね。この512次元みたいな軸が何の軸なのかっていうことが人間にはわかんないっていうのが面白いですね。
いや本当ですよね。なんかね、人間がこう考えてクラスチャイニングすると多分重複とか。
何か言葉で表現できる軸を模型するしかなくなっちゃうじゃないですか。
でもそうではないっていうね。
AIにとってはそうではないから。
案外人間の脳みその中も直接見るとそんなもんかなっていう気はしますけどね。
実際にその人間が使う言葉だったりとか、画像のキャプションだったりとかを大量に集めてモデルに学習させたものだから、そうではあるんですよね多分。
人間の脳から吐き出されてきたものをその言葉による明示的な軸以外のものでより集めるとこうなりましたみたいな感じなんで。
自分で使うとその面白みがよりわかりますね。
いやすごいなあ。しかも使えるもんなんですね普通に。
そうですね。まあでも結構AIに使ってもらったというか、クロードコードに書いてもらった部分は大量にありますけど。
まあ楽しいですね。何回か前はAI学習して楽しいって言ってましたけど、
学習の以前にそもそもいいモデルたくさん転がってるから、
一旦そっちが楽しいっていうのをやっていこうと。まあどっちも並行して楽しめたらいいと思うんですけど。