# AI Image Similarity Module

This module provides AI-powered image similarity analysis for trademark images using Google Cloud Vision API and custom image processing algorithms.

## Features

- **Image Analysis**: Extract features from trademark images using Google Cloud Vision API
- **Similarity Detection**: Find similar trademark images using cosine similarity
- **Batch Processing**: Process multiple images at once
- **Manual Review**: Mark similarity results for manual review
- **Interactive Interface**: User-friendly web interface for searching and analyzing images

## Installation

1. **Install Dependencies** (Already completed):
   ```bash
   composer require intervention/image
   composer require google/cloud-vision
   ```

2. **Run Migrations** (Already completed):
   ```bash
   php artisan migrate
   ```

3. **Configure Google Cloud Vision API**:
   - Create a Google Cloud project
   - Enable the Vision API
   - Create a service account and download the JSON key
   - Add to your `.env` file:
     ```
     GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json
     GOOGLE_CLOUD_PROJECT_ID=your-project-id
     ```

## Usage

### Access the Module
Navigate to the "AI Image Similarity" menu item in the sidebar under TradeMarks section.

### Basic Workflow

1. **View Trademarks**: Browse all trademarks with images
2. **Find Similar Images**: Click "Find Similar" on any trademark to find similar images
3. **Analyze Images**: Click "Analyze" to see detailed image analysis
4. **Batch Process**: Use "Batch Process All Images" to analyze all images at once
5. **Review Results**: Mark similarity results for manual review

### API Endpoints

- `GET /image-similarity` - Main interface
- `POST /image-similarity/process-image` - Process a single image
- `POST /image-similarity/find-similar` - Find similar images
- `GET /image-similarity/analysis/{id}` - Get image analysis
- `POST /image-similarity/batch-process` - Batch process all images
- `POST /image-similarity/review/{id}` - Update review status

## Database Schema

### trademark_image_embeddings
- `id` - Primary key
- `trademark_id` - Foreign key to trade_mark_tickets
- `image_path` - Path to the image file
- `image_embedding` - JSON encoded feature vector
- `image_hash` - SHA256 hash for duplicate detection
- `image_features` - JSON encoded extracted features
- `similarity_threshold` - Similarity threshold for this image

### trademark_similarity_results
- `id` - Primary key
- `source_trademark_id` - Source trademark ID
- `target_trademark_id` - Target trademark ID
- `similarity_score` - Similarity score (0-1)
- `similarity_details` - Additional analysis details
- `is_manual_review` - Whether marked for manual review
- `review_notes` - Manual review notes

## Configuration

### Similarity Thresholds
- **High Similarity**: ≥ 80% (Red badge)
- **Medium Similarity**: 60-79% (Yellow badge)
- **Low Similarity**: 50-59% (Green badge)

### Image Processing
- Supported formats: JPG, JPEG, PNG, GIF, SVG
- Maximum file size: 5MB
- Images are stored in `public/TradeMarksLogo/images/`

## Troubleshooting

### Google Cloud Vision API Issues
If the API is not configured or fails, the system will fall back to basic image analysis using:
- Image dimensions and aspect ratio
- Dominant colors
- Brightness and contrast analysis

### Performance Considerations
- Large images are automatically resized for processing
- Embeddings are cached to avoid reprocessing
- Batch processing is recommended for large datasets

## Future Enhancements

- Integration with HuggingFace Transformers for more advanced image analysis
- Support for additional image formats
- Advanced similarity algorithms (perceptual hashing, deep learning)
- Export similarity reports
- Integration with trademark search databases

## Support

For issues or questions about the AI Image Similarity module, please contact the development team.

