アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

機械学習

Good and bad example with MiDaS Depth Estimation (experiment)

I examined why MiDaS can work well or not, depending on images. If Midas work well, there has to be specific patterns. Also there has to be bad patterns either. Then, in order to confirm there would be better and bad pattern for MiDaS Dept…

機械学習でC++の代わりにRustの開発環境構築

機械学習でC++の代わりのコンパイル言語の『Rust』の開発環境を構築したのでその備忘録。目次 1.ubuntuでJupyter notebook 2. opencvでカメラを使ってみる1.ubuntuでJupyter notebook # rustをubuntuにinstall curl https://sh.rustup.rs -sSf | sh source $…

JetPack4.6.0とJetson NanoでPytorchとOnnxでyolov7の物体検出の環境設定(2023/02)

Jetson NanoでPytorchとOnnxで機械学習の物体検出とその環境設定をしたのでその備忘録。 ちなみに2023の2月でJetson NanoのJetPackの最新版は「4.6.0」今回は「4.6.0」で環境構築してみた。 目次 1. versionと必要用語 2. 必要なライブラリのinstall 3. Pyt…

Jetson Nano セットアップ備忘録 (Pytorch , onnxとか動かすまで)

Jetson nanoを使ったのでセットアップの備忘録。「nv-jetson-nano-sd-card-image-r32.3.1(JetPack 4.3)」のページのイメージをMicro SDカードに焼いた。(from qiitaの記事) JetPacはtensorflowの都合でJetpack==4.3にした。パーツ一式はこのサイト「Mac でJe…

物体検出(yolov7)のバウンディングボックスから奥行きの距離(depth)を計算してみた

Jetsonに2つのカメラをつけて、それぞれに物体検出のyolov7で推論をかける。そこで得たbboxの位置座標から視差(disparity)を求めて、奥行きの距離(depth)を求めてみた。その過程と結果の備忘録 1. データセットの用意 2. disparityからdipthを求める手順 3. …

Swiftでファイルをs3にuploadしてみる。

目次 1. cocoapodsをinstallして、Podfileからライブラリをinstall 2. AWSのUpload用のバケットをs3で作成 3. AppDelegate.swiftにS3のupload用のコードに貼り付け 4. SwiftからS3に画像をアップロード 5. s3で画像の確認 1. cocoapodsをinstallして、Podfil…

Yolov7にSinkhorn lossを使って実験してみた

OTA-loss とかOCcostとか話題になってる昨今に絡んで、「Sinkhorn」とかいう手法が気になってた。何でもlossかなんかのmatrixを最適化する手法でSinkhorn lossとかいうのもある。Yolov7を使ってる最中だったので、なんとかYolov7にSinkhornを使ってみたかっ…

1次元のsignal(信号)データの異常検知(信号処理)備忘録

信号データ(1次元の波形データ)を使った「傷あり/なし」の異常検知モデルを作ったので、役に立ったこと、たたなかったこと、とかを備忘録でまとめてく。本来のタスクとちょっとルールを変えて、時系列データ自体が異常かどうかの2値分類タスクにした。目次…

EfficientNet-v2のMBConvライクなレイヤーをtensorflowで自作して精度を検証してみた

