Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

【自習メモ】maixPyのカメラみたいなことをRasPiでやるには……?

shuzo-kino.hateblo.jp
シリーズの続きみたいな事。

MaixPyは個人的に遊ぶのはいいのですが……画素数が限定されたたりカメラの選択肢が少ないようです。(調べた範囲では)

ではとRasPiで置き換えを考えてみたものの、どうも確信がもてないので過程をメモしていく事にしました。

maixBitで困ったのはオートフォーカスが無いのが結構苦労した点。
対象がコロコロかわれば焦点も変わりますからね……。
RasPiでは、とりあえずコレをつかってみます。
WaveShare 15301 OV5648 5MP USB小型カメラ(A)小型、オートフォーカス

撮影は?

Pythonのライブラリもあるし、raspistillとかいうコマンドラインツールもあったり。
個人的にはコマンドライン好みなので、これはいいかも……?
www.raspberrypi.org

画像ロジックは?

画像はやはりOpenCVとかOpenMVとかになるんでしょうか。
今のところMaixPyもフル機能ではつかってないし置き換えは難しくない?
処理速度が間に合うなら、ImageMagickでシェルでやるのも楽しいかもしれない。



: スマホカメラの共通規格としてMIPIちうのががある

スマホカメラのコネクタ標準規格としてMIPI(Mobile Industry Processor Interface)ちいうのがある模様。
代替カメラを探してるとたまに出てくる概念なのでメモ。
24ピンのFFCがでている(ように見える)ので、MaixBitのカメラもコレ??

一方のRasPiのカメラは22pinのFFCと独特で結構長い事オフィシャル以外はなかった気が。
www.wdic.org

Waveshare社OV5648USBカメラをつかう その1:接続とmjpeg_streamerによるストリーミング配信

千石電商オートフォーカス機能付きを謳うUSBカメラがあったので買ってきました。

Waveshareという、深センにあるRasPi周辺機器をよくだしてるメーカーのものですね。
今回はWEBでの事例も多く、手を動かす事もすくないmjpeg-streamerを使います。



実際のところ

環境

転がってるRasPiを流用したので、ターゲットに対しやたらリッチ。
多分、ここまでの性能は必要ない。

RaspberryOS
Raspberry Pi 4 Model B 8G RAM

手順

コネクタを挿す。
f:id:shuzo_kino:20200820231542j:plain

バイスにVideo0がある事を確認。
なければ、認識していないという事なので挿したり抜いたり半田不良をみたりする。

$ ls /dev/video0
/dev/video0

前提となるライブラリの入手

$ sudo apt install libjpeg8-dev libv4l-dev cmake gcc g++

mpeg-streamer本体の確保。
waveshare公式がファイル出してますが、大元がすでに開発終了している事もあるので
フォーク先から入手します。

$ git clone https://github.com/jacksonliam/mjpg-streamer
$ cd mjpg-streamer/mjpg-streamer-experimental/
$ make
$ sudo make install

$ export LD_LIBRARY_PATH=.

実行

$ ./mjpg_streamer -i "input_uvc.so" -o "output_http.so -w ./www -p 1234"

表示はIPアドレスをブラウザに入力するのみ。

http://YOURIP:1234

同一ネットワーク内ならAvahi(デフォならraspberry pi.local)でいける。

http://raspberrypi.local:1234

アクセスすると、こんな塩梅。
f:id:shuzo_kino:20200829141559p:plain

4GPI等で公開した状態であるなら、ufwでallow*1して公開。

$ sudo ufw allow 1234

蛇足:もう一個のAMcapってのは何よ

Windows用のビデオキャプチャーソフトらしいです。
調べてみると、無償版は個人用らしく。
商用に使う予定なので、今回はパス。
代替品としては以下のようなのがあるみたいです。
progsoft.net

蛇足2:mjpeg-streamerは開発終了している。

大元のmjpeg-streamerは開発終了し、
sourceforge.net
githubで管理が行われています。
機能としてraspiカメラへのサポートも入ったみたいですね。

*1:limitだと一コネクションのみでよろしくない

【読書メモ】ラズパイとカメラで自習機械学習

