simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Programming

Unity:OpenCVを直接使う4

今回は Android 端末で OpenCV を直接使う Unity 製アプリを作ってみます。先に Unity 側のコードを書くと次の通り 前回の WebCam 画像の取得の枠組みを用意して、そこの Update 関数にて次のようにカメラ画像の pixel 配列の先頭アドレスを固定して渡します…

Unity:OpenCVを直接使う3

Unity は WebCamTexture でカメラ画像テクスチャを管理します。 OpenCV は Mat (行列) でカメラ画像情報を管理します。目標は Unity の WebCamTexture を Mat に変換して、OpenCV の機能を存分に活用し たとえば次のような MarkerlessAR Example の実行を行…

TerraformでAWSのインスタンス管理

そういえばしばらく前にサーバー技術を学ぼうとしたんだっけ simplestar-tech.hatenablog.comAWS そういえば触ってたな(3か月前の作業だけど、もう忘れかけている) simplestar-tech.hatenablog.comAWS のコンソールページでポチポチクリックしてひな形(AMI…

Unity:OpenCVを直接使う2

他人の記事に惑わされずに、公式のドキュメントを読むべき その公式ドキュメントは、リリースされている OpenCV の Source をダウンロードして platforms フォルダにある。 フォルダにはテキストファイルが一つ入っており、次のリンク先のイントロを読むべし…

Distributed TensorFlow with Cloud ML Engine (Implementation Details)

■前置き 今現在、世界中の天才と呼ばれる人類層が、必死になって神秘のヴェールをはがしている領域で ごく最近使われるようになってきた単語を使って説明するので、かなり知的負荷が高いこと書きます。 筆者もいっぱいいっぱいで、わからなくても気にせず、…

TensorFlow GAN メモ

■前置き 今から半年ほど前の Google AI Blog の記事ai.googleblog.com TFGAN: A Lightweight Library for Generative Adversarial Networks 要約すると「GANってのは、コンテンツ生成という新しい研究領域を広げてます。 例を見てみ、すごいっしょ! すぐに…

Google Cloud Machine Learning Engine で分散ディープラーニング

■前置き TensorFlow をクラウド環境で分散実行したい公式のチュートリアルが分かりやすかったです。本記事はGoogle Cloud ML って何?て状態の人が そのチュートリアルにたどり着くまでの記録■手順 参考サイト www.topgate.co.jpGoogle アカウントを作成 コ…

TensorFlowの導入記録(エラー無かった)

■前置き 近頃はやりの Deep Learning を触ってみることにした。Deep Learning はホントに流行っていて、覚えきれないくらいツールが溢れている(+_+)未来があると思われる、Googleが開発したTensorflow(テンサーフロー) の Hello, World なる MNIST の学習…

goでjson文字列からオブジェクトを生成

■前置きGoで書いたWebAPIサーバが今 json 文字列を受け取っています。 json文字列に含まれる情報から必要な値をピックアップして、外部のグラフ表示ソフトが期待しているようなフォーマットでファイル出力しなければなりません。さて、つまり json 文字列か…

Webページからオブジェクトをjson文字列に変換してPOST

■前置き Webページから文字列をPOSTする際、クエリストリングのように連想配列を文字列で送信できることは確認済み さて、ユーザーアクティビティってのはそう単純なデータ構造じゃないんです。 ユーザ定義のデータ構造の配列の配列なんてこともあって、これ…

Goでローカルファイルにテキストファイルを書き出す

■前置き WebページをユーザのクライアントマシンからWebブラウザで見てもらい ユーザアクティビティを短い文字列情報でPOSTしてもらうことで、ユーザ端末で何が起きたのかを収集します。ログを出すだけじゃ意味がなく、受け取った情報をファイルに保存しなけ…

GoのAPIサーバの疎通確認

■前置き 何かしらのユーザアクティビティを収集するWebページをjavascriptで書いていて、セキュリティの関係でクライアントのローカルストレージに一切アクセスできないということに気づいたとき Webサーバ側にクライアントの情報を送信するしかないってこと…

Webサーバーがブラウザから情報を受け取るサンプル

メモ書き、あとで消します。■前置き Webサイトを閲覧する iPad で行われる操作ログをファイルとして保存しようにも、保存することができない仕様なので詰む 解決するにはブラウザで処理した内容をサーバーに送るしかない どうやって?■前提知識 HTTP という…

WindowsでWeb アプリ開発環境作る

■前置き とにかく今こうして作業しているマシンがローカルネットワーク環境でWebサーバーとして機能すればいい index.html を配置したフォルダがルートになって Web サーバーとなる仕組みがほしい■本題 IIS がキーワード、導入手順は以下のどれも同じ手順を…

Go言語の通信スケルトンコード例

■前置きGoってのはマルチコア処理で効率的に同時アクセスをさばく、現時点で最強?のネットワークプログラミング言語ですので その機能を最大限に発揮するスケルトンコードをチュートリアルで公開しているものと思っていました。 が、あまりにプリミティブな…

GoのIDE試し

■前置き1 Go言語学習を、ずっとテキストファイルで進めてきましたけど、そろそろ限界 C#のようにVisual Studio のインテリセンスがあるなら使いたいVisual Studio Code で、Go サポートがあるので、設定して試してみます。■本題Visual Studio CodeVSCode 入…

Goはローカルで通信確認できる?

■前置き1Go 環境整って Hello World 動きます。 言語の目的がマルチコアのネットワークブログラムなんだから、数行でサーバーとして機能するんだよね? どういう書式か確認させてもらおう■前置き2先に書式を学んで行け、馬鹿野郎 とドキュメントに怒られた…

Go の Hello World はどうやって確認?

■あGo 言語のトップページで Hello World を確認できる The Go Programming Languageコードをオンラインで解析して、結果を返してくれるみたいjava っぽく、package 名をファイル頭で定義して import で出力関数を利用できるようにし main 関数(プログラム…

Task.Run:Unityマルチスレッド処理に引数を渡す方法

AIに身体性を持たせるためのマイクロワールド:ブロックロジックの可視化システムの実装メモです。 まずは結果動画をご覧いただきたい。www.youtube.com マルチスレッド処理にて空気に触れている土ブロックだけが確率的に消失(正しくは空気ブロックにマテリ…

Unity:MessagePackをオブジェクトのバイナリ圧縮として使う

MessagePackは、効率の良いバイナリ形式のオブジェクト・シリアライズ フォーマットです。JSONの置き換えとして使うことができ、様々なプログラミング言語をまたいでデータを交換することが可能です。 しかも、JSONよりも速くてコンパクトです。 例えば、小さ…

Unity:C#で共用体ちっくなビットフィールドの利用:SimpleHexWorld17.8:適切にマテリアルを切り替えたい

前回、パフォーマンスを落とさないために、テクスチャ座標で異なるブロックの種類を表現できる仕組みを作ったわけですテクスチャ座標でブロックの種類を表現が、それでもマテリアルを切り替えたいときだってあります。そもそも四大元素や陰陽五行はマテリア…

AIに身体性を与えるためのマイクロワールドの構築17.7:Unityテクスチャ座標活用で描画負荷を削減

前置き Unity では一つのメッシュに対し、複数のマテリアルを面ごとに割り当てることができます。 利用するマテリアル数を増やしていくと、増やした分だけレンダリングパスが増えていき、描画時間が線形的に増加し、フレームレートが大きく落ちてしまいます…

AIに身体性を与えるためのマイクロワールドの構築17.6:Unityでのマルチスレッド処理の話

前置き AIに身体性をもたせるためのマイクロワールドの開発を進めていますが、マルチスレッドで処理しているため、期待と異なる結果になったり、パフォーマンスが極端に落ちたりすると、うまく原因を特定できません。 頼みのプロファイラーも抽象度の高い結…

Unity:シーンに一つだけしかアタッチできないSingletonMonoBehaviour+実装例

グローバルスコープに唯一のインスタンスを生成して、プロジェクトのどこからでも容易にアクセスできる仕組みがシングルトンの良いところです。 絶対に一つしかインスタンスを生成していないことをコードから保証できる点で、優れたデザインパターンだと思い…

AIに身体性を与えるためのマイクロワールドの構築16:風・土そして水

世界を構成する四大元素は風・土・水・火でした。 現在は風と土だけで世界が構成されていますので、水を作り出す必要があります。イメージとしてはこんな感じ 水は液体なので、固体である土と違ってより低い風ブロックの隙間へ移動していくものです。以前よ…

AIに身体性を与えるためのマイクロワールドの構築15:WorldCreation2

UnityでMinecraftライクゲーム作ってます。前回作った天地創造プラグインにパーリンノイズで高さを決定する機能を入れてみました。 こんな感じでみなさんの自由なアイディアをゲームに取り入れられます。www.youtube.comプラグインの実装はこちら↓ ノイズの…

AIに身体性を与えるためのマイクロワールドの構築13:Unityのプラグイン機構

前置き 今日のゲームの面白さは、決められた内容をコントローラをピコピコしながら進めるところにはありません。 いつしかゲームは絵本や映画とは異なり、何度プレイしても内容が変化する、飽きが来ない仕組みへと変化してきました。それはいつしか自らの筆…

AIに身体性を与えるためのマイクロワールドの構築12:ワーカースレッドの仕組み

前置き ゲームの描画ループを止めることなく、バックグラウンドで処理を行う作りにすることは、ゲーム体験を向上させる点で重要なことです。 マイクロワールドの表示において、ブロックのメッシュの更新がバックグラウンドで実行できないという Unity の厳し…

Unityでクラスをファイルとして保存(シリアライズ)

前置き ゲーム内で利用しているクラスオブジェクトをそっくりファイルに保存して 次にゲームを起動したときに、そのファイルからクラスオブジェクトを完璧に復元できます。 できる方法があります。ゲームの状態をセーブして、次にゲームを起動したときにロー…

先週までJava知らなかった人が、初めてJava通信アプリ作るとこうなる

本記事では、Java を使って任意の情報を、C#のクライアントが要求し、それをJavaサーバーが送信する、基本的な通信アプリの実装を示します。これまで Java には触れてこなかったのですが…仕方なく使わなければならない状況となったため、このたび勉強するこ…