投稿

Unity ReflectとAutodesk Revitを用いた3DデモとARについて(追記)

イメージ
 前回のブログで3Dモデルを床に接地した状態の実寸でAR表示することについての追記をさせて頂きます。Unity Supportさんからの再返信が今朝届いたので、その内容についてもまとめたいと思います。 3Dモデルを配置する際に原点をGLにする必要がある、とした前回のご報告に引き続いて、Corner matchモードを上手く使いこなせていないことが分かりました。 Corner matchモードについて(19分46秒~) Corner matchモードについて簡単に説明すると、床・壁A・壁Bの3つを指定することにより基準点となる座標を設定し、その頂点をリアルな場所と合わせることによりAR再現をすることができるものです。 このように各要素を選択してあげると動画のようにAR表示することができる機能がCorner matchモードになります。 また、このモードを使用してAR再現するならば、現場にあるものをモデル化し基準点となるものを設置しなければなりません(今回の動画でいうところの壁が基準点となっています)。 ということを踏まえて前回までの内容を振り返ると、AR再現する際に基準点となるものがありませんでした(キュービクルのみ)。これでは、Corner matchを用いてAR再現することはできませんし、実物サイズで表示することもできません。また、Unity Supportさんからご指摘された内容は、もし現場に基準点となるものが存在していなかったとしても、現場に存在する何かをBIMでモデル化し基準点として用いる必要があるとのことでした。 つまり、キュービクルだけをAR表示するのではなく、キュービクルを実際に接地する場所付近に存在する適当な物体をモデル化し基準点として用いる必要があるとのことでした。 これをすることができれば、3Dモデルが宙に浮いたり、物体のサイズが変わってしまうこともなくなるようです。 以上がUnity Supportさんにお尋ねし、現時点で考察することができるご報告になります。 まとめると、RevitやSketchUpを用いるときに、キュービクルなどの目的の物体だけを設置するのではなく、周囲の壁や柱などの基準点となりうるものも配置する必要があるようです。

Unity ReflectとAutodesk Revitを用いた3DデモとARについて

イメージ
Unity ReflectとAutodesk Revitを用いた3DデモとARについて Unity Reflectの無料使用期間を終えて: 一か月間の無料使用期間を終えて実現することができた部分・できなかった部分と、Unity Supportの方とやり取りする中で分かってきた実現できなかった部分の原因について途中経過ですが報告させて頂きます。 実現できた部分: Revitにもともと搭載されている3Dモデルだけでなく、Fusion360で作製した3Dモデルについても三次元空間にAR再現できたことです。また、同期モードを変更することでRevitを起動することなく、Reflect Viewerだけを起動するだけでiPadなどの端末でAR再現することが できます。Viewerを起動している際に、Revitで3Dモデルの詳細を編集しても、リアルタイムに反映することもできます。 実現できなかった部分: 3DモデルをAR再現する際に実寸サイズで床に接地した状態で確認することができなかったことです。また、RevitにUnity Reflectをプラグインとして利用するときに不便だったことは、Revitに3Dモデルをインポートする際にオブジェクト形式を受け付けなかったことです。調べてみると、オブジェクト形式をインポートしたいならば、RevitではなくSketchUpを利用しなければならないようです。 実現できなかった原因: 3DモデルをFusion360からRevitにSAT形式でインポートする際に不具合が生じて実寸サイズで表示することができなかったのではないかと最初に考えました。こちらについては、インポートしてから3Dモデルの数値を確認したり、Revitに標準搭載されている3Dモデルで試してみても実寸サイズで表示することはできなかったので、インポート時の不具合が原因である可能性は低いと考えられます。 Revitに標準搭載されている3Dモデルで、こちらをAR再現したのが上部に掲載した写真 続いて、原因して考えられたのはRevitの操作ミスです。こちらについては、Revitを使うのが初めてで、かつFusion360の仕様とは全く異なっていたので操作ミスは起きやすい状態でした。また、Unity Supportの方に考えられる原因をお聞きしたところ、やはりRevitの操作ミスが原因である可

アノテーション途中経過

イメージ
アノテーション途中経過 アノテーション作業の途中経過を報告させて頂きます。  $nano predifined_classes.txt  まずディレクトリ変更でlabelImg内のdataディレクトリに指定し、上記のようなnanoエディタで自分の名前、家族、othersをそれぞれ一行ずつクラスラベルに指定して保存しました。 続いて、 cdコマンド でディレクトリをlabelImg内のstudent変更します。 ここで unzipコマンド を入力し、studentディレクトリ内のzipファイルを解凍 $cd labelImg でディレクトリ変更し、 $python3 labelImg.py でラベリングソフトを起動 Open Dirのでstudentディレクトリを選択しopenする。 ツールバーのViewの Auto Save mode と Single Class Mode にチェックを入れ、 一枚目の写真をラベル選択する前に PscalVOC をクリックして YOLO に変更しておきました。 一回目はこの作業を抜いてしまっていたのでラベル選択し保存した際に.xmlファイルでstudentディレクトリに保存されてしまいました。 その後、上記のYOLOに変更するとラベル選択し保存した際に.txtファイルで正しく 1 0 ~座標 のように格納されていました。 ラベル選択後にstudentディレクトリに保存されるテキストファイル 写真はありませんが、ラベル選択し保存する際に、あらかじめ変更しておいたpredifine_classes.txtの三つのクラスラベルのどれに指定するか選択しました(今回はまず自分の顔をアノテーションするのでクラスラベル1を選択)。 また、アノテーションの作業中は気づいてなかったのですが、predifine_classes.txtを変更してからlabelImgを起動したからなのか、studentディレクトリの中にclasses.txtというファイルが作られていました。 classes.txtの内容 ここからはstudentディレクトリ内の写真をラベル選択して保存していくだけなので、キー操作で作業を効率化しながらこなしていきます。また、ラベル保存した際に、画像ファイルと同じ名前のテキストファイルが保存されていることを確認しながら進めていきます。 具体

3/11の出社内容

イメージ
3/11の出社内容 画像認識のアノテーションについて: アノテーションで用いる自分が写っている写真を少しずつ集めてJetson nanoのstudentフォルダにダウンロードしていました。集めていた素材一つ一つに対して自分の顔が写っている部分だけをトリミングしてから保存していましたが、距離感も含めて機械やソフトに学習させ、自分の顔の認識率を得るためにトリミングを施さずに元のサイズのままアノテーションすることになりました。また、正面を向いている写真だけをアノテーションに使用しても顔の認識率はなかなか上がってこないので、横・斜めなど様々な方向を向いてたり、髪の長さや容姿の異なる写真をできるだけ選んでアノテーションすることが重要とのことでした。また、自分と自分以外を見分けるためにclass指定を0と1の2つだけにしては確率が50%と表示されても、アノテーションや画像認識が上手くいったか確認することが難しいので、自分の写真だけをアノテーションに使用するのではなく、家族や友人などの写真もアノテーションに使用することになりました。 次回の出社までに進める作業内容について: 参考サイトを見ながら、自分の写真に対してアノテーションの作業をします。1,000枚以上あるので時間がかかると思いますが丁寧にやっていきたいと思います。 また、久しぶりにコマンドを打ち込むこんだり、Jetson nanoをいじることになるので、もし誤りや気づかないミスが生じて動かなくなってもいいように、予備に購入したmicroSDカードに現在のものをコピーしておきます。 Unity ReflectとAutodesk Revitを用いた3DデモとARについて: 前回の作業報告の際に、AR再現するときは Tabletop を用いたので、カメラビューと3Dモデルのスケールは100 : 1に指定されていたので実際のサイズよりも小さく映っていました。 今回出社させて頂いた際は View Match モードを使用しました。 View Match モードを用いるとカメラビューと3Dモデルを 1 : 1 のスケールで表示し、3Dモデルを実寸サイズで再現できるはずなのですが、実際には 1 : 1 に表示することはできませんでした。Fusion360から3DモデルをSATファイル形式でエクスポートする際にスケールが変更されてしまう

3DバーチャルデモとAR

イメージ
 3DバーチャルデモとAR Unity Reflect とAutodesk Revit 2021の3Dデータを連携し、iPad ProのViewerでAR再現 目的: ・Autodesk Fusion360やAutodesk Revit 2021で作製した3Dモデルを3次元空間に配置すること。 ・ARやVRと融合してリアルタイムでデジタル上に再現すること。 使用したソフトウェアやアプリ: ・Autodesk Fusion360  ・Autodesk Revit 2021 無料体験版 ・ Unity Reflect 無料体験版 (無料のViewerが付属しています) ・ Unity Reflect Viewer iOSアプリ  (iPad ProでViewerを使用するため) 実際に行った操作の手順: 1. 動画 や 参考資料 で内容を確認 2.Autodesk Revit 2021を教育利用の無料体験版でダウンロード 3.Autodesk Revit 2021にFusioin360で作製した箱や棒をインポート    Fusion360からエクスポートする際、SATファイル形式(*.sat)にしました。 4.Unityアカウントにログインして配布されたトライアルコードを入力しプロジェクトにUnity Reflectを追加( 詳細は参考資料 ) 5.Unity Reflect Installerを起動し、Autodesk Revit 2021にチェックを入れて、Revitに    Unity Reflectのプラグインをインストール インストールが完了するとメニューバーにUnity Reflectが追加されます。 6.Revit上の3Dモデルを選択し、Reflect Severにエクスポート 7.Unity Reflect Viewerにアカウントでログインし、6.の情報が3次元空間にアップロードされていることを確認( 各種UIなどは参考資料から ) 8.iPad ProでViewerを起動しアカウントでログインし、 ARモード (Tabletop AR)で現実空間と3Dモデルを融合         ※ 画面録画の容量が大きく直接アップロードできないので、 共有リンク で視聴お願いします。 以上が実際に行った作業になります。参考資料の説明が簡潔で分かりやすかったので、特

Jetson nano セットアップまとめ

イメージ
 Jetson Nanoのセットアップまとめ まずはMicro SDカードの準備と設定から: 32GBのmicroSDカードを準備する。使用端末がノートパソコンだったのでUSB3.0用のカードリーダーも準備しました。 実際に用いた機器; エレコム カードリーダー USB3.0 9倍速転送 ケーブル収納タイプ ブラック MR3-K012BK 続いて、Jetson Nanoのホームページ Getting Started With Jetson Nano の Write Image to the microSD Cardの手順にそってmicroSDカードに画像を書き込みます。 英語のサイトなのでGoogle翻訳を通せば分かりやすいです。 Jetson Nano初回起動: (注意) : 打ち込むコードは $赤字の斜体 で記載します。 Jetson Nanoと電源、有線キーボード、有線マウス、HDMIケーブルを用意し、 Setup and First Bootの手順で起動していきます。 起動が進んでいくと、 System Configuration でシステム設定に入り、 Your name 、 computer's name などを決めていきますが、パスワード設定のところでは、簡単なパスワードに設定しておいた方がよいです。 sudo のコマンドを打ち込んだときにパスワード入力を求められるので、長くややこしいパスワードでは面倒になります。 また、 Log in automatically のボックスにチェックを入れておけば、パスワードの入力回数が減ると思います。 言語は English のままでよいですが、キーボードに関してもデフォルトではUSになっており使い勝手が悪いので Japanese を追加しました。 続いて、JetsonのUbuntuアップデートを行います。 デスクトップの検索からupdateと打ち込むとソフトウェアのアップデートが見つかると思います。 それが済めば、ターミナルを開き、以下のコマンドを打ち込んで隠しファイルbash用のテキストエディタ―のNanoをインスト―ルします。一行目でパスワードを求められると思うので System Configuration で設定したパスワードを入力しましょう。 $sudo apt-get update $sudo

~11/15までの活動報告

イメージ
 Jetson Nanoのセットアップについて、SDカードをフォーマットしてSwapfileを作成するところまで進めていましが、やはりopencvのバージョン確認のところで躓いてしまい、再度SDカードの初期化を行いました。ご指導頂きながら、opencvのバージョン確認、YOLOのテストまで終えることができたので、ここまでの記録をまとめたいと思います。 まず、opencvのバージョン確認について セットアップの初めのころは作業手順がばらばらであったためにエラーが出ているのかと思っていましたが、今回のバージョン確認で原因が分かったように思います。 前回の作業報告でnanoについて理解が深まったと書いていましたが、まだ甘かったようです。 build_opencv.shファイルの編集の際に、テキストエディタ―ではなく、nanoで書き換えるということを学んで、自宅で実践しましたが、 $nano build_opencv.sh このコードの返答は、空のファイルのみで何のコードも書かれておらず、編集不可能でした。この理由は単純でbuild_opencv.shが存在するディレクトリで上記のコードを入力する必要があったのに、デスクトップなどの適当なディレクトリで、 $nano build_opencv.sh と入力していたからでした。 そこで、ディレクトリをbuild_opencv.shが格納されているnano_build_opencvに変更しnanoを開くと編集可能になりました。同様のミスがのちのYOLOインストールのとき、.bashrcの編集の際に起きてしまいました。 次回からは、実行するファイルは現在のディレクトリに存在するのかしっかり確認してから作業していきたいと思います。 このような問題を解決した後は $./build_opencv.sh と入力して6時間ほど待ち、最後のバージョン確認へと移るわけですが、 $python >>>cv2.__versiion__ の結果は前回と同じく 'cv2' is not defined でありました。 エラーの原因としては色々考えられたのですが、最終的には、 >>>cv2.__version__ の前に >>>import cv2 を入力する必要がありました。 $py