シェルスクリプトマガジン vol.69 特集の拡張基板「Jetson & Pi 電力測定ボード」を使ってみました

f:id:karaage:20200911014457j:plain:w640

シェルスクリプトマガジン特製「Jetson & Pi 電力測定ボード」

 久しぶりのJetson Nanoの話題です。11/25発売のシェルスクリプトマガジン vol.69を購入しました。

f:id:karaage:20201126214313j:plain:w640

 この本で特集されているJetson NanoとRaspberry Pi用の雑誌特製の拡張基板ですが、実は以前からモニターテストに参加していました。本も発売し情報解禁となったので、紹介してみたいと思います。

 なお、基板は雑誌には付属しておらず、別途購入するという形になります。販売はBit Trade Oneさんですが、Amazonからも買えます、便利ですね。部品は実装済みなので初心者でも安心です。

続きを読む

ラズパイマガジン2020年10月号寄稿とGetWild退勤トレンド1位を記念してAI姿勢推定でGet Wildしてみた

f:id:karaage:20200912224412j:plain:w640

ラズパイマガジン2020年10月号に寄稿しました

 ラズパイマガジン10月号に寄稿しています。ラズパイマガジンへの寄稿は、2月号での寄稿以来約8ヶ月ぶりとなります。

 紙書籍

 電子書籍

ラズパイマガジン 2020年10月号

ラズパイマガジン 2020年10月号

  • 発売日: 2020/09/11
  • メディア: Kindle版

 特集「電子工作基本ワザ30」の中で、ラズパイでAIを使って姿勢推定する記事を4ページ書いています。今回の特集は @PINTOさんの「PINTO_model_zoo」のモデルを使わさせていただきました(@PINTOさんには事前連絡了承済みです)。ほぼ、@PINTOさんの記事といっても過言ではないでしょう(笑)

 「PINTO_model_zoo」に関しては、以下Qiita記事参照ください。

 そして、本ブログ読者にはおなじみ、変デジ研究所所長のロンスタさんにも、読者モデル(読モ)として登場いただきました!詳しくは、変デジ研究所の書評記事へGo!

GetWild退勤がトレンド1位なのでAI姿勢推定でGet Wild

 ここで話は打って変わり、9/11に何故か「Get Wild退勤」がTwitterのトレンド1位になり、4年前に書いたブログ記事が今更少しバズるという珍事が発生しました(笑)

 30年以上前の曲なのに、定期的に話題になる「Get Wild」は本当に凄い曲ですね。久しぶりにCITY HUNTERのエンディングが観たくなり、Amazon Primeで思わずCITY HUNTERの1話をレンタル購入してしまいました(なんと1話は、無料でレンタルできました!)。

 やっぱり良いですねGet Wild。メロディーはもちろん、CITY HUNTERのアニメも、意味が分かりそうで全く分からない歌詞も最高です。特に印象的なのはBメロの以下のシーンです。

f:id:karaage:20200911235649p:plain:w640 アニメ CITY HUNTER エンディングより引用

 謎の女性の後ろ、シマシマ(ブラインド?)をバックに走る獠(リョウ)

 「これをAI姿勢推定で再現したい!」

 という謎の使命感に襲われ、衝動的にソフトを作ってリポジトリにアップしてしまいました。ラズパイが書籍通りセットアップできていれば、以下コマンドで動かせます。

$ python3 it_your_pain.py --camera_type=’raspi_cam’

 く、クオリティ低過ぎる…でも公開してしまいます。これが本当のGet Wildですね。

まとめ

 ラズパイマガジン2020年10月号に寄稿した記事とGet Wildの紹介でした。特集の記事、私以外の方が書いたものも、面白いものがたくさんありました。興味持たれた方は、ぜひ購入検討ください。

 記事で紹介した、姿勢推定ソフトのリポジトリは以下となります。

 書籍を読むのがオススメですが、慣れている人ならリポジトリのREADMEを読めば動かせると思いますので、とりあえず試してみるのも良いかなと思います。

 紙書籍

 電子書籍

ラズパイマガジン 2020年10月号

ラズパイマガジン 2020年10月号

  • 発売日: 2020/09/11
  • メディア: Kindle版

関連記事

変更履歴

  • 2020/09/14 変デジ研究所 ロンスタさんに関して追記

日経Linux2020年9月号に記事寄稿のお知らせとレビュー

f:id:karaage:20200809211707j:plain:w640

日経Linux2020年9月号に記事が掲載されています

 8/7(金)発売の日経Linux2020年9月号に記事を寄稿しました。寄稿した関係で、日経BP様から献本をいただきました。

日経Linux 2020年 9 月号

日経Linux 2020年 9 月号

  • 発売日: 2020/08/07
  • メディア: 雑誌

 内容としては、以前ラズパイマガジン2019年8月号に掲載されたものがベースとなった記事の再掲(3ページ程度)となります。

