画像処理
Fyuse SDKを使うと、3D写真(=Fyuse)を撮る/見る機能をアプリに組み込むことができます。 本記事ではそんなSDKの使いどころや組み込み方法について紹介してみたいと思います。 ※念のため、このFyuseおよびFyuse SDKは、僕が所属しているFyusion社のプロダ…
iOS 11から追加された、AR機能を実装するためのフレームワーク「ARKit」についてWWDCのラボ(Appleのデベロッパに直接質問できるコーナー)で聞いたことのメモです。注目のフレームワークなので行列ができてましたが、丁寧に色々と教えてくれたので、忘れな…
Metal の compute shader について。随時書いていきます。 [[ thread_position_in_grid ]] って何? こういう感じで、カーネル関数の引数から受け取れるやつ。 kernel void add_vectors(const device float4 *inA [[ buffer(0) ]], const device float4 *inB…
Metalでグラフィック処理を行うにしろ並列演算を行うにしろ、GPUに処理をさせるためのシェーダを書かないといけないわけですが、これがまだ情報が少なくて、「こういうシェーダを書きたいんだけど、誰かもう書いてないかな・・・」というときに参考になる近…
TensorFlow に iOS サポートが追加された というニュースを見かけたので、ビルドして、iOSで動作させてみました。 (たまたま目の前にあった扇風機もバッチリ認識してくれました) 本記事では最終的にうまくいった手順を書いています。この手順をなぞってみ…
すごい雑なメモですが、ちゃんと書くにはまだ理解が足りてなくて、かといってローカルに放置するとまた同じことを一から自分で調べそうな気がするので、とりあえずアップ。 ※古いコードを流用している部分もあるため、一部ObjC、一部Swiftです。 やりたかっ…
「いつか勉強しよう」と人工知能/機械学習/ディープラーニング(Deep Learning)といったトピックの記事の見つけてはアーカイブしてきたものの、結局2015年は何一つやらずに終わってしまったので、とにかく一歩でも足を踏み出すべく、本質的な理解等はさて…
昨日、クラスメソッドさん主催の勉強会『iOS 9 週連続 Bootcamp!2週目』にて登壇させていただきました。 Core Image Tips & Tricks in iOS 9 from Shuichi Tsutsumi タイトルにある "Tips&Tricks" はWWDCのセッション名でもたびたび使われている用語で、Tri…
先日、Gunosy さん主催の勉強会「WWDC Afterparty Roppongi」にて標題の発表をさせていただきました。 iOS 9 の新機能 Core Image 編 from Shuichi Tsutsumi タイトルの通り、iOS 9 の Core Image の新機能について紹介&デモ *1 しました。 概要 大きく分け…
第19回 yidev(横浜iPhone開発者勉強会)にて、『OpenCV 3.0 on iOS』という発表をさせていただきました。 OpenCV 3.0 on iOS from Shuichi Tsutsumi 概要 OpenCV 3.0 の話、というよりは、最新版の3.0をベースとしつつ、「Core Image や vImage や GPUImage…
写真に意図せず写りこんでしまった物体等を取り除き、それによって欠損した領域を自動修復する技術を、画像修復/画像補間/インペインティング(Inpainting)と呼びます。 で、OpenCV にその機能があったので iOS で実装してみました。 関数 inpaint は,選…
局所特徴量とは / SIFT, SURF 特徴量 このスライドが超わかりやすかったです。 画像認識の初歩、SIFT,SURF特徴量 from takaya imai で、SIFT (Scale-invariant feature transform)、SURF (Speed-Upped Robust Feature) というのは、拡大縮小・回転・照明変化…
ビッグデータとかの機械学習隆盛の背景にある文脈や、その拠り所となるコンピュータの処理性能から考えても「モバイルデバイス向けOSと機械学習を紐付けて考えようとする」ことはそもそもあまり筋がよろしくない・・・とは思うのですが、やはり長くiOSだけに…
「GLSL を書いてオレオレフィルターをつくれる」というコンセプトのカメラアプリがリリースされました。 Filters | 面白法人カヤック シェーダを書いて動的に適用する、というアイデア自体は昔からあるものですが、 GLSL Studio : iOS端末上でGLSLが書けるシ…
「機械学習」というワードになんとなく惹かれつつも、具体的にやりたいことがあるわけでもないので、手を動かすことなくただひたすら「いつかやる」ために解説記事やチュートリアル記事を集める日々を過ごしていたのですが、このままじゃイカン!と Machine …
先週末、『デジタルアートセミナー#3 openFrameworksで学ぶ、クリエイティブ・コーディング』という一泊二日のセミナーに参加してきました。(※参加者のTLでは「oFセミナー」という呼称の方が一般的でした) 自分にとっての openFrameworks (以下 oF)は、 …
『デジタルアートセミナー#3 openFrameworksで学ぶ、クリエイティブ・コーディング』の最終セッション『映像解析によるインタラクション』のメモです。 openFrameworksとOpenCV(ofxOpenCV、ofxCv)を組みあわせることで、映像を用いたインタラクティブな表…
Core Image の CIFilter でいろいろなフィルタ処理(画像処理/画像加工)ができるのはみなさまよくご存知かと思いますが、iOS 8 では CIKernel というクラスが追加され、そのフィルタ(CIFilter)を自作できるようになりました。 本記事は、その作成手順に…
Core Image のフィルタ (CIFilter) には、CICategoryTransition というカテゴリーがあり、次のような遷移(トランジション)エフェクトが用意されています。 (2015.10.5更新) CIBarsSwipeTransition CICopyMachineTransition CIDisintegrateWithMaskTransi…
OpenCVで実装した画像処理アルゴリズムを、OpenGL ESのフラグメントシェーダに移植しようとしていて、GPUImageに入っているフィルタのシェーダプログラムを参考として読み始めたものの、そもそもこのシェーダというものがよくわかってないので、下記の記事を…
Core Image のフィルタ(画像にエフェクトをかけたり、色を調整したりするもの)を一通り試せるサンプルプロジェクトをgithubに上げました。 というか、これ、1年以上前にアップしてこちらの記事に書いたのですが、ほとんど認知されることがなかったので、改…
「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とか、カメラ機能をもっと自由にカスタマイズしたい場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使う…
超大ヒットした『漫画カメラ』、ほんとに漫画っぽくなって、動作も軽快、シェアも簡単で楽しいですよね。 ただ、ちらほらと「同じこと考えてた」「そういうの作ってた」という声を聞くことがあります。実際に同様のコンセプトのアプリもたくさん出ています。…
前回記事の続きです。 前回は、プレビュー表示するところまで書きました。今回は、シャッター撮影して画像をカメラロールに保存するところまで。 出力の準備 プロパティ宣言 @property (nonatomic, strong) AVCaptureStillImageOutput *imageOutput; 出力の…
「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とかの場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使ってカメラ機能を自作する必要があります。 とい…
人間から見て"納得感"のある画像処理をしようと思うと、領域分割(セグメント化)をしたくなる場合が多々あります。 たとえば、人物と背景とを別々に処理したい、とか、人の肌の部分だけに処理をしたい、とか。 OpenCVではそういった「領域分割」を行ってく…
先日の記事で第2回勉強会向けに用意していた発表内容について書きましたが、本日(7/21)開催された第3回で発表の機会をいただいたので、資料とサンプルコードをアップデートして発表してきました。 iOS 5 から Accelerate.framework に追加された高速画像…
めんどくさいタイトルですいません。。 僕がこの勉強会のATNDに気づいたころには120人の参加者枠もとっくにうまり、発表者枠も既に10人に達していたのですが、「時間がもし余ったら」と @k_katsumi さんの粋な計らいでLT補欠として参加させていただいた、と…
ゲームのキャラ画像など、一つの画像に対して配色パターンがたくさんある場合、画像ファイルは1つだけ持っておいて、カラーパレットを動的に書き換えるという方式をとるようです。 これだと容量を節約できるし、全ピクセルに対して色変換する場合と違ってパ…
過去のメモからの掘り起こしシリーズ。 『恋愛偏差値』という、ロンブー田村淳さんと、早稲田大学森川教授とのコラボアプリ開発中のメモより。 OpenCV Error: Null pointer (NULL filename) in cvOpenFileStorage, file ../../src/cxcore/cxpersistence.cpp,…