Spaces:
Runtime error
Runtime error
| import torch | |
| from ultralytics import YOLO | |
| import cv2 | |
| import numpy as np | |
| import os | |
| import threading | |
| import gradio as gr | |
| from telegram import Update | |
| from telegram.ext import Updater, CommandHandler, MessageHandler, Filters | |
| from PIL import Image | |
| # Load YOLO model | |
| model = YOLO("yolov8n.pt") # Make sure you have this model | |
| # Telegram Bot Token | |
| TOKEN = "7686883158:AAHiw5ad5P-eZVjymLuwJ1o2sX6Zdpen_v4" | |
| # Function for Telegram bot | |
| async def start(update: Update, context: CallbackContext) -> None: | |
| await update.message.reply_text("Send me an image, and I'll detect objects in it!") | |
| async def detect_objects(update: Update, context: CallbackContext) -> None: | |
| photo = await update.message.photo[-1].get_file() | |
| await photo.download_to_drive("input.jpg") | |
| # Run YOLO detection | |
| results = model("input.jpg") | |
| # Save output image | |
| for result in results: | |
| result.save("output.jpg") | |
| # Send result back | |
| await update.message.reply_photo(photo=open("output.jpg", "rb")) | |
| # Run Telegram bot in a separate thread | |
| def run_telegram_bot(): | |
| app = Application.builder().token(TOKEN).build() | |
| app.add_handler(CommandHandler("start", start)) | |
| app.add_handler(MessageHandler(filters.PHOTO, detect_objects)) | |
| print("Telegram bot is running...") | |
| app.run_polling() | |
| # Gradio function | |
| def process_image(img): | |
| img_path = "gradio_input.jpg" | |
| img.save(img_path) | |
| # Run YOLO model | |
| results = model(img_path) | |
| # Save the output | |
| output_path = "gradio_output.jpg" | |
| for result in results: | |
| result.save(output_path) | |
| return output_path | |
| # Launch Gradio web app | |
| def launch_gradio(): | |
| interface = gr.Interface(fn=process_image, inputs="image", outputs="image", title="YOLO Object Detection") | |
| interface.launch() | |
| # Run both Telegram bot and Gradio | |
| if __name__ == "__main__": | |
| threading.Thread(target=run_telegram_bot, daemon=True).start() | |
| launch_gradio() | |