kentaPtの日記

主に画像解析のことなどの勉強記録として投稿します。もし何かございましたら、github (https://github.com/KentaItakura)などからご連絡いただけると幸いです。

MATLABでVelodyne LiDARのデータを可視化してみよう

この記事はMATLAB/Simulink Advent Calendar 2023の15日目の記事として書かれています。 qiita.com また、本記事のスクリプトなどは以下のページにアップロードされています。 github.com はじめに LiDAR(Light Detection and Ranging)は、主にレーザー光…

参照座標系(EPSGコード)について

この記事はMATLAB/Simulink Advent Calendar 2023の16日目の記事として書かれています。 qiita.com 1. はじめに 3次元点群データは、XYZの点の集まりで表現されますが、「地球上での位置」を示すこともできます。 以下の図は、無料のGISソフトウェアであるQG…

3次元点群の形式の1つであるE57ファイルについて

はじめに この記事はMATLAB/Simulink Advent Calendar 2023の9日目の記事として書かれています。 qiita.com LiDARなどにより取得される3次元点群ファイルの有名なフォーマットにe57があります。 e57は、XML データ形式に基づいて点群や各種データを階層ツリ…

SOLOv2を利用した猫のセグメンテーション

はじめに この記事はMATLAB/Simulink Advent Calendar 2023の2日目の記事として書かれています。 qiita.com SOLOv2とは 画像中の物体ごとに色塗り(インスタンスセグメンテーション)をするネットワークです。 インスタンスセグメンテーションの有名な方法と…

Cloud Compareを利用して点群を画像に変換してみよう

1. はじめに この記事では、3次元点群の閲覧や処理の無料ソフトであるCloud Compare (クラウドコンペア: 以下CCとする)を利用して、点群を上から見た画像に変換する方法についてまとめます。設定方法によっては、オルソ画像やデジタル標高モデル(DEM)に相…

iPhone LiDARとDot3Dを利用して、3Dスキャンを行う

1. はじめに iPhoneに搭載されたLiDARを利用して3次元測量をするためのアプリは多く存在します。この記事では、DotProduct社の提供するDot3Dの使い方について簡単にまとめたいと思います。Dot3Dは以下のAppストアのページからダウンロード可能です。 なお、…

ファイルサイズの大きいJSONファイルの読み込み

はじめに 非常に多くの行数のあるJSONファイルをPythonで読み込む方法について備忘録として残します。 以下の、izumi-lab/llm-japanese-dataset の一部を取り出して保存してみたいと思います。 拡張子を手動で.jsonlから.jsonに変更しました。 huggingface.c…

AprilTagを利用した仮想物体の画像表示 (Augmented Reality)

1. はじめに 本記事では、以下の画像のように、画像中のARマーカーを検出する方法についてまとめます。 まず、画像処理によってAprilTagを自動検出します。そして、そのAprilTagを底面とする立方体を可視化するために、カメラの位置や向きを自動的に計算しま…

COCOデータセットのダウンロード

1. はじめに COCOデータセットをダウンロードする際に、ダウンロードリンクから直接ダウンロードできませんでした。 この記事は、wgetを利用したダウンロード方法についての備忘録です。 cocodataset.org なお、CocoはGoogle Cloud Platform (GCP)に格納され…

NeRFの仕組みを1からわかりやすくまとめたい

1. はじめに NeRF (Neural Radiance Field) とは、複雑なシーンに対して、任意の視点からの3次元的なシーンを画像から再構成する技術です。以下の動画にあるように、物体に対して、様々な角度から見たときのシーンをキレイに再現することができます。反射に…

サポートベクトルマシン(SVM)を簡単に、わかりやすく説明したい

この記事は、MATLABアドベントカレンダー(その2)の12日目の記事として書かれています。 qiita.com 1 はじめに 本記事では、サポートベクトルマシン(Support Vector Machine: SVM)の仕組みについてまとめます。 サポートベクトルマシンは複数の次元を有す…

重回帰分析の勉強&実装による検算をしてみよう

この記事は、MATLABアドベントカレンダー(その2)の6日目の記事として書かれています。 qiita.com 1 はじめに 前回の記事では、1つの変数のみで、線形回帰(単回帰)を行うときの、数式の導出や自身の実装による検算を行いました。 線形回帰(単回帰分析)…

iPhone LiDARで取得した3次元点群の境界を書き出してみよう

この記事は、MATLABアドベントカレンダー22日目の記事として書かれています。 qiita.com この記事の前編として以下の記事も投稿しています。ぜひご覧ください。 kentapt.hatenablog.com この記事では、iPhone LiDARで取得した3次元点群をMATLABにて読み込み…

深層学習を用いた物体検出の手法(YOLOv2)についてのまとめ

この記事は、MATLABアドベントカレンダー(その2)の21日目の記事として書かれています。 qiita.com はじめに この記事では、物体検出の有名な手法である、YOLOv2について説明を行います。物体検出の手法を用いて、以下のように画像中から対象を自動的に検出…

iPadで数式を書いて、MATLAB livescriptでブログ記事を書いてみよう

この記事は、MATLABアドベントカレンダー(その2)の19日目の記事として書かれています。 qiita.com はじめに 私が数式を含むブログ記事を投稿するときの手順を紹介したいと思います。あくまで私が気に入っている方法であり、他にもよい方法があると思います…

サポートベクトルマシンを理解するうえで重要なカーネル法に関して勉強してみよう

この記事は、MATLABアドベントカレンダー(その2)の11日目の記事として書かれています。 qiita.com 本記事の執筆にあたっては、 赤穂先生の「カーネル多変量解析」を非常に参考にさせていただきました。 カーネル多変量解析―非線形データ解析の新しい展開 (…

t-SNEの勉強メモ

この記事は、MATLAB/Simulink Advent Calendar 2022の6日目の記事として書かれています。 qiita.com 1章 はじめに t-SNEと呼ばれる方法を用いて、高次元データを、2次元平面や3次元空間にプロットすることができます。 例えば、以下の図は、MNISTという0から…

線形回帰(単回帰分析)を1から実装して理解を深めてみよう: つづき

この記事は、MATLABアドベントカレンダー(その2)の5日目の記事として書かれています。 qiita.com 1 はじめに 前回の記事では、以下のように、線形回帰(単回帰分析)を行った時の、式の傾きや切片の求め方についてまとめました。 kentapt.hatenablog.com …

線形回帰(単回帰分析)を1から実装して理解を深めてみよう

この記事は、MATLABアドベントカレンダー(その2)の4日目の記事として書かれています。 qiita.com 1 はじめに 以下の図のように、エクセルなどで、直線で回帰(フィッティング)した経験がある方も多いかもしれません。 以下の図では、y = 0.33x + 50.2 と…

iPhone LiDARで取得した3次元点群を地図上にプロットしてみよう

この記事は、MATLABアドベントカレンダー3日目の記事として書かれています。 qiita.com この記事では、iPhone LiDARで取得した3次元点群をMATLABにて読み込み、さらに、地図(地球)上で可視化する方法について紹介します。言語はMATLABを使用します。 3次元…

FLIRカメラで取得した熱画像をRGB画像に変換してみよう

1. はじめに この記事では、FLIR社の赤外線カメラを用いて、取得した画像をRGB画像に変換する方法について述べます。ここでは、Pythonを用います。 赤外線カメラの詳細や、そのカメラの応用事例については以下のページが参考になりました。 atcl-dsj.com 本…

voxelPlotterを利用して、点群とグリッドを重ね合わせてみよう

この記事では、以下のように、3次元点群にグリッドを重ね合わせて表示する方法について紹介します。メインのコードである、VoxelPlotter.mは、以下のMATLAB Centralにて公開されているものを参考にしました。 jp.mathworks.com メインコード アイデアとして…

argparseの使い方についてのメモ:Python編

前回のMATLAB編に続き、Python編です。こちらのPython編では、簡単な例にとどめます。 MATLAB編は以下のリンクからアクセスできます。 kentapt.hatenablog.com 今回のPythonコードは以下に保存されています。 github.com argparseを用いた簡単なPythonコード…

argparseの使い方についてのメモ:MATLAB編

MATLABであれば、livescript、Pythonであれば jupyternotebook (lab)といった、対話型の開発環境を筆者は使うことが多いのですが、コマンドラインで、引数を指定して実行できるようにする機会も多くあります。そこで、MATLABやPythonで、そのような指定(arg…

exiftoolを用いて写真の位置情報を変更してみよう

この記事では、exiftoolを用いて、動画や画像のメタ情報の閲覧や、編集を行う方法について述べます。 画像のメタ情報の例 Windowsで画像上を右クリックし、プロパティを表示させると、以下のように画像の情報(例:画像のピクセル数やカメラ名、カメラの焦点…

サブフォルダも含めてファイル一覧を取得する

1. はじめに この記事では、特定のフォルダの中に存在するファイルを、サブフォルダも含めて取得する方法についてメモを残します。 ここで用いたコードやファイルは以下のページにアップロードしています。 github.com 2. コードについて 2.1. MATLAB dir関…

サポートベクターマシン(SVM)の分離平面の可視化 (Python, MATLAB)

この記事では、サポートベクトルマシン(SVM)を用いて、分類を行ったときの、分離のための超平面を可視化することを行います。PythonとMATLABにて書いてみたいと思います。ここでは、3つの変数を説明変数として用いて、3次元プロットによる可視化を行います…

PythonからPDFを画像に変換&画像からPDFに変換する方法のメモ

この記事では、Pythonを用いて、PDFファイルを読み込んで、画像に変換すること、さらに、画像からPDFに変換する方法について調べたのでメモとして残したいと思います。 ここでのスクリプトで特定のことをしたいわけではなく、Pythonを用いたPDFの読み込み、…

Pythonのsubprocessモジュールの実行について

1. はじめに Pythonのsubprocessの使い方について、自分用のメモとして残したいと思います。subprocessの使い方に関しては、以下のYOUTUBEがわかりやすかったです。subprocessでは、 マルチプロセスによる計算を行う Pythonからbashやコマンドプロンプトなど…

文字列・数値に対してゼロ埋めをし、000123.jpgのような文字列を作成する(ゼロパディング)

数字の表記を、1234ではなく、001234のように特定の数字などで埋めたい場合があると思います。この記事では、MATLABとpythonにおけるコードについて自分用のメモとして残したいと思います。例えば、 123, 18, 1931...のように桁数の違う数字を含むファイル名…