続きを読む

ディープラーニングで物体検出が手軽にできる「Object Detection Tools」をTensorFlow 2.xに対応しました

f:id:karaage:20200712224305p:plain:w640

素材提供:「変デジ研究所」 ロンスタさん

「Object Detection Tools」とは

 TensorFlowで物体検出するためのライブラリ「Object Detection API」を簡単に使えるようにするためのツール(スクリプト・設定集)です。詳細は以下記事参照ください。

 「Object Detection API」がTensorFlow 2.xに対応するということで、「Object Detection Tools」も1部TensorFlow 2.xに対応しました。

 詳しくは、Qiitaに記事を投稿しているので参照ください。

 本当はこんなに一気にやるつもりなかったのですが、つい一気に土日の空き時間を全て費やしてやってしまいました。

 気になっていた、EfficientDetやCenterNetも使えるので良い感じです。EfficeintDetは、小さいモデルだと速度も良い感じですね。あとは検出性能が気になるので、じっくり確認していきたいなと思っています。

 ラズパイやJetson Nanoでも動く…と思うのですが、まだTensorFlow 2.xでは試せていません…誰か試したら教えてください。

まとめ

 拙作のツールのアップデートの紹介でした。最近ずっとTensorFlow内蔵のKerasばっかり使っていたので、最初パニックと絶望に襲われていましたが、Twitter上で助けられ、なんとか自分のやりたい最低限のことはできるようになりました。

 TensorFlowで物体検出、意外に手軽に実践するのが難しかったりするのですが、「Object Detection Tools」だとかなり手軽にできるので、興味ある方は試してみてください。

関連記事

ラズパイとNFCタグを使ったオートメーションが便利かも

f:id:karaage:20200629011531j:plain:w640

iPhoneとNFCタグの連携が便利そう

 以下のようなiPhoneとNFCタグの連携での自動化が便利という記事が人気になっていました。

 iPhoneとNFCタグに近づけることをトリガに、様々なアクションができるという話なのですが、確かに色々便利なアイデアがありそうだなーと思いました。

 iPhone XS以降か一部のAndroid端末で使えるテクニックのようです。

ラズパイにNFCタグをつけて便利にするアイデア

 NFCのアイデア自体は、無数にありそうなので、自分はラズパイ(Raspberry Pi)に限定して、NFCタグを活用するアイデアをいくつか考えてみることにしました。

 NFCタグの設定方法自体は、最初に紹介した記事と、以下の記事を参考にしました。

 この辺りは、「NFCタグ iPhone」で検索すればたくさん情報が出てくるので割愛します。

ラズパイの見守りカメラのサーバにアクセス

 我が家では、ラズパイで子供の見守りカメラを作って、24時間運用しています。詳細やセットアップ方法に関しては、以下記事参照ください。

 仕組み的には「RPi-Cam-Web-Interface」というソフトを使って、ラズパイにカメラで撮影した内容を公開するサーバを立てて、そこにスマホでアクセスするという形になっています。

 使いたいときに、たまに設定したアドレスを忘れてしまうということがあるので、サーバのURLに自動でアクセスするようなNFCタグを貼ってみました。

f:id:karaage:20200629011531j:plain:w640
 右下のがNFCタグです

 これで、NFCタグにiPhoneを近づければ、すぐスマホでラズパイのカメラサーバにアクセスできます。

f:id:karaage:20170323234609j:plain:w640
 写真は、昔の試作機のもの

ラズパイカメラのシャッター

 続いては、ラズパイカメラのシャッターに使うというアイデアです。

 NFCタグをトリガにアクションを設定できるiPhoneのショートカット機能ですが、実はsshでコマンドを投げることができます。

 これを応用すれば、ラズパイにiPhoneを近づけることをトリガに、ラズパイカメラのシャッターを切ることができますね。

ラズパイでのデモ

 上記のラズパイカメラのシャッターの応用です。sshで好きなコマンドを投げることができるので可能性は無限大(?)です。

 あらかじめ、ラズパイ側にスクリプトを仕込んでおいて、NFCタグを用意しておけば、iPhoneにNFCタグを近づけてデモをするといったことができます。スクリプトとNFCタグを複数用意しておけば、複数種類のデモをするといったこともできますね。

 キーボードやモニタを繋げたくない(繋げられない)ときでも、スイッチを半田付けしなくても、スマートにデモができそうです。ただしネットワーク環境が必要になるので、その点は注意ください。

まとめ

 ラズパイとNFCタグを使ったオートメーション機能の応用例を紹介してみました。アイデア次第では、便利に使えそうだなという気がする一方。意外と、使用ケースは限定的なので、使いどころは難しいかもなとも感じます。新しいiPhoneじゃないと使えないのも、辛い点ですね(妻のiPhone 7では使えませんでした)。

 実際に使う人は100人に1人くらいかなと思います。ただ、使う人にとっては、かなり刺さる機能ではないかなと思います。Suicaなどの交通系ICカードでも使えますので、手元にあればとりあえずそれで試してみるのも良いかと思います。NFCタグ自体もシール式はとても安いので、とりあえず買っておくのもありだと思います(私はとりあえず買いました)。

 NFCタグは「NTAG213NFCステッカー」を使いましたが、私のiPhone 11 Proでは問題なく使用できました。

