chevron_left

メインカテゴリーを選択しなおす

cancel
勉強しないとな〜blog
フォロー
住所
未設定
出身
未設定
ブログ村参加

2021/04/22

arrow_drop_down
  • ゼロから作るDeep Learningやる - 8章 ディープラーニング

    ゼロから作るDeep Learningの学習メモ続き。 今回もコードはなし。内容的にも、知識的なもの。 今回で最後の章になる。 8章 ディープラーニング 認識精度向上について 「層数」について 「層を深くすること」の重要性 代表的なCNN 学習、推論の高速化 GPUでの高速化 分散学習での高速化 演算ビット数の削減での高速化 ディープラーニングの実用例 以上 ↓ GitHub公開のソースコード(MITライセンス) github.com 著作権表示、ライセンス文書 Copyright (c) 2016 Koki Saitoh deep-learning-from-scratch/LICENSE.…

  • ゼロから作るDeep Learningやる - 7章 畳み込みニューラルネットワーク

    ゼロから作るDeep Learningの学習メモ続き。 今回もコードはなし。コード書くのが面倒 考え方の理解が優先で。 7章 畳み込みニューラルネットワーク 構成要素 Convolutionレイヤ Poolingレイヤ 学習結果の可視化 CNNの例 以上 ↓ GitHub公開のソースコード(MITライセンス) github.com 著作権表示、ライセンス文書 Copyright (c) 2016 Koki Saitoh deep-learning-from-scratch/LICENSE.md at master · oreilly-japan/deep-learning-from-scrat…

  • ゼロから作るDeep Learningやる - 6章 学習に関するテクニック

    ゼロから作るDeep Learningの学習メモ続き。 今回はコードなしで、自分の学び・気づきのメモだけ。 6章 学習に関するテクニック 勾配の降りていき方 重みの初期化 バッチノーマライゼーション 正則化 ドロップアウト ハイパーパラメータの検証 以上 ↓ GitHub公開のソースコード(MITライセンス) github.com 著作権表示、ライセンス文書 Copyright (c) 2016 Koki Saitoh deep-learning-from-scratch/LICENSE.md at master · oreilly-japan/deep-learning-from-scrat…

  • ゼロから作るDeep Learningやる - 5章 誤差逆伝播法

    ゼロから作るDeep Learningの学習メモ続き。 5章 誤差逆伝播法 計算グラフ 各種レイヤの実装 ネットワークでの誤差逆伝播法の実装 以上 ↓ GitHub公開のソースコード(MITライセンス) github.com 著作権表示、ライセンス文書 Copyright (c) 2016 Koki Saitoh deep-learning-from-scratch/LICENSE.md at master · oreilly-japan/deep-learning-from-scratch · GitHub 5章 誤差逆伝播法 計算グラフ 厳密な数式より、計算グラフを使ったほうが分かりやすい…

  • ゼロから作るDeep Learningやる - 4章 ニューラルネットワークの学習

    ゼロから作るDeep Learningの学習メモ続き。 4章 ニューラルネットワークの学習 交差エントロピー誤差 ミニバッチ学習 微分 ニューラルネットワークでの勾配 学習の実施 python関連 ちょっとハマったこと importでやっていること リストへの要素の追加(1要素だけ) 実際に試した結果 以上 ↓ GitHub公開のソースコード(MITライセンス) github.com 著作権表示、ライセンス文書 Copyright (c) 2016 Koki Saitoh deep-learning-from-scratch/LICENSE.md at master · oreilly-jap…

  • ゼロから作るDeep Learningやる - 3章 ニューラルネットワーク

    ゼロから作るDeep Learning、少し進めたので、学習メモ。 GitHubでソースコードが公開されている。MITライセンス。 github.com このコードの一部を引用させていただくので、ひとまず、著作権表示と、ライセンス文書を記載しておく。 Copyright (c) 2016 Koki Saitoh ↓ ライセンスの全文 deep-learning-from-scratch/LICENSE.md at master · oreilly-japan/deep-learning-from-scratch · GitHub 3章 ニューラルネットワーク 3章 ニューラルネットワークは、前…

  • ドクターイエローとロマンスカー作った

    前回に引き続き、ペーパークラフトを夜鍋して作ってしまった。 作ったもの 前と同じキヤノンのcreativeparkから、 ドクターイエロー creativepark.canon 小田急ロマンスカー creativepark.canon どちらも、前回のE6系こまちと同じ作者さんで、小ぶりなサイズ。 製作過程 小田急ロマンスカー、新幹線より曲線少なくて楽かと思いきや、車体上部に重ね貼りするパーツがあり、そこで難儀した。いまいちうまく貼れなかった。 ドクターイエローは、こまちよりは面構成シンプルで、ちょっと楽だった。 前回はスティックのりで貼ってたが、すぐ乾くのでやりにくかった。 今回木工用ボンド…

  • かがやきとこまち作った

    子供がイベントで置いてあった新幹線のペーパークラフトを触ってたら、ブース担当の人にもらえた。 もしかして、こういうペーパークラフトってネットに転がってて、印刷すれば自分で色々作れるのでは?と思って調べたら、見つかった。 調べたもの これはJR西日本で、新幹線もあるし、その他特急、普通の電車も色々ある。 www.westjr.co.jp こっちはキヤノンのサイトで、電車もあるし、季節物、行事関係など役に立ちそうな物もある。 creativepark.canon 今回選んだもの 今回は、この2つをダウンロードして作った。 JR西日本のW7系(かがやき)と、 www.westjr.co.jp ↓ p…

  • M5Stampをバスおもちゃに仕込む - 8. 仕上げ

    ↓ 前回記事 nokixa.hatenablog.com 前回でだいたいできたが、最後に電源スイッチを付けたかったので、追加した。 結果 こんな感じで加工完了! 赤枠のところに、本体に穴をあけて、スライドスイッチをねじ止めし、電池ボックスと昇圧モジュールの間に配線した。 プログラム修正 電源スイッチを付けたのはすぐに電池がなくなってしまうからだが、子供へ説明するためのもっといい理由付けがしたい。 ということで、電源スイッチを入れたらLEDが光るように修正した。 生成AIに、「起動時にきれいなパターンでLEDが点灯するようにプログラム追加してください」と言ってみたら、こんな感じで作ってくれた。 …

  • M5Stampをバスおもちゃに仕込む - 7. BLE版プログラム

    ↓ 前回記事 nokixa.hatenablog.com Bluetooth Low Energy (BLE)を使えば、Wi-Fiのときより低消費電力で、電池からでも動かせるのでは?と考えたので、それをやってみる。 BLE消費電力 第一弾プログラム プログラム ビルド 動作 LightBlueアプリでの操作 M5Stamp側の挙動 クロック周波数変えて低消費電力化 プログラム ビルド 実行 仕様改善 プログラム ビルド 動作 以上 BLE消費電力 調べてみたが、あまりいい情報はなし。 Bluetooth Low Energyの低消費電力 - フィールドデザイン 無線LANでは、100mくらいの…

  • M5Stampをバスおもちゃに仕込む - 6. 電力問題

    ↓ 前回記事 nokixa.hatenablog.com 前回、Wi-Fi接続を使って、ブラウザからバスのボタンプッシュと同等の操作ができるプログラムを作ったが、問題があったので、それを整理する。 問題点 このプログラムを、USB接続で動かしているときは問題なかったが、電池からの給電で動作させようとすると、起動せず、バスのボタンを押しても反応がなかった(=バスおもちゃに電源供給されていないと思われる)。 原因 M5Stamp C3でWi-Fiを動かすと結構消費電力が大きいのが原因のようだった。 LEDチカチカするだけのプログラムに戻したら、電池で動いた。昇圧モジュールが壊れたかとも思っていたが…

  • M5Stampをバスおもちゃに仕込む - 5. コード作成、コンパイル

    ↓ 前回記事 nokixa.hatenablog.com 前回、Wi-Fi接続するプログラムをPlatformIOで作成できたので、今度は当初の目的のアプリケーション(スマホからブラウザアクセス、Webページのボタンを押して、バスおもちゃの音を鳴らす)を作っていく。 概要 ソースコード等 ソースコードでやってること ビルド 実動作 ここまで 概要 生成AIにソースコードとプロジェクト開発手順を作ってもらっているので、それを実機で動かしていく。 ソースコード等 生成AIに作ってもらったのは下記の通り。 バスのボタンへのIO番号は実際の接続に合わせて書き換えている。 main.cpp #inclu…

  • M5Stampをバスおもちゃに仕込む - 4. Wi-Fi接続

    ↓ 前回記事 nokixa.hatenablog.com 今回は、Wi-Fi接続を確認する。 概要 M5StampでのWi-Fi接続は前やったが、このときはESP-IDFを使ったやり方だった。 nokixa.hatenablog.com 今回のバスおもちゃ改造では、PlatformIOの開発環境を使うので、ここでのWi-Fiの扱い方を確認する。 やったこと まずは前回記事と同じ手順で、Wi-Fiテスト用にPlatformIOのプロジェクトを作成。 生成AI(Perplexity)に、PlatformIOでの開発方法を聞いている文脈で、「Wi-Fi接続をするプログラム」ということで聞いて、コード…

  • M5Stampをバスおもちゃに仕込む - 3. 開発環境用意

    ↓ 前回記事 nokixa.hatenablog.com 前回ハードはできたので、プログラミングを進めていく。 やること PlatformIOインストール プロジェクト作成 サンプルプログラム作成 ソースコード編集 platform.ini編集 デバイス接続 コンパイル、実行 サンプルプログラム2つ目 以上 やること 前まで、VSCodeと拡張機能のEspressif IDFで開発していたが、生成AIに今回こんなことをやりたいと聞いた(課金している知り合いに聞いてもらった)ところ、PlatformIOというツールでの開発例を教えてもらったので、PlatformIOをやってみる。 Platfor…

  • M5Stampをバスおもちゃに仕込む - 2. はんだ付け

    ↓ 前回記事 nokixa.hatenablog.com 前回に引き続き、バスのおもちゃへのM5Stamp組み込みを進めた。 今回ははんだ付け作業。 やったこと 前回の手書き回路図をもとに、部品をはんだ付けした。 結果 こんな感じに配線した。 収納するとこんな感じ。 バスおもちゃ自体のプッシュボタンの回路接続を調べると、なんと片側がVCCに直結していた。 GND接続とプルアップかと思っていたので、想定外。 M5Stampからオープンドレイン出力で制御しようと思っていたが、それだとミスった時に、VCCとGNDがIOピンを介して直結になってしまう。 ということを心配して、IOピンとプッシュボタンピ…

  • M5Stampをバスおもちゃに仕込む

    M5Stampを久しぶりに触る。 子供のおもちゃで、ちょうどいい条件のものがあったので、これにM5Stampを仕込んで、改造してみる。 おもちゃ概要 対象のおもちゃはこれ。 バスの形をしていて、横にボタンが付いていて、押すと「ピンポーン 次、止まります」と音が出る。 ] www.dropbox.com 妻が誰かからもらったものだが、画像検索すると、「げんき」という雑誌の付録のよう。 げんき 2020年 12 月号 [雑誌] 本 通販 Amazon 中を開けてみる(ねじは△だが、マイナスドライバーで無理やり開けた)と、こんな感じ。 中にいい感じのスペースがあって、M5Stamp入れたり…

  • ゼロから作るDeep Learningやる - 2章 パーセプトロン

    「ゼロから作るDeep Learning」をやって、きちんとDeep Learningの基礎を理解したかったので、購入した。 www.oreilly.co.jp GitHub - oreilly-japan/deep-learning-from-scratch: 『ゼロから作る Deep Learning』(O'Reilly Japan, 2016) 読んでコードも書きながら、ブログにも記録していく。 2章 パーセプトロン 1章はPython自体とかnumpyとかの説明なので省く。 2章から進める。 内容は、パーセプトロンの説明と、それを使った論理ゲートの実装。 パーセプトロンをクラスで実装し…

  • OpenCVやってみる - 58. Homography訂正

    以前の記事で、シャルトル大聖堂の写真を使って、特徴点マッチングとHomography(射影変換)の記事を書いたが、射影変換でカメラ視点変換しようと思うと、被写体が同じ平面上にないといけない(1つの行列で変換できるのは同じ平面にある点に限られる)、というのを今回知ったので、訂正記事として書く。 nokixa.hatenablog.com 前の記事振り返り やること まず元と同じことを実施 射影変換行列計算 射影変換実施 マッチング点描画 マッチング点変更 左側の塔でも確認 以上 前の記事振り返り 上の記事でやったのは、 カメラ向きを変えて撮影した3枚のシャルトル大聖堂の写真を使用 特徴点を検出 …

  • 楽天証券で個別株買ってみる

    3月の話だけど、やってみてたので記事にする。 まだまだ初心者で何も分かってないので、変なこと書いててもご容赦ください。 概要 前回は国内株と米国株それぞれの投資信託を試していたが、今回は個別株で気になる企業の株を買ってみる。 企業の情勢とかに関心を持てるきっかけになるかと。 検索 楽天証券のアプリで、国内株式で検索してみる。 まずこんな感じでランキングが出てくる。 トヨタさんが気になるので、開いてみると、こんな感じ。 1株3680円 (24/3/3時点)。 売気配とか、売数量とか、出来高とか、はよく分からない。 「個別銘柄の詳細を見る」を開いてみると、チャートとか出てくる。 この時点では、株価…

  • OAK-D S2進める - 3. 手検出サンプル3

    OAK-D S2の続き。 nokixa.hatenablog.com 概要 環境構築 コード変更 実行 うまく動かない… 対処 実行結果 image raw_world world mixed 以上 概要 前回のサンプルから、検出した手を3Dで表示するサンプルがあったので、それをやってみる。 使ったサンプルはこれ。 depthai_hand_trackerのリポジトリの中の、examplesディレクトリ内にあるもの。 前回、前々回に使ったものの中に含まれている。 github.com なお、今回の記事は、Jupyterで実行した結果を、一部編集して掲載している。 環境構築 Open3Dのインス…

  • OAK-D S2進める - 手検出サンプル2

    前回の続き。 nokixa.hatenablog.com やったこと 環境 実施 モデル変更 BPF使用 モデル変更&BPF使用 ここまで やったこと 前回のhand_trackerのサンプルで、OAK-Dデバイスでなく動画ファイルを入力にできるとのことで、試した。 内部でMediaPipeが使用されているので、普通にMediaPipeを使うのでもいいかもしれないが、こちらではBPF(Body Pre Focusing)が用意されているので、結果が良くなるかもしれない。 前のピアノ弾いてる動画で。 環境 前回と同じGitHubリポジトリで。 github.com 前回下記のようにクローンしたも…

  • <備忘録>HTMLで折り畳みコンテンツ

    折り畳みコンテンツの作り方、何回か使って、以前のブログ記事にも載せたが、記事の中に埋もれてしまって、少し探してしまったので、今後すぐ参照できるように。 書き方 <details> <summary> クリックで開く/閉じる </summary> コンテンツ </details> detailsとsummaryどっちが外側だったか、内側だったか、すぐ忘れてしまう。 HTML5から登場したもののよう。 IEでは対応していないらしい。 detailsとsummaryタグでアコーディオンを作る - HTMLリファレンス とりあえずはてなブログのMarkdownモードで書いてる限りは、これで動いてる。 …

  • OAK-D S2進める - 手検出のサンプル

    また続き。 ユースケース 最初のステップの次として、HelloWorldのほかに書かれているのが、ユースケース例。 DepthAI’s Documentation — DepthAI documentation Luxonis これを見ると、Hand Trackingのサンプルが出ていたので、これをやってみたい。 Hand Tracking 上記のTry Nowをクリックすると、GitHubのページに飛ぶ。 github.com これを読んでみた感じ。 GoogleのMediaPipeのHand Trackingのモデルを使っている。 Body Pre Focusingという機能を入れてい…

  • OAK-D S2進める - HelloWorld

    OAK-D S2の続き。 Hello World GitHubリポジトリクローン 環境作成 実行 ここまで Hello World 公式ドキュメントを見ると、デモアプリを動かしてみた次のステップとして、HelloWorldプロジェクトでコーディングしてみよう、というのがある。 Hello World — DepthAI documentation Luxonis コーディングのしかたは、読んでみて、そういう感じかー、と。 これを実行してみた。 GitHubリポジトリクローン リポジトリはここにあるので、これをクローンする。 github.com git clone https://gith…

  • OAD-D S2進める - USBケーブル

    去年の10月に買ってから全然進んでいなかったので。 今回はUSBケーブルの件について。 nokixa.hatenablog.com 概要 OAK-D S2では7.5Wの電力が必要だったが、今使っているPCのUSB3.0 Type-Aポートでは供給不可能だったので、 Thunderboltのポート(コネクタ自体はType-C)に接続する必要があった。 それに使えそうなType-C - Type-Cのケーブルを去年の11月のブラックフライデーのとき、Amazonで購入した。 Amazon.co.jp: RAMPOW USB-C & USB-C ケーブル【100W PD対応/USB 3.2 Gen …

  • 姿勢推定アルゴリズム調べ

    姿勢推定に今までOpenPose、MediaPipe、YOLOv8を使ってきたが、他にも色々あるようなので整理してみる。 2024年2月現在調べたところで。 まだ調べ切れていないかも。 フリーで使えるもの(とは言えライセンスの制約あり)と、商用のものに分けてみる。 個人で使いたいので、後者はあんまり関心ないが、一応リストしておく。 フリーのもの OpenPose AlphaPose HRNet YOLO MediaPipe 商用 VisionPose AsillaPose Pose Proposal Network (PPN) Actlyzer 以上 フリーのもの OpenPose GitHu…

  • 楽天証券状況

    金曜から値動きし始めたばっかりだが、早速上がってる。嬉しい。 米国株式・・・5000円入れて+122円(+2.44%) 国内株式・・・2000円入れて+19円(+0.95%) 米国株式のほうがいい感じ? まだ数日しか見てないからなんとも言えないか。

  • 楽天証券でなんかやってみる

    楽天証券と、NISA口座の設定ができたので、とりあえず商品購入とか積立設定とかしてみる。 らくらく投資 楽天証券さんがらくらく投資というのを用意してくれてるので、やってみる。 投資がよくわかってないし、なんとなく調べてみても頭に入ってこないので、とにかくやってみるのがいいだろうと思う。 らくらく投資で、まずいくつか質問されて、おすすめコース診断してくれるが、一番冒険的な、がっちりコースになった。 楽天証券さん的にはそっちに寄せようとするのか。 NISAつみたて投資枠で、毎月1000円にしておいた。 設定したが、2月中頃に審査?とかがあって、最初にお金を出すのが3月頭になるとのこと。ちょっと先が…

  • YOLOv8試し

    会社で必要になったので、YOLOのv8を試してみる。 公式GitHub やりたいこと 環境準備 推論実行 GPU使う GPU使って推論 以上 公式GitHub github.com ↑ 頻繁にバージョンアップするので、v8.1.0のタグが付いているところのリンク。 ドキュメント見ると、YOLO v5でやったときだとGitHubリポジトリからクローンして使っていたが、今はpipでインストールすればいいだけになっているよう。 やりたいこと 人物の姿勢推定をやりたい。 前OpenPoseでやってみたが、最近のYOLOでも簡単にできるようになっているようだったので、やってみる。 以降はJupyterで…

  • 楽天証券でNISA口座

    作ってみたのでメモ。 なぜ作ったか 会社で営業さんと話してて、新NISAの話とか出てきて、ついていけなかったが、調べてみてもあんまりピンとこず、実際にやってみたら実感して理解もできるだろうと。 ということで少なめの資金でちょっとだけやってみようかなと。 あわよくばお小遣い稼ぎになればいいな。 なぜ楽天証券にしたか このページを参考にして選んだ。 【2024年】新NISAおすすめ口座5選【証券会社・銀行を比較】|たあんと どのNISA口座でも、つみたて投資枠なら特に手数料はかからないので、特に問題はないかなと。 ただ、auと楽天のポイントはよく使うので、楽天証券かauカブコム証券がいいかなと。 …

  • かまぼこいたのイタコ続き

    かまぼこいたのイタコとか、追加で作った。 nokixa.hatenablog.com 全員集合 かまぼこいたのイタコ x1追加、トイレットペーパーのしんのすけx2新規作成。 イタコ比較 左が前回、右が今回作成。 かまぼこ板自体の木目と、目の間隔の違いで、ちょっと顔の印象が変わってるかも。 トイレットペーパーのしんのすけ 2つ作成。 確保したトイレットペーパーの芯の一つが茶色なので、ガングロしんのすけに。 あと、画像の印刷が実物より小さいので、顔のパーツも小さめに。 でもこれはこれでいい感じかなと。 以上。

  • かまぼこいたのイタコ作った

    お正月に買ったかまぼこの板が出たので、作ってみた。 概要 おかあさんといっしょの中のコーナー「やくめをおえてこのたび自由になりました団」の中に出てくる、かまぼこ板のキャラクター。 Xユーザーの作り方を作るさん: 「NHK Eテレ「おかあさんといっしょ」で「やくめをおえてこのたび自由になりました団(やくおえ団)」という映像を企画・制作しました。 アニメーションはうえ田みお、アートディレクションは貝塚智子という逸材の二人。共に企画から参加。(佐藤雅彦) 放送:毎週土曜日 7:45am~、5:00pm~ https://t.co/w1RxwRUA7A」 / X 他に作ってみた人。 わかる人にはわかる…

  • M5Stampでcaptive portal

    今回はM5Stampの続き。 まだExampleを試してみる。 Captive Portal Example captive portalとは プロジェクト作成、ビルド、実行 実行結果 プロジェクト中身 以上 Captive Portal Example 今回やってみるのは、protocol > http_server > captive_portalのところ。 説明を見ると、「すべてのDNS IP questionsをsoftAPのポイントにリダイレクトして、すべてのHTTPリクエストをcaptive portalのルートページにリダイレクトする」という感じのことが書かれている。 Andro…

  • はてなブログでページ内リンク

    はてなブログの書き方の備忘録。 Markdown記法でやる前提。 簡単なやり方 どこからやり方調べたか忘れたが、一番簡単なやり方。 まず、普通に#で見出しを書く。 複数の#でレベルを下げた見出しにもリンクできる。 # リンク先1 ## リンク先2 リンク元では、以下のように書く。 なお、Markdownだと、見出しを書くときに#の後ろに半角スペースが必要だが、ここでは不要。 ※レベル下げした見出しでも#1個でオッケー [リンク元1表示](#リンク先1) [リンク元2表示](#リンク先2) 以下試し リンク元1表示 リンク元2表示 リンク先1 内容だよ 前の記事の画像だよ リンク先2 内容その2…

  • M5Stampでhttpサーバー

    M5Stampの続き。 今回もサンプルプロジェクトから。 やりたいこと サンプルプロジェクト確認 HTTP基本 プロジェクト作成、ビルド、実行 実行 クライアント側からテスト テスト方法 curlコマンドでテスト 色々実行結果 PowerShell、GETメソッド PowerShell、POSTメソッド bash、GETメソッド bash、POSTメソッド 参考: M5Stamp出力全部 以上 やりたいこと 前にM5StampでWi-Fiが使えることが確認できたので、サーバー機能を入れたりして、子供のおもちゃをIoT化したときの機能の一つとして使いたい。 サンプルプロジェクト確認 サンプルプロ…

  • QsyncでPCデータバックアップ

    2年前にQNAP製NASを自宅に導入して、特に大きな問題なく運用できている。 今までYOLOとかOpenPoseとかを動かしたときは、全てPC上でローカルで動かしてたが、PCがいかれてしまう心配があるのと、PCの前にいないと結果を見られないのがちょっと嫌なので、この辺りをNASに自動バックアップするようにする。 NASはそこそこ容量がある(ディスクは3TB)ので、そこは問題ないはず。 参考 この記事を参考に、PCにQsyncをインストールして動かす。 QNAPさん自身の記事だが。 note.com Qsyncインストール 参考記事に書いてあるQNAP公式URLからインストーラをダウンロードする…

  • M5Stamp LED制御動かす

    M5Stamp続き。 やってみたこと M5StampのLEDを動かしてみたいと思って、いくつかやってみた。 M5Stamp LEDについて M5Stamp C3には、"programmable RGB LED (SK6812)"というのが付いている。 docs.m5stack.com 回路図を見ると、こんな感じで、電源とDOUT、DINの計4ピンだけが出ているシンプルなもの。 このDINが、ESP32-C3のGPIO2に接続されている。 SK6812を調べてみると、マイコン内蔵のRGB LEDとのこと。 NeoPixelというブランド名が付いている。 romly.com 秋月でも売られていて、…

  • M5StampでWi-Fi

    前回に引き続き、M5Stampいじってみる。 やってみること Example Projectが色々あったので、手あたり次第やってみる。 ぱぱっと色々試せそう。 Wi-Fiサンプル M5Stampで興味あることの一つはWi-Fi機能。 試しに家のWi-Fiに接続できるか? ESP-IDFでサンプルを調べると、"Wi-Fi Station Example"というのがある。 これはWi-Fiのアクセスポイントへの接続のサンプルのよう。 プロジェクト作成 前回の手順で。 こんな感じのプロジェクトが開いた。 下のコンソール出力がちょっと気になるが… プロジェクト設定 まずはターゲットデバイスを設定。 コ…

  • M5Stampやってみる

    スイッチサイエンスでOAK-D S2を買ったのと同時にM5Stampを買っていたので、これに手を付けてみる。 買ったもの M5Stampとは? 動かす手順 PCに環境構築 VSCodeから環境構築 拡張機能インストール セットアップ実施 Example Projectやってみる プロジェクト作成 プロジェクト設定: ターゲットデバイス設定 プロジェクト設定: SDK設定 C/C++ Configuration ビルド実施 バイナリサイズ確認 シリアルポート設定 書き込み実行 プログラム動作 今回ここまで 買ったもの 買ったのは、M5Stamp C3 (5個入り)。 M5Stamp C3 (5p…

  • USBケーブル選び

    前回、まともにOAK-D S2を動かそうと思うと、USB TypeC - TypeCケーブルが必要ということがわかった。 ので、Amazonとかで選んでみる。 USB TypeC で検索 したら、色々出てくる。価格も1000円前後でお手頃。 と思ったら、「映像出力に対応していません」とか書いてある。 さらによく見ると、「480Mbpsで高速ファイル転送」とか書いてある。 いつの時代の話じゃ👨🏻‍🦳 OAK-D S2はUSB 3.0以上の通信レート必要そうだったので、これでは使えない。 検索条件変更 Amazonアプリの検索窓に入力してると、「usb 3.2 gen 2 type-c」と言うのが…

  • OAK-D S2買った

    買おうか悩んでいたOAK-D S2、前々回の記事書いた直後にポチッとして、H ZETTRIO見た帰りに受け取った。 ということで、さっそく開封、動かしてみる。 まず開封 動かしてみる 公式ドキュメント見てみる チュートリアルを動かしてみる 電力確認 PCのUSBポート仕様 USB規格の電源関連 OAK-Dの消費電力 結論 チュートリアル続き プレビュー変更 AIモデル変更 今回はここまで まず開封 外箱はしっかりしてる。 iPhoneぐらい、というと言い過ぎだが、そんな感じの質感。 開けると、まずカメラの表面が出てくる。 真ん中と、その左右にカメラのレンズが見える。 上下逆だった。 カメラの下…

  • H ZETTRIOさん町田で見てきた

    自分の生活圏内の町田で、H ZETTRIOさんがライブされるということで、10/14(土)に行ってきた。 http://worldapart.co.jp/hzettrio/live/2023-10-14sat-special-speed-music-night-with-h-zettrio-in-machida-citizens-hall/ 会場は町田市民ホール。 15時開場、16時開演。 開場時間ちょうどに来た、結構並んでる。 本日の催物。 入場ゲート通ると、列ができてて、そこに並んだ。が、よく見たらグッズ販売の列だった。 せっかくなので並んで、ソクドくんキーホルダー¥800を購入。 会場入…

  • OAK-D買っちゃおうかな

    ステレオカメラ興味 ピアノの指の動きの認識をやろうと思ったときに、ステレオカメラが欲しいなと。 3次元的な動きをちゃんととらえたい。 ステレオカメラ、市販品でどんなのがあるかなと調べると、IntelのRealSenseか、Luxonis社のOAK-Dシリーズぐらいしかなく。 ビジネス向けなら色々あるのかもだが、買いにくいし高そうだし。 スイッチサイエンス Luxonis社特設サイト www.switch-science.com Intel RealSense store.intelrealsense.com Intel RealSenseはすでに生産中止になっていて今後の発展が見込めないし、価…

  • スマホでコードブロック横スクロール

    はてなブログの体裁の話。 前に、コードブロックの1行が長いときに折り返さずに横スクロールできるようにする設定をした。 が、スマホで見てみると、やっぱり折り返しになってしまっていた。 これに対処して、スマホでもコードブロックの横スクロールできるようにしたので、備忘録。 前にやったこと はてなブログ管理画面の「デザイン」→「カスタマイズ」→「デザインCSS」で、記述追加。 (どこまでがこのときの対応部分だったか不明) /* ソースコードの囲み */ pre.code { margin-bottom: 1.5em; padding: 1em; background: #333; color: #ee…

  • MediaPipeやってみる - 2

    MediaPipeの公式サイト見てたら、ブラウザ上ですぐ試せるデモがあったので。 公式サイト Hand Landmark Detectionを試す (ついで1) ブログ用のgif加工作業 (ついで2) MediaPipeで顔隠し 今回はここまで 公式サイト MediaPipe Studio MediaPipeに入っている色々なモデルを試せる。 入力元をPC内蔵のWebカメラにできるので、使いやすい。 これはObject detectionを試した例。 Hand Landmark Detectionを試す 左のバーから、Hand Landmark Detectionを選択。 どの程度ピアノ弾いて…

  • MediaPipeやってみる - 1

    前回まで、OpenPoseを使って画像からの人の姿勢推定をしてたが、GoogleのMediaPipeでもそういったことができると聞いたことがあるので、試してみる。 参考 MediaPipe概要確認 conda環境作成 まずMOT16で試し。 自分のピアノ動画でやってみる。 hand_landmarker使う モデルファイル 結果の可視化 オプション見直し サンプル画像で試し もしかして色フォーマット間違えてた? 以上 参考 yoppa org – MediaPipeで遊んでみる 【MediaPipe】手の形状検出をやってみた DevelopersIO pipでpython環境に簡単にインス…

  • OpenPoseやってみる - 4

    OpenPose続き。 nokixa.hatenablog.com やっておきたいこと 使うデータ ほかにも お台場ガンダム はにわ ディズニーランドのくまさん 初音ミクさん カッチカチのひと ポケモン 兵長イラスト 小ネタ : Bingチャットでバッチファイルのコード生成 ffmpegでまとめてできないか? Bingチャットに聞いてみる OpenPose実行 ガンプラ お台場ガンダム はにわ ディズニーランドのくまさん 初音ミクさん カッチカチのひと ポケモン 兵長イラスト 処理時間について 解像度ごとの違い 出力形式による違い 入力解像度への依存性 今までの画像データで再確認 MOT16 …

  • OpenPoseやってみる - 3

    前回に続き、OpenPoseのデモをもう少し動かしてみる。 nokixa.hatenablog.com やってみること 解析対象の動画は、前と同じくMOT16で。 OpenPoseDemo.exeのフラグを色々と試してみる。 手と顔の認識 --faceと--handのオプションで認識が追加される。 1個ずつやってみる。 .\bin\OpenPoseDemo.exe --image_dir ..\..\MOT16\train\Mot16-09\img1\ --face (base) PS C:\work\openpose_test\openpose> .\bin\OpenPoseDemo.exe…

  • OpenPoseやってみる - 2

    前回の続き。 公式のOpenPoseのサンプルから試しに動かしてみる。 nokixa.hatenablog.com ビルド済みバイナリを動かしてみる リリース版ダウンロード モデルダウンロード デモ実行 今回はここまで ビルド済みバイナリを動かしてみる Pythonから動かす前に、ビルド済みバイナリを動かしてみることが推奨されていたので。 github.com リリース版ダウンロード Windows版のv1.7.0をダウンロードする。 Release OpenPose v1.7.0 · CMU-Perceptual-Computing-Lab/openpose · GitHub ダウンロードし…

  • OpenPoseやってみる - 1

    次のネタ。 OpenPoseを使って、画像からの人の姿勢推定をやってみたい。 概要 やり方候補 OpenPoseの学習済みモデルを、OpenCVのdnnモジュールで読み込む tf-pose-estimationリポジトリを使う pytorch-openpose OpenPose公式のドキュメント やり方選択 ここまで 概要 こちらはOpenPose本家のGitHubページ。 github.com リポジトリの最終更新は2023年7月だが、最新リリース版は2020年11月のv1.7.0になっている。もう開発は止まっているのかもしれない。 コードはC++メインで書かれているよう。 できればPyth…

  • GPU使ってYOLO動かす

    前回、YOLOをお試しで動かして画像認識したが、CPUでの動作だった。 今回、Windows環境でGPUを使えるようにセットアップする。 nokixa.hatenablog.com 参考サイト 物体認識に使う画像 セットアップ手順 NVIDIAドライバーインストール Build Tools for Visual Studio PyTorch確認 CUDA Toolkitインストール cuDNNインストール 既存conda環境のPyTorchでGPU使えるようにする 本当に現状のPyTorchでGPU使えないのか? よく見たら、torchモジュールで確認できそうだった PyTorchインストール…

  • 画像物体認識お試し

    前回、カメラ(EZVIZ CP1)からRTSP受信できることが確認できたので、画像からの物体認識を簡単に試してみる。 nokixa.hatenablog.com やり方 condaでYOLO試し用の環境作成 GitHubリポジトリのクローン 環境セットアップ コマンドプロンプトでanaconda使う設定 condaコマンドでrequirements.txtを読み込む案 conda環境にpipをインストールして、pipでやる案 画像物体認識 以上 ついで やり方 YOLOv5を使う。 今はYOLOv8が出てるが、会社でYOLOv5を使ったことはあって、動かすまでが簡単だったので。 GitHubの…

  • ネットワークカメラ(EZVIZ CP1)買った3

    引き続きカメラを動かしてみる。 今回はPCからの制御をやってみる。 前回記事。 nokixa.hatenablog.com 参考 Ezviz Studioのインストール Ezviz Studioの起動 カメラ画像閲覧 スクリーンキャプチャ カメラの動きの動画 詳細設定 RTSP受信 以上 参考 今度も同じブログの記事を参考にします。 EZVIZ CS-C6N PCからの閲覧方法 - ネットワークカメラ推進会 Ezviz Studioのインストール 参考サイトの通り、公式サイトからインストーラをダウンロードして実行。 Ezviz Studioの起動 起動すると、まずWindowsのファイアウォー…

  • ネットワークカメラ(EZVIZ CP1)買った2

    購入したネットワークカメラ(EZVIZ CP1)を設定して動かしてみます。 前回記事。 nokixa.hatenablog.com 参考にしたサイト 手順 概要 スマホにアプリダウンロード アプリの設定 (アカウント登録) カメラ設定 カメラ操作してみる 参考にしたサイト www.networkcamera.work 型式が少し違うが、違いは見た目だけと思われる。 というより、そう思って今回のCP1を買いました。 手順 概要 大まかにやることは、 スマホにアプリダウンロード アプリ設定 (アカウント登録) カメラ設定 カメラ操作 です。 スマホにアプリダウンロード 私はiPhoneを使っている…

  • ネットワークカメラ(EZVIZ CP1)買った

    amazonで買って届いた。 EZVIZ CP1です。 前回記事。 nokixa.hatenablog.com 外観 外箱。 内容物一通り。 カメラ本体、USBケーブルと電源、取付関係とあとは取説とか。 カメラのサイズ感。 前に買ったDell G15 (15.6インチ)と並べて。 これだとよくわからないかな。 そこそこ存在感ある感じ。 カメラ裏側。 他のサイトで見た通り、LANポート(RJ45)とUSB micro-Bコネクタ。 付属のUSBケーブル、異様に長い。 3mということなので、確かにこんな長さか。 4つ折りにしてこんな感じ。 ここまでで 一旦記事はここまでで。 次回実際に動かしてみま…

  • ネットワークカメラ買いたい2

    引き続き、ネットワークカメラ探し。 まずWebカメラ見てみる TP-Linkで見てみる EZ-VIZで見てみる EZVIZ BM1 EZVIZ BC2 EZVIZ C6W EZVIZ C6N EZVIZ CP1 ということで まずWebカメラ見てみる Amazonで「Webカメラ ptz」で、かつ10,000円以下の条件で調べてみたが、9000件以上出てきてうへぇとなる。 「コネクティビティ技術」で「USB」を選んだら、1000件ちょっとに減ったのでちょっとほっとする。 出てきた候補見ると、本当にPTZ機能付いてるのかよくわからない。 【2023新モデル】 WEBカメラ 4K オートフォーカス…

  • ネットワークカメラ買いたい

    ディープラーニングやりたいということでPCを買いましたが、ディープラーニングで何をやりたいかというと、画像からの物体認識をやりたい。 会社でそんなことをやっていて、面白いので自分でもやってみたいと思い。 どこかから画像を拾ってきて物体認識をやるだけでもいいかもですが、カメラを使ってリアルタイム処理できると面白そうかなと。 前iPhone+DroidCamアプリでもやりましたが… nokixa.hatenablog.com amazonのプライムデーのときにネットワークカメラも色々セールで出ていて、見ていたら欲しくなったという経緯です。 結局そのときは買ってはいませんが、PCを買って何をやろうか…

  • ブラウザ表示の見たまま印刷

    ブラウザで見たページを、見た通りのまま印刷する方法についてです。 自宅のインターネットのルーター設定をブラウザからいじって、結果を印刷しようとしてうまくいかなかったので調べました。 このサイトを参照。 ホームページの印刷をすると崩れてしまう。見たままに印刷する方法・2021年版 名古屋のホームページ制作会社・ゴリラウェブ やり方候補 Chrome拡張機能 よく出てくるのは、Chromeの「FireShot」という拡張機能を使う方法。 ただ、なんだか有償版への誘導がうるさい。 Edge機能 Edgeでは、標準で「Webキャプチャ」機能がついているよう。 「ページ全体をキャプチャ」という選択肢…

  • PCセットアップ続き

    前回の続き。 色々インストールしたもの VSCode Git Anaconda PowershellからAnaconda使う設定 ここまで 色々インストールしたもの VSCode コードを見たかったので。 普通に公式サイトからインストーラを落としてきて、インストール実施。 インストール時、コンテキストメニューへの追加の設定があったので、チェックを入れる。 ここで入れ忘れても、確かもう一回インストーラを動かせば設定できたような。 Pythonコードを含むフォルダを開いてみると、PythonのExtentionと、Gitのインストールを勧められたので、その通りに。 Git 公式サイトからダウンロー…

  • PCセットアップ

    新PC購入後のセットアップのメモ。 自分の備忘録的な意味で。 まずやったこと色々 画面拡大率 Google Chromeインストール McAfeeが入ってたのでアンインストール 秀丸 iTunes OneDrive設定 画面リフレッシュレート Dropbox こんなところで まずやったこと色々 画面拡大率 デフォルトで125%になってたので、100%に変更 なんかデスクトップ画面が狭い感じだった 変更して広々した Google Chromeインストール Edge使おうとも思ったが、ほかのデバイスと同期できるほうがいいなと思い。 履歴とブックマークとか。 ブックマークはあんまり使ってないからこれ…

  • PC購入

    PC買っちゃいました。 選択の過程 結論 今はハイエンドPC買い時らしい 今後 選択の過程をば。 選択の過程 ディープラーニングやりたい GPU付きのパソコン欲しい、今のがそれなりに古くなってきたのもあるし 予算はしょっぱく、とりあえず貯金した中から、20万ぐらいまで GPU付けるとなると、デスクトップの案も出てくる (今はノートPC使ってる) ただ、今家が物であふれてて、デスクトップ置く場所に困る あと、デスクトップだと、パソコンの前に向かわないといけなくなる。ノートPCならリビングに持っていって使える。ちょっと億劫。(リビングは主に子供スペースなのでデスクトップ置けない) GPUは、今会社…

  • OpenCVやってみる - 57. Optical Flow

    OpenCVのOptical Flowを試してみる 画像からの動き検出をやってみたいと思っています。 OpenCVの公式チュートリアルの中で、Optical Flowが取り上げられていて、これでできそうなので、やってみます。 OpenCV: Optical Flow 対象データ 同じデータを使っても面白くないので、別のデータで。 MOTChallengeの中のMOT16のデータを使ってみたいと思います。 https://motchallenge.net/data/MOT16/ 色々と動画データがありますが、特に密なOptical Flowを計算するときは背景が動いていない(カメラが固定されてい…

  • OpenCVやってみる - 56. GitHubでexe公開

    今回で春のパン祭り点数集計のアプリも仕上げです。 GitHubのrelease機能を使って、exeを公開してみます。 下記を参考にしましたが、基本的にはGitHubのガイドに従うだけです。 【GitHub】exeファイルを配布する方法 - しまぞうブログ 改めてGitHubのリポジトリのリンクを貼っておきます。 github.com 手順 参考サイトでは、既存のtagを使っていましたが、今回はRelease機能上でtagも一緒に新規作成しました。 GitHubリポジトリトップで、"Create a new release"をクリック。 スクリーンショットは取り忘れました(´-`) "Choos…

  • OpenCVやってみる - 55. exe化変更、リポジトリ調整

    今回は、exeをGitHubに上げる前に、いくつか調整しておきます。 変更点は、GitHubリポジトリに反映しています。 github.com exe化の変更 その他変更 PowerShellスクリプト化 requirements.txt生成 ついで 以上 exe化の変更 Pyinstaller生成物フォルダを変更 pyinstallerフォルダを作って、その中にbuildとdistのフォルダを生成するようにしました。 アプリのアイコン追加 --iconのオプションで指定可能。 お絵描きソフト(よく使っているdrawio)で適当なアイコンを作り、iconフォルダを作ってそこに配置しました。 p…

  • OpenCVやってみる - 54. Nuitkaでexe化

    今回は、前回に引き続きexe化をやります。 前はPyinstallerを使いましたが、今回はNuitkaを試してみます。 conda環境作成 Nuitkaインストール Nuitka実行 exe実行 ここまで conda環境作成 前回用意したconda環境はかなり最小限のものでしたが、Pyinstallerがどうしても余分になってしまいます。 なので、環境を再作成します。 前と同じコマンドとなります。 実行結果は省略します。 conda create -n harupan_nuitka python=3.7 conda activate harupan_nuitka pip install op…

  • OpenCVやってみる - 53. Pyinstallerでexe化

    予定通り、春のパン祭り点数集計アプリのexe化をやってみます。 今回は基本的にはJupyterを使わない記事です。 スクリプト更新 exe化 処理時間表示 conda環境再作成 Pyinstallerでexe化 変更内容 Pyinstaller実行 その他オプション指定 処理時間再確認 ここまで スクリプト更新 今まで、tkinterを使ったGUIはJupyter上で試していただけなので、スクリプトに追加します。 スクリプトは、GitHubに上げました。 今までprivateリポジトリとして用意していましたが、今回ライセンスファイル(MITライセンス)も追加したうえでpublicにしてみました…

  • OpenCVやってみる - 52. GUI調整

    今回は、春のパン祭り点数集計GUIの微調整をしていきます。 調整項目 主に調整したいのは、 画像更新停止ボタン追加 ある程度点数認識できたら間違っている部分を目視で確認、点数修正、という使い方を想定しているので。 ウィンドウサイズに応じた表示サイズ調整 目視確認しやすいウィンドウサイズに調整したいので。 の2点。 あと細かい調整。 点数集計結果はLabelウィジェットを使って表示 前までは、画像に点数表示エリアをくっつけて表示していましたが、今はGUIでの表示手段があるのでそれで。 cv2.VideoCaptureのopen()のタイムアウト設定 open()やread()に失敗したときは、接…

  • OpenCVやってみる - 51. VideoCaptureタイムアウト設定

    春のパン祭り点数集計GUIの調整をしています。 調整項目の一つとして、VideoCaptureの接続タイムアウト設定がありました。 iPhoneに入れたDroidCamアプリ経由で画像を取得する場合、割り当てられているIPアドレスが場合によって変わるので、IP設定を間違えて接続しようとしてしまうことがあり。 そうすると、前のコードでは、1分近く接続待ちしてしまうことがありました。 その間アプリを落とすこともできないと。 これを解決すべく、接続のタイムアウト設定のしかたを調べてみましたが、これで1記事にしておきます。 なかなかいい情報が見つからず、大変だったので… 結論 以下のコードで、Vide…

  • OpenCVやってみる - 50. 点数集計処理組み合わせ

    今回は、今まで作ったGUIに、点数集計処理を組み合わせていきます。 処理組み合わせ 去年の点数集計処理と、今回のGUIを組み合わせるだけです。 前回はtkinter.Frameを継承したアプリを一度作り、その後で関数をオーバーライドしたりしましたが、今回は最終的な形のものをまとめて作ります。 from harupan_data.harupan import * import tkinter as tk import cv2 from PIL import Image, ImageOps, ImageTk import queue import threading class harupan_g…

  • OpenCVやってみる - 49. スレッドで並列処理

    前回の続き。 今回は、春のパン祭りシール点数集計の処理を組み合わせていく前に、アプリ内処理の並列化をします。 スレッドで並列処理 GUIのクラス化 GUIと画像取得部分の分離 (スレッド化) ここまで スレッドで並列処理 前回はGUI上でのキー入力でカメラ画像更新をしましたが、実際は操作なしで更新するようにしたいところ。 ということで、処理をいくつかに分けて、それぞれ並列処理で別々に動かすことで、画像の自動更新を実現します。 GUIのクラス化 並列化する前に、少しコードを整理しておきたい。 今まで見てきたTkinter参考では、tkinterのクラスを継承してアプリケーションを作っていることが…

  • OpenCVやってみる - 48. GUIでカメラ画像表示

    前の記事通り、GUIでのカメラ画像表示をやってみます。 前回と前々回の内容の組み合わせ+αです。 カメラ画像表示 キー入力受付 今度こそカメラ画像表示 ここまで カメラ画像表示 前回、前々回の内容に加えて、OpenCV画像→PIL画像の変換があるぐらいです。 下記参照。 【Python/tkinter】OpenCVのカメラ動画をCanvasに表示する イメージングソリューション after()での待ちを入れていますが、いまいち理解できていないので、まずはキーボード入力で更新するようにします。 キー入力受付 と、そのためにはTkinterでキー入力受付が必要。 下記参照で。 Tkinter:…

  • OpenCVやってみる - 47. PythonでGUI

    前回の続きです。 春のパン祭りアプリをexe化する前に、PythonでGUIを作れるようにしておきます。 今回の記事はJupyter notebookでやった内容の貼り付けです。 Tkinter試し GUI基本(テキスト表示、文字入力、ボタン) 少しだけ試し 画像表示 ここまで Tkinter試し PythonでGUI作成するのに、いくつか良く使われるライブラリがあるようですが、今回はTkinterを使ってみます。Pythonインストール時に標準で付いてくるそう。 まずは簡単なGUIを動かしてみる。 以下を参考にしました。 https://python.keicode.com/advanced…

  • OpenCVやってみる - 46. カメラ変更

    久し振りの更新です。 今年も春のパン祭りが始まり、シールも早速集まってきた(もらった)ので、去年のシール点数自動集計を改めて触ってみました。 いくつか本体の処理以外でやったことがあるので、記事にしておきます。 今回は、Jupyter notebookのエクスポートではなく、普通にはてなブログ上で書いた記事です。 内容 カメラの変更 一旦ここまで 内容 カメラの変更 去年はPC内蔵のカメラを使っていましたが、モニタ側に向いているインカメしかないので、シール台紙を映しながら結果を確認するのがやりづらく。 iPhoneをWebカメラ化する方法があるようだったので、これを試しました。 exe化 Pyt…

  • DTMやってみたい - 2. 音楽理論

    DTMやってみたいの続きです。 音楽理論 本も色々あるみたいですが、まずはネットで調べられないかということで。 下記のサイトがよさそうだったので、一通り読んでみました。 https://sleepfreaks-dtm.com/category/music-theory-beginner/ 読んだ感じ。 音のインターバル(完全1度、長2度、完全4度、等々)はちゃんと把握しておこう。 ここにも一覧があった、参考になる。 https://composer-instruments.com/theory-interval/ ハノンのスケールの練習したことがあるので五度圏わかる!ハノンやっててよかった! …

  • DTMやってみたい - 1. やりたいこと

    時間が空いちゃいましたが、ブログ更新しておこう。 やりたいこと 前のテーマが終わったので次何しようかと。 で、DTMやりたいなと。 エレクトーンやってます(就職してから始めたのでそんなぐらいのレベル(´・ω・`)、今は時間が取れてなくてやってない)が、エレクトーン自体は持ってない。 練習は基本電子ピアノで、メトロノーム機能とちょこっと音色があるぐらい。 GarageBandで伴奏データ打ち込んでみたことはある、やっぱりドラムベースあると違う。 ヤマハのシンセ(MX61)を随分前に買ったが、全く使いこなせてない。でもちょっといじってみた感じ、面白そうな予感。 という感じの背景があり、 DTMやっ…

  • OpenCVやってみる - 45. 高速化処理で再確認(最終回のはず)

    今回は、前回高速化した処理で、PCカメラ画像のリアルタイム処理をやってみます。 今度こそ最終回! 準備 修正したスクリプトの読み込み、テンプレートデータとSVMデータの読み込み。 from harupan_data.harupan import * svm = load_svm('harupan_data/harupan_svm_220412.dat') templates2021= load_templates('harupan_data/templates2021.json') リアルタイム処理 これは前々回と全く同じです。 def realtime_harupan(): cap = cv…

  • OpenCVやってみる - 44. 処理の調整5(高速化)

    春のパン祭り点数集計、前回で最後のつもりでしたが、1つ高速化の手段を思いついたので、もうちょっとがんばります。 変更内容 下準備 スクリプト読み込み テンプレートデータ、SVMデータ読み込み 処理変更 変更処理試し 処理時間計測 いざ実施 探索範囲を変えてみる 以上 変更内容 前に処理の様子を見た感じ、ICPアルゴリズムで時間がかかっているようでした。 テンプレートの輪郭点と対象輪郭の輪郭点間の最近傍点を探索するのに、輪郭上の全点間の距離を計算していたので、それが時間がかかったのかと。 思い付いたことは、 輪郭の点データは、輪郭の周に沿った順番に並んでいたので、全部の点からの探索をしなくてもい…

  • OpenCVやってみる - 43. 仕上げ(最終回)

    今回は、春のパン祭りのシール点数集計の仕上げになるかと。 リアルタイム処理作成 PCのカメラ画像を連続的に取得して、点数集計を実施します。 今年は現状3枚の春のパン祭り台紙が用意できているので、これで確認します。 下準備 スクリプト読み込み テンプレートデータ読み込み SVMデータ読み込み を行います。 今回は、今年(2022年)の春のパン祭り点数の集計をやろうと思うので、2021年のテンプレートデータを使用します。 from harupan_data.harupan import * svm = load_svm('harupan_data/harupan_svm_220412.dat') …

  • OpenCVやってみる - 42. 処理の調整4

    まだ春のパン祭りの続きですが、1点だけ処理の調整を試したいと思います。 -- 追記 -- 今までmarkdown記法でブログを書いていると、ときどき画像がうまく表示されない(半角スペース4つのブロックの後に画像が表示されない)問題があって、前にはてなブログさんに修正の希望を出していましたが、どうも前回の記事を書いているときから、直っているようでした。 はてなさんありがとう~ 変更内容 今まで見た点数輪郭では、"0"を除いて、その内部には輪郭を含みませんでした。 これを利用して、ICP処理を実施する前に候補輪郭を絞り、処理の高速化ができないか、試してみます。 "0"の輪郭は除外されてしまいますが…

  • OpenCVやってみる - 41. 処理の調整3

    春のパン祭りシールの点数文字認識処理は、これ以上調整はなしにしようと思っていましたが、もう少しがんばってみます。 方針 前回の結果で、問題点の1つは シールの白抜き部分(点数文字が含まれる)の間隔が小さく、輪郭がつながってしまう ということだったかと。 画像の2値化処理のところに戻って、うまく調整できないかと考えました。 2値化の調整 今作っている処理では、色相(Hue)、彩度(Saturation)を使って、点数シールのピンク領域を前景領域とした2値化画像を作っています。 今まで使った7つの画像と、前回うまくいかなかった画像でいくつか試してみます。 一旦まずはライブラリ等の下準備を。 imp…

  • OpenCVやってみる - 40. カメラ画像取得

    春のパン祭り点数集計も仕上げの段階ですが、今回はPCのカメラ画像を取得できるようにしたいと思います。 カメラから画像取得 OpenCVチュートリアルの最初のほうでやっています。 これを試してみます。 https://docs.opencv.org/4.x/dd/d43/tutorial_py_video_display.html やることは、cv2.VideoCapture()でVideoCaptureオブジェクトを作り、read()で画像データを1枚得る、というところです。 import cv2 %matplotlib inline from matplotlib import pyplot…

  • OpenCVやってみる - 39. 点数計算処理実装

    今回は、点数計算の実アプリケーション作成に向けて、以下の処理を検討します。 画像1枚を受け取ってからの一連の処理 点数計算 処理フロー 点数計算アプリケーションは、ストリーミングされている画像データから、1枚取り出して計算処理を実施・表示、というのを繰り返すイメージで考えます。 処理の流れは、 画像を1枚取得 点数文字の候補となる輪郭を検出 各輪郭について、一致度ベクトルを計算 SVMに通して、どの数字なのか、それとも数字の輪郭でないのか判定 判定結果の数字を足して、総点数を計算 結果の表示 最後の結果の表示ですが、おそらく誤認識は発生するので、総点数を表示するだけではなく、どこの輪郭を何点と…

  • OpenCVやってみる-38. 処理の調整2

    春のパン祭り点数文字認識処理を調整していますが、なかなか完璧にはいかず… 調整は今回までにして、実際のアプリケーションを作っていく方向に進めたいと思います。 今回変更したこと 色々調整していて、以下変更しました。 数字テンプレートとする輪郭データを、cv2.minAreaRect()での角度を元にまっすぐに直しておく。(効果はあまり出なかったが、処理を整理できたので、この変更版処理を使っておきたい) ICP処理の中で、最近傍点探索処理があったが、この高速化を行った。 点数文字認識処理の区切り方を修正した。 一致度計算では、cv2.matchTemplate()関数を使っていたが、2つのサイズの…

  • OpenCVやってみる - 37. 処理の調整

    春のパン祭り点数計算は前回までの処理でおおよそできるようになりましたが、少し調整していきます。 ICP収束条件 初期変換行列での判定 文章を整える気があまりなく… 以下雑な文章ご容赦で。 下準備 Jupyter notebookを改めて作っているので、始めに必要な処理を再度行います。 ライブラリインポート 画像データ読み込み 必要な関数の定義(今回は点数文字候補輪郭の検出) 点数文字テンプレートのデータ準備 いらなさそうなデバッグ表示などは削除しておきます。 スクリプトにまとめておいたほうがいいかな… ライブラリインポート、画像データ読み込み import cv2 import numpy a…

  • OpenCVやってみる - 36. SVMで数字判定

    前回からの続きです。 Jupyter notebookのデータ等の状態も引き継いでいます。 前回は、春のパン祭りシール台紙の画像から点数数字の輪郭を取得、数字テンプレートと比較して一致度を出して、固定の閾値で判定してみましたが、いまいちきっちりとは判定できませんでした。 検討してみたところ、結果的にOpenCVに含まれているSVM(Support Vector Machine)のライブラリを使うことでうまくいくようになりました。 判定方法検討 前回は抽出した点数数字の輪郭から、各数字のテンプレートと比較して、一致度が閾値を超えたもの(の中で最大の一致度を取る数字)を選びました。 各数字ごとへの…

  • OpenCVやってみる - 35. 複数データで点数判定実施

    春のパン祭りが始まりましたが、まだ点数自動計算ができず… むずい… 方式変更 前まで検討していた点数判定方法を実際のデータで試したところ、うまくいかず。 特に"5"の文字の判定が困難でした。 経過は省きますが、以下の点を変更しました。 "0"以外での比較方法の修正 "0"以外の文字での比較ですが、前回まではテンプレート→対象輪郭の変換行列を求めて、変換後テンプレートと対象輪郭の塗りつぶし画像を比較していました。 ただ、変換行列を求めた後に逆変換行列を求め、テンプレートの塗りつぶし画像(1回生成すればいい)と逆変換をかけた対象輪郭の塗りつぶしを比較する、というほうが処理が軽くなるかと考えました。…

  • OpenCVやってみる - 34. "0"の文字比較

    連続の投稿になりますが、続きです。 2月1日から春のパン祭りスタートらしいので、ペースアップ中です… 今回は前回の記事と同じJupyter notebookでやっているので、画像読み込みなどの下準備は省きます。 楕円近似による"0"の判定 "0"の文字の判定についてです。 前回考えた手法を再掲します。 楕円で近似、近似した楕円とテンプレートマッチングを実施、一致度が閾値以上であれば"0"の文字であると判定 ひとまずテンプレート選択に使用したのと同じ画像を使って試してみます。 手順は、 各輪郭について、楕円近似を行う 各輪郭周辺の小画像を用意する 輪郭の塗りつぶし画像、近似楕円の塗りつぶし画像を…

  • OpenCVやってみる - 33. アフィン変換行列推定、"0"以外の文字比較

    前回の続きです。 今回は実際に文字テンプレート - 比較対象輪郭間のアフィン変換行列の推定、比較を行ってみたいと思います。 下準備 今まで通りの画像読み込み、下処理です。 import cv2 import numpy as np %matplotlib inline from matplotlib import pyplot as plt import math img1 = cv2.imread('harupan_190428_1.jpg') img2 = cv2.imread('harupan_190428_2.jpg') img3 = cv2.imread('harupan_20031…

  • OpenCVやってみる - 32. 輪郭の変形(考察のみ)

    あけましておめでとうございます。 1月も半分以上過ぎてしまいましたが、今年初めての記事です。 今年も引き続き春のパン祭りシール点数集計をやっていきます。 去年の3月から始めて、色々寄り道しながらゆっくり進めてきましたが、 今年の春のパン祭りに間に合うように完成させたいな。 今回の内容 前回テンプレート画像を用意したので、今回は基本的にテンプレートマッチングを実施するだけです。 ただし、台紙を斜めから撮影することによる変形も考慮したいと思います。 以下進めていきます。 輪郭の変形 シール台紙をカメラで撮影するとき、人間がやるのであれば多少なりともカメラの角度がシール台紙の垂直軸からずれます。そう…

  • OpenCVやってみる- 31. テンプレート画像作成

    春のパン祭りシール点数集計の続きです。 前回のおさらい 前回までで、ひとまず点数文字の輪郭が取れるようになりました。 Hue,Saturation情報を使って2値化 階層認識ありで輪郭を検出、最上位階層の1つ下の輪郭を検出 ここから、テンプレートマッチングを使って文字の認識、識別をしていきたいと思います。 今回はテンプレート画像を用意するところまでとします。 検討内容 シール画像でのテンプレートマッチングをやりますが、いくつか考慮の必要なことが。 どうやってテンプレート画像を用意するか シールのデザインが年ごとに違ったので、その辺も要検討かな。 輪郭のままでテンプレートマッチングするか? 輪郭…

  • OpenCVやってみる- 30. 点数文字輪郭検出3

    引き続きの春のパン祭りシール点数集計。 前回の結果再確認 前回の結果をよく見ると、点数文字の輪郭をきちんと取れていない部分がありました。 3つ目の画像で、中央上部の'1'、'2'の輪郭が取れていません。 対応を検討します。 様子チェック まずは問題の画像を見てみます。 import cv2 import numpy as np %matplotlib inline from matplotlib import pyplot as plt img3 = cv2.imread('harupan_200317_1.jpg') img3 = cv2.resize(img3, None, fx=800.…

  • OpenCVやってみる- 29. 点数文字輪郭検出2

    春のパン祭りシール点数集計の続きです。 今回の内容 前回、春のパン祭り画像から点数文字の輪郭を取得できましたが、まだ1画像でしか試していないので、 他の画像でもやってみます。 関数化 いつも通りの手順ですが、内容が増えてきたので、関数化しておきたいと思います。 関数の内容は、 画像のリサイズ 2値化 輪郭検出 になります。 リサイズについて 画像のリサイズについては、今までは固定の縮小率にしていましたが、今回はリサイズ後の画像サイズの目標を設定して、それに向けたリサイズをするようにします。 前回も少し考えたように、 シール台紙は画像全体の縦横半分程度は写るようにする シールが縦横に5個ずつ並ぶ…

  • OpenCVやってみる - 28. 点数文字輪郭検出

    前回の続きです。 春のパン祭り点数集計を進めていきます。 方針再検討 前回の結果を振り返りつつ、改めて方式を検討します。 前回の状況 Hue画像での2値化から、シール領域の輪郭取得を実施した シールの重なりにより、輪郭どうしがつながってしまっていた 輪郭がつながってしまった件について、Watershedアルゴリズムも考えていましたが、参考サイトを見ると、まずシール領域の中心付近の領域を取得して、そこから領域を広げていきながら境界を見つける、という処理のよう。 前回の画像を見ると、収縮処理や距離変換でシール領域の中心を見つけるのは難しそう。 ということでWatershedアルゴリズムもやってみた…

  • OpenCVやってみる - 27. シール外形検出

    前回の内容 春のパン祭り点数集計で、最初に台紙外形の検出をすることを考えていましたが、どうも難しそうなので諦める方向で。 前に考えた手順は、 台紙外形を取得する 射影変換をするのと、スケーリング(台紙を基準として画像サイズを調整する)に必要 射影変換実施 シール外形、中心点取得 シール位置でテンプレートマッチング というものですが、台紙外形取得と射影変換は諦めます。 それに代わる変換処理が必要ですが、 シール外形を楕円で近似、楕円の軸方向に圧縮、伸張する シール外形サイズから画像スケーリング という手でどうかと考えました。 ということで、改めて手順を書くと、 シール外形取得 シール外形を楕円で…

  • OpenCVやってみる - 26. 台紙外枠検出その2

    前回の続きになります。 おさらい 前回までのおさらいです。 以下のような手順で台紙外形取得を試みました。 Cannyエッジ検出実施 輪郭検出(最外周のみ)実施 面積最大の輪郭を選ぶ 輪郭を単純な多角形で近似、四角形になっていればOK 問題だったのは、 背景が複雑なパターンになっていて、最外周輪郭が乱れる 四角形に近似できなかった なぜかよく分からない検出不良 の2つです。 まずは使用データと検出コードを示します。 import cv2 img1 = cv2.imread('harupan_190428_1.jpg') img2 = cv2.imread('harupan_190428_2.jp…

  • OpenCVやってみる- 25. 台紙外枠検出

    予告通り、春のパン祭り台紙の外枠検出です。 今後は基本的にJupyter notebookで試した後、markdownでダウンロードしてブログに貼り付ける形になると思います。 台紙外枠の取得 まずは台紙外枠の取得から始めてみたいと思います。 改めてサンプル画像を示します。 import cv2 img1 = cv2.imread('harupan_190428_1.jpg') img2 = cv2.imread('harupan_190428_2.jpg') img3 = cv2.imread('harupan_200317_1.jpg') img4 = cv2.imread('harupan…

  • OpenCVやってみる - 24. Jupyter notebook使ってみた

    コマンドプロンプト上でずっとやっているのも大変なので、Jupyter notebookを使ってみました。 見た目もよくなりそう。 Jupyter notebook 使い方 Anacondaをインストールすると、一緒にJupyter notebookが入ってきます。 Windows10環境で使っていますが、検索バーに入力すると出てきました。 起動すると、いつも使っているブラウザが開きます。 デフォルトではWindowsのユーザディレクトリが開くようです。 適当な作業ディレクトリを作って移動、New > Python3 と選択すると、新しいノートブックが作成されて開きます。 コードを書いて実行でき…

  • OpenCVやってみる - 23. シール点数集計検討

    今回はOpenCVネタです。 いままでチュートリアルを追ってきましたが、そろそろ本題の春のパン祭り集計を考えていこうかと。 使えそうな手 今までチュートリアルを見てきた中で、いくつか有用そうなテクニックがありました。 射影変換 台紙を真正面から撮影していなくても、真正面からの視点に変換できます。 ロバスト性を上げるのにいいかと。 ヒストグラム、2値化 春のパン祭りだと、年によりますがシールの色が濃いピンク色、台紙はだいたい白となっていて、この色味でシール領域、台紙領域を区別できます。 画像の平滑化 普通の2Dフィルタだとシールのエッジもぼけてしまいますが、バイラテラルフィルタだといい感じにエッ…

  • ZYBOを進める - 28. Petalinux再設定

    前回カスタマイズしたFSBLを作ったので、これをPetalinuxプロジェクトで取り込みます。 また、MACアドレス関連の設定もPetalinuxで行います。 さらについでに、ルートファイルシステムをSDカードに設定します。 Petalinux作業 petalinux-configコマンドを実行して、以下のように設定します。 ルートファイルシステム設定 Image Packaging Configuration ---> Root filesystem type と進みます。 "EXT4 (SD/eMMC/SATA/USB)"を選択します。 前のツールバージョン(2017.4)では単に"SD …

  • ZYBOを進める - 27. VitisでFSBL作成

    ZYBOの続きです。 今回は、以前にやったFSBLのカスタマイズを、Vitisツールを使ってやってみたいと思います。 このカスタマイズは、ZYBOのEEPROMに入っているMACアドレスを取得するためのものです。 Vitis使うのは初めてですが、どんな感じなのか。 一応Vitis参考を載せておきます。 Zynq-7000 FSBL - Xilinx Wiki - Confluence ひでみのアイデア帳 Vitis起動 Avnet社のガイドに従うと、Vitisのデスクトップアイコンが作成されています。 これをダブルクリックでVitisを起動します。 eclipseベースのツールらしく、ワークス…

arrow_drop_down

ブログリーダー」を活用して、勉強しないとな〜blogさんをフォローしませんか?

ハンドル名
勉強しないとな〜blogさん
ブログタイトル
勉強しないとな〜blog
フォロー
勉強しないとな〜blog

にほんブログ村 カテゴリー一覧

商用