SONICMANIA 2023 時系列レポ

2023.08.16

Perfumeの新曲「Moon」配信記念のインスタライブを見る。Perfumeは11月のファンクラブツアーに参加するのでそれまで参加するライブはなかったが、新曲をホヤホヤの状態でライブで聴けそうな予感がしたので無性にライブに行きたくなり、SONICMANIAのチケットを取る。

あ~ちゃんが細すぎてちょっと心配だった配信

2023.08.18

16:30

SONICMANIA当日。初おろしの"WE ARE PERFUME" Tを着て名古屋から向かう。東京までの約1時間半はずっと「Moon」を聴いて予習をする。

18:15

東京駅に到着し、乗り換えの長い通路を歩いて京葉線に乗り換える。電車には同じくソニマニ行くであろう人たちがちらほら。

19:30

幕張メッセ到着。PerfumeはMountain Stageのトップバッターで20:40スタートだったが妥協して1時間前に。ロビーのロゴモニターには目もくれず、速やかに荷物をクロークに預ける。装備はショルダーバッグのみで、中にはスマホと財布のみ。踊る予定の時はスマホすらポケットに入れたくないのだ。もはやドリンクも不要。

足早にステージに向かう。3列目までやや埋まっている状態。なんとなく客層を一瞥し、若者が固まっている隣を選択。隣の話が耳に入ってくる感じ、どうやらSNSで繋がっている集まりらしい。途中モニターの広告でZEDDの曲がかかったのだが、それにウェイウェイする感じ。普段だったらこのノリは敬遠するが、フェスにおいてこういった集団の近くにいることは自分のモチベーションも高めるため時には必要である(個人の感想)。

20:30

ステージがほぼ埋まる。隣の例のグループが「Perfumeがフェスでちゃんと埋まってるの見ると嬉しい」と喋っている。俺もそう思う。

20:40

Perfume

そしていよいよPerfume開演。爆裂セトリ(あ~ちゃん命名)はこちら。

  1. ポリリズム
  2. FLASH
  3. Spending all my time
  4. ポリゴンウェイブ
  5. アンドロイド&
  6. (MC)
  7. Moon
  8. だいじょばない
  9. P.T.A.のコーナー)
  10. Party Maker
  11. チョコレイト・ディスコ

とにかく最初から最後までぶち上がった!爆音Spending all my timeで頭がおかしくなりそうなほど気持ちよくなった。

ソニマニで新曲を聴くと、前回のソニマニ(2017?)を思い出す。たしか当時新曲の「If you wanna」が初披露だったかな。

当時の写真

考えてみたら、マスクなしPerfumeは2019のコヤブソニック以来だったかも。

21:40

自販機でいろはすを買ってがぶ飲み。余韻を噛み締めながら、グッズの列に並ぶ。JUN INAGAWAコラボTと、SUMMIT Tシャツを購入。タオルはもう売り切れてた…

久々に大声を出したので声が完全に枯れてしまい、スタッフさんにTシャツの種類を伝えるのにとても苦労した。

Tシャツが汗でびしょ濡れになってしまったので、買ったばかりのJUN INAGAWA Tに着替える。

買ったやつ

22:30

グッズも買って、Tシャツも着替えて落ち着くとお腹が減ってきたのでFoodエリアを物色。牛肉版ルーロー飯(ニューローハン?って書いてあったかな)がうまそうだったので購入。これが美味しかった!

飲み物はレモンサワー(こだわ◯酒場をカップに入れ替えたやつ)

フェスなのに屋内で、しかも空調の効いた環境で食べるご飯って最高ですよね。

23:00

ご飯も食べたのでステージを巡る。NFエリアに移動し、2番目にお目当てのDAITO MANABEさんを楽しむ。曲もVJも全部最高だった。

テーブルの前に設置された、自動で左右に往復運動をする機器が気になった。こういうところがライゾマさんっぽいなと感じた。

25:13

甘いものが食べたくなったのでアイスクリームとホットコーヒーを嗜む。お酒が飲めなくても楽しめるほど食事のラインナップが充実していて最高だった。

ミルクが濃厚で美味しかった