関連記事

ラズパイ定点観測カメラの動画とタイムスタックフォト

f:id:karaage:20200531180131p:plain:w640

ラズパイカメラで定点観測

 以前作った以下の動画の続きです。

 だいぶ育ってきました。

 撮影のタイムスケールを変えるだけで、グッと面白くなるのがタイムラプスの良いところだなと思います。

 タイムラプスを応用した手法の写真で、タイムスタックフォトというのもあります。ネットで記事みて、なんとなく撮影方法(加工方法?)を想像して自分でソフトから自作して真似してみました。もう6年くらい前ですね。詳細は以下記事参照ください。

まとめ

 外に出なくても、ものの見方を変えるだけで面白い写真や動画をとれるかもしれませんという話でした。

 といいつつも、最近めっきり写真を撮る機会も、モチベーションも減ってしまっていてなんとかしたいなーという気持ちです。ファインダーのぞいて、自分でシャッター切るの意外に好きだったんだなと今更ながら思ったりしています(笑)

 出かけて、シャッター切って、あとは祈るみたいなことをひたすら繰り返したいですね。

関連記事

ラズパイを超お手軽に定点観測カメラにする方法

f:id:karaage:20200517114201j:plain:w640

ラズパイを超お手軽定点観測カメラにしてみた

 ベランダの家庭菜園でアサガオを育て始めたので、久しぶりにRaspberry Pi(ラズパイ)を使って定点観測(タイムラプス撮影)してみることにしました。

 ラズパイを使った家庭菜園の定点観測に関しては、以前「電波ガーデニング」と名付けたプロジェクトをしていたので、そちらを活用することにしました。

 このときは、100円均一のケースで防水したり、温度・湿度センサをつけて測定したりと色々やっていたのですが、今回は単純にカメラでの撮影だけすることにしました。

 過去にやったことですが、需要あるかもしれないのでメモがわりに必要なものや、セットアップ方法を書いておきます。

続きを読む

「PC-9801Pi 2 ラズベリーパイ PC-98化計画」を読んでラズパイ4を憧れのPC-98化してみた

f:id:karaage:20200308143118j:plain:w640

ラズパイを憧れのPC-98に

 「PC-9801Pi2 ラズベリーパイPC-98化計画」なる魅惑的な書籍が売っていたのでつい買ってしまいました。

PC-9801Pi2 ラズベリーパイPC-98化計画

 サイトでは、Amazon PayでAmazonのアカウント経由で簡単に購入できました。ラズパイ上でPC-98のエミュレータやMS-DOS(正確にはMS-DOSクローンのFreeDOS)を動かすという魅力的なプロジェクトに取り組んでいる本です。

 早速本の通り試してみたら、確かにラズパイ4をPC-98化できました。

 結構手順が煩雑だったので、スクリプト化してみました。セットアップ方法を自分へのメモとして残しておきます。

続きを読む

PyCon mini Shizuoka「ラズベリーパイの”パイ”とはなんのことだ。」というタイトルでキーノートスピーカーとして登壇しました

f:id:karaage:20200304234322j:plain:w640

PyCon mini 静岡 キーノートスピーカーとして登壇しました。

 体調を崩しており、更新に間が空いてしまいました(ようやく回復しつつあります)。先週、PyCon mini Shizuokaで「ラズベリーパイの”パイ”とはなんのことだ。」というタイトルで発表しました。PyConに関しては、以下記事参照下さい。

 謎のウイルスの関係で、オンライン配信になり。不安一杯でしたが、精一杯発表させていただきました。

 最初、私の方のミスでしばらく配信されなかったのと、途中画面表示が、機材側の都合でうまく表示されない(全画面表示で画面が切れる)トラブルがあり、心臓が2回ほど止まりかかりました。その後、なんとか持ち直し時間一杯で発表を無事行うことができました。

 オンライン配信のプレゼンテーション側の心がけや準備は、また記事を書きたいと思います。また、今回多くのトラブルにあいながら、最後までイベントを続けてくださった。PyCon mini Shizuoka運営の皆様に感謝したいと思います。

 また、愛知からの生配信に協力いただいたスタートアップガレージの関係者、および配信に参加してくださった皆様に心からお礼申し上げます。

続きを読む

ディープラーニングでテルミンみたいな音を奏でる楽器「Deep Theremin」を作ってみた

f:id:karaage:20200204013425j:plain:w640

