{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":128792,"databundleVersionId":15494745,"sourceType":"competition"}],"dockerImageVersionId":31259,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install -q ultralytics\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-31T17:13:39.757495Z","iopub.execute_input":"2026-01-31T17:13:39.758057Z","iopub.status.idle":"2026-01-31T17:13:44.342381Z","shell.execute_reply.started":"2026-01-31T17:13:39.758015Z","shell.execute_reply":"2026-01-31T17:13:44.340911Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from ultralytics import YOLO\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-31T17:13:44.343793Z","iopub.execute_input":"2026-01-31T17:13:44.344104Z","iopub.status.idle":"2026-01-31T17:13:48.137919Z","shell.execute_reply.started":"2026-01-31T17:13:44.344069Z","shell.execute_reply":"2026-01-31T17:13:48.136310Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model = YOLO(\"yolov8n.pt\")  \n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-31T17:13:48.139611Z","iopub.execute_input":"2026-01-31T17:13:48.140297Z","iopub.status.idle":"2026-01-31T17:13:48.212018Z","shell.execute_reply.started":"2026-01-31T17:13:48.140206Z","shell.execute_reply":"2026-01-31T17:13:48.210472Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install -q ultralytics\n\nfrom ultralytics import YOLO\nimport pandas as pd\nimport os\n\nmodel = YOLO(\"yolov8n.pt\")\n\ntest_folder = \"/kaggle/input/vista26/Vistas Dataset Public/Vistas Dataset Public/test\"\n\n# 🔥 Run prediction on entire folder at once\nresults = model.predict(\n    source=test_folder,\n    imgsz=640,\n    conf=0.25,\n    save=False,\n    stream=True   # important\n)\n\nrows = []\n\nfor r in results:\n    img_name = os.path.basename(r.path)\n\n    if r.boxes is None:\n        continue\n\n    for box in r.boxes:\n        cls = int(box.cls[0])\n        x_center, y_center, w, h = box.xywhn[0].tolist()\n        rows.append([img_name, cls, x_center, y_center, w, h])\n\ndf = pd.DataFrame(rows, columns=[\"image_id\",\"class\",\"x_center\",\"y_center\",\"width\",\"height\"])\ndf.to_csv(\"/kaggle/working/submission.csv\", index=False)\n\nprint(\"✅ Submission ready:\", len(df), \"detections\")\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-31T17:18:47.911974Z","iopub.execute_input":"2026-01-31T17:18:47.912382Z","iopub.status.idle":"2026-01-31T18:18:57.204119Z","shell.execute_reply.started":"2026-01-31T17:18:47.912335Z","shell.execute_reply":"2026-01-31T18:18:57.202608Z"}},"outputs":[],"execution_count":null}]}