記事一覧

Python:0x000D

 今組んでいる物は一種のウェブカメラで、ストリーミングをしながら画像を撮ったり映像を録ったりするのが肝です。

 ですが、RaspberryPi-zeroでは処理能力が弱い。

 ストリーミングが1秒くらいの遅延は仕方ないとしても、ストリーミングしながら別に画像や映像を記録するのはなかなか難しい。出来ないのではなく遅い。

 mjpg-streamerでストリーミングした映像をURL指定でキャプチャする方法が王道とおもいきやとても遅い。話にならんくらいです。
 mjpg-streamerはストリーミングサーバーとして機能しながら一定時間間隔で画像を保存する機能もあるのでこれを用います。

 RAMDISKとして構成したところにひたすらに画像を投げ込み、その画像を加工する別のプログラムで画像や映像を保存して消去するを繰り返す方法です。

Python:0x000C

 ffmpegとopencvは解決。

 ffmpegはOSをRasbian9(stretch)にすることでaptでインストール可能。stretchはマイナーチェンジが多いと聞いていたので、細かい問題がイロイロあるかと心配でしたが、そんなことはありませんでした。
 opencvは自力でコンパイルしないといけませんが、仮想環境上で作業すれば通る(通常環境ではmake中に落ちるもんだから停滞してた)。さらに、make install した後、pythonのコードの中にcv2を読み出すためのパスの設定が必要だったりしますが、理屈さえわかれば問題なし。実行環境であるzeroでコンパイルした方がいいと思ったのですが、30時間かかったのには驚いた。コンパイル中は仮想メモリを増やしてファンで空冷するのもお忘れなく。
 さらにpillow(PIL)と日本語フォントを入れ、映像・画像処理の基本体制は整備完了。ここまで来るのに1ヶ月かかりました・・・。

 opencvはver4まで出ていますが、ver3と並行して開発が進んでいるので、今回は資料が多いver3をインストール。ver3.4.6です。

 ストリーミングの母体はpistreamingをやめてmjpg-streamingにしました。pistreamingは便利ですが処理が不安定で遅いので断念。mjpg-streamingは自力コンパイルしないといけませんが、デーモンとして常駐させても使用メモリが少なく安定しています。映像の遅延もわずかだし。

大掃除ナリ

 このところ現場が少ないので、合間に所属会社の作業部屋の片付けをしています。
 数年来の試行錯誤実験の結果、ガラクタがすさまじく蓄積しているワケです。

 廃材で大きな棚をこしらえ、収納箱を仕入れ、明らかなのはもちろん「ひょっとすると使えるかもしれない」レベルも含めゴミを処分。
 単に整頓して詰め込んでも数ヶ月もするとどこに何が入っているかわからなくなるか戻せなくなって散らかるかのどちらかですから、収納は目的・種類を明記し余裕を持つのが大事みたいです。どこになにが入っているからわかりやすく、片付けやすく、物が増えても仕舞えるようにするのが良いようです。

 うーむ、スッキリ!

 こんな感じに片付けてスペースに余裕を作ると別なガラクタを持ち込んで放置する輩がおります。注意しても来るものは来るので、そういうガラクタを積むスペースもあらかじめ残しておきます。いわば「ゴミ置きスペース」ですね。
 工具棚とかストーブとか床に放置しがちな物はキャスターを付けたり専用の台車をこさえたりして移動しやすくしておきます。収納場所を決めておいても放置するなら移動しやすくしておけば現実的には解決です。
 管理された工場の様にはいきませんので、ズボラのリズムに合わせた機能やレイアウトをするのが良いようです。

 ・・・ズボラの代表は私ですけどね(笑)

 そうそう、こういった片付けでは100円ショップの小物が活躍します。ちょっとした小箱やペン立てなどはいいですよね。特に小部品の分類収納にはフタ付のプラスチックケースが大活躍です。
 ただ、100円ショップで買い物をすると店舗に在庫が無いけど同じ物が欲しい・・・って時があると思いますが、なんとダイソーさんは通販をやっているそうな。店舗では取り寄せをしてくれない代わりにこういったサービスがあるんでしょうかね。いまどきのウェブショップのように便利ではなくバーコードに併記されているJANコードを手打ちして商品を検索します。amazonさんや楽天さんの様な使い勝手を求めてはいけませんが、在庫が何時補充されるのかわからない商品を求められるのはありがたいですね。

 WEB注文 | ダイソー

 このページの注意書きに「1種類(アイテム)商品につき、500個より在庫がある場合は注文参ります。」とあります。店舗にある商品すべてを扱ってくれるワケでもなさそうです。
 限界まで経費削減して安価に商品を売ってくれるのですから贅沢を言ってはいけませんがね。

 フタ付のプラスチックケースがあと20個ほど欲しいので、JANコードを調べて試し買いしてみましょう。

追記

 「在庫が500個以上ある商品について、500個以上のオーダーを承ります。」
 ということらしい。
 小口は店舗で取り寄せ依頼をしてくれだそうな。
 店舗で取り寄せ対応してくれるならいいか。

Python:0x000B

 ffmepgとopencの連携がどうもうまくいかない。
 jessieを使っていましたが、どうやらstretchだといいらしい。
 ffmepgは、libとの関係やらライセンスの都合でjessieでは自家コンパイルになっていますが、stretchだとaptからインストールできるらしい。膨大なコンパイル時間も省けるし適切な依存関係を自動的に処理してくれるからその方がいいでしょう。H264のハードウェアエンコードも設定されているらしいし。
 そもかく振り出しに戻って設定しなおしです。

Python:0x000A

 PythonでOpencvがイイと先日書きましたが、Python3用Opencvはaptでもpipでもインストールできない。
 GitHubからダウンロードして自力でコンパイルしないといけない。

 ・・・うまくいかん。

 ネットの書き込みを参考にするのですが新旧取り混ぜてイロイロな情報があるもので、試行錯誤しているウチに余計なモノが入ったりで更にダメになる状況を爆走したいたようです。
 さらにはコンパイルは負荷が大きいのでチップが過熱して落ちることもあった様子。応急処置としてドライヤーで冷風を浴びせて過熱は落ち着く。

 最後の頼みでコンパイルしていますがどうなることやら・・・。
 やっぱりPython3を使いたいのでOpencvを何とかしないといけません。

 ffmpegといいOpencvといい、人気のツールなのにナゼ自家コンパイルなのかなぁ・・・。

『白血病』が液体のりで治ってしまうかも!?

 市販「液体のり」、白血病治療の救世主に? 専門家驚嘆

 私なりに要約するなら、白血病を治療するために有効で重要な細胞(代替造血細胞)を培養するための培養液として身近な「液体のり」や「洗濯のり」に多く含まれるポリビニルアルコール(PVA)が画期的であった、という話。

 安価で身近な製品に入っているPVAの精製は簡単で安価らしいので、白血病の薬(代替造血細胞)を安価に大量に製造できる可能性が高まったワケです。

 間違っても「液体のり」が薬になるって話ではありません。「液体のり」から薬を安く効率よく作れそうな物質を発見したって話です。
 飲んでもなおりません。
 誤解なきよう(笑)

 この発見は、それまでの常識感では試そうと考えもしなかった素材も含め、それこそ手当たり次第に総当りで取り組んだ結果なんだそうです。
 どれくらいのケースを試したのかはわかりませんが、研究をされた方々のご苦労は想像を超えるものでしょう。頭が下がる思いです。
 (発見がなかったら大馬鹿の無駄メシ食らいと呼ばれるでしょうから、ずいぶんと大胆な挑戦をしたんですね。)

 身内を癌で亡くしていますから、こういった発見はうれしいですね。

Python:0x0009

 このところ手をかけているWebCamera装置ですが、PythonのOpencvとPillowの二つのライブラリを使うともの凄い画像処理が驚くほど簡単にできます。

 まず、これらとcameraライブラリをPythonでインポートします。
 処理は、cameraから画像を取り込み、OpencvとPillowの二つで画像を処理し、Opencvで画像もしくは映像として保存する流れです。
 映像は高速紙芝居ですが、1コマ1コマにやりたいことの処理を与えるのです。

 今回はRaspberryPiZeroが母体ですから処理能力的に不足があります。
 WebPortを使ったストリーミングもしなければなりませんので、処理方法と処理速度を吟味してシステムをチューニングです。

 けど、OpencvとPillowの二つでここまでできるとは凄いですね。

 Pythonの便利ライブラリ(ツール)はpipでかインストールできないものが多いので、apt以外のインストール手段もイロイロ知るべきです。
 つか、Pythonのライブラリの本丸はpipみたいですね。無くては困る計算ライブラリのnumpyもpipからでないと最新版が手に入りません。
 pip自体はaptでインストールするのですが、それを説明してくれるサイトにたどり着くのに少々時間がかかりました。pipなんじゃそりゃ?なぜaptでインストールできない!・・・となっていたワケです。
 ただし、Python3用のpipを使う場合はPython-pip3とPython-dev3をインストールする必要があります。pythonのpipについて調べるとPython2以前の記事が多いので注意が必要です。pipでライブラリを入れろとあっても、これではPython3には対応しません。「apt-get install python-pip3 python-dev3」でpip3をインストールし、pipコマンドも「pip3」としないといけません。pipに関する記事があった場合、python2ならpipでいいのですが、python3ならpip3と読み替える必要があるということです。

 んでも、画像に字幕を入れるとか、画像と画像を合成するとか、そんなことがOpencvとPillowを組み合わせればいとも簡単に出来てしまうのは目から鱗のすばらしさ。

