Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🤖 CodeAlpha — Artificial Intelligence Internship

PythonYOLOv8NLTKOpenCVTkinterStatus

Completed by Pranav · BBACA Graduate · Modern College of Arts, Science & Commerce, Pune

"The best way to learn AI is to build something with it."


📋 Table of Contents


🏢 About This Internship

This repository contains my completed AI projects for the CodeAlpha Artificial Intelligence Internship — a program focused on building real-world AI applications using Python.

Each project covers a distinct domain of AI:

DomainProject
Natural Language ProcessingFAQ Chatbot — ARIA
Translation SystemsLanguage Translation Tool
Computer Vision & Deep LearningObject Detection — TITAN
Desktop Application DevelopmentAll three projects use Tkinter

✅ Task Summary

TaskProjectStatus
Task 1Language Translation Tool✅ Completed
Task 2FAQ Chatbot — ARIA✅ Completed
Task 3Music Generation with AI⏭ Skipped
Task 4Object Detection & Tracking — TITAN✅ Completed

Certificate requirement: Minimum 2 tasks completed. ✅


🌐 Task 1 — Language Translation Tool

What is it?

A desktop translation application built entirely in Python — a self-contained mini Google Translate with no paid API key required.

How It Works

┌─────────────────────────────────────────────────────┐
│ User enters text │
└─────────────────────────┬───────────────────────────┘
│
┌───────────▼────────────┐
│ Select source lang │ ← Auto-detect supported
│ Select target lang │ ← 20+ languages
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ deep-translator │
│ (Google Translate │
│ engine — free) │
└───────────┬────────────┘
│
┌───────────▼────────────┐
│ Translated text │
│ displayed instantly │
└────────────────────────┘

Features

FeatureDescription
🌍 20+ LanguagesHindi, French, Spanish, Japanese, Arabic, German & more
🔍 Auto-detectDetects source language automatically
⇄ SwapOne-click swap between source and target
📋 CopyCopy translated output to clipboard
🗑 ClearClear both panels in one click
📊 Status barShows translation result live
🌙 Dark UIModern dark-themed Tkinter interface

UI Layout

┌──────────────────────────────────────────────────────┐
│ 🌐 Language Translation Tool CodeAlpha Task 1 │
│ ────────────────────────────────────────────────── │
│ │
│ From [ Auto Detect ▼ ] ⇄ To [ Hindi ▼ ] │
│ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Enter text... │ │ Translation... │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ [ Translate ➜ ] [ 📋 Copy ] [ 🗑 Clear ] │
│ ✅ Translated: English → Hindi │
└──────────────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
TkinterDesktop GUI
deep-translatorGoogle Translate engine (free, no API key)

🤖 Task 2 — FAQ Chatbot · ARIA

ARIA = AI Research & Information Assistant

What is it?

A desktop chatbot that answers technical questions across 10+ domains using NLP-powered semantic matching — not keyword matching. ARIA understands the meaning of your question, then routes it through a dual-layer intelligence system.

Dual-Layer Architecture

 User Question
│
┌───────────────▼────────────────┐
│ LAYER 1 — FAQ Bank │
│ 200 Q&A pairs across 10 domains│
│ TF-IDF Vectorization (bigrams) │
│ + Cosine Similarity matching │
└───────────────┬────────────────┘
│
┌──────────▼──────────┐
│ Score ≥ 0.20 ? │
└────┬────────────────┘
│
┌───────────┴───────────────┐
│ YES │ NO (low confidence)
▼ ▼
┌──────────────┐ ┌──────────────────────┐
│ FAQ Bank │ │ LAYER 2 — Claude │
│ Answer │ │ AI API (dynamic) │
│ [FAQ ✓] │ │ [Claude AI ✨] │
│ (instant) │ │ (any tech question)│
└──────────────┘ └──────────────────────┘

NLP Pipeline — Step by Step

User Input: "how does ML work?"
│
▼
Step 1 — Preprocessing (NLTK)
lowercase → remove punctuation → remove stopwords → stem
"how does ML work?" ──► "ml work"
│
▼
Step 2 — TF-IDF Vectorization (Scikit-learn, bigrams)
Converts text into a weighted numerical vector
TF = how often a word appears in this question
IDF = how rare the word is across all 200 FAQs
│
▼
Step 3 — Cosine Similarity
Compare user vector against all 200 FAQ vectors
Score 1.0 = identical meaning
Score 0.0 = completely unrelated
│
▼
Step 4 — Routing Decision
Score ≥ 0.20 → FAQ answer [FAQ ✓] green badge
Score < 0.20 → Claude API [AI ✨] teal badge

Knowledge Base — 200 FAQs · 10 Domains

