人工智能识别图片食物

news2025/4/16 5:56:39

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

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

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());

}

}

}

三、识别流程说明

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

四、测试成果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文了解WebSocket及Springboot集成WebSocket

文章目录WebSocket是什么WebSocket通信原理和机制WebSocket协议是什么WebSocket协议和Http协议有什么区别WebSocket常用在那些场景Springboot集成WebSocketpom依赖java相关代码configcomponenthtml代码页面访问效果WebSocket是什么 &#x1f34a;WebSocket是一种网络通信协议&…

Linux C编程

编写C代码 编辑器&#xff1a;vim&#xff0c;编写.c文件 编译 gcc 源文件 -o 生成可执行文件名 gcc -c&#xff1a;只编译&#xff0c;不链接&#xff0c;生成.o文件 make工具和Makefile文件 make工具&#xff1a;GNU make&#xff0c;是一个文件&#xff0c;用于将源代…

【CANoe示例分析】EthernetCanGW_Test_CN

1、工程路径 此示例工程来自于Vector官网:EthernetCanGW_Test_CN 感兴趣的可以自行下载! 2、示例目的 如何在CANoe中创建一个网关,实现转发以太网报文到多个CAN网络中。该使用案例是对CAN网络进行压力测试 3、示例内容 本示例通过执行Test Module里的测试用例Bus_load…

《电路/电路原理》—戴维宁(南)定理实战演练

前言战前准备什么是戴维南定理&#xff1f;戴维南定理&#xff08;Thevenins theorem&#xff09;标准解释&#xff1a;含独立电源的线性电阻单口网络N&#xff0c;就端口特性而言&#xff0c;可以等效为一个电压源和电阻串联的单口网络。电压源的电压等于单口网络在负载开路时…

CSS预处理器、移动端适配

1、预处理器概念 1.1、CSS编写的痛点 CSS作为一种样式语言, 本身用来给HTML元素添加样式是没有问题的。 但是目前前端项目已经越来越复杂, 不再是简简单单的几行CSS就可以搞定的, 我们需要几千行甚至上万行的CSS来完成页面的美化工作。 随着代码量的增加, 必然会造成很多的…

LeetCode-26. 删除有序数组中的重复项

目录题目分析双指针理解代码实现题目来源 26. 删除有序数组中的重复项 题目分析 解法&#xff1a; 双指针 首先注意数组是有序的&#xff0c;那么重复的元素一定会相邻。 要求删除重复元素&#xff0c;实际上就是将不重复的元素移到数组的左侧。 考虑用 2 个指针&#xff0c;…

拉伯证券|7900亿芯片巨头狂跌,发生了什么?

全球芯片巨子忽然爆雷。 英特尔刚刚交出了一份“十分糟糕”的财报。美东时间1月26日美股盘后&#xff0c;英特尔公布的2022第四季度及全年财报显现&#xff0c;第四季度的营收为140亿美元&#xff0c;同比大幅下降32%&#xff0c;不及商场预期&#xff1b;第四季度净亏损7亿美元…

【项目精选】基于SpringBoot和Vue开发的功能强大的图书馆系统(附源码)

功能介绍 图书馆系统功能包括&#xff1a; 1、读者端&#xff1a; 1.智能推荐图书 2.读者在线预约座位 3.读者借阅归还图书 4.图书详情 5.图书评论、评星 6.用户登录、注册、修改个人信息 7.用户自定义图书标签 8.用户报名活动参加活动 9.书架展示和添加删除 10.用户邮件登录…

Win11的两个实用技巧系列之u盘怎么设置密码?

Win11系统u盘怎么设置密码?Win11设置u盘密码的方法win11U盘怎么设置密码&#xff1f;今天小编就为大家带来了Win11设置u盘密码的方法&#xff0c;需要的朋友一起看看吧现在还是有很多用户都在使用U盘来存储一些重要的文件和数据&#xff0c;而为了更好的保护里面的安全&#x…

mongodb的索引操作

Mongodb的索引操作 学习目标 掌握 mongodb索引的创建&#xff0c;删除操作掌握 mongodb查看索引的方法掌握 mongodb创建唯一索引的方法 1. 为什么mongdb需要创建索引 加快查询速度进行数据的去重 2. mongodb创建简单的索引方法 语法&#xff1a;db.集合名.ensureIndex({属…

【手写 Promise 源码】第八篇 - 完善 Promise 并通过 promise-aplus-tests 测试

一&#xff0c;前言 上一篇&#xff0c;实现 Promise 对返回值 x 各种情况的分析和处理&#xff0c;主要涉及以下几个点&#xff1a; 回顾了相关的 Promise A 规范内容&#xff1b;根据 Promise A 规范描述和要求&#xff0c;实现了核心解析方法&#xff1a;resolvePromise&a…

BUUCTF-Reverse Writeup【持续更新】

本文示例程序可见 BUUCTF 官网或者 github easyre | 入门级 方法一&#xff1a;WinHex 打开 easyre.exe&#xff0c;浏览一下字符串&#xff0c;发现有flag方法二&#xff1a;IDA Pro 打开 easyre.exe&#xff0c;能直接看到flag&#xff0c;或者 F5 反汇编看到逻辑是输入两个…

怎么把多个JPG合并成一个PDF?还不快来学

我们通常在处理工作文件时会有很多JPG图片需要传输&#xff0c;不过JPG图片数量一般都非常多&#xff0c;我们需要一张一张的进行传输&#xff0c;不仅会浪费很多时间&#xff0c;还很不方便查看&#xff0c;所以我们就可以及将JPG图片合并到一个PDF文件中&#xff0c;这样就可…

直流电机控制器设计

导读:本文主要介绍了DC-motor电流环和速度环的PI控制器参数的设计,并且简单介绍了设计控制器所需要的背景知识,相关仿真文件的下载地址在文章末尾可供大家下载。 DC-motor 的数学模型 直流电机电枢绕组的电压方程为:

阿里紧急辟谣,全球总部始终在杭州,造谣者请放过民营经济吧

树欲静&#xff0c;而风不止。春节期间又一则关于阿里的谣言&#xff0c;再次广泛传播。谣言称&#xff0c;“阿里在新加坡筹建全球总部”。这则谣言前后&#xff0c;网络上还有许多关于阿里早期创始人移民的各种传言。2023年1月27日下午&#xff0c;阿里集团相关负责人进行了辟…

SparkSQL中4个排序的区别

常用的四个排序BY ORDER BYSORT BYDISTRIBUTE BYCLUSTER BY 此文只是结合官方文档和案例做一下说明下功能 数据集描述 数据如上所示,并手动将分区数设定在2个,默认以 id 字段作为分区依据 原始数据分布 情况如下 相同id的数据都分到了同一个分区内 ORDER BY子句 官网说明: …

JavaScript 执行上下文

什么是执行上下文 JavaScript是一种客户端脚本语言&#xff0c;通常在Web浏览器中执行。当您在浏览器中加载网页时&#xff0c;浏览器会解析HTML文档并创建文档对象模型 (DOM)。在这个过程中&#xff0c;浏览器会寻找包含JavaScript代码的script标签并执行这些代码。 当浏览器…

46.Isaac教程--在机器人应用Deepstream

在机器人应用Deepstream ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录在机器人应用Deepstream技术组件工具技术 NVIDIA DeepStream SDK 为基于 AI 的视频和图像感知以及多传感器处理提供了完整的流分析工具包。 DeepStream 是 NVIDIA…

NUXT学习笔记【part1】nuxt的安装、自定义布局、路由跳转

一、NUXT概述 NUXT 是一个基于 Vue.js 的轻量级应用框架&#xff0c;可用来创建服务端渲染 (SSR) 应用&#xff0c;也可充当静态站点引擎生成静态站点应用&#xff0c;具有优雅的代码结构分层和热加载等特性。NUXT使用服务端渲染技术&#xff0c;可以获得更快的内容到达时间&a…

markdown 写微信公众号,排版交给 mdnice

mdnice 墨滴软件&#xff08; https://product.mdnice.com/ &#xff09;&#xff0c;提供了以面向微信公众号内容排版为主的辅助工具 Markdown Nice[1]&#xff0c;效果堪称完美&#xff0c;极大的提升了发布微信公众号文章的效率。 使用其在线编辑器&#xff08; https://e…