タグ

cvに関するsh19910711のブックマーク (153)

  • 画像の回転などの変換処理が埋め込みベクトルに与える影響を確認してみた | DevelopersIO

    こんちには。 データアナリティクス事業機械学習チームの中村(nokomoro3)です。 今回は小ネタですが、画像の反転や位置の違いが埋め込みベクトルにどの程度影響を与えるのか知りたかったので、記事で試してみたいと思います。 使用する画像 ネコの画像をいらすとやから拝借しました。 こちらに対して、以下のような変換を加えてみます。 サイズ変更 回転 位置替え モノクロ化 そしてネコ以外の画像も比較のため、以下のイヌの画像も使ってみます。 これらの画像データを Titan Multimodal Embeddings で埋め込みベクトルに変換して、コサイン類似度を比較してみようと思います。 埋め込みモデルについて 使用する埋め込みモデルは以下を用います。 Amazon Titan Multimodal Embeddings G1 model - Amazon Bedrock こちらはテキス

    画像の回転などの変換処理が埋め込みベクトルに与える影響を確認してみた | DevelopersIO
    sh19910711
    sh19910711 2024/06/21
    "画像の反転や位置の違いが埋め込みベクトルにどの程度影響を与えるのか / Titan Multimodal Embeddings で埋め込みベクトルに変換して、コサイン類似度を比較 / モノクロ化は意外と差異がなく 0.879 程度"
  • PyTorchを使ってCNNで野菜の仕分け作業自動化

    はじめに こんにちは。皆さんは日の農業人口の推移の状況についてご存知でしょうか。統計によると2020年には2000年の農業人口の約6割まで落ち込み、またその多くは65歳以上の高齢者で支えられているそうです。農業人口は減少、高齢化の一途なのです。私の祖父母も農業に携わっていることから、機械学習仕事を少しでも自動化できないかと思ったのが執筆のモチベーションです。 この記事では、Python機械学習用ライブラリであるPyTorch用いて、きゅうりの鮮度の分類を行うモデルを構築します。曲がっていたり太さが均一でないキュウリは鮮度が良くないと見なされることを利用し、画像特徴量からそれらを識別します。こちらの、TensorFlowで実装されたきゅうりの分類の記事を参考にしました。 実装の流れ 学習の流れは以下のようになります。 データの取得 データを訓練用、テスト用、検証用に分割する データロー

    PyTorchを使ってCNNで野菜の仕分け作業自動化
    sh19910711
    sh19910711 2024/06/21
    "TensorFlowで実装されたきゅうりの分類の記事を参考 / 日本の農業人口: 統計によると2020年には2000年の農業人口の約6割まで落ち込み、またその多くは65歳以上の高齢者で支えられている"
  • 【ニューラルネットワークの判断根拠抽出】TCAV - ピクセルの重要度から概念の重要度へ - - Qiita

    今回はICML2018に採択された論文,Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV)に関してまとめたいと思います。 判断根拠系の手法では基的にどのピクセルが判断に重要であったか?を主眼に置くことが多いですが(この辺とかこの辺),この論文で提案される手法はピクセル単位ではなく人間の考える概念的な観点から重要度を抽出する面白い方法を取っています。(認知心理学とかヒューマンインターフェースとかそう言った観点の研究ではないです。念のため。) 第一著者はニューラルネットの判断根拠抽出手法としてはメジャーなSmoothgradの著者の一人です。所属はGoogle Brainであり,機械学習の判断根拠をまさに研究されている人です。 論文の

    【ニューラルネットワークの判断根拠抽出】TCAV - ピクセルの重要度から概念の重要度へ - - Qiita
    sh19910711
    sh19910711 2024/06/21
    "概念的な観点から重要度を抽出 / ピクセルではなく,「人がいるから」だとか「ATMの文字があるから」だとかそういう説明 / 人間の感覚に近い概念画像(Concept)に対する重要度を定義" arXiv:1711.11279 2019
  • YOLOv5を利用した学習と物体検出 - Qiita

    目的 YOLOv5について、入門までとはいかないが、門の前に立てる程度の知識を身につける。 YOLOv5を利用して学習から物体検出(今回はサングラス)を行い、最低限の使い方を身につける。 背景 チュートリアルでもよくある、自前でモデルの作成、学習、分類を行ったりしたことはあったが、YOLO等の物体検出アルゴリズムを利用したことがなかったため、試しに利用し、知識を得たかった。 YOLOv5とは YOLOv5とは物体検出アルゴリズムで、You Only Look Onceの頭文字をとっています。 処理速度が非常に速いのが特徴で、リアルタイムに物体検出を行うことも可能です。 YOLOv5はPytorchをベースに作られています。 自身でpythonコードを書かずに(もちろん書くこともできます)、YOLOv5が用意している処理を実行するだけで、学習や物体検出を簡単に行うことができます。 YOLOv

    YOLOv5を利用した学習と物体検出 - Qiita
    sh19910711
    sh19910711 2024/06/19
    "YOLOv5: You Only Look Onceの頭文字 + 処理速度が非常に速いのが特徴で、リアルタイムに物体検出を行う / 解説によると、出力層を除く、モデル全体のパラメータを固定することもできるようですが、精度が下がる結果が出て" 2022
  • アフィン変換を使った画像の位置合わせ(特徴点マッチング)におけるアフィン行列を求めてみた - Qiita

    カラー対応&修正版はこちら はじめに 特徴点マッチングにおいてのアフィン行列を求める記事です。この記事では特徴点を手動で決めることとします。 こんな感じで2枚の画像の特徴点がわかってる状態でimage1からimage2に変換するアフィン行列Aを求めるのが目的。 特徴点からアフィン行列を求められればこんな感じで画像を重ねることが出来ます。 特徴点マッチング アフィン行列 画像の各座標を変換させる行列計算 \left( \begin{array}{c} x^{'}\\ y^{'}\\ 1 \end{array} \right) = \left( \begin{array}{ccc} a & b & t_{x}\\ c & d & t_{y}\\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{c} x\\ y\\ 1 \end{array}

    アフィン変換を使った画像の位置合わせ(特徴点マッチング)におけるアフィン行列を求めてみた - Qiita
    sh19910711
    sh19910711 2024/06/18
    "2枚の画像の特徴点がわかってる状態でimage1からimage2に変換するアフィン行列Aを求める / 特徴点からアフィン行列を求められればこんな感じで画像を重ねることが出来ます" 2020
  • 画像解析実践入門_指紋の稜線分析 3(稜線間隔と方位のヒストグラム可視化) - Qiita

    の続きです。 概要 指紋の稜線を分析します。前回の記事で稜線のラベリングまでしました。 最終的にはこの二値指紋画像をサブ領域に分割して、そこから特徴量(今回は稜線角度)を抽出。 指紋認識が可能か検討してみます。 もくじ 1.ラベリング画像から獲得したい情報 2.稜線間隔と方位情報取得のアルゴリズム 3.アルゴリズムの関数化 4.ヒストグラムにて結果の確認 1.ラベリング画像から獲得したい情報 前回の記事でサブ領域に分割した指紋の稜線ラベル画像を作成しました。 そこら 1.稜線同士の間隔 2.サブ領域の稜線方位 を調べます。つまり下の画像でいうと 赤矢印が稜線同士の間隔 オレンジ矢印がサブ領域の稜線方位になります。 これをサブ領域毎に取得するアルゴリズムを考えましょう。 2.稜線間隔と方位情報取得のアルゴリズム 稜線方位と稜線間隔を取得するアルゴリズムを下のフローチャートにまとめました 上図

    画像解析実践入門_指紋の稜線分析 3(稜線間隔と方位のヒストグラム可視化) - Qiita
    sh19910711
    sh19910711 2024/06/18
    "指紋の稜線を分析 / 二値指紋画像をサブ領域に分割して、そこから特徴量(今回は稜線角度)を抽出 + 指紋認識が可能か検討 / 稜線同士の間隔・サブ領域の稜線方位を調べます" 2021
  • OpenCVを使わず幾何変換する - Qiita

    import numpy as np import scipy.interpolate import matplotlib.pyplot as plt import cv2 参考までにここで紹介する OpenCV を使わない方法より OpenCV を素直に使った方が数十倍速い. 画像データ 画像をプログラム上で扱う時, 通常は2~3次元配列のデータとして扱うことになる. インデクスの [i, j, k] は前の2つ i, j がそれぞれ $y$, $x$ 座標 (ピクセルの位置) を表し, 3つ目 k は RGB や CMYK 等の画素値ベクトルのインデクスを示す. 2次元配列の場合, モノトーン画像等の画素値が1変数となる画像データを表す. C 系のプログラミング言語では for ループの入れ子構造とデータアクセスの順序の関係で, 第1インデクスの i が縦方向の位置を表すと考えるため,

    OpenCVを使わず幾何変換する - Qiita
    sh19910711
    sh19910711 2024/06/18
    "OpenCVが使えない, 使いたくない, その他の場合 + OpenCVを使わず幾何変換する / OpenCV を素直に使った方が数十倍速い / SciPy の scipy.interpolate に補間と簡単な外挿の実装" 2023
  • OpenCVでスプライトを半透明にする #2 ~グラデーションな半透明を作る~ - Qiita

    はじめに 連休を楽しむために、宿題を片付けよう。 目次 OpenCVでスプライトを半透明にする #1 ~おばけを出現させる~ OpenCVでスプライトを半透明にする #2 ~グラデーションな半透明を作る~ ←今ここ 行列の計算をnumpyでおこなう まず、前回の関数を再掲する。関数だけなのでこれだけでは動かないことに注意。 import cv2 def sprite_alpha(back, front4, alpha): front = front4[:, :, :3] # RGB(3ch) mask = front4[:, :, 3] # A要素(1ch) mask = cv2.merge((mask, mask, mask)) # 3chにする # 全体を合成 compo = cv2.addWeighted(front, alpha, back, 1-alpha, 0) # マスク処理

    OpenCVでスプライトを半透明にする #2 ~グラデーションな半透明を作る~ - Qiita
    sh19910711
    sh19910711 2024/06/18
    "自分でも気づかぬうちにより汎用的な方法を思いついていた / 同サイズの二つの行列の要素ごとの積を計算するアダマール積。これがマスクとして使える(使っている)ことに当時は気づいていなかった"
  • OpenCV+pygameで簡単な立ち絵付きシューティングゲームを作るお気軽ゲーム入門(後編) - Qiita

    OpenCV+pygameで簡単な立ち絵付きシューティングゲームを作るお気軽ゲーム入門 前編はこちらです。 この記事はGoogle Developer Student Clubs 12/19のアドカレとして寄稿しています。前後編に分けたのは記事が長かったためであり, 間に合わなかったというわけではありません。当です。信じてください。 目次 OpenCVで素材画像切り抜き(前編にて実装) 設計図紹介(前編にて実装) 実装(前編にて実装) consts.py(前編にて実装) classes.py(前編にて実装) events.py main.py 前編のおさらい OpenCVで素材画像を切り抜く方法を学んだ 制作するゲームのディレクトリ構造は以下のとおりであった。 . ├── assets │   ├── fonts │   │   └── font.ttf │   ├── images │

    OpenCV+pygameで簡単な立ち絵付きシューティングゲームを作るお気軽ゲーム入門(後編) - Qiita
    sh19910711
    sh19910711 2024/06/18
    "pygameでシューティングゲームを作る / 速さの定義的には1フレームごとにPLAYER_SPEED / 斜め移動の移動が早くなってしまいます / 昔のファミコンゲームとかはこの仕様が残っていて斜め移動すると早くなってしまう" 2023
  • 木の画像からHSの度数を取得し機械学習で分類する - Qiita

    概要 木の幹の画像からH,S(色相、彩度)成分を取得、さらにその度数を計算しそれらの値を特徴量として機械学習を行い木の種類を分類する。 使用する木の種類 4種類の木を対象とした。 クスノキ モッコク マツ サクラ 用意した画像データ ・クスノキ 3の木から異なる角度で撮影した写真計6枚 ・モッコク 3の木から異なる角度で撮影した写真計5枚 ・マツ 3の木から異なる角度で撮影した写真計8枚 ・サクラ 3の木から異なる角度で撮影した写真計6枚 H,Sヒストグラム比較 import cv2 import pandas as pd import numpy as np from matplotlib import pyplot as plt import sys,os import re from tqdm.notebook import tqdm # 画像保存先 dir_path = '

    木の画像からHSの度数を取得し機械学習で分類する - Qiita
    sh19910711
    sh19910711 2024/06/18
    "OpenCVでHSVに変換した値は極座標系の値なので、直交座標系に変換 / 木の幹の画像からH,S(色相、彩度)成分を取得、さらにその度数を計算しそれらの値を特徴量として機械学習を行い木の種類を分類" 2020
  • scikit-learnのデータセットfetch_lfw_people - Qiita

    from sklearn.datasets import fetch_lfw_people import numpy as np %matplotlib inline import matplotlib.pyplot as plt fetch_lfw_people(*, data_home=None, funneled=True, resize=0.5, min_faces_per_person=0, color=False, slice_=(slice(70, 195, None), slice(78, 172, None)), download_if_missing=True, return_X_y=False) 引数を大雑把に説明 resizeは各顔写真の比率で元のデータからの比率となるらしい。defaultは0.5 min_faces_per_personは同一人物の写真が最低何枚

    scikit-learnのデータセットfetch_lfw_people - Qiita
    sh19910711
    sh19910711 2024/06/18
    "このデータセットには1、2枚しか画像がない人物の写真が大量にある / 主成分分析は分散が大きい方向から順番に主成分を取り出す / inverse_transformメソッドを使えば、主成分の重ね合わせから画像を再構成できる" 2022
  • Rust WebAssembly でリアルタイムで顔にモザイク処理 - Qiita

    rustface rustfaceというクレートを見つけました。 rustfaceはSeetaface Engineという C++ で書かれた顔認識ライブラリ(検出・位置調整・認識)のうち「検出」の部分を Rust で書いたものらしい。Seetafaceは CPU だけ使用してそれなりに高速に動くのが特徴のようです。Rust で書かれてるなら wasm-pack で簡単に WebAssembly 化できそうなのでやってみました。 成果物(1/18 追記:モザイク処理を追加しました。) 安心してください。顔画像はどこにも送信されません。(カメラによってはアスペクトレシオが崩れるようです) wasm-pack wasm-packのインストール。簡単。

    Rust WebAssembly でリアルタイムで顔にモザイク処理 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "rustface: C++ で書かれた顔認識ライブラリ(検出・位置調整・認識)のうち「検出」の部分を Rust で書いたもの + CPU だけ使用してそれなりに高速 / Rust で書かれてるなら wasm-pack で簡単に WebAssembly 化できそう"
  • OpenPoseの出力をRで見てみる。 - Qiita

    Openpose ・Github: CMU-Perceptual-Computing-Lab/openpose ・Qiita: OpenPoseを動かしてみた。 普通のRGBカメラ画像からヒトのスケルトン推定を検出するアルゴリズム。 非商用ならfreeに利用可能。 デモ動画は既に色々と出回っているけれど、出力される数値データも眺めたい。 installの注意点 ・ 公式ドキュメントOpenPose - Installation and FAQ CUDA, cuDNN, OpenCVが必要。 特にCUDAを入れる時に注意が必要。 表玄関からUbuntuを選ぶと、CUDA9になってそもそも14.04には入らない。CUDA Toolkit Archiveから探します。NVIDIAドライバも表玄関から行ってUbuntu14.04を選ぶとnvidia384.90になるけどこれだとログインループになっ

    OpenPoseの出力をRで見てみる。 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "write_keypoint_json: フレームごとにjsonファイルがだーっと吐き出される / ソースたどって確かめてもいいけどユルフワなのでアタリをつけて画像に書き込んでみる方が早い / 影も取ってる + ノイズ骨格を取り除く必要" 2017
  • NPUを限界まで使い切って400FPSで物体(パイロン)検出する - Qiita

    1080P120のビデオをSBC(ROCK5B)で推論している動画です。平均で360FPS程度出ているので、3倍速で再生されています。これなら高速移動体からも正確にパイロンへの距離が認識出来ます。 目次 NPUとは? 高速推論を実行するまでの流れ Yolov5での学習 Export RKNN形式への変換 Edgeデバイスでの推論 NPUとは NPUは、Neural Processing Unitの略称で、AI専用のプロセッサーです。NPUは大量の計算を並列処理することに特化しており、機械学習に専用設計されたチップであるため、GPUよりも効率的に処理を実行できます。NPUを使うことで、画像認識や自然言語処理などの機械学習タスクを高速に実行することができます。最近は、IntelやAMD、モバイルデバイス向けに多く組み込まれるようになってきています。 今回利用するするROCK5Bに搭載されている

    NPUを限界まで使い切って400FPSで物体(パイロン)検出する - Qiita
    sh19910711
    sh19910711 2024/06/14
    "NPU: 大量の計算を並列処理することに特化しており、機械学習に専用設計されたチップ / 現状、ベンダー毎に提供されるAPIを利用したりモデルの変換の手間がありますが、低消費電力で超高速推論が可能" 2023
  • SSII2024 [SS1] 拡散モデルの今 〜 2024年の研究動向 〜

    Scaling Rectified Flow Transformers for High-Resolution Image Synthesis / Stable Diffusion 3

    SSII2024 [SS1] 拡散モデルの今 〜 2024年の研究動向 〜
    sh19910711
    sh19910711 2024/06/14
    "Consistency Models: ゼロから学習するのではなく学習済み拡散モデルを利用 / 拡散モデル: これまではU-Netベースが基本だった + Transformerベースが現在は使われてきている + 様々なモダリティで研究されており拡張がしやすい"
  • PyTorchで始める物体検出:Yolo 9000 Better, Faster, Stronger - Qiita

    誰向け 高速に物体検出をしたい人 論文の内容を理解したい人 コードで実際に動作させてみたい人 コードと論文の関係性を把握したい人 先に読んだ方が良い記事 物体検出に関する用語が多いためDeepに理解する深層学習による物体検出 by Kerasのssdの説明より前の部分を読むと理解の準備が出来ると思います。 Yolo9000が達成したことを3行で表すなら 精度向上:バッチ正規化、アンカーの追加、高解像度、シグマ関数による制約、K-meanを用いた最適なアンカーボックスの決定、フィルターの増加、マルチスケーリングなどによって精度向上 高速化:パラメータが少なくなるDarkNetを採用し計算量を減らし、さらに事前学習モデルによって学習時間を短くした 分類クラスの増加(9000):検出用のデータセットがなくても同一のドメインのデータセットがあれば多数のクラスの物体検出が可能なことを示した。この論文

    PyTorchで始める物体検出:Yolo 9000 Better, Faster, Stronger - Qiita
    sh19910711
    sh19910711 2024/06/14
    "Fast-RCNNに比べ、Yoloでは検出位置のRecallが低かった / 近年では深く、大きいネットワークの方が精度がよくなる傾向にありますがYolov2は精度と速度を保つためにあえてそのようなアプローチはしていません" 2017
  • pyfastnoisesimd を tf.data.Dataset 化して procedural noise でオーグメンテーションしたい - Qiita

    pyfastnoisesimd を tf.data.Dataset 化して procedural noise でオーグメンテーションしたいDeepLearningTensorFlowPyTorchflaxprocedual-noise この記事は創作+機械学習 Advent Calendar 2021の13日目に参加しているものです。 コードはGistにアップロードしてあります。 注記 厳密な理論に基づいた記事ではありません まともな実験すらできてません 何をするのか、なぜするのか procedural noiseと呼ばれるノイズ画像のジャンルがありそれを無限に生成するデータセットを作ってオーグメンテーションに利用します。procedural noiseの生成にはpyfastnoisesimeライブラリを用い、それを tf.data.Dataset でラップします。TensorFlowを使

    pyfastnoisesimd を tf.data.Dataset 化して procedural noise でオーグメンテーションしたい - Qiita
    sh19910711
    sh19910711 2024/06/14
    "ノイズを画像に加算するというのは伝統的 ~ 形状を持ったノイズを乗せた方が性能がでるんじゃ / 「ターゲットが写っていないことを保証できるデータセットがあればオーグメンテーションに使い放題」みたいな感覚" 2021
  • NeRF-RPN:NeRF上で物体検出する技術

    はじめに こんにちは。ZENKIGEN DSチームに所属しているはまなすです。DeNA AI技術開発部より[1]、業務委託という形で主に深層学習系の開発に携わっています。 今回は、ニューラルネットワークを用いて3次元空間を表現する NeRF という技術に基づいた、立体空間内で物体検出をおこなう手法 NeRF-RPN についてご紹介します。 研究は昨年末に発表されたものですが、今のところ実験結果が限定的であるため、直ちに実応用に展開されているわけではありません。一方で、今回ご紹介するような『NeRFの上に積み重なる手法』は、NeRFを活用する土壌をさらに拡大させる一翼を担っていくことが期待されます。 近年は表現技術としてのNeRFそれ自体の発展が目覚ましいですが、NeRF-RPN は、その上で『なにをするか』を充実させるためのひとつの基礎研究となるでしょう。 ▼ NeRF-RPN はなにを

    NeRF-RPN:NeRF上で物体検出する技術
    sh19910711
    sh19910711 2024/06/14
    "立体空間内で物体検出 + NeRFの上に積み重なる手法 / NeRF: ニューラルネットワークの表現力を高精細で破綻の少ない空間表現に上手く活用 + それを実現するために微分可能で効率的な学習フレームワークを提案" 2023
  • CNNによる画像分類:背景の影響を低減させる正則化 - Qiita

    はじめに CNNを用いた画像分類モデルを構築するときに、認識したい物体をちゃんと認識したモデルを作るのは結構難しかったりします。特に学習に用いるデータが少なくて偏りがあると以下の例のように画像の背景に基づいた分類モデルになってしまうこともあり得ます。 画像引用:https://arxiv.org/abs/1602.04938 この記事では画像の背景の影響を少しでも減らして認識したい物体を認識したモデルを作るための手法として、Orthogonal Sphere Regularizationという正則化があったので試してみます。 今回の記事で参考にした論文はこちら↓ 使用したコードは以下のGitHubリポジトリに置いてあります。PyTorchCNNを構築し、学習はGoogle ColaboratoryのGPUを用いて行なっています。 Orthogonal Sphere Regularizat

    CNNによる画像分類:背景の影響を低減させる正則化 - Qiita
    sh19910711
    sh19910711 2024/06/14
    "CNN: 学習に用いるデータが少なくて偏りがあると以下の例のように画像の背景に基づいた分類モデルになってしまう / OS Regularization: 背景の空の部分の重要度が減少したことが良い効果をもたらした感じ / ord=fro" 2022
  • ArcFaceの仕組み

    角度を用いた距離学習を説明してます。 基的な理論の部分はSphereFaceで説明しています。 最終的にArcFaceの仕組みを理解できるようにするのが目標です。 ArcFaceについては優れた紹介記事がすでにありますが、角度による距離学習がどういったものか、marginを与えるとなぜうまくいくのかを基礎から説明しています。少しでも理解のお役に立てますと幸いです! 間違っている部分があったら、教えていただけますと非常に嬉しいですm(_ _)m

    ArcFaceの仕組み
    sh19910711
    sh19910711 2024/06/14
    "ArcFace: Softmaxの直前の層の捉え方を工夫 + Softmax Lossによって学習された特徴量は本質的には角度によって分布している + ユークリッド距離を元にした方法は適さない" 2019