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

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

機械学習

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 6.0作業全体構成 目次 1. Librealsenseのinstall 2. Opencvのシンボリック…

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

ホストPCから大体ハードウェアのJetson NanoをROSの遠隔操作とsshでログインまでの備忘録目次 1 Jetson Nanoのセットアップ 2.Jetson NanoにROSのinstall 3. Realsense Lidarを「realsense-viewer」写すためLibrealsenseインストール 4.ホストPCからJetson N…

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 目次 1 Intel Realsense SDK インストール 2. realsense-rosのセットアップ 3. ROS…

ROSでc++のコードのコンパイルから実行方法まとめ

本来、実用ではpythonじゃなくてc++を使うことが多いROS。なので、ROSでのc++のコードをコンパイルして実行する方法をまとめとく c++スクリプトの用意今回は待ち状態のServer用pythonスクリプトをcppに書き換えて実行してみる。server用のpythonスクリプトは…

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でセグメンテーションするタスク…

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…

MobilenetベースのBlazefaceをResnetベースに蒸留して性能を移植してみた【機械学習】

Blazefaceはgoogleの訓練済みのデバイス用の顏/手の認識モデルで速くて高性能なモデル。 役割は顔/手の位置とキーポイントを高速に検出する機械学習モデル。 BlazeFaceはMobileNetをバックボーンをベースにして作られてる。今回はやることは1.tfliteのblazef…

顔から性別・年齢推定アルゴリズム(age gender estimation model)の工夫まとめ【機械学習】

人気の「age gender estimation」とかいう、人間の顔から性別と年齢を予測するモデルを作った時の、テクニックを備忘録として忘れないようにまとめとく。目次 1.Age-gender-estimation model本体 2.後処理での工夫 3.予測結果 1. Age-gender-estimation mode…

GCPのAI Platfromでトレーニングジョブの実行(MLops building1)

MLops構築のためにGCPのAI Platformをいじってみる備忘録。 基礎本の代わりにqiitaとかの良記事を自分で動かしてならしてくことにしました。ちなみに今回は「pythonのコマンドとして実行できる形式でパッケージ」でトレーニングジョブを実行。目次 1.実行リ…

弟4回エッジAIコンペ(セグメンテーション) レポート・log【ハードウェア】

SIGNATEの第4回AIエッジコンペに参加したので、そのレポートもかねたログを書こうと思う。機械学習だけじゃなくて、ハードウェアもガチのコンペでした。 目次 1.ネットワークについて 2.C++のアプリケーションコードの工夫について 3.ハードウェアプラットフ…

Vitis-AIを使ってultra96v2上で学習済みモデルを動かすまで【hardware, FPGA, AI】

