2012-07-04 3 views
2

이미지를 보지 않고 프로그램을 통해 이미지 저하를 감지 할 수있는 알려진 알고리즘이 있습니까?JPEG 아티팩트 감지

난 blockness 등 예컨대
색 제품 변형 에지 잡음처럼 JPEG 품질 (80)로 원본 소스로부터 인코딩 이미지가 잘되어, 손실 재 인코딩 명백한 (표시) 이미지 아티팩트 생각.

내가 물어볼 적절한 장소가 되었길 바란다. 그러나 중재자가 DSP stackexange 또는 이와 유사한 질문을해야한다고 생각한다면 다시 연결하십시오.

+2

"이미지를 보지 않고"무엇을 ​​의미합니까? 파일을 읽을 수 있습니까? –

+0

예 읽을 수 있습니다. 이미지 뷰어에서 열지 않고 이미지를보고이 아티팩트를 감지하지 않고 의미했습니다. 특정 정확도 내에서 가능한 보이는 아티팩트를 자동으로 감지 할 수 있기를 원합니다. – vlad

+0

이 해결책을 찾았습니까? – OneSolitaryNoob

답변

1

정의한 이슈를 찾는 방법을 평가해야합니다. 일단 특성화 된 것이 있으면 해당 유물을 찾기 위해 각 메소드를 코딩해야합니다. 이러한 방법은 원본 이미지 (또는 중간 이미지)에서 인코딩 된 이미지를 제외하고 차이 이미지에 가장 적합합니다. 아마도 각 색상 채널을 개별적으로 분석해야 할 것입니다. 가장 간단한 것은 임계 값 일 것입니다 - 인코딩 된 이미지의 어떤 부분이 어떤 임계 값만큼 떨어져 있습니까? 블럭 니스와 에지 노이즈의 경우, 차이 이미지에서 모양/선을 인식하기 위해 일종의 허프 (Hough) 변환을 사용하고, 특정 주파수 패턴에 맞게 조정할 수있는 유사한 웨이브 렛 변환 또는 이와 유사한 것을 사용하여 가장자리 주변에서 울리는 것을 상상해보십시오. .

(klo의 의견에 응답) : 참조없이 내가 원하는 것을 성취 할 수 있을지 확신하지 못합니다. 개별 색상 채널에서 언급 한 기술을 적용 해 볼 수 있습니다. 어려운 부분은 참조 없이는 어떤 유물도 측정하지 않고 오히려 이미지 기능을 측정하는 것입니다. 회전이없는 이미지 프레임과 정확히 일치하는 블록 성과 같은 사전 정보도 사용할 수 있습니다. 모든 실제 이미지는 아마도 프레임과 함께 완벽하게 지향 된 뭉툭한 많은 특징을 가질 가능성이 거의 없습니다. 또한 가우스 또는 Canny 엣지 감지의 차이와 같은 엣지 찾기 알고리즘을 적용한 다음 벨이 울린 부분을 찾기 위해 웨이브 렛 필터를 적용 할 수 있습니다.

알려진 프로그래밍 방식의 경우 파이썬의 scikits-image (게시물에서부터 메일 링리스트에 이르기까지) 또는 파이썬 바인딩이있는 OpenCV를 참조하십시오. 나는 Matlab의 기능에 익숙하지 않지만, 아마도 그것도 잘 작동 할 것이다.

+0

예 언급 된 일부 아티팩트를 감지하는 알려진 프로그래밍 방식에 대한 지침을 찾고 있습니다. 원본 이미지를 사용할 수 없습니다, 그렇지 않으면 당신이 설명한 것과 비슷한 일을 할 것입니다 – vlad

+0

그냥 스테판에서 리플레이를 받았는데 참조 용으로 인용했습니다 : "가장 쉬운 방법은 이미지를로드 한 다음 다시 JPG로 저장하는 것입니다. 이미지 크기는 동일하게 유지 될 것입니다. 아마도 JPG를 시작했을 것입니다. " – vlad

+0

이 질문은 쉽게 물어볼 수있는 질문 중 하나이며 가능하면 해결 방법이 너무 복잡해 보입니다. 나는 한때 OpenCV (SURF 감지기)를 사용했지만 이미지 저하에 대한 정보를 제공 할 기능을 알지 못합니다. 입력 해 주셔서 감사합니다. – vlad

2

이미지 위조를 탐지하는 아티팩트 감지 및 기타 알고리즘을 수행하는 CMFD (Copy-Move Forgery Detection)라는 라이브러리가 있습니다. http://www5.cs.fau.de/research/software/copy-move-forgery-detection/에서 무료로 사용할 수 있습니다.

내가 만든 몇 가지 테스트에서 위조를 꽤 잘 탐지하지만 오탐 (false positive)이 많습니다.

관련 문제