takminの書きっぱなし備忘録 @はてなブログ

主にコンピュータビジョンなど技術について、たまに自分自身のことや思いついたことなど

Tips

FastAPIをOpenCVと連携

FastAPIはPythonで簡単にAPIサーバーが立てられるライブラリです。 fastapi.tiangolo.com 今回これを利用して、HTTP POSTで送られた画像になんらかの認識処理をかけて、結果をjsonで返すようなプログラムを書いたのでメモしておきます。 その際、送られてき…

PyTorchで学習したモデルをOpenCVで使う (Custom Layer編)

この記事はOpenCV Advent Calendar 2020 18日目の記事です。 はじめに OpenCVにはDNNモジュールという畳み込みニューラルネットワークの機能が実装されています。この機能は推論専用のため、CaffeやTensorflowなどの深層学習ライブラリ上で学習したモデルを…

主成分分析で直線フィッティングの導出

先日こんなツイートをしました。 通常の最小二乗法だとy=ax-bの直線とサンプルとのy軸上の差を最小化しようするけど、サンプルから直線まで下ろした垂線の距離を最小化しようとする良い手法はないんだろうか。自分で定式化しようとしたら、存外ややこしくて…

PyTorchで学習したモデルをOpenCVで使う

以前、Keras+Tensorflowで学習したモデルをOpenCVで推論に使用する方法について解説したことがありました。 run Keras model on opencv from Takuya Minagawa www.slideshare.net OpenCVにはDNNモジュールという畳み込みニューラルネットワークを使用するた…

カメラ/IMUのキャリブレーションツールkalibrを使ってみた

はじめに 本記事は3D Sensor Adevent Calenderの第14日目です。 https://qiita.com/advent-calendar/2019/3d-sensor 最初にお詫びを 申し込んでみたけど、よくよく考えたら3D関係なかった。。。/3D Sensor Advent Calendar 2019 #Qiita https://t.co/e7GuoWI…

フリーランスを支える技術(テクニック)