DomainExample Questions
🤖 AI & MLWhat is deep learning? What is overfitting?
🐍 PythonWhat is list comprehension? What is a decorator?
🗄️ SQL & DatabasesWhat is a JOIN? What is ACID? What is normalization?
☕ JavaWhat is the JVM? What is multithreading in Java?
🌐 Web DevWhat is REST API? What is the DOM? What is React?
💡 LLMs & Gen AIWhat is ChatGPT? What is RAG? How do LLMs work?
☁️ Cloud & DevOpsWhat is Docker? What is Kubernetes? What is CI/CD?
🔗 NetworkingTCP vs UDP? What is DNS? What is HTTP?
🔒 CybersecurityWhat is SQL injection? What is encryption?
💻 DSAWhat is Big O notation? What is a hash table?

UI Layout

┌──────────────────────────────────────────────┐
│ 🤖 ARIA — FAQ Chatbot CodeAlpha Task 2 │
│ ────────────────────────────────────────── │
│ │
│ ARIA │
│ 👋 Hi! I'm ARIA — AI Research & │
│ Information Assistant. │
│ Ask me anything about AI, ML, Python, │
│ SQL, Java, Web Dev, Cloud & more! │
│ │
│ You │
│ what is machine learning │
│ │
│ ARIA [FAQ ✓] 🤖 AI / ML │
│ Machine Learning is a subset of AI │
│ where systems learn from data without │
│ being explicitly programmed... │
│ │
│ You │
│ explain binary search trees │
│ │
│ ARIA [Claude AI ✨] 💬 General Tech │
│ A Binary Search Tree stores nodes where │
│ left child < parent < right child... │
│ │
│ ────────────────────────────────────────── │
│ [ Type your question here... ] [Send ➜][🗑] │
│ FAQ Bank: 200 Q&As | Claude AI fallback │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
NLTKTokenization, stopword removal, stemming
Scikit-learnTF-IDF vectorizer + cosine similarity
Anthropic APIClaude AI fallback for unknown questions
TkinterDark-themed chat interface

🎯 Task 4 — Object Detection & Tracking · TITAN

TITAN = Tracking & Identification Technology for Autonomous Networks

What is it?

A real-time AI object detection and tracking system. Point your webcam at anything — TITAN detects and tracks every object it sees using YOLOv8 and assigns persistent IDs that follow objects across frames.

How It Works

┌──────────────────────────────────────────────────────┐
│ Webcam / Video File │
└────────────────────────┬─────────────────────────────┘
│ frame-by-frame
▼
┌──────────────────────────────────────────────────────┐
│ YOLOv8 Model │
│ │
│ Divides frame into a grid │
│ Each cell predicts: object class + bounding box │
│ + confidence score │
│ │
│ Detects 80 COCO object classes: │
│ person, phone, laptop, car, bottle, chair... │
└────────────────────────┬─────────────────────────────┘
│ detected boxes + scores
▼
┌──────────────────────────────────────────────────────┐
│ ByteTrack │
│ │
│ Matches detections across frames using IoU │
│ Assigns a persistent tracking ID to each object │
│ Same object keeps same ID even if briefly hidden │
└────────────────────────┬─────────────────────────────┘
│ labeled + tracked frame
▼
┌──────────────────────────────────────────────────────┐
│ OpenCV Display Window │
│ │
│ Bounding box with corner accents per object │
│ Badge: #ID ClassName Confidence% │
│ HUD overlay: FPS · Object count · Model · Controls │
└──────────────────────────────────────────────────────┘

What Gets Detected — 80 COCO Classes

People → person
Vehicles → car, motorcycle, bus, truck, bicycle
Electronics → laptop, phone, TV, keyboard, mouse
Furniture → chair, sofa, bed, dining table
Kitchen → bottle, cup, fork, knife, bowl
Animals → cat, dog, bird, horse
Outdoors → traffic light, stop sign, umbrella
Sports → ball, skateboard, tennis racket
+ many more...

Model Options

ModelFileSpeedAccuracy
YOLOv8 Nanoyolov8n.pt⚡ FastestGood
YOLOv8 Smallyolov8s.pt⚡⚡ FastBetter
YOLOv8 Mediumyolov8m.pt⚡⚡⚡ ModerateBest

All model weights (~6–50 MB) auto-download from Ultralytics on first run.

Detection Window — On-Screen Elements

┌──────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────────────────────────┐ │
│ │ #1 person 94% │ ← label badge │
│ ├ · · · · · · · · · · ┤ ← corner accents │
│ │ │ │
│ │ [person detected] │ ← bounding box │
│ │ │ │
│ ├ · · · · · · · · · · ┤ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ ← HUD (top-right) │
│ │ FPS : 29.8 │ │
│ │ Objects: 3 │ │
│ │ Model : YOLOV8N │ │
│ │ [ P ] Pause [ Q ] Quit │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘

Keyboard Controls

KeyAction
PPause / Resume detection
QQuit detection window

Control Panel Layout

