はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

AzureのComputer VisionについてMicrsoft Learnをやってみた

Microsoft Learnは、マイクロソフトさんが用意してくれているマイクロソフト技術を学べるオンラインコンテンツです。
日本語化もどんどんされていて、解説+確認テストという感じで進められます。
テキストアドベンチャーゲームっぽく進んでいるとEXPもらえるなどなかなか楽しいです。

内容も画面スナップショットがおおいですし、試すための具体的なコードも書かれているので、Azureを使って実際に試しながら理解を深めることができます。
Azure Subscription自体は無料で取得できます(クレジットカードの登録は必要)、機能によっては月利用上限付きの無料枠があるので、意外と無料で色々試すことができます。無料枠こえたときは自動的に止まるので意図せず課金ってこともありません。

Computer Visionで言えば、どういった機能があって、その機能を使うためにはどのようなことをしないといけないかなどが順序だてて学ぶことができました。Computer Visionからかえってくる結果などもわかりやすく掲載されているのがよいですね。

自分が学んだおすすめコンテンツをコレクションとしてまとめておいて紹介することもできますので、Computer Vision関連をまとめておきました。
プロファイル | Microsoft Docs

Visual Studio 2022がやってくる!

devblogs.microsoft.com
Visual Studio 2022の最初のパブリックプレビューは今年の夏に登場するようです。
2022ってことなのでGAは来年の様ですね。
2013→2015→2017→2019となって2021かと思いましたが2022のようです。

ここに期待

  1. ついに64bitアプリになります。
  2. .NET 6アプリがつくれる
  3. Visual Studio for Mac がネイティブ macOS UI に移行される
  4. LiveShareにチャットが追加される

はやく使いたいですね。

iOSアプリの開発環境の2台目を設定する

Xamarin.Formsを使ってiOSアプリを作っています。
Windows上でVisual Studio 16.9を使って作成して、Visual Studio for Macが入ったMacMiniとペアリングしてビルドするような開発環境となっています。
docs.microsoft.com

今月、ちょっとした事情(主に在宅勤務時に自宅で実機デバッグができるように)2台目の開発用MacMiniを入手しました。
もちろんM1 MacMiniです。

さて、ここで悩んだのが1台目と同じビルド結果となるように2台目に設定するのかということです。
1台目の開発環境を作る方法は、いろいろなblogに書かれているのですが、その作った環境と同じものを2台目として作る方法がよくわからない。。。
下手にやって1台目の環境でアプリがビルドできなくなったらストア公開しているものが更新できなくなったら本末転倒ですからね、どうしても慎重になってします。

悩んで「なんもわからーん」とホロラボ社内に聞いてみたら、即回答もらえました。
事前に1台目のApple開発者アカウントを2台目にも設定してあれば、残る手順は以下の通り。

  1. 1台目のキーチェーンでDistribution証明書とDeveloper証明書からそれぞれ「書き出す」でp12ファイルを作成
  2. 2台目にp12ファイルをコピーしてダブルクリックでキーチェーンに登録

なんとこれだけで良かったみたい。
簡単でした。

nupakファイルからインストールする

nugetとは

docs.microsoft.com
nugetは、Microsoftがサポートする.NET/.NET Coreのコード共有手段です。ライブラリなどの依存性なども記述できるので、ある機能のライブラリを使いたいときにnugetから取得することで必要な関連ライブラリなども入手することができます。

nupakファイルについて

nugetには、nupakファイルが登録されています。nupakファイルの構造は、zipファイルになっていますので、nupakファイルの拡張子をzipに変更することで内容をみることができます。
libフォルダには目的のライブラリのバイナリファイルが格納されていますが、その他、様々な情報が格納されています。

nugetとからライブラリを適用する

通常、nugetでライブラリを適用する場合、パッケージソース=nuget.orgを指定して適用したいライブラリを参照から探して適用します。
f:id:hatsune_a:20210326090843p:plain
[プレリリースを含める]にチェックすればプレビュー版なども適用できるので便利です。
ライブラリ開発側もアップデートの配布やプレビュー配布なども自分で行わなう手間が省けてよいですね。

nuget.org以外からのライブラリ適用について

しかし、プライベートに配布したい場合はどうしたらいいのでしょうか。
そのためには、nugetに登録するnupakファイルを作成したら、そのファイル自体をプライベート適用してもらいたい人に配布する(例えば、githubのprivateリポジトリや、Teamsのプライベートチャネルなどを使ってもいいでしょう)方法となります。