第2回ディープラーニングガジェット品評会で発表してきました

 ディープラーニングガジェット品評会で「ディープラーニングで テルミン作ってみるミン 〜 Deep Thereminの調べ〜」というタイトルで発表してきました。

 作ったものの動画はこちらです。

 やりたいことは単純なのに、お金ばっかり(約5万円)かかってしまい、あまりレスポンスがよくないという地獄のような楽器です。ディープラーニングの使いどころを間違えてしまった感があります。

 発表した資料は以下です。興味ある方は是非。

 資料に出てくる、昔作ったテルミンっぽい楽器は以下になります。

 作り方は以下です。Deep Thereminの10分の1くらいの材料費でできます(笑)

続きを読む

2月のイベント登壇予定「第2回ディープラーニングガジェット品評会」「PyCon mini Shizuoka 2020」

2月のイベント告知

 2月は、以下2つのイベントで発表予定です。

「第2回ディープラーニングガジェット品評会 2/15」

「PyCon mini Shizuoka 2020 2/29」

 お陰様で、両方ともほぼ定員は満席となっています。PyCon mini Shizuokaは、僅かに残り席あるようですので、もし興味ある方は是非!

ディープラーニングガジェット品評会

 ディープラーニングガジェット品評会は、「ディープラーニングで何か面白いことするぞ!」って人の集まりです。とても気が狂った素敵なメンバーが集まるので、楽しみにしております。

 ちなみに、私と高橋さんは、気が狂っているのでこの2週間後のPyCon miniにも登壇予定です。

 去年の様子は以下記事参照下さい。

PyCon mini Shizuoka 2020 2/29

 PyCon mini Shizuokaに関しては、以下記事参照下さい。

 キーノートスピーカーとしてプレゼンさせていただきます。公式サイトを見ると、大学の先生と並んで、食べ物の名前の謎の男が並んでいるシュールな絵が見られます。

 「ラズベリーパイの"パイ"とはなんのことだ。」というタイトルでPythonxハードウェアの可能性や、趣味のモノづくり(Maker)に関するお話をする予定です。ちなみにタイトルの元ネタは、あの国民的グルメ漫画です。

まとめ

 2月のイベントの告知をさせていただきました。プレゼンの方は、絶賛練習中+資料作成中です。仕事で出張続きで、練習する時間が取れないため、やむを得ず、出張の移動中にプレゼンを練習している状況です。

 1月はJetson Nano超入門の筆者パネルディスカッションがありましたし、3月4月は実は、仕事の方で発表をしないといけないので、今年はずっとプレゼンが続いている状況です。一体何故こんなことに…

 というわけで、イベントに来られる方は是非気軽にお声をかけて下さい。資料の方は、ネットで公開予定ですので、ブログやTwitterをフォローしていただけましたら幸いです。

関連記事

ラズパイをJetson Nanoのサブボードとして使う方法(電源供給とシリアル通信)

f:id:karaage:20200126135706j:plain:w640

ラズパイをJetson Nanoのサブボードとして使いたい

 久しぶりに、ちょっとマニアックな電子工作ネタを書いてみます。みなさん、Jetson Nano使っていますか?Jetson Nano便利ですよね。ただ、Jetson Nanoですが、自分の場合以下のようなケースで困ることがあります。

  • 重いディープラーニングと、リアルタイム性必要な処理を同時に走らせるときに負荷分散したい
  • 標準でアナログオーディオ出力※がないので、オーディオが必要なアプリを作りづらい

 そんなときに良いなと思ったのが、Jetson Nanoとラズパイの組み合わせです。ラズパイならオーディオ出力含めた、豊富な入出力がありますし、かなりの計算能力があり負荷分散も可能です。

 特に、Jetson Nanoとラズパイは、ピンコンパチなので、Jetson Nanoから電源供給してシリアル通信すれば、Jetson Nanoのサブボードとして使えそうです。Jetson Nanoとラズパイの組み合わせは、かなり便利そうですね。

 もちろん通信だけなら、Ether経由でもできるのですが、直接コンパクトに接続できる点は、シリアル通信の利点だと思います。今回の内容は、半田付け無しで簡単に接続できるので、初心者にもオススメの内容となっています。

 なお、本文の最後に記載していますが、私の環境ではJetson Nanoからラズパイに電源供給した際は、Jetson Nanoでディープラーニング等の重い計算処理を走らせるとシリアル通信が正しくできない問題が発生しました。その場合は、ラズパイの電源を外部から供給することで解決できます。

追記 ※Jetson Nano、HDMI経由のオーディオ出力は可能です。HDMIアダプター等を使えば、オーディオ信号を取り出すことは可能です。具体的な周辺機器に関しては、以下記事を参照下さい。

続きを読む

ラズパイマガジン2020年2月号にAI特集記事を寄稿しました

f:id:karaage:20200112201633j:plain:w640

