AdSense

2021年4月24日土曜日

テレワーク環境を快適にするために椅子にキーボードをつけた

 テレワーク環境を快適にするためにやったこと


他にもあるけど、下記4点が効果的だった。


・ディスプレイアームでディスプレイを浮かせる

快適すぎて結局二つ購入したので、

最初から二つ付けられる下記を買えばよかった。


・椅子にキーボードをつける

 机につけるやつと迷ったが、自分の机の幅的にちょうど良いのがなかったので、

 検討した結果、椅子につける方が自由度が高いと考え至る。


・トラックボールマウス

ディスプレイモニターを3枚設置しているので、

ハジからハジまで楽に移動できるし、手が疲れないので必須。


・エルゴノミクスキーボードを使う

椅子につけるキーボード台だと結構近い位置にキーボードがくるので、

これにすると手首がかなり楽になる。





説明は中国語だったけど大体わかる。
一式。工具も全部ある。
マウス台もある。








椅子の下の方に固定する。




完成。

キーボードをこの後エルゴノミクスに変える。

2021年2月28日日曜日

Mac Book AirのSSDを換装した記録

2013年型のMac Book Airのストレージが128Gしかなく、 最新のOSアップグレードしようとしても、空き容量が無くてできないという悲惨な事態になってしまったため SSDを512Gに換装した記録。 

 使うもの: 
 ・SSD (512G)
秋葉のWebサイトだともう少し安かったです

・ドライバー
Mac Book Air用に専用のドライバーが必要です

この2本を使います



やり方:
下記のサイトを参考にさせていただきました
https://original-game.com/macbook-air-ssd-1tb/
https://www.sin-space.com/entry/macbookair2013-2017-ssd

※注意
事前にTimeMachineでベックアップをとっておくこと。

1.電源をOFFする
普通にシャットダウンしておきます

2.裏ぶたのネジを外す

ドライバーは1.2を使います

3.裏ブタを開ける
隙間にカードやピックなどを入れると開けやすいです

ふたです

4.T5ドライバーでSSDのネジを外す

5.SSDを引き抜く


6.換装用のSSDを準備する
上が古いSSDで、下が新しいSSDとコネクタです

新しいSSDのコネクタを事前に接続しておく

7.新しいSSDを差し込む
結構固いので慎重に力を入れて差し込む。

8.SSDのネジを止める

9.放熱パットをつける
両面のフィルムを剥がしてSSDに載せるだけ


10.再び裏ブタを占めてネジでとめる

11.起動させる
「option + Command + R」を押しながら電源をONにするとリカバリーモードで起動する

12.Mac OSインストールする
先に「ディスクユーティリティ」でフォーマットが必要と記載されていたが、
内容を見たところそのままで良さそうだったので何もせず、macOSを再インストール



無事成功。

この後、起動設定中に事前にとっておいたTimeMachineからバックアップを読み込むことができました。

SSDの差し替えだけだと30分未満で終わりました。
iPhoneのバッテリー交換よりずっと簡単でした。


2020年5月4日月曜日

Avatarifyを動かしてみた

1枚の画像を元にWebカメラの映像にフェイルトラッキングできるすごいやつ、Avatarifyを動かしてみた記録。


ソースは下記で入手できる
https://github.com/alievk/avatarify

環境構築手順も上記githubにかかれている通り。
Minicondaが公式手順だが、Anacondaでもいけた。

実行環境は結構スペックが必要のようだが、GTX1060でも動いた。

公式の手順で行けたが、下記を参考にさせて頂いた。
https://note.com/dobamine/n/n71951956feda



ざっくり手順:
・Windows用のgitインストール
・git cloneでavatarifyを入手
・anacondaの(Anaconda3)プロンプトでinstall_windows.batをたたくとgitが無いと言われる
 →anaconda navigatorでプロンプトの対象環境でgitを選択して入れる
 →再度install_windows.batをたたくとOK

