ハードウェア技術者のスキルアップ日誌

某家電メーカーの技術者がスキルアップのために勉強したことを記録するブログです

JDLA G検定 2020#3 の総括

本業の方がバタバタしており、なかなかブログの更新ができておりませんでした。「ラズパイで見守りカメラを作る」がまだ完成していませんが、先日G検定を受験したので、当日までの勉強方法、試験内容、感想等をまとめておきたいと思います。 ちなみに結果の…

ラズパイにWebサーバーを立てる

見守りカメラ作成に向けた第二回目はWebサーバーです。 masaeng.hatenablog.com カメラの映像や過去の温度データを参照するため、ラズパイにWebサーバーを立てて、スマホやPCからこのサーバーにアクセスするようにします。 今回はWebサーバーを立てるところ…

【Keras】Triplet lossを使って学習する

以前、顔認識を行うAIモデルである、Facenetを動かしたときにTriplet lossについて少し触れました。 masaeng.hatenablog.com Facenetは顔の類似度を特徴ベクトルの距離で表すことで、大量の顔画像を使って学習することなく、数枚の顔画像だけで顔照合ができ…

ラズパイからLINE通知

今回から見守りカメラに必要な機能を作っていきたいと思います。 masaeng.hatenablog.com まず初めはラズパイからLINE通知をする方法です。温度センサーをラズパイにつないで、測定した温度を定期的にLINEに通知するプログラムを作っていきます。 LINE notif…

ラズパイで見守りカメラを作ってみる

前回、電子工作の成果物として、踏切を作ってみました。 masaeng.hatenablog.com 次回作品はどんなものにしようか、あれこれ算段してみた結果、次はラズパイを使って見守りカメラを作ってみようと思います。イメージはこんな感じです。 具体的な機能は●スマ…

DETR(End-to-End Object Detection with Transformers)を動かしてみた

先日、AIに関するニュース記事を見ていて、物体検出の新しい手法が発表されたと、大々的に報じられていたものがあったので、非常に気になっていました。DETR(End-to-End Object Detection with Transformers)というタイトルで、NMSなどの人手による設計をな…

Tensorflow 2.X でTensorflow 1.Xで書かれたコードを動かす方法

前回Tensorflowの使い方について記事にしました。 masaeng.hatenablog.com しかし、よく調べてみると、この記事で書いたことはTensorflow 1.Xについての話で、Tensorflow 2.Xでは考え方が変わっていることが分かりました。 具体的にはTensorflow 1.XはDefine…

Keras - 学習済みモデルを流用する

KerasではImageNetのデータセットで学習した画像分類のモデルが準備されており、ダウンロードして使用することができます。Applications - Keras Documentation Mobilenetの学習済みモデルを使おうとしたときに少し手こずったところがあったので備忘録として…

Tensorflowの基本の使い方②

前回はTensorflowを使うにあたっての考え方をを記事にしました。 masaeng.hatenablog.com 今回はGithubに上がっていたソースコードをベースに、具体的にDeep Learningの学習、推論をするときの基本的な記述方法について書いていきたいと思います。 ①ネットワ…

Tensorflowの基本の使い方①

前回はKerasの使い方を整理しました。 masaeng.hatenablog.com イチからネットワークを作るときはKerasで問題ありません。しかし、Tensorflowで作られたオープンソースのモデルを修正したい場合、Kerasだけの知識だけでは思い通りのことができないことが多く…

Kerasの基本の使い方

これまでいくつかのDeep Learningを用いた物体検知のモデルを試してきました。公開されているPretrained modelを用いて、画像の入力をUSBカメラから取得した画像に、出力を入力画像に検知結果を表すバウンディングボックスを重ねたものにインターフェースを…

【電子工作】ー 踏切の遮断機を作ってみた

これまで学んだラズパイの動かし方を応用して、子どもと遊ぶための踏切の遮断機を作ってみました。 仕上がりはこんな感じです。子どもと一緒に作ったら結構喜んでくれました! 【電子工作】ラズパイで踏切の遮断機を作ってみた この記事では簡単に作り方をご…

Python - フォルダ内の複数のファイルに対して同じ処理を実行

以前、シェルスクリプトでフォルダ内の複数ファイルに対して同じ処理を実行する方法について記事を書きました。 masaeng.hatenablog.com 今回は、Pythonコードで同じことを行う方法についてまとめたいと思います。 サンプルコード 以下は引数で指定したディ…

ラズパイでステッピングモーターを動かす

前回、ラズパイでDCモーターを動かしてみました。 masaeng.hatenablog.com DCモーターでは回転角度を制御できないため、今回はステッピングモーターを制御することに挑戦しました。事前に他の方がどのように制御されているかを調べたところ、ライブラリを使…

Python - 引数を渡す方法

仕事でちょっとしたPythonのコードを書くときに、よく引数を渡す方法を調べているので個人的な備忘録のためにまとめておきます。これをコピペすれば作りやすいはず! import argparse def main(): # parserを作成 parser = argparse.ArgumentParser() #add_a…

ラズパイでPWM制御

