增加一个接口

物流展会算法
LAPTOP-S9HJSOEB\昊天 1 month ago
parent 3435f85495
commit bb92518d32

@ -0,0 +1,60 @@
package com.example.lxcameraapi.controller;
import com.example.lxcameraapi.conf.AppConfig;
import com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew;
import com.example.lxcameraapi.service.IndustrialCamera.opencv.OpencvService;
import com.example.lxcameraapi.service.IndustrialCamera.pojo.Pojo;
import com.example.lxcameraapi.service.IndustrialCamera.yolo.BoundingBox;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/yolo")
public class YoloController {
@Resource
ONNXServiceNew onnxServiceNew;
@Resource
OpencvService opencvService;
@Resource
AppConfig appConfig;
/**
* 在图片左上角绘制图例(按置信度排序)
*
* @return 处理结果
*/
@PostMapping("/detect")
public Pojo detect26(@RequestBody Pojo pojo) {
try {
List<BoundingBox> boxes = onnxServiceNew.detect26(pojo.getPic(),pojo.getType());
String destPath = pojo.getPic()+".jpg";
Integer index = ONNXServiceNew.getMaxClassIndex( boxes);
opencvService.drawBoundingBoxesOnImage(boxes, pojo.getPic(), destPath);
if (index ==-1){
pojo.setCode("Unrecognized");
}else if (appConfig.getYoloModelConfig().getModelMap().containsKey(pojo.getType())){
pojo.setCode(appConfig.getYoloModelConfig().getModelMap().get(pojo.getType()).getNames()[index]);
}else {
pojo.setCode(appConfig.getYoloModelConfig().getNames()[index]);
}
pojo.setPic(destPath);
log.info( "绘制成功,已保存到: " + destPath);;
} catch (Exception e) {
log.error("绘制图例失败", e);
log.info( "绘制失败: " + e.getMessage());
;
}
return pojo;
}
}

@ -10,6 +10,9 @@ public class Pojo {
private String determinePath; private String determinePath;
//结果 //结果
private Boolean result; private Boolean result;
private String code;
private String pic;
private String cameraId; private String cameraId;
private String type;
private String category; private String category;
} }

@ -14,24 +14,24 @@ logging:
file: file:
name: logs/lxcamera-api.log name: logs/lxcamera-api.log
#两台相机 #两台相机
lxCamera: #lxCamera:
- id: 1 # - id: 1
ip: 192.168.100.82 # ip: 192.168.100.82
# 1左2右 ## 1左2右
direction: 1 # direction: 1
# 图片保存路径 ## 图片保存路径
# 校准文件路径 # # 校准文件路径
calibratePath: "D://data/cj.json" # calibratePath: "D://data/cj.json"
# 品规配置文件 # # 品规配置文件
configPath: "E://go/lxCamera/conf" # configPath: "E://go/lxCamera/conf"
# 切割配置。浅货位的配置,若切割后个数多与500个,则认为有个数 ## 切割配置。浅货位的配置,若切割后个数多与500个,则认为有个数
convertConfPath: "E://pz.json" # convertConfPath: "E://pz.json"
#
#两台相机 ##两台相机
hikCamera: #hikCamera:
- id: 1 # - id: 1
ip: 192.168.100.89 # ip: 192.168.100.89
imageSize: 640 # imageSize: 640
swagger: swagger:
enabled: true enabled: true
@ -64,7 +64,7 @@ serve:
yoloModelConfig: yoloModelConfig:
# 模型地址 # 模型地址
modelPath: "E:/10/best.onnx" modelPath: "E:/data/pcdImage/best.onnx"
# 图片大小 # 图片大小
imgSize: 1024 imgSize: 1024
# 置信度 # 置信度

Loading…
Cancel
Save