22_Yanagi_memo
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[22_Yanagi]]
*PythonとかProcessingとかを使ったいろいろ [#a363d2e1]
研究の内容とずれてる感じがしたのでこっちに移行させました&...
-エージェント((仮))を作ってみた[+合成音声に挑戦して...
〇立ち絵を作ってアニメーションを作る&br;
kritaでpsdを作成→Anime Effectで取り込んでコマ打ちして作成...
コマ打ちは全て手動で設定。自身なりに生きているような表現...
大まかな動きは移動・回転・拡縮で、髪や腕の細かい動きはボ...
Anime Effectはボーンの設定が大雑把すぎて細かい表現(手先...
#ref(春課題-作業風景1.png)&br;
L2Dのようなメッシュ自体を動かしてアニメーションを制作する...
プログラム側で自動的に動かす方法を用いるほうがいいかも&br;
&br;
△プログラム上でアニメーションを再生してあるアクションを条...
アクションがない場合はneutralを、何らかのアクションが実行...
neutralを連番pngにして配列に放り込んで表示することはでき...
アクションによる分岐をどのように組み込めばいいかわからな...
#ref(春課題-作業風景2.png)&br;
(matplotlibでこういったイラストgifを動かすのが間違ってい...
tkinterを用いてGUI内にmatplotlibのグラフを表示する手段は...
pythonの実行方法はメモの方にだらだら書いていたUbuntu(Linu...
合成音声+言語処理を使わない限りpythonにこだわる必要もな...
&br;
-可愛いモザイクを作ってみた(2022年 オンライン合宿)&br;
上述しているProcessingとの連携だったりL2Dの使い方がなんと...
成果物(作るにあたってのサンプル含め500MBほど):https://...
(コメントを残してるのでコード見てもらえればなんとなく仕...
#ref(合宿-作業風景.png)&br;
pythonの実行はAnacondaを使ってます(Ubuntuはカメラ関係が...
Arduino刺していないとprocessing側のportでエラーが出て実行...
&br;
・視点の転換とか活用シーンの想定とか(適当に理屈づけし...
モザイク=情報を遮断する壁→情報を取捨選択するフィルタ...
匿名性を維持しながらもその人の感情や個性を表現する&br;
&br;
→話しやすい環境を生み出すことで&br;
コミュニケーションを円滑にし、その人の個性もより引...
--モザイクを使う側の利点&br;
社交不安症(ex.対人恐怖症)や自分の顔にコンプレックスがあ...
エージェントやボードによって性格・個性を表現しながらもコ...
エージェントがいることで上側に視点が誘導される→目を合わせ...
&br;
--モザイクを使われる側の利点&br;
自閉症・HSP(感受性が極端に強い人)&br;
与える情報を制限(基本喜怒哀楽だけを表出)することで負荷...
&br;
※keeponというエージェントを用いた実験においての仮説を参考...
自閉症や知的障害のある子たちがコミュニケーションが上手...
健常児が持っているフィルターがないため(情報の取捨選択...
keeponとのインタラクションでは与えられる情報量が限られ...
フィルターがなくても情報を咀嚼することができ、コミュニ...
&br;
・仕組み&br;
--python側の処理(私の領分ではなかったのでざっくりと)&br;
動画からの顔認識・感情推定&br;
使ったライブラリ:opencv-python,deepface&br;
参考:https://algorithm.joho.info/programming/python/open...
↓&br;
動画からの手の移動量推定&br;
使ったライブラリ:mediapipe&br;
参考1:https://qiita.com/akira2768922/items/c660129cc45cc...
参考2:https://b3s.be-s.co.jp/nocategory/4527/ &br;
↓&br;
座標とか感情値とか手の移動量との送信&br;
使ったライブラリ:python-osc &br;
参考:https://www.eqseqs.work/post/python-osc/ &br;
送った値:[エージェントのx座標/y座標/感情ラベル/感情値/手...
&br;
--processing側の処理(私はアニメーションを担当しました)&...
python側からの値の受信+Arduinoからの値取得&br;
使ったライブラリ:oscP5,Arduino(Firmata)&br;
oscP5の使い方は上のURL参照。Firmataの使い方はSAさんにお聞...
↓&br;
アニメーションの動作&br;
使ったライブラリ:gifAnimation(Githubから手動インストール...
URL:https://github.com/extrapixel/gif-animation/tree/3.0 ...
作ったアニメーション3種(neutral.gif(loop) / surprised.gi...
与えられた値によって切り替える&br;
&br;
ニュートラルをループ再生しつつ、値が閾値を超えた場合のみ...
・手の移動量が閾値(200)を超える=動きが大きい=驚く&br;
・圧力センサが閾値を下回る(初期255,閾値200=頭をなでてい...
(※草案時はセンサをぬいぐるみに付けて、実際に頭の上に乗せ...
&br;
ユーザーとエージェント間をインタラクションで繋ぐことで親...
&br;
アニメーション自体の作成はペイントツール(krita,Clipstudio...
参考:https://docs.live2d.com/cubism-editor-tutorials/top...
&br;
・草案(いろいろ仕様変更してます)&br;
#ref(合宿-草案1.png)
#ref(合宿-草案2.png)&br;
*シロワニさんのつくよみちゃんトークソフトの入れ方 [#a363d...
シロワニさんのつくよみちゃんトークソフト : https://github...
下記のWSLをしなくてもAnacondaの方で出来ました&br;
WSLの方はカメラ等USB機器周りの設定がややこしいですし、デ...
実装するにあたっては①conda上でC++を使えるようにすること ②...
後はgithubからzipをDLして展開し、そのディレクトリを開いて...
&br;
①はCmakeというのにパスを通せばできると思います&br;
参考(Visual StudioのCmakeを使います):https://teitoku-win...
②は仮想環境作成時にver指定するのがいいと思います&br;
*WSL環境の構築 [#a363d2e1]
windows10でcondaを使って冬の課題とかテキストマイニング実...
使い道はたぶんないです。普通にMacやLinuxのPC使うなりconda...
いろいろなサイトを見て数日かけてやっと形になったので初め...
また、簡単な動作確認をしただけなのできちんと導入できてい...
-WSLを有効にする&br;
WSLとWSL2があるらしいですが、WSL2のほうがよさそうなのでそ...
--1.コントロールパネルからWSLを有効にする&br;
コントロールパネル>プログラムと機能>Windowsの機能の有効...
『Linux用Windowsサブシステム』と『仮想マシン プラットフォ...
OKを押すと再起動を要求されるのでそれに従う&br;
--2.Powershellを管理者権限で開いてwsl2の起動?とかとか&br;
windowsマークを右クリック>windows PowerShell(管理者)を起...
[wsl --install]を実行する(※[]は無視してください)&br;
ただこの更新にはカーネル更新プログラムパッケージが必要&br;
入ってないとこのURLからダウンロードしてって言われるのでそ...
&br;
Microsoftのページにはディストリビューション(後述)も一緒...
wsl2への変更も手動でしましたし、なんか間違えてそうですね…...
---2-1.Linuxを動かすやつ(ディストリビューション)をダウ...
Ubuntuっていうのを使いました。Microsoft storeから検索して...
なお、パスワードを打っても表示はされません。でもきちんと...
---2-2.ディストリビューションがきちんとwsl2で動作してるか...
windows Powershellを開いて[wsl -l -v]を実行すると&br;
NAME STATE VERSION &br;
Ubuntu Stopped 2 …みたいなのが表示されるはずです&br;
VERSIONが2になっていたら大丈夫。もしVERSIONが1の場合は以...
[wsl -set-version Ubuntu 2]
>参考:https://docs.microsoft.com/ja-jp/windows/wsl/install
> https://www.pc-koubou.jp/magazine/40465
-Ubuntuでpython3を使えるようにする&br;
参考ページの仮想環境の有効化までを順にしていけば大丈夫で...
sudoでpython環境インストールをした後はテキストマイニング...
>参考:https://qiita.com/sireline/items/3c97a0c266431ac5b...
--ディレクトリにどうやってアクセスすればいいかわからない&...
→CIFSを利用して共有フォルダを作ってwindow側のファイルをLi...
---1,windows側で共有フォルダを作る&br;
ただ作るだけだと共有相手がEveryoneになってるので&br;
プロパティ>詳細な共有から変更>このフォルダを共有するに...
>アクセス許可>ユーザーを追加しフルコントロールにする
---2.Linux側でその共有フォルダをマウントする場所を作る&br;
mkdirで適当な場所にフォルダを作る&br;
treeでLinuxの構造を確認してから作った方がいいかもです(要...
例)mkdir winmount → /User/(user名)/winmount にフォルダ...
>(使い方:https://dekiruengineer.com/engineer/linux_tree_...
---3.CIFSをインストールしてフォルダ同士をつなげる&br;
[sudo apt install cifs-utils]を実行しCIFSをインストールし...
sudo mount -t cifs -o username=[winのユーザ名],password=[...
例)sudo mount -t cifs -o username=winUser,password=PassW...
&br;
※上記は手動マウントの方法。起動時に毎回しないとダメ。自動...
自動化させる場合はIPアドレスを固定しないとダメかも。W...
>参考:https://codeaid.jp/blog/linux-windows-share/
--Matplotlibのshow()が使えない&br;
→LinuxのGUIにwindows側が対応していないのが原因&br;
VcXsrvをインストールしUbuntuのDISPLAY設定を変えることで...
---1.VcXsrvのインストールと設定&br;
公式ページからダウンロードしてインストールして実行。基本...
ただExtra settingのAdditional parameters for VcXsrvに[-ac...
※ネットワークを使う(?)のでファイアウォールでパブリック...
---2.UbuntuのDISPLAY設定を変更する&br;
Ubuntuを開いて [sudo vi .bashrc]を実行&br;
.bashrcの中身が表示されるので一番下の行に以下の分を挿入&br;
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver |...
挿入したら保存してUbuntuを再起動して変更させる&br;
&br;
(sudo) vi [ディレクトリ名]&br;
…そのディレクトリを開いていろいろ書き込みができる。対応し...
a(入力モードに切り替え)とEsc(コンソールモードに切り替...
>(使い方:https://qiita.com/pe-ta/items/0510bee10bcfd88a...
>参考:https://qiita.com/ryoi084/items/0dff11134592d0bb895c
--python3でMecab-ipadic-neologdが使えない&br;
→辞書のパスを修正することで対応
---1.mecab-ipadic-neologd辞書のインストール&br;
下記の参考URLに日本語で説明してくださっているのでそれに沿...
ちなみに辞書はUbuntu環境では特に設定を変えない限り以下の...
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
--- 2.mecab-python3のtagger記述を変える&br;
下記の参考URLのCommonIssueに書いてあることそのままです&br;
実習では tagger = Mecab.Tagger('-Ochasen -d /usr/local/li...
これを tagger = Mecab.Tagger('-Ochasen -r/dev/null -d/usr...
(Linuxにusr/local/...が無いのが原因。同名の空ファイルを作...
>参考:https://github.com/neologd/mecab-ipadic-neologd/bl...
> https://github.com/SamuraiT/mecab-python3
現状これらをすることでwin側で.py作成→Linux上で実行→win側...
どうせ今後エラーとか出てくると思うのでそのたびに加筆する...
-余談&br;
ディレクトリ自体は仮想的に作ったLinuxのハードディスクイメ...
具体的な場所としては以下のパスです&br;
\Users\(User名)\AppData\Local\Packages\CanonicalGroupLimi...
ただ、この.vhdxが開けない…OSが違うので開けないのは当たり...
一応以下のサイトのようにマウントする手段はあるようなので...
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-mount-d...
あとChrome Remote Desktopを入れているとセキュリティ関連が...
よくわからんです
終了行:
[[22_Yanagi]]
*PythonとかProcessingとかを使ったいろいろ [#a363d2e1]
研究の内容とずれてる感じがしたのでこっちに移行させました&...
-エージェント((仮))を作ってみた[+合成音声に挑戦して...
〇立ち絵を作ってアニメーションを作る&br;
kritaでpsdを作成→Anime Effectで取り込んでコマ打ちして作成...
コマ打ちは全て手動で設定。自身なりに生きているような表現...
大まかな動きは移動・回転・拡縮で、髪や腕の細かい動きはボ...
Anime Effectはボーンの設定が大雑把すぎて細かい表現(手先...
#ref(春課題-作業風景1.png)&br;
L2Dのようなメッシュ自体を動かしてアニメーションを制作する...
プログラム側で自動的に動かす方法を用いるほうがいいかも&br;
&br;
△プログラム上でアニメーションを再生してあるアクションを条...
アクションがない場合はneutralを、何らかのアクションが実行...
neutralを連番pngにして配列に放り込んで表示することはでき...
アクションによる分岐をどのように組み込めばいいかわからな...
#ref(春課題-作業風景2.png)&br;
(matplotlibでこういったイラストgifを動かすのが間違ってい...
tkinterを用いてGUI内にmatplotlibのグラフを表示する手段は...
pythonの実行方法はメモの方にだらだら書いていたUbuntu(Linu...
合成音声+言語処理を使わない限りpythonにこだわる必要もな...
&br;
-可愛いモザイクを作ってみた(2022年 オンライン合宿)&br;
上述しているProcessingとの連携だったりL2Dの使い方がなんと...
成果物(作るにあたってのサンプル含め500MBほど):https://...
(コメントを残してるのでコード見てもらえればなんとなく仕...
#ref(合宿-作業風景.png)&br;
pythonの実行はAnacondaを使ってます(Ubuntuはカメラ関係が...
Arduino刺していないとprocessing側のportでエラーが出て実行...
&br;
・視点の転換とか活用シーンの想定とか(適当に理屈づけし...
モザイク=情報を遮断する壁→情報を取捨選択するフィルタ...
匿名性を維持しながらもその人の感情や個性を表現する&br;
&br;
→話しやすい環境を生み出すことで&br;
コミュニケーションを円滑にし、その人の個性もより引...
--モザイクを使う側の利点&br;
社交不安症(ex.対人恐怖症)や自分の顔にコンプレックスがあ...
エージェントやボードによって性格・個性を表現しながらもコ...
エージェントがいることで上側に視点が誘導される→目を合わせ...
&br;
--モザイクを使われる側の利点&br;
自閉症・HSP(感受性が極端に強い人)&br;
与える情報を制限(基本喜怒哀楽だけを表出)することで負荷...
&br;
※keeponというエージェントを用いた実験においての仮説を参考...
自閉症や知的障害のある子たちがコミュニケーションが上手...
健常児が持っているフィルターがないため(情報の取捨選択...
keeponとのインタラクションでは与えられる情報量が限られ...
フィルターがなくても情報を咀嚼することができ、コミュニ...
&br;
・仕組み&br;
--python側の処理(私の領分ではなかったのでざっくりと)&br;
動画からの顔認識・感情推定&br;
使ったライブラリ:opencv-python,deepface&br;
参考:https://algorithm.joho.info/programming/python/open...
↓&br;
動画からの手の移動量推定&br;
使ったライブラリ:mediapipe&br;
参考1:https://qiita.com/akira2768922/items/c660129cc45cc...
参考2:https://b3s.be-s.co.jp/nocategory/4527/ &br;
↓&br;
座標とか感情値とか手の移動量との送信&br;
使ったライブラリ:python-osc &br;
参考:https://www.eqseqs.work/post/python-osc/ &br;
送った値:[エージェントのx座標/y座標/感情ラベル/感情値/手...
&br;
--processing側の処理(私はアニメーションを担当しました)&...
python側からの値の受信+Arduinoからの値取得&br;
使ったライブラリ:oscP5,Arduino(Firmata)&br;
oscP5の使い方は上のURL参照。Firmataの使い方はSAさんにお聞...
↓&br;
アニメーションの動作&br;
使ったライブラリ:gifAnimation(Githubから手動インストール...
URL:https://github.com/extrapixel/gif-animation/tree/3.0 ...
作ったアニメーション3種(neutral.gif(loop) / surprised.gi...
与えられた値によって切り替える&br;
&br;
ニュートラルをループ再生しつつ、値が閾値を超えた場合のみ...
・手の移動量が閾値(200)を超える=動きが大きい=驚く&br;
・圧力センサが閾値を下回る(初期255,閾値200=頭をなでてい...
(※草案時はセンサをぬいぐるみに付けて、実際に頭の上に乗せ...
&br;
ユーザーとエージェント間をインタラクションで繋ぐことで親...
&br;
アニメーション自体の作成はペイントツール(krita,Clipstudio...
参考:https://docs.live2d.com/cubism-editor-tutorials/top...
&br;
・草案(いろいろ仕様変更してます)&br;
#ref(合宿-草案1.png)
#ref(合宿-草案2.png)&br;
*シロワニさんのつくよみちゃんトークソフトの入れ方 [#a363d...
シロワニさんのつくよみちゃんトークソフト : https://github...
下記のWSLをしなくてもAnacondaの方で出来ました&br;
WSLの方はカメラ等USB機器周りの設定がややこしいですし、デ...
実装するにあたっては①conda上でC++を使えるようにすること ②...
後はgithubからzipをDLして展開し、そのディレクトリを開いて...
&br;
①はCmakeというのにパスを通せばできると思います&br;
参考(Visual StudioのCmakeを使います):https://teitoku-win...
②は仮想環境作成時にver指定するのがいいと思います&br;
*WSL環境の構築 [#a363d2e1]
windows10でcondaを使って冬の課題とかテキストマイニング実...
使い道はたぶんないです。普通にMacやLinuxのPC使うなりconda...
いろいろなサイトを見て数日かけてやっと形になったので初め...
また、簡単な動作確認をしただけなのできちんと導入できてい...
-WSLを有効にする&br;
WSLとWSL2があるらしいですが、WSL2のほうがよさそうなのでそ...
--1.コントロールパネルからWSLを有効にする&br;
コントロールパネル>プログラムと機能>Windowsの機能の有効...
『Linux用Windowsサブシステム』と『仮想マシン プラットフォ...
OKを押すと再起動を要求されるのでそれに従う&br;
--2.Powershellを管理者権限で開いてwsl2の起動?とかとか&br;
windowsマークを右クリック>windows PowerShell(管理者)を起...
[wsl --install]を実行する(※[]は無視してください)&br;
ただこの更新にはカーネル更新プログラムパッケージが必要&br;
入ってないとこのURLからダウンロードしてって言われるのでそ...
&br;
Microsoftのページにはディストリビューション(後述)も一緒...
wsl2への変更も手動でしましたし、なんか間違えてそうですね…...
---2-1.Linuxを動かすやつ(ディストリビューション)をダウ...
Ubuntuっていうのを使いました。Microsoft storeから検索して...
なお、パスワードを打っても表示はされません。でもきちんと...
---2-2.ディストリビューションがきちんとwsl2で動作してるか...
windows Powershellを開いて[wsl -l -v]を実行すると&br;
NAME STATE VERSION &br;
Ubuntu Stopped 2 …みたいなのが表示されるはずです&br;
VERSIONが2になっていたら大丈夫。もしVERSIONが1の場合は以...
[wsl -set-version Ubuntu 2]
>参考:https://docs.microsoft.com/ja-jp/windows/wsl/install
> https://www.pc-koubou.jp/magazine/40465
-Ubuntuでpython3を使えるようにする&br;
参考ページの仮想環境の有効化までを順にしていけば大丈夫で...
sudoでpython環境インストールをした後はテキストマイニング...
>参考:https://qiita.com/sireline/items/3c97a0c266431ac5b...
--ディレクトリにどうやってアクセスすればいいかわからない&...
→CIFSを利用して共有フォルダを作ってwindow側のファイルをLi...
---1,windows側で共有フォルダを作る&br;
ただ作るだけだと共有相手がEveryoneになってるので&br;
プロパティ>詳細な共有から変更>このフォルダを共有するに...
>アクセス許可>ユーザーを追加しフルコントロールにする
---2.Linux側でその共有フォルダをマウントする場所を作る&br;
mkdirで適当な場所にフォルダを作る&br;
treeでLinuxの構造を確認してから作った方がいいかもです(要...
例)mkdir winmount → /User/(user名)/winmount にフォルダ...
>(使い方:https://dekiruengineer.com/engineer/linux_tree_...
---3.CIFSをインストールしてフォルダ同士をつなげる&br;
[sudo apt install cifs-utils]を実行しCIFSをインストールし...
sudo mount -t cifs -o username=[winのユーザ名],password=[...
例)sudo mount -t cifs -o username=winUser,password=PassW...
&br;
※上記は手動マウントの方法。起動時に毎回しないとダメ。自動...
自動化させる場合はIPアドレスを固定しないとダメかも。W...
>参考:https://codeaid.jp/blog/linux-windows-share/
--Matplotlibのshow()が使えない&br;
→LinuxのGUIにwindows側が対応していないのが原因&br;
VcXsrvをインストールしUbuntuのDISPLAY設定を変えることで...
---1.VcXsrvのインストールと設定&br;
公式ページからダウンロードしてインストールして実行。基本...
ただExtra settingのAdditional parameters for VcXsrvに[-ac...
※ネットワークを使う(?)のでファイアウォールでパブリック...
---2.UbuntuのDISPLAY設定を変更する&br;
Ubuntuを開いて [sudo vi .bashrc]を実行&br;
.bashrcの中身が表示されるので一番下の行に以下の分を挿入&br;
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver |...
挿入したら保存してUbuntuを再起動して変更させる&br;
&br;
(sudo) vi [ディレクトリ名]&br;
…そのディレクトリを開いていろいろ書き込みができる。対応し...
a(入力モードに切り替え)とEsc(コンソールモードに切り替...
>(使い方:https://qiita.com/pe-ta/items/0510bee10bcfd88a...
>参考:https://qiita.com/ryoi084/items/0dff11134592d0bb895c
--python3でMecab-ipadic-neologdが使えない&br;
→辞書のパスを修正することで対応
---1.mecab-ipadic-neologd辞書のインストール&br;
下記の参考URLに日本語で説明してくださっているのでそれに沿...
ちなみに辞書はUbuntu環境では特に設定を変えない限り以下の...
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
--- 2.mecab-python3のtagger記述を変える&br;
下記の参考URLのCommonIssueに書いてあることそのままです&br;
実習では tagger = Mecab.Tagger('-Ochasen -d /usr/local/li...
これを tagger = Mecab.Tagger('-Ochasen -r/dev/null -d/usr...
(Linuxにusr/local/...が無いのが原因。同名の空ファイルを作...
>参考:https://github.com/neologd/mecab-ipadic-neologd/bl...
> https://github.com/SamuraiT/mecab-python3
現状これらをすることでwin側で.py作成→Linux上で実行→win側...
どうせ今後エラーとか出てくると思うのでそのたびに加筆する...
-余談&br;
ディレクトリ自体は仮想的に作ったLinuxのハードディスクイメ...
具体的な場所としては以下のパスです&br;
\Users\(User名)\AppData\Local\Packages\CanonicalGroupLimi...
ただ、この.vhdxが開けない…OSが違うので開けないのは当たり...
一応以下のサイトのようにマウントする手段はあるようなので...
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-mount-d...
あとChrome Remote Desktopを入れているとセキュリティ関連が...
よくわからんです
ページ名: