Search Preview
ピンボケや手ぶれ写真を機械的に検出する方法 | Act as Professional
hiroki.jpカメラを新調したことから週末には1000毎単位で写真を撮影することが多々あります。 動体撮影をするため連射を多用しています。このことから、ピンボケや手ぶれなどの不要な写真も含まれます。 RAW
.jp > hiroki.jp
SEO audit: Content analysis
Language | Error! No language localisation is found. | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | ピンボケや手ぶれ写真を機械的に検出する方法 | Act as Professional | ||||||||||||||||||||||||||||||||||||
Text / HTML ratio | 24 % | ||||||||||||||||||||||||||||||||||||
Frame | Excellent! The website does not use iFrame solutions. | ||||||||||||||||||||||||||||||||||||
Flash | Excellent! The website does not have any flash contents. | ||||||||||||||||||||||||||||||||||||
Keywords cloud | = laplacian ピンボケや手ぶれ写真を機械的に検出する方法 import text image Blurry images def dir_file 元画像 ぼかし画像 ポートレート編 OpenCV フォローする write_imageimage_path dir python – laplacianvar | ||||||||||||||||||||||||||||||||||||
Keywords consistency |
|
||||||||||||||||||||||||||||||||||||
Headings |
|
||||||||||||||||||||||||||||||||||||
Images | We found 20 images on this web page. |
SEO Keywords (Single)
Keyword | Occurrence | Density |
---|---|---|
= | 11 | 0.55 % |
laplacian | 5 | 0.25 % |
ピンボケや手ぶれ写真を機械的に検出する方法 | 5 | 0.25 % |
import | 4 | 0.20 % |
text | 4 | 0.20 % |
image | 4 | 0.20 % |
Blurry | 4 | 0.20 % |
images | 3 | 0.15 % |
def | 3 | 0.15 % |
dir_file | 3 | 0.15 % |
元画像 | 3 | 0.15 % |
ぼかし画像 | 3 | 0.15 % |
ポートレート編 | 3 | 0.15 % |
OpenCV | 3 | 0.15 % |
フォローする | 3 | 0.15 % |
write_imageimage_path | 2 | 0.10 % |
dir | 2 | 0.10 % |
python | 2 | 0.10 % |
– | 2 | 0.10 % |
laplacianvar | 2 | 0.10 % |
SEO Keywords (Two Word)
Keyword | Occurrence | Density |
---|---|---|
元画像 ぼかし画像 | 3 | 0.15 % |
ピンボケや手ぶれ写真を機械的に検出する方法 – | 2 | 0.10 % |
laplacian text | 2 | 0.10 % |
– ポートレート編 | 2 | 0.10 % |
text = | 2 | 0.10 % |
Not Blurry | 2 | 0.10 % |
Weather Station | 2 | 0.10 % |
Station 屋外モジュールの電池を交換した | 2 | 0.10 % |
report_imageimage laplacian | 2 | 0.10 % |
シェアする ツイート | 2 | 0.10 % |
= dir_file | 2 | 0.10 % |
image write_imageimage_path | 1 | 0.05 % |
laplacian laplacian | 1 | 0.05 % |
python detect_blur_for_allpy | 1 | 0.05 % |
variance_of_laplaciangray text | 1 | 0.05 % |
= Not | 1 | 0.05 % |
それでは実装したスクリプトを実行してみます。 python | 1 | 0.05 % |
ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 | 1 | 0.05 % |
全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する | 1 | 0.05 % |
laplacian 全体を通したコードはGitHubを確認してください。 | 1 | 0.05 % |
SEO Keywords (Three Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
ピンボケや手ぶれ写真を機械的に検出する方法 – ポートレート編 | 2 | 0.10 % | No |
Weather Station 屋外モジュールの電池を交換した | 2 | 0.10 % | No |
report_imageimage laplacian text | 2 | 0.10 % | No |
Act as Professional | 1 | 0.05 % | No |
write_imageimage_path image write_imageimage_path | 1 | 0.05 % | No |
if laplacianvar < | 1 | 0.05 % | No |
laplacianvar < args | 1 | 0.05 % | No |
< args text | 1 | 0.05 % | No |
args text = | 1 | 0.05 % | No |
text = Blurry | 1 | 0.05 % | No |
= Blurry report_imageimage | 1 | 0.05 % | No |
Blurry report_imageimage laplacian | 1 | 0.05 % | No |
laplacian text write_imageimage_path | 1 | 0.05 % | No |
text write_imageimage_path image | 1 | 0.05 % | No |
image write_imageimage_path laplacian | 1 | 0.05 % | No |
Not Blurry if | 1 | 0.05 % | No |
write_imageimage_path laplacian laplacian | 1 | 0.05 % | No |
laplacian laplacian 全体を通したコードはGitHubを確認してください。 | 1 | 0.05 % | No |
laplacian 全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する | 1 | 0.05 % | No |
全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 | 1 | 0.05 % | No |
SEO Keywords (Four Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
Act as Professional フォローする | 1 | 0.05 % | No |
laplacian laplacian 全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する | 1 | 0.05 % | No |
< args text = | 1 | 0.05 % | No |
args text = Blurry | 1 | 0.05 % | No |
text = Blurry report_imageimage | 1 | 0.05 % | No |
= Blurry report_imageimage laplacian | 1 | 0.05 % | No |
Blurry report_imageimage laplacian text | 1 | 0.05 % | No |
report_imageimage laplacian text write_imageimage_path | 1 | 0.05 % | No |
laplacian text write_imageimage_path image | 1 | 0.05 % | No |
text write_imageimage_path image write_imageimage_path | 1 | 0.05 % | No |
write_imageimage_path image write_imageimage_path laplacian | 1 | 0.05 % | No |
image write_imageimage_path laplacian laplacian | 1 | 0.05 % | No |
write_imageimage_path laplacian laplacian 全体を通したコードはGitHubを確認してください。 | 1 | 0.05 % | No |
laplacian 全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 | 1 | 0.05 % | No |
if laplacianvar < args | 1 | 0.05 % | No |
全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 python | 1 | 0.05 % | No |
ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 python detect_blur_for_allpy | 1 | 0.05 % | No |
それでは実装したスクリプトを実行してみます。 python detect_blur_for_allpy i | 1 | 0.05 % | No |
python detect_blur_for_allpy i images | 1 | 0.05 % | No |
detect_blur_for_allpy i images それぞれ処理された画像を確認してみます。 | 1 | 0.05 % | No |
Internal links in - hiroki.jp
プログラミング | Act as Professional
アジャイル | Act as Professional
書評 | Act as Professional
プロフィール | Act as Professional
お問い合わせ | Act as Professional
Vornado サーキュレーター もっと早く購入しておけばよかった…。 | Act as Professional
日常 | Act as Professional
ピンボケや手ぶれ写真を機械的に検出する方法 – ポートレート編 | Act as Professional
OpenCV | Act as Professional
Python | Act as Professional
ピンボケや手ぶれ写真を機械的に検出する方法 | Act as Professional
Weather Station 屋外モジュールの電池を交換した | Act as Professional
「リフォーム Rails app」というトークをしてきました | Act as Professional
Ruby | Act as Professional
Ruby on Rails | Act as Professional
元「日本一のニート」が実践する人間味あふれる「知の整理術」 | Act as Professional
fastladderのコミット権をいただいた | Act as Professional
git | Act as Professional
github | Act as Professional
ソフトウェア | Act as Professional
ポストに投函される迷惑なダイレクトメールやチラシの対策 | Act as Professional
ライフハック | Act as Professional
SSL/TLSのバージョン差についてザックリと理解するには | Act as Professional
Linux | Act as Professional
Elixir | Act as Professional
ダークソウルシリーズは挫折したけど、仁王は楽しんでプレイできた | Act as Professional
ゲーム | Act as Professional
バーコードを送るだけで価格を調査するLINE Botを開発したのでご利用ください | Act as Professional
インストール簡単 無料で使えるGitHubのようなGitea | Act as Professional
コードレビュー | Act as Professional
元旦に実施される うるう秒の対策 まとめ | Act as Professional
長年愛されつづけるホットサンドイッチメーカーのバウルーがやってきた!! | Act as Professional
PS4 Pro HDMI 4K/60Hz環境を構築するのに購入検討した4KテレビやPCモニターなど | Act as Professional
cloud-init の設定を上書き、拡張する方法 | Act as Professional
DevOps | Act as Professional
ubuntu | Act as Professional
電子書籍 | Act as Professional
Ruby拡張ライブラリを含むGemのつくりかた | Act as Professional
extensions | Act as Professional
右クリック、ダブルクリック、ドラッグ&ドロップを現在の形にした中島聡氏の著書を読んだ | Act as Professional
書籍 | Act as Professional
4月からの電力自由化するので電力会社を比較して契約した | Act as Professional
MVNO | Act as Professional
Terminalに雪を降らす魔法の1ライナー | Act as Professional
Ruby2.3.0リリース 主な新機能についてサンプルコードとともに紹介 | Act as Professional
WordPressをPHP7.0にバージョンアップ | Act as Professional
Web | Act as Professional
WordPress | Act as Professional
Software Design 「ChatOps」特集に寄稿しました | Act as Professional
お知らせ | Act as Professional
Hiroki.jp Spined HTML
ピンボケや手ぶれ写真を機械的に検出する方法 | Act as Professional Act as Professional フォローする プログラミング アジャイル 書評 プロフィール お問い合わせ ホームソフトウェアOpenCV ピンボケや手ぶれ写真を機械的に検出する方法 2018/7/24 OpenCV, Python シェアする ツイート カメラを新調したことから週末には1000毎単位で写真を撮影することが多々あります。 動体撮影をするため連射を多用しています。このことから、ピンボケや手ぶれなどの不要な写真も含まれます。 RAW+JPEGで撮影しているため1毎あたり約60MBです。 このままではストレージを圧迫するため、サムネイルを一覧して明らかに不要な写真は消しています。 それでも、人間が手動でやっていくのは骨が折れる作業です。 この問題を解決するために、機械的に不要な写真を検出する方法を何回かにわたって紹介していきます。 今回はOpenCVを利用してピンボケの写真を検出する実装をしてみます。 スポンサーリンク ピンボケや手ぶれをどのように検出するのか? 基本的には写真のエッジを検出することによって実現します。 ピンボケの写真はエッジがボケてしまっていて、エッジが少ない状態になっています。 OpenCVではLaplacian微分を利用することによって用意にエッジを検出することが可能です。 参考: 画像の勾配 — OpenCV-Python Tutorials 1 documentation 利用する画像 利用する画像はLenaを利用します。一方は、意図的にぼかし編集をした画像です。 元画像 ぼかし画像 ピンボケ画像を検出する実装 まずはコマンドラインで利用できるようにしたいので、おまじないを記述してきます。 from imutils import paths import argparse import cv2 import os ap = argparse.ArgumentParser() ap.add_argument("-i", "--images", required=True, help="path to input directory of images") ap.add_argument("-t", "--threshold", type=float, default=100.0, help="focus measures that fall unelevated this value will be considered 'blurry'") args = vars(ap.parse_args()) OpenCVのLaplacianを利用してエッジを検出する処理をするメソッドを追加 def variance_of_laplacian(image): return cv2.Laplacian(image, cv2.CV_64F) 検出したエッジのスコアを画像の左上に記述処理をするメソッドを追加 def report_image(image, laplacian, text): cv2.putText(image, "{}: {:.2f}".format(text, laplacian.var()), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 3) スコアを記述した画像を保存する処理を追加 def write_image(file_path, image, sub_dir="/report"): dir_file = os.path.split(file_path) dir = dir_file[0] file_name = dir_file[1] report_dir = dir + sub_dir os.makedirs(report_dir, exist_ok=True) cv2.imwrite(report_dir + "/" + file_name, image) メインの処理を追加。ここでは引数のimagesで渡されたディレクトリに格納されている画像を次々に処理していきます。 Laplacianのスコアが100以下であれば、ピンボケ写真と判断しています。 for image_path in paths.list_images(args["images"]): image = cv2.imread(image_path) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) laplacian = variance_of_laplacian(gray) text = "Not Blurry" if laplacian.var() < args["threshold"]: text = "Blurry" report_image(image, laplacian, text) write_image(image_path, image) write_image(image_path, laplacian, "/laplacian") 全体を通したコードはGitHubを確認してください。 ピンボケや手ぶれを検出する それでは実装したスクリプトを実行してみます。 python detect_blur_for_all.py -i ./images それぞれ処理された画像を確認してみます。 元画像 ぼかし画像 Not Blurry: 390.35 Blurry: 11.34 これで、エッジを数値化することができました。 元画像のスコアが390.35、ぼかし処理されている画像が11.34となりました。 ぼけている画像の方が数値が低くなっていることが確認できました。つまりエッジの検出があまりできなかったことを意味します。 実際に検出したエッジ部分の画像を確認してみます。 元画像 ぼかし画像 元画像の方はエッジを検出しているため、人の形や顔が確認できるかと思います。 ぼかし画像はまったくエッジが検出できていないことがわかります。 考察 以上のことから、写真や画像のエッジを検出することによって、ピンボケ写真を検出することができます。 ですが、一眼レフカメラなどで顔や瞳にピントをあてて、背景をぼかした写真を撮影することがあるかと思います。そのような写真の場合はエッジが検出できない部分が多くなります。 今回のような判定だと、背景がぼけていて、顔にピントがあっているポートレートだとピンボケ写真として判断してしまうことがあります。 スコアの閾値はコマンドラインのオプションの-tを閾値としているので、閾値を下げることで多少の対処はできますが、根本的な解決はできません。 次回はこのような写真でも対処できる判定方法を実装していこうと思います。 スポンサーリンク シェアする ツイート フォローする OpenCV, python hirocaster 関連記事 ピンボケや手ぶれ写真を機械的に検出する方法 – ポートレート編 デジカメで撮影した大量の写真の中から削除しても差し支えない不要な写真を機械的に検出するためこのような実験をしています。 今回は前回の実装だ... 記事を読む Weather Station 屋外モジュールの電池を交換した ピンボケや手ぶれ写真を機械的に検出する方法 - ポートレート編 検索 著者について HIROCASTER アジャイル開発の知識とGitHubを活用し、自動化(インフラ・テスト)・開発ワークフローの効率化を推進するプログラマ。よりくわしくはこちら 著者のSNSなど フォローする 著書 人気記事まだデータがありません。 新着記事 Vornado サーキュレーター もっと早く購入しておけばよかった…。 ピンボケや手ぶれ写真を機械的に検出する方法 – ポートレート編 ピンボケや手ぶれ写真を機械的に検出する方法 Weather Station 屋外モジュールの電池を交換した 「リフォーム Rails app」というトークをしてきました © 2009 Act as Professional