サインインした状態で「いいね」を押すと、マイページの 「いいね履歴」に一覧として保存されていくので、 再度読みたくなった時や、あとでじっくり読みたいときに便利です。
全体像 全体としてはこんな感じです。レンズを通して顔の像を作るところは光学の世界、センサ面に結像された像を読み取る電子の世界。そして、センサと PC の橋渡しを USB で行う通信の世界、受け取ったフレームを処理するソフトウエアの世界、という流れで説明していきます。 物理(光学)の世界~一眼とWebカメラ(とスマホ)の違い~ 一番大きな違いは設計思想そのものです。レンズとセンサの大きさ、撮影設定などの柔軟性などに現れています。 一眼レフ:でっかいレンズ × でっかいセンサ = つよい Web カメラ:写ってればいいでしょレベル~産業用レベル スマホ:目的ごとに複数のカメラモジュールを用意したりソフトで後処理したり。ともかく小さく薄く。 光学の世界で大事なことを一つだけ(機種選択の基準として) ピント合わせ の方式はどうなっているか? マニュアルフォーカス → 自分でリング回す:ピント合わせ
概要 pythonからOpenCVのテンプレートマッチ及びGUI操作モジュールを使うことで、 webブラウザ上の麻雀牌をBOTに認識・クリック操作させることができ、プレイの自動化ができました。 また、どの麻雀牌をクリックするかのロジック部分には機械学習を用いました。 テンプレートマッチの探索用画像を差し替えれば雀魂に限らず他の麻雀ゲーム全般で利用可能であり、機械学習の部分を変えれば、特定条件下で合理的選択を繰り返し求められるようなゲーム全般で応用が可能です。 ※内容理解の一助とするために記事内随所に雀魂のゲーム内画像を利用していますが、著作権保護等の観点から強いボカシを入れています。 対象読者 (麻雀が好きで)機械学習を触ってみたい人 WindowsやGUI操作の自動化に興味があるけどOpenCVって何だろうって人 雀魂は好きだけど試練イベント走るのがマジ試練すぎて心が折れた人 過去に大学
この記事はOpenCV Advent Calendar 2020の12日目の記事です。 他の記事は目次にまとめられています。 対象者 以下みたいな作業依頼を受けることのある人。 つまり、デザインに予算はつかないけど、ある程度の工夫を求められるやつ。。。 上長「部内とかで見せるちょっとしたデモをパパッと作って欲しい」 高橋「デザインは○○さんか、△△社さんにお願いします?」 ※○○さん:デザイン会社から派遣で来ているデザイナーさん ※△△社:デザイン会社 上長「今回、デザインに出すお金は無い」 高橋「What?」 高橋「それじゃ、見た目は気にしな」 上長「偉い人も見る可能性あるからソレっぽくしといてもらわないと困る」 高橋「短い間ですが、お世話になりました」 Flaskとか立てて、UI作る人とデザイナーと役割分担出来るようなプロジェクトは対象外 はじめに OpenCVとかPillowで出来る
この記事は「自動運転システムをエッジデバイスに組み込むための技術」を3回に分けて紹介するTURINGのテックブログ連載の第1回の記事「C++でOpenCV完全入門!」です。 第2回の「OpenCVをNPPにした結果→10倍高速に!」、第3回の「詳解V4L2 (video for linux 2)」もぜひご覧ください! はじめに こんにちは。完全自動運転EVを開発するベンチャー企業、TURING株式会社でインターンをしている東大工学部3年の井上信多郎です。 我々人類は、車を運転するにあたって多くの情報を目から取り入れています。目から取り入れた情報を元に、アクセル・ブレーキ・ハンドルを操作しています。 自動運転の場合、その目に相当するセンサがカメラであり、カメラから得た情報を元に車を運転することになります。カメラから得る情報とは、ずばり画像です。画像の中から信号、標識、前方車両などの必要なもの
この記事は「自動運転システムをエッジデバイスに組み込むための技術」を3回に分けて紹介するTURINGのテックブログ連載の第2回の記事「OpenCVをNPPにした結果→10倍高速に!」です。 第1回の「C++でOpenCV完全入門!」、第3回の「詳解V4L2 (video for linux 2)」もぜひご覧ください! はじめに TURINGで働いている木更津高専の越智です。TURINGでは「We Overtake Tesla」を目標に掲げて、完全自動運転EVの開発・製造を行っています。 TURINGでは、社内で使っている自動運転ソフトウェアにおいて、画像処理部分のライブラリをOpenCVからNVIDIA Performance Primitives(NPP)に変更するプロジェクトに取り組んでいました。これによって、CPUで動かしていた画像処理をGPUバックエンドで動かすことができるようにな
この記事はOpenCV Advent Calendar 2021の 23 日目の記事です。 はじめに 3 日目の記事で紹介されているように、OpenCV 4.5.4 では新しく顔検出/顔認識の API が実装されました。この記事ではこの顔検出 API をブラウザから呼んでみることにします。ブラウザから呼び出すにあたって、先にきちんとパフォーマンスを確認して使用する解像度を決めます。更に高速化のために SIMD とマルチスレッドを使った OpenCV の Wasm バイナリを作ります。その後、実用的な環境を想定して React のフロントエンドから呼び出すようにしてみます。ついでに WebRTC で実際に加工した画像が送信できることのデモまで行います。 OpenCV.js での新機能の扱い OpenCV.js で JavaScript から呼び出せる機能はホワイトリスト形式になっており、ビル
OpenCV-Python Is Now An Official OpenCV Project OpenCV Library February 14, 2021 Leave a Comment News Uncategorized Good news, everyone! OpenCV.org is pleased to announce that the popular and long-running package OpenCV-Python is now an official OpenCV project. What is OpenCV-Python? It’s a package that contains pre-built OpenCV with dependencies and Python bindings, so there’s no need to install
R&D チームの徳田(@dakuton)です。 最近は画像とテキストの狭間にいます。 今回記事のまとめ 簡単にまとめると以下のとおりです。 いくつかの超解像(高解像度化)モデルがOpenCV extra modules(opencv_contrib)インストール + コード数行記述で導入可能 超解像に限らず、文字が一定サイズ以上になるような前処理 -> OCR解析 を実施すると、OCR精度改善につながることがある 超解像による見た目の滑らかさに比例して、OCR精度改善につながるわけではない 低計算コストな画像拡大から超解像に変更する恩恵は発生しにくい テスト条件を変えた場合、違った結果になる可能性あり(用いるOCRエンジン、画像の劣化条件、OpenCV未提供の後発モデル利用など) 実験内容 利用するOCRエンジンの実行条件は変えずに、前処理部分のみ変更した場合のOCR精度・速度変化を調べま
こんにちは、CX事業本部 IoT事業部の若槻です。 前回のエントリではOpenCV(Python)のHigh-level GUIを使用して画像をウィンドウで開いてみました。 OpenCV(Python)で画像をウィンドウで開いたり閉じたりする | DevelopersIO 今回は、OpenCVPython)でTemplate Matchingを使用して画像内の検索(物体検出)をしてみました。 環境 $ sw_vers ProductName: macOS ProductVersion: 11.6 BuildVersion: 20G165 $ python Python 3.9.6 (default, Jun 29 2021, 06:20:32) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin Type "help", "copyright", "
照明ムラがある環境下で二値化を行い対象物を抽出しようとする場合、普通に二値化処理を行うと大抵上手く抽出できません。 下の画像はその例で、画像上部が明るめ、画像下部が暗めのになっています。この画像から米粒を抜き出そうとして大津の方法を適用すると、照明ムラの影響を受けて上手く抽出できていないことが分かります。 このような時の対処法の例がMathWorksのホームページに掲載されており、今回はOpenCVで実装します。 jp.mathworks.com // 画像をグレースケールで読み込む Mat gray; imread("non_uniform_illumination_example.png", IMREAD_GRAYSCALE).copyTo(gray); if (gray.empty()) { throw runtime_error("Failed to open image"); }
はじめに 以前、Zig の Tensorflow Lite のライブラリを使って遊ぶ記事を書いた。 この記事内では、静止画の処理を行うために、STB ライブラリを用いた。 こうなると次は動画の処理を行いたくなるものだ。 ... ならば OpenCV を Zig から使えるようにしようではないか。 OpenCV の C バインディングを作る OpenCV は C++で書かれているので、Zig から関数を呼び出すには C バインディングを作る必要がある。 1から OpenCV の C バインディングを作るのは大変なので、 今回は同じ手法で C バインディングを実装して呼び出している gocv のコードを利用させていただくことにした。 これで、工数の半分以上が省けることになる。 Zig バインディングを作る この記事の執筆中ではまだ完成はしていない。 しかし、Web カメラの画像を取得して文字や
概要 アート作品の価値を可視化するシステムを作りたいと、福岡のアーティストの方より依頼があった。 アート作品をどれだけの人が、どのくらいの時間鑑賞したかをできるだけ安価なシステムで実現できないか検討した。 RaspberryPiをアート作品の前に設置し、OpenCVで顔検出した時間を累積することとした。 データ可視化サービスとしてAmbient(https://ambidata.io) を使った。 データのアップロードはRaspberryPiのWifi経由とした。 インターネットにカメラ映像は流れず、送信する数値データのみとすることにした。 福岡市のスタートアップ支援施設 FGN(https://growth-next.com) に設置し運用してみた様子。 用意するもの Raspberry Pi3 Model B (4でもおそらく大丈夫) Raspberry Pi用のケース Raspber
1 はじめに CX事業本部の平内(SIN)です。 前回、Amazon SageMaker(以下、SageMaker)の物体検出(組み込みアルゴリズム)を、SageMaker Neo(以下、Neo)で最適化して、Jetson Nanoで利用してみました。 今回は、イメージ分類(組み込みアルゴリズム)について、確認してみました。 最初に、動作を確認している様子です。GPUがフルに回っていますが、約0.1秒で推論できています。 2 モデル 使用したモデルは、下記で作成したものです。 17種類の商品を回転台に乗せて動画撮影したデータから、イメージ分類のモデルが作成されています。 3 SageMaker Neo 下記の諸元で、上記のモデルを最適化しています。 ジョブ名: ic-SYOHIN17-jetson-Nano-001(任意です) データ入力値: {"data": [1, 3, 224, 22
画像はUnsplashより 日々、目まぐるしく進化、発展を遂げる人工知能(AI)業界。さまざまな企業が新しいサービスを開始したり、実験に取り組んだりしている。 そこで本稿ではLedge.aiで取り上げた、これだけは知っておくべきAIに関する最新ニュースをお届けする。AIの活用事例はもちろん、新たな実証実験にまつわる話など、本稿を読んでおけばAIの動向が見えてくるはずだ。 フリーランスエンジニア向けサービスをまとめたカオスマップ、2021年度最新版が公開 株式会社セルバは3月10日、「【2021年度最新版】フリーランスエンジニア向けサービスのカオスマップ」を公開した。 本カオスマップでは、フリーランスエンジニア向けのサービスを「案件獲得系」「バックオフィス系」「スキルアップ系」「情報収集系」「副業系」「インフルエンサー系」「コミュニティ系」「協会・団体系」の8カテゴリに分類し、約200サービ
この記事は OPTiM TECH BLOG Advent Calendar 2020 12/17 の記事であり、Swift その2 Advent Calendar 2020 の 17 日目の記事です。 こんにちは。R&D チームの久保です。今月でオープンソース化されてから 5 周年を迎えた Swift ですが、今回の記事はそんな Swift から OpenCV (C++) を今風のやり方で呼び出してみるまでの方法についてです。成功した方法だけ見ると大したことはなさそうですが、一歩足を踏み外すと多くの罠が潜んでいる状態だったので、今後同様のことをしたい人が同じ罠にはまらないようにまとめてみました。 XCFramework とは Swift Package Manager によるサポート なぜ OpenCV を XCFramework にして SwiftPM 経由で使おうと思ったか 必要環境
初めに 皆さん初めましてmosyoryです。 画像処理に興味はあるがどうやってやるのかわからない、そんな方もいるのではないでしょうか。 本記事ではWindows・Macの環境でPythonとOpenCVを使ってちょっとした画像処理の方法を紹介したいと思います。関数等の詳細な解説は行っていないので予めご了承ください。 初めに OpenCVとは OpenCVのインストール Windows Mac pipでインストールできない 基本操作 読み込み 表示 保存 画像処理 色空間の変換 二値化処理 輪郭検出 輪郭描画 終わりに 参考サイト OpenCVとは OpenCV(Open Source Computer Vision Library)とはオープンソースコンピュータ・ビジョン・ライブラリです。 画像処理や汎用的な数学処理、機械学習に関するアルゴリズムが多数含まれています。 C+、Python、
皆さん、突然ですが上の画像をご覧ください。 (画像引用:OpenCV公式サイトより) これは、画像認識技術の応用例の一つです。コンピューターが映像の範囲内で移動する複数の人間を検知し、その移動をリアルタイムで追跡している様子が見て取れます。かなりの数の人がいるにも関わらず、ほとんどの人を正確に検出することができていますね。画像認識とは、このように画像の数値情報のパターンから写っている物体を認識する手法のことを指します。(本稿で度々登場する物体検出という用語も画像認識と同様の意味を持つと考えていいでしょう。) また、これは画像認識の例ですが、高精度の画像認識を行うために必要不可欠なのが画像処理の技術です。画像処理とは、コンピュータを用いて画像に対して行う、色を変換したり変形させたり、ぼかしたりするなどの処理全般を指します。画像処理を行うことで、コンピュータが画像内の物体を認識しやすくなります
はじめに質問 Wasm は何で書く?Go? Rust? AssembyScript? やっぱりWasm は C++!!!~Wasm/EmscriptenでOpenCVを使う~ ※現状での個人の見解です。 ということで、Emscripten で OpenCV を扱うことについて記事です。 この記事の元ネタはWebAssembly Night #10の発表内容です。 そしてOpenCV Advent Calendar 2020 の 9 日目でもあります。 画像処理 on your Browserの時代 Wasm といえば最近はすっかり Go や Rust で書くことが盛り上がっていますが、まだまだ C++/Emscripten も活躍しどころがあります。ブラウザでのクライアント画像処理が代表的なものでしょう。 WebRTCインフラの充実 時雨堂 WebRTC SFU Sora/NTT Com.
こんにちは、CX事業本部 IoT事業部の若槻です。 今までOpenCVはPythonで使うものというイメージが強かったのですが、OpenCVのJavaScript実装であるOpenCV.jsなるものもあるみたいです。 OpenCV.js 今回は、OpenCV.jsをJavaScriptおよびNode.jsで使ってみました。 やってみた OpenCV.jsの導入 まず準備としてOpenCV.jsの導入を行います。 下記よりOpenCVのソース(opencv-{VERSION_NUMBER}-docs.zip)の最新版をダウンロードします。 Releases · opencv/opencv 解凍したソース内に含まれるopencv.jsを作業パスにコピーします。 JavaScriptで使ってみる こちらのチュートリアルを参考に、OpenCV.jsをJavaScriptで使ってみます。 OpenC
Jetson nano Jetsonは、GPUで有名なNvidiaから発売されている、GPUを搭載しているシングルボードコンピュータです。 2020/02/14に発売された最新のB01 Jetson nanoを今回は利用します。 Amazonで本体だけで13,000円程度でした。 Jetson nanoはRaspberry Piとよく比較されますが、Jetson nanoはGPUが搭載されているので機械学習や画像認識などで強みがありそうです。 Jetson nanoと電源アダプタ(5V)とSDカードを購入しました。 SDカードは大容量で安いものもありますが、速度に影響が出るので、少し高くてもある程度有名どころをかっておくのがおすすめです。 あと、大きすぎるとまるっとバックアップする際に大変で、小さすぎるとOSだけでいっぱいいっぱいになってしまうのでJetson nanoの場合64GBくらい
ライブラリが豊富でさまざまな開発が行えるPythonでは、画像処理も簡単に実現できます。近年、AI(人工知能)の発達によってPythonの人気も高まっていますが、AIの画像処理で利用されることの多い「OpenCV」はご存知でしょうか。OpenCVを利用すれば、顔認識や追跡などの画像処理を非常に簡潔なコードで記述できます。 この記事では、OpenCVの概要からインストール手順、基本的な操作方法と併せて、顔認識を実現するための方法を解説します。 OpenCVとは? OpenCVはインテル社が開発・公開しているオープンソースのライブラリです。もともとはOpen Source Computer Vision Libraryという名称でしたが、2006年にOpenCVとして生まれ変わりました。OpenCVは商用利用であっても無料で利用でき、画像処理や画像解析、機械学習向けの機能が集約されています。例
Flask, Vue.js, OpenCV, Pytorchで画像認識アプリをHerokuにデプロイするPythonHerokuMachineLearningVue.js MNISTで学習したモデルを使って複数桁の数字を認識できないかと思った.ついでにWebアプリとしてデプロイもしてみた. - コード - アプリ 作業工程 機械学習モデルを学習 複数桁の数字を一桁の数字へ変換するモジュールを作成 Flask & Vue.jsのWebアプリを作成 Herokuへデプロイ 機械学習モデルを学習 PyTorch MNIST example - GitHubを参考にして学習. 学習に使用したコード→ ./server/modules/mnist.py 複数桁の数字を一桁の数字へ変換するモジュールを作成 コード→ ./server/modules/processes.py メソッドについて説明する.
マルチコアCPU/GPU/FPGAを用いた高速化技術のグローバルリーダーである株式会社フィックスターズ(東証1部: 3687、代表取締役社長 CEO: 三木 聡)は、同社が開発した視差計算のオープンソースソフトウェア(OSS)「libSGM」が、コンピュータビジョン向けOSSライブラリ「OpenCV」に正式実装されたことをお知らせします。ステレオカメラの画像から視差計算をするlibSGMは、複雑化・高度化する自動運転システムの前方注視能力の向上など様々な用途に活用が期待されています。推定1800万ダウンロードを超えるOpenCVに採用されたことで、コミュニティを通じて世界中のデベロッパーにlibSGMを活用いただきやすくなりました。 OpenCV(https://opencv.org/)にフィックスターズのlibSGMが実装された libSGMとOpenCV libSGMは、Semi-Gl
<video id="player" controls playsinline muted autoplay></video> <script> const player = document.getElementById('player'); const constraints = { video: true, }; navigator.mediaDevices.getUserMedia(constraints) .then((stream) => { player.srcObject = stream; }); </script> <!DOCTYPE html> <html> <body> <video id="player" controls playsinline muted autoplay></video> <button id="capture">Capture</butto
タルムード翻訳中。少々時間かかりそう……まあ多分少なくとも数年くらいは必要かなと(笑)解説書より本体を丸ごと読むんだよと思っていたものの、解説書をかじる方が賢明かもしれません。 300円くらいの安いやつ読書してみては。読書のすすめ。 「プログラミングは検索が半分」とかいう愚痴(?)が聞こえてきたりもするが、確かにその通りかもという気がすることも時々ある。 実際ちょっと検索方法を変えてみるとか、情報を仕入れてみれば案外あっさりと手に入れられるものも多々あるのでいくつか紹介がてらついでにここに貼って必要な時にダウンロードできるようにしとこうという思惑で書いてみることに。 ⑴createsamples.exe(opencv_createsamples.exeとも) haartraining.exe(opencv_traincascade.exeとも。両方とも名前は短くできます) この二つ探すのに
OPTiM TECH BLOG Advent Calendar 2020 12/15 の記事です。 R&Dの加藤です。最近のマイブームは市場で魚を買う事です。(切り落としやテールですが)マグロも数百円で買えます。 今回は、タイトルにもある通り、OpenCVでQRコードを複数同時検出する方法をコードや動画を交えて紹介します。 前置き 覚えている方も多いかもしれませんが、MLKitの紹介をした時に以下のように説明しました。 OpenCVのQRコード検出のみ現状でマルチ検出に対応していません。 しかし、マルチ検出のプルリクエストが出ているので、気長に待ちましょう。 実はOpenCV 4.3からQRコード*1の複数同時検出に対応ました*2! という事で、OpenCV 4.3以降であれば簡単にQRコードの複数同時検出が可能になりました。 今までは複数のQRコードがある場合にどちらも検出できなかった(
1 はじめに CX事業本部の平内(SIN)です。 Pytorch入門ということで、MNIST(手書き数字のデータセット)から作成したモデルを使用して、OpenCVでWebカメラの動画を推論にかけてみました。 使用したモデルのコードは、Githubで公開されている、Pytorchの公式サンプルコードです。 https://github.com/pytorch/examples/blob/master/mnist/main.py 最初に動作しているようすです。 推論の対象となっているのは、画面の中央だけで、別ウインドウに表示されている部分です。 2 モデル 公開されているサンプルコードは、以下のようになっています。 (1) データセット データセットは、torchvisionによって、MNISTが利用されています。 取得時に、transformsによる変換を行って、訓練用とテスト用のデータロー
このチャプターでは、コンピュータビジョン向けライブラリOpenCVを使った画像処理の基本的な方法を習得します。 本レッスンの内容を進めるにあたり、PCのメモリ容量として8GB以上が必須(16GB以上を推奨)となります。それよりも少ないメモリ容量のPCで実行すると、メモリの空き部分がなくなってしまい、コードの実行が強制的に終了するかもしれませんので、注意してください。 OpenCVは、インテル社が開発したオープンソースのコンピュータビジョン向けライブラリです。 画像の読み込みや書き込み、拡大縮小・回転、色変換などの基本的な加工だけでなく、輪郭抽出やノイズ除去などのフィルタ処理、物体が写っている領域を判定する物体検出などの機能もあります。また動画ファイルを読み込んで、1コマずつ処理することもできます。 OpenCVは、さまざまなプログラミング言語から利用できるライブラリですが、本レッスンでは、
はじめにこの記事は春の入門ブログ連載20236日目です。 新卒未経験でIT業界に飛び込んではや一年。だんだんと普段使うJavaに関しては余裕が出てきたところで他の言語にも手を出そうと思い、以前から気になっていた画像処理にチャレンジしました。 普段はコーディングしてもテストがうまくいく or いかないのどちらかでしか成果物を見ることができなかったので、視覚的に動いてる! を感じてみたく、新宿の紀伊國屋で分かりやすそうな書籍を買い、いろいろ試したので同じように画像処理にちょっと興味があるような人に読んでいてもらたらうれしいです(入門編ということでセットアップなどに具体的に触れるよりも、いじっていみた面白さを伝える方に寄せています) 参考書籍:実践 OpenCV 4 for Python 画像映像情報処理と機械学習 実際にPythonで画像処理を体験した感想「めっちゃ簡単なのにめっちゃ楽しいじゃ
2020年6月13日:一部加筆・修正しました。 2020年4月27日、OpenCV にこんな PR が現れました。 Objc binding by komakai · Pull Request #17165 · opencv/opencv これまで、OpenCV には Java のラッパーが含まれていたため、Android で簡単に OpenCV を利用することができましたが、iOS、macOS では Objective-C、Swift で使うために自分で C++ を呼び出すためのラッパーを書く必要がありました。そこで、@komakai さんによって提案されたのがこの PR でした。 そして今日 2020年6月9日、その PR が無事に master ブランチへマージされ、自分で Objective-C++ を書くことなく、Objective-C、Swift で使うことができるようになりま
OpenCVを使えば、次のように画像を切り抜くことが可能です。 一般的には、台形補正・射影変換(透視変換)とも言われます。 個人的には、台形補正という表現がわかりやすいと思います。 以下では、台形補正で呼び名を統一します。 この記事では、OpenCVによる台形補正のやり方を解説しています。 本記事の内容 OpenCVで台形補正を行うための環境【サンプルコード】OpenCVによる台形補正実例で比率調整を行う それでは、上記に沿って解説していきます。 OpenCVで台形補正を行うための環境 この記事では、PythonでOpenCVを利用しています。 そして、OpenCVのインストールに関しては、次の記事を参考にしてください。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く