1:30くらい

ホットコーヒー片手にiri、電気グルーヴ、JAMES BLAKEを聴き歩く。

電気グルーヴを聴いたときはちょうど「Baby's on Fire」を演っていた。これはにわかの自分でも聴いたことがある。

26:25

PACIFIC STAGEでPUNPEEを観る。にわかだったけど知ってる曲もチラホラあって楽しめた。

こちらのVJはStable Diffusionを使ってそうな雰囲気があった。

サプライズ出演としてOMSB、Peterparker69が出演。

Peterparker69は結構好きな感じ。AppleのCMにも起用されてるんだって。

27:30くらい

ちょっと押して3番目のお目当て、muramasaスタート!開口一番「ヤッホー」だってかわいい

MVを使ったVJ良かった。Tohji絶対来ると思ったのにまさかの不在Slomoで残念。。。でもとにかく盛り上がった。

知らなかったけど、Boy's a liarってmuramasaプロデュースだったんだね

2023.08.19

4:46

muramasaで汗かいたのでまたTシャツを着替える。今度は持参したPLASMAツアーT。

本当はICHIRO YAMAGUCHIさんまで観たかったが、ほどよい満足度があったのとずーっと立ちっぱなしによる腰痛に限界が来ていたので、始発が動き出したタイミングで会場を後にする。

1人で朝まで持つか不安だったが、振り返ってみるとあっという間に最後まで楽しめた。ありがとう!幕張メッセ

会場ではサマソニ待機組がもう並んでてちょっと引いた

6:06

新幹線に乗って名古屋へ。気を抜くと爆睡しそうだったので、YouTubeで好きな芸人の異常企画を見ながら車内で買ったホットコーヒーとサンドイッチを嗜む。たまごサンド美味しかったなー

↑異常企画の動画

また次も楽しいライブに参加できることを願ってレポを終了する。

ありがとう、SONICMANIA

人生初のゲーミングPC買った

パソコン工房を抜けたら、家にゲーミングPCがありました

ここ最近ハイスペPC欲が収まらず、ずっとサイトやYouTube等見て情報収集していたのですが、 先日ふらっと訪れたパソコン工房さんでビビビときてしまい、即決でお持ち帰りしてきました。

PCもテイクアウトの時代(めちゃ重かった)

はじめてのゲーミングPCであり、初めてのWindows、めちゃめちゃワクワクしています。 その気持ちを抑えつつ、備忘録も兼ねて購入までに辿った経緯をまとめてみたいと思います。

  • どんな用途で使おうと考えていたか
  • どんなスペックを検討していたか、予算
  • 結果買ったPCのスペックはどんなもんか
  • 購入後のセットアップ

ちなみに、中古品を購入しています。

使用用途

  • 画像生成AI動かしてみたい
  • Unityを快適に使いたい
  • Blenderを快適に使いたい
  • ゲームやってみたい
  • M5Stackで遊ぶ

必要に迫られたから買うというよりは、いろんなことやってみたい!というテンションの方が強かったです。 インターネットに触れ始めた中学生の頃、PCゲームの実況動画を見ていたこともあったので、そのときの憧れもうっすらありました。

検討スペック・予算

予算は20万以下で、スペック云々よりは予算先行で考えていました。

www.pc-koubou.jp

www.pc-koubou.jp

CPUにはあんまりこだわりはなく、GPUはなんとなくRTX3060あれば十分なのかな?と思ってたくらいです。

購入PCスペック

お迎えしたPC

じゃーん

GAMING BASE LEVEL by iiyama

玄人志向のグラフィックボードが付いていました。

GK-RTX3060-E12GB/OC/WHITE

www.kuroutoshikou.com

CPUはIntel Core i7、メモリは16GB

www.intel.co.jp

なにやらごつめのファンも付いてた

Cooler Masterのファン

電源

700A-SAB1

ストレージは1TB SSDでした。

購入した日は中古品が10%割引の日だったので、税込14万弱でした。これは結構お買い得だったのでは?と思ってます。

セットアップ

とりあえずこのあたり実施しました。

  • Windows11インストール
  • Unityインストール
  • Epic Gameインストール(前にGTA5無料配布もらってたの思い出しました)
  • Blenderインストール
  • Stable Diffusion Web UIインストール

最後に

輝きを放つRTX3060

人生初のゲーミングPCを買っちゃいました。 普段はMacbook Proを使っているのですが、仕事ではもっぱらWindowsなので、普段使うMacに使いづらさを感じてたり、OSアップデートするたびになにかしら問題出たり、ちょっとやりづらいなと感じてたのも、購入に踏み切った理由の一つです。

Macユーザーの方もぜひWindowsのゲーミングマシンを検討してみてはどうでしょうか。

ただMacは今後も使い続けます。スタバでドヤれるのはこれしかないので

背中を押してくれた先駆者様

karaage.hatenadiary.jp

qiita.com

【Jetson nano】LXDEを入れてメモリの消費量を抑える

はじめに

公式から提供されているOSイメージを使ってセットアップすると、Ubuntuデスクトップがプリインストールされています。

f:id:chigrii:20210506200316p:plain
お馴染みのUbuntuデスクトップ

慣れ親しんだUIで使い勝手は非常にいいのですが、結構負荷がかかってしまいます。

何かと重い処理をさせがちなJetson君、普段使いではSSH接続するのでそこまでリッチなデスクトップ環境がいらないJetson君なので、軽量デスクトップの代名詞「LXDE」をインストールしてメモリ負荷の軽量化に取り組みたいと思います。

参考ページ

www.zaferarican.com

環境

$ uname -r
4.9.201-tegra
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:    18.04
Codename:   bionic

手順

前提

デスクトップ環境を入れ替えるので、念のためSSH接続ができるようにしておきましょう。

UbuntuデスクトップをLXDEに入れ替え

すでにインストールされている環境を削除

sudo apt remove --purge ubuntu-desktop

次に、lxdmディスプレイマネージャをインストール

sudo apt install lxdm

f:id:chigrii:20210506201253p:plain
どのディスプレイマネージャをデフォルトにするかのポップアップ

このようなポップアップがでるので、lxdmを選択して続行

もともと使われていたデスクトップマネージャ「gdm3」をアンインストール

sudo apt remove --purge gdm3

LXDEをインストール(自分の環境ではすでにインストールされていました)

sudo apt install lxde

そして再起動

sudo reboot

LXDE環境で起動できました。htopでメモリの消費量を調べたところ、約1GBくらいでした(リンク先では400MGくらいにできるとありましたが残念・・・)

f:id:chigrii:20210506202457j:plain
解像度良すぎて全然見えませんね

最後に

LXDE環境に変更することで起動も軽くなったような気がします。

【Jetson Nano】SegNetを使ったセマンティックセグメンテーション

はじめに

前回の続きです↓

chigrii.hatenablog.com

うーん、セマンティックセグメンテーションとはなんぞや・・・

セマンティックセグメンテーションとは

こちらのページがわかりやすかったので引用させていただきます。

jp.mathworks.com

セマンティック セグメンテーション (Semantic Segmentation) は、画像内の全画素にラベルやカテゴリを関連付けるディープラーニング (Deep Learning) のアルゴリズムです。特徴的なカテゴリを形成する画素の集まりを認識するために使用されます。

なるほどわからん状態ですが、こちらの画像を見るとなんとなく理解できました。

f:id:chigrii:20210504233152p:plain
画像とラベル付き画素

このように人物の画素をなんらかの方法でぺたぺたアノテーションすることで「背景」と「人物」の2つのクラスに分割することができるとのこと。ちなみにカテゴリは2つに限らないので、この画像で言うと「空」「海」にも分割することができる。

画素レベルで分類できるので、バウンディングボックスに収まる必要がある物体検出よりも不規則な形状のものを検出することができます。

その分、アノテーションが難しそうなのは容易に想像できますね、、、

なんとなく理解できたので、デモに移っていきましょう🏃‍♀️

デモでやること

  • 様々なデータセットを使った画像のセグメント化
    • Cityscapes
    • DeepScene
    • Multi-Human Parsing(MHP)
    • Pascal VOC
    • SUN RGB-D
  • ライブカメラを使ったセグメント化

様々なデータセットを使ったセグメント化

それぞれに対応したシーンの画像を用意しましょう。もちろんあらかじめ用意されている画像を使うのもありです。

データセット 概要 備考
Cityscapes ストリートシーン Cityscapes Dataset – Semantic Understanding of Urban Street Scenes
DeepScene オフロードシーン DeepScene
Multi-Human Parsing(MHP) 四肢や衣服を分類 MHP:Multi-Human Parsing
Pascal VOC 様々な人、動物、車両、および家庭用オブジェクト The PASCAL Visual Object Classes Homepage
SUN RGB-D オフィスや家庭でよく見る屋内のオブジェクトやシーン SUN RGB-D: A RGB-D Scene Understanding Benchmark Suite

スクリプトは例の如く、以下の場所に格納されています(ソースからビルドした場合)

jetson-inference/build/aarch64/bin

Cityscapes

./segnet --network=fcn-resnet18-cityscapes scene.jpg output.jpg

f:id:chigrii:20210505012203j:plain
渋谷駅前

夜だったから空がうまく認識されてない?

DeepScene

./segnet --network=fcn-resnet18-deepscene scene.jpg output.jpg

f:id:chigrii:20210505012310j:plain
近江神宮の参道

もっと茶色っぽい地面だったら上手く分類できたかも

Multi-Human Parsing (MHP)

./segnet --network=fcn-resnet18-mhp scene.jpg output.jpg

f:id:chigrii:20210505012517j:plain
NFLプレー画像(拾い画)

いい感じに分類

Pascal VOC

./segnet --network=fcn-resnet18-voc scene.jpg output.jpg

f:id:chigrii:20210505012624j:plain
ホームステイ先にいた可愛いイッヌ

これもいい感じだが、なぜか前足の先が「horse」になってる

SUN RGB-D

./segnet --network=fcn-resnet18-sun scene.jpg output.jpg

f:id:chigrii:20210505012742j:plain
昔使ってたソファ

これもいい感じ ソファか椅子かの葛藤が見える

ライブカメラを使ったセグメント化

これも引数にカメラのタイプを指定することで起動できます。

# MHP
./segnet --network=fcn-resnet18-mhp /dev/video0
# SUN
./segnet --network=fcn-resnet18-sun /dev/video0
# DeepScene
./segnet --network=fcn-resnet18-deepscene /dev/video0

最後に

このセマンティックセグメンテーションを活用することで、色々なシーンで色々なものを分類・認識させることができます。

今後機会があれば自前のデータを用意して、オリジナルのデータセットを作成していきたいです。

関連ページ

qiita.com

【Jetson nano】DetectNetを使った物体検出

はじめに

前回からだいぶ間が空いてしまいました。

chigrii.hatenablog.com

jetson-inferenceのチュートリアルを舐めるシリーズ第2弾、今回はDetectNetを使った物体検出を試していきたいと思います。

Jetson nanoの環境やセットアップはこちらから

chigrii.hatenablog.com

今回やること

  • 画像・動画からオブジェクト検出デモ
  • ライブカメラからオブジェクト検出デモ
  • オブジェクト検出を実際にコーディングしてみる

画像から検出

以下のコマンドを実行します。

cd jetson-inference/build/aarch64/bin
# C++
./detectnet --network=ssd-mobilenet-v2 images/peds_0.jpg images/test/output.jp
# Python
./detectnet.py --network=ssd-mobilenet-v2 images/peds_0.jpg images/test/output.jp

各オプションについては以下です。

名前 詳細 備考
--network 検出モデルを指定 デフォルト:SSD-Mobilenet-v2
--overlay 画像に表示する項目の指定 デフォルト:box,labels,conf(バウンディングボックス、ラベル、信頼値)
--alpha overlayのアルファ値 デフォルト:120
--threshold 検出の最小しきい値 デフォルト:0.5

出力されたログ(抜粋)

