問題タブ [phash]
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.
build - MacOSX LionでpHashを構築する方法(最新のffmpeg-develを使用)
OSXでpHash0.9.4を構築するのは、難しい場合があります。問題が発生した方のために、以下の私のやや長い答えが役立つかもしれません。
c++ - postgresqlc-extensionは別の外部ライブラリをロードします
pHashes(phash.org)をハミング距離関数と比較する必要があります。
pg_similarityのものを試しましたが、正しく機能していないようです。(同一のpHashのハミング距離は0ではありません)。
ph_hamming_distance
そのため、pHashライブラリの一部である関数を使用するためにc-extensionを使用するだけだと思いました。
私が持っているもの:phash.c
Makefile
SQL
私が得ているエラー:
どういうわけかpostgresqlに正しくリンクしてはいけませんか?
image - pHash を使用した類似画像ソリューションの検索
データベースに保存された大量の画像。すべての画像のハッシュを pHash で計算し、ハッシュ値をデータベースに保存します。
既知の画像の類似画像を検索するにはどうすればよいですか? データベースに保存されているすべての画像を走査し、pHash で距離を計算する必要がありますか?
効率的な方法はありますか?
何か案が?
mysql - MySQL または PostgreSQL のハミング距離の最適化?
MySQLデータベースでpHashされた類似画像の検索を改善しようとしています。今、私はこのようにハミング距離を数える pHash を比較します:
選択結果(エンジン MyISAM)
- 20000行; クエリ時間 < 20ms
- 100000行; クエリ時間 ~ 60ms # 150000 行に達するまではこれで問題ありませんでした
- 300000行; クエリ時間 ~ 150ms
したがって、クエリ時間の増加は、テーブルの行数に依存します。
また、SQL のバイナリ文字列に対するスタックオーバーフロー ハミング距離で見つかったソリューションを試し ます
行 300000 ; クエリ時間 ~ 240ms
データベースエンジンをPostgreSQLに変更しました。この MySQL クエリを PyGreSQL に変換して も成功しません。行 300000 ; クエリ時間 ~ 18 秒
上記のクエリを最適化するソリューションはありますか? 行数に依存しない最適化を意味します。
この問題を解決する方法 (ツール) は限られています。これまでのところ、MySQL が最も単純なソリューションのように見えましたが、専用マシン上の Ruby で動作するすべてのオープン ソース データベース エンジンにコードをデプロイできます。MsSQL https://stackoverflow.com/a/5930944/766217 (テストされていません) の準備ができているソリューションがいくつかあります。誰かが MySQL または PostgreSQL 用に翻訳する方法を知っているかもしれません。
いくつかのコードまたは観察に基づいて回答を投稿してください。stackoverflow.com には、ハミング距離に関する多くの理論的な問題があります。
ありがとう!
python - pHash モジュールで使用される DCT 画像ハッシュ関数に相当する Python
画像の URL を受け取り、読み込まれた画像を操作する既存の Python プログラムがあります。画像データをC++のpHashモジュールに渡してから、画像ハッシュを取得してみました。Python拡張ライブラリを使用して、PythonからCプログラムに画像を渡そうとしましたが、成功しませんでした。プロセス全体のスピードが優先されます。これには、クエリ画像のハッシュ値の取得、画像システムの膨大なコレクションからの類似画像の検索が含まれます。したがって、巨大な画像データを渡してから CImg 画像オブジェクトに変換するのではなく、Python コードでハッシュを計算し、そのハッシュ値を pHash モジュールに渡して類似の画像を見つける方が簡単で良いと思います。 . ですから、Python で DCT 画像ハッシュを取得できることを楽しみにしています。
Pythonで同じハッシュ値を取得する方法を知っている人はいますか? 私は車輪を再発明したくありません。私はグーグルでPythonで同等の機能を見つけようとしましたが、成功しませんでした。画像ハッシュ関数は次のとおりです: (ソース: pHash モジュール)
よろしくお願いします。どうもありがとう
c++ - PIL を使用して読み込まれた画像を Cimg 画像オブジェクトに変換します
PILを使用して読み込まれた iamge を Cimg イメージ オブジェクトに変換しようとしています。Cimg は C++ ライブラリであり、PIL は Python イメージング ライブラリであることを理解しています。画像の URL を指定して、ディスクに書き込むことなく画像のpHashを計算することを目的としています。pHash モジュールはCimg 画像オブジェクトで動作し、C++ で実装されています。そのため、python 拡張バインディングを使用して、必要な画像データを python プログラムから c++ プログラムに送信することを計画しています。次のコード スニペットでは、指定された URL から画像を読み込んでいます。
構築する必要がある Cimg 画像オブジェクトは次のようになります。
img.size を使用して width(size_x) と height(size_y) を取得し、C++ に渡すことができます。Cimg オブジェクトの「値」フィールドに入力する方法がわかりません。Python から C++ コードに画像データを渡すために使用するデータ構造はどのようなものですか?
また、PIL イメージを Cimg に変換する他の方法はありますか?
image - 類似画像の識別における Phash と SIFT
まず、SIFT を使用してリアルタイム サービスで類似画像を識別しています。携帯電話のカメラで撮影した写真のように、わずかな回転とぼやけ効果が発生する可能性があります。
そして、Phashを見つけました。それで、デモページでphashをテストします。しかし、結果は私にため息をつきました。
これは上記のテストの結果です:
このテストでは、2 つの画像が x 軸に固定されています。したがって、回転はありません。ただし、右の画像のロゴは削除され、人物は左側に移動されました。私の目には、これは「非常に似ている」です。さらに、SIFTはこれを完全にキャッチします。
では、質問です。
- pHash は SIFT よりも高速ですか?
- pHash の精度は信頼できますか?
- SIFT の出力は、リアルタイム サービスで使用するには大きすぎました。したがって、ハッシュを使用して、 LSH(Locality-sensitive hashing) のように出力を小さくする必要があります。私が試す他の方法はありますか?
dll - phash.dll に関数がありません
AutoIt スクリプト内でオープンソースの知覚ハッシュ ライブラリ pHash の DLL を呼び出したい。
しかし、phash.dll では、DLL Export Viewer が言うように、closedir、opendir、readdir、rewinddir、seekdir、telldir の 6 つの関数しかありません。
私は何か重要なものを見逃しています
java - ジャバクラッシュ!jni および jpeg62.dll を使用する場合の NTDLL.DLL
jniを使用してJavaでpHashを実行しようとしましたが、非常に多くの問題に直面して解決しましたが、今はこの場所で立ち往生しています。すべてのdllとソースコードを修正し、すべて問題ありませんが、dllを使用してJavaコードを実行しようとすると... DCT画像ハッシュを使用してjpg画像を分析しようとしているため、jpeg62.dllを使用するとJavaがクラッシュします..
ntdll.dll+0x1b1fa には何があり、なぜクラッシュするのかを知る必要があります。私はまだプログラミングの初心者なので、このレポートからはあまり理解できませんでした。専門家が私を助けたり、ガイドしたり、バグを探す場所のヒントを教えていただければ幸いです。
ps: jpeg62.dll、zlib.h、libpng.dll を pHash.dll の依存関係として使用していますが、それらは既に存在していたので、何もしていません。
ここに私のログがあります: