{"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":"nvidiaTeslaT4","dataSources":[{"sourceType":"competition","sourceId":114094,"databundleVersionId":13610510},{"sourceType":"datasetVersion","sourceId":15059433,"datasetId":9641227,"databundleVersionId":15940437}],"dockerImageVersionId":31287,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"#aqui é pra instalar a ferramenta do YOLO\n\n!pip install -U ultralytics","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2026-03-05T19:37:14.610344Z","iopub.execute_input":"2026-03-05T19:37:14.611076Z","iopub.status.idle":"2026-03-05T19:37:21.169819Z","shell.execute_reply.started":"2026-03-05T19:37:14.611045Z","shell.execute_reply":"2026-03-05T19:37:21.168994Z"},"collapsed":true,"jupyter":{"outputs_hidden":true}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#importando o modelo da YOLO\n\nfrom ultralytics import YOLO\n\nmodel = YOLO(\"yolo26n.pt\")  # Load a pretrained YOLO model\nmodel.train(data=\"/kaggle/input/datasets/alexanderpov/picanha/yolo_params_corrigido.yaml\", epochs=100, patience=10)  # Train on custom dataset","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-03-05T19:37:21.171584Z","iopub.execute_input":"2026-03-05T19:37:21.171858Z","iopub.status.idle":"2026-03-05T19:47:30.518522Z","shell.execute_reply.started":"2026-03-05T19:37:21.171830Z","shell.execute_reply":"2026-03-05T19:47:30.517575Z"},"collapsed":true,"jupyter":{"outputs_hidden":true}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport pandas as pd\nfrom ultralytics import YOLO\n\n# Carregar o modelo treinado\ncaminho_modelo = '/kaggle/working/runs/detect/train/weights/best.pt' \nmodel = YOLO(caminho_modelo)\n\n#Caminho para a pasta contendo as imagens de teste\npasta_teste = '/kaggle/input/competitions/grocery-items-multi-class-object-detection/testImages/testImages/images'\n\n#  Fazer a inferência em lote\nresultados = model.predict(source=pasta_teste, conf=0.25, stream=True)\n\n#  Estrutura para armazenar os dados da subissmi~ao que vamos usar \ndados_submissao = []\n\n# 5. Iterar sobre os resultados\nfor resultado in resultados:\n    nome_arquivo = os.path.basename(resultado.path)\n    image_id = os.path.splitext(nome_arquivo)[0]\n    \n    pred_str = \"\"\n    \n    if len(resultado.boxes) > 0:\n        for box in resultado.boxes:\n            classe = int(box.cls[0].item())\n            confianca = box.conf[0].item()\n            x, y, w, h = box.xywhn[0].tolist()\n            \n            pred_str += f\"{classe} {confianca} {x} {y} {w} {h} \"\n    \n    # Truque do espaço em branco mantido para evitar o erro de 'null values'\n    pred_final = pred_str.strip()\n    if pred_final == \"\":\n        pred_final = \" \"  \n    \n    # CORREÇÃO AQUI: Nome da coluna exatamente como o Kaggle pediu\n    dados_submissao.append({\n        \"image_id\": image_id,\n        \"prediction_string\": pred_final \n    })\n#gerar os dados que vamos salvar \ndf_submissao = pd.DataFrame(dados_submissao)\ndf_submissao.to_csv('submission.csv', index=False)\n\nprint(\"Arquivo 'submission.csv' gerado com a coluna renomeada corretamente!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-04-07T03:35:49.493218Z","iopub.execute_input":"2026-04-07T03:35:49.493489Z","iopub.status.idle":"2026-04-07T03:35:50.732618Z","shell.execute_reply.started":"2026-04-07T03:35:49.493455Z","shell.execute_reply":"2026-04-07T03:35:50.731590Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df=pd.read_csv(\"/kaggle/working/submission.csv\")\ndf.head()\n\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-04-07T03:35:50.733136Z","iopub.status.idle":"2026-04-07T03:35:50.733413Z","shell.execute_reply.started":"2026-04-07T03:35:50.733297Z","shell.execute_reply":"2026-04-07T03:35:50.733312Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}