AdSense

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/





2019年2月3日日曜日

生体センサー(心拍、心電、眼電位)を計測した記録

様々なセンシングデバイスを使って生体データを計測した記録。

●生体データセンサー3つ

・心拍センサー


Arduinoで心拍数が取得できます。
指との接触部分に隙間ができるとノイズがはいるので、
これ以外にも指に巻くためのテープやがあると良いです。
URLの手順通りで簡単に心拍数とれました。
Arduinoのサンプルソースもたくさんあります。
processingと組み合わせると、見た目が良い感じになります。
それもサンプルソースが難なく動きました。
aliexpressだと200円くらい


・心電センサー


心拍センサーと同じようにArduinoで簡単に使えました。
ジェルパッドの分だけ接着が良いのか、
心拍センサーよりはるかにノイズが少なかったです。
接続方法は公式サイトの通りで難なくOK。
こちらもArduinoとProcessingのソースが一緒にGitHubにあり難なく動きました。
サンプルソースでBPMがすぐにわかります。
自律神経を知るためにRRI間隔を取りたかったのですがサンプルソースでは動かず。
aliexpressだと500円くらい

Arduinoと接続

体につける部分はジェルになっています

・眼電位

眼電位から、見ている方向や瞬きを取得し、
加速度とジャイロセンサと組み合わせることで集中度や疲労を推定することができるデバイス。
公式サイトにSDKとサンプルソースが配布されています。
アプリの実行にはIDとPASSが必要で、こちらは開発者サイトのチュートリアル通り、メールアドレスを登録すると使用できます。
 「3.アプリIDとアプリSecretの取得」の部分です。
Android版を動かしたところ、IDの設定だけですんなり動きました。

メガネです。スマホとBTで接続します。
電位は鼻を支える部分からとってるようでした。
メガネメーカー製のため、重さは非常に軽く、
普通のメガネとして日常的に使えそうです。

SDKサンプルアプリのリアルタイムモード
リアルタイムのモニタリングデータが参照できる

SDKサンプルアプリのスタンダードモード
1分間分の集計データが取得できる

考察

・心拍センサ、心電センサともに、動くとノイズが入るので、ノイズ除去のアルゴリズムが必要な見込み
・眼電位は、公式アプリの場合はキャリブレーションするので、複数人で使い回す場合はキャリブレーションが必要と思われます。特に、眼の方向は上下左右の4方向で5段階なので、精度はアプリの向上が必要な見込み。こちらについては論文ありました。