This is a Smart Tourism Android Application that uses artificial intelligence and computer vision to revolutionize the tourist experience. The app can recognize monuments through your phone's camera and provide rich, interactive guides with personalized recommendations.
The project consists of two main components working together:
- Location:
Python/folder - Purpose: Processes monument images and creates the AI model
- Output: SQLite databases containing features and guides
- Location:
app/folder - Purpose: The mobile application tourists use
- Features: Camera recognition, guides, recommendations
- Open the app → Loading screen prepares data
- Point camera at monument → AI recognizes the building instantly
- Get instant information → Rich guides with history, facts, and photos
- Discover more → Personalized recommendations for nearby attractions
- Navigate easily → Integrated maps show you how to get there
- Add monument photos → Place images in
Python/imageDatasets/CITYNAME/ - Write guides → Create Markdown files in
Python/guides/CITYNAME/ - Process data → Run Python scripts to train AI and build databases
- Deploy → Copy databases to Android app and build APK
- 🤖 TensorFlow Lite: AI model for real-time monument recognition
- 📷 OpenCV: Computer vision for image processing
- 🗂️ SQLite: Local database for offline functionality
- 📍 GPS: Location tracking for proximity features
- 📝 Markdown: Rich text formatting for guides
- 🎨 Material Design: Modern Android UI components
smart_tourism_android_app/
├── Python/ # Backend processing
│ ├── imageDatasets/CITYNAME/ # Monument photos for training
│ ├── guides/CITYNAME/ # Tourist guides (Markdown)
│ ├── categories/CITYNAME/ # Category images
│ ├── build_sqlite.py # Main database builder
│ └── processing_monuments.py # Image processing pipeline
│
├── app/ # Android application
│ ├── src/main/java/.../ # Java source code
│ │ ├── MainActivity.java # Main monument list
│ │ ├── CameraActivity.java # Camera recognition
│ │ ├── GuideActivity.java # Guide viewer
│ │ └── LoadingActivity.java # Initial loading
│ └── src/main/res/ # App resources (layouts, images)
│
├── models/ # Shared models and databases
└── README.md # Setup instructions
- Point camera at any monument
- Instant AI-powered identification
- Works offline after initial setup
- Detailed historical information
- High-quality photos and descriptions
- Multi-language support
- Learn user preferences over time
- Suggest monuments based on interests
- Consider location and walking distance
- GPS tracking for nearby monuments
- Integrated maps for navigation
- Distance-based notifications
- Choose preferred categories (art, history, architecture)
- Set attributes of interest
- Adjust notification settings
-
Prepare Image Dataset:
Python/imageDatasets/YOURCITY/ ├── Monument1/ │ ├── image1.jpg │ ├── image2.jpg │ └── image3.jpg └── Monument2/ ├── image1.jpg └── image2.jpg -
Create Tourist Guides:
Python/guides/YOURCITY/English/ ├── Monument1.md └── Monument2.md
-
Add Category Images:
Python/categories/YOURCITY/ ├── Architecture.jpg ├── History.jpg └── Art.jpg
-
Generate Database:
./run_docker.sh YOURCITY copy
-
Build Android App:
./gradlew assembleDebug
<!-- METADATA 43.7696 11.2558 Architecture,History Renaissance,Tourist,Popular Duomo Cathedral https://example.com -->
# Florence Cathedral (Duomo)
The **Cattedrale di Santa Maria del Fiore** is the main church of Florence, Italy...
## History
Built between 1296 and 1436...
## Architecture
The dome, designed by Brunelleschi...- Monument List: Organized by categories
- Search Function: Find specific monuments
- Preferences: Quick access to settings
- Camera Button: Launch recognition feature
- Live Preview: Real-time camera feed
- Recognition Overlay: Visual feedback when monument detected
- Instant Results: Pop-up with monument information
- Rich Content: Formatted text with images
- Recommendations: Related monuments to visit
- Map Integration: Navigation to location
- Sharing: Send guides to friends
- Minimum Android Version: API 26 (Android 8.0)
- Target SDK: 33
- Languages: Java, Kotlin, Python
- AI Framework: TensorFlow Lite
- Database: SQLite
- Image Processing: OpenCV
- Architecture: MVVM pattern
The app supports multiple languages through:
- Localized Guides: Separate guide files for each language
- UI Translation: Android string resources
- Dynamic Loading: Content changes based on device language
The project uses Gradle with multiple build flavors:
- Support Flavor: Uses TensorFlow Lite Support library
- Task API Flavor: Uses TensorFlow Lite Task API (default)
- Independent Exploration: Discover monuments without guides
- Educational Experience: Learn history and cultural significance
- Trip Planning: Get recommendations for visit routes
- Offline Access: Works without internet connection
- Digital Guides: Replace traditional paper guides
- Customized Content: Tailor information to specific audiences
- Analytics: Track popular monuments and user preferences
- Scalability: Easy to add new cities and monuments
Potential improvements could include:
- Augmented Reality: Overlay information directly on camera view
- Social Features: Share experiences and reviews
- Audio Guides: Voice narration of monument information
- Gamification: Collect badges for visited monuments
- Cloud Sync: Synchronize preferences across devices
The final APK can be found at: app/build/outputs/apk/support/debug/
This app represents a modern approach to tourism, combining cutting-edge AI technology with rich cultural content to create an engaging and educational experience for travelers.