問題タブ [cifacefeature]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - CIDetector と UIImagePickerController
組み込みの iOS 5 顔検出 API を実装しようとしています。のインスタンスを使用してユーザーが写真を撮れるようにしてから、顔の特徴を検出するためUIImagePickerController
に使用しようとしています。CIDetector
残念ながら、featuresInImage
常にサイズ 0 の配列を返します。
コードは次のとおりです。
これは常に 0 の特徴を返します。ただし、アプリケーションに組み込まれているファイルから UIImage を使用すると、顔検出はうまく機能します。
このPragmatic Bookshelf の記事のコードを使用しています。
価値があるのは、UIImageをカメラからCIImageに変換するときのエラーだと思いますが、何でもかまいません。
ios - iOS 顔検出器の向きと CIImage の向きの設定
EDITは、フロントカメラの画像に役立つこのコードを見つけましたhttp://blog.logichigh.com/2008/06/05/uiimage-fix/
他の人が同様の問題を抱えていて、私を助けてくれることを願っています. まだ解決策を見つけていません。(少し長く見えるかもしれませんが、ヘルパー コードの束にすぎません)
カメラから取得した画像 (前面と背面) とギャラリーからの画像に iOS 顔検出器を使用しています (UIImagePicker
カメラによる画像キャプチャとギャラリーからの画像選択の両方に avfoundation を使用していません)。 squarecam のデモのように写真を撮る)
私は検出のための座標を本当に台無しにしているので(もしあれば)、顔の境界を取得するための短いデバッグメソッドと、それらの上に正方形を描くユーティリティを書きました。検出器がどの方向を向いているかを確認したかったのです。仕事をしていました:
[1]
たくさんの異なる写真を試した後、顔検出器の向きがカメラ画像のプロパティと一致していないことに気付きました。uiimage の向きが 3 (imageOrienation のクエリ) である正面向きのカメラからたくさんの写真を撮りましたが、顔検出器はその設定の顔を見つけられませんでした。すべての exif の可能性を調べたところ、顔検出器は最終的に顔を検出していましたが、向きはすべて一緒でした。
![1]: http://i.stack.imgur.com/D7bkZ.jpg
どうすればこれを解決できますか? 私のコードに間違いはありますか?
私が抱えていた別の問題 (ただし、顔検出器と密接に関連している) は、顔検出器が顔を拾うときに、「間違った」向き (主に正面向きのカメラで発生します) の場合、UIImage
最初に使用されたものは uiiimageview に正しく表示されますが、正方形のオーバーレイを描画します (アプリでopencv を使用しているUIImage
ため、opencv でオーバーレイを描画するために cvmat に変換することにしました) 画像全体が 90 度回転します (UIImage
最初に表示された i ではなく、cvmat 画像のみ)
ここで考えられる理由は、顔検出器が、UIimage から opencv mat への変換が使用しているバッファ (コンテキスト?) をいじっているということです。これらのバッファを分離するにはどうすればよいですか?
uiimage を cvmat に変換するコードは (UIImage
誰かが作成した「有名な」カテゴリから):
objective-c - CIFaceFeature を使用して IOS の耳、頬、頭の位置を見つける方法
私のプロジェクトでは、目、口、鼻、耳、頬、頭など、顔のすべての部分を細かくする必要があります。を使用CIFaceFeature
することで、目の位置と口の位置を取得できます。
部品の残りの位置を見つける方法は?
ios - CIFaceFeatureから返されたCGPoint結果の変換
で描画するために、CGPoint
から返された結果を変換する方法を理解しようとしています。以前は、物事を簡単にするために画像を0回転に正規化していましたが、横向きモードで保持されたデバイスで撮影された画像では問題が発生します。CIFaceFeature
CALayer
私はこれにしばらく取り組んできましたが成功せず、タスクの理解が間違っているのか、アプローチが間違っているのか、あるいはその両方なのかわかりません。これが私が正しいと思うことです:
CIDetector
featuresInImage:options:
メソッドのドキュメントによると
以下のコードでは、UIImageViewをオーバーレイするCAShapeレイヤーを介してCGPointを描画するために、CGPointを回転させようとしています。
私が行っていること(...または私が行っていると思う...)は、左目のCGPointをビューの中心に移動し、90度回転してから、ポイントを元の位置に戻すことです。これは正しくありませんが、どこが間違っているのかわかりません。それは私のアプローチが間違っているのですか、それとも私がそれを実装している方法ですか?
--leftEyePositionはCGPointです
この投稿から:https : //stackoverflow.com/a/14491293/840992、imageOrientationに基づいて回転を行う必要があります
オリエンテーション
Apple / UIImage.imageOrientation Jpeg / File kCGImagePropertyOrientation
メッセージは2013年2月1日午後4時9分にskinnyTODによって編集されました
iphone - 手、足などの完全なボディを検出するにはどうすればよいですか?
CIFaceFeatureを使用して、顔の特徴を検出できます。しかし、手と足も検出したいです。
これらをどのように検出できますか?これらを検出できる他のクラスまたはロジックはありますか。
core-image - CIFaceFeature 検出を使用して、画像で検出された顔の信頼度を判断できますか?
画像内の顔を検出するために CIDetector を調べ始めたばかりですが、検出器が顔を検出したときの信頼レベルを誰かが判断できたかどうか疑問に思っています。
基本的に、さまざまな検出器の精度を選択することで検出器のしきい値を設定できることはわかっていますが、検出された機能が要求された精度をどれだけ上回っているかを知る方法はありますか?
基本的に、2 つの顔を含む画像がある場合、オプションを使用して両方が検出されたと仮定して、2 つのうちどちらが顔である可能性が高いかをどのように判断できCIDirectorAccuracyHigh
ますか?
ありがとう
ムスタファ
objective-c - CIFaceDetector の原点の不正確さ
基本的な顔検出に CIDetector/CIFaceDetector を使用しようとしていますが、顔を正しく認識しているように見えますが、境界の四角形は、私が投げたすべてのもので一貫して不正確です。これは、緑色のボックスとして検出された境界を含むサンプルです: http://i.imgur.com/bQNaEnq.jpg
すべてがこの量だけ普遍的にシフトダウンまたはミラーリングされているようです. 座標が左上ではなく左下から来ているようです。この画像で 8 つの CIDetectorImageOrientations をすべて試しましたが、それらはすべて同じ間違った座標を返します。ここで何が欠けていますか?コードは次のとおりです。
それは本当にそれです。画像は、Web からの基本的な UIImage imageWithData: です。
ios - 大きな画像と異なる縦横比で CIDetector と CIFaceFeature を使用する方法
私はこれに何日も取り組んできましたが、画像サイズがUIImageViewと同じ場合、すべての例があります。さらに、スタックに関する回答の多くは時代遅れです。
ユーザーが画像を追加できるアプリがあります。画像は任意のサイズで、750X750、1280X920 などの異なるアスペクト比にすることができます。もちろん、UIImageView は小さく、コンテンツ モードは Aspect Fill に設定されています。私は多くのテストを行ったので、これまでに行ったことは次のとおりです。
アフィン変換を使用して CoreImage 座標を UIKit に変換します
画像幅の大きな画像からスケール比を取得し、UIImageView 幅で縮小します。
画像がUIImageViewの正確な縦横比である場合、上記の両方が機能すると思いますが、Aspect Fillを使用すると大きくなる可能性があるため、幅が範囲外になる可能性があるため、Face Rectは次のように正しくありません倍率は UIImageView の幅です。
よろしくお願いいたします。