Python:0x0008

 頼まれて作らないといけない製品があります。
 スマホやタブレットからRaspberryPiを制御するのですが、これが簡単なようで簡単でもない。
 専用アプリが良いのでしょうが、仮に作れてもインストールには大きな壁がありますのでウェブ画面での操作が現実的です。

 このためにはRaspberryPi側のアプリケーションとタブレットのウェブの間で通信することが大前提ですが、ウェブソケットという手法を使うと案外簡単でした。
 RaspberryPi側はPython、ウェブ側はhtmlとJavaScriptで書くのですが、最近わかるようになってきました。以前はチンプンカンプンでしたのでそれなりに進歩したかな?
 ウェブソケットはRaspberryPi内でもプロセス間通信の手段として使えるので習得すれば便利だと思います。

 習作をいくつか書いて早く実装までもっていきましょう。

さすがとうか・・・

ファイル 2298-1.jpg

 ちょっとしたリモコンがあったので使っています。

 433MHzを使う汎用リモコンです。

 中国から仕入れますがとにかく安い。
 受信機の小さなメカニカルリレーでON/OFFをするだけですが、こんな簡単なことでも全部自作すると大変な労力だし費用もかかる。
 これはこれで良い製品です。

 これはON/OFFをAボタンとBボタンの組み合わせで設定できる。
 しかし設定方法が不明。購入サイトに説明書きはあるけどこの内容だけでは理解不能。マニュアルなど無い。中国から買う場合こういうことに覚悟しないといけません。
 試行錯誤して設定手順はわかりました。[A]ボタンでON、[A]と[B]ボタンの同時押しでOFFに設定できました。
 非接触で装置の電源をON/OFFするのに使うのでこれはこれで申し分なし。

 ですが・・・
 B級品を含む放出品や不良在庫品を「よくわからんけど細かいことはいいから売っちまえ」とやるみたいです。
 そのお陰で安価なのですから購入者責任と思うしかありませんが、「ゴミを売ろうが、金を儲けた奴が賢くて偉い」という大陸的な発想だなと思ったり。

 いや、世界尺度から見たら日本の常識感は売り手側に責任が大きすぎるのかもしれません。買い手側にも売り手側と同等の責任があると考えれば「お前は納得して買ったのだから不満があってもお前の責任だろう」となるワケです。
 「売買はお互いの納得の上」と考えれば間違っちゃいません。

 購入者の勝手な思い込みでも「この製品は違う!」となれば販売者責任での返品や補償が当然となっている日本の常識感で海外とやり取りしちゃいけないのでしょう、たぶん。

 ちなみに、中国からそこそこ高価な商品を買う場合、買う前に質問の様な脅しをした方が良いようです。
 「私はあなたの商品にとても興味と好感を持っていますが、こことここについて教えて欲しい。納得できたら即買うし、届いた製品が良かったら友人知人にも勧めるし、私はブロガーなので記事にもするよ。」などと嘘でも書いておくとガッツリ来ますよ。先方は金儲けが唯一無二なのですから、書き方はイロイロですが、こちらに配慮したら金儲けになるかもよと同じ目線感で送るワケです。
 たたしこれは、相手がこちらをビジネスパートナーの一人だと思うように仕向けることが目的であって、日本でありがちな売り手側の足元を見るような態度をとってはいけません。「買って欲しいなら買ってやってもいいよ」という見下した態度が伝わると金儲けよりプライドが先行してしまうらしく良い結果にはなりません。
 中国と直接取引きしている人から話を聞くと、彼らは商売においても「ファミリー」という身内な繋がりを大切にするのだそうです。ですから、ネット購入であっても、そういうカテゴリの末席の一人として思ってもらえるように配慮するといった方が正しいかもしれません。

 彼らは悪党ではありません。日本とは違った常識感で生きている真っ当な人たちです。

サイバスロン・・・0x01

 今朝のNHKニュースで初めて知りました。

 『コンピューターを意味する「サイバー」と、競技を意味する「アスロン」を組み合わせた「サイバスロン」』

 簡単に言うなら義手や義足などの装具を用いた競技スポーツ。
 不自由な一部を除いて常人以上の身体を持つ人による障害者スポーツ大会とは違う。どちらかと言えば装具の能力を競う感じ。

 公正なルールとジャッジで競うことは純粋な精神で高めあうことになるからいいと思う。
 なんと言っても、展示会やPVでのデモンストレーションよりわかりやすく、競技者の熱意や感動も混ざって発信されるから興味を引きやすい。ムービングライトだって、展示会のテーブルに置かれているより、実際の演目で使われているのを見せられた方が機能や効果がよく伝わるのと同じ。工業製品の宣伝はその機能や効果をわかやすく実感・体感してもらうことが大切だと思う。中身がどうなってるとか、こまけーことはどうでもいいんだよ(笑)
 (お菓子に目がない人でも小麦の栽培や製粉に興味は持ちません。)

 攻殻機動隊の義体やら鋼の錬金術師のオートメイルな世界ですねぇ。攻殻機動隊なら「タチコマ」もかな?
 これは面白そうなネタです。

 ボストンダイナミクスが出てきたら凄いことになりそうだけど、CGみたいに正確で安定感のある動きは見慣れ過ぎてて感動がすぐ薄れそうだし、技術が高すぎて競技にならないから客席が冷めちゃう?
 勝っても負けても競技者を称えたくなる、ロボコン感覚がいいのかもしれませんね。

ページ移動

過去ログ