...
[image] loaded '/home/iri/Downloads/Princesses.png'  (1920x1080, 3 channels)
4 objects detected
detected obj 0  class #1 (person)  confidence=0.978219
bounding box 0  (565.865845, 99.381767)  (1335.715698, 990.417725)  w=769.849854  h=891.035950
detected obj 1  class #1 (person)  confidence=0.640411
bounding box 1  (1214.719849, 166.047745)  (1887.613647, 1036.154663)  w=672.893799  h=870.106934
detected obj 2  class #1 (person)  confidence=0.810929
bounding box 2  (6.457014, 203.381561)  (618.595398, 1069.588623)  w=612.138367  h=866.207031
detected obj 3  class #61 (cake)  confidence=0.673406
bounding box 3  (588.501343, 673.810974)  (1133.559082, 1016.538818)  w=545.057739  h=342.727844
[image] saved 'images/test/princesses.png'  (1920x1080, 3 channels)

[TRT]    ------------------------------------------------
[TRT]    Timing Report networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff
[TRT]    ------------------------------------------------
[TRT]    Pre-Process   CPU   0.08865ms  CUDA   3.11979ms
[TRT]    Network       CPU 1351.71216ms  CUDA 1347.98914ms
[TRT]    Post-Process  CPU   0.10729ms  CUDA   0.10724ms
[TRT]    Visualize     CPU  61.57435ms  CUDA  62.08073ms
[TRT]    Total         CPU 1413.48242ms  CUDA 1413.29688ms
[TRT]    ------------------------------------------------

[TRT]    note -- when processing a single image, run 'sudo jetson_clocks' before
                to disable DVFS for more accurate profiling/timing measurements

[image] imageLoader -- End of Stream (EOS) has been reached, stream has been closed
detectnet:  shutting down...
detectnet:  shutdown complete.

ログ通り、3人とケーキ1個が検出されました。

動画から検出

画像と同じように実行できます。

Jetson Nanoの/usr/share/visionworks/sources/data/以下にサンプルの動画があるので、それを使って試すこともできます。

# C++
./detectnet /usr/share/visionworks/sources/data/pedestrians.mp4 images/test/pedestrians_ssd.mp4

# Python
./detectnet.py /usr/share/visionworks/sources/data/pedestrians.mp4 images/test/pedestrians_ssd.mp4

13秒くらいの動画ですが、いい感じに検出できています。

USBカメラからの検出

引数にカメラのタイプを指定します。

今回はUSBカメラを使うので/dev/video0になります。

./detectnet /dev/video0

めちゃくちゃ検出速度速いですね。最高です!

コーディング

ライブカメラからの検出を例に見てみます。

import jetson.inference
import jetson.utils

net = jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5)
camera = jetson.utils.videoSource("/dev/video0")
display = jetson.utils.videoOutput("display://0")

while display.IsStreaming():
    img = camera.Capture()
    detections = net.Detect(img)
    display.Render(img)
    display.SetStatus("Object Detection | Network {:.0f} FPS".format(net.GetNetworkFPS()))

このくらいのコードでサクッと物体検出できちゃうのはありがたいです…🙏

最後に

Jetson nanoで物体検出を実行する手順を一通り実行してみました(チュートリアルまんまコピペなのはご愛嬌)。

SSD Mobilenetは爆速ですね。今後はこれを色々別のことに応用していきたいと思います。

参考ページ

github.com

【Jetson Nano】ImageNetを使った画像分類

前回のエントリーでJetson nanoをセットアップしました。

chigrii.hatenablog.com

次は順番通りに、ImageNetを使った画像分類をやってみます。

ImageNetとは

自然画像の教師ラベル付き画像データベースのこと

www.image-net.org

いわゆる、MNIST(手書き数字のデータセット)の自然画像版という理解です。

チュートリアルでできること

https://github.com/dusty-nv/jetson-inference/blob/master/docs/imagenet-console-2.md

  • ImageNetのモデルに基づいた画像の認識
  • TensorRTImageNetクラスを使って推論を実行

お手軽に画像認識を試すことができるみたい

画像認識のお試し

以前Dockerで環境構築したので、コンテナにログインする

$ cd jetson-inference
$ docker/run.sh

