增加一个接口

物流展会算法
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 Boolean result;
private String code;
private String pic;
private String cameraId;
private String type;
private String category;
}

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

Loading…
Cancel
Save