勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

2021-01-01から1年間の記事一覧

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

春のパン祭りシール点数集計の続きです。 前回のおさらい 前回までで、ひとまず点数文字の輪郭が取れるようになりました。 Hue,Saturation情報を使って2値化 階層認識ありで輪郭を検出、最上位階層の1つ下の輪郭を検出 ここから、テンプレートマッチングを使…

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

引き続きの春のパン祭りシール点数集計。 前回の結果再確認 前回の結果をよく見ると、点数文字の輪郭をきちんと取れていない部分がありました。 3つ目の画像で、中央上部の'1'、'2'の輪郭が取れていません。 対応を検討します。 様子チェック まずは問題の画…

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

春のパン祭りシール点数集計の続きです。 今回の内容 前回、春のパン祭り画像から点数文字の輪郭を取得できましたが、まだ1画像でしか試していないので、 他の画像でもやってみます。 関数化 いつも通りの手順ですが、内容が増えてきたので、関数化しておき…

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

前回の続きです。 春のパン祭り点数集計を進めていきます。 方針再検討 前回の結果を振り返りつつ、改めて方式を検討します。 前回の状況 Hue画像での2値化から、シール領域の輪郭取得を実施した シールの重なりにより、輪郭どうしがつながってしまっていた …

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

前回の内容 春のパン祭り点数集計で、最初に台紙外形の検出をすることを考えていましたが、どうも難しそうなので諦める方向で。 前に考えた手順は、 台紙外形を取得する 射影変換をするのと、スケーリング(台紙を基準として画像サイズを調整する)に必要 射影…

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

前回の続きになります。 おさらい 前回までのおさらいです。 以下のような手順で台紙外形取得を試みました。 Cannyエッジ検出実施 輪郭検出(最外周のみ)実施 面積最大の輪郭を選ぶ 輪郭を単純な多角形で近似、四角形になっていればOK 問題だったのは、 背景…

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

予告通り、春のパン祭り台紙の外枠検出です。 今後は基本的にJupyter notebookで試した後、markdownでダウンロードしてブログに貼り付ける形になると思います。 21.11.22 修正 cv2.drawContour関数の使い方に間違いがありました… 第2引数は輪郭のリストにし…

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

コマンドプロンプト上でずっとやっているのも大変なので、Jupyter notebookを使ってみました。 見た目もよくなりそう。 Jupyter notebook 使い方 Anacondaをインストールすると、一緒にJupyter notebookが入ってきます。 Windows10環境で使っていますが、検…

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

今回はOpenCVネタです。 いままでチュートリアルを追ってきましたが、そろそろ本題の春のパン祭り集計を考えていこうかと。 使えそうな手 今までチュートリアルを見てきた中で、いくつか有用そうなテクニックがありました。 射影変換 台紙を真正面から撮影し…

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

前回カスタマイズしたFSBLを作ったので、これをPetalinuxプロジェクトで取り込みます。 また、MACアドレス関連の設定もPetalinuxで行います。 さらについでに、ルートファイルシステムをSDカードに設定します。 Petalinux作業 petalinux-configコマンドを実…

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

ZYBOの続きです。 今回は、以前にやったFSBLのカスタマイズを、Vitisツールを使ってやってみたいと思います。 このカスタマイズは、ZYBOのEEPROMに入っているMACアドレスを取得するためのものです。 Vitis使うのは初めてですが、どんな感じなのか。 一応Viti…

OpenCVやってみる-22. エピポーラ幾何

今回は、OpenCVチュートリアルの以下のページを参考に進めてみたいと思います。 OpenCV: Epipolar Geometry エピポーラ幾何の理論はチュートリアルサイトの説明を参照で。 今回のテーマ画像 特徴点検出、特徴量算出 マッチング Fundamental matrix計算 Epipo…

ZYBOを進める - 26. ツールバージョン変更(2020.2)

前回の続きです。 前回はVivadoプロジェクトでのビットストリーム生成まで行いました。今回はこれをPetalinuxプロジェクトに取り込みます。 Petalinuxツールでの手順 Petalinuxプロジェクトの作成 まずはPetalinuxプロジェクトの作成。 入力: petalinux-crea…

ZYBOを進める - 25. ツールバージョン変更(2020.2)

久しぶりにZYBOのほうを進めたいと思います。 内容 前回(既に1年前…)までは VMWare + Ubuntu18.04 Vivado 2017.4 Petalinux 2017.4 の環境を使っていました。 ただ、今回はXilinxツールのVitisも使っていきたいと思っていて、使用するツールバージョンを新し…

OpenCVやってみる-21. 特徴点マッチングとHomography

今回もだいたいチュートリアル通りの内容です。 前々回と前回で、違う視点から同じ対象を撮影した2つの画像での点の対応を見つけることができました。 この結果を使って、射影変換の行列を計算し、画像の視点変換をすることができます。これをやってみます。…

OpenCVやってみる-20. 特徴点のマッチング(FLANN)

前回のやり残しで、FLANNでの特徴点マッチングをやります。 OpenCV: Feature Matching 特徴点のマッチング — OpenCV-Python Tutorials 1 documentation 概要 前回のおさらいですが、FLANNはFast Library for Approximate Nearest Neighborの略で、近似的に特…

