干燥机配套车间生产管理系统/云平台服务端
bsw215583320
2024-01-08 aa562d3b26d8b6de0f0fc0b842ba3894ebcf0945
优化模型调用
已修改2个文件
22 ■■■■■ 文件已修改
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/util/HerbUtil.java
@@ -9,6 +9,10 @@
import ai.djl.modality.cv.transform.*;
import ai.djl.modality.cv.translator.ImageClassificationTranslator;
import ai.djl.translate.Translator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
@@ -19,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
public class HerbUtil {
 
@@ -56,6 +61,9 @@
            System.out.println(output);
            result = output.topK();
        } catch (Exception e) {
            log.error("药材识别异常!!");
            log.error(input.toString());
            log.error(predictor.toString());
            e.printStackTrace();
        }
        return result;
@@ -103,7 +111,13 @@
        //随便起名
        Model model = Model.newInstance("model", Device.cpu());
        try {
            InputStream inputStream = HerbUtil.class.getClassLoader().getResourceAsStream("model34.pt");
//            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//            Resource[] resources = resolver.getResources("../pytorch/model34.pt");
            //            Resource resource = resources[0];
            File f = new File("../pytorch/model34.pt");
            InputStream inputStream = new FileInputStream(f);
           // InputStream inputStream = HerbUtil.class.getClassLoader().getResourceAsStream("model34.pt");
            if (inputStream == null) {
                throw new RuntimeException("找不到模型文件");
            }
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -95,6 +95,8 @@
            }
            InputStream inputStream = file.getInputStream();
            List<Classifications.Classification> predict = herbUtil.predict(inputStream);
            if(predict.size()>0) {
            Map<String, Double> collect = predict.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, Classifications.Classification::getProbability));
@@ -112,6 +114,10 @@
                    collect(Collectors.toList());
            return Result.ok(collect1);
            } else {
                return Result.error("AI识别服务异常");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("AI识别服务异常");