かみのメモ

コンピュータビジョン・プログラムな話題中心の勉強メモ

VNCでDockerコンテナ内のGUIデスクトップにアクセスしてみた

DockerコンテナにGUIデスクトップを立ち上げて、TigerVNCとnoVNCを使ってリモートログインする方法をまとめてみます。この方法を使うと、ブラウザから簡単にリモートデスクトップ接続できるようになります。

cv::imshowが遅いのでOpenGLで画像を表示してみる

OpenCVのimshow & waitKeyの代わりにOpenGLで画像を表示することで、フレームレートの改善やレンダリングのタイミングの同期を行う方法を紹介してみます。かなり荒っぽい方法ですが、筆者が調べた限りでは、これが最も簡単に画像表示を速くする方法でした。…

【C++】リアルタイムな処理をパイプライン化してフレームレートを改善してみる

リアルタイムなデータ処理を高いフレームレートで実行するため、マルチスレッドなパイプラインをC++で実装してみます。シンプルな実装例から、ダブルバッファリングを用いた実装例やスレッドプールを用いた実装例もご紹介します。

Blenderをちょっとした座標系可視化ツールとして使う

bpyを利用して、座標系の位置関係をBlender上で可視化するPythonスクリプトを書いてみました。

NeoVimユーザーがvscodeにも定住するためにやったこと

NeoVimに使用感の近いVisual Studio Code環境を構築した話を書いてみます。主にサイドバー(NERDTreeっぽく)、タブ移動、ターミナル周りを違和感なく使うためのショートカットの話です。

トップページ

このブログはかみの(@Kamino410)の個人ブログです。コンピュータビジョンの分野を中心にプログラミング・数学・光学の話題について書いています。月1〜2記事を目安に不定期更新中です。

Googleの検索言語をサクッと切り替えるためのブックマークレット

Google検索結果の日本語・英語を1クリックで切り替えられるブックマークレットを書いてみたので紹介します。

数理最適化の勉強メモ − Levenberg-Marquardt法

制約なし非線形最小二乗問題の解法であるLevenberg-Marquardt法について、直観的な視点と信頼領域法の視点からまとめてみます。

双対数を利用した自動微分についてのメモ

この記事では、プログラムで微分を計算する方法の1つである、双対数を利用した自動微分の原理や数値微分との比較についてまとめてみます。

Docker上のGUIアプリをホスト/リモートで描画する

リモートのUbuntuサーバーのDockerコンテナ上で起動しているGUIアプリの画面を、ホスト自身やローカルのMac/Windowsのディスプレイに表示させる方法についてまとめてみます。

Python scipyのRotationモジュールで三次元回転を扱う

scipyのRotationモジュールについてメモ。回転ベクトル, 回転行列, クォータニオン(四元数), オイラー角の相互変換の方法, 回転の合成の方法についてまとめます。

【ちょっとしたデータ処理に使える】Pythonで手軽に数値データを受け取る方法

他のプログラムで計算した数値データをPythonで手軽に受け取る小技について紹介します。

数理最適化の勉強メモ − 最急降下法 / ニュートン法の原理と特徴

連続最適化問題の数値解法である最急降下法とニュートン法についてまとめた勉強メモです。原理と特徴を数式とグラフを使いながら解説しています。

数理最適化の勉強メモ − 解析的な解法 / 最適性条件 / 勾配法がうまくいかない条件

連続最適化問題を解析的に解く方法、最適性条件、最適化がうまくいかない条件などについて考えたことをまとめた勉強メモです。

プロジェクタとカメラのキャリブレーションソフトを書いてみた

GitHubで公開しているプロカムキャリブレーションのソフトウェアについて軽い紹介記事を書いてみます。このソフトウェアはプロジェクタとカメラを使ったシステム(いわゆるプロカムシステム)において、プロジェクタとカメラの幾何較正を行うためのものです。

coreML学習済みネットワークをplaygroundで試してみた

