告知:令和6年度歴史文化講演会 主催:古谿荘に親しむ会 主題:葛飾北斎は凱風快晴をどこから描いたのか 日時:2024年6月15日(土)15:00〜(受付14:45) 場所:富士市富士川ふれあいホール多目的室 無料:一般参加者は60人程度(申込不要)
久保覚: 1963年(昭和38年)山梨県河口湖生まれ 20代はSEとして竹中工務店と共同で人工知能CADの開発、SONYと共同でA1タブレット開発。 1995年、河口湖に戻り富士山の情報発信サイトを立ちあげるかたわらコンピュータ技術書や小説を出版。 特に富士山のライブカメラは設置数30を超えるほど富士山周囲に配置し、マスコミに多数出演。 2010年ごろより地域の歴史に興味を持つのを契機に、365日360度網羅した膨大な富士山画像と画像処理技術の成果として江戸時代に描かれた浮世絵の場所特定を始める。 2017年、葛飾北斎の凱風快晴の場所特定を扱ったNHK歴史秘話ヒストリアに出演。2021年、葛飾北斎の秘密としてNHK歴史探偵。2023年の正月特番で山下白雨回として出演。
葛飾北斎の凱風快晴は秋の赤富士の山梨説が流布されていますが、初夏の早朝静岡で描かれています。 また、画は一般的に秋のイメージと言われていますが、地域からの富士山を知らない赤富士と鱗雲の根拠に頼る御用学者の知識不足には閉口するばかりです。 講演では諸々含めて200年の論争に終止符を打ちます。
富士川付近のスケッチは他の冨嶽三十六景の画に流用されています。
講演では凱風快晴以外の浮世絵にも言及します。 山下白雨は富士宮市からのスケッチです。そのトリッキーな手法は実に面白いもので200年の謎は解けました。 決して2000mもの上空から描いたと唱えるご都合主義の解釈ではありません。
また、そのスケッチは甲州伊沢暁に流用されており、こちらの富士山の謎も解けました。
甲州三島超の富士山稜線の凹凸は絵の中央の木の皮と一致しており、他の要素も前景と相似しています。前景の旅人は何に喜んでいるのか近くの傍観者は何を思うのか。 このように新発見によって画の見方が変わる瞬間が面白いです。
神奈川沖浪裏の画はアニメーション効果です。波は一般的に言うシャッターの目という浅い表現ではなく、日本の歴史的経緯で生まれたものです。 葛飾北斎の画はそのインパクトからあらゆる知識人が後付け で色々なことを発言し、それが事実のように流布しています。結果論から絵を解釈するという行為は作品の本質や歴史的事実に迫るときある種の危険性をはらんでいます。 #葛飾北斎 #冨嶽三十六景 #3Dプリンター #浮世絵 #模型
2025年4月31日(火)〜4月13日(日)まで 勝山観光協会主催 【勝山さくら祭りスタンプラリー】 さくら名所3か所(道の駅かつやま、富士ビューホテル、冨士御室浅間神社)のスタンプを押して道の駅かつやま又は冨士御室浅間神社にご提示ください。 期間中毎日先着50名様にプレゼントを差し上げます。 プレゼントは、おひとり様1枚につき以下のどちらかをおひとつ! ●冨士御室浅間神社の厄割の玉(厄難を打ち砕く御守り) ●道の駅かつやまのソフトクリーム ※プレゼント配布時間 10:00〜15:00
TV番組で良く見る金庫開け。 そういえばダイヤル式金庫ってどんな仕組みだったっけ?右に何回、左に何回でどうして開くのか? 金庫の仕組みを知りたいので3Dプリンターで作ってみた動画をYoutuber風に作ったみた。
#3Dプリンター #模型
VIDEO
googleの生成AIのBardがGeminiになった。その実力を見るために何かプログラムを作って確かめてみた。 気象庁では定期的にXMLフォーマット形式の電文を配信している。 このXMLファイルを定期的に自動で読み込めばHP上に天気予報を表示できるので実際にGoogleGeminiを使用してプログラムしてみた。 以下に表示に至るまでの方法をステップごとに備忘録として記録する。 ===========
ステップ1. 気象庁のXMLフォーマット形式の電文を定期的に取り込む。 サーバーのcrontabで定期的にXMLファイルを取り込むよう設定。 気象庁のファイルは「https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml 」にある。 読み込む方法はfreeBSDならfetchコマンドで取り込む。 fetch -mp -o /自分のサーバーのパス/weatherJapan.rdf https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml 以上で、自身のサーバー内にweatherJapan.rdfファイルとして取り込み完了。 ---------------
ステップ2. 取り込んだデータから「山梨県の最新データ」を取り込む。 「ステップ1」で取り込んだ気象庁のデータは全国の気象データのindexのようなものなので、そこから山梨県の最新気象データを抽出する。 具体的には、indexに並んでいるデータ群(過去データもある)から目的のデータを見つける。 山梨県の気象予報なら、甲府気象台の「https://www.data.jma.go.jp/developer/xml/data/ データの日付_0_VPFD51_190000.xml」となる。 データは過去のアーカイブを含むので最新のデータ、つまりリストの先頭のindexを引く。 indexの引き方はunixのshellScriptで自動化する。 生成AIで、「VPFD51_190000を含むリストの先頭の文字を取り出すshellScriptを書け」と命令。 weatherF=$(grep -Eo 'https:\/\/www\.data\.jma\.go\.jp\/developer\/xml\/data\/(.*)VPFD51_190000\.xml' /自分のサーバーのパス/weatherJapan.rdf | awk -F/ '{print $NF}' | head -1) 上記の回答を得る。 次は変数weatherFを使用して山梨県のXMLデータをfetchで読み込む。 fetch -mp -o /自分のサーバーのパス/weatherYamanashi.rdf https://www.data.jma.go.jp/developer/xml/data/" ${weatherF}" 以上で、自身のサーバー内にweatherYamanashi.rdfファイルとして取り込み完了。 <Gemini最初の指令>https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml にあるXMLファイルからhttps://www.data.jma.go.jp/developer/xml/data/ *****_VPFD51_190000.xml の部分を抽出し、抽出した先頭のみを表示するシェルを書け。 ただし、「*****」は任意の文字列。 解答→正規表現とgrepのパターンを提示してきた。正規表現はエラーになったのでgrepを使用し改良して使用。 ---------------
ステップ3. 「ステップ1」と「ステップ2」をcrontabで定期的に実行するようサーバーに記述する。 <weatherYamanashi.rdfファイルの中身例> 前段あり〜 <DateTime>2024-02-13T17:00:00+09:00</DateTime> <Duration>PT7H</Duration> <Name>今夜</Name> </TimeDefine> <TimeDefine timeId="2"> <DateTime>2024-02-14T00:00:00+09:00</DateTime> <Duration>P1D</Duration> <Name>明日</Name> </TimeDefine> <TimeDefine timeId="3"> <DateTime>2024-02-15T00:00:00+09:00</DateTime> <Duration>P1D</Duration> <Name>明後日</Name> </TimeDefine> </TimeDefines> <Item> <Kind> <Property> <Type>天気</Type> <DetailForecast> <WeatherForecastPart refID="1"> <Sentence>晴れ</Sentence> <Base> <jmx_eb:Weather type="天気">晴れ</jmx_eb:Weather> </Base> </WeatherForecastPart> <WeatherForecastPart refID="2"> <Sentence>晴れ 昼過ぎ から くもり</Sentence> <Base> <jmx_eb:Weather type="天気">晴れ</jmx_eb:Weather> </Base> <Becoming> <TimeModifier>昼過ぎ から</TimeModifier> <jmx_eb:Weather type="天気">くもり</jmx_eb:Weather> </Becoming> </WeatherForecastPart> <WeatherForecastPart refID="3"> <Sentence>くもり 後 一時 雨</Sentence> <Base> <jmx_eb:Weather type="天気">くもり</jmx_eb:Weather> </Base> <Temporary> <TimeModifier>後 一時</TimeModifier> <jmx_eb:Weather type="天気">雨</jmx_eb:Weather> </Temporary> </WeatherForecastPart> </DetailForecast> <WeatherPart> <jmx_eb:Weather refID="1" type="天気">晴れ</jmx_eb:Weather> <jmx_eb:Weather refID="2" type="天気">晴れ後くもり</jmx_eb:Weather> <jmx_eb:Weather refID="3" type="天気">くもり後一時雨</jmx_eb:Weather> </WeatherPart> <WeatherCodePart> <jmx_eb:WeatherCode refID="1" type="天気予報用テロップ番号">100</jmx_eb:WeatherCode> <jmx_eb:WeatherCode refID="2" type="天気予報用テロップ番号">111</jmx_eb:WeatherCode> <jmx_eb:WeatherCode refID="3" type="天気予報用テロップ番号">212</jmx_eb:WeatherCode> </WeatherCodePart> </Property> </Kind> <Kind> <Property> <Type>風</Type> 〜以下続く ---------------
ステップ4. 定期的に取り込んだ山梨県の天気予報データ(weatherYamanashi.rdf)を解析する。 解析にはperlプログラムを使用する。 必要な部分のみperlの正規表現を使用してプログラムしようとしたが、今回は「XML::Simple;」を使用することにした。 use File::Slurp; use XML::Simple; use Data::Dumper; my $xml = read_file("weatherYamanashi.rdf"); #ファイルの読み my $parser = XML::Simple->new(); #XML::Simple使用準備 my $parser_data = $parser->XMLin( $xml); #取り込み print Dumper($parser_data); #結果表示 〜取り込まれたデータ例 $VAR1 = { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/ ', 'xmlns:jmx' => 'http://xml.kishou.go.jp/jmaxml1/ ', 'Control' => { 'DateTime' => '2024-02-11T01:34:15Z', 'Status' => "\x{901a}\x{5e38}", 'PublishingOffice' => "\x{7532}\x{5e9c}\x{5730}\x{65b9}\x{6c17}\x{8c61}\x{53f0}", 'EditorialOffice' => "\x{7532}\x{5e9c}\x{5730}\x{65b9}\x{6c17}\x{8c61}\x{53f0}", 'Title' => "\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}\x{ff08}\x{ff32}\x{ff11}\x{ff09}" }, 'Head' => { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/informationBasis1/ ', 'TargetDateTime' => '2024-02-11T11:00:00+09:00', 'Headline' => { 'Text' => {} }, 'InfoKind' => "\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}", 'TargetDuration' => 'P2DT13H', 'EventID' => {}, 'Serial' => {}, 'Title' => "\x{5c71}\x{68a8}\x{770c}\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}", 'InfoType' => "\x{767a}\x{8868}", 'InfoKindVersion' => '1.0_1', 'ReportDateTime' => '2024-02-11T11:00:00+09:00' }, 'xmlns:jmx_add' => 'http://xml.kishou.go.jp/jmaxml1/addition1/ ', 'Body' => { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/ ', 'xmlns:jmx_eb' => 'http://xml.kishou.go.jp/jmaxml1/elementBasis1/ ', 'MeteorologicalInfos' => [ { 'TimeSeriesInfo' => [ { 'Item' => [ { 'Area' => { 'Code' => '190010', 'Name' => "\x{4e2d}\x{30fb}\x{897f}\x{90e8}" ---------------
ステップ5. 必要な部分のみ取り出す 例えば、天気予報の部分を取り出す sub getJMAWeatherTenki{ my $data = shift; #取り込んだハッシュ my $place_id = shift; #地域コード:富士五湖=1 my $time_id = shift; #今日=1,明日=2、明後日=3 my $content; foreach my $weather_define ( @{$data->{Body}{MeteorologicalInfos}[0]{TimeSeriesInfo}[0]{Item}[$place_id]{Kind}[0]{Property}{WeatherPart}{'jmx_eb:Weather'}} ){ if( $weather_define->{refID}==$time_id ){ $content = $weather_define->{content}; } } return $content; } 戻り値例:「くもり後晴れ」 <Gemini最初の指令> weatherYamanashi.rdfを解析し、天気データ「{jmx_eb:Weather}」の「{refID}」が一致する文字列「{content}」を得よ。 解答→得た答えを修正して上記を仕上げた。 ---------------
ステップ6. 天気予報の文字から画像を作成する まず以下の画像データを意味付けしたファイル名で作成する。 文字列から画像ファイル名を構成する。 sub getJMAWeatherImg{ my $weather_str = shift; #天気文字列 my $time_id = shift; # my %exDayId = ( '今日' => 1, '明日' => 2, '明後日' => 3 ); use constant WEATHER_CODES => { '晴れ' => 1, 'くもり' => 2, '雨' => 3, '雪' => 4, }; use constant TIME_CODES => { '時々' => 1, '後' => 2, }; my @parts = split(/(後|時々)/, $weather_str); my $a = WEATHER_CODES->{ $parts[0] } || 0; my $b = TIME_CODES->{ $parts[1] } || 0; my $c = WEATHER_CODES->{ $parts[2] } || 0; my $p = 0; my $name; #以下は「今夜」の場合を考慮する foreach my $time_define ( @{$exParserData->{Body}{MeteorologicalInfos}[0]{TimeSeriesInfo}[0]{TimeDefines}{TimeDefine}} ){ if( $time_define->{timeId}==$time_id ){ $name = $time_define->{Name}; } } Jcode::convert( \$name, 'utf-8'); #ファイル内はUTF-8だが、そのままでは使用できない my $fDayw = Jcode::convert( '今夜', 'utf-8'); #そのため比べる両者をUTF-8で再矯正する if( $name eq $fDayw ){ $p = 1; } my $fileImg = sprintf("tnk%04d.png", $p . $a . $b . $c); return $fileImg; } 何故か文字化けが発生し苦労したが上記の方法で回避 <Gemini最初の指令> 「晴れ」、「晴れ後くもり」、「雨時々雪」と言った文字列があります。 「後」と「時々」をキーに文字列を前後に分けて上の例なら、 「晴れ」、「晴れ」「後」「くもり」、「雨」「時々」「雪」と文字列を分解するperlプログラムを書け。 〜 得た文字列を、「晴れ」=1、「くもり」=2、…のように3桁の数字に置き換えよ。 解答→得た答えを修正して上記を仕上げた。 ---------------
ステップ7. 以上のプログラムを半分以上生成AIに手伝ってもらい完成させた。 あとは自分の環境に合わせて関数化し汎用ライブラリーとして保管。 --------------- 以上、動作例は「https://live.fujigoko.tv/?n=30 」等を参照。 今回は自身と気象庁のサーバー負荷を考え以上のようにしたが、「ステップ1」と「ステップ2」を省いて全てperlで記述すればその都度全国の気象データを得ることができる。 具体的には、https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml から全国の気象データを抽出すれば良いようにプログラムをさらに汎用化し公開もできる。 が、自身のサーバーでそのサービスを提供するメリットがあるかどうかと考えてしまった。 #コンピュータ #AI #人工知能 #プログラム
国土交通省が主体で勧めている日本風景街道 と「ぐるり富士山風景街道 」の一環である富士山一周サイクリング。 テーマの一部として浮世絵と富士山 を含む模擬ツアーを行い、昨年12月に外国人数名と富士山一周のe-Bikeツアー(トータル4日間)の撮影同行した。 その成果物として動画編集をするのだが、外国人向け動画のバックミュージックは英語歌詞の入った楽曲にしようと思っていた。 ところが、編集をしようにも動画の内容にあった詩もないし、たいていの歌入りは著作権の問題もあった。 そこで、昨年夏から話題になっていたSunoAIが12月にバージョンアップしたという事で活用してみることにした。 そしてそれは、結果的に動画のバックグラウンドに最適だった。 もちろん、ツアーの内容はすべて英語詩に入っている。
まず、chatGPTに「e-Bikeで富士山一周の動画を作りバックミュージックは英語である」ことを示唆。 次に動画に入れ込むシーンの説明を加えた。例えば「神社に行った」とか「洞窟に入った」とかだ。 何度かの指令のあとchatGPTにてなんとなく詩が出来上がったのである。 この時に注意することは、イントロ→詩→つなぎ→サビといった構成の考慮は私自身が行った。 (もちろん、chatGPTもそれなりに考慮してくれますが、SunoAIとの相性はあります。) 次に、出来上がった英語詩をSunoAIにてバックミュージックとして楽曲とボーカルを生成させてみた。 そして、幾つかの候補から楽曲の長さを4分程度に調整し、バックグラウンドミュージックとして完成させました。 出来上がった楽曲はCとFの繰り返しで単調だがバックミュージックとしては邪魔にならないよう出来上がったと思う。というより大切な要素。 以下に英語詩と対訳と出来上がった動画を掲載しておく。 その驚くべき親和性とAIの発達に敬意を表する。 思い起こせば2015年にgoogleの人工知能の記事に触れて感想を記事にした が、あれから9年でここまできた。さらに10年後、20年後で2045年問題を超えるが、想定より早いかもしれない。
富士山一周のe-Bikeの行程は以下の通り。 1日目 :清水→三保→由井→御殿場2日目 :御殿場→須走→山中湖→忍野八海→富士吉田3日目 :富士吉田→河口湖→樹海と洞窟→朝霧ふもとっぱら4日目 :朝霧ふもとっぱら→牧草地→白糸→柚野→富士山本宮 上記の各動画(日本語 ・英語)、計8本。
=================================Title:Around Mt.Fuji Adventure Tour Sacred shrines echo in the wind, Embracing the unknown, riding on E-BIKE, The melody of the fields, the heartbeat of the earth, In the depths of caves, treasures concealed, Dreams painted on the shores of the lake. On our e-bike tour, every moment's a thrill (oh-yeah) At the foot of Mount Fuji, the adventure begins. Exploring cultural heritage on E-BIKE, Life at the foothills of Mount Fuji, resonates within, The landscapes weave an emotional poem, Unending adventures, a journey to dreams. Mystical shrines, the breath of history, Proud lands, a stage set in melody, The song of the fields, the heartbeat of the earth, In the mystery of caves, the magic of treasures, Colors of dreams reflected on the lakeside. Exploring cultural heritage on E-BIKE, Life at the foothills of Mount Fuji, resonates within, The landscapes weave an emotional poem, Unending adventures, a journey to dreams. Guided by Mount Fuji beneath the starry sky, The light of E-BIKE shining toward a brilliant future, Imprints of adventure on the heart, A quiet continuation of the fantastical journey. Guided by Mount Fuji beneath the starry sky, The light of E-BIKE shining toward a brilliant future, Imprints of adventure on the heart, A quiet continuation of the fantastical journey. ======= 日本語翻訳 =======タイトル:富士山一周アドベンチャーツアー 神聖な神社が風に響き渡り、 未知を受け入れ、E-BIKEに乗って、 野原の旋律、大地の鼓動、 洞窟の奥には財宝が隠されており、 湖畔に描かれた夢。 私たちの電動自転車ツアーでは、あらゆる瞬間がスリル満点です (そうそう) 富士山の麓から冒険が始まります。 E-BIKEで文化遺産を巡る、 富士山麓の生命が響き渡り、 情緒あふれる詩を織りなす風景、 終わりのない冒険、夢への旅。 神秘的な神社、歴史の息吹、 誇り高き土地、メロディーに彩られた舞台、 野の歌、大地の鼓動、 洞窟の神秘、宝物の魔法、 湖畔に映る夢の色。 E-BIKEで文化遺産を巡る、 富士山麓の生命が響き渡り、 情緒あふれる詩を織りなす風景、 終わりのない冒険、夢への旅。 星空の下、富士山に導かれて、 輝かしい未来に向けて輝くE-BIKEの光、 心に残る冒険の痕跡、 幻想的な旅の静かな続き。 星空の下、富士山に導かれて、 輝かしい未来に向けて輝くE-BIKEの光、 心に残る冒険の痕跡、 幻想的な旅の静かな続き。
その他の日程の「ぐるり富士山サイクルネット協議会」の動画 は以下から。 #AI #人工知能 #動画配信 #SunoAI #chatGPT #ぐるり富士山
VIDEO
そこで、ちょっと変な狂気をはらんだ意味不明の楽曲を作成できるかにチャレンジしてみた。 結果、わずか数時間で完成。
文章生成AIが本格的に使えるようになってから1年以上経過した。 その後、画像生成、動画生成と時代は進化してついに昨年夏ごろから自動作詞作曲までできるようになった。しかも歌まで歌ってくれる。
そして、最近になって私のもとに動画作成の依頼があったのでそのバックグラウンドミュージックに歌詞付きの音楽を入れたくなったので実際にAIを活用して楽曲を作成してみた。
まず著作権クリアのために課金を行い、PCの画面を通して動画の状況説明と要望を入力して英語歌詞の楽曲を作成した。 結果、思いのほか簡単に良いものができたので感動した次第です。この動画は後日公開いたします。
さて、今回はAI楽曲作成の話…… そこで、ちょっと意地悪に日本語歌詞の楽曲を作ってみた。 その成果が以下です。
#AI #人工知能 #動画配信 #SunoAI #chatGPT
VIDEO