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

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

衛星の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の記事) 最新バージョンはJetpack==4.5.1だけど4.3に合わせた。パーツ一式はこのサイト「Mac…

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…

Google openImage Datasetでyolov4のデータセットをdownload & annotationファイルの作成

今回はgoogle open Image datasetのyolov4データをdownloadする方法。google open Image datasetは物体検出からセグメンテーションまで良質なデータが揃ってtて、v1〜v6まである。直でdownloadすると割と面倒。(調べるのがめんどい)なので今回は物体検出の…

M1 MacBook Air のsetupの記録

M1のMac、2021/04の時点で、brewはいかれてるは、tensorflowはinstallできないはで普通に使えない。 試行錯誤した時のメモ。 時系列順に実行した記録。 python3とpip3のinstallpython3.9にtensorflow非対応なので、python3.8に下げる。まずIntelと混ざるのを…

GCSの画像を使ってGCRのDockerコンテナでAI Platformのトレーニングジョブを動かす【MLops building2】

今度はGCSにuploadした画像を読み込んで自前スクリプトをDocker化して、GCRにpush。 それからAIplatformでトレーニングジョブを実行してみる。おおおまかにここのチュートリアルを参考にしてDockerをGCRにpushしてから、トレーニングジョブを実行してみた。…

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

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

コーディング試験-思考力錬成用-応用問題 from Codility at 2021/01

Codility problems2021/01月の記録です。Codilityの難易度 「PAINLESS」<「RESPECTABLE」<「AMBITIOUS」 の順でむずくなってるまずは分割統治法で簡単なの解いてみて、test=> 汎用的なコード書くこと エラーはpythonでも、javaとかc++でもググって応用して…

コーディング試験用基礎問 from Letcode

Letcode problems 1. Two Sum # exactly one solution Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1].class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: # …

コーディング試験用基礎問 from HackerRank

HackerRank Interview Preparation Kit Type : Array Arrays: Left RotationExplanation When we perform left rotations, the array undergoes the following sequence of changes:Sample Input 5 4 1 2 3 4 5Sample Output 5 1 2 3 4 Solution def rotLeft…

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

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

Unetでsigmoidとsoftmaxを使う方法とcompileまでまとめ

アプリケーション作成時にDPU対応、非対応の最終層sigmoidとsoftmaxをUnetで使う方法の備忘録。 目次 1.Unetで最終層(活性化関数=activation)がsigmoidのとき 2.Unetで最終層(活性化関数=activation)がsoftmaxのとき 3.追記:SeparableConv2Dでもsoftmaxを使…

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

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

UbuntuでSDカードのEXT4とFAT32のパーテションの作り方

ubuntuでSDカードのパーティション作成のメモ目次 1.ubuntuをmacにインストールする 2. ubuntuを起動、SDカードの確認 3.パーティションの作成 4.GUIでパーテイションの内訳を確認してみる 追記.Ffrom CUI 1.ubuntuをmacにインストールする1.USBカードを差し…

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系…

Arduino UnoとPCをシリアル通信させる方法と参考コード集まとめ【hardware】

ArduinoとPCとの情報のやりとりはシリアル通信でする。このサイトを参考にした。深層学習(DNN)にはシリアル通信は必須なので、やり方とデモもかねて動かしたコードをまとめていく。目次 1.Arduino Unoのシリアル通信の設定 2.Arduino UnoからPCへのデータ送…

Arduino Unoを動かす基本コードと環境設定方法【hardware】

ラズパイの一種、「Arduino UNO」の基本的な動作をさせる際のコード集(個人的メモ)。・Arduinoを動作させるまでの環境設定 ・MacにUSBを使ってUbuntuをインストールする方法も簡単に書いた。 目次 1.LEDを点滅させる 2.LEDをだんだん明るくさせる 3.Arduin…

udmabufとAXI DMA転送で行列乗算IPをultra96v2上で動かすまで【hardware, fpga】

前回作った行列乗算IPのXSAファイルを使って、ultra96v2の実機上で動かしてみた。udmabufとAXI DMA転送を行うことで、行列乗算IPをハード側のプログラムに直接組み込むことができる。これを使えばDNN(Yolov3とか)などの高速化のテクニックにも使える。udmabu…

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…

Vitis IDEでultra96向けplatform作成と、ultra96v2で動作確認するまで【avnet,hardware】VitisPlatform作りpart4

今回は・Vitisプラットフォーム(Vitis IDE)でultra96向けプラットフォームを作成・ultra96v2で実際に動作確認するところまでやってみたいと思う。本家サイトのラストの部分まで。 今回のpart4でこの部分ができる。 目次 1.ultra96向けプラットフォームの作成…

ultra96v2の動作に必要な「BIFファイル」作成、vitis IDEの立ち上げまで【FPGA】- VitisPlatform作りpart3

前回の続編のpart3。Vivadoでultra96のデザインブロックとかXSAファイルを作成した後、PetaLinuxでVitisプラットフォーム(vitis IDE)立ち上げまでやっていく。part3の作業で完了するのは「vitis IDE」構築のvitisの部分。 メインでにやること・ultra96の動作…

Vitis,Petalinuxのインストールから、Vivadoの起動まで【FPGA, avnet】-VitisPlatform作りpart2

今回はVitisPlatfrom構築に必要な「Vitis、Petalinux、その他関連ツール」のインストール。 「Ultra96の開発環境(Vitis2019.2版)」をメインに参考にした。 Vitisプラットフォーム(vitis IDE)はVivado起動後に、「Ultra96用Vitisプラットフォームの作り方(BA…

ultra96v2の環境の構築。仮想環境のubuntuとMacの外付けHDDをマウントするまで -VitisPlatform作りpart1【fpga, avnet】

・1.ultra96-v2動作に必要なもの 「はじめてのUltra96 必要なもの」によると、Ultra96-v2に必要なものは、買った付属品以外に、 ・「Vitisプラットフォーム(vitis IDE)」という開発環境の構築・環境構築用OS ubuntuが必要らしい。 ・2.まず自分がやること Ul…