サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
インタビュー
zenn.dev/kounoike
この記事はYAPC::Hakodate 2024 Perlbatrossの解法の説明を含みます。自分で解きたい方は先に解いてから閲覧ください。 はじめに 最近は Perl を書くこともほとんどなくなり YAPC にも参加していなかったのですが、2024年の YAPC::Hakodate にてコードゴルフの企画 Perlbatross があるという情報が X で流れてきたので、今回はその参戦記を書いていきます。 筆者は元々10年以上前に盛り上がっていた codegolf.com で Perl で遊んでいたので、昔取った杵柄でいけるだろうと踏んでの参加です。 以下では最終的な提出コードと、そこに至るまでのステップを少し紹介することでコードゴルフのテクニックを紹介していきます。実際にはここに記載した以上に試行錯誤をしています。 Perlbatross のルールとして、自分の提出したコードと同じか
「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「Zig は SIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に SIMD 最適化される様子を検証してみます。 ベンチマーク環境 OS: Ubuntu20.04 on WSL2 on Windows11 CPU: AMD Ryzen 9 5900X 12-Core Processor お題 一般的な画像データ構造の表現である、幅×高さ×4(RGBA)の長さを持つ8bit整数の配列を受け取り、in-placeでRGBの値を 10 加算して明るくするという関数を考えます。Aの値は元のままとします。
対象読者判定フロー 以下の質問にはいかいいえで答えてください。 Q1: GitHub を使用していますか? はいの方→次の質問に進んでください。 いいえの方→対象外です。すみません。 Q2: ソースコードなどの変更は全てプルリクエストで行って(=master/main 直コミットはしていない(多少ならOK))いますか? はいの方→次の質問に進んでください。 いいえの方→まずはプルリクエストベースの開発に切り替えてみてはいかがでしょう? その後で続きを読んでください。 Q3: リリースノートをちゃんと書いていますか? はいの方→基本的に対象外です。継続して書いていって下さい。楽をしたいと思ってる場合は続きを読んでください。 いいえの方→あなたは対象読者です! この記事を読んで、お手軽自動生成でも良いのでリリースノートを作成しましょう! はじめに 公開しているソフトウエアにバージョン番号を付け
この記事はOpenCV Advent Calendar 2021の 24 日目の記事です。文体は真面目ですが、内容はゆるふわにいきます。ふわふわ~。 はじめに OpenCV の Python bindings は便利ですよね。特に Jupyter notebook と組み合わせて処理結果を見ながら画像処理を組み立てて行ったりとかが簡単に出来ます。一方で C++ での OpenCV 開発の場合はどうでしょうか? 結果を一々 imwrite してたりしませんか? Windows で Visual Studio を使っている場合は、この記事で紹介する Visual Studio の Image Watch プラグインを使えばそんなことしなくても画像を見ながらデバッグが出来ます。 Image Watch plugin のインストール Visual Studio Marketplace で "ima
この記事はOpenCV Advent Calendar 2021の 23 日目の記事です。 はじめに 3 日目の記事で紹介されているように、OpenCV 4.5.4 では新しく顔検出/顔認識の API が実装されました。この記事ではこの顔検出 API をブラウザから呼んでみることにします。ブラウザから呼び出すにあたって、先にきちんとパフォーマンスを確認して使用する解像度を決めます。更に高速化のために SIMD とマルチスレッドを使った OpenCV の Wasm バイナリを作ります。その後、実用的な環境を想定して React のフロントエンドから呼び出すようにしてみます。ついでに WebRTC で実際に加工した画像が送信できることのデモまで行います。 OpenCV.js での新機能の扱い OpenCV.js で JavaScript から呼び出せる機能はホワイトリスト形式になっており、ビル
TL;DR VS Code 前提になってしまいますが、VS Code Remote Containers 拡張最強です、という話。実際にどういう風に作れば良いかは参考リポジトリ作ったので見て下さい。 はじめに 背景ぼかしのような推論結果を使ってカメラ画像にフィルタを入れる処理を書くとき、今だと選択肢は大きく分けて 2 つあります。 tfjs を使う Wasm 経由で tflite やその他ライブラリを使う この記事では後者の Wasm を使う方に注目して、その開発環境について記載します。 先行例 w-okadaさんのリポジトリには複数の Wasm を使った事例が紹介されています。 例を挙げるとTFLite Wasm for Google Meet SegmentationやTFLite Wasm for ESPCNなどが Wasm です。 これらのビルド環境はどうなっているかというと、Do
NP 困難な最適化問題の定番、みんな大好きナップサック問題の話です。話が発散しないよう、今回取り扱うのは 0-1 ナップサック問題に限ることとします。 TL; DR 理論的には NP 困難だけど、実用上ほとんどは簡単な問題 ちゃんと書いた分枝限定法ソルバーであれば、ランダムに作った問題だと n=1000 万でも 120 ミリ秒くらいで解けちゃう こうなると入出力の時間の方がボトルネック profit-weight の分布を特徴的にしたとき、難しい問題が出てくることがある 特に貪欲法対策をやられるとつらい。対策し返してないと n=100 くらいまでしか解けなくなる 難しい問題のジェネレータもあるし、生成方法も簡単なんでちゃんと考えよう はじめに 先日こんなツイートが RT で回ってきました。 これを見てこんな風に思いました。 「そうなんだよなー、みんな難しい問題の生成方法とか知らなくてランダ
GitHub自体がどうなっているかは分からないが、同種のサービスであるGitLabはソースが公開されている部分もあるので参考になる。よく「GitLabはRuby on Rails」と言われるが、実はGitリポジトリ操作・連携の部分は別サービスに切り出されていて、それはGoで書かれていたはず。なんかソース読んでたら突然Goになったんで覚えている。ライブラリとしては多分git2goかな。Rubyにもruggedがあるが、多分パフォーマンスとかの問題で切り替えたのだろうと思われる
全体像 全体としてはこんな感じです。レンズを通して顔の像を作るところは光学の世界、センサ面に結像された像を読み取る電子の世界。そして、センサと PC の橋渡しを USB で行う通信の世界、受け取ったフレームを処理するソフトウエアの世界、という流れで説明していきます。 物理(光学)の世界~一眼とWebカメラ(とスマホ)の違い~ 一番大きな違いは設計思想そのものです。レンズとセンサの大きさ、撮影設定などの柔軟性などに現れています。 一眼レフ:でっかいレンズ × でっかいセンサ = つよい Web カメラ:写ってればいいでしょレベル~産業用レベル スマホ:目的ごとに複数のカメラモジュールを用意したりソフトで後処理したり。ともかく小さく薄く。 光学の世界で大事なことを一つだけ(機種選択の基準として) ピント合わせ の方式はどうなっているか? マニュアルフォーカス → 自分でリング回す:ピント合わせ
はじめに質問 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.
はじめに 最近ついに、Google Meet に背景ぼかし機能が利用可能になりましたよね。日本語だとインプレスのケータイ Watchの記事などで紹介されてます。確か 2020 年 9 月末前後で順次リリースされていたと記憶しています。 このときは「背景ぼかし」の機能しかなかったのですが、最近(私が気づいたのは 2020/10/30)更にアップデートされました。アップデートで「背景差し替え」機能が付いて、ぼかし機能もぼかし効果が強弱 2 つから選べるようになりました。まだ日本語のニュース記事は見てないですが、Googleによるアップデートの発表はちゃんとされています。 そして、Google AI Blog でBackground Features in Google Meet, Powered by Web MLという記事が公開され、実装についての解説がされました。 この記事はその解説記事を
このページを最初にブックマークしてみませんか?
『こーのいけさんの記事一覧』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く