人工智能识别图片食物

一、准备食物图片(橘子和苹果)

二、识别学习关键代码编写

public static void study() throws Exception {//学习

Picture picture = new Picture();//图片解析类 图片(文件)-三通道矩阵

Config config = new Config();//现有的环境业务进行参数配置

config.setTypeNub(2);//设置类别数量

config.setBoxSize(125);//设置物体大小 单位像素 125*125 矩形

config.setPictureNumber(5);//设置每个种类训练图片数量

config.setPth(0.55);//设置可信概率,只有超过可信概率阈值,得出的结果才是可信的0-1

config.setShowLog(true);//输出学习时打印数据

Distinguish distinguish = new Distinguish(config);//识别类

distinguish.setBackGround(picture.getThreeMatrix("F:\\demo\\AI\\test\\image\\back.jpg"));//塞入背景图片

List<FoodPicture> foodPictures = new ArrayList<>();//所有识别物体的标注集合

for (int i = 1; i < 3; i++) {//加载图片全过程

FoodPicture foodPicture = new FoodPicture();

foodPictures.add(foodPicture);

List<PicturePosition> picturePositionList = new ArrayList<>();

foodPicture.setId(i + 1);//该图片类别

foodPicture.setPicturePositionList(picturePositionList);

for (int j = 1; j < 6; j++) {

String name;

if (i == 1) {

name = "a";

} else {

name = "b";

}

PicturePosition picturePosition = new PicturePosition();

picturePosition.setUrl("F:\\demo\\AI\\test\\image\\" + name + i + ".jpg");

picturePosition.setNeedCut(false);//是否需要剪切,充满全图不需要

picturePositionList.add(picturePosition);

}

}

distinguish.studyImage(foodPictures);//进行学习 耗时较长、、、、

Model model = distinguish.getModel();

System.out.println(JSON.toJSONString(model));

//识别过程

for (int i = 1; i < 8; i++) {

System.out.println("i====" + i);

ThreeChannelMatrix t = picture.getThreeMatrix("F:\\demo\\AI\\test\\image\\t" + i + ".jpg");

Map<Integer, Double> map = distinguish.distinguish(t);

for (Map.Entry<Integer, Double> entry : map.entrySet()) {

System.out.println(entry.getKey() + ":" + entry.getValue());

}

}

}

三、识别流程说明

配置识别器------添加食物图片获取模型数据------通过模型数据识别图片食物

四、测试成果展示

猜你喜欢

转载自blog.csdn.net/weixin_42496466/article/details/128786856