┌──────────────────────────────────────────────┐
│ 🎯 TITAN CodeAlpha AI Task 4 │
│ ────────────────────────────────────────── │
│ │
│ 📹 Video Source │
│ ◉ Webcam (index 0) │
│ ○ Video File [Browse…] │
│ │
│ 🧠 YOLO Model │
│ [ YOLOv8 Nano (fastest) ▼ ] │
│ │
│ 🎚️ Confidence Threshold │
│ [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 0.45 │
│ │
│ 📊 Live Stats │
│ ┌──────────┬──────────┬───────────┐ │
│ │ FPS │ Objects │ Status │ │
│ │ 29.4 │ 4 │ Running │ │
│ └──────────┴──────────┴───────────┘ │
│ │
│ [▶ Start Detection] [■ Stop] │
│ ────────────────────────────────────────── │
│ [ P ] Pause / Resume [ Q ] Quit │
└──────────────────────────────────────────────┘

Technologies

LibraryPurpose
PythonCore language
YOLOv8 (Ultralytics)Real-time object detection
ByteTrackPersistent object ID tracking across frames
OpenCVVideo capture, frame processing, display
NumPyArray math for drawing operations
TkinterDesktop control panel UI

⚙️ Setup & Installation

Prerequisites

  • Python 3.9 or higher
  • pip
  • Internet connection (model weights + NLTK data auto-download on first run)

Install All Dependencies

pip install deep-translator nltk scikit-learn ultralytics opencv-python numpy anthropic

API Key (Task 2 only — for Claude AI fallback)

# Windowsset ANTHROPIC_API_KEY=sk-ant-...
# Mac / Linuxexport ANTHROPIC_API_KEY=sk-ant-...

Get a free key at: console.anthropic.com
Without a key, ARIA still works — it uses the FAQ bank for all answers.


▶️ How to Run

Task 1 — Language Translation Tool

cd CodeAlpha_LanguageTranslation
python translator.py

Task 2 — FAQ Chatbot (ARIA)

cd CodeAlpha_FAQChatbot
python chatbot.py

NLTK data downloads automatically on first launch (~2 sec).

Task 4 — Object Detection & Tracking (TITAN)

cd CodeAlpha_ObjectDetection
python detector.py

YOLOv8 weights auto-download on first launch. Select model in UI, click Start Detection.


📁 Project Structure

CodeAlpha-AI-Internship/
│
├── CodeAlpha_LanguageTranslation/
│ ├── translator.py ← run this
│ └── requirements.txt
│
├── CodeAlpha_FAQChatbot/
│ ├── chatbot.py ← run this
│ ├── faqs.py ← 200 Q&A knowledge base
│ └── requirements.txt
│
├── CodeAlpha_ObjectDetection/
│ ├── detector.py ← run this
│ └── requirements.txt
│
└── README.md

📚 What I Learned

🧠 NLP — Task 2

Raw text ──► Preprocessing ──► TF-IDF vector ──► Cosine score ──► Answer
"how ML?" lowercase 200-dim ≥ 0.20? FAQ
stopwords bigrams < 0.20? Claude AI
stemming
  • Text preprocessing pipeline: tokenization → stopwords → stemming
  • Why TF-IDF captures importance, not just frequency
  • How cosine similarity measures semantic closeness regardless of text length
  • When to use retrieval (FAQ) vs generation (Claude AI) — and how to combine both

👁️ Computer Vision — Task 4

Frame ──► YOLO grid ──► Box predictions ──► ByteTrack ──► Display
image NxN cells class + conf IoU match annotated
each predicts bounding box persistent ID frame
  • How YOLO divides a frame into a grid and predicts multiple boxes per cell
  • What confidence threshold does and how tuning it affects detection sensitivity
  • How ByteTrack uses Intersection over Union (IoU) to match detections across frames
  • Trade-offs between Nano (speed) vs Medium (accuracy) model sizes
  • Threading — keeping the Tkinter UI responsive while OpenCV runs on a background thread

🐍 Python & Software Engineering

  • OOP — separating DetectionSession from ControlPanel with clean callbacks
  • Threading with daemon=True and root.after() for safe UI updates
  • try/except ImportError pattern for graceful dependency handling
  • Structuring a multi-file project for clean GitHub submission

🙏 Acknowledgements

  • CodeAlpha — for the internship opportunity and well-structured task list
  • Ultralytics — for YOLOv8, the cleanest object detection API available
  • Anthropic — for Claude AI powering ARIA's dynamic fallback
  • NLTK Team — for the NLP toolkit behind ARIA's preprocessing
  • Scikit-learn — for TF-IDF and cosine similarity

📬 Contact

Pranav BBACA Graduate Modern College of Arts, Science and Commerce, Pune-16

LinkedInGitHub


Built with 🧠 + ☕ during the CodeAlpha AI Internship

Made with PythonOpen to Opportunities

About

Three AI internship projects: ARIA, an NLP FAQ chatbot using TF-IDF and cosine similarity with a Claude API fallback; a 20+ language desktop translator; and TITAN, a real-time YOLOv8 object detection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages