2012-07-04 2 views
2

Existe-t-il des algorithmes connus capables de détecter la dégradation de l'image par programme sans regarder l'image?Détection d'artefacts JPEG

Je pense à évidentes (visible) des artefacts d'image de lossy réencodage, comme la couleur distorsion, le bruit de bord, etc. blockness
Par exemple, les images codées de la source d'origine avec la qualité JPEG 80 sont très bien.

J'espère que c'est le bon endroit à demander, mais si les modérateurs pensent que je devrais avoir demandé à DSP stackexange ou similaire, s'il vous plaît relier.

+2

que voulez-vous dire "sans regarder l'image"? Peut-on lire le fichier? –

+0

Oui, il peut être lu. Je voulais dire sans l'ouvrir dans la visionneuse d'image et de détecter ces artefacts en regardant l'image. Je voudrais être en mesure de détecter automatiquement les artefacts visibles dans une certaine précision automatiquement – vlad

+0

avez-vous déjà trouvé une solution à cela? – OneSolitaryNoob

Répondre

1

Vous devez évaluer les méthodes de recherche des artefacts que vous définissez. Une fois que vous avez ceux caractérisés, vous devrez coder chaque méthode pour trouver ces artefacts. Ces méthodes seront probablement mieux utilisées sur une image de différence - l'original (ou intermédiaire) moins le fichier codé. Vous devrez probablement analyser chaque canal de couleur séparément. Le plus simple serait un seuil - des parties de l'image codée sont-elles désactivées par un certain seuil? Pour le blocage et le bruit de bord, j'imagine que vous utiliserez probablement une sorte de transformée de Hough pour reconnaître des formes/lignes dans l'image de différence, et éventuellement une transformée en ondelettes ou quelque chose de similaire qui peut être réglée .

Modifier (en réponse au commentaire de klo): Sans une référence, je ne suis pas sûr que vous serez en mesure d'accomplir ce que vous voulez. Vous pouvez toujours essayer d'appliquer les techniques que j'ai mentionnées sur les canaux de couleur individuels. La partie la plus difficile sera celle sans référence, vous ne mesurerez pas nécessairement n'importe quel artefact, mais plutôt des dispositifs d'image aussi. Vous pouvez toujours utiliser certaines informations a priori, telles que le fait que tout blocage sera orienté exactement avec le cadre de l'image - sans rotation. N'importe quelle image réelle serait probablement improbable d'avoir beaucoup de fonctionnalités bien bloquées complètement orientées avec un cadre. Vous pouvez également appliquer un algorithme de recherche de bord comme la différence de gaussienne ou la détection de contour Canny, puis appliquer des filtres d'ondelettes près des bords situés pour rechercher la sonnerie.

Pour les méthodes programmables connues, voir l'image scikits de python (que vous connaissez de votre post à la liste de diffusion) ou éventuellement OpenCV, qui a des liaisons Python. Je ne connais pas les capacités de Matlab, mais cela fonctionnerait aussi probablement aussi.

+0

Oui Je suis à la recherche de pointeurs sur les méthodes programmables connues pour détecter certains des artefacts mentionnés. L'image d'origine n'est pas disponible, sinon je ferais probablement quelque chose comme vous l'avez décrit – vlad

+0

Tout à l'heure je me suis rejoué de Stefan, que je cite pour référence: "Le plus facile peut être de charger l'image, puis la sauvegarder au format JPG. la taille de l'image reste la même, vous avez probablement eu un JPG pour commencer. " – vlad

+0

Donc, il semble que ce soit une de ces questions qui sont faciles à poser, et une solution trop complexe si possible. J'ai également utilisé OpenCV à une occasion (détecteurs SURF par le livre), mais je ne suis pas au courant de la fonction qui fournira quelques informations sur la dégradation de l'image. Merci pour votre contribution – vlad

2

Il existe une bibliothèque appelée CMFD (Copy-Move Forgery Detection) qui effectue la détection d'artefacts et d'autres algorithmes pour détecter la falsification d'image. Il est disponible gratuitement auprès de http://www5.cs.fau.de/research/software/copy-move-forgery-detection/. D'après les quelques tests que j'ai faits, il détecte assez bien les contrefaçons, mais il y a beaucoup de faux positifs.