EfficientNet-v2が優秀なので、その技術を自分の自作ネットワークに応用して作ってみた。 その結果だけを書いてく備忘録。目次 1. EfficentNetv2の特徴 2. 今回応用した技術 3. 精度(arcfaceあり) 1. EfficentNetv2の特徴・MBConvとFused-MBconv(DepthwiseC…

Analysis of CNN+LSTM with Attentions

I created CNN+LSTM model that has Attention layers in LSTM side.CNN is role of encoder and LSTM is one of decoder. Here, I'll write this as log of my analysis about how to use CNN output as LSTM input, and Attentions that are 'Self-Attentt…

Depth画像から点群データ(Point Cloud Data:pcd)を作る方法

本来は、lidarで取得するpcd(点群データ)をdepth画像から作成する手順。 理由はlidarからだと綺麗なpcdが撮影できない感じがしたから。なのでdepth画像とrgb画像を合わせてpcdを作ることにした。目次 1. lidarから直接pcdを作成する 2. depth画像とrgb 画像…

Jetbotをgazeboで動かすまで その2

前回の続きでgazeboで動かすのに必要なところをまとめてくだけ。 シュミレーション環境にはturtlebot3を使った。 目次 1. gazeboの環境設定 2. JetbotのXacroファイルをgazeboに対応させる 3. gazeboのコントロール用のdiff_drive_controllerのパラメーター…

Jetbotをgazeboで動かすまで その1

Jetbotという車輪型ロボットのRvizのみ対応のコードをgazeboに対応させて、シミュレーション上で動かせるようにした。 Rviz用のJetbotファイルをgazeboで動かすまでをざっとまとめた備忘録その1目次 1. gazeboに対応させる手順 2. 今回の概要 3. gazeboプラ…

XacroでURDFを簡略化して記述

前回書いた記事のURDFファイルをXacroで書き直した。trafalbad.hatenadiary.jpかなり簡単に書けたので、おすすめ。 目次 1. xacroファイル 2. xacroの特徴 3. collisionタグとinertialタグの挿入 4. 表示 1. xacroファイルcar_robot.xacro <robot name="macroed" xmlns:xacro="http://ros.org/wiki/xacro"> <xacro:property name="width" value="0.2" /> </xacro:property></robot>

robot_state_publisherでURDFファイルのロボットをrvizで表示する。

URDFファイルで記述したロボットのシミュレーションロボットを動かすための手順は 1. Gazeboの起動 2. ロボットモデルをrobot_descriptionにloadする 3. robot_state_publisherの起動 4. ロボットモデルをGazebo上にスポーンさせる(urdf_spawner) 5. ロボッ…

自宅のWifiネットワーク環境をHusarnetでVPN化。ROSでホストPCとJetson nanoのVPN遠隔操作

wifiの代わりにVPNのHusarnetを設定した。このおかげで、ホストPCとjetson nano遠隔通信がほぼどこでも行えるようになった。 OpenVPN、WireGuardとかSoftEther VPNでもいいけど、HusarnetがROSをターゲットにしててかなり相性がいい。 VPNネットワーク図 注…

realsense lidarで取得したdepth(深度)画像をrosbagでpng画像として保存する方法

depth(深度)画像をbagファイルに保存してから、pngの画像に変換して保存する方法。 目次 デモ:lidarでcolor画像をbagファイルに保存してjpegで保存 1. realsense-viewでbagファイルの作成 2. realsense-rosで点群/depth画像の表示 3. depth画像をbagファ…

ROSで画像を圧縮してJetsonからホストPCへ遠隔で送信

画像を圧縮してJetson側からホストPCに送信して保存してみた。 そのとき圧縮効果でどれだけ速度が上がったのかを、webカメラとlidarの両方で調べてみたのでその備忘録。結果からいうと、web(USB)カメラとLidar両方で、速度向上の効果があった。 ちなみに圧縮…

Jetson Nano上のRealSense-Lidar(L515)とホストPCをROSで遠隔通信してみた

今回はJetson Nano上でRealsense Lidar(L515)を動かして、遠隔通信でデータをホストPCに送るまでの備忘録環境 ubuntu 18.04.5 LTS CMake 3.10.2 Python 3.6.9 Opencv 4.1.1 JetPack 4.3作業全体構成 目次 1. Librealsenseのinstall 2. Jetson nanoにrealsens…

PCからJetson NanoをROSで遠隔操作とsshログインするまで

ホストPCから大体ハードウェアのJetson NanoをROSの遠隔操作とsshでログインまでの備忘録目次 1 Jetson Nanoのセットアップ 2.Jetson NanoにROSのinstall 3.パッケージ等の作成 4.ホストPCからJetson NanoをROSで遠隔操作 5. ホストPCからJetsonへsshでログ…

ubuntu 20.04のROSでRealSense Lidarのセットアップ

ROSでLidarを起動してみるまでのセットアップ手順 環境 ・Ubuntu 20.04 ・ROS noetic ちなみに製品は「Intel RealSense LiDAR Camera L515」。 Note: Set up at 2022/01/13 realsense Lidar一覧表 目次 1 Intel Realsense SDK インストール 2. realsense-ros…

ROSでc++の引数(argv)をlaunchファイルで渡す方法

ROSでのc++のコードで引数argument (argv)をlaunchで渡す方法のまとめ。 c++スクリプトの用意簡単なcppを準備。cloud_loader.cpp #include <ros/ros.h> #include <sensor_msgs/PointCloud2.h> #include <pcl_conversions/pcl_conversions.h> #include <cloud_common.h> class CloudLoadingHandler { public: CloudLoadingHandler(ros::NodeHandle &nh, c</cloud_common.h></pcl_conversions/pcl_conversions.h></sensor_msgs/pointcloud2.h></ros/ros.h>…

ROSで独自Service用ファイルを作ってService通信を試す

ROSの通信で頭の隅に置いとく知識・ROSで行う通信(Topic通信とか)はmsgファイルのデータ型で行う。 ・Service通信も拡張子がsrvのファイルのデータ型で行う。 備忘録なので独自設定のservice通信を動かすまでの過程を、淡々とまとめるだけの構成。目次 1. …

ROSの基本プログラムのTopic通信(非同期通信)を動かす

今回はROSの基本のPublisherとSubscriberを使ったROSの基本プログラムtopic通信(非同期通信)をうごかしたので、その備忘録。仕組みとしてはこんな感じ・Topic :データを書き込む場所(非同期通信のメイン) ・Service :publisher側でsubscriberの結果を受…

ROSのインストールと基礎動作確認まで

ロボットを動かすミドルウェアrosを使うために、rosのinstallと簡単な初期動作の備忘録。 rosのバージョンはNoetic。ROSのバージョン表 ディストリビューション名 Ubuntuのバージョン サポート期限 Indigo 14.04 2019年5月 Kinetic 14.04 2021年5月 Melodic …

SAR画像(VV, VH)の散乱強度と地上の植生状況(tif画像)との相関を調べてみた

やることは大雑把に言うと、SARの散乱強度から地上の植物の生育状況を予測するためにSAR画像とground画像(植生状況を表す地上の画像)の相関関係を調べる。(データはQGISで作成)概要の類似問題の詳細はこのサイトを参考に。 主な概要 ・SAR画像を説明変数に…

pythonの並行処理・並列処理コード集の備忘録

pythonで並行処理・並列処理系のコードの備忘録 ・multiprocessing ・concurrent.futures ・thread ・古いPython2系のバージョンだとこのモジュールしかなかったりするものの、基本的には使い勝手が悪いので使わない。・Python3系では間違って使わないように…

衛生系のデータGeoTiffをいじるための「QGISツール」の操作 part1

今回衛生データをいじるためにQGISというツールになれるために色々いじってみた。 のでその備忘録part1。目次 1.GDALをinstall 2.QGISツールのdownload 3.QGISをいじってみる-データdownload 4.QGISをいじってみる-プラグインの追加 5.QGISをいじってみる-フ…

yolov5とDeepSortでマルチスレッドのリアルタイムtracking物体検出【機械学習】

yolov5とDeepsortとかいうtrackingのアルゴリズムを使ってtrackingの物体検出をしてみた。最終的にpythonのGUIツールtkinterでマルチスレッド化して動かした。全体像備忘録として使った技術をまとめてく。目次 1.yolov5 2.trackingアルゴリズム「DeepSort」 …

衛星のSAR画像-セグメンテーションコンペの備忘録

衛星データのSAR画像を用いたセグメンテーションのコンペがあったので、その際の使ったコードとか手法の備忘録。コンペ内容は事情により省略。手法だけまとめてきます。大雑把に言うと、過去と現在の画像から特定の領域を0, 1でセグメンテーションするタスク…