勉強しないとな~blog

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

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

今回は、点数計算の実アプリケーション作成に向けて、以下の処理を検討します。 画像1枚を受け取ってからの一連の処理 点数計算 処理フロー 点数計算アプリケーションは、ストリーミングされている画像データから、1枚取り出して計算処理を実施・表示、とい…

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

春のパン祭り点数文字認識処理を調整していますが、なかなか完璧にはいかず… 調整は今回までにして、実際のアプリケーションを作っていく方向に進めたいと思います。 今回変更したこと 色々調整していて、以下変更しました。 数字テンプレートとする輪郭デー…

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

春のパン祭り点数計算は前回までの処理でおおよそできるようになりましたが、少し調整していきます。 ICP収束条件 初期変換行列での判定 文章を整える気があまりなく… 以下雑な文章ご容赦で。 下準備 Jupyter notebookを改めて作っているので、始めに必要な…

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

前回からの続きです。 Jupyter notebookのデータ等の状態も引き継いでいます。 前回は、春のパン祭りシール台紙の画像から点数数字の輪郭を取得、数字テンプレートと比較して一致度を出して、固定の閾値で判定してみましたが、いまいちきっちりとは判定でき…

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

春のパン祭りが始まりましたが、まだ点数自動計算ができず… むずい… 方式変更 前まで検討していた点数判定方法を実際のデータで試したところ、うまくいかず。 特に"5"の文字の判定が困難でした。 経過は省きますが、以下の点を変更しました。 "0"以外での比…

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

連続の投稿になりますが、続きです。 2月1日から春のパン祭りスタートらしいので、ペースアップ中です… 今回は前回の記事と同じJupyter notebookでやっているので、画像読み込みなどの下準備は省きます。 楕円近似による"0"の判定 "0"の文字の判定についてで…

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

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

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

あけましておめでとうございます。 1月も半分以上過ぎてしまいましたが、今年初めての記事です。 今年も引き続き春のパン祭りシール点数集計をやっていきます。 去年の3月から始めて、色々寄り道しながらゆっくり進めてきましたが、 今年の春のパン祭りに間…

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構…