ラズパイを使ってハードウェアを制御するシリーズ、第5回目はPWM通信です。今回はPWM制御でモーターの回転速度を制御してみました。 PWMとは? PWMはPulse Width Modulationの略で、パルス波のデューティー比を変化させて変調する変調方式のことです。デュー…

ラズパイでSPI通信を行う

ラズパイを使ってハードウェアを制御するシリーズ、第四回目はSPI通信です。前回と同じく、加速度センサーをラズパイに接続して動かしてみました。 SPIとは? SPIは Serial Peripheral Interface の略でデバイス同士を接続するシリアルバスの1種です。I2Cと…

ラズパイでI2C通信を行う

ラズパイを使ってハードウェアを制御するシリーズ、第三回目はI2C通信です。今回は実際にデバイスをラズパイに接続して動作確認を行ったので、その手法も合わせてまとめておきたいと思います。 I2Cとは? I2Cは Inter-Integrated Circuit の略でアイ・スクエ…

Keras/Tensorflow - h5/hdf5からckptへの変換方法

以前、ckptからpbへの変換方法をブログに書きましたが、今回はKerasのh5/hdf5形式からckptへ変換する方法を調べましたので、ここにメモしておきます。 masaeng.hatenablog.com 変換方法 私の環境でうまくいったサンプルコードです。 from keras import backe…

5Gの規格を勉強して分かった、理解する上での前提知識と誤解していたこと

仕事で5Gを扱うことになり、いろいろな文献を読み漁って5Gの規格を調査しました。これだけ話題となっている技術で、すでにサービスが開始されようとしている段階で今更感があるのですが。。。 前置き:どのようにして調査したか 初めは英語の規格書にチャレ…

経験値ゼロのハードウェアエンジニアがAIを理解して動かすことができるようになるまで

前回の更新からだいぶ間が開いてしまいましたが、また勉強したことのアウトプットを再開していきます。 今回は今までとはちょっとテイストが変わりますが、表題の通り、AIに関して何も知らなかった私がどのようにAIを勉強して理解できるようになったかを書い…

struct2depth(距離推定)を動かしてみた

久しぶりにGITHUBで公開されているDeep Learningのネットワークを動かしてみました。今回はtensorflowのソース内にあるstruct2depthです。慣れていればどうってことないのでしょうか、初見でつまずいてしまったので、手順を記録しておきます。 struct2depth…

【読書記録】ー 転職と副業のかけ算

今回はmotoさんの「転職と副業のかけ算」という本を読んだので、学んだことを書いていきたいと思います。 転職と副業のかけ算 生涯年収を最大化する生き方 作者: moto 出版社/メーカー: 扶桑社 発売日: 2019/08/09 メディア: 単行本(ソフトカバー) この商…

【読書記録】ー 考具

技術者という仕事をやっていてもアイデアを求められることは常日頃あります。そのような周りからの期待に応えたい気持ちは山々なのですが、中々いいアイデアを出せず、悔しさを感じていました。そんな中、書店で「考具」という本を見つけたので、アイデア出…

ラズパイでUART通信を行う

前回、ラズパイでハードウェアを制御する方法の勉強をスタートしました。 masaeng.hatenablog.com 少し間が開いてしまいましたが、第二回目はUART通信です。UARTはマイコンのデバッグ用通信やデバイス間通信などによく使われていますね。ラズパイでUARTを使…

【読書記録】- PLAY WORK

今回は「PLAY WORK」という本を読みましたので、要点をまとめます。 PLAY WORK プレイ・ワーク 仕事の生産性がグングン高まる「遊びながら働く」方法 作者: ピョートル・フェリクス・グジバチ 出版社/メーカー: PHP研究所 発売日: 2019/07/24 メディア: 単行…

Tensorflow ー 複数の学習済みモデルを同時に実行する

GITHUBで公開されているディープラーニングの学習済みモデルを流用し、USBカメラ映像を入力して推論するというプログラムをいくつか作ってきました。今まで動かしたプログラムは全てモデル1つだけを動かしていましたが、複数の学習済みモデルを組み合わせて…

Tensorflow - ckptからpbへの変換方法

PC上で学習したモデルを動かす際にはckptファイルで問題ないですが、iOS, Android上や組み込み機器上で動かしたい場合、pb(protocol buffer)形式のファイルが必要となります。ckptからpbへの変換方法を調べたのでメモしておきたいと思います。 ckpt, pbとは…

Tensorflowで作成したグラフのノード名、型を表示する方法

Tensorflowの学習済みモデル、重みデータのcheckpointファイルをProtocolbuf形式(pbファイル)に変換する際にグラフのノード名を指定する必要があったのですが、ノード名を知る方法がわからなかったので調べてみました。 結論から記載すると、以下の記述です…

Tensorflow, CUDA, CuDNN バージョン確認方法

Tensorflow GPU環境を作る際に何度も調べなおしているので備忘録です。 対応表 Tensorflow-GPU, CUDA, CuDNNのバージョンは正しい組み合わせでないと正常に動かないため、以下のリンク先で確認します。 https://www.tensorflow.org/install/source#tested_bu…