| | """ |
| | Example usage of the Enhanced AI Image Detector |
| | """ |
| |
|
| | import os |
| | import sys |
| | import argparse |
| | from ai_detector import EnhancedAIDetector |
| | import json |
| |
|
| | def main(): |
| | |
| | parser = argparse.ArgumentParser(description='Detect if an image is AI-generated') |
| | parser.add_argument('image_path', type=str, help='Path to the image to analyze') |
| | parser.add_argument('--output', type=str, help='Path to save the results as JSON', default=None) |
| | parser.add_argument('--detailed', action='store_true', help='Show detailed analysis results') |
| | args = parser.parse_args() |
| | |
| | |
| | if not os.path.exists(args.image_path): |
| | print(f"Error: Image not found at {args.image_path}") |
| | sys.exit(1) |
| | |
| | |
| | detector = EnhancedAIDetector() |
| | |
| | try: |
| | |
| | print(f"Analyzing image: {args.image_path}") |
| | result = detector.analyze_image(args.image_path) |
| | |
| | |
| | if result["is_ai_generated"]: |
| | print("\n🤖 This image is likely AI-generated") |
| | print(f"Confidence score: {result['overall_score']:.2f}") |
| | else: |
| | print("\n📷 This image is likely authentic") |
| | print(f"Confidence score: {1 - result['overall_score']:.2f}") |
| | |
| | |
| | if args.detailed: |
| | print("\nDetailed Analysis:") |
| | print(f"Noise analysis score: {result['noise_analysis']['score']:.2f} " + |
| | ("(suspicious)" if result['noise_analysis']['is_suspicious'] else "(normal)")) |
| | print(f"Texture analysis score: {result['texture_analysis']['score']:.2f} " + |
| | ("(suspicious)" if result['texture_analysis']['is_suspicious'] else "(normal)")) |
| | print(f"Color analysis score: {result['color_analysis']['score']:.2f} " + |
| | ("(suspicious)" if result['color_analysis']['is_suspicious'] else "(normal)")) |
| | print(f"Edge analysis score: {result['edge_analysis']['score']:.2f} " + |
| | ("(suspicious)" if result['edge_analysis']['is_suspicious'] else "(normal)")) |
| | |
| | if "face_analysis" in result: |
| | print(f"Face analysis score: {result['face_analysis']['score']:.2f} " + |
| | ("(suspicious)" if result['face_analysis']['is_suspicious'] else "(normal)")) |
| | |
| | |
| | if args.output: |
| | with open(args.output, 'w', encoding='utf-8') as f: |
| | json.dump(result, f, ensure_ascii=False, indent=2) |
| | print(f"\nResults saved to {args.output}") |
| | |
| | except Exception as e: |
| | print(f"Error analyzing image: {str(e)}") |
| | sys.exit(1) |
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|