DAMO-YOLO手机检测结果导出:CSV/Excel格式检测数据批量生成教程
DAMO-YOLO手机检测结果导出CSV/Excel格式检测数据批量生成教程1. 项目背景与需求场景在日常的手机检测工作中我们经常遇到这样的需求不仅要看到图片上的检测框还需要将检测结果整理成结构化的数据表格。比如安防监控需要统计每个时间段检测到的手机数量生成日报表考场管理要导出作弊嫌疑记录作为处理依据数据分析需要批量处理大量图片分析手机使用规律传统的做法是一张张截图、手动记录既费时又容易出错。而DAMO-YOLO手机检测系统自带的Web界面虽然能显示检测结果却没有提供批量导出功能。这就是本文要解决的问题教你如何批量导出DAMO-YOLO的检测结果生成规范的CSV和Excel格式数据报告。2. 环境准备与快速部署2.1 系统要求确认在开始之前请确保你的系统满足以下要求已部署DAMO-YOLO手机检测系统访问地址通常是http://服务器IP:7860Python 3.7 环境基本的命令行操作知识2.2 安装必要的依赖包打开终端执行以下命令安装所需库# 安装数据处理相关库 pip install pandas openpyxl requests pillow # 验证安装 python -c import pandas; print(pandas版本:, pandas.__version__) python -c import openpyxl; print(openpyxl安装成功)这些库的作用分别是pandas数据处理核心库用于生成表格数据openpyxlExcel文件读写支持requests网络请求用于调用检测APIpillow图片处理用于准备检测图片3. 核心代码实现3.1 单张图片检测结果获取首先我们需要编写一个函数来获取单张图片的检测结果import requests import json import base64 from PIL import Image import io def detect_single_image(image_path, server_urlhttp://localhost:7860): 单张图片检测函数 :param image_path: 图片路径 :param server_url: 检测服务器地址 :return: 检测结果列表 # 读取并编码图片 with open(image_path, rb) as image_file: image_data base64.b64encode(image_file.read()).decode(utf-8) # 准备请求数据 payload { data: [ fdata:image/jpeg;base64,{image_data} ] } # 发送检测请求 try: response requests.post( f{server_url}/run/predict, jsonpayload, timeout30 ) response.raise_for_status() # 解析检测结果 result response.json() detections result[data][0] if result[data] else [] return detections except Exception as e: print(f检测失败: {e}) return []3.2 检测结果解析与格式化获取到原始检测数据后我们需要将其解析为结构化的信息def parse_detection_results(detections, image_name): 解析检测结果并格式化 :param detections: 原始检测数据 :param image_name: 图片名称 :return: 格式化后的检测结果列表 results [] if not detections: return results # 解析每个检测框 for i, detection in enumerate(detections): # 检测结果格式: [x_min, y_min, x_max, y_max, confidence, class_id] if len(detection) 6: result_item { 图片名称: image_name, 检测ID: i 1, 置信度: round(float(detection[4]) * 100, 2), # 转换为百分比 边界框Xmin: int(detection[0]), 边界框Ymin: int(detection[1]), 边界框Xmax: int(detection[2]), 边界框Ymax: int(detection[3]), 检测时间: datetime.now().strftime(%Y-%m-%d %H:%M:%S) } results.append(result_item) return results3.3 批量处理与数据导出现在编写批量处理函数支持处理整个文件夹的图片import os import pandas as pd from datetime import datetime def batch_process_images(image_folder, output_file, server_urlhttp://localhost:7860): 批量处理图片并导出结果 :param image_folder: 图片文件夹路径 :param output_file: 输出文件路径 :param server_url: 检测服务器地址 all_results [] supported_formats [.jpg, .jpeg, .png, .bmp] # 收集所有图片文件 image_files [] for file_name in os.listdir(image_folder): if any(file_name.lower().endswith(fmt) for fmt in supported_formats): image_files.append(file_name) print(f找到 {len(image_files)} 张待处理图片) # 逐张处理图片 for i, file_name in enumerate(image_files, 1): image_path os.path.join(image_folder, file_name) print(f正在处理第 {i}/{len(image_files)} 张: {file_name}) # 获取检测结果 detections detect_single_image(image_path, server_url) # 解析结果 parsed_results parse_detection_results(detections, file_name) all_results.extend(parsed_results) # 显示进度 if parsed_results: print(f → 检测到 {len(parsed_results)} 个手机) else: print( → 未检测到手机) # 导出结果 if all_results: export_to_file(all_results, output_file) print(f\n处理完成共检测到 {len(all_results)} 个手机) print(f结果已导出到: {output_file}) else: print(\n未检测到任何手机)3.4 多种格式导出功能实现支持CSV和Excel两种格式的导出功能def export_to_file(results, output_file): 将结果导出为文件 :param results: 检测结果列表 :param output_file: 输出文件路径 # 转换为DataFrame df pd.DataFrame(results) # 根据文件扩展名选择导出格式 if output_file.lower().endswith(.csv): # CSV格式导出 df.to_csv(output_file, indexFalse, encodingutf-8-sig) print(已生成CSV格式报告) elif output_file.lower().endswith((.xlsx, .xls)): # Excel格式导出 with pd.ExcelWriter(output_file, engineopenpyxl) as writer: df.to_excel(writer, sheet_name手机检测结果, indexFalse) # 获取工作表对象进行格式调整 worksheet writer.sheets[手机检测结果] # 调整列宽 for column in worksheet.columns: max_length 0 column_letter column[0].column_letter for cell in column: try: if len(str(cell.value)) max_length: max_length len(str(cell.value)) except: pass adjusted_width min(max_length 2, 50) worksheet.column_dimensions[column_letter].width adjusted_width print(已生成Excel格式报告) else: raise ValueError(不支持的文件格式请使用 .csv 或 .xlsx)4. 完整使用示例4.1 创建配置文件建议创建一个配置文件来管理常用参数# config.py CONFIG { server_url: http://localhost:7860, # 检测服务器地址 image_folder: ./images, # 图片文件夹路径 output_csv: ./results/detection_results.csv, # CSV输出路径 output_excel: ./results/detection_report.xlsx, # Excel输出路径 supported_formats: [.jpg, .jpeg, .png, .bmp] }4.2 主程序示例创建一个简单的主程序来调用批量处理功能# main.py from detection_export import batch_process_images import os def main(): # 创建输出目录 os.makedirs(./results, exist_okTrue) print( DAMO-YOLO手机检测结果批量导出工具 ) print(开始处理图片...) # 批量处理并导出CSV batch_process_images( image_folder./images, output_file./results/手机检测报告.csv, server_urlhttp://localhost:7860 ) # 也可以导出Excel格式 batch_process_images( image_folder./images, output_file./results/手机检测报告.xlsx, server_urlhttp://localhost:7860 ) print(批量处理完成) if __name__ __main__: main()4.3 命令行使用示例如果你更喜欢命令行操作可以这样使用# 直接运行Python脚本 python detection_export.py --input ./images --output ./results/report.csv # 或者使用更详细的参数 python detection_export.py \ --input ./监控图片 \ --output ./日报/手机检测记录_20231201.xlsx \ --server http://192.168.1.100:78605. 高级功能扩展5.1 添加统计汇总功能在导出数据的基础上我们可以添加统计功能def add_statistical_summary(results, output_file): 添加统计汇总信息 df pd.DataFrame(results) # 基础统计 total_detections len(df) unique_images df[图片名称].nunique() avg_confidence df[置信度].mean() # 按图片分组统计 image_stats df.groupby(图片名称).agg({ 检测ID: count, 置信度: mean }).rename(columns{检测ID: 检测数量, 置信度: 平均置信度}) # 导出带有多工作表的工作簿 with pd.ExcelWriter(output_file, engineopenpyxl) as writer: # 详细数据 df.to_excel(writer, sheet_name详细数据, indexFalse) # 统计摘要 summary_data { 统计项: [总检测数, 图片数量, 平均置信度], 数值: [total_detections, unique_images, round(avg_confidence, 2)] } pd.DataFrame(summary_data).to_excel(writer, sheet_name统计摘要, indexFalse) # 按图片统计 image_stats.to_excel(writer, sheet_name按图片统计) print(已生成带统计汇总的详细报告)5.2 定时自动导出脚本对于需要定期导出的场景可以创建定时任务# auto_export.py import schedule import time from detection_export import batch_process_images def daily_export(): 每日自动导出任务 date_str time.strftime(%Y%m%d) output_file f./daily_reports/手机检测_{date_str}.xlsx print(f开始执行每日导出任务: {time.strftime(%Y-%m-%d %H:%M:%S)}) batch_process_images(./daily_images, output_file) print(f每日导出任务完成: {output_file}) # 设置每天凌晨1点执行 schedule.every().day.at(01:00).do(daily_export) print(定时导出服务已启动...) while True: schedule.run_pending() time.sleep(60)6. 实际应用案例6.1 考场监控数据导出某学校使用DAMO-YOLO系统监控考场每天考试结束后需要导出检测报告# exam_monitoring.py def export_exam_report(exam_date, exam_room): 导出考场监控报告 image_folder f/监控照片/{exam_date}/{exam_room} output_file f/考试报告/{exam_date}_{exam_room}_手机检测.xlsx # 处理图片并导出 batch_process_images(image_folder, output_file) # 添加额外信息 add_exam_metadata(output_file, exam_date, exam_room) print(f{exam_date} {exam_room}考场报告已生成) def add_exam_metadata(excel_file, exam_date, exam_room): 添加考场元数据信息 # 这里可以添加具体的考场信息到Excel文件中 pass6.2 企业安全审计报告企业安全部门需要按月生成手机使用情况审计报告# security_audit.py def generate_monthly_audit(month): 生成月度安全审计报告 # 收集该月所有图片 monthly_images gather_monthly_images(month) # 批量处理 output_file f/安全审计/手机使用报告_{month}.xlsx batch_process_images(monthly_images, output_file) # 生成可视化图表 add_audit_charts(output_file) print(f{month}月度安全审计报告已生成)7. 总结与建议通过本教程你已经学会了如何将DAMO-YOLO手机检测系统的结果批量导出为结构化的CSV和Excel格式数据。这种方法可以大大提高工作效率特别适用于批量处理场景需要处理大量图片时自动化导出节省大量时间数据归档需求生成规范的电子档案便于长期保存和查询统计分析用途导出结构化数据后可以进一步进行数据分析和可视化系统集成应用导出的数据可以与其他管理系统集成实用建议对于日常使用建议使用CSV格式兼容性好且文件较小需要正式报告时使用Excel格式可以包含多工作表和格式设置定期清理旧的图片文件避免存储空间不足重要数据建议同时备份CSV和Excel两种格式下一步学习方向学习使用pandas进行更复杂的数据分析探索将导出功能集成到Web界面中研究自动邮件发送报告的功能现在你已经掌握了DAMO-YOLO检测结果导出的全套技能快去尝试处理你自己的图片数据吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

YOLO-V5数据增强实战:小样本数据集训练效果提升技巧

YOLO-V5数据增强实战:小样本数据集训练效果提升技巧

YOLO-V5数据增强实战:小样本数据集训练效果提升技巧 如果你正在用YOLO-V5训练自己的目标检测模型,但手头只有几百张甚至几十张标注图片,是不是经常遇到这样的问题: 模型训练几轮就过拟合,在训练集上表现很好&#xf…

2026/5/17 9:04:34 阅读更多 →
AgentCPM深度研报助手新手指南:避开常见坑,让你的第一份AI报告就可用

AgentCPM深度研报助手新手指南:避开常见坑,让你的第一份AI报告就可用

AgentCPM深度研报助手新手指南:避开常见坑,让你的第一份AI报告就可用 1. 从“能用”到“好用”,只差一份避坑指南 想象一下这个场景:你终于找到了一个号称能本地运行、保护隐私、还能生成专业报告的AI工具。你满怀期待地安装启动…

2026/7/4 3:40:46 阅读更多 →
1. 缠论可视化插件:解决交易者三大核心痛点的技术方案

1. 缠论可视化插件:解决交易者三大核心痛点的技术方案

1. 缠论可视化插件:解决交易者三大核心痛点的技术方案 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 为什么90%的缠论学习者都在重复无效劳动? 当你在K线图上手动绘制第17根线段…

