chevron_left

メインカテゴリーを選択しなおす

cancel
コンピュータービジョン・深層学習を簡単に紹介するブログ https://kentapt.hatenablog.com/entry/2021/12/22/164539

このブログでは、深層学習やコンピュータービジョン、GISに関連することを簡単に紹介します。コードも公開しており、皆様の自学自習のお役に立てれば幸いです。

kentaPt
フォロー
住所
未設定
出身
未設定
ブログ村参加

2022/01/04

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

    この記事はMATLAB/Simulink Advent Calendar 2023の15日目の記事として書かれています。 qiita.com また、本記事のスクリプトなどは以下のページにアップロードされています。 github.com はじめに LiDAR(Light Detection and Ranging)は、主にレーザー光線を物体に照射することで対象までの距離を測定します。それにより、周辺の障害物を検知したり、その環境の3次元的な地図を作成したりすることができます。 LiDARは多くの種類がありますが、その中でもVelodyne LiDARが有名です。本記事では、Velodyne Li…

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

    この記事はMATLAB/Simulink Advent Calendar 2023の16日目の記事として書かれています。 qiita.com 1. はじめに 3次元点群データは、XYZの点の集まりで表現されますが、「地球上での位置」を示すこともできます。 以下の図は、無料のGISソフトウェアであるQGISを利用して、地図上に3次元点群データを表示しています。 この際に、座標参照系(CRS)やEPSGコードというものを設定する必要があります。 この記事では、3次元点群データを地図上で見るために必要な座標参照系(CRS)やEPSGコードについてまとめます。 3次元点群データはiPhoneに搭載され…

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

    はじめに この記事はMATLAB/Simulink Advent Calendar 2023の9日目の記事として書かれています。 qiita.com LiDARなどにより取得される3次元点群ファイルの有名なフォーマットにe57があります。 e57は、XML データ形式に基づいて点群や各種データを階層ツリー構造で格納します。米国試験材料協会 (ASTM) によって定められています。 例えば、Leica社のCycloneで点群をエキスポートするときや、iPhone LiDARのアプリである、Dot3Dで点群をエキスポートするときにE57形式を選択することができます。 以下の図は、Dot3Dで点群を…

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

    はじめに この記事はMATLAB/Simulink Advent Calendar 2023の2日目の記事として書かれています。 qiita.com SOLOv2とは 画像中の物体ごとに色塗り(インスタンスセグメンテーション)をするネットワークです。 インスタンスセグメンテーションの有名な方法として、この他にMask R-CNNなどが知られています。 SOLOについては以下の記事がわかりやすかったです。 qiita.com MATLABではSOLOv2モデルを非常に簡単に動かすことができます。 本記事ではSOLOv2を利用して以下のようなセグメンテーション結果を得る方法ついて説明します。また利…

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

    1. はじめに この記事では、3次元点群の閲覧や処理の無料ソフトであるCloud Compare (クラウドコンペア: 以下CCとする)を利用して、点群を上から見た画像に変換する方法についてまとめます。設定方法によっては、オルソ画像やデジタル標高モデル(DEM)に相当するファイルをエキスポートすることができます。 CCのダウンロードリンクは以下の通りです。 www.danielgm.net また、本記事のより詳しい内容は以下のページをご参照ください。 www.cloudcompare.org 本記事は、CCに点群をインポートする方法や閲覧する方法などはすでに把握しているとして進めます。 2. …

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

    1. はじめに iPhoneに搭載されたLiDARを利用して3次元測量をするためのアプリは多く存在します。この記事では、DotProduct社の提供するDot3Dの使い方について簡単にまとめたいと思います。Dot3Dは以下のAppストアのページからダウンロード可能です。 なお、本記事においては、iPhone 13Pro Maxを利用しています。 www.dotproduct3d.com Dot3D - LiDAR 3D ScanningDotProduct LLC写真/ビデオ無料apps.apple.com また、別のiPhone LiDARのアプリである、Scaniverseや3dScann…

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

    はじめに 非常に多くの行数のあるJSONファイルをPythonで読み込む方法について備忘録として残します。 以下の、izumi-lab/llm-japanese-dataset の一部を取り出して保存してみたいと思います。 拡張子を手動で.jsonlから.jsonに変更しました。 huggingface.co あらかじめ、こちらのJSONファイルををダウンロードしているとします。 また、本記事で利用したコードは以下のページにアップロードしています。 github.com Pythonコード モジュールのインポート import json import codecs ジェネレータ関数を作成する …

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

    1. はじめに 本記事では、以下の画像のように、画像中のARマーカーを検出する方法についてまとめます。 まず、画像処理によってAprilTagを自動検出します。そして、そのAprilTagを底面とする立方体を可視化するために、カメラの位置や向きを自動的に計算します。 このような処理を動画の各フレームごとに行うことで、AprilTagを検出しながらカメラの位置を予測し、その位置に立方体を可視化することができます。 また、カメラの内部パラメータや外部パラメータの計算方法については、カメラキャリブレーションによって求めることができます。内部パラメータはあらかじめ計算しておき、外部パラメータはApri…

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

    1. はじめに COCOデータセットをダウンロードする際に、ダウンロードリンクから直接ダウンロードできませんでした。 この記事は、wgetを利用したダウンロード方法についての備忘録です。 cocodataset.org なお、CocoはGoogle Cloud Platform (GCP)に格納されており、gsutil ツールを利用してダウンロードすることが推奨されています。 cloud.google.com 2. Wgetを利用したCocoデータセットのダウンロード ここでは、Windowsを利用します。 1. Wgetをインストールする インストール方法については、以下のページがわかりやす…

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

    1. はじめに NeRF (Neural Radiance Field) とは、複雑なシーンに対して、任意の視点からの3次元的なシーンを画像から再構成する技術です。以下の動画にあるように、物体に対して、様々な角度から見たときのシーンをキレイに再現することができます。反射に関しても、それぞれの角度から見たときの見え方が反映されており、角度によって同じ場所でも微妙に違う反射特性を見て取ることができます。この手法を利用して、例えば、地点AとBで画像を取得した場合、その中間地点の任意の角度から対象物体を見たときのシーンを生成可能です。 この記事では、このNeRFと呼ばれる技術と、それを実行するにあたっ…

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

    この記事は、MATLABアドベントカレンダー(その2)の12日目の記事として書かれています。 qiita.com 1 はじめに 本記事では、サポートベクトルマシン(Support Vector Machine: SVM)の仕組みについてまとめます。 サポートベクトルマシンは複数の次元を有するデータを超平面で分離する手法として有名です。色々な場面で利用でき、機械学習の代表的な手法の1つ言えます。以下の図は、3つの変数をもつデータを2つのクラスに分類しているときの図です。各軸が、それぞれの変数に対応しています。また、赤色の局面(超平面)によって、2つのクラスに分類されます。この図は3変数の場合を示…

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

    この記事は、MATLABアドベントカレンダー(その2)の6日目の記事として書かれています。 qiita.com 1 はじめに 前回の記事では、1つの変数のみで、線形回帰(単回帰)を行うときの、数式の導出や自身の実装による検算を行いました。 線形回帰(単回帰分析)を1から実装して理解を深めてみよう kentapt.hatenablog.com 線形回帰(単回帰分析)を1から実装して理解を深めてみよう: つづき kentapt.hatenablog.com そこでは、y = ax + bという非常にシンプルな場合を扱いました。 今回は、 といったような、変数の数を増やした場合について考えたいと思い…

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

    この記事は、MATLABアドベントカレンダー22日目の記事として書かれています。 qiita.com この記事の前編として以下の記事も投稿しています。ぜひご覧ください。 kentapt.hatenablog.com この記事では、iPhone LiDARで取得した3次元点群をMATLABにて読み込み、さらに、その領域の境界のデータをKMLファイルとして出力する方法を紹介します。言語はMATLABを使用します。 3次元点群を取得するためのアプリは3D Scanner Appを用いました。 詳しい使い方は、以下の記事がわかりやすかったです。 note.com また、以下の記事でもこちらのアプリの使…

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

    この記事は、MATLABアドベントカレンダー(その2)の21日目の記事として書かれています。 qiita.com はじめに この記事では、物体検出の有名な手法である、YOLOv2について説明を行います。物体検出の手法を用いて、以下のように画像中から対象を自動的に検出することができます。 YOLOにより物体を検出しているときの動画の例も挙げます。以下の動画をご覧ください。 YOLOモデルは物体検出において非常に有名で、様々なバージョンが公開されています。この中でも、ネットワークがシンプルで、比較的高速かつ高精度に物体検出ができる、YOLOv2についてまとめたいと思います。YOLOなどの物体検出ネ…

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

    この記事は、MATLABアドベントカレンダー(その2)の19日目の記事として書かれています。 qiita.com はじめに 私が数式を含むブログ記事を投稿するときの手順を紹介したいと思います。あくまで私が気に入っている方法であり、他にもよい方法があると思います。参考になれば幸いです。 例えば、以下のような数式が多い記事をブログ投稿したい場合を考えます。 kentapt.hatenablog.com そのような場合は、ここで紹介する方法が効果的でした。 大まかな手順として、以下の流れを想定しています。 1 内容をまとめ、ブログに掲載する数式を用意する 2 記事を執筆する 3 ブログ投稿がしやすい…

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

    この記事は、MATLABアドベントカレンダー(その2)の11日目の記事として書かれています。 qiita.com 本記事の執筆にあたっては、 赤穂先生の「カーネル多変量解析」を非常に参考にさせていただきました。 カーネル多変量解析―非線形データ解析の新しい展開 (シリーズ確率と情報の科学) 赤穂 昭太郎 本 通販 Amazon 非常にわかりやすい書籍であり、大変おすすめです。 なお、本記事では、機械学習の中でも非常に有名な、サポートベクトルマシン(SVM)を理解するうえで非常に重要な手法(カーネル法)を扱います。機械学習を学習している方の参考になれば幸いです。本記事は自分の勉強の…

  • t-SNEの勉強メモ

    この記事は、MATLAB/Simulink Advent Calendar 2022の6日目の記事として書かれています。 qiita.com 1章 はじめに t-SNEと呼ばれる方法を用いて、高次元データを、2次元平面や3次元空間にプロットすることができます。 例えば、以下の図は、MNISTという0から9の手書き数字の画像の情報を2次元平面にプロットしたときの様子です。 0から9の画像のサンプルデータが、それぞれクラスタを形成しており、うまく可視化できていることがわかります。 PCA (主成分分析)と呼ばれる方法を用いて、次元圧縮を行い、上のような2次元や3次元上でのプロットを得ることもできま…

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

    この記事は、MATLABアドベントカレンダー(その2)の5日目の記事として書かれています。 qiita.com 1 はじめに 前回の記事では、以下のように、線形回帰(単回帰分析)を行った時の、式の傾きや切片の求め方についてまとめました。 kentapt.hatenablog.com 例えば、以下の図では、y = 0.33x + 50.2 という式が得られています。この傾きや切片を、xとyのペアからどのように求めるか、ということでした。 具体的には、傾きは、 ...(前回の記事の17) であり、切片については以下の通りでした。 ...(前回の記事の18) しかし、文量が多くなってしまい、上の図中…

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

    この記事は、MATLABアドベントカレンダー(その2)の4日目の記事として書かれています。 qiita.com 1 はじめに 以下の図のように、エクセルなどで、直線で回帰(フィッティング)した経験がある方も多いかもしれません。 以下の図では、y = 0.33x + 50.2 という式が得られています。 例えば、これにより、データ同士の相関関係を知ることができ、非常によく用いられる解析方法です。 このような線形回帰(単回帰)の説明としては、以下のページがわかりやすかったです。 回帰分析(単回帰分析)をわかりやすく徹底解説! udemy.benesse.co.jp 実は簡単! 10分あれば回帰分析…

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

    この記事は、MATLABアドベントカレンダー3日目の記事として書かれています。 qiita.com この記事では、iPhone LiDARで取得した3次元点群をMATLABにて読み込み、さらに、地図(地球)上で可視化する方法について紹介します。言語はMATLABを使用します。 3次元点群を取得するためのアプリはScaniverseを用いました。 scaniverse.com 詳しい使い方は、以下の記事がわかりやすかったです。ここでは、すでにiPad LiDARにて計測し、PCに転送した状態から始めます。 note.com PCに転送(エキスポート)する方法は以下の図の通りです。右下のShare…

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

    1. はじめに この記事では、FLIR社の赤外線カメラを用いて、取得した画像をRGB画像に変換する方法について述べます。ここでは、Pythonを用います。 赤外線カメラの詳細や、そのカメラの応用事例については以下のページが参考になりました。 atcl-dsj.com 本記事では、FLIR社製の赤外線カメラを用います。以下に、そのカメラの例を掲載します。 画像出展 www.flir.jp FLIR社の赤外線カメラで取得した画像の例を以下に示します。温度によって、色分けされて示されています。この画像では、約22度から27度の範囲の温度が観測されています。 また、このカメラは、同時にRGB画像(色画…

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

    この記事では、以下のように、3次元点群にグリッドを重ね合わせて表示する方法について紹介します。メインのコードである、VoxelPlotter.mは、以下のMATLAB Centralにて公開されているものを参考にしました。 jp.mathworks.com メインコード アイデアとしては、voxelPlotter.mの結果と、点群をスケールが合うように同時にプロットするということです。なお、voxelPlotter.mについても、グリッドの透明度を変えられるように微調整しています。この記事で用いられたコードは以下のページにアップロードされています。 github.com clear;clc;c…

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

    前回のMATLAB編に続き、Python編です。こちらのPython編では、簡単な例にとどめます。 MATLAB編は以下のリンクからアクセスできます。 kentapt.hatenablog.com 今回のPythonコードは以下に保存されています。 github.com argparseを用いた簡単なPythonコードの例 基本的な考え方や書き方はMATLAB編と同じで、コマンドの例が微妙に異なります。 # import module import argparse # argparseの中身の定義 parser = argparse.ArgumentParser() parser.add_a…

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

    MATLABであれば、livescript、Pythonであれば jupyternotebook (lab)といった、対話型の開発環境を筆者は使うことが多いのですが、コマンドラインで、引数を指定して実行できるようにする機会も多くあります。そこで、MATLABやPythonで、そのような指定(argparse)を使うときのメモを残します。 また、少し違う書き方もできて、そちらのほうが便利かもしれません。本記事のほかに以下のような方法もあります。 qiita.com なお、本記事のコードやデータは以下のページに保存されています。 github.com argparseの例 ここでは、以下のMATL…

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

    この記事では、exiftoolを用いて、動画や画像のメタ情報の閲覧や、編集を行う方法について述べます。 画像のメタ情報の例 Windowsで画像上を右クリックし、プロパティを表示させると、以下のように画像の情報(例:画像のピクセル数やカメラ名、カメラの焦点距離)が確認できます。より詳しい情報を知りたい場合や、それらの情報を更新したい場合にはexiftoolが便利です。このページでは、exiftoolsを用いて、画像のメタ情報を読み込み、さらに、その位置情報を更新する方法について述べます。 この記事で用いた画像やスクリプトは以下のgithubのページにアップロードしています。 github.co…

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

    1. はじめに この記事では、特定のフォルダの中に存在するファイルを、サブフォルダも含めて取得する方法についてメモを残します。 ここで用いたコードやファイルは以下のページにアップロードしています。 github.com 2. コードについて 2.1. MATLAB dir関数を用いる際に、\**\と指定すればよい。 % サブフォルダも含め、txtデータを集める txtList = dir(fullfile(pwd, 'folder1\**\*.txt')); %get list of files and folders in any subfolder % 拡張子を含めず、あらゆるファイルを取…

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

    この記事では、サポートベクトルマシン(SVM)を用いて、分類を行ったときの、分離のための超平面を可視化することを行います。PythonとMATLABにて書いてみたいと思います。ここでは、3つの変数を説明変数として用いて、3次元プロットによる可視化を行います。 可視化におけるポイントは、 1. XYZの範囲内でその値を小刻みに変更しながらグリッドを作成する 2. そのデータに対してSVMによる分類を行う 3. そのときの結果の中で、分類平面に近いデータを取り出す 4. そのデータを訓練データと重ね合わせて表示する ということです。 コードは以下のページにアップロードしています。 github.c…

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

    この記事では、Pythonを用いて、PDFファイルを読み込んで、画像に変換すること、さらに、画像からPDFに変換する方法について調べたのでメモとして残したいと思います。 ここでのスクリプトで特定のことをしたいわけではなく、Pythonを用いたPDFの読み込み、書き込みの経験がなかったので練習をしたいと思いました。大量のPDFの処理の用事などができたら、今後利活用できたらよいなと考えています。ここでの内容は、 - PDFを画像に変換して、各種端末で見やすくする - 大量の画像を一気にPDF化して保存する といったことにつながるのではないかと考えられます。このほかにも、皆様の役に立てば幸いです。 …

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

    1. はじめに Pythonのsubprocessの使い方について、自分用のメモとして残したいと思います。subprocessの使い方に関しては、以下のYOUTUBEがわかりやすかったです。subprocessでは、 マルチプロセスによる計算を行う Pythonからbashやコマンドプロンプトなどの操作を行う といったことが可能になります。 マルチプロセスの内容については、以下の動画がわかりやすかったため、割愛させていただきます。 www.youtube.com 2. subprocessの使い方 2.1. 基本的な書き方について 2章のコードは、さきほどのYOUTUBEの内容を参考にさせてい…

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

    数字の表記を、1234ではなく、001234のように特定の数字などで埋めたい場合があると思います。この記事では、MATLABとpythonにおけるコードについて自分用のメモとして残したいと思います。例えば、 123, 18, 1931...のように桁数の違う数字を含むファイル名において、00123.jpg, 00018.jpg, 01931.jpgのようにすると統一性が出る file1.txt, file2.txt, file10.txtを並び替えると、file1.txt, file10.txt, file2.txtという順番になる場合がある。ファイル名からゼロで埋めると数字の大きさ(小ささ)…

  • シェルスクリプト内で、Conda環境をアクティベートし、実行する方法に関するメモ

    1. はじめに Windowsのバッチファイルのように、Ubuntu上で、複数のpythonのスクリプトをまとめて実行したいなと考えました。condaを用いて環境構築をしていたため、その環境も呼び出したうえで、複数のスクリプトを実行します。本稿はその方法についての備忘録です。 2. うまく行った方法 myScript.bashという名前のファイルを作成し、例えば、以下のように記述します。 source /home/OsakaTaro/anaconda3/etc/profile.d/conda.sh # OsakaTaroはユーザー名。適宜変更する conda activate myEnviro…

  • Linux (Ubuntu)でMATLABを使用する際、Windowsのショートカットキーを割り当てる方法について

    1. はじめに LinuxでMATLABを使用する際、デフォルトではWindowsと異なるショートカットキーが割り当てられていたため、不便でした。コピーやペーストなどのショートカットキーをWindows版のMATLABと同じように設定したいと思いました。 2. 方法 ホームタブの「基本設定」をクリック キーボード=>ショートカットをクリック アクティブ設定をWindows既定の設定に変更する このような操作で簡単に変更することができました。普段Windowsを使っている場合は、同様にショートカットキーを使えるので便利だと思います。 参考ページ jp.mathworks.com

  • EC2の接続時に"Permissions for 'error.pem' are too open. It is required that your private key files are NOT accessible by others."というエラーが出る

    以下のようなエラーの対処に対する備忘録です。AWSのEC2で計算する際、EC2インスタンスに接続する際に以下のようなエラーが出ました。OSはWindowsを使っていました。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'error.pem' are too open. It is required that your private key files are NOT accessible by …

  • MATLABのNormalize関数で使った平均と標準偏差を保持して、未知データに対しても同じ演算をする+もとのスケールに戻す

    データ分析において、対象のデータをスケーリングしたい場合、例えば、平均0・分散1になるよう変換する場合が多いと思います(標準化)。MATLABでは、normalize関数を用いれば1行で済むため、非常に便利です。しかし、同様の式を用いて、別のデータも標準化したいときがあります。または、標準化したものをもう一度もとのスケールに直したい、といったこともあります。その場合は、normalize関数の戻り値に、その標準化に用いた平均値・標準偏差を指定することで、そのような追加の変換や、もとのスケールへの再変換が簡単に行えます。 公式ドキュメントは以下の通りです。 jp.mathworks.com はじ…

  • 深層学習と物体追跡の手法を用いた梨の果実個数カウンティング

    共同研究先のはてなブログに、私の過去の取り組みを投稿しました。 この記事の内容について、ご興味がございましたら気軽にご連絡いただければ幸いです。 techblog.culta.jp

  • 画像の2値化の方法を数式から理解したい

    1 はじめに この記事では、画像を対象として、2値化処理(2値化とする)の方法を説明します。メインパートでは、丁寧に式展開をしながら2値化の方法(判別分析法)の説明を行いました。もし何か間違いがございましたら教えていただけますと幸いです。 この記事の本文のファイル(md形式およびPDF形式)や、この記事のデモのコード(MATLAB, Python)は以下のページにアップロードしています。自学自習や勉強会など何かの役に立てばうれしいです。 github.com なお、この記事は、デジタル画像処理の2値化のページを参考にしていて、そのページを詳しく書いたような構成になっています。2値化をベースにし…

  • 主成分分析 (Principal Component Analysis: PCA)を簡単に、かつわかりやすく説明したい

    0章:はじめに この記事では、主成分分析や統計に関して初心者の方でも直感的に、かつある程度数式も合わせて理解できるようになることを目指しています。 筆者の勝手な理解をベースに執筆しているため、一部、曖昧な/厳密でない 表現があるかもしれません。 筆者の理解に従い、自身で主成分分析を1からコーディングし、数値計算のソフトウェアによって主成分分析をした結果とおおむね結果が一致していることを確かめています。これにより筆者の理解が正しいか確認いたしました。 もし間違いなどあれば教えていただけると幸いです。 本記事の原稿のマークダウンファイルや、PDFファイルは以下のページにアップロードしています。文字…

  • PR曲線による平均適合率の計算について勉強&自分で書いて確認してみた

    この記事では、物体検出を行ったときの精度の指標である、平均適合率について扱います。 この記事を執筆するにあたって、原田達也先生の「画像認識」の7.7.2 平均適合率を参考にいたしました。詳しくはこの本をご参照ください。 www.amazon.co.jp はじめに ここでいう物体検出とは、以下の図のように、画像中から関心のある物体を検出することです。検出された物体は黄色の箱(以下、バウンディングボックスという)で囲まれていることがわかります。また、下の図では、あえて少し車の領域からずらしてバウンディングボックスを作成しています。 これを検出結果だとすると、この検出の結果を評価するためには、どうの…

  • Directions API (Google Maps Platform) を jupyter notebookからコールしてルート間の距離と所要時間を取得する

    この記事では、Directions API(Google Maps Platform) を jupyter notebookからコールして、東京ドームから山手線の各駅までの距離と所要時間を自動的に取得する方法について勉強したのでここにまとめたいと思います。 例えばスマホにインストールしたGoogle Mapのアプリから手動で任意の2地点を入力すれば、そこまで移動するときの距離や時間がわかりますが、複数の地点があれば毎回入力するのは大変です。そこで、ここでは、任意のまでの距離や時間を自動的に計算すべく、Directions APIを利用します。 距離と時間を計算するコードはこちらの、kngsym…

  • CNNのためのデータ拡張法を勉強&簡単に実装してみた (RandomErasing, CutOut, MixUp, Sample Pairing)

    qiita.com この記事はMATLAB/Simulink Advent Calendar 2021の9日目の記事として書かれています。 また、過去の記事はこちらのブログトップからアクセスいただけると幸いです。 kentapt.hatenablog.com はじめに 本記事では、畳み込み込みニューラルネットワーク(CNN)に役立つ、データ拡張の手法を勉強したので、簡単にまとめ、実装の例を示したいと思います。間違いなどがあれば教えていただけますと幸いです。 データ拡張では、分類や物体検出をする際に、回転や、反転、移動、せん断、色味の変更などを加えることで、訓練データのバリエーションを高め、認識…

  • 露出補正の最先端手法を勉強&動かしてみた (Afifi et al., CVPR, 2021)

    はじめに この記事は、MATLAB/Simulink Advent Calendar 2021(カレンダー2)の25日目の記事として書かれています。 qiita.com 間違いなどがあれば、教えていただけますと幸いです。 こちらの記事で用いたコードはこちらにアップロードしています。勉強会やまとめ資料用、ゼミ活動など、何かの役に立てば嬉しいです。 github.com ここでは、低解像度の画像を高解像化する手法について勉強したため、そのまとめとして紹介します。詳細はもとの論文である、Maffi et al (2021) をご覧ください。 Afifi, M., Derpanis, K.G., Om…

  • pix2pixを勉強&線画から顔画像を生成してみた:前半

    この記事は、MATLAB/Simulink Advent Calendar 2021の23日目の記事として書かれています。 qiita.com はじめに この記事では、pix2pixについて勉強したのでそのまとめと、線画から画像に変換する課題にpix2pixを適用してみようと思います。pix2pixは以下の論文です。間違いなどがあれば教えていただけますと幸いです。 Isola, P., Zhu, J.Y., Zhou, T. and Efros, A.A., 2017. Image-to-image translation with conditional adversarial networ…

  • kentaPtのブログ トップ

    本ブログでは、普段勉強したことなどを備忘録としてまとめています。 深層学習系 検出系 Spatial CNNを用いた車線検出 kentapt.hatenablog.com 姿勢推定 シンプルかつ高精度な手法を勉強&動かしてみた kentapt.hatenablog.com 説明可能AI LIMEを用いた判断根拠の可視化のまとめと実装 kentapt.hatenablog.com Score-CAMを用いた判断根拠の可視化のまとめと実装 kentapt.hatenablog.com 単眼超解像 単眼超解像の手法(VDSR)について勉強&動かしてみた kentapt.hatenablog.com …

  • 単眼超解像(Single Image Super Resolution)手法のVDSR (Kim et al., 2016, CVPR) について勉強&動かしてみた

    はじめに この記事は、MATLAB/Simulink Advent Calendar 2021(カレンダー2)の22日目の記事として書かれています。 qiita.com こちらの記事で用いたコードや画像、この記事の原稿ファイルはこちらにアップロードしています。勉強会やまとめ資料用、ゼミ活動など、何かの役に立てば嬉しいです。 github.com ここでは、低解像度の画像を高解像化する手法について勉強したため、そのまとめとして紹介します。詳細はもとの論文である、Kim et al (2016) [1]をご覧ください。以下の図は、そのイメージです。低解像度の画像を nearest neighbor…

  • コンジョイント分析を用いて、消費者の好みを分析してみよう (勉強まとめ & pythonコード)

    この記事は、Python Advent Calendar 2021の17日目の記事として書かれています。 qiita.com はじめに コンジョイント分析と呼ばれる手法や、pythonによるコーディングについて勉強したため、ここに自分用のまとめとして残したいと思います。間違いなどがあれば教えていただけますと幸いです。参考にさせていただいた記事は末尾にも、掲載しています。 コンジョイント分析とは、いくつかの製品属性を組み合わせた複数の代替案を回答者に提示し、好ましさをランク付けしてもらい、回答者の選好を分析する手法です。コンジョイント分析を用いることで、製品の価格や色、デザイン、品質などの要因が…

  • 説明可能なAI:Score-CAMによる判断根拠の可視化 (Wang et al., CVPR workshop, 2020)

    この記事は、MATLAB/Simulink Advent Calendar 2021(カレンダー2)の18日目の記事として書かれています。 qiita.com はじめに この記事では、深層学習(ここでは、畳み込み込みニューラルネットワーク)で画像分類を行ったときの、判断根拠の可視化に関して扱います。CAMやgrad-cam, LIMEなどが有名ですが、今回はScore-CAMと呼ばれる手法について勉強したのでここにまとめたいと思います。また、勉強のために、私自身で実装も行いました。 LIMEに関しては、私の別の記事で扱っており、こちらも見ていただけますと幸いです。 kentapt.hatena…

  • ナイーブベイズを用いた迷惑メールの検出をやってみた

    この記事は、MATLAB/Simulink Advent Calendar 2021(カレンダー2)の13日目の記事として書かれています。 qiita.com この記事では、ナイーブベイズと呼ばれる手法を用いて、ある文面をみて、それが迷惑メールかどうかを判別します。 注意 筆者はこの分野の全くの素人で、あくまで「入門してみた」という記事になります。間違いなどがあれば、教えていただけますと幸いです。 こちらの記事で用いたコードはこちらにアップデートしています。何かの役に立てば嬉しいです。 github.com MATLAB file exchangeにも紐づいていて、ここからもダウンロードするこ…

  • シンプルかつ高精度な姿勢推定の手法について学んでみた(Xiao et al., ECCV, 2018)

    この記事は、MATLAB/Simulink Advent Calendar 2021(カレンダー2)の12日目の記事として書かれています。 qiita.com 本記事で紹介するネットワークで動画から姿勢推定をした時の結果の例 また、7日目や8日目(カレンダー1)でも記事を投稿していて、もしよろしければこちらもご覧いただけると幸いです。 kentapt.hatenablog.com kentapt.hatenablog.com この記事での取り組みは以下のような姿勢推定と呼ばれるものです。自動的に人間の腕や頭、足の情報を取得できていることがわかります。この手法について、私のほうで論文やコードを見…

  • Explainable AI:LIMEを用いた判断根拠の可視化

    こちらの記事は、MATLAB/Simulink Advent Calendar 2021の8日目の記事として書かれたものです。 qiita.com また、7日目も記事を投稿していて、もしよろしければこちらもご覧いただけると幸いです。 kentapt.hatenablog.com はじめに この記事では、LIMEとよばれる手法を用いて、畳み込みニューラルネットワーク(CNN)によって画像分類を行ったときの判断根拠の可視化(どのような部分を見て、その分類結果に至ったのか)を行います。画像に対して適用するときの仕組みをここでは説明したいと思います。この画像をもととなる論文はこちらになります: LIM…

  • Spatial CNNを用いた車線検出

    この記事は、MATLAB/Simulink Advent Calendar 2021の7日目の記事として書かれています。 qiita.com また、8日目も記事を投稿していて、もしよろしければこちらもご覧いただけると幸いです。 kentapt.hatenablog.com また、ここで用いるコードなどはこちらからダウンロード可能です。 もし、本記事に誤りや誤字が含まれていれば、教えていただけますと幸いです。 github.com はじめに Spatial CNNとよばれる手法を用いて、運転動画から車線検出を行います。ここで得られる結果の例を以下に示します。自分のいるレーンの車線とその横の車線の…

  • MATLAB Mobile(無料枠)とPythonライブラリ folium によるGPSデータのプロット

    このぺージではMATLAB Mobileの無料枠の機能を利用して、MATLAB Mobileをiphoneにインストールして、それを持って移動したときのGPSによる位置情報を地図上にプロットするということを行います。地図へのプロットはpythonやpythonライブラリのfolium等を用いて行います。移動中のスマートフォンのGPSデータを一定時間ごとに保存し、その軌跡を地図上にマッピングすることを行います。今回は都内を自動車で移動したときのGPS情報を描き、さらに23区の人口を色のグラデーションで示してみます。 このページのコードや私の作成したデータに関しては、こちらから入手することができま…

arrow_drop_down

ブログリーダー」を活用して、kentaPtさんをフォローしませんか?

ハンドル名
kentaPtさん
ブログタイトル
コンピュータービジョン・深層学習を簡単に紹介するブログ
フォロー
コンピュータービジョン・深層学習を簡単に紹介するブログ

にほんブログ村 カテゴリー一覧

商用