・vox-adv-cpk.pth.tarをダウンロードして置く
・run_windows.batするがエラーがでた
 File "cam_fomm.py", line 15, in <module>
    from modules.generator import OcclusionAwareGenerator
 ModuleNotFoundError: No module named 'modules'

 →pythonでimportしたいが入ってない場合に出るらしい
 →pip install modulesすると、下記エラーにかわるが駄目。
 ModuleNotFoundError: No module named 'modules.generator'; 'modules' is not a package

  どうやら、環境構築中にscriptフォルダ下に入ってinstall_windows.batを叩いたのがまずかった模様
 →再度git clone取得からやりなおし、avatarify下にてscripts\install_windows.batを実行
 →anacondaにavatarifyという環境がもう一つできる
 →古い方のavatarifyを消す
 →新しいavatarifyでコンソール起動して「run_windows.bat」する
 →動いた
 



2020年2月9日日曜日

3DセンシングしたモデルデータをVRchatのアバターにした



前回の記事にてStructure Sensorで3DスキャンしたデータをUnityで動かしたが、そのデータをVRchatのアバターにした記録。



前回の記事:

https://mementomorisince2013.blogspot.com/2020/01/3dblenderunity.html



前回Unityで歩き回れるようにした3Dデータだが、どうやらポリゴン数やらボーン数やらの制約がありそのままではVRchatに使えないとのこと。



順を追って記載する:


・ボーン多すぎ

 →骨間引き必要


 Blenderで関係なさそうな骨を適当に減らした。

 表情に使ってなかったので、顔の骨と胸の骨を消した。


これが




こうなった




・ポリゴン数圧縮

 下記を参考に、ポリゴン数を15000くらいにした 

https://vrchatjp.playing.wiki/d/%A5%A2%A5%D0%A5%BF%A1%BC%BA%EE%C0%AE%20MMD%CA%D4

 ポリゴン数は減ったが、顔が潰れた。

 全体を均一に削減してはだめ。


・顔と身体のメッシュを分離して身体だけポリゴン圧縮

 CTL+クリックでくくって分離できる。

 https://blender-cg.net/separate-join-objects/







 この状態で体だけポリゴン削減する。


・モデルが分割されたままだとVRChatのほうで怒られうので、分離したやつは圧縮後再び結合する。

 そうすると、今度はボーンとヒートマップズレた


 自動でウェイトをつけるとおかしくなったので、元の状態からこつこつ手作業でヒートマップを塗る。

 http://nn-hokuson.hatenablog.com/entry/2017/08/30/195716

 http://nn-hokuson.hatenablog.com/entry/2017/10/03/205639

 

 関節を動かしながら、意図した通り体がついてくるように調整する。


・UPPER CHESTのエラー

 https://shinrinmusic.com/vroid-vrchat-avatar-upload/

 上記参考に、一つずらす。UPPER CHESTはNONEにする


・Tポーズのエラー

 Unityでアバター設定を開き「Enforce T-pose 」を選択する

 https://docs.unity3d.com/jp/460/Manual/ConfiguringtheAvatar.html


これでなんとかVRchatのアバターアップロードが上手くいった。







2020年1月19日日曜日

3DセンシングデータにBlenderで骨格をいれてUnityで動かした記録

先日の勉強会でStructure Sensorというipadにつけるだけで高精度な3Dモデルを作ることができるスキャナを使い、全身の3Dスキャンデータをもらいました。

Structure Sensor:


短時間で高精度なモデルができたことに驚きです。


これをUnityで動かすことができればVRChatやUnityのいろんなコンテンツで使えるので、骨格(ボーン)を入れることにしました。

ボーンを入れるツールはBlenderを使用します。

やり方は参考書として下記を購入して学びます。



ステップバイステップで大変わかりやすい本でしたが、関節を一つ一つ入れる手順になっているので、もっと簡単な方法を探します。

どうやら自動的に骨格を入れてくれるBlenderのプラグインがある模様。
今回使用したのはUnity公式の「Rigify」です。

Blender Rigifyでググるといろいろ手順が出てくるので手順は割愛しますが、全身だけでなく顔まで骨が入ります。

個別にやったのは、ボーンがもとのモデルからはみ出ないようにモデルの形とサイズ感の調整をしたくらいです。
ただし、撮影時に指を広げていれば指の骨もいい感じで分けれたことを悔やむ。




Blenderでいろいろな形式にエクスポートできますが、Unityで使いやすそうなfbx形式でエクスポート。