フリーランスアドベントカレンダー(https://adventar.org/calendars/3273)7日目の記事です。自分が今まで使ってきたフリーランスIT技術者としてのテクニックをまとめました。

Boost.PythonをAnaconda3の環境でビルド

Anaconda3を入れた状態でBoost.Pythonのビルドに手間取ったのでメモ。 "conda install boost"ではなく、わけあってBoostをソースからビルドしました。 作業環境は以下の通り Ubuntu 16.0.4 Anaconda3-5.1.0 Boost 1.66.0 ここで、Anaconda3は/home/takmin/an…

子供向けおすすめ英語Youtubeチャンネル

久しぶりの非技術系記事 我が家では三歳になる息子によく英語の子供向けYoutubeチャンネルを見せています(ChromecastでTVに映して)。元々は子供がまだ数ヶ月の頃、泣きやます手段としてアンパンマンのオープニングとか、ふかふかカフカとか、ムーニーちゃ…

【改訂版】三次元空間上の楕円の公式から回転行列と並進ベクトルを計算する

三次元空間上の楕円は以下の式で表されます。 (1) 例えば三次元空間上の点群があり、この点群に上記の楕円をあてはめたい時などは、RANSACや最小二乗法などを用いてaからjまでの各係数を計算できます。 で、せっかくこういう係数がもとまったは良いけど、そ…

OpenCVで魚眼カメラのキャリブレーション

はまったのでメモ OpenCVの魚眼カメラのキャリブレーションは、calib3dモジュールのcv::calibrateCamera()とは微妙に使い方が違うので、下手するとドハマリします。 通常のカメラキャリブレーションの方法は、calibration.cppというサンプルコードが用意され…

PCL1.7.2をVS2013でビルドした時のTips

先日リリースされたPCL1.7.2をどうにかVisual Studio 2013上でビルドできました。 PCLのビルドは過去に結構痛い目見たので、おそるおそる。。。 尚インストール方法の詳細はこのサイトが参考になります。 http://unanancyowen.com/?p=712 https://gist.githu…

WindowsからのXtion(Kinect)のシリアル番号取得方法

Point Cloud Libraryから複数のXtionやKinectを使用している時、例えばどのデバイスを使用するかを明示的に選びたい場合などがあると思います。 例えば以下のサイトでは、OpenNIGrabber()でデバイスを起動する際、シリアル番号や、デバイスのバスまたはイン…

PCLのOctreeで各ノードへアクセスする場合の注意点

はまったのでメモ。 相変わらずPCLはドキュメントが少なくてしんどい。 PCLにはOctreeというモジュールがあります。これは空間を8つの立方体に再帰的に分割していくことで、八分木でVoxel空間を表すためのモジュールです。 詳しくはここを参照して下さい。O…

OpenCVの平面細分割用 C++クラス SubDiv2D

OpenCVのCインターフェースでは、平面細分割を作成してくれる関数が(現在はレガシーコードとして)用意されていましたが、C++版は長らく実装されていませんでした。 ところがサンプルコードを覗いたところ、"delauney2.cpp"というコードを発見。APIドキュメ…

ObjectMarkerをじみーに機能強化

先日ここの日記で取り上げたObjectMarkerですが、「まだまだ使いにくい」というお声を頂いたため、地味に修正を加えました。機能は地味ですが、内部的にはガラッと変わりました。前回のバージョンよりも大分使いやすくなったと思います。変更点は以下のとお…

物体検出/追跡研究者のための画像アノテーションツール ObjectMarker

コンピュータビジョンで物体検出や追跡を行う場合、当然のことながら学習データというのをある程度用意しなくてはいけません。具体例としてはOpenCVのHaarClassifierCascadeで物体検出するための検出器を訓練するとき、訓練画像をたくさん集めて、その対象と…

OpenOffice Drawで図を傾斜させる方法

OpenOffice Drawで図を傾斜させたい場合、以下の手順をとる。 オブジェクトを選択し、右クリック→変換→曲線に変換(または輪郭に変換) オブジェクトを選択し、右クリック→位置とサイズ 開いたダイアログボックスの「傾斜角度/角の半径」タブを選択し、傾斜…

MLクラスの学習時におけるsample_idx使用時の注意点

OpenCVの機械学習クラス(CvStatModelを継承した、CvSVMやCvDTree、CvBoostなど)は、学習時(train()関数)において、入力データのうちどれを実際に学習に使うかを指定することができる。例えば二分木であれば bool CvDTree::train(const CvMat* _train_data,…

削除できないファイルを無理やり削除できるUNLOCKER

Gimp2.6のWindowsインストーラをダウンロードしてインストールしようとしたところ、"C:\Document and Settings\\.gimp-2.6"にアクセスできない、とかなんとかエラーが出た。 しょうがないので、GIMPをアンインストールしたんだけど、この".gimp-2.6"というデ…

Xerces_C++でXML読み込みの簡単なプログラムを組んでみた

Xercesっていうのは、Apache Software Foundationで開発されている、オープンソースのXMLパーサーのこと。 Java版がメジャーだけど、C++でXML読み込む必要があったので、実装してみた。 以下、Windows + Visual Studioでの手順のメモ書き。備忘録なので、か…

OpenCVの機械学習におけるvar_idxの使い方

OpenCVの機械学習クラス、例えばCvSVM、CvBoost、CvDTreeなどなどのtrain()関数にはvar_idxなる引数があるけど、これの使い方が、その親クラスであるCvStatModelの説明http://www.opencv.jp/opencv-1.0.0/document/opencvref_ml_introduction.html#decl_CvSt…

OpenCVのCvDTreeの使用にあたっての注意点

OpenCVのMachine Learning関係はマニュアル見てもネットで探しても貧弱な情報しかないので、とりあえず自分が発見したことをさらしていく。CvDTreeクラスは二分木を作ってくれるクラスで、CART(Classification and Regression Trees)モデルと言われている…

なんでもかんでもBase64エンコードできるサイト

仕事の関係でちょっと使ってみた。 これは便利かも。http://www.motobit.com/util/base64-decoder-encoder.asp

Wordで編集中に画像が消える。

Word 2007で色々と編集していると、たまにドキュメント内の画像や表が消えてなくなることがある。 画像や表は、右クリックしてテキストボックスの書式設定で、「レイアウト」タブを選択し、「折り返しと種類の配置」を「行内」にすればそれが避けられます。…