ラズパイとカメラで自習 機械学習 (CQ文庫)

ラズパイとカメラで自習 機械学習 (CQ文庫)

  • 作者:佐藤 聖
  • 発売日: 2020/06/15
  • メディア: 新書

しらん内にCQ出版CQ文庫ちうレーベルを出してました。
文庫いうて、新書サイズですが。

肝心の内容は、さすがCQ出版(の記事をそのまま)だけあって、内容は確実。
この手の本は機械学習の本だとネットからサンプル画像導入してサンプル動かし、
カメラの本なら環境つくってモニターに絵を映して……てな流れが多いように思います。
その点、本誌はなんとカメラを実際につかって、ポストに入ってきた新聞、チラシの判定行うという
結構難しく感じるシステムを実際に作りながら進んでいきます。
紙送りがタミヤのキャタピラを使うあたり、なんか昔の作ってみよう系本を彷彿とさせるノリもあります。

カメラと一緒にやるという事で映像みながら、ということで
jupyter notebookで対話型にやっていくのも、個人的にベネ


対象機種がRaspberry Pi 3B

Interface誌の2018年記事を再編集したという事で、使ってるRasPiはRasPi 3Bです。
3 B+や4はダメという事でした。
ちゃんと検証するなら、マウンテンサイクルから発掘せんといけませんね……。

【読書メモ】その問題、数理モデルが解決します

その問題、数理モデルが解決します

その問題、数理モデルが解決します

保険料から値下げ基準まで、ある程度ビジネスモデルを詰めていくと、どこかで数理モデルの事を考える必要がでてきます。

経営系の本ではよくみるお話仕立てになっています。
数式をこね回す方式ではないので、これから数理モデルを飯のタネにしたい人には向いてないかも。

本誌は恐らく、そういう経営畑で必要に駆られて数理モデルのエッセンスを把握したい人向けでしょうね。
私のようにエピソード記憶優位なタイプにとっては、とっかかりにいい本かと思います。

後楽園のラクーアがとても良いサウナだったという話

ラクーア - LaQua

後楽園球場のすぐ近くにある
ラクーアサウナがとても良かったというメモ。

サウナが四種、水風呂も外気浴用ブースも充実。
個人的には、テレビのないサウナがあるのがとてもベネ。

GoogleSpreadSheetにカンマ区切りやスペース区切りのデータをよろしく列に分割する

こんなのがあったとします。
f:id:shuzo_kino:20200814200657p:plain
ここで、「データ」=>「テキストを列に分割」
f:id:shuzo_kino:20200814200710p:plain

見通しのよいデータなら
f:id:shuzo_kino:20200814200723p:plain

区切り文字を指定することも可能。
たとえば自動的に空白で判定されたけど、実際にはカンマです。
f:id:shuzo_kino:20200814200734p:plain

stringsコマンドで条件一致時のオフセット値も表示する

stringsコマンドで条件一致時のオフセット値も表示する場合”-o”オプションで数値がでてきます。
が……どういうわけか、デフォでは8進数です。

$ strings -o /usr/bin/make | head
   1070 /lib64/ld-linux-x86-64.so.2
   1533 ha@&M
   3732 =Yg-
   4117 }(>v
   4277 DuM&<:
   4362 OLCU0
   4435 ~hJ5
   4476 cK72
   4503 NfUa
   4541 u;}Y*2

"-t"で表示オプションを変えます。16進数ならx 

$ strings -o -t x /usr/bin/make | head
    238 /lib64/ld-linux-x86-64.so.2
    35b ha@&M
    7da =Yg-
    84f }(>v
    8bf DuM&<:
    8f2 OLCU0
    91d ~hJ5
    93e cK72
    943 NfUa
    961 u;}Y*2

10進数ならd。

$ strings -o -t d /usr/bin/make | head
    568 /lib64/ld-linux-x86-64.so.2
    859 ha@&M
   2010 =Yg-
   2127 }(>v
   2239 DuM&<:
   2290 OLCU0
   2333 ~hJ5
   2366 cK72
   2371 NfUa
   2401 u;}Y*2