ラズパイマガジン2020年2月号に寄稿しています

 ラズパイマガジン2月号に、20ページ以上にわたるAI特集の記事を寄稿しました。

ラズパイマガジン 2020年2月号 (日経BPパソコンベストムック)

ラズパイマガジン 2020年2月号 (日経BPパソコンベストムック)

  • 作者:
  • 出版社/メーカー: 日経BP
  • 発売日: 2020/01/14
  • メディア: ムック

 今回、ラズパイマガジンへの寄稿記事としては、過去最大の規模となる記事です!そして、そんな気合の入った記事にも関わらず、自分の名前を載せるのを忘れるという痛恨のミスをしていました(笑)。出来上がった本を読んでから気づきました、テストなら0点ですね(笑)まあ、載ったところで食べ物の名前なので、大した違いはないですし、わかる人にはわかると思うので気にしないことにします。 追記:名前ちゃんと載っていたようです!私の早とちりでした。

 前半は、ジャンケンの手の形を題材に、画像認識のAIモデルを作成してラズパイで画像認識。後半は、前半の画像認識を応用して、改造したルンバのAI化にチャレンジするという意欲的(過激?)な内容になっています。

 AIの学習に関しては、Google Colaboratoryを活用することで、PCのブラウザさえあれば誰でも簡単にAIモデルの学習までを実現できるように工夫しています。ルンバが無くても、PCのブラウザ上で画像認識の学習と認識のテストまでは行えるので、興味がある方は是非読んでみて下さい。

 また、今回サポートページも用意しています。

 特集で使用した、Google Colaboratoryのノートブック、参考にした書籍・サイトの情報などを載せています。こちらも書籍と合わせて参考にしていただけましたら幸いです。

ラズパイ4特集・ラズパイコンテストグランプリ作品作り方も読み応えあり!

 2月号は、ラズパイ4が発売直後ということで、ラズパイ4の特集に加えて、ラズパイコンテストのグランプリの結果と、その作品の作り方が惜しげも無く公開された小冊子が付録としてついてきます。

f:id:karaage:20200112201718j:plain:w640

 ラズパイ4は、ハードウェア中心に気になる発熱・モニタとの相性問題・電源問題・ラズパイ3との性能差といった多くの人が気になる点をしっかり抑えています。一通り読んでおくと、何かでハマったときに「あ、あれのことかも?」とヒントになりそうな気がします。

 また、ラズパイコンテストグランプリは、相変わらず見ているだけで面白いですし、色々アイディアの刺激を貰えて良いですね。

 お知り合いでは、去年に引き続き、しろいとり子 (id:toriko0413)さんの小学6年生の息子さんが受賞されていました。

小6息子くんみんなのラズパイコンテスト2019で受賞しました - カワリモノ息子の技術メモ的な〜

 あと、Maker Faire常連のすいラボさんもラズパイのレジで受賞されていました!

ラズパイでレジつくってみた - 趣味TECHオンライン | 趣味のモノづくりを応援するオンラインメディア

 他にも気づいてないだけで、結構知り合いが受賞していそうな予感がします(そっと教えて下さい)。みなさんおめでとうございます!

まとめ

 ラズパイマガジン2020年2月号にAI特集の記事を寄稿しました。今回は、私の特集以外にもラズパイ4の特集・ラズパイコンテストグランプリの発表。グランプリ作品の作り方を公開した小冊子と、非常に盛りだくさんな内容です。

 いつも以上にお得な号だと思いますので、興味ある方は是非購入検討してみて下さい。

ラズパイマガジン 2020年2月号 (日経BPパソコンベストムック)

ラズパイマガジン 2020年2月号 (日経BPパソコンベストムック)

  • 作者:
  • 出版社/メーカー: 日経BP
  • 発売日: 2020/01/14
  • メディア: ムック

関連記事

個人的に注目しているAdvent Calendarまとめ(2019年版)

2019年注目のAdvent Calendar

 今年もやってきました、Advent Calendarの時期です。Advent Calendarというのは、12月中に毎日クリスマスまで技術的な記事を交代で投稿するというお祭り的なイベントです。主に、Qiitaという技術記事投稿のプラットフォームとAdventarというAdvent Calendar専用のプラットフォームで行われています。Adventarは、技術以外のジャンルの記事も投稿されています。

 いつものように個人的にチェックして追いかけているAdvent Calendarをまとめておきます。自分のメモなのですが、よろしけば参考にしてみて下さい(私と趣味趣向が似ている人向け、そんな人いるのか?)

 そして、Qiitaでは今年もプレゼント企画があるようです。最新式のMacが当たるようなので気になる方はチェックしてみて下さい。

モノづくり(電子工作・マイコン・ロボット・ソフトウェア)

 モノづくり系で役立つ情報

Raspberry Pi Advent Calendar 2019 - Qiita

Raspberry Pi Advent Calendar 2019 - Adventar

ROS2 Advent Calendar 2019 - Qiita

