{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-rich-features-for-image-manipulation","title":"Learning Rich Features for Image Manipulation Detection","arxiv_id":"1805.04953","date":"2018-05-13","proceeding":"CVPR 2018 6","authors":["Peng Zhou","Xintong Han","Vlad I. Morariu","Larry S. Davis"],"abstract":"Image manipulation detection is different from traditional semantic object\ndetection because it pays more attention to tampering artifacts than to image\ncontent, which suggests that richer features need to be learned. We propose a\ntwo-stream Faster R-CNN network and train it endto- end to detect the tampered\nregions given a manipulated image. One of the two streams is an RGB stream\nwhose purpose is to extract features from the RGB image input to find tampering\nartifacts like strong contrast difference, unnatural tampered boundaries, and\nso on. The other is a noise stream that leverages the noise features extracted\nfrom a steganalysis rich model filter layer to discover the noise inconsistency\nbetween authentic and tampered regions. We then fuse features from the two\nstreams through a bilinear pooling layer to further incorporate spatial\nco-occurrence of these two modalities. Experiments on four standard image\nmanipulation datasets demonstrate that our two-stream framework outperforms\neach individual stream, and also achieves state-of-the-art performance compared\nto alternative methods with robustness to resizing and compression.","url_abs":"http://arxiv.org/abs/1805.04953v1","url_pdf":"http://arxiv.org/pdf/1805.04953v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-rich-features-for-image-manipulation","repo_url":"https://github.com/LarryJiang134/Image_manipulation_detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"learning-rich-features-for-image-manipulation","repo_url":"https://github.com/pengzhou1108/RGB-N","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"image-manipulation","task_name":"Image Manipulation"},{"task_slug":"image-manipulation-detection","task_name":"Image Manipulation Detection"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"steganalysis","task_name":"Steganalysis"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"faster-r-cnn","method_name":"Faster R-CNN"},{"method_slug":"rpn","method_name":"RPN"},{"method_slug":"roipool","method_name":"RoIPool"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1805.04953","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1805.04953"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pengzhou1108/RGB-N","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LarryJiang134/Image_manipulation_detection","reach":null}],"summary":{"ran_honours":3,"unverified":5},"by_repo_kind":{"listed":{"samples":8,"ran":3,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"2800bb23ba78c8dc","entry":"find_obj_vertex","repo":"LarryJiang134/Image_manipulation_detection","repo_kind":"listed","path":"main_create_training_set.py","file_url":"https://github.com/LarryJiang134/Image_manipulation_detection/blob/HEAD/main_create_training_set.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2800bb23ba78c8dc"}},{"code_sha256_prefix":"40b831157276393d","entry":"random_obj_idx","repo":"LarryJiang134/Image_manipulation_detection","repo_kind":"listed","path":"main_create_training_set.py","file_url":"https://github.com/LarryJiang134/Image_manipulation_detection/blob/HEAD/main_create_training_set.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"40b831157276393d"}},{"code_sha256_prefix":"d27acdda97dfe492","entry":"random_obj_loc","repo":"LarryJiang134/Image_manipulation_detection","repo_kind":"listed","path":"main_create_training_set.py","file_url":"https://github.com/LarryJiang134/Image_manipulation_detection/blob/HEAD/main_create_training_set.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d27acdda97dfe492"}},{"code_sha256_prefix":"13425ffb5fceef2e","entry":"compact_bilinear_pooling_layer","repo":"pengzhou1108/RGB-N","repo_kind":"listed","path":"lib/compact_bilinear_pooling/compact_bilinear_pooling.py","file_url":"https://github.com/pengzhou1108/RGB-N/blob/HEAD/lib/compact_bilinear_pooling/compact_bilinear_pooling.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"13425ffb5fceef2e"}},{"code_sha256_prefix":"3be9228820b46ef3","entry":"get_imdb","repo":"pengzhou1108/RGB-N","repo_kind":"listed","path":"lib/datasets/factory.py","file_url":"https://github.com/pengzhou1108/RGB-N/blob/HEAD/lib/datasets/factory.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3be9228820b46ef3"}},{"code_sha256_prefix":"8a015c012f507631","entry":"unique_boxes","repo":"pengzhou1108/RGB-N","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/pengzhou1108/RGB-N/blob/HEAD/lib/datasets/ds_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8a015c012f507631"}},{"code_sha256_prefix":"d3e019b11b709edb","entry":"xywh_to_xyxy","repo":"pengzhou1108/RGB-N","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/pengzhou1108/RGB-N/blob/HEAD/lib/datasets/ds_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d3e019b11b709edb"}},{"code_sha256_prefix":"a832e5017f504280","entry":"xyxy_to_xywh","repo":"pengzhou1108/RGB-N","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/pengzhou1108/RGB-N/blob/HEAD/lib/datasets/ds_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a832e5017f504280"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}