チュートリアルにもあるように、オレンジとストロベリーの画像認識を実行

C++とPython2つでスクリプトが用意されています。デフォルトのニューラルネットワークGoogleNetが使われます。

# 以下Dockerでの操作です
$ cd build/aarch64/bin
$ ./imagenet images/orange_0.jpg images/test/output.jpg  # C++
$ ./imagenet.py images/orange_0.jpg images/test/output.jpg  # Python

出力画像はimages/testフォルダを指定していますが、このフォルダはホスト側のjetson-inference/data/images/testにリンクしているので、簡単にホスト側でも出力画像をチェックすることができます。

f:id:chigrii:20201227230818j:plain
オレンジ認識

動画を処理することもできます。こちらはResNet-18を指定して実行しています。ちょっと時間がかかります。

# Download test video (thanks to jell.yfish.us)
$ wget https://nvidia.box.com/shared/static/tlswont1jnyu3ix2tbf7utaekpzcx4rc.mkv -O jellyfish.mkv

# C++
$ ./imagenet --network=resnet-18 jellyfish.mkv images/test/jellyfish_resnet18.mkv

# Python
$ ./imagenet.py --network=resnet-18 jellyfish.mkv images/test/jellyfish_resnet18.mkv

もちろんJetsonにつなげたカメラからのフレームも処理できます。

カメラを使う場合の引数については以下のドキュメントが参考になります。

https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-streaming.md

USBカメラだけの場合は/dev/video0を指定します(ラズパイ用カメラなど他のデバイスが接続されている場合はvideo1になっていたりします)

$ ./imagenet v4l2:///dev/video0

v4l2://は省略しても大丈夫です。

f:id:chigrii:20201227231024p:plain
Webカメラ認識

着ていたユニクロのフリースをfur coatやcardiganと認識されてました。

最後に

今回はImageNetのモデルを使った画像認識をテストしてみました。

全然理解できてなくてもコマンド一発でやれちゃいますね。

次はコードを書いて少しづつ中身を理解しながら進めていきたいと思います。

【セットアップ編】2GB版Jetson NanoでHello AI World

サンタさんからJetson Nanoの2GB版をプレゼントしてもらったので、 冬休みのお供として公式のチュートリアルを一通りなめていきます。

ところどころ理解が間違っていたり手順がおかしかったりするかもしれませんが、初心者が頑張ってるなと温かい目で見守っていただけたら幸いです。

SDイメージのセットアップなど

公式サイトの説明が一番わかりやすいと思うので、そちらを参考にしていただくといいです。

Getting Started with Jetson Nano 2GB Developer Kit

SDイメージの作成にはいつもbalenaEtcherを使っていましたが、MacbookをBig Surにアップグレードしてから動作がすんごい重くなってしまったので

Raspberry Pi Imagerを使って作成しました。

書き込みイメージを選択するところで、一番下の「Use Custom」から任意のimgファイル(解凍前のzipファイルでもOKでした)を選択することができます。

環境セットアップ

お試しするチュートリアルは公式のjetson-inferenceパッケージです。

github.com

推論をやるのに使うJetPackというSDKはすでにインストールされているらしいのでプロジェクトをビルドしていきますが

今回はDockerを使った方法で環境をセットアップします(なんとなくです)。

とくに難しいこともなく、公式の手順をそのまま実行するだけでOKです。

インストールされているJetPackを自動でチェックして適切なイメージがpullされるみたいです。

$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ docker/run.sh

途中でDNNモデルを選択する画面が出てきますが、ひとまずデフォルトの状態で続行しました。

イメージのpullが成功すると、自動的にコンテナにログインします。

サンプルソフトを実行してみましょう。

./imagenet images/jellyfish.jpg images/test/jellyfish.jpg

クラゲの認識ができました。

最後に

Hello AI Worldのチュートリアルが実行できる環境が整いました。

NVIDIA公式ガジェットなのでいろいろSDKが用意されてて簡単にセットアップできていいですね。

レーニング動画もあるのであとは己のやる気次第、、、!

https://github.com/dusty-nv/jetson-inference#video-walkthroughs