M5Stack Advent Calendar 2019 - Qiita

3D Sensor Advent Calendar 2019 - Qiita

Python Advent Calendar 2019 - Qiita

Processing Advent Calendar 2019 - Qiita

AI・機械学習

TensorFlow2.0 Advent Calendar 2019 - Qiita

AI道場「Kaggle」への道 by 日経 xTECH ビジネスAI① Advent Calendar 2019 - Qiita

機械学習をどう学んだか by 日経 xTECH ビジネスAI② Advent Calendar 2019 - Qiita

機械学習ツールを掘り下げる by 日経 xTECH ビジネスAI③ Advent Calendar 2019 - Qiita

AI RC Car Advent Calendar 2019 - Qiita

Deep Learning論文紹介 Advent Calendar 2019 - Qiita

Kaggle Advent Calendar 2019 - Qiita

kaggle その2 Advent Calendar 2019 - Qiita

企業系

 お世話になっている企業、応援している企業、気になる企業等。

はてなエンジニア Advent Calendar 2019 - Qiita

BrainPad Advent Calendar 2019 - Qiita

Yahoo! JAPAN Advent Calendar 2019 - Qiita

WHILL Advent Calendar 2019 - Adventar

2019 | Cerevo TechBlog

SB-AI Advent Calendar 2019 - Adventar

SB-AI 2 Advent Calendar 2019 - Adventar

その他

 その他色々

おうちハック Advent Calendar 2019 - Qiita

本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita

WEB記事 Advent Calendar 2019 - Adventar

まとめ

 今年注目してるAdvent Calendarをまとめました。久しぶりに、私もラズパイネタでAdvent Calendarに参加してみました。まだまだ空いているカレンダーもありますので、興味ある方は、見るのも良いですが今から参加してみるのも面白いかもしれません。しばらくは、随時追加予定です。

 最近はQiitaに投稿するようになったので、来年は自分でAdvent Calendar作っているのも面白いかもしれないなと思ったりしました。来年になったら忘れていそうですけど(笑)

関連記事

変更履歴

  • 2019/12/09 Advent Calendarを複数追加

Raspberry Pi 4のディープラーニングで画像認識する環境をゼロから1時間で構築する方法

Raspberry Pi Advent Calendar 2019」の3日目記事です。

ラズパイ5・最新OSでのセットアップ記事を追記しました

 最新のラズパイ5や最新OSでの環境構築は、以下記事も合わせて参照ください。

ラズパイ4を入手しました

 ラズパイ4を入手しました。色々事情があり、ポケットに入れて叩いたら2台に増えてしまいました。


 ラズパイ4が2つ

 手に入ったものは仕方ないので、恒例のセットアップと洒落込みたいと思います。ラズパイ4からラズパイ始める人もいるかもしれませんしね。そして今までラズパイ使っていたユーザーとして、4でCPU・メモリが大幅にスペックアップしているので、せっかくならそれらを体感できて役に立ちそうなアプリを動かしてみることにしました。

 というわけで、ほどよく処理が重く、役に立ちそう(?)なディープラーニングを使った画像認識(正確には物体検出)を試したいと思います。物体検出に関して、詳しくは以下記事参照下さい。

 これ以降、ラズパイのディープラーニング環境構築含めたセットアップ記事を書いていきます。ちなみにラズパイ4でセットアップしましたが、ラズパイ3でも同じ要領でセットアップ可能です(電源コネクタ、HDMIコネクタのタイプのみ注意ください)。

環境構築の前提条件

 一応前提条件があります、以下となりますので確認下さい。私はMacでセットアップしましたが、基本的にどのOSでも同じ要領でセットアップできます。

  • SDカード作成用のPC(Mac/Linux/Windows等)
  • ラズパイ4及び最低限必要なハードウェア(詳細は次に書きます)
  • ネットワーク環境がある(有線でもWiFiでもOK)
  • コマンドラインの最低限の知識がある
  • ラズパイへの愛がある
  • 1時間で構築できなくても怒らない広い心

 特に最後の大事です。愛が大事。

必要なハードウェア

 最初に必要なハードウェアです。

Raspberry Pi 4 モデルB

 当たり前ですが、必須ですね。

 以下のようにケースや変換アダプタ、HDMIケーブルついているキットを買うのも良いですが、私が購入したキットが今は発売していないようなので、今回は本体のみを買った前提で説明します。


 キット

 Amazonの購入先のリンクは以下となります。

注:Amazonのラズパイ、あまりに価格が高騰しているのでSwitch Scienceさんのリンクに切り替えました。

Raspberry Pi 4 Model B / 4GBwww.switch-science.com

マイクロSDカード・SDカードリーダー

 ラズパイのOSやデータを格納するマイクロSDカードが必須です。カードリーダーも必要に応じて買いましょう。SDカードは大量に買いましょう(私は30枚くらい持ってます)。

 マイクロSDカードは、たくさん買うことになるのでカードケースもあると良いです。

