# VisionForgeSDK **Repository Path**: anpu_1/VisionForgeSDK ## Basic Information - **Project Name**: VisionForgeSDK - **Description**: VisionForge SDK 为用户提供新一代人工智能解决方案,释放数据的真正潜力; 1、火灾监测识别系统:可用于森林、厂区等防火区域; 2、垃圾监测识别系统:支持常见垃圾监测; 3、人脸轨迹提取系统:根据视频画面提取人员的时间活动轨迹,追踪目标; 4、智慧工地监测系统:实时监控施工场景,保障工人安全,提高管理效率; 5、头盔监测识别系统:头盔佩戴等 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-23 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VisionForgeSDK #### 介绍 VisionForge SDK 为用户提供新一代人工智能解决方案,释放数据的真正潜力; 1、火灾监测识别系统:可用于森林、厂区等防火区域; 2、垃圾监测识别系统:支持常见垃圾监测; 3、人脸轨迹提取系统:根据视频画面提取人员的时间活动轨迹,追踪目标; 4、智慧工地监测系统:实时监控施工场景,保障工人安全,提高管理效率; 5、头盔监测识别系统:头盔佩戴等 #### 软件架构 软件架构说明:支持python sdk/C# SDK/java SDK,根据需要选择合适的调用示例,下面提供了部分枚举值。平台会不定期升级,以最新的文档为准。 ### SDK目录介绍 | SDK类型 | 文件名 | 推荐开发工具 | |---------|--------|-------------| | pythonSDK | VisionForge SDK_python.py | Pycharm | | csharpSDK | C# SDK | vs2022 | | javaSDK | java SDK | IdeaJ | ### 更多接口文档地址: VisionForgeSDK功能说明和使用必读 http://14.103.236.44:8002/web/#/60/572 ### 接口测试地址 接口地址1(主):http://14.103.236.44:8001/api/ai/detect ### 节点服务器 为了sdk测试,平台开放了测试节点服务器,供sdk调试; ### python sdk 部分枚举值 ```python detect_static_enum_dict = { # 英文放到中文前面,中文放到英文后面 "001fire": "001火灾检测", "002garbage": "002垃圾检测", "003faceDetect": "003人脸检测", "004callPhone": "004打电话识别", "005fight": "005人员打架", "006safeHat": "006安全帽识别", "007smoke": "007吸烟识别", "008walkerMan": "008行人识别", "009maskDetect": "009口罩检测", "010fallDetect": "010人员跌倒识别", "011crossFenceDetect": "011翻越围栏识别", "012streetVendorDetect": "012街头流动商贩识别" } ``` ### C#部分枚举值 ```csharp //将上面的枚举值定义成字典列表 public static Dictionary DetectStaticEnumDict = new Dictionary() { //英文放到中文前面,中文放到英文后面 { "001fire", "001火灾检测"}, { "002garbage", "002垃圾检测"}, { "003faceDetect", "003人脸检测"}, { "004callPhone", "004打电话识别"}, { "005fight", "005人员打架"}, { "006safeHat", "006安全帽识别"}, { "007smoke", "007吸烟识别"}, { "008walkerMan", "008行人识别"}, { "009maskDetect", "009口罩检测"}, { "010fallDetect", "010人员跌倒识别"}, { "011crossFenceDetect", "011翻越围栏识别"}, { "012streetVendorDetect", "012街头流动商贩识别"}, }; ``` # AI火灾检测API调用说明文档(为例) ## 1. 接口概述 本文档介绍AI火灾检测API的调用方法、参数说明、返回结果格式及使用示例。该API用于检测图片中的火灾目标,并返回检测结果。 ## 2. API基本信息 - **接口URL**: `http://127.0.0.1:18001/api/ai/detect` - **请求方法**: POST - **请求类型**: `multipart/form-data` - **功能描述**: 上传图片进行火灾检测 ## 3. 请求参数 | 参数名 | 类型 | 必填 | 描述 | | ------ | ---- | ---- | ------------------------------------------------ | | file | file | 是 | 要检测的图片文件,支持常见图片格式(JPG、PNG等) | ## 4. 返回结果格式说明 API返回JSON格式的数据,包含以下字段: ```json { "original_url": "原图访问URL", "detected_url": "检测结果图访问URL", "detections": [ { "class": "目标类别", "class_id": 类别ID, "confidence": 置信度, "bbox": { "xmin": 左上角X坐标, "ymin": 左上角Y坐标, "xmax": 右下角X坐标, "ymax": 右下角Y坐标 } } ], "image_size": { "width": 图片宽度, "height": 图片高度 } } ``` ### 字段含义解释 | 字段 | 中文含义 | 数据类型 | 说明 | | ------------------------ | ------------------ | -------- | ---------------------------- | | original_url | 原图访问地址 | 字符串 | 服务器保存的原始图片访问URL | | detected_url | 检测结果图访问地址 | 字符串 | 带检测框的结果图片访问URL | | detections | 检测到的目标列表 | 数组 | 包含所有检测到的目标信息 | | detections[0].class | 目标类别名称 | 字符串 | 检测到的目标类型,如火(Fire) | | detections[0].class_id | 目标类别ID | 整数 | 目标类别的数字标识符 | | detections[0].confidence | 检测置信度 | 浮点数 | 目标检测的可信度,范围0-1 | | detections[0].bbox | 边界框坐标 | 对象 | 目标在图片中的位置信息 | | detections[0].bbox.xmin | 左上角X坐标 | 浮点数 | 边界框左上角水平坐标 | | detections[0].bbox.ymin | 左上角Y坐标 | 浮点数 | 边界框左上角垂直坐标 | | detections[0].bbox.xmax | 右下角X坐标 | 浮点数 | 边界框右下角水平坐标 | | detections[0].bbox.ymax | 右下角Y坐标 | 浮点数 | 边界框右下角垂直坐标 | | image_size | 图片尺寸信息 | 对象 | 原始图片的尺寸信息 | | image_size.width | 图片宽度 | 整数 | 图片的像素宽度 | | image_size.height | 图片高度 | 整数 | 图片的像素高度 | ## 5. 错误响应格式 当请求失败时,API会返回HTTP状态码和错误信息: ```json { "detail": "错误信息描述" } ``` 常见错误码: - **400 Bad Request**: 无效的请求参数,如上传的文件不是图片 - **500 Internal Server Error**: 服务器内部错误,如处理图片时发生异常 ## 6. 调用示例 ### Python调用示例 ```python import requests # 图片文件路径 image_path = "E:\\PyProject_yywl\\01ultralytics-main-garbage\\SDKDemo\\pythonWeb\\images\\fire\\test1.jpg" # API URL url = "http://127.0.0.1:18001/api/ai/detect" # 发送请求 with open(image_path, "rb") as f: files = {"file": f} try: response = requests.post(url, files=files) response.raise_for_status() # 检查请求是否成功 # 处理返回结果 result = response.json() print("检测结果:") print(f"原图URL: {result['original_url']}") print(f"检测结果图URL: {result['detected_url']}") print(f"图片尺寸: {result['image_size']['width']}x{result['image_size']['height']}") print(f"检测到目标数量: {len(result['detections'])}") # 打印每个检测目标的信息 for i, detection in enumerate(result['detections'], 1): print(f"\n目标 {i}:") print(f" 类别: {detection['class']}") print(f" 类别ID: {detection['class_id']}") print(f" 置信度: {detection['confidence']:.4f}") print(f" 位置: ({detection['bbox']['xmin']:.2f}, {detection['bbox']['ymin']:.2f}) - ({detection['bbox']['xmax']:.2f}, {detection['bbox']['ymax']:.2f})") except requests.exceptions.RequestException as e: print(f"请求出错: {e}") except Exception as e: print(f"处理结果时出错: {e}") ``` ### Java调用示例 ```java import java.io.File; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class AIDetectionExample { public static void main(String[] args) { String url = "http://127.0.0.1:18001/api/ai/detect"; String imagePath = "E:\\PyProject_yywl\\01ultralytics-main-garbage\\SDKDemo\\pythonWeb\\images\\fire\\test1.jpg"; try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(url); // 创建多部分实体 File imageFile = new File(imagePath); HttpEntity entity = MultipartEntityBuilder.create() .addPart("file", new FileBody(imageFile)) .build(); httpPost.setEntity(entity); // 发送请求 try (CloseableHttpResponse response = httpClient.execute(httpPost)) { // 处理响应 String responseBody = EntityUtils.toString(response.getEntity()); System.out.println("检测结果: " + responseBody); } } catch (IOException e) { e.printStackTrace(); } } } ``` ## 7. 返回结果示例解析 以下是一个实际检测结果的中文解析: ```json { "original_url": "http://127.0.0.1:18001/uploads/20251023/source/d3ae55f55e874476bed326c0d23e5f90.jpg", "detected_url": "http://127.0.0.1:18001/uploads/20251023/out/detected_d3ae55f55e874476bed326c0d23e5f90.jpg", "detections": [ { "class": "Fire", "class_id": 0, "confidence": 0.5132430791854858, "bbox": { "xmin": 184.92662048339844, "ymin": 132.24197387695312, "ymax": 477.4892883300781 } }, { "class": "Fire", "class_id": 0, "confidence": 0.4655291438102722, "bbox": { "xmin": 193.09963989257812, "ymin": 139.3154296875, "xmax": 364.9742126464844, "ymax": 410.71142578125 } } ], "image_size": { "width": 640, "height": 640 } } ``` **中文解析说明:** 1. **图片信息**: - 原始图片已保存并可通过URL `http://127.0.0.1:18001/uploads/20251023/source/d3ae55f55e874476bed326c0d23e5f90.jpg` 访问 - 带检测框的结果图片可通过URL `http://127.0.0.1:18001/uploads/20251023/out/detected_d3ae55f55e874476bed326c0d23e5f90.jpg` 访问 - 图片尺寸为 640×640 像素 2. **检测到的目标**: - 总共检测到2个火灾目标 3. **第一个目标**: - 类别:Fire(火灾) - 类别ID:0 - 置信度:约51.32%(0.5132) - 位置:左上角坐标(184.93, 132.24),右下角坐标缺失xmax值 4. **第二个目标**: - 类别:Fire(火灾) - 类别ID:0 - 置信度:约46.55%(0.4655) - 位置:左上角坐标(193.10, 139.32),右下角坐标(364.97, 410.71) ## 8. 注意事项 1. 图片大小不宜过大,建议控制在10MB以内以提高处理速度 2. 置信度值越高,表示检测结果越可靠 3. 建议根据实际应用场景设置合理的置信度阈值进行筛选 4. 为保证服务稳定性,请勿频繁发送大量请求 5. 服务器端会定期清理历史图片数据,请及时保存重要数据 ## 9. 故障排查 如果遇到API调用问题,可以从以下几个方面排查: 1. 确认服务是否正常运行(检查端口18001是否被占用) 2. 验证API URL是否正确(包含/api前缀) 3. 检查图片文件格式是否支持 4. 查看服务器日志获取详细错误信息 ## 10. 联系与支持 如有更多问题,请联系技术支持团队。 技术支持:QQ:867928135