2021-01-01から1年間の記事一覧
春のパン祭りシール点数集計の続きです。 前回のおさらい 前回までで、ひとまず点数文字の輪郭が取れるようになりました。 Hue,Saturation情報を使って2値化 階層認識ありで輪郭を検出、最上位階層の1つ下の輪郭を検出 ここから、テンプレートマッチングを使…
引き続きの春のパン祭りシール点数集計。 前回の結果再確認 前回の結果をよく見ると、点数文字の輪郭をきちんと取れていない部分がありました。 3つ目の画像で、中央上部の'1'、'2'の輪郭が取れていません。 対応を検討します。 様子チェック まずは問題の画…
春のパン祭りシール点数集計の続きです。 今回の内容 前回、春のパン祭り画像から点数文字の輪郭を取得できましたが、まだ1画像でしか試していないので、 他の画像でもやってみます。 関数化 いつも通りの手順ですが、内容が増えてきたので、関数化しておき…
前回の続きです。 春のパン祭り点数集計を進めていきます。 方針再検討 前回の結果を振り返りつつ、改めて方式を検討します。 前回の状況 Hue画像での2値化から、シール領域の輪郭取得を実施した シールの重なりにより、輪郭どうしがつながってしまっていた …
前回の内容 春のパン祭り点数集計で、最初に台紙外形の検出をすることを考えていましたが、どうも難しそうなので諦める方向で。 前に考えた手順は、 台紙外形を取得する 射影変換をするのと、スケーリング(台紙を基準として画像サイズを調整する)に必要 射影…
前回の続きになります。 おさらい 前回までのおさらいです。 以下のような手順で台紙外形取得を試みました。 Cannyエッジ検出実施 輪郭検出(最外周のみ)実施 面積最大の輪郭を選ぶ 輪郭を単純な多角形で近似、四角形になっていればOK 問題だったのは、 背景…
予告通り、春のパン祭り台紙の外枠検出です。 今後は基本的にJupyter notebookで試した後、markdownでダウンロードしてブログに貼り付ける形になると思います。 21.11.22 修正 cv2.drawContour関数の使い方に間違いがありました… 第2引数は輪郭のリストにし…
コマンドプロンプト上でずっとやっているのも大変なので、Jupyter notebookを使ってみました。 見た目もよくなりそう。 Jupyter notebook 使い方 Anacondaをインストールすると、一緒にJupyter notebookが入ってきます。 Windows10環境で使っていますが、検…
今回はOpenCVネタです。 いままでチュートリアルを追ってきましたが、そろそろ本題の春のパン祭り集計を考えていこうかと。 使えそうな手 今までチュートリアルを見てきた中で、いくつか有用そうなテクニックがありました。 射影変換 台紙を真正面から撮影し…
前回カスタマイズしたFSBLを作ったので、これをPetalinuxプロジェクトで取り込みます。 また、MACアドレス関連の設定もPetalinuxで行います。 さらについでに、ルートファイルシステムをSDカードに設定します。 Petalinux作業 petalinux-configコマンドを実…
ZYBOの続きです。 今回は、以前にやったFSBLのカスタマイズを、Vitisツールを使ってやってみたいと思います。 このカスタマイズは、ZYBOのEEPROMに入っているMACアドレスを取得するためのものです。 Vitis使うのは初めてですが、どんな感じなのか。 一応Viti…
今回は、OpenCVチュートリアルの以下のページを参考に進めてみたいと思います。 OpenCV: Epipolar Geometry エピポーラ幾何の理論はチュートリアルサイトの説明を参照で。 今回のテーマ画像 特徴点検出、特徴量算出 マッチング Fundamental matrix計算 Epipo…
前回の続きです。 前回はVivadoプロジェクトでのビットストリーム生成まで行いました。今回はこれをPetalinuxプロジェクトに取り込みます。 Petalinuxツールでの手順 Petalinuxプロジェクトの作成 まずはPetalinuxプロジェクトの作成。 入力: petalinux-crea…
久しぶりにZYBOのほうを進めたいと思います。 内容 前回(既に1年前…)までは VMWare + Ubuntu18.04 Vivado 2017.4 Petalinux 2017.4 の環境を使っていました。 ただ、今回はXilinxツールのVitisも使っていきたいと思っていて、使用するツールバージョンを新し…
今回もだいたいチュートリアル通りの内容です。 前々回と前回で、違う視点から同じ対象を撮影した2つの画像での点の対応を見つけることができました。 この結果を使って、射影変換の行列を計算し、画像の視点変換をすることができます。これをやってみます。…
前回のやり残しで、FLANNでの特徴点マッチングをやります。 OpenCV: Feature Matching 特徴点のマッチング — OpenCV-Python Tutorials 1 documentation 概要 前回のおさらいですが、FLANNはFast Library for Approximate Nearest Neighborの略で、近似的に特…
今回は特徴点のマッチングです。 今までにやった特徴点検出、特徴量生成を元に、2つの画像を比較、同じものが写っている点を探す、 というような感じです。 2つの画像というのは、具体的にはステレオカメラで撮影した画像だったり、ウォーリーを探せのウォー…
前回の予告通り、ORBをやってみます。 OpenCV: ORB (Oriented FAST and Rotated BRIEF) ORB (Oriented FAST and Rotated BRIEF) — OpenCV-Python Tutorials 1 documentation ざっくり紹介、理論 SIFTやSURFは特許を取られていて自由に使えない その代替とし…
今回はBRIEFをやってみます。 OpenCV: BRIEF (Binary Robust Independent Elementary Features) ざっくり理論 BRIEFは画像中の特徴点の特徴量を生成する方式のひとつです。 SIFTやSURFでは、特徴点の特徴量を表すのにそれなりに大きなデータ量(1点あたりSIFT…
前回の続き、FASTアルゴリズムを試します。 コーナー検出のためのFASTアルゴリズム — OpenCV-Python Tutorials 1 documentation ざっくり理論 画像の各画素について、これを中心として周長16ピクセルになる円周(半径およそ3ピクセル) 上の画素を調べ、決まっ…
前回のSIFTに続いて、今度はSURFでの特徴点検出です。 SURF (Speeded-Up Robust Features)の導入 — OpenCV-Python Tutorials 1 documentation SURFはSIFTに比べて高速化を目指したアルゴリズムとのこと。 発表は2006年になります。特許が取られていて、まだ…
自分のPCのハードディスク容量がそもそも256GBしかなく、iPhoneで撮った写真(子供の写真)が増えてきたので、NASを買ってみました。 PCデータとiPhone写真のバックアップが目的。 NAS型番、仕様 購入したのはQNAP社のTS-230。 購入の決め手としては、 RAID1構…
今回はSIFTを扱います。 SIFT (Scale-Invariant Feature Transform)の導入 — OpenCV-Python Tutorials 1 documentation SIFTは、2004年にブリティッシュコロンビア大学のD.Loweが発表したもので、 キーポイントの検出、特徴量の計算を行うアルゴリズムとのこ…
今回はHarrisコーナー検出をやります。 今更ですが、チュートリアルサイトの順番通りでなく、多少飛ばしている部分もあります。 Harrisコーナー検出 — OpenCV-Python Tutorials 1 documentation Harrisコーナー検出 理論はチュートリアルサイトに書いてある…
どんどん続きを進めます。 次はハフ変換による円検出。 ハフ変換による円検出 — OpenCV-Python Tutorials 1 documentation ハフ変換による円検出 円上の点は、以下の式を満たします。 直線検出のときと同様、この式のパラメータ()の空間に、 その円上に乗っ…
今回はハフ変換をやってみます。 ハフ変換による直線検出 — OpenCV-Python Tutorials 1 documentation ハフ変換 ハフ変換は2値画像を直線のパラメータ空間に持っていくような変換、 ということでいいのかな。 空間中の直線は、以下の式で表すことができます…
かなり時間が空いてしまいました… 引き続きOpenCVのチュートリアルをやっていきたいと思います。 今回はテンプレートマッチングをやろうかと。 春のパン祭りシール点数集計的には結構使えそうな内容です。 テンプレートマッチング — OpenCV-Python Tutorials…
OpenCVチュートリアルの続きです。 OpenCVにおける輪郭(領域) — OpenCV-Python Tutorials 1 documentation とりあえず輪郭検出、表示 cv2.findContours()関数で、輪郭を検出することができます。 詳細はともかく、やってみます。 2値画像に対しての処理とな…
OpenCVのチュートリアル通りに進めます。 今回の内容はシール点数集計に役立ちそうです。 画像の勾配 — OpenCV-Python Tutorials 1 documentation Canny法によるエッジ検出 — OpenCV-Python Tutorials 1 documentation Sobelフィルタ、Laplacianフィルタ Sob…
今回は、チュートリアル通り、モルフォロジー変換です。 モルフォロジー変換 — OpenCV-Python Tutorials 1 documentation モルフォロジー? モルフォロジー(morphology)とは、 「一般に、形態、構造をいう。」 モルフォロジーとは - コトバンク だそうです。…