Lua言語用のプラグインDLLを作ってみた。
最近ディープラーニングはTorchやPytorchでやるようです。TorchはLuaというスクリプト言語で書かれています。スクリプト言語ですが、中間言語にコンパイルして高速に動かすこともできます。Luaのソースコードを見て分かったのですが、とてもコンパクト。さらに、Lua言語は簡単にC言語の関数やDLLを呼び出せるので、簡単にいろんなライブラリと連携させることができます。動的にDLLを呼び出せて、オ...
View Article最小のpytorchを作る。
前回のブログで、PyTorchのlibtorchをC++言語から使用する方法を紹介しました。このlibtorchはtorch.dll、c10.dll、caffe2.dllの3つのモジュールからできています。torch.dllが20Mバイト、caffe2.dllが30Mバイトあります。うーんでかすぎる。ソースコードを見る限り、どうみてもcaffe2.dllなんて使っていないように見る。また、C++の部...
View Articleクロネコヤマトの人工知能
おじさん、最近amazonでペットボトル入りの麦茶を買ったんです。いつも宅配ロッカーに届けてもらえるのですが、なぜか宅配ロッカーに届けてもらえない。そこでWebから再配達の依頼をすることに。いつものようにあまりにひどい会社のシステムは実名で書かせていただきます。まず、クロネコメンバーズというWebサイトにアカウントを作って再配達依頼をすることに。Lineで送られてきたサイトから、iphoneでアカウ...
View Articleバーコードリーダーで遊ぶ
最近スマホでお金が払えるみたいです。スマホの画面にバーコードが出て、それをお店で店員に見せて、バーコードリーダーで「ぴっ」とするとお金が支払われるようです。おじさん、これ作れる。でも、お金やポイントの管理システム作っても面白くないなぁ。というわけで、今回は、バーコードを読んで、WebAPIをたたいて誰かにメールを送るアプリを作ってみます。これを作れば「子供が家に帰ってきてバーコードを読み込ませたら親...
View Article高次局所自己相関特徴(HLAC)をする
おじさん、最近暇でよくテレビを見ています。テレビでよく犯罪者を認識するシステムのことを特集しています。おじさん、あれ作れる。でも学習までやるととても時間がかかるし、データがないし、そもそもブログに1回で書ける量じゃないし。なので、本日は行動認識に使う特徴量、高次局所自己相関特徴(HLAC)を求めるところまでやってみたいと思います。まず、このサイトで高次局所自己相関特徴について勉強。https://y...
View Article人物のシルエット画像を作る
万引きシーンや暴力シーンってどうやって検出するんだろね。いろいろ調べてみると大体以下の流れのよう。https://www.ieice.org/publications/conference-FIT-DVDs/FIT2015/data/pdf/H-021.pdf1.HOGで人物のエリアを特定2.シルエット画像を作る。3.シルエット画像からHLACなどの特徴量を計算4.特徴量をSVMで学習させる。前回の...
View Articleサポートベクターマシン(SVM)をする
AIのアルゴリズムでよく名前を聞くSVM。簡単に説明すると入力されたn個の数値(ベクトル)からAであるかないか判別するプログラムです。分類器というようです。例えば、入力は二個で掛け算の積が10以上ならばOKを返すものを作りたいならば-1 1:2 2:3 #2*3でNG1 1:5 2:4...
View Article姿勢推定(Pose Estimation)をする
最近のOpenCVってディープラーニングに対応しているのですね。CaffeやTensorFlow、PyTorchで学習させた結果を読み込んで簡単にOpenCVで利用することができます。こりゃー便利、いろんなアプリ作れるじゃん。ちょうどディープラーニング業界では、OpenPoseというものがはやってるし。人間の頭手足などの位置や動きを数値化してくれるらしいです。おじさん、これも作れる!ということで、本...
View ArticleNeural NetworkのRuntimeを作る
.xlsxのファイルを表計算ソフトで開けばいろいろな計算ができるように、.onnxのファイルをNeural NetworkのRuntimeで開けばディープラーニングができるそうです。なんかめちゃくちゃ簡単そうじゃん。これならおじさんもできる!ということで本日はNeural NetworkのRuntimeを作って遊ぶがテーマです。といっても先日、ブログでPose...
View ArticleMask R-CNNをやってみた
NewralNetwork Runtimeってとっても便利ですね。おじさん、NewralNetwork Runtimeを使って、前からやりたかったMask R-CNNをやってみました。Mask...
View ArticleTensorFlowをVisualStudio2019でビルドしてみた。
GoogleにはWindowsがないみたいで、TensorFlowもWindowsでビルドがほとんどできない状態です。ほどんどできないというのは、TensorFlowをビルドするのに使うMAKEツールのBazelがWindowsのコンパイラをVisualC++ Build Tool...
View ArticleC言語インタープリターで遊ぶ
最近人気のPythonですが、Python自体は結構サイズが大きくて、Pythonを動かすのにたくさんのライブラリが必要です。手軽に動かせる軽量のインタープリタ言語ないかなぁ。調べてみると、picocというコンパクトなC言語インタープリタがあるらしい。ということで、C言語インタープリタをビルドしてみました。https://github.com/jpoirier/picochttps://gitlab...
View Articlebrainfuckを作ってみた。
プログラムの概念を作ったチューリングによれば、「コンピュータ言語は少なくともチューリング完全でなければプログラミング言語とは呼ばれない」という決まりがあるようです。そして、チューリング完全な最小の言語としてbrainfuckという言語があります。https://qiita.com/TomoShiozawa/items/25dcce1540085df71053なんか情報系の大学の計算機理論やコンパイラ...
View ArticleKaggleのTitanicの問題をやってみた。
おじさんこんなサイトを見つけました。https://nehori.com/nikki/2019/12/09/kaggle/どっかの保田さんって人が書いてんのね。あらー世の中にはこんなかわいそうな人がいるようです。このうさんくさそうなサイトの話では、どうもkaglleというとこの問題を解くとなんと3億円がもらえるらしい。これは凄い。ということで今日は上記のサイトにもあるkaglleの入門編のタイタニッ...
View ArticleKaggleのTitanicの完全な答えを作る。
おじさん、「レポートを書け」とか「宿題を出せ」とかが大嫌いなのです。なのでTatanicの問題も出したくない!だって同じ作業を何回もするのめんどくさいでしょ。そもそもプログラムを始めた理由も中学生の時に連立方程式を解くのがめんどくさいからだったので。いま思うと、この連立方程式のおかげで宿題が嫌いになり、プログラムができるようになりました。それよかったのかな?そこで、今日は前回作ったtaitnicの問...
View Articleタイタニックの生き残り戦略を考える
おじさん、ブログのアップする順番を間違えてしまった。前回のブログでtitanicの生存者を当てる機械学習の中の上くらいのモデルができました。精度があまり良くないけれど、せっかく作ったモデルを有効活用しないといけないので、今回は以下のサイトのように、自分がもしタイタニック号に乗ったら生き残るかどうかを調べてみました。おじさんの会社がタイタニック号だと思って真剣に調べます。https://nehori....
View Article重回帰分析をやってみる。
おじさんのおうちのポストに「今あなたのお手持ちのマンションを売ると○○○○万円です。」というチラシがよく入っています。どうも全ての部屋毎に違う値が入っているらしい。これ、どうやって計算しているんだろね。なんでおじさんちの値段がわかるの?https://www.ydc.co.jp/column/mi/mieruka02.htmlいろいろ調べると、重回帰分析というやつをやればマンションの価格を求められる...
View ArticleVue.jsで遊んでみた。
おじさん、いまさら、React.js、Babel.js、Vue.jsを使ってみました。最近、JavaScriptを拡張したり、HTML中でPHPのようにJavaScriptを実行したり、仮想DOMとかがはやっているのね。最近のフロンドエンドにはついていけない・・・・・・そんななか、Vue.jsのHTMLのタグやアトリビュートの中でPHPのようにJavaScriptを実行できる機能はなんとなく理解でき...
View Article