coreML入門の手始めにAppleが配布している学習済みネットワークをmacOSのplaygroundで動かしてみました。学習済みモデルをplaygroundからロードする方法と、coreMLを動かすための最小実装をメモとして残しておきます。

iTerm2+NeoVimに定住するためにやったこと

最近ようやくNeoVim環境がいいかんじにまとまってきたので、振り返りついでに記事を書いてみます。 ターミナル開発環境を整えるためのTips集として読んで頂けると幸いです。

勝手に作るCMake入門 その4 外部ライブラリを利用する

この連載は、ここ1年くらいでCMakeに入門した筆者が勉強した内容をまとめたものです。今回はfind_packageの使い方やCMakeで外部ライブラリを利用する方法についてまとめていきます。

勝手に作るCMake入門 その3 プロジェクトの設定

この連載は、ここ1年くらいでCMakeに入門した筆者が勉強した内容をまとめたものです。今回はキャッシュ変数の役割とccmakeやcmake-guiを使ったプロジェクト設定について紹介します。

勝手に作るCMake入門 その2 プロジェクトの階層化

この連載は、ここ1年くらいでCMakeに入門した筆者が勉強した内容をまとめたものです。今回はプロジェクトを静的ライブラリとそれに依存する実行ファイルという2段階に階層化する方法について書いていきます。

勝手に作るCMake入門 その1 基本的な使い方

この連載は、ここ1年くらいでCMakeに入門した筆者が勉強した内容をまとめたものです。初回のこの記事ではCMakeとは何なのか、CMakeの基本的な使い方について書いていきます。

Unity Native PluginでC++の処理を非同期に呼び出す

前の研究室で「UnityでOpenCV使いたい」とか「UnityからArduinoにアクセスしたらゲームが固まった」とかよく耳にしたので、それに応えるつもりで記事を書いてみます。 この記事では①UnityからC++の関数を呼び出す方法、②C++の重い処理を非同期に呼び出す方法…

Plotlyでレポート・論文に使えるグラフを描こう

この記事ではPythonを使ってPlotlyのグラフを画像として保存する方法と、自分が資料用のグラフを作るときによく使うレイアウト調整の方法を紹介します。

OpenCV calibrateCamera関数のプロになる

カメラのキャリブレーションでよく使われる、OpenCVのcalibrateCamera関数の原理や実用上のコツを解説します。

XFLR5のXfoilコードを抽出してみた

初の鳥人間成分。 情報量ゼロの宣伝記事です。 かの有名なMark Drela先生が作成した二次元翼型解析ソフトXfoil。 割と古いソフトですが、未だにそこそこの数の鳥人間チームが利用していると思います。 しかし自作のプログラムと連携させることを考えたとき、…

焦点距離の定義と用法をまとめてみた

珍しく光学の話題です。 コンピュータビジョンの分野では、いくつかの文脈で焦点距離(focal length)という単語が登場します。 この単語は元を辿れば全て同じ定義に行き着くのですが、使われる文脈によって前提とする考え方が少し違うので混乱しやすいです…

cmakeプロジェクトの設定項目一覧を表示させる

CMakeプロジェクトの設定項目(キャッシュ変数)の一覧を表示させる方法を紹介します。

C++で順列・組み合わせを列挙する

C++

競プロとかアルゴリズム系のコードを書いてるとたまに順列・組み合わせを列挙したいことがありますよね。この記事では自分なりに書いたC++のコードを紹介してみます。

回転ベクトル・回転行列・クォータニオン・オイラー角についてまとめてみた

この記事では回転ベクトル,回転行列,オイラー角,クォータニオン(四元数)それぞれについて回転の表現方法,特徴,右手系・左手系の変換方法を紹介します。

macOSのcmakeでcmathが大量のエラーを吐いたときのメモ

MacでPCL(Point Cloud Library)のサンプルをcmakeからビルドしようとしたときに、次のようなエラーが大量発生したので原因を調べてみました。 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:31…