かみのメモ

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

解説/読み物

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

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

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

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

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

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

双対数を利用した自動微分のしくみ

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

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

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

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

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

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の基本的な使い方について書いていきます。

OpenCV calibrateCamera関数のプロになる

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

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

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

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

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

C/C++のビルドの仕組みとライブラリ

研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。この記事ではC/C++のコンパイル・リンクの仕組みとそれがどのようにライブラリの仕組みに応用されているのかを解説します。

OpenGLに入門する前に知っておきたかったこと

自分がOpenGLに入門した後で「入門前に知っていたら勉強が捗ったのになあ」と思ったことについてまとめてみました。OpenGLは普通のライブラリとは違うことや、GLUTやGLFWが何者なのかなどを解説しています。