今回はultra96v2上で学習済みモデルを動かしてみる。この作業がすんなりできれば、論理回路の高位合成とか組み込み部分を除けば、学習済みモデルを作れればドローン制御、自動運転の制御とかいろんなことの礎になる。本家サイト「Ultra96V2向けVitis AI(2019…

PytorchのTransformerでテキストからの音声生成(TextToSpeech)をやってみた【機械学習】

今回はTransformerを改造して、文章から音声を生成してみた。俗に言う、エンコーダ・デコーダ形式のモデル。 プロセスが長くなりそうなので、要点だけ備忘録もかねてまとめようと思う。 目次 1.Transformer-TextToSpeechとは? 2.テキスト前処理 3.Transform…

強化学習で「手押し井戸ポンプ」で水をくむ動作をArduino Unoに学習させる【AI・Hardware】

「手押し井戸ポンプ」は、昔から田舎で使われてる「井戸から手動で水をくむポンプ」のこと(Amazonでも売ってる)。「手押し井戸ポンプ」の水をくむまでの大まかな動作は「押す(down)=>水をくむ(push pump)=>あげる(up)」の行動パターンを、シーソーのご…

webカメラ+Arduino Uno+CNN画像分類(AI)でカギの開錠・施錠システムを作ってみた【hardware,機械学習】

今回はArduinoに機械学習(AI)を埋め込んで、webカメラから読み込んだストリーミング画像の画像分類結果からカギを解錠・施錠できるシステムを作ってみた。機械学習(AI)をハードウェアで実際に取り込んで作ったのはVitis AI以来、今回がはじめて。Arduino系…

VirtualboxでwebカメラのストリーミングからYolov3のreal-time物体検出まで【hardware, AI】

VirtualbBox内でwebカメラを使って動画をスクリーミングしてみた。 またそのストリーミング動画を使ってyolov3のreal-timeの物体検出をやってみようとした。 けど、cudaのインストールが必要らしく、VirtualBox内ではcuda(とマッチするnvdiaドライバー)が…

Ultra96v2高速化の行列乗算IPの作り方とvivadoシュミレーションのやり方まとめ【FPGA,hardware,AI】

ultra96v2でyolov3の高速化をする必要が出てきたので、今回はそのコアになる浮動小数点行列乗算をvivadoで作成してハードウェア(XSAファイル)として出力するまでの流れをまとめた。yolov3高速化の詳細はこちらに簡単に乗ってる。ちなみにテストベンチのシュ…

GKEのkubenetes上でflaskを動かし、curlでPOSTした画像の予測結果を受け取る【機械学習】

flaskで機械学習の学習済みモデルを入れてkubenetes上で動かしてみた。curlで投げて、予測結果を受け取る形式だけど、envoyとかスケーラビリティも意識した構成になってる。kubenetes上での flask動作環境 目次 1.flaskアプリケーションの作成 2.Docker上でf…

PetaLinux上からultra96v2ボードでYolov3の物体検出【FPGA, hardware, AI】

前の記事「Vitis,Petalinuxのインストールから、Vivadoの起動まで【FPGA】-VitisPlatform作りpart2」でVivado, vitis, Petalinuxの環境構築をした。 PetaLinuxの環境構築をしておくことで、linux(PetaLinux)上から直接、ultra96ボードにアクセスできるらしい…

強化学習で三目並べ版の「AlphaZero」を作ったのでその仕組みまとめ【機械学習】

DeepMindが作った世界最強のゲームAIに使われているアルゴリズムが「AlphaZero」の仕組みを利用して、今回は「三目並べ」というゲーム版のAlphaZeroを作ってみた。今回は備忘録として「三目並べ版-AlphaZero」の仕組みを淡々とまとめていく。 目次 1.AlphaZe…

Efficient-Unetで天気画像の予測(パターン認識)リベンジ【機械学習】

今回はこの前の記事で書いた「signateの天気コンペ」の優勝者(天気の専門家ガチ勢)が実装したモデルを、既存のデータでも予測できる構成で個人的に作ってみた。 convLSTMを使わずにUnetにしたのは「予測」タスクではなく、「パターン認識」タスクにしたか…

学習済みのYOLOv3でオリジナルデータに転移学習(finetune)【物体検出】

オリジナルのデータセットにYOLOv3を使って物体検出した。 一から学習せずに、COCOデータセットの学習済みYOLOv3で転移学習してみたのでその備忘録 目次 1.オリジナルデータセットのclasses.txtと学習済みモデルの作成 2.訓練 3.学習結果 1.オリジナルデータ…

HOG+Adaboostで物体検出(object detection)【機械学習】

HOGとの組み合わせはSVMが有名だけど、今回はSVMじゃなく「HOG+AdaBoost」を使った。どっちも精度は同じくらいだけど、AdaBoostの方が2回目以降精度が増すし、汎用性が高いのが特徴。 目次 ・訓練データ・テストデータの収集 ・前処理 ・HOG+AdaBoostで物体…

GitでPR(pull request)を投げるまでと、チームでgitでのコード管理ログ

gitコマンドでbranchを作成してPR(Pull Request)を投げるなど、チームでコード管理したのでその備忘録。 git cloneしてPRを投げるまでの branchの流れ 目次 1. PRを投げるまで 2.PR作成作業 3.キレーなコードの書き方PRを投げるまで # コンソールのコマンド…