前回から大分間が開いてしまいましたが、見守りカメラ作成に向けた第三回目をやっていきます。 masaeng.hatenablog.com 今回はUSBカメラで撮影した動画をWebサイト上でリアルアイムに表示する方法について書いていきたいと思います。 ⓪USBカメラをラズパイに…
本業の方がバタバタしており、なかなかブログの更新ができておりませんでした。「ラズパイで見守りカメラを作る」がまだ完成していませんが、先日G検定を受験したので、当日までの勉強方法、試験内容、感想等をまとめておきたいと思います。 ちなみに結果の…
見守りカメラ作成に向けた第二回目はWebサーバーです。 masaeng.hatenablog.com カメラの映像や過去の温度データを参照するため、ラズパイにWebサーバーを立てて、スマホやPCからこのサーバーにアクセスするようにします。 今回はWebサーバーを立てるところ…
以前、顔認識を行うAIモデルである、Facenetを動かしたときにTriplet lossについて少し触れました。 masaeng.hatenablog.com Facenetは顔の類似度を特徴ベクトルの距離で表すことで、大量の顔画像を使って学習することなく、数枚の顔画像だけで顔照合ができ…
今回から見守りカメラに必要な機能を作っていきたいと思います。 masaeng.hatenablog.com まず初めはラズパイからLINE通知をする方法です。温度センサーをラズパイにつないで、測定した温度を定期的にLINEに通知するプログラムを作っていきます。 LINE notif…
前回、電子工作の成果物として、踏切を作ってみました。 masaeng.hatenablog.com 次回作品はどんなものにしようか、あれこれ算段してみた結果、次はラズパイを使って見守りカメラを作ってみようと思います。イメージはこんな感じです。 具体的な機能は●スマ…
先日、AIに関するニュース記事を見ていて、物体検出の新しい手法が発表されたと、大々的に報じられていたものがあったので、非常に気になっていました。DETR(End-to-End Object Detection with Transformers)というタイトルで、NMSなどの人手による設計をな…
前回Tensorflowの使い方について記事にしました。 masaeng.hatenablog.com しかし、よく調べてみると、この記事で書いたことはTensorflow 1.Xについての話で、Tensorflow 2.Xでは考え方が変わっていることが分かりました。 具体的にはTensorflow 1.XはDefine…
KerasではImageNetのデータセットで学習した画像分類のモデルが準備されており、ダウンロードして使用することができます。Applications - Keras Documentation Mobilenetの学習済みモデルを使おうとしたときに少し手こずったところがあったので備忘録として…
前回はTensorflowを使うにあたっての考え方をを記事にしました。 masaeng.hatenablog.com 今回はGithubに上がっていたソースコードをベースに、具体的にDeep Learningの学習、推論をするときの基本的な記述方法について書いていきたいと思います。 ①ネットワ…
前回はKerasの使い方を整理しました。 masaeng.hatenablog.com イチからネットワークを作るときはKerasで問題ありません。しかし、Tensorflowで作られたオープンソースのモデルを修正したい場合、Kerasだけの知識だけでは思い通りのことができないことが多く…
これまでいくつかのDeep Learningを用いた物体検知のモデルを試してきました。公開されているPretrained modelを用いて、画像の入力をUSBカメラから取得した画像に、出力を入力画像に検知結果を表すバウンディングボックスを重ねたものにインターフェースを…
これまで学んだラズパイの動かし方を応用して、子どもと遊ぶための踏切の遮断機を作ってみました。 仕上がりはこんな感じです。子どもと一緒に作ったら結構喜んでくれました! 【電子工作】ラズパイで踏切の遮断機を作ってみた この記事では簡単に作り方をご…
以前、シェルスクリプトでフォルダ内の複数ファイルに対して同じ処理を実行する方法について記事を書きました。 masaeng.hatenablog.com 今回は、Pythonコードで同じことを行う方法についてまとめたいと思います。 サンプルコード 以下は引数で指定したディ…
前回、ラズパイでDCモーターを動かしてみました。 masaeng.hatenablog.com DCモーターでは回転角度を制御できないため、今回はステッピングモーターを制御することに挑戦しました。事前に他の方がどのように制御されているかを調べたところ、ライブラリを使…
仕事でちょっとしたPythonのコードを書くときに、よく引数を渡す方法を調べているので個人的な備忘録のためにまとめておきます。これをコピペすれば作りやすいはず! import argparse def main(): # parserを作成 parser = argparse.ArgumentParser() #add_a…
ラズパイを使ってハードウェアを制御するシリーズ、第5回目はPWM通信です。今回はPWM制御でモーターの回転速度を制御してみました。 PWMとは? PWMはPulse Width Modulationの略で、パルス波のデューティー比を変化させて変調する変調方式のことです。デュー…
ラズパイを使ってハードウェアを制御するシリーズ、第四回目はSPI通信です。前回と同じく、加速度センサーをラズパイに接続して動かしてみました。 SPIとは? SPIは Serial Peripheral Interface の略でデバイス同士を接続するシリアルバスの1種です。I2Cと…
ラズパイを使ってハードウェアを制御するシリーズ、第三回目はI2C通信です。今回は実際にデバイスをラズパイに接続して動作確認を行ったので、その手法も合わせてまとめておきたいと思います。 I2Cとは? I2Cは Inter-Integrated Circuit の略でアイ・スクエ…
以前、ckptからpbへの変換方法をブログに書きましたが、今回はKerasのh5/hdf5形式からckptへ変換する方法を調べましたので、ここにメモしておきます。 masaeng.hatenablog.com 変換方法 私の環境でうまくいったサンプルコードです。 from keras import backe…
仕事で5Gを扱うことになり、いろいろな文献を読み漁って5Gの規格を調査しました。これだけ話題となっている技術で、すでにサービスが開始されようとしている段階で今更感があるのですが。。。 前置き:どのようにして調査したか 初めは英語の規格書にチャレ…
前回の更新からだいぶ間が開いてしまいましたが、また勉強したことのアウトプットを再開していきます。 今回は今までとはちょっとテイストが変わりますが、表題の通り、AIに関して何も知らなかった私がどのようにAIを勉強して理解できるようになったかを書い…
久しぶりにGITHUBで公開されているDeep Learningのネットワークを動かしてみました。今回はtensorflowのソース内にあるstruct2depthです。慣れていればどうってことないのでしょうか、初見でつまずいてしまったので、手順を記録しておきます。 struct2depth…
今回はmotoさんの「転職と副業のかけ算」という本を読んだので、学んだことを書いていきたいと思います。 転職と副業のかけ算 生涯年収を最大化する生き方 作者: moto 出版社/メーカー: 扶桑社 発売日: 2019/08/09 メディア: 単行本(ソフトカバー) この商…
技術者という仕事をやっていてもアイデアを求められることは常日頃あります。そのような周りからの期待に応えたい気持ちは山々なのですが、中々いいアイデアを出せず、悔しさを感じていました。そんな中、書店で「考具」という本を見つけたので、アイデア出…
前回、ラズパイでハードウェアを制御する方法の勉強をスタートしました。 masaeng.hatenablog.com 少し間が開いてしまいましたが、第二回目はUART通信です。UARTはマイコンのデバッグ用通信やデバイス間通信などによく使われていますね。ラズパイでUARTを使…
今回は「PLAY WORK」という本を読みましたので、要点をまとめます。 PLAY WORK プレイ・ワーク 仕事の生産性がグングン高まる「遊びながら働く」方法 作者: ピョートル・フェリクス・グジバチ 出版社/メーカー: PHP研究所 発売日: 2019/07/24 メディア: 単行…
GITHUBで公開されているディープラーニングの学習済みモデルを流用し、USBカメラ映像を入力して推論するというプログラムをいくつか作ってきました。今まで動かしたプログラムは全てモデル1つだけを動かしていましたが、複数の学習済みモデルを組み合わせて…
PC上で学習したモデルを動かす際にはckptファイルで問題ないですが、iOS, Android上や組み込み機器上で動かしたい場合、pb(protocol buffer)形式のファイルが必要となります。ckptからpbへの変換方法を調べたのでメモしておきたいと思います。 ckpt, pbとは…
Tensorflowの学習済みモデル、重みデータのcheckpointファイルをProtocolbuf形式(pbファイル)に変換する際にグラフのノード名を指定する必要があったのですが、ノード名を知る方法がわからなかったので調べてみました。 結論から記載すると、以下の記述です…