2026/7/3 18:18:29 阅读更多 →

最新新闻

【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利

【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利

【强烈推荐收藏】2026网络安全:国家战略支柱与最确定职业红利 文章指出2026年网络安全已成为国家战略核心,新《网络安全法》实施加大处罚力度,产业市场规模扩大与人才缺口并存。两会明确网络安全是数字时代的刚需与国家战略支柱,…

2026/7/4 20:31:41 阅读更多 →
基于YOLOv5的道路损坏实时检测系统开发实践

基于YOLOv5的道路损坏实时检测系统开发实践

1. 项目概述:基于YOLOv5的道路损坏识别系统道路损坏检测一直是交通基础设施维护中的痛点问题。传统人工巡检方式效率低下且成本高昂,而基于计算机视觉的自动化检测方案正在逐步改变这一现状。我们开发的这套系统采用YOLOv5目标检测框架,能够实…

2026/7/4 20:29:41 阅读更多 →
Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能

Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能

Codex 实战 Skills:发生 Bug 时,用 Skill 自动捕获堆栈并格式化推送到群聊的预警技能 在现代软件工程的敏捷开发与运维体系中,故障的发现速度直接决定了系统的恢复时间(MTTR)。当生产环境发生异常时,传统的日志查看方式往往存在滞后性,而基于即时通讯工具(如飞书、钉钉…

2026/7/4 20:27:41 阅读更多 →
三步搞定E-Hentai漫画收藏:免费批量下载终极指南

三步搞定E-Hentai漫画收藏:免费批量下载终极指南

三步搞定E-Hentai漫画收藏:免费批量下载终极指南 E-Hentai-Downloader是一款专为漫画爱好者设计的智能下载工具,让你轻松将E-Hentai画廊内容批量打包为ZIP文件,实现漫画资源的高效管理与永久收藏。无需复杂操作,只需简单几步即可…

2026/7/4 20:27:41 阅读更多 →
[论文学习]吸引力元数据攻击:诱导LLM智能体调用恶意工具深度解析

[论文学习]吸引力元数据攻击:诱导LLM智能体调用恶意工具深度解析

Attractive Metadata Attack: Inducing LLM Agents to Invoke Malicious Tools 📖 概述 论文揭示了一种新型且隐蔽的LLM智能体安全威胁——吸引力元数据攻击(Attractive Metadata Attack, AMA) :攻击者通过操纵恶意工具的名称、描…

2026/7/4 20:27:41 阅读更多 →
【研发类-框架和库Skills】azure-appconfiguration-py 技能

【研发类-框架和库Skills】azure-appconfiguration-py 技能

Azure App Configuration SDK for Python。用于集中式配置管理、功能标志和动态设置。 技能概述 azure-appconfiguration-py 技能提供了Azure App Configuration SDK for Python的完整使用指南。该技能帮助开发者使用Python SDK进行集中式配置管理、功能标志管理和动态设置&a…

2026/7/4 20:25:41 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