では、nupakファイルをもらった側はどうしたらVisual Stduioのプロジェクトに組み込むことができるでしょうか。
当然、Visual Studioのプロジェクトでnugetパッケージの管理を開いてもローカルにあるnupakファイルは参照対象にはなりません。
ローカルにあるnupakファイルを参照するためには、Visual Studioでnugetの参照先としてローカルフォルダを追加する必要があります。

パッケージソースを追加

Visual Studioで[ツール]-[NuGetパッケージマネージャー]-[パッケージマネージャー]メニューを選択します。
f:id:hatsune_a:20210326092558p:plain

左上の[+]ボタンをクリックして、追加されたパッケージソースの参照先としてnupakファイルを格納したフォルダを指定します。
f:id:hatsune_a:20210326092746p:plain

あとは、該当のプロジェクトのnugetパッケージ管理で、パッケージソースを「すべて」にしてあげると、参照の中にローカルに保存したnupakファイルも含まれるようになります。
f:id:hatsune_a:20210326093220p:plain

nupakファイルからインストールする

nugetとは

docs.microsoft.com
nugetは、Microsoftがサポートする.NET/.NET Coreのコード共有手段です。ライブラリなどの依存性なども記述できるので、ある機能のライブラリを使いたいときにnugetから取得することで必要な関連ライブラリなども入手することができます。

nupakファイルについて

nugetには、nupakファイルが登録されています。nupakファイルの構造は、zipファイルになっていますので、nupakファイルの拡張子をzipに変更することで内容をみることができます。
libフォルダには目的のライブラリのバイナリファイルが格納されていますが、その他、様々な情報が格納されています。

nugetとからライブラリを適用する

通常、nugetでライブラリを適用する場合、パッケージソース=nuget.orgを指定して適用したいライブラリを参照から探して適用します。
f:id:hatsune_a:20210326090843p:plain
[プレリリースを含める]にチェックすればプレビュー版なども適用できるので便利です。
ライブラリ開発側もアップデートの配布やプレビュー配布なども自分で行わなう手間が省けてよいですね。

nuget.org以外からのライブラリ適用について

しかし、プライベートに配布したい場合はどうしたらいいのでしょうか。
そのためには、nugetに登録するnupakファイルを作成したら、そのファイル自体をプライベート適用してもらいたい人に配布する(例えば、githubのprivateリポジトリや、Teamsのプライベートチャネルなどを使ってもいいでしょう)方法となります。

では、nupakファイルをもらった側はどうしたらVisual Stduioのプロジェクトに組み込むことができるでしょうか。
当然、Visual Studioのプロジェクトでnugetパッケージの管理を開いてもローカルにあるnupakファイルは参照対象にはなりません。
ローカルにあるnupakファイルを参照するためには、Visual Studioでnugetの参照先としてローカルフォルダを追加する必要があります。

パッケージソースを追加

Visual Studioで[ツール]-[NuGetパッケージマネージャー]-[パッケージマネージャー]メニューを選択します。
f:id:hatsune_a:20210326092558p:plain

左上の[+]ボタンをクリックして、追加されたパッケージソースの参照先としてnupakファイルを格納したフォルダを指定します。
f:id:hatsune_a:20210326092746p:plain

あとは、該当のプロジェクトのnugetパッケージ管理で、パッケージソースを「すべて」にしてあげると、参照の中にローカルに保存したnupakファイルも含まれるようになります。
f:id:hatsune_a:20210326093220p:plain

同じソースコードを.NET Core 3.1と.NET 5でビルドした結果

[EN]

Have you guys started using .NET 5, which was GA last November?
docs.microsoft.com
I am preparing to migrate my WPF application to .

.NET Core 3.1, I found that the size of the exe was reduced even though I didn't modify the source code at all.

.NET Core 3.1 (171KB) -> .NET 5 (140KB)

.NET 5 (140KB) It became about 20% slimmer.

[JP]

昨年11月にGA(正式リリース)された.NET 5つかっていますか?
docs.microsoft.com
私は.NET FrameworkWPFアプリを.NET 5 WPFへ移行する準備をゆるゆると進めています。

以前、.NET Core 3.1でつくった小さなツールを.NET 5でビルドしてみたら、ソースコードは一切手を入れてないのに作成されたexeサイズが減っていたので報告します。

.NET Core 3.1 (171KB) → .NET 5 (140KB)

20%くらいスリムになりました。

Azure Cognitive Services - Speech Servicesの対応言語が増えました。

ちょっと油断していたたら、音声認識対応言語が9言語ぐらい増えてた。

英語(ガーナ)
英語(ケニア
英語(タンザニア
フィリピン語
フランス語(スイス)
ドイツ語(オーストリア
インドネシア語
ベトナム語
マレーシア語