記事ディレクトリ
開発環境
- win10プロフェッショナル版
- Unity2019.4
- VS2017 (必ずこのバージョンの VS を使用してください! )
- Hololens2 (開発者モードをオンにする)
- win10 SDK 10.0.19041.0
1 はじめに
プロジェクトソース: YoloDetectionHoloLens-Unity
これは、ターゲット検出に Hololens を使用するプロジェクトです。Hololens 側は収集と表示を担当し、コンピュータ側は画像を処理して注釈を付け、表示のために注釈フレームを Holo 側に送り返します。
プロジェクトの具体的なリリースプロセスはプロジェクト内で紹介されており、この記事では主に著者が言及しなかった具体的な手順や、リリースプロセス中に遭遇したエラーとその解決策を記録します。
一般的なリリース プロセスは次のとおりです。
1. "HoloLensForCV"
プロジェクト ソリューションを生成し、".dll"文件和".winmd"
ファイルを Unity プロジェクトにエクスポートします
。 2. Unity プロジェクトを Hololens2 にデプロイします
。 3."ComputeOnDesktopYolo"
プロジェクトを自分のコンピューターにデプロイし、名前付きComputeOnDesktopYolo
の実行可能プログラムを生成します
。 4. Holo と同じ LAN 内のコンピュータで Holo プログラムを起動し、コンピュータで IP 接続を開始します。
2.デバッグ記録
2.1 プロジェクトのダウンロード
Github からプロジェクト全体の圧縮パッケージをダウンロードします (クローン方法は使用しないでください) ダウンロード後、圧縮パッケージを右クリック > プロパティ > ロック解除にチェックを入れます
HololensForCV
解凍後、このフォルダーの内容は別途ダウンロードする必要があるため、このフォルダーは空であることがわかりました。
クリックして、以下に示す HololensForCV プロジェクト ファイルを入力します
ダウンロードと解凍も同様の方法で行います(ロックも解除してください)。パスやファイル全体による不要なトラブルを避けるため、元のプロジェクト ファイル ディレクトリに従って、下図に示す場所に HololensForCV を解凍することをお勧めします。プロジェクト
. それをダウンロードするだけです。
ここで注意点があり、プロジェクトのデプロイなど以前の操作でエラーが発生すると、再解凍ダウンロードした 2 つのパッケージおよび圧縮パッケージは、誤操作やバージョン変更などによって内容が変更されることはありません。解決できない場合は、もう一度開き直してください。再度解凍し、以前に解凍したものを削除します。
2.2 HololensForCV ソリューションの生成
プロジェクト紹介には使えると書いてありますがPrebuilt文件夹
、预先生成的dll文件和winmd文件
安全を考えて自分で生成しています。ここで事前に生成されたファイルを使用したとしても、後で他のプロジェクトを自分でデプロイする必要が必然的に生じるため、ファイルを自分で生成することをお勧めします。
下のファイル(以降の文字列は省略、以下同じ)をVS2017で開きます。HololensForCV文件夹
HololensForCV.sln
ここでは VS2017 を使用する必要があることに注意してください。私は 2019 バージョンを使い始めたところです。ソリューションを生成するときにさまざまなエラーが発生し、解決策が見つかりませんでした。(WindowsSDK は上位バージョンを使用できますが、VS2017 を使用する必要があります)。
ファイルを開いたら、まず重定结局方案目标
自分の SDK バージョンと互換性を持たせます。
次に、ファイルを開くと工具>Nuget包管理器>管理解决方案的nuget包
、 2 つのパッケージがあることがわかります。
もう 1 つインストールする必要があります。3つのプロジェクトについては、sample 、Shared 、ThereOpenCV.Hololens包
の下にあります方法1:プロジェクトで提供されている方法に従って nuget パッケージをインストールできます。nuget パッケージ コンソールを開いて次のコマンドを入力します。コマンド内のアドレスをファイルの絶対アドレスに置き換える必要があります。 nuget パッケージはメイン プロジェクト ファイルの下にあります 方法 2:ここでは、パスが原因で間違いを犯す人を避けるために、別のインストール方法を紹介します。以下に示すようにローカル nuget パッケージ ソースを追加し、アドレスをダウンロードしたプロジェクトのアドレスに変更し、[参照] をクリックして、パッケージを追加したばかりのソースに切り替え、右側に記載した 3 つのプロジェクトをチェックして、[インストール] をクリックします (以前にインストールしました) ) インストールが成功すると、「バージョン」列にバージョン番号が表示され、インストールは成功します。HololensForCV
ComputeOnDesktopYolo
OpenCVHelpers
OpenCV.Hololens nuget包
HololensForCV プロジェクトをスタートアップ プロジェクトとして設定します。リリース ARM (第 1 世代のメガネをお持ちの場合は、ここで X86 を選択) を選択してプロジェクトを生成し、ファイルを生成します。
いくつかの重要なポイント: バージョン VS2017、ソリューションを並べ替え、nuget パッケージ (2 つのメソッド) をインポートし、ソリューションを生成します
2.3Unityプロジェクトのデプロイメント
生成されたすべてのファイルを、作成者が指定したYoloDetectionHoloLensUnity
プロジェクトのフォルダーにコピーしますAssets->Plugins->x86/ARM 文件夹
。
著者が言ったように、ここで dll と winmd ファイルをコピーするだけの場合、Unity は名前空間が見つからないというエラーを報告するため、問題を解決するにはこれらの生成されたファイルをすべてコピーする必要があります。
次に、Unity プロジェクトを開き、プラットフォームを UWP に変換します。
ここで、インポートされたファイルにいくつかの変更を加える必要があります。
これについては、著者の記事には記載されていません
。図に示すように、両方のファイルを右側の状態に変更します。をクリックし、[適用] をクリックします (世代メガネの場合は、ARM を X86 に置き換えてください)。
次に、シーンを開き
、このスクリプトの IP を同じ LAN 上のコンピュータの IP に置き換えます。以下を確認してください。
直接ビルドすると証明書の有効期限エラーが発生します。
上の図に示されている証明書を開いてplayer setting>Other Settings >Certificate
クリックすると、期限切れの証明書のマウントがキャンセルされます。
次に、ビルドを実行してソリューションを生成し、Holo にデプロイします (デプロイメント プロセスについては詳しく説明しません)。
いくつかの重要なポイント: プラットフォームの変換、dll および winmd ファイルの設定、IP アドレスの変更、証明書の有効期限。
2.4 コンピュータ側アプリケーションの展開
HololensForCV.sln
ファイルを開き、ComputeOnDesktopYolo
プロジェクトをスタートアップ プロジェクトとして設定します。
nuget パッケージは以前にこのプロジェクトにインポートされているため、ここで再度インポートする必要はなく、直接デプロイするだけです。
上の図のように設定しますRelease或者Debug
(x64
コンピューターは 64 ビットです)。次に、デプロイします。
float 型から int 型への変換に関する警告がデプロイメントプロセス中に表示される場合がありますが、無視できます。
展開後、コンピュータはアプリケーションを生成します。
その後、Unity、VS などをハングしたままにせずにオフにすることができます。
アプリケーションを開くと、このようなインターフェイスが表示され、
デプロイが成功したことを意味します。
2.5 デバッグ
まず Holo アプリケーションを開き、上のテキスト プロンプトに従ってダブルタップ ジェスチャを実行すると、途中でカメラの許可を申請するように求められます。
次に、Holo の IP アドレスをコンピューター プログラムに入力し、[接続] をクリックして Holo からビデオを受信します。
Holo のプロンプトに従って AirTap ジェスチャを 2 回実行すると、Holo はコールアウト ボックスを表示できます。カメラが占有されているため、結果の写真はここには表示されません。