System and method for detecting manipulated and ai-generated images
Patent Information
- Application Number
- PCT/US2026/015566
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-18
- Filing Date
- 2026-02-17
- Publication Date
- 2026-08-27
Smart Images

Figure US2026015566_27082026_PF_FP_ABST
Abstract
Description
Attorney DocketNo.: 642631-0112 (MDA25-035PC)SYSTEM AND METHOD FOR DETECTING MANIPULATED AND AI-GENERATED IMAGESCROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of and priority to U.S. Provisional Patent Application No. 63 / 760,028 filed on February 18, 2025, and titled “SYSTEMS AND METHODS FOR DETECTING MANIPULATED AND AI-GENERATED BIOLOGICAL IMAGES,” the disclosure of which is incorporated herein by reference in its entirety.TECHNICAL FIELD
[0002] The present disclosure relates generally to the field of image forgery detection. More particularly, the present disclosure relates to systems and methods for detecting manipulated and artificial intelligence (Al) generated images.BACKGROUND
[0003] Various electronic documents and / or documents derived from electronic materials, including published scientific research, may contain unreliable data through unintentional error or through purposeful manipulation. This can include errors in or manipulation of biological images. Some systems can detect image manipulations, but these systems require special training and are insufficient in terms of reliability.SUMMARY
[0004] The present technology provides systems and methods for detecting manipulated and Al-generated images, including but not limited to biological images. The system can obtain input images via a user interface and generate sub-image nodes for the input images. The system can process the sub-image nodes using at least one of a transformation detector, a copy-move detector, a splice detector, or an Al-generation detector. The system can obtain one or more result nodes from the detectors indicating image manipulations or Al-generation and can present the indication via the user interface.
[0005] In some aspects, the techniques described herein relate to a system, including: one or more processors to: obtain one or more input images via a user interface; generate one or more sub-image nodes based at least on the one or more input images; obtain a result node from a transformation detector based at least on the one or more sub-image nodes, wherein the resultAttorney DocketNo.: 642631-0112 (MDA25-035PC)node indicates transformation manipulation; and present an indication of one or more image manipulations of the one or more input images via the user interface based at least on the result node.
[0006] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are further to: obtain a second result node from a copy-move detector based at least on the one or more sub-image nodes, wherein the second result node indicates copy-move manipulation; and display one or more image manipulations of the one or more input images via the user interface based at least on the second result node
[0007] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are further to: obtain a third result node from a splice detector based at least on the one or more sub-image nodes, wherein the third result node indicates splicing manipulation; and display one or more image manipulations of the one or more input images via the user interface based at least on the third result node.
[0008] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are further to: obtain a fourth result node from an Al-generation detector based at least on the one or more sub-image nodes, wherein the fourth result node indicates at least partial Al-generation; and display one or more Al-generated images of the one or more input images via the user interface based at least on the fourth result node.
[0009] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to obtain the result node by causing the transformation detector to: detect a plurality of keypoints of the one or more sub-image nodes using one or more neural networks; extract a plurality of descriptors of the plurality of keypoints using the one or more neural networks; match the plurality of keypoints using the one or more neural networks based at least on the plurality of keypoints and the plurality of descriptors, indicating one or more transformation manipulations; and generate the result node based at least on the plurality of keypoints.
[0010] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to obtain the second result node by causing the copy-move detector to: detect a plurality of similar image patches of the one or more sub-image nodes; generate one or more displacement maps indicating relative positions between the plurality of similar image patches; generate one or more detection masks based at least on the one or more displacement maps,Attorney DocketNo.: 642631-0112 (MDA25-035PC)wherein the one or more detection masks includes one or more regions where similar patches were found; identify one or more copy-move image manipulations based at least on the one or more detection masks; and generate the second result node based at least on the one or more copy-move image manipulations.
[0011] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to obtain the third result node by causing the splice detector to: determine a plurality of artifacts of the one or more sub-image nodes; determine one or more spliced regions based at least on the plurality of artifacts; and generate the third result node based at least on the one or more spliced regions.
[0012] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to obtain the fourth result node by causing the Al-generation detector to: retrieve one or more classification models, the one or more classification models updated according to a dataset of real images and artificial intelligence (Al) generated images; determine, based at least on one or more input images received via a user interface, an associated hierarchical image tree comprising a plurality of attributes of the one or more input images; detect, using the one or more classification models, a plurality of representative patches of the one or more input images; map the plurality of representative patches to the associated hierarchical image tree; classify each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully Al-generated image; and generate the fourth result node based at least on the classification.
[0013] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to preprocess the one or more input images by applying horizontal or vertical flips to the one or more input images.
[0014] In some aspects, the techniques described herein relate to a system, wherein: a first neural network of the one or more neural networks is SuperPoint, and a second neural network of the one or more neural networks is LightGlue trained under a Generalizable Image Matcher (GIM) framework.
[0015] In some aspects, the techniques described herein relate to a system wherein the one or more processors are to generate the one or more detection masks by: reducing noise in the one or more displacement maps using median filtering; identifying a plurality of regions in the one or more displacement maps where similar image patches deviate from one or more expectedAttorney DocketNo.: 642631-0112 (MDA25-035PC)motion patterns beyond a second threshold; filtering out closely situated region pairs of the plurality of regions to condense the one or more displacement maps into a detection mask; refining the detection mask by excluding regions smaller than a third threshold; expanding and mirroring regions by assigning each pixel a label corresponding to its region; responsive to a detection of a cluster containing pixels of different labels within a connected area, selecting a predominant label within the connected area to represent the cluster; and applying morphological dilation to extend prominent features of the detection mask.
[0016] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to: responsive to identifying more than one copy -move image manipulation, determine one or more distinct copy-move image manipulation pairs based at least on an associated displacement map of the one or more displacement maps; and label the one or more distinct copy-move image manipulation pairs.
[0017] In some aspects, the techniques described herein relate to a system, wherein the one or more processors are to update the one or more classification models based at least on a plurality of weights, wherein the plurality of weights are based at least on a plurality of images.
[0018] In some aspects, the techniques described herein relate to a method, including: obtaining one or more input images via a user interface; generating one or more sub-image nodes based at least on the one or more input images; extracting a plurality of keypoints of the one or more sub-image nodes using one or more neural networks; extracting a plurality of descriptors of the plurality of keypoints using the one or more neural networks; matching the plurality of keypoints using the one or more neural networks based at least on the plurality of keypoints and the plurality of descriptors, indicating one or more transformation manipulations; generating a first result node based at least on the plurality of keypoints; and displaying, via the user interface, one or more transformation image manipulations of the one or more input images based at least on the first result node.
[0019] In some aspects, the techniques described herein relate to a method, further including: detecting a plurality of similar image patches of the one or more sub-image nodes; generating one or more displacement maps indicating relative positions between the plurality of similar image patches; generating one or more detection masks based at least on the one or more displacement maps, wherein the one or more detection masks includes one or more regions where similar patches were found; identifying one or more copy-move image manipulationsAttorney DocketNo.: 642631-0112 (MDA25-035PC)based at least on the one or more detection masks; generating a second result node based at least on the one or more copy-move image manipulations; and displaying, via the user interface, one or more copy-move image manipulations of the one or more input images based at least on the second result node.
[0020] In some aspects, the techniques described herein relate to a method, further including: determining a plurality of artifacts of the one or more sub-image nodes; determining one or more spliced regions based at least on the plurality of artifacts; generating a third result node based at least on the one or more spliced regions; and displaying, via the user interface, one or more splicing image manipulations of the one or more input images based at least on the third result node.
[0021] In some aspects, the techniques described herein relate to a method, wherein: a first neural network of the one or more neural networks is SuperPoint, and a second neural network of the one or more neural networks is LightGlue trained under a Generalizable Image Matcher (GIM) framework.
[0022] In some aspects, the techniques described herein relate to a method, wherein generating the one or more detection masks includes: reducing noise in the one or more displacement maps using median filtering; identifying a plurality of regions in the one or more displacement maps where similar image patches deviate from one or more expected motion patterns beyond a second threshold; filtering out closely situated region pairs of the plurality of regions to condense the one or more displacement maps into a detection mask; refining the detection mask by excluding regions smaller than a third threshold; expanding and mirroring regions by assigning each pixel a label corresponding to its region; responsive to a detection of a cluster containing pixels of different labels within a connected area, selecting a predominant label within the connected area to represent the cluster; and applying morphological dilation to extend prominent features of the detection mask.
[0023] In some aspects, the techniques described herein relate to a method, further including: responsive to identifying more than one copy-move image manipulations, determining distinct copy-move manipulation pairs based at least on an associated displacement map of the one or more displacement maps; and labeling the distinct copy-move manipulation pairs.
[0024] In some aspects, the techniques described herein relate to a method, wherein filtering out closely situated region pairs includes excluding region pairs with a distance of up to 50Attorney DocketNo.: 642631-0112 (MDA25-035PC)pixels.
[0025] In some aspects, the techniques described herein relate to a method, further including: retrieving one or more classification models, the one or more classification models updated according to a dataset of real images and artificial intelligence (Al) generated images; determining, based at least on one or more input images received via a user interface, an associated hierarchical image tree including a plurality of attributes of the one or more input images; detecting, using the one or more classification models, a plurality of representative patches of the one or more input images; mapping the plurality of representative patches to the associated hierarchical image tree; classifying each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully AI-generated image; generating a fourth result node based at least on the classification; and displaying, via the user interface, one or more Al-generated images of the one or more input images based at least on the fourth result node.
[0026] In some aspects, the techniques described herein relate to a method, further including: updating the one or more classification models based at least on a plurality of parameters, wherein the plurality of parameters are determined based at least on a plurality of images.
[0027] In some aspects, the techniques described herein relate to a non-transitory computer-readable medium storing computer instructions, the computer instructions when executed by one or more processors cause the one or more processors to: obtain one or more input images via a user interface; generate one or more sub-image nodes based at least on the one or more input images; obtain a first result node from a transformation detector based at least on the one or more sub-image nodes, wherein the first result node indicates transformation image manipulation; obtain a second result node from a copy-move detector based at least on the one or more subimage nodes, wherein the second result node indicates copy-move image manipulation; obtain a third result node from a splice detector based at least on the one or more sub-image nodes, wherein the third result node indicates splicing image manipulation; obtain a fourth result node from an Al-generation detector based at least on the one or more sub-image nodes, wherein the fourth result node indicates at least partial Al-generation; and display one or more image manipulations of the one or more input images via the user interface based at least on the first result node, second result node, third result node, and fourth result node.Attorney DocketNo.: 642631-0112 (MDA25-035PC)BRIEF DESCRIPTION OF THE DRAWINGS
[0028] The foregoing and other objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:
[0029] FIG. l is a block diagram depicting an embodiment of a computer system suitable for detecting manipulated images according to embodiments described herein;
[0030] FIG. 2 shows a flow diagram illustrating a method for constructing a hierarchical image tree, according to embodiments described herein;
[0031] FIG. 3 shows a flow diagram illustrating a method for detecting transformation image manipulations, according to embodiments described herein;
[0032] FIG. 4 shows a flow diagram illustrating a method for detecting copy-move image manipulations, according to embodiments described herein.
[0033] FIG. 5 shows a flow diagram illustrating a method for detecting splicing image manipulations, according to embodiments described herein.
[0034] FIG. 6 shows a flow diagram illustrating a method for detecting and classifying Al generated images, according to embodiments described herein.
[0035] FIGS. 7A-7E show example detection results, according to embodiments described herein.
[0036] FIG. 8 shows an example user interface, according to embodiments described herein.
[0037] FIG. 9 shows an example of copy-move detection results, according to embodiments described herein.
[0038] FIG. 10 shows an example of copy-move detection results, according to embodiments described herein.
[0039] FIGS. 11A-11D show example Al-generated image detection results, according to embodiments described herein.
[0040] FIG. 12 shows a block diagram depicting an embodiment of a computer system,Attorney DocketNo.: 642631-0112 (MDA25-035PC)according to embodiments described herein.
[0041] FIG. 13 shows a block diagram of an example computing system suitable for use in the various arrangements described herein, according to an example implementation.DETAILED DESCRIPTION
[0042] Following below are more detailed descriptions of various concepts related to, and embodiments of, systems and methods for detecting manipulated and artificial intelligence (Al) generated images, including, for example, biological images. It should be appreciated that various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the disclosed concepts are not limited to any particular manner of implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes.
[0043] Systems and methods in accordance with the present disclosure can reliably and / or accurately process image data to detect manipulations of the image data, including for biological images and / or detection of Al-generated biological images. As compared to systems that are unable to detect image transformations, copy-move manipulation, splicing, partially AI-generated images, and / or fully Al generated images, the systems and methods in accordance with the present disclosure can effectively identify various image manipulations, including robust detection of transformations such as rotation and cropping using keypoints matching, accurate and precise detection of copy-move forgeries using analysis of patches, detection of spliced regions with pixel-level accuracy, and detection and classification of Al-generated images, including identification of partially Al-generated images.a. System for Detecting Manipulated Biological Images
[0044] FIG. 1 depicts an example of a system 100. The system 100 can be a detection and classification system, such as to perform functions including detecting image manipulations in biological images. The techniques described in the present disclosure can apply machine learning methods to enhance the reliability of fraudulent data identification. The system 100 can process images such as digital micrographs obtained from biological sampling of a subject. Various aspects of the system 100 can be implemented using one or more components of the computing system 1300 described with reference to FIG. 13.
[0045] The system 100 can include or be coupled with data input and / or output devices, suchAttorney DocketNo.: 642631-0112 (MDA25-035PC)as a user interface 110. The system 100 can obtain inputs from the user interface 110 such as text, speech, audio, image, and / or video data. For example, the system 100 can obtain input images 205 via the user interface 110. Additionally, or alternatively, the system 100 can obtain inputs from various sources. For example, the system 100 can obtain source images such as medical scans, micrographs, histology slides, pathology slides, and Western Blots (WBs) from a database. In another example, the system 100 can be integrated with one or more laboratory or imaging systems that provide the source images to the system 100. The system 100 can output results using the user interface 110. For example, upon detecting one or more image manipulations, the visual results showing the manipulations can be output to one or more users with the user interface 110. The user interface 110 can display at least one of a transformation image manipulation, a copy-move image manipulation, a splicing image manipulation, or an indication of at least partial Al-generation.
[0046] The system 100 can include one or more machine learning (ML) models 120, which can include any of various supervised and / or unsupervised machine learning models, including, for example and without limitation, any of various machine learning models useful for image classification tasks to be performed on biological image data including cell images. The machine learning models 120 can include any one or more of decision trees, graph networks, random forest models, Bayesian models, regressions, support vector machines, gradient-boosted trees, or various combinations thereof. For example, the machine learning models 120 can include one or more neural networks 115 useful for feature extraction from input data from data sources 105. The one or more neural networks 115, can include, for example and without limitation, any one or more artificial neural networks, deep learning networks, convolutional neural networks, recurrent neural networks; various such neural networks can be useful for real-time processing of time-series data such as periodically detected and / or received data regarding a subject undergoing a procedure. The neural network 115 can include a plurality of nodes arranged in one or more layers, such as an input layer, an output layer, and / or one or more intermediate layers. The processor 145 can configure the neural network 115 by modifying or updating one or more parameters, such as weights and / or biases, of various nodes of the neural network responsive to evaluating outputs of the neural network.
[0047] The system 100 can construct a hierarchical image tree of sub-image nodes starting from a root node with input images 205. The system 100 can construct the hierarchical image tree to efficiently organize and track processing results. The system 100 can generate childAttorney DocketNo.: 642631-0112 (MDA25-035PC)nodes, e.g., sub-image nodes, and leaf nodes, e.g., result nodes, during processing for efficient organization and tracking of results. The system 100 can generate one or more sub-image nodes based on one or more inputs, such as input images 205. The one or more inputs can be obtained via the user interface 110. The one or more inputs can be a PDF containing one or more images. The one or more inputs can be images of various formats (e.g., PNG, JPEG and SVG). The system 100 can generate the one or more sub-image nodes based on the one or more inputs using an object detection model of the one or more machine learning models 120. The object detection model can be based on a YOLOX object detection model, trained and / or updated for efficient and accurate performance of biological image detection tasks using a customized dataset of biological images. The system 100 can use the object detection model to classify the one or more sub-images of the one or more input images based on their sources, wherein the sources can include micrographs, histology slides, pathology slides, and Western blot bands. The system 100 can generate one or more sub-image nodes to store sub-image information. In some examples, a sub-image node can store a sub-image and can store one or more locations of image manipulations of the sub-image relative to the one or more inputs. The system 100 can store nodes of the hierarchical image tree in memory 150.
[0048] The system 100 can include a transformation detector 125. The transformation detector 125 can include or be coupled with one or more machine learning models 120. The transformation detector 125 can be used to detect one or more transformation manipulations of an image. The one or more transformation manipulations can include, for example, rotations, horizontal flips, vertical flips, a combination of horizontal and vertical flips, cropping, and scaling of the image. For example, the transformation detector 125 can determine if an image is a cropped and / or rotated match to a different image. In another example, the transformation detector 125 can determine if an image has one or more scaled and / or flipped duplicate regions of one or more regions of a different image. In some examples, the transformation detector 125 can receive, as input, one or more sub-image nodes with one or more associated sub-images. The transformation detector 125 can extract a plurality of keypoints of the one or more subimages using one or more neural networks of the neural networks 115. In some embodiments, a neural network can implement a feature extraction technique such as a scale-invariant feature transform (SIFT). The transformation detector 125 can extract features by identifying a plurality of keypoints in the one or more sub-images by applying one or more transforms, such as a difference of Gaussians (DoG) transform. The transformation detector 125 can extract a plurality of descriptors of the one or more sub-images using a descriptor extraction technique such asAttorney DocketNo.: 642631-0112 (MDA25-035PC)HardNet. The transformation detector 125 can extract descriptors by applying one or more CNNs to learn compact representations of the plurality of keypoints. In some embodiments, the transformation detector 125 can jointly extract the plurality of keypoints and the plurality of descriptors using a neural network (e.g., a first neural network). The neural network can be a learned local feature extraction network that jointly detects keypoints and generates corresponding local feature descriptors from the one or more sub-images. In some examples, the neural network can be a SuperPoint network, or a variant thereof. The neural network can include a shared encoder and one or more decoders. The shared encoder can process the one or more sub-images into an intermediate feature representation with reduced spatial resolution and increased channel depth. The one or more decoders can operate on the intermediate feature representation to produce task-specific outputs. For example, the neural network can include a keypoint decoder and a descriptor decoder. The keypoint decoder can generate a keypoint probability map indicating, for each pixel of the sub-image, a likelihood that the pixel corresponds to a keypoint. The descriptor decoder can generate, for each detected keypoint, a corresponding local feature descriptor that characterizes a region surrounding the keypoint. The neural network can share parameters between the one or more decoders. The neural network can detect the plurality of keypoints using the keypoint decoder and can extract the plurality of descriptors using the descriptor decoder. The neural network can generate, as output, data representing the plurality of keypoints and the plurality of descriptors.
[0049] The transformation detector 125 can match the plurality of keypoints using a neural network of the neural networks 115 such as a symmetric mutual nearest neighbor network (SMNN) based on the extracted features and descriptors, indicating one or more transformation manipulations of the one or more sub-images. The transformation detector 125 can use a SVM classifier to robustly determine duplicate regions of the one or more sub-images. The system 100 can train the SVM classifier on various metrics such as matched points, inliers, and reprojection error. In some embodiments, the transformation detector 125 can use a transformerbased deep neural network (e.g., a second neural network) to match the plurality of keypoints. The neural network can receive, as input, the plurality of keypoints and the plurality of descriptors associated with the one or more sub-images and can generate, as output, a set of correspondences between keypoints within the one or more sub-images to determine duplicate regions. In some examples, the neural network can be a deep neural network designed for local feature matching, such as a LightGlue network or a variant thereof. The neural network can be configured as a transformer-based architecture that alternates self-attention and cross-attentionAttorney DocketNo.: 642631-0112 (MDA25-035PC)layers to aggregate contextual information within and across the sets of keypoints and descriptors. At one or more layers, the neural network can generate assignment scores between keypoints within a sub-image based on the similarity between the keypoints and the likelihood for each keypoint to be matched to a corresponding keypoint. Based on the assignment scores, the neural network can determine correspondences (e.g., feature matches). In some examples, the neural network can include, at one or more layers, a confidence classifier configured to determine whether the current matching predictions are sufficiently reliable to stop further processing or whether additional layers should be applied. The neural network can be trained under a Generalizable Image Matcher (GIM) framework, thereby allowing the neural network to perform feature matching across varied image domains, including biological images, and improving geometric consistency and robustness.
[0050] Based on the matching, the transformation detector 125 can generate a result node storing one or more locations (e.g., bounding boxes) of one or more transformation manipulations of the corresponding sub-image of the one or more sub-images. The result node can include a reference to the corresponding sub-image node.
[0051] The system 100 can include a source checker. For example, the source checker can determine whether the one or more sub-images originate from one or more source images using the transformation detector 125. The one or more source images can serve as the ground truth and can include raw or minimally processed images such as original medical scans, micrographs, histology slides, pathology slides, or Western Blots (WBs). The one or more source images can be uploaded separately from the user interface 110. For example, the system 100 can retrieve the one or more source images from a database. In another example, the system 100 can be integrated with one or more laboratory or imaging systems that provide the one or more source images to the system 100. The source checker can use the transformation detector 125 to detect transformed feature matches between the one or more sub-images and the one or more source images. The source checker can generate a result node storing one or more locations (e.g., bounding boxes) of one or more transformation manipulations of the corresponding sub-image of the one or more sub-images.
[0052] The system 100 can include a copy-move detector 130. The copy-move detector 130 can be used to detect one or more copy-move image manipulations of an image. In one example, the copy -move detector 130 can receive, as input, one or more sub-image nodes with one or more associated sub-images. The copy-move detector 130 can detect a plurality of similar imageAttorney DocketNo.: 642631-0112 (MDA25-035PC)patches of the one or more sub-images. Patches provide a rich representation of local image content, enabling use of robust feature descriptors such as SIFT and DenseSIFT. The descriptors can capture scale, rotation, and illumination-invariant features for detecting copy-move manipulations. The copy-move detector 130 can use patches to provide robustness to noise and small variations. The copy-move detector 130 can use smaller patches (e.g., up to 5x5 pixels) to localize tampered areas in densely packed forgeries. The copy-move detector 130 can use larger patches (e.g., greater than 8x8 pixels) in spare or large-scale forgeries. The copy-move detector 130 can determine patch size using keypoint analysis with SIFT. In some embodiments, the copy-move detector 130 can determine patch size using keypoint analysis performed by a neural network (e.g., SuperPoint, etc.).
[0053] In some implementations, the copy -move detector 130 can detect a plurality of similar image patches using techniques including first-order propagation, multi-scale propagation, context-aware propagation, and propagation guided by region segmentation. The copy-move detector 130 can use first-order propagation by predicting offsets based on linear trends in the displacement field to ensure robustness against transformations like scaling and rotation. The copy-move detector 130 can use multi-scale propagation by analyzing images at different resolutions, capturing tampered regions of varying sizes. It ensures that both large and small forgeries are captured effectively, addressing scenarios where tampered regions differ significantly in size. The copy-move detector 130 can use context-aware propagation to consider the global structure of displacement maps by resolving ambiguities in repetitive textures or patterns. The copy-move detector 130 can use region segmentation by separating multiple tampered regions to restrict propagation to meaningful areas. The copy-move detector 130 can use these techniques to identify and label multiple disjoint copy-move pairs while maintaining computational efficiency.
[0054] In some implementations, the copy-move detector 130 can use threshold-based filtering, to discard invalid matches with low displacement magnitudes. The copy-move detector 130 can refine the results by focusing on meaningful differences that indicate tampering. For the detection of multiple pairs of copy-move regions, the copy-move detector 130 can apply connected components analysis and pairwise displacement matching to identify and label distinct forgery pairs based on their displacement vectors.
[0055] The copy-move detector 130 can generate one or more displacement maps indicating relative positions between the plurality of similar image patches by generating an initial detectionAttorney DocketNo.: 642631-0112 (MDA25-035PC)mask from the displacement maps and refining the detection mask using one or more postprocessing techniques, including connected component analysis, minimum displacement filtering, symmetrization, and dilation. Based on the one or more displacement maps, the copymove detector 130 can generate one or more detection masks, indicating one or more regions where similar patches were found. The copy-move detector 130 can apply median filtering to the displacement map using a window region (e.g., a circular window with a 4-pixel radius) to reduce noise and maintain the map's structural integrity. The copy-move detector 130 can evaluate each pixel in the displacement map against a least-squares linear model using a circular neighborhood. The copy-move detector 130 can use homogeneous coordinates, representing each point as (x,y,l) to facilitate affine transformations. The copy-move detector 130 can construct a matrix A comprising these coordinates to derive a projection matrix H, using H =The copy-move detector 130 can quantify the fitting error by calculating the squared residuals of the displacement vectors, e=(I-H) 6, where 8 is the difference from the model predictions, providing a precise measure of local discrepancies to highlight regions within the displacement field that significantly deviate from expected motion patterns. This technique can offer valuable insights for corrections in stereo vision and motion analysis applications. The copy-move detector 130 can set the fitting error threshold (e.g., 300 pixels) to identify significant displacement anomalies or features that merit further analysis or correction, thereby condensing the displacement map into a detection mask, focusing analysis on the most impactful areas to streamline further processing and enhance the effectiveness of subsequent analyses or corrective actions. The copy-move detector 130 can enhance the clarity of the detection mask by filtering out closely situated feature pairs. The copy-move detector 130 can apply a distance criterion that ensures only features separated by a distance exceeding a distance threshold (e.g., 50 pixels) are retained to reduce overlap of features represented on the map, thereby improving map accuracy and readability. The copy-move detector 130 can refine the detection mask by excluding small regions less than a specified threshold size, measured in pixels to predominantly display features that are relevant for further analysis and interpretation. The copy -move detector 130 can expand and mirror detected regions and assign each pixel the same label as its corresponding detected region. When different labels are clustered together within a connected area, the copy-move detector 130 can select the label that predominates to represent the entire cluster. The copy-move detector 130 can employ morphological dilation to extend prominent features of the detection mask, such as by bridging gaps of the detection mask, e.g., with a circular structuring element of radius 2 pixels. The copy-move detector 130 can identify one orAttorney DocketNo.: 642631-0112 (MDA25-035PC)more copy-move manipulations of the one or more sub-images based at least on the detection mask. The copy-move detector 130 can extract a plurality of keypoints of the one or more subimages using a feature extraction technique such as SIFT. The copy-move detector 130 can extract features from points in one or more grids across the one or more sub-images to detect copy-move areas. The copy-move detector 130 can generate a second result node storing results indicating locations of one or more copy-move image manipulations of the corresponding subimage of the one or more sub-images. The second result node can include a reference to the corresponding sub-image node.
[0056] In some embodiments, the copy-move detector 130 can include a neural network of the neural networks 115. The neural network can implement one or more algorithms described herein for detecting copy-move manipulations. For example, the neural network can include an end-to-end architecture and can perform the patch-based similarity analysis, the displacement map generation, and the copy-move manipulation identification as described above simultaneously. The neural network can receive, as input, one or more sub-image nodes with one or more associated sub-images. Based on simultaneous transformations, the neural network can generate, as output, the second result node storing results indicating locations of the one or more copy-move image manipulations.
[0057] The system 100 can include a splice detector 135. The splice detector 135 can be used to detect one or more splicing image manipulations of an image. In some examples, the splice detector 135 can receive, as input, one or more sub-image nodes with one or more associated sub-images. The splice detector 135 can detect one or more splicing manipulations by determining a plurality of artifacts of the one or more sub-images, such as statistical anomalies, edge artifacts, contours, inconsistencies in texture, color, lighting, and shadows, and splice seams. In one example, the splice detector 135 can determine a plurality of edges using a Laplacian of Gaussians. The splice detector 135 can determine a plurality of thresholds to filter out weak edges of the plurality of edges and reduce noise in the one or more sub-images. The splice detector 135 can perform morphological closing to connect the plurality of edges. The splice detector 135 can determine a plurality of contours. The splice detector 135 can filter out small contours of the plurality of contours based on the size of their areas and connect the contours according to their locations. Based on the plurality of edges, the splice detector 135 can determine one or more spliced regions. The splice detector 135 can pinpoint spliced regions with pixel-level accuracy by providing coordinates and boundary outlines of the manipulatedAttorney DocketNo.: 642631-0112 (MDA25-035PC)sections. The splice detector 135 can generate a third result node storing results indicating locations of one or more splicing manipulations of the corresponding sub-image of the one or more sub-images. The third result node can include a reference to the corresponding sub-image node.
[0058] In some embodiments, the splice detector 135 can use an object detection model of the one or more machine learning models 120 to determine the one or more spliced regions. For example, the object detection model can be based on a YOLOX object detection model. The object detection model can detect artifacts such as splice seams to determine the one or more spliced regions. The object detection model can be trained on a customized dataset of biological images containing known splicing manipulations. The biological images of the customized dataset can be labeled with bounding boxes and associated artifact labels to identify artifacts such as splice seams. The object detection model can receive, as input, the one or more subimages and can generate, as output, bounding boxes corresponding to locations that are likely to contain artifacts such as splice seams. The splice detector 135 can determine the spliced regions based on the bounding boxes. The splice detector 135 can generate the third result node storing results indicating locations of the one or more splicing manipulations of the corresponding subimage of the one or more sub-images.
[0059] The system 100 can include an Al-generation detector 140. The Al-generation detector 140 can retrieve one or more classification models, the one or more classification models of the machine learning models 120. The one or more classification models can be updated according to a dataset of real images and Al-generated images. In one example, the Al-generation detector 140 can receive, as input, one or more input images such as one or more sub-images associated with one or more sub-image nodes. In some examples, the Al-generation detector 140 can determine, based at least on one or more input images, an associated hierarchical image tree. The hierarchical image tree can include a plurality of attributes of the one or more input images, as described further herein. For example, the plurality of attributes can include a position, a page number (e.g., for a PDF file input), and processing results of the sub-image. The Al-generation detector 140 can detect, using the one or more classification models, a plurality of representative patches of the one or more input images. The Al-generation detector 140 can map the plurality of representative patches to the associated hierarchical image tree. The Al-generation detector 140 can classify each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully Al-generated image. In someAttorney DocketNo.: 642631-0112 (MDA25-035PC)examples, the Al-generation detector 140 can generate a fourth result node based at least on the classification of the one or more input images as a real image or an Al-generated image. The fourth result node can include a reference to the corresponding sub-image node.
[0060] The system 100 can include memory 150, such as a RAM or other dynamic storage device, for storing information, and instructions to be executed by the processor 145. For example, the processor 145 can implement algorithms associated with algorithmic nodes on a computational service using a graphics processing unit (GPU) (e.g., a GPU-based computational service). The algorithmic nodes can include transformation detection, source checking, copymove detection, splicing detection, and Al-generation detection. Upon generation of one or more result nodes by the transformation detector 125, the copy-move detector 130, the splice detector 135, or the Al-generation detector 140, the processor 145 can merge and format the results for display at the user interface 110. Memory 150 can also be used for storing temporary variables, weights, parameters, or other intermediate information during execution of instructions by the processor 145. Memory 150 can be used to maintain datasets for training and inference, cache intermediate results during complex computations, and manage the state of ongoing processes.b. Constructing a Hierarchical Image Tree
[0061] FIG. 2 depicts an example of a method 200 for constructing a hierarchical image tree of nodes in accordance with the systems and methods described herein. The method 200 can include constructing a hierarchical tree of image nodes, starting from a root node 210 with input images 205, which can include PDF files and various image formats (e.g., PNG, JPEG, and SVG) and performing type-checking. At step 215, the method 200 can include extracting subimages from the input images 205. For example, the method 200 can include extracting subimages from PDFs using the Python pdfplumber library. At step 220, the method 200 can include generating sub-image nodes 225, thereby allowing easy access to sub-image attributes such as position, page number, and processing results. In another example, the method 200 can include extracting the sub-images from PDFs using the Python pdf2image in conjunction with an objection detection model such as YOLOX. The object detection model can locate the subimages and classify semantic types for the sub-images within the larger input image 205. For example, the object detection model can classify the one or more sub-images of the one or more input images 205 based on their sources, such as micrographs, histology slides, pathology slides, and Western blot bands. The object detection model can be trained on a customized dataset of labeled sub-images extracted from input images 205. The labeled sub-images can includeAttorney DocketNo.: 642631-0112 (MDA25-035PC)annotations indicating the locations and semantic types of the sub-images within the corresponding input image 205. The method 200 can include managing, queuing, and distributing computation jobs to GPU-based computational services including transformation detection using method 300, copy-move detection using method 400, splicing detection using method 500, Al-generation detection using method 600, and source checking. The method 200 can include processing the sub-image nodes at the algorithmic nodes of the GPU-based computational services using at one or more of methods 300, 400, 500, and 600. The method 200 can include processing one or more result nodes, such as result node 230, 235, 240, and 250. The method 200 can include receiving the one or more result nodes asynchronously. At step 245, the method 200 can include computing the absolute position of detected sub-images relative to the original PDF or image by employing a backtrack function for position computation. The method 200 can include storing the absolute position information in the leaf nodes of the hierarchical image tree.c. Detecting Transformation Manipulation
[0062] Referring to FIG. 3, a method 300 for detecting transformation manipulations can be performed, using various systems and devices described herein, including, for example, one or more components of the system 100.
[0063] At step 305, the method 300 can include obtaining, as input, one or more input images via user interface, such as the user interface 110. The one or more images can be biological images. The method 300 can include generating one or more sub-image nodes from one or more sub-images of the one or more input images. The method 300 can include generating the one or more sub-image nodes using an object detection model of the one or more machine learning models 120. The object detection model can be based on a YOLOX object detection model, updated for biological image detection tasks using a customized dataset. The method 300 can include using the object detection model to classify the one or more sub-images of the one or more input images based on their sources, such as micrographs, histology slides, pathology slides, and Western blot bands.
[0064] At step 310, the method 300 can include generating one or more sub-image nodes to store sub-image information based at least on the one or more input images. In some examples, a sub-image node can store a sub-image and can store one or more locations of image manipulations of the sub-image. In some examples, the method 300 can include preprocessing the one or more sub-images by applying rotations, horizontal flips, vertical flips, a combinationAttorney DocketNo.: 642631-0112 (MDA25-035PC)of horizontal and vertical flips to the one or more sub-images.
[0065] At step 315, the method 300 can include extracting a plurality of keypoints of the one or more sub-image nodes using one or more neural networks of the neural networks 115. For example, the neural network can implement a feature extraction technique such as SIFT. The method 300 can include extracting features by identifying a plurality of keypoints in the subimage by applying one or more transforms, such as a difference of Gaussians (DoG) transform. The method 300 can include extracting a plurality of descriptors of the one or more sub-image nodes using a descriptor extraction technique implemented by the neural network such as HardNet. The method 300 can include extracting descriptors by applying one or more CNNs to learn compact representations of the plurality of keypoints. In some examples, the method 300 can include using the neural network to jointly extract the plurality of keypoints and the plurality of descriptors. For example, the neural network can be a SuperPoint network, or a variant thereof.
[0066] At step 320, the method 300 can include matching the plurality of keypoints using the one or more neural networks of the neural networks 115 based on the extracted features and descriptors, indicating one or more transformation manipulations of the sub-image. For example, the method 300 can include matching the plurality of keypoints using a symmetric mutual nearest neighbor network (SMNN). In another example, the method 300 can include matching the plurality of keypoints using a transformer-based deep neural network such as a LightGlue network, or a variant thereof, trained under a Generalizable Image Matcher (GIM) framework. The method 300 can include using a SVM classifier to determine duplicate regions of the sub-image. For example, the method 300 can include using the SVM classifier to determine that a region of the sub-image is a transformed (e.g., scaled, rotated, flipped) duplicate region as a region of a different sub-image of the one or more sub-images. Additionally, or alternatively, the method 300 can include using a gradient boosted decision tree (GBDT) model of the machine learning models 120, such as XGBoost, to determine that the region of the subimage is a transformed duplicate region of a different sub-image of the one or more sub-images. At step 325, the method 300 can include generating a result node based at least on the plurality of keypoints. The method 300 can include storing one or more locations (e.g., bounding boxes) of one or more transformation manipulations of the corresponding sub-image. The result node can include a reference to the corresponding sub-image node.
[0067] At step 330, the method 300 can include displaying the results via a user interface, suchAttorney DocketNo.: 642631-0112 (MDA25-035PC)as user interface 110. The method 300 can include displaying detected manipulations via the user interface. The method 300 can include highlighting the one or more transformation manipulations using bounding boxes.d. Detecting Copy-Move Manipulation
[0068] Referring to FIG. 4, a method 400 for detecting copy-move manipulations can be performed, using various systems and devices described herein, including, for example, one or more components of the system 100.
[0069] At step 405, the method 400 can include detecting a plurality of similar image patches of the one or more sub-image nodes using techniques including first-order propagation, multiscale propagation, context-aware propagation, and propagation guided by region segmentation.
[0070] At step 410, the method 400 can include generating one or more displacement maps indicating relative positions between the plurality of similar image patches.
[0071] At step 415, the method 400 can include generating one or more detection masks based at least on the one or more displacement maps, wherein the one or more detection masks comprises one or more regions where similar patches were found. To generate the one or more detection masks, the method 400 can include reducing noise in the one or more displacement maps using median filtering. The method 400 can include identifying a plurality of regions in the one or more displacement maps where similar image patches deviate from one or more expected motion patterns beyond a second threshold. The method 400 can then include filtering out closely situated region pairs to condense the one or more displacement maps into a detection mask and refining the detection mask by excluding regions smaller than a third threshold. For example, the method 400 can include filtering out and excluding region pairs with a distance of up to 50 pixels. The method 400 can include expanding and mirroring regions by assigning each pixel a label corresponding to its region. Responsive to a detection of a cluster containing pixels of different labels within a connected area, the method 400 can include selecting a predominant label within the connected area to represent the cluster. The method 400 can include applying morphological dilation to extend prominent features of the detection mask.
[0072] At step 420, the method 400 can include identifying one or more copy-move image manipulations based at least on the one or more detection masks. Responsive to identifying the one or more copy-move image manipulations, the method 400 can include determining distinctAttorney DocketNo.: 642631-0112 (MDA25-035PC)copy-move manipulation pairs based at least on an associated displacement map of the one or more displacement maps. The method 400 can further include labeling the distinct copy-move manipulation pairs.
[0073] At step 425, the method 400 can include generating a second result node based at least on one or more copy -move image manipulations.
[0074] At step 430, the method 400 can include displaying the results via a user interface, such as user interface 110. The method 400 can include displaying detected manipulations via the user interface. The method 400 can include highlighting the one or more copy-move image manipulations using bounding boxes.e. Detecting Splicing Manipulation
[0075] Referring to FIG. 5, a method 500 for detecting splicing manipulations can be performed, using various systems and devices described herein, including, for example, one or more components of the system 100.
[0076] At step 505, the method 500 can include determining a plurality of artifacts of the one or more sub-image nodes, such as statistical anomalies, edge artifacts, contours and inconsistencies in texture, color, lighting, and shadows. In some examples, the method 500 can include determining a plurality of edges and a plurality of contours using a Laplacian of Gaussians. In this example, the method 500 can include determining a plurality of thresholds to filter out weak edges of the plurality of edges and reduce noise in the one or more sub-images, and performing morphological closing to connect the plurality of edges. Additionally, or alternatively, the method 500 can include detecting artifacts such as splice seams using an object detection model. The object detection model can be based on a YOLOX object detection model.
[0077] At step 510, the method 500 can include determining one or more spliced regions based at least on the plurality of artifacts. The method 500 can include pinpointing spliced regions with pixel-level accuracy by providing coordinates and boundary outlines of the manipulated sections.
[0078] At step 515, the method 500 can include generating a third result node based at least on the one or more spliced regions.
[0079] At step 520, the method 500 can include displaying the one or more splicing imageAttorney DocketNo.: 642631-0112 (MDA25-035PC)manipulations of the one or more input images via the user interface, such as user interface 110. The method 400 can include highlighting the one or more splicing image manipulations using bounding boxes.f. Identifying AI-Generated Images
[0080] Referring to FIG. 6, a method 600 can be performed, using various systems and devices described herein, including, for example, one or more components of the system 100.
[0081] At step 605, the method 600 can include retrieving one or more classification models. The method 600 can further include updating the one or more classification models based at least on a plurality of parameters determined based at least on a plurality of images, such as biological images. For example, the one or more classification models can be updated according to a dataset of real images and artificial intelligence (Al) generated images.
[0082] At step 610, the method 600 can include receiving one or more input images via user interface 110, such as one or more sub-images associated with one or more sub-image nodes.
[0083] At step 615, the method 600 can include determining, based at least on one or more input images, an associated hierarchical image tree comprising a plurality of attributes of the one or more sub-images. The plurality of attributes can include, for example, a position, a page number (e.g., for a PDF file input), and processing results of the sub-image.
[0084] At step 620, the method 600 can include detecting, using the one or more classification models, a plurality of representative patches of the one or more input images.
[0085] At step 625, the method 600 can include mapping the plurality of representative patches to the associated hierarchical image tree.
[0086] At step 630, the method 600 can include classifying each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully Al-generated image.
[0087] At step 635, the method 600 can include generating a result node storing one or more locations (e.g., bounding boxes) of one or more Al-generated sub-images. The result node can include a reference to the corresponding sub-image node.
[0088] At step 640, the method 600 can include displaying detected Al-generated sub-imagesAttorney DocketNo.: 642631-0112 (MDA25-035PC)(e.g., partially Al-generated or fully- Al generated images) via the user interface, such as the user interface 110. The method 600 can include highlighting the one or more Al-generated subimages using bounding boxes.g. Example Detection Results
[0089] FIGS. 7A-7E show example detection results in accordance with the methods and systems described herein. FIG. 7A shows a transformation manipulation of a detected rotation of one sub-image (left) to another sub-image (right). FIG. 7B shows a transformation manipulation of a combined horizontal and vertical flip of one Western Blot (WB) sub-image (left) to another sub-image (right). FIG. 7C shows a transformation manipulation of a cropped and scaled region of one sub-image (left) to another sub-image (right). FIG. 7D shows a copymove manipulation of a region of one sub-image (left) to a different region of the same subimage. A heat map of the detected duplicated region is highlighted in yellow and bounded by a red bounding box (right). FIG. 7E shows a splicing manipulation of a WB sub-image (top) with red bounding boxes indicating the separate regions of the sub-image that were joined by splicing (bottom).h. Example User Interface
[0090] FIG. 8 shows an illustration of a user interface, such as user interface 110, in accordance with the methods and systems described herein. The user interface 800 prioritizes user convenience by offering a flexible and user-friendly interface for file inspection and visualization of detection results. Users simply drag or upload their files in image or PDF format, and the system 100 processes the files in the backend. The system 100 displays the results on the user interface 110 (e.g., web interface) for easy review. Users have the option to generate and download a comprehensive detection report if desired. The system 100 ensures secure user authentication and session management, allowing users to maintain their sessions even after logging out. The system 100 highlights detected image manipulations using bounding boxes in PDF documents, with the colors representing different manipulations identified. In one example, for detecting Al-generated images, the user interface 110 can display the Al-generated images highlighted in red bounding boxes. The user interface 110 can include a sidebar for users to check the detection results in detail. The user interface 110 can allow users to adjust the brightness, contrast, and orientation of the bounded area for better visualization. The system 100 allows users to generate and save their detection reports for future reference.Attomey DocketNo.: 642631-0112 (MDA25-035PC)i. Example Copy -Move Detection Results
[0091] FIGS. 9 and 10 show example copy -move detection results in accordance with the methods and systems described herein. As depicted in FIGS. 9 and 10, a sub-image obtained from one or more input images is shown with bounding boxes surrounding the detected duplicated regions of the sub-image (left) with a heat map of the detected duplicated regions of the sub-image highlighted in yellow (right).j. Example Al-generated Image Detection Results
[0092] FIGS. 11A-11D show example Al-generated image detection results in accordance with the methods and systems described herein. FIGS. 11 A-C show successful detection of fully Al-generated images. FIG. 1 ID shows a successful detection of a partially Al-generated image.k. Computing and Network Environment
[0093] Referring to FIG. 12, it may be helpful to describe aspects of the operating environment as well as associated system components (e.g., hardware elements) in connection with the methods and systems described herein. The methods described herein, such as methods 300 and 400, can be implemented or executed by any of the devices, or any combination thereof, described in relation to FIG. 12.
[0094] Various operations described herein can be implemented on computer systems. FIG.12 shows a simplified block diagram of a representative server system 1200, client computing system 1214, and network 1226 usable to implement certain embodiments of the present disclosure. In various embodiments, server system 1200 or similar systems can implement services or servers described herein or portions thereof. Client computing system 1214 or similar systems can implement clients described herein. Server system 1200 can have a modular design that incorporates a number of modules 1202 (e.g., blades in a blade server embodiment); while two modules 1202 are shown, any number can be provided. Each module 1202 can include processing unit(s) 1204 and local storage 1206.
[0095] Processing unit(s) 1204 can include a single processor, which can have one or more cores, or multiple processors. In some embodiments, processing unit(s) 1204 can include a general-purpose primary processor as well as one or more special-purpose co-processors such as graphics processors, digital signal processors, or the like. In some embodiments, some or all processing units 1204 can be implemented using customized circuits, such as application-Attorney DocketNo.: 642631-0112 (MDA25-035PC)specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In other embodiments, processing unit(s) 1204 can execute instructions stored in local storage 1206. Any type of processors in any combination can be included in processing unit(s) 1204.
[0096] Local storage 1206 can include volatile storage media (e.g., DRAM, SRAM, SDRAM, or the like) and / or non-volatile storage media (e.g., magnetic or optical disk, flash memory, or the like). Storage media incorporated in local storage 1206 can be fixed, removable or upgradeable as desired. Local storage 1206 can be physically or logically divided into various subunits such as a system memory, a read-only memory (ROM), and a permanent storage device. The system memory can be a read-and-write memory device or a volatile read-and-write memory, such as dynamic random-access memory. The system memory can store some or all of the instructions and data that processing unit(s) 1204 need at runtime. The ROM can store static data and instructions that are needed by processing unit(s) 1204. The permanent storage device can be a non-volatile read-and-write memory device that can store instructions and data even when module 1202 is powered down. The term “storage medium” as used herein includes any medium in which data can be stored indefinitely (subject to overwriting, electrical disturbance, power loss, or the like) and does not include carrier waves and transitory electronic signals propagating wirelessly or over wired connections.
[0097] In some embodiments, local storage 1206 can store one or more software programs to be executed by processing unit(s) 1204, such as an operating system and / or programs implementing various methods or steps thereof such as methods 300 and 500 of FIGS. 3 and 5 or any other methods or processes described herein.
[0098] “ Software” refers generally to sequences of instructions that, when executed by processing unit(s) 1204 cause server system 1200 (or portions thereof) to perform various operations, thus defining one or more specific machine embodiments that execute and perform the operations of the software programs. The instructions can be stored as firmware residing in read-only memory and / or program code stored in non-volatile storage media that can be read into volatile working memory for execution by processing unit(s) 1204. Software can be implemented as a single program or a collection of separate programs or program modules that interact as desired. From local storage 1206 (or non-local storage described below), processing unit(s) 1204 can retrieve program instructions to execute and data to process in order to execute various operations described above.Attorney DocketNo.: 642631-0112 (MDA25-035PC)
[0099] In some server systems 1200, multiple modules 1202 can be interconnected via a bus or other interconnect 1208, forming a local area network that supports communication between modules 1202 and other components of server system 1200. Interconnect 1208 can be implemented using various technologies including server racks, hubs, routers, etc.
[0100] A wide area network (WAN) interface 1210 can provide data communication capability between the local area network (interconnect 1208) and the network 1226, such as the Internet. Technologies can be used, including wired (e.g., Ethernet, IEEE 802.3 standards) and / or wireless technologies (e.g., Wi-Fi, IEEE 802.11 standards).
[0101] In some embodiments, local storage 1206 is intended to provide working memory for processing unit(s) 1204, providing fast access to programs and / or data to be processed while reducing traffic on interconnect 1208. Storage for larger quantities of data can be provided on the local area network by one or more mass storage subsystems 1212 that can be connected to interconnect 1208. Mass storage subsystem 1212 can be based on magnetic, optical, semiconductor, or other data storage media. Direct attached storage, storage area networks, network-attached storage, and the like can be used. Any data stores or other collections of data described herein as being produced, consumed, or maintained by a service or server can be stored in mass storage subsystem 1212. In some embodiments, additional data storage resources may be accessible via WAN interface 1210 (potentially with increased latency).
[0102] Server system 1200 can operate in response to requests received via WAN interface 12010. For example, one of modules 1202 can implement a supervisory function and assign discrete tasks to other modules 1202 in response to received requests. Work allocation techniques can be used. As requests are processed, results can be returned to the requester via WAN interface 1210. Such operation can generally be automated. Further, in some embodiments, WAN interface 1210 can connect multiple server systems 1200 to each other, providing scalable systems capable of managing high volumes of activity. Other techniques for managing server systems and server farms (collections of server systems that cooperate) can be used, including dynamic resource allocation and reallocation.
[0103] Server system 1200 can interact with various user-owned or user-operated devices via a wide-area network such as the Internet. An example of a user-operated device is shown in FIG.12 as client computing system 1214. Client computing system 1214 can be implemented, for example, as a consumer device such as a smartphone, other mobile phone, tablet computer,Attomey DocketNo.: 642631-0112 (MDA25-035PC)wearable computing device (e.g., smartwatch, eyeglasses), desktop computer, laptop computer, and so on.
[0104] For example, client computing system 1214 can communicate via WAN interface 1210. Client computing system 1214 can include computer components such as processing unit(s) 1216, storage device 1218, network interface 1220, user input device 1222, and user output device 1224. Client computing system 1214 can be a computing device implemented in a variety of form factors, such as a desktop computer, laptop computer, tablet computer, smartphone, other mobile computing device, wearable computing device, or the like.
[0105] Processing unit(s) 1216 and storage device 1218 can be similar to processing unit(s) 1204 and local storage 1206 described above. Suitable devices can be selected based on the demands to be placed on client computing system 1214; for example, client computing system 1214 can be implemented as a “thin” client with limited processing capability or as a high-powered computing device. Client computing system 1214 can be provisioned with program code executable by processing unit(s) 1216 to enable various interactions with server system 1200.
[0106] Network interface 1220 can provide a connection to the network 1226, such as a wide area network (e.g., the Internet) to which WAN interface 1210 of server system 1200 is also connected. In various embodiments, network interface 1220 can include a wired interface (e.g., Ethernet) and / or a wireless interface implementing various RF data communication standards such as Wi-Fi, Bluetooth, or cellular data network standards (e.g., 3G, 4G, LTE, etc.).
[0107] User input device 1222 can include any device (or devices) via which a user can provide signals to client computing system 1214; client computing system 1214 can interpret the signals as indicative of particular user requests or information. In various embodiments, user input device 1222 can include any or all of a keyboard, touch pad, touch screen, mouse or other pointing device, scroll wheel, click wheel, dial, button, switch, keypad, microphone, and so on.
[0108] User output device 1224 can include any device via which client computing system 1214 can provide information to a user. For example, user output device 1224 can include a display to display images generated by or delivered to client computing system 1214. The display can incorporate various image generation technologies, e.g., a liquid crystal display (LCD), light-emitting diode (LED) including organic light-emitting diodes (OLED), projection system, cathode ray tube (CRT), or the like, together with supporting electronics (e.g., digital-Attorney DocketNo.: 642631-0112 (MDA25-035PC)to-analog or analog-to-digital converters, signal processors, or the like). Some embodiments can include a device such as a touchscreen that function as both input and output device. In some embodiments, other user output devices 1224 can be provided in addition to or instead of a display. Examples include indicator lights, speakers, tactile “display” devices, printers, and so on.
[0109] Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a computer-readable storage medium. Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer-readable storage medium. When these program instructions are executed by one or more processing units, they cause the processing unit(s) to perform various operation indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter. Through suitable programming, processing unit(s) 1204 and 1216 can provide various functionality for server system 1200 and client computing system 1214, including any of the functionality described herein as being performed by a server or client, or other functionality.
[0110] It will be appreciated that server system 1200 and client computing system 1214 are illustrative and that variations and modifications are possible. Computer systems used in connection with embodiments of the present disclosure can have other capabilities not specifically described here. Further, while server system 1200 and client computing system 1214 are described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. For instance, different blocks can be but need not be located in the same facility, in the same server rack, or on the same motherboard. Further, the blocks need not correspond to physically distinct components. Blocks can be configured to perform various operations, e.g., by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained. Embodiments of the present disclosure can be realized in a variety of apparatus including electronic devices implemented using any combination of circuitry and software.[OHl] While the disclosure has been described with respect to specific embodiments, oneAttorney DocketNo.: 642631-0112 (MDA25-035PC)skilled in the art will recognize that numerous modifications are possible. Embodiments of the disclosure can be realized using a variety of computer systems and communication technologies including but not limited to the specific examples described herein. Embodiments of the present disclosure can be realized using any combination of dedicated components and / or programmable processors and / or other programmable devices. The various processes described herein can be implemented on the same processor or different processors in any combination. Where components are described as being configured to perform certain operations, such configuration can be accomplished, e.g., by designing electronic circuits to perform the operation, by programming programmable electronic circuits (such as microprocessors) to perform the operation, or any combination thereof. Further, while the embodiments described above may make reference to specific hardware and software components, those skilled in the art will appreciate that different combinations of hardware and / or software components may also be used and that particular operations described as being implemented in hardware might also be implemented in software or vice versa.
[0112] Computer programs incorporating various features of the present disclosure may be encoded and stored on various computer-readable storage media; suitable media include magnetic disk or tape, optical storage media such as compact disk (CD) or DVD (digital versatile disk), flash memory, and other non-transitory media. Computer-readable media encoded with the program code may be packaged with a compatible electronic device, or the program code may be provided separately from electronic devices (e.g., via Internet download or as a separately packaged computer-readable storage medium).
[0113] Thus, although the disclosure has been described with respect to specific embodiments, it will be appreciated that the disclosure is intended to cover all modifications and equivalents within the scope of the following claims.1. Example Computing System
[0114] FIG. 13 is a block diagram of an example computing system suitable for use in the various arrangements described herein. In a non-limiting example, the computing system 1300 may implement a client computing system 1214 of FIG. 12, or various other example systems and devices described in the present disclosure.
[0115] The computing system 1300 includes a bus 1302 or other communication component for communicating information and a processor 1304 coupled to the bus 1302 for processingAttorney DocketNo.: 642631-0112 (MDA25-035PC)information. The computing system 1300 also includes main memory 1306, such as a RAM or other dynamic storage device, coupled to the bus 1302 for storing information, and instructions to be executed by the processor 1304. Main memory 1306 may also be used for storing position information, temporary variables, or other intermediate information during execution of instructions by the processor 1304. The computing system 1300 may further include a ROM 1308 or other static storage device coupled to the bus 1302 for storing static information and instructions for the processor 1304. A storage device 1310, such as a solid-state device, magnetic disk, or optical disk, is coupled to the bus 1302 for persistently storing information and instructions.
[0116] The computing system 1300 may be coupled via the bus 1302 to a display 1314, such as a liquid crystal display, or active-matrix display, for displaying information to a user. An input device 1312, such as a keyboard including alphanumeric and other keys, may be coupled to the bus 1302 for communicating information, and command selections to the processor 1304. In another implementation, the input device 1312 has a touch screen display. The input device 1312 may include any type of biometric sensor, or a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 1304 and for controlling cursor movement on the display 1314.
[0117] In some implementations, the computing system 1300 may include a communications adapter 1316, such as a networking adapter. Communications adapter 1316 may be coupled to bus 1302 and may be configured to enable communications with a computing or communications network or other computing systems. In various illustrative implementations, any type of networking configuration may be achieved using communications adapter 1316, such as wired (e.g., via Ethernet), wireless (e.g., via Wi-Fi, Bluetooth), satellite (e.g., via GPS) pre-configured, ad-hoc, LAN, WAN, and the like.
[0118] According to various implementations, the processes of the illustrative implementations that are described herein may be achieved by the computing system 1300 in response to the processor 1304 executing an implementation of instructions contained in main memory 1306. Such instructions may be read into main memory 1306 from another computer-readable medium, such as the storage device 1310. Execution of the implementation of instructions contained in main memory 1306 causes the computing system 1300 to perform the illustrative processes described herein. One or more processors in a multi-processing implementation may also be employed to execute the instructions contained in main memoryAttorney DocketNo.: 642631-0112 (MDA25-035PC)1306. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement illustrative implementations. Thus, implementations are not limited to any specific combination of hardware circuitry and software.
[0119] Having now described some illustrative implementations, it is apparent that the foregoing is illustrative and not limiting, having been presented by way of example. In particular, although many of the examples presented herein involve specific combinations of method acts or system elements, those acts and those elements may be combined in other ways to accomplish the same objectives. Acts, elements and features discussed in connection with one implementation are not intended to be excluded from a similar role in other implementations or implementations.
[0120] The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including” “comprising” “having” “containing” “involving” “characterized by” “characterized in that” and variations thereof herein, is meant to encompass the items listed thereafter, equivalents thereof, and additional items, as well as alternate implementations consisting of the items listed thereafter exclusively. In one implementation, the systems and methods described herein consist of one, each combination of more than one, or all of the described elements, acts, or components.
[0121] Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, e.g., one or more circuits of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machinegenerated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computerAttorney DocketNo.: 642631-0112 (MDA25-035PC)storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices).
[0122] The operations described in this specification can be performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources. The term “data processing apparatus” or “computing device” encompasses various apparatuses, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
[0123] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a circuit, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more circuits, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0124] Processors suitable for the execution of a computer program include, by way of example, microprocessors, and any one or more processors of a digital computer. A processor can receive instructions and data from a read only memory or a random-access memory or both. The elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. A computer can include, or be operatively coupled to receive data from or transfer data to, or both, one or moreAttorney DocketNo.: 642631-0112 (MDA25-035PC)mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. A computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a personal digital assistant (PDA), a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0125] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0126] The implementations described herein can be implemented in any of numerous ways including, for example, using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
[0127] Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
[0128] Such computers may be interconnected by one or more networks in any suitable form, including a local area network or a wide area network, such as an enterprise network, andAttorney DocketNo.: 642631-0112 (MDA25-035PC)intelligent network (IN) or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
[0129] A computer employed to implement at least a portion of the functionality described herein may comprise a memory, one or more processing units (also referred to herein simply as “processors”), one or more communication interfaces, one or more display units, and one or more user input devices. The memory may comprise any computer-readable media, and may store computer instructions (also referred to herein as “processor-executable instructions”) for implementing the various functionalities described herein. The processing unit(s) may be used to execute the instructions. The communication interface(s) may be coupled to a wired or wireless network, bus, or other communication means and may therefore allow the computer to transmit communications to or receive communications from other devices. The display unit(s) may be provided, for example, to allow a user to view various information in connection with execution of the instructions. The user input device(s) may be provided, for example, to allow the user to make manual adjustments, make selections, enter data or various other information, or interact in any of a variety of manners with the processor during execution of the instructions.
[0130] The various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
[0131] In this respect, various inventive concepts may be embodied as a computer readable storage medium (or multiple computer readable storage media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other non-transitory medium or tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the solution discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present solution as discussed above.Attorney DocketNo.: 642631-0112 (MDA25-035PC)
[0132] The terms “program” or “software” are used herein to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of embodiments as discussed above. One or more computer programs that when executed perform methods of the present solution need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present solution.
[0133] Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Program modules can include routines, programs, objects, components, data structures, or other components that perform particular tasks or implement particular abstract data types. The functionality of the program modules can be combined or distributed as desired in various embodiments.
[0134] Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that convey relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
[0135] Any references to implementations or elements or acts of the systems and methods herein referred to in the singular can include implementations including a plurality of these elements, and any references in plural to any implementation or element or act herein can include implementations including only a single element. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, their components, acts, or elements to single or plural configurations. References to any act or element being based on any information, act or element may include implementations where the act or element is based at least in part on any information, act, or element.
[0136] Any implementation disclosed herein may be combined with any other implementation, and references to “an implementation,” “some implementations,” “an alternate implementation,” “various implementations,” “one implementation” or the like are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the implementation may be included in one or moreAttorney DocketNo.: 642631-0112 (MDA25-035PC)implementation. Such terms as used herein are not necessarily all referring to the same implementation. Any implementation may be combined with any other implementation, inclusively or exclusively, in any manner consistent with the aspects and implementations disclosed herein.
[0137] References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. References to one or more of a conjunctive list of terms may be construed as an inclusive OR to indicate any of a single, more than one, and all of the described terms. For example, a reference to “one or more of ‘A’ and ‘B’” can include only ‘A’, only ‘B’, as well as both ‘A’ and ‘B’. Elements other than ‘A’ and ‘B’ can also be included.
[0138] The systems and methods described herein may be embodied in other specific forms without departing from the characteristics thereof. The foregoing implementations are illustrative rather than limiting of the described systems and methods.
[0139] Where technical features in the drawings, detailed description or any claim are followed by reference signs, the reference signs have been included to increase the intelligibility of the drawings, detailed description, and claims. Accordingly, neither the reference signs nor their absence have any limiting effect on the scope of any claim elements.
[0140] The systems and methods described herein may be embodied in other specific forms without departing from the characteristics thereof. The foregoing implementations are illustrative rather than limiting of the described systems and methods. Scope of the systems and methods described herein is thus indicated by the appended claims, rather than the foregoing description, and changes that come within the meaning and range of equivalency of the claims are embraced therein.
Claims
Attorney DocketNo.: 642631-0112 (MDA25-035PC)WHAT IS CLAIMED IS:
1. A system, comprising:one or more processors to:obtain one or more input images via a user interface;generate one or more sub-image nodes based at least on the one or more input images;obtain a result node from a transformation detector based at least on the one or more sub-image nodes, wherein the result node indicates transformation manipulation; anddisplay one or more image manipulations of the one or more input images via the user interface based at least on the result node.
2. The system of claim 1, wherein the one or more processors are further to:obtain a second result node from a copy-move detector based at least on the one or more sub-image nodes, wherein the second result node indicates copy -move manipulation; and display one or more image manipulations of the one or more input images via the user interface based at least on the second result node.
3. The system of claim 1, wherein the one or more processors are further to:obtain a third result node from a splice detector based at least on the one or more subimage nodes, wherein the third result node indicates splicing manipulation; anddisplay one or more image manipulations of the one or more input images via the user interface based at least on the third result node.
4. The system of claim 1, wherein the one or more processors are further to:obtain a fourth result node from an Al-generation detector based at least on the one or more sub-image nodes, wherein the fourth result node indicates at least partial Al-generation; anddisplay one or more Al-generated images of the one or more input images via the user interface based at least on the fourth result node.
5. The system of claim 1, wherein the one or more processors are to obtain the result node by causing the transformation detector to:Attorney DocketNo.: 642631-0112 (MDA25-035PC)detect a plurality of keypoints of the one or more sub-image nodes using one or more neural networks;extract a plurality of descriptors of the plurality of keypoints using the one or more neural networks;match the plurality of keypoints using the one or more neural networks based at least on the plurality of keypoints and the plurality of descriptors, indicating one or more transformation manipulations; andgenerate the result node based at least on the plurality of keypoints.
6. The system of claim 2, wherein the one or more processors are to obtain the second result node by causing the copy -move detector to:detect a plurality of similar image patches of the one or more sub-image nodes; generate one or more displacement maps indicating relative positions between the plurality of similar image patches;generate one or more detection masks based at least on the one or more displacement maps, wherein the one or more detection masks comprises one or more regions where similar patches were found;identify one or more copy-move image manipulations based at least on the one or more detection masks; andgenerate the second result node based at least on the one or more copy -move image manipulations.
7. The system of claim 3, wherein the one or more processors are to obtain the third result node by causing the splice detector to:determine a plurality of artifacts of the one or more sub-image nodes;determine one or more spliced regions based at least on the plurality of artifacts; and generate the third result node based at least on the one or more spliced regions.
8. The system of claim 4, wherein the one or more processors are to obtain the fourth result node by causing the Al-generation detector to:retrieve one or more classification models, the one or more classification models updated according to a dataset of real images and artificial intelligence (Al) generated images;Attorney DocketNo.: 642631-0112 (MDA25-035PC)determine, based at least on one or more input images received via a user interface, an associated hierarchical image tree comprising a plurality of attributes of the one or more input images;detect, using the one or more classification models, a plurality of representative patches of the one or more input images;map the plurality of representative patches to the associated hierarchical image tree; classify each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully Al-generated image; and generate the fourth result node based at least on the classification.
9. The system of claim 1, wherein the one or more processors are to preprocess the one or more input images by applying horizontal or vertical flips to the one or more input images.
10. The system of claim 5, wherein:a first neural network of the one or more neural networks is SuperPoint; and a second neural network of the one or more neural networks is LightGlue trained under a Generalizable Image Matcher (GIM) framework.
11. The system of claim 6 wherein the one or more processors are to generate the one or more detection masks by:reducing noise in the one or more displacement maps using median filtering; identifying a plurality of regions in the one or more displacement maps where similar image patches deviate from one or more expected motion patterns beyond a second threshold;filtering out closely situated region pairs of the plurality of regions to condense the one or more displacement maps into a detection mask;refining the detection mask by excluding regions smaller than a third threshold; expanding and mirroring regions by assigning each pixel a label corresponding to its region;responsive to a detection of a cluster containing pixels of different labels within a connected area, selecting a predominant label within the connected area to represent the cluster; andapplying morphological dilation to extend prominent features of the detection mask.Attorney DocketNo.: 642631-0112 (MDA25-035PC)12. The system of claim 6, wherein the one or more processors are to:responsive to identifying more than one copy -move image manipulation, determine one or more distinct copy-move image manipulation pairs based at least on an associated displacement map of the one or more displacement maps; andlabel the one or more distinct copy-move image manipulation pairs.
13. The system of claim 8, wherein the one or more processors are to update the one or more classification models based at least on a plurality of weights, wherein the plurality of weights are based at least on a plurality of images.
14. A method, comprising:obtaining one or more input images via a user interface;generating one or more sub-image nodes based at least on the one or more input images;extracting a plurality of keypoints of the one or more sub-image nodes using one or more neural networks;extracting a plurality of descriptors of the plurality of keypoints using the one or more neural networks;matching the plurality of keypoints using the one or more neural networks based at least on the plurality of keypoints and the plurality of descriptors, indicating one or more transformation manipulations;generating a first result node based at least on the plurality of keypoints; and displaying, via the user interface, one or more transformation image manipulations of the one or more input images based at least on the first result node.
15. The method of claim 14, further comprising:detecting a plurality of similar image patches of the one or more sub-image nodes; generating one or more displacement maps indicating relative positions between the plurality of similar image patches;generating one or more detection masks based at least on the one or more displacement maps, wherein the one or more detection masks comprises one or more regions where similar patches were found;identifying one or more copy-move image manipulations based at least on the one or more detection masks;Attorney DocketNo.: 642631-0112 (MDA25-035PC)generating a second result node based at least on the one or more copy-move image manipulations; anddisplaying, via the user interface, one or more copy-move image manipulations of the one or more input images based at least on the second result node.
16. The method of claim 14, further comprising:determining a plurality of artifacts of the one or more sub-image nodes; determining one or more spliced regions based at least on the plurality of artifacts; generating a third result node based at least on the one or more spliced regions; and displaying, via the user interface, one or more splicing image manipulations of the one or more input images based at least on the third result node.
17. The method of claim 14, wherein:a first neural network of the one or more neural networks is SuperPoint; and a second neural network of the one or more neural networks is LightGlue trained under a Generalizable Image Matcher (GIM) framework.
18. The method of claim 15, wherein generating the one or more detection masks comprises:reducing noise in the one or more displacement maps using median filtering; identifying a plurality of regions in the one or more displacement maps where similar image patches deviate from one or more expected motion patterns beyond a second threshold;filtering out closely situated region pairs of the plurality of regions to condense the one or more displacement maps into a detection mask;refining the detection mask by excluding regions smaller than a third threshold; expanding and mirroring regions by assigning each pixel a label corresponding to its region;responsive to a detection of a cluster containing pixels of different labels within a connected area, selecting a predominant label within the connected area to represent the cluster; andapplying morphological dilation to extend prominent features of the detection mask.Attorney DocketNo.: 642631-0112 (MDA25-035PC)19. The method of claim 15, further comprising:responsive to identifying more than one copy -move image manipulations, determining distinct copy-move manipulation pairs based at least on an associated displacement map of the one or more displacement maps; andlabeling the distinct copy-move manipulation pairs.
20. The method of claim 18, wherein filtering out closely situated region pairs comprises excluding region pairs with a distance of up to 50 pixels.
21. The method of claim 14, further comprising:retrieving one or more classification models, the one or more classification models updated according to a dataset of real images and artificial intelligence (Al) generated images;determining, based at least on one or more input images received via a user interface, an associated hierarchical image tree comprising a plurality of attributes of the one or more input images;detecting, using the one or more classification models, a plurality of representative patches of the one or more input images;mapping the plurality of representative patches to the associated hierarchical image tree;classifying each of the one or more input images, using the associated hierarchical image tree, as a real image, a partially Al-generated image, or a fully Al-generated image; generating a fourth result node based at least on the classification; and displaying, via the user interface, one or more Al-generated images of the one or more input images based at least on the fourth result node.
22. The method of claim 21, further comprising:updating the one or more classification models based at least on a plurality of parameters, wherein the plurality of parameters are determined based at least on a plurality of images.
23. A non-transitory computer-readable medium storing computer instructions, the computer instructions when executed by one or more processors cause the one or more processors to:obtain one or more input images via a user interface;Attorney DocketNo.: 642631-0112 (MDA25-035PC)generate one or more sub-image nodes based at least on the one or more input images; obtain a first result node from a transformation detector based at least on the one or more sub-image nodes, wherein the first result node indicates transformation image manipulation;obtain a second result node from a copy-move detector based at least on the one or more sub-image nodes, wherein the second result node indicates copy -move image manipulation;obtain a third result node from a splice detector based at least on the one or more subimage nodes, wherein the third result node indicates splicing image manipulation;obtain a fourth result node from an Al-generation detector based at least on the one or more sub-image nodes, wherein the fourth result node indicates at least partial Al-generation; anddisplay one or more image manipulations of the one or more input images via the user interface based at least on the first result node, second result node, third result node, and fourth result node.