キーボード・マウス

 好きなものを使用ください。普段の開発には厳しいですが、持ち運び用には以下のようなモバイルの無線キーボードが便利です。

 詳細は以下記事参照下さい。

モニタ・HDMIケーブル

 こちらも好きなものをどうぞといいたいところですが、ハマりどころ(自分はハマりました)なので注意です。結構ラズパイ4は、モニタとの相性が厳しいようです。私もモニタを変えたり、設定を変えたりしないとダメでした。具体的にやったことは、以下のQiita記事にまとめましたので、参照下さい。

 持ち運びに便利な以下小型モニタをよく使っているのですが、ラズパイ4だとデフォルト設定だと映りません。上記記事を参考に設定変更すれば映りました。

 もし映らなかったら、家にあるモニタを色々試してみて下さい。あと、ラズパイ4はマイクロHDMI端子なので、変換コネクタも忘れずに購入しましょう。

電源

 ラズパイ4は、電源での問題がある噂があったので心配していましたが、とりあえず普通に家にある2.4A出力可能な電源であれば動作しました。3A出せるやつが安心ですが、あんまり手頃にAmazonで買えるものはない感じです(もしあったら教えて下さい)。

 私が動作確認できて、Amazonで手頃に購入できるものは以下です。3Aが出力できます。

 以下は2.4Aまでですが、2portあって便利です。私の環境ではラズパイ4動作しました。

 ケーブルはUSB-Cなので間違えないようにしましょう。

カメラモジュール

 画像認識といえばカメラということで、カメラモジュールを買いましょう。今回の記事は、カメラモジュールの使用を前提としています。

 USBカメラでも多分大丈夫ですが、特に確認はしていません。

ラズパイの環境構築

 環境構築をしていきます。

環境構築の流れ

 以下のような流れで、愛があれば1時間程度でセットアップできるはずです。

  • ラズパイ用のSD作成(10分)
  • ハードウェアのセットアップ(10分)
  • Raspbianセッティング(10分)
  • TensorFlow/OpenCVセットアップ(10分)
  • Object Detection Toolsセットアップ(10分)
  • ラズパイへの感謝の儀・SNSアップ(10分)

ラズパイ用のSD作成

 ラズパイのSDを作成します。SDの書き込みに関しては「Raspberry Pi Imager」という公式の大変便利なソフトがあるのでこちらを使いましょう。使い方の詳細は、以下記事参照ください。

 バージョンは「Raspbian Buster with desktop」の「2019-09-26」「Raspberry Pi OS(32-bit)」の「2020-08-20」版を使用しました。

 Macでddコマンドを使ったSD書き込みを知りたい人は、多少古いですが以下記事を参照下さい。

ハードウェアのセットアップ

 ラズパイと周辺機器、ネットワークを以下のように繋げましょう。

 もちろん、SDカードは先ほど作成したSDカードを挿入して下さい。

 最後に電源を繋げば、ラズパイが起動します。

Raspbian初期設定

 Raspibianの初期設定です。

 最初に、メニュー画面から「setting」->「Raspberry Piの設定」を選択します。

 あとは、日本での設定なら、以下の画面の通りの設定でOKです。起動一発目は、画面が英語だと思いますが、よしなに読み替えて下さい。

 セッティング後は再起動をしましょう。

 起動後、「Ctrl + Alt + t」を押すとターミナル(黒い画面)が起動するので、以下はその画面でコマンドを打ち込んでいってください。

TensorFlow/OpenCVセットアップ

 ディープラーニングを使った画像認識に必要なライブラリのTensorFlowとOpenCVをセットアップします。セットアップはだいぶ簡単になったのですが、PCに比べると少し大変です。特にビルドしようとすると数時間とかかかってしまうので、パッケージをインストールするのがオススメです。

 今回は、最低限必要なライブラリを簡単にセットアップできるように、スクリプトを作成しました。以下2行のスクリプトを実行するだけで、ネットワークの状況にもよりますが10分程度でセットアップができると思います。

$ git clone https://github.com/karaage0703/raspberry-pi-setup
$ cd raspberry-pi-setup && ./setup-ai.sh

Object Detection Toolsセットアップ

 ディープラーニングでの物体検出を手軽に試せる自作ツール「Object Detection Tools」をセットアップします。ツールの詳細は以下参照下さい。

 とりあえず動かしたい場合は、以下5行をターミナルで入力すればOKです。

$ cd && git clone https://github.com/karaage0703/object_detection_tools
$ cd ~/object_detection_tools/models
$ ./get_ssdlite_mobilenet_v2_coco_model.sh
$ cd ~/object_detection_tools
$ python3 scripts/object_detection.py -l='models/coco-labels-paper.txt' -m='models/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb' -d='raspi_cam'

 USBカメラを使う場合は、最後のコマンドの-dオプションを-d=normal_camにすれば動くと思います。

 TensorFlow Liteで軽量化モデルを使って高速化したい場合は、以下記事を参照にしてみて下さい。

ラズパイへの感謝の儀・SNSアップ

 うまく動いたら、ラズパイに感謝を伝えましょう。ディープキスをしてもOKです(熱いので火傷に注意)。

 インスタなどへのSNSアップも忘れないようにしましょう。私の場合は、以下のような感じで2fps以上の速度で物体検出に成功しました(速度は、認識にかかった時間のみで、カメラ表示時間は含んでいません)。

 ラズパイ3の2倍程度の速度です。

その他のセットアップ

SDカードのバックアップ

 環境を丸ごとバックアップしたい場合は、以下記事を参照下さい。最近はゼロから環境構築しちゃうことの方が多いですが。

その他のソフトインストール

 最初のアップデートや必要なソフトのセットアップを自動化したい方は、以下記事参照下さい。

 以下コマンドを実行すると、自動でアップデートされて、必要なソフトがインストールされます。

$ cd
$ git clone https://github.com/karaage0703/raspberry-pi-setup
$ cd raspberry-pi-setup
$ ./setup-raspbian-buster.sh

リモート接続(VNC)

 Mac標準のリモート接続でラズパイに繋ぎたい場合は、以下記事参照下さい。

Raspberry Pi OSを64bit化する

 以下コマンドを実行するだけでOKです。ちなみに、私には体感では全然違い分かりません(笑)

$ sudo sh -c "echo 'arm_64bit=1' >> /boot/config.txt"

 確認するには以下コマンド実行してください。

$ uname -r

 結果が5.4.35-v8+と末尾がv8になっていれば64bit化されています(32bitだとv7です)。ただ、ハードウェアによっては対応していないので注意してください。Cortex-A53を搭載したラズパイのみとなります。詳細は以下リンク先を参照ください。

RaspberryPiのCPU比較 どれが64bitで動くの?

 64bit化の設定詳細に関しては、以下の記事を参照ください。

いまさら触ったラズピッピ4とかでできるやつ2つ - あっきぃ日誌

VS Codeのインストール

 以下Qiita記事を参照ください。

まとめ

 ラズパイ4を買ったので、ディープラーニング環境をセットアップして画像認識(物体検出)までやってみました。ラズパイ4から入門する人も多いかもということで、久しぶりに自分にしては丁寧にセットアップ記事書いたら結構疲れました。もしよろしければ参考にしてみて下さい。

 ラズパイ4は、電源とか熱とか結構ネガティブな情報があったので、しばらく様子見かなと思っていたのですが、謎の力(?)で結局速攻で入手して有休とってセットアップしてしまいました(笑)ディープラーニングも軽いモデルなら、そのままでもそこそこ走りそうです。小型のマイコンボードでディープラーニング使うなら、Jetson Nano1強でしたが、ラズパイもまた選択肢に上がってくること多くなりそうだなと感じました(Jetson Nanoよりかなり小さいですしね)。

 普通に使っていても、あきらかにラズパイ3より快適ですし、ラズパイ4使ってまた色々作ってみたいなとか思いました。

 なお、今回はディープラーニングを使った物体検出を行いました。ディープラーニングで、画像の判別(画像が何かを判断する)の学習から推論までやってみたいという方は、有料noteでチュートリアル公開していますので、よろしければこちらもどうぞ。

 Amazonでの購入先

[asin:B07TC2BK1X:detail]

書籍の宣伝「からあげ先生のとにかく楽しいAI自作教室」

 AIの初心者向け本「からあげ先生のとにかく楽しいAI自作教室」を執筆しました。

 文系でAI素人の私の妻も、実践できて理解を深められるような、初学者向けの内容になっています。Raspberry Piを用いたエッジコンピューティングに関しても、まるまる1章解説しています。以下に紹介記事を書いていますので、興味ある方は是非ごらんください。

関連記事

変更履歴

  • 2024/02/18 ラズパイ5に対応
  • 2022/04/03 最新Raspberry Pi OSでの環境構築に関して追記
  • 2020/12/20 AI書籍の執筆に関して追記
  • 2020/10/30 Raspberry Pi OS 2020-08-20版での動作確認
  • 2020/09/12 VS Codeのセットアップに関して追記
  • 2020/06/25 微修正・誤記訂正
  • 2020/06/04 Raspberry Pi 4の購入先に関して修正
  • 2020/05/12 Raspbian 64bit化に関して追記
  • 2020/04/16 SD書き込みに関して「Raspberry Pi Imager」を使用した書き込み方法に修正
  • 2020/04/15 TensorFlow Liteに関する記事へのリンク追加
  • 2020/02/07 関連記事追加
  • 2020/01/26 商品のリンク切れを修正・追加
  • 2020/01/24 リモート接続に関して記事を追加