OpenCVやってみる-19. 特徴点のマッチング

今回は特徴点のマッチングです。 今までにやった特徴点検出、特徴量生成を元に、2つの画像を比較、同じものが写っている点を探す、 というような感じです。 2つの画像というのは、具体的にはステレオカメラで撮影した画像だったり、ウォーリーを探せのウォー…

OpenCVやってみる-18. ORBによる特徴点検出、特徴量記述

前回の予告通り、ORBをやってみます。 OpenCV: ORB (Oriented FAST and Rotated BRIEF) ORB (Oriented FAST and Rotated BRIEF) — OpenCV-Python Tutorials 1 documentation ざっくり紹介、理論 SIFTやSURFは特許を取られていて自由に使えない その代替とし…

OpenCVやってみる-17. BRIEF

今回はBRIEFをやってみます。 OpenCV: BRIEF (Binary Robust Independent Elementary Features) ざっくり理論 BRIEFは画像中の特徴点の特徴量を生成する方式のひとつです。 SIFTやSURFでは、特徴点の特徴量を表すのにそれなりに大きなデータ量(1点あたりSIFT…

OpenCVやってみる-16. FASTアルゴリズムによる特徴点検出

前回の続き、FASTアルゴリズムを試します。 コーナー検出のためのFASTアルゴリズム — OpenCV-Python Tutorials 1 documentation ざっくり理論 画像の各画素について、これを中心として周長16ピクセルになる円周(半径およそ3ピクセル) 上の画素を調べ、決まっ…

OpenCVやってみる-15. SURFによる特徴点検出

前回のSIFTに続いて、今度はSURFでの特徴点検出です。 SURF (Speeded-Up Robust Features)の導入 — OpenCV-Python Tutorials 1 documentation SURFはSIFTに比べて高速化を目指したアルゴリズムとのこと。 発表は2006年になります。特許が取られていて、まだ…

QNAP NAS購入-1

NAS

自分のPCのハードディスク容量がそもそも256GBしかなく、iPhoneで撮った写真(子供の写真)が増えてきたので、NASを買ってみました。 PCデータとiPhone写真のバックアップが目的。 NAS型番、仕様 購入したのはQNAP社のTS-230。 購入の決め手としては、 RAID1構…

OpenCVやってみる-14. SIFTによる特徴点検出

今回はSIFTを扱います。 SIFT (Scale-Invariant Feature Transform)の導入 — OpenCV-Python Tutorials 1 documentation SIFTは、2004年にブリティッシュコロンビア大学のD.Loweが発表したもので、 キーポイントの検出、特徴量の計算を行うアルゴリズムとのこ…

OpenCVやってみる-13. Harrisコーナー検出

今回はHarrisコーナー検出をやります。 今更ですが、チュートリアルサイトの順番通りでなく、多少飛ばしている部分もあります。 Harrisコーナー検出 — OpenCV-Python Tutorials 1 documentation Harrisコーナー検出 理論はチュートリアルサイトに書いてある…

OpenCVやってみる-12. ハフ変換(円検出)

どんどん続きを進めます。 次はハフ変換による円検出。 ハフ変換による円検出 — OpenCV-Python Tutorials 1 documentation ハフ変換による円検出 円上の点は、以下の式を満たします。 直線検出のときと同様、この式のパラメータ()の空間に、 その円上に乗っ…

OpenCVやってみる-11. ハフ変換

今回はハフ変換をやってみます。 ハフ変換による直線検出 — OpenCV-Python Tutorials 1 documentation ハフ変換 ハフ変換は2値画像を直線のパラメータ空間に持っていくような変換、 ということでいいのかな。 空間中の直線は、以下の式で表すことができます…

OpenCVやってみる-10. テンプレートマッチング

かなり時間が空いてしまいました… 引き続きOpenCVのチュートリアルをやっていきたいと思います。 今回はテンプレートマッチングをやろうかと。 春のパン祭りシール点数集計的には結構使えそうな内容です。 テンプレートマッチング — OpenCV-Python Tutorials…

OpenCVやってみる-9. 輪郭検出

OpenCVチュートリアルの続きです。 OpenCVにおける輪郭(領域) — OpenCV-Python Tutorials 1 documentation とりあえず輪郭検出、表示 cv2.findContours()関数で、輪郭を検出することができます。 詳細はともかく、やってみます。 2値画像に対しての処理とな…

OpenCVやってみる-8. エッジ検出

OpenCVのチュートリアル通りに進めます。 今回の内容はシール点数集計に役立ちそうです。 画像の勾配 — OpenCV-Python Tutorials 1 documentation Canny法によるエッジ検出 — OpenCV-Python Tutorials 1 documentation Sobelフィルタ、Laplacianフィルタ Sob…

OpenCVやってみる-7. モルフォロジー変換

今回は、チュートリアル通り、モルフォロジー変換です。 モルフォロジー変換 — OpenCV-Python Tutorials 1 documentation モルフォロジー? モルフォロジー(morphology)とは、 「一般に、形態、構造をいう。」 モルフォロジーとは - コトバンク だそうです。…