次にUnityにとりこみます。



fbsデータをUnity空間に配置し、Standard Assetsを参考に、Third Person Motion Controllerをつけます。

注意すべき点は、下記のパラメータ。これを調整しないと、膝を曲げて中に浮いたままになります。

私の場合は下記値でした。

・Capsule ColliderのCenterのYと、Heightの値

 Center:0 -> 1

    Height:1 -> 2

・Third Person CharacterのGround Check Distance

 0.1 -> 0,2



・Unity Japan Officeに配置して走り回る姿


 

受付する姿

無事動きました。


2019年12月1日日曜日

MAiX BITに自分で学習させたモデルを使うまでの記録

前回折角MAiX BITが動いたので、自分で学習させたくなる。

でも全然AI界隈がわからないので環境構築から。

で、Docker検討したりAnaconda入れたりするが、環境構築がデリケートなことを学ぶ。
一応TensorFlowが動くとこまできたが、どうやらもっとスマートなやり方があるらしい。

で、試したのが、グーグルコラボというクラウド環境。
https://www.tdi.co.jp/miso/google-colaboratory-gpu

速攻で苦労した環境できて愕然とする。

参考にさせて頂いたサイト:
https://www.tdi.co.jp/miso/google-colaboratory-gpu

・実行環境作成
・実行環境のスペック確認
・ライブラリの確認
・TensorFlowの動作確認
・MNISTの確認


ここから、自分でトレーニングする方法を探す。
が、MAiX BITで探すと情報がぜんぜんない。
しかしM5Stick-Vとして探すと、結構出てくる。

どうやら、V-Trainingというのが簡単ぽい。

参考にさせて頂いたサイト:
http://setsubi.no-mania.com/m5stickv/v-training%E3%81%A7m%EF%BC%95stickv%E7%94%A8%E5%AD%A6%E7%BF%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E8%A9%B1

2019年10月21日月曜日

MAiX BITを購入してSampleを動かした記録

勉強会でMAiX BITを見かけて面白そうだったのでAliでポチって動かした記録

ことはじめ

MAiX BITとは、K210というM5Stick-Vと同じKPU(Knowldge Processing UnitというNNアクセラレータ)が乗っている、これだけでTensorFlowの機会学習モデルが動くすごいやつで、カメラとLCD付きで超低価格。
Aliだと3000円を切っていた。
なお、読み方はマックスビットらしい。アイは口にしてはいけない。


面白そうだったので購入してみたが、なかなか動くまで苦労したのでその記録。

Windows環境だったので使い方は下記などを参考にさせて頂いた。
https://qiita.com/tomitomi3/items/d1b675957238f9b7f965

SDKは公式から入手
https://wiki.sipeed.com/en/maix/board/bit.html

FWと学習データ書き込みツールはK-FLASHを使用。

戸惑ったったところは3つ

・1つ目は、SDKのダウンロード。
最新版v0.2.4は、そのフォルダ名ではなく「_」の下にある
http://dl.sipeed.com/MAIX/MaixPy/ide/_/v0.2.4
で、右クリックで保存しても壊れたファイルになるので、ちゃんとクリックして表示された文字列を入力しないとだめ。

・2つ目はUSBドライバ
USBドライバが古いやつはCH340で、新しいやつはCH552だと公式に書かれていた。
私のはどうやらCH552。ぐぐるとCH552がかなり特殊な感じだして戸惑ったが、
結局これ用にドライバを入れることなく、普通にWindowsは認識した。COMポート2つ。
なんで2つかわからないが一方を115200指定で通信できることを確認。

・3つ目はK-FLASH
FWと学習データの書き込みツールだが、初期表示はBaudRateが2000000になっている。
で、これで書き込むと失敗した。115200にすると時間はかかるが書き込みOK
あと、実機の書き込み時は、実機のbootボタンを押しっぱなしにして起動する必要がある。書き込み完了するまで押しっぱなしで書き込みできた。


無事、起動してサンプルプログラムを書き込み、顔認証できた。















丸裸なので、3Dプリンタでケースを出力。データはThingiverseでいい感じのを入手。
http://www.thingiverse.com/