站长信息
jeffery.xu
jeffery.xu

软件工程师

欢迎访问我的个人笔记网站!我是一名热爱技术的开发者,专注于Web开发和技术分享。

811495111@qq.com
18521510875
筛选

个人笔记

3.2.4
人工智能学习

import onnxruntime as ort
import numpy as np
import scipy.special
from PIL import Image
#
预处理图像
def preprocess_image(image, resize_size=256, crop_size=224, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]):
    image = image.resize((resize_size, resize_size), Image.BILINEAR)
    w, h = image.size
    left = (w - crop_size) / 2
    top = (h - crop_size) / 2
    image = image.crop((left, top, left + crop_size, top + crop_size))
    image = np.array(image).astype(np.float32)
    image = image / 255.0
    image = (image - mean) / std
    image = np.transpose(image, (2, 0, 1))
    image = image.reshape((1,) + image.shape)
    return image
#
加载模型  2分
session = ort.InferenceSession('flower-detection.onnx')
#
加载类别标签 2分
with open('labels.txt') as f:
    labels = [line.strip() for line in f.readlines()]
#
获取模型输入和输出的名称
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[0].name
#
加载图片  2分
image = Image.open('flower_test.png').convert('RGB')
#
预处理图片  2分
processed_image = preprocess_image(image)
#
确保输入数据是 float32 类型
processed_image = processed_image.astype(np.float32)
#
进行图片识别  2分
output = session.run([output_name], {input_name: processed_image})[0]
#
应用 softmax 函数获取识别分类后的准确率  2分
accuracy = scipy.special.softmax(output, axis=-1)
#
获取预测的类别索引
predicted_idx = np.argmax(accuracy)
#
获取预测的准确值(转换为百分比)
prob_percentage = accuracy[0, predicted_idx] * 100


#
获取预测的类别标签
predicted_label = labels[predicted_idx]
#
输出预测结果,包含百分比形式的概率
print(f"Predicted class: {predicted_label}, Accuracy: {prob_percentage:.2f}%")

3.2.3
人工智能学习

import onnx
import numpy as np
from PIL import Image
import onnxruntime as ort
#
定义预处理函数,用于将图片转换为模型所需的输入格式
def preprocess(image_path):
    input_shape = (1, 1, 64, 64)    #
模型输入期望的形状,这里是 (N, C, H, W),N=batch size, C=channels, H=height, W=width
    img = Image.open(image_path).convert('L')    #
打开图像文件并将其转换为灰度图  1分
    img = img.resize((64, 64), Image.Resampling.LANCZOS)    #
调整图像大小到模型输入所需的尺寸
    img_data = np.array(img, dtype=np.float32)    #
将PIL图像对象转换为numpy数组,并确保数据类型是float32
    #
调整数组的形状以匹配模型输入的形状
    img_data = np.expand_dims(img_data, axis=0)  #
添加 batch 维度
    img_data = np.expand_dims(img_data, axis=1)  #
添加 channel 维度
    assert img_data.shape == input_shape, f"Expected shape {input_shape}, but got {img_data.shape}"    #
确保最终的形状与模型输入要求的形状一致
    return img_data    #
返回预处理后的图像数据
#
定义情感类别与数字标签的映射表 2分
emotion_table = {'neutral':0, 'happiness':1, 'surprise':2, 'sadness':3, 'anger':4, 'disgust':5, 'fear':6, 'contempt':7}
#
加载模型 2分
ort_session = ort.InferenceSession('emotion-ferplus.onnx')    #
使用onnxruntime创建一个会话,用于加载并运行模型
#
加载本地图片并进行预处理 2分
input_data = preprocess('img_test.png')
#
准备输入数据,确保其符合模型输入的要求
ort_inputs = {ort_session.get_inputs()[0].name: input_data}    # ort_session.get_inputs()[0].name
是获取模型的第一个输入的名字
#
运行模型,进行预测 2分
ort_outs = ort_session.run(None, ort_inputs)
#
解码模型输出,找到预测概率最高的情感类别 2分
predicted_label = np.argmax(ort_outs[0])
print(predicted_label)
#
根据预测的标签找到对应的情感名称 2分
predicted_emotion = list(emotion_table.keys())[predicted_label]
#
输出预测的情感
print(f"Predicted emotion: {predicted_emotion}")

3.2.2
人工智能学习

代码:

import onnxruntime

import numpy as np

from PIL import Image

# 加载ONNX模型  2分

ort_session = onnxruntime.InferenceSession("mnist.onnx")

# 加载图像 2分

image = Image.open("img_test.png").convert('L')  # 转为灰度图

# 图像预处理 4分

image = image.resize((28, 28))  # 调整大小为MNIST模型的输入尺寸1分

image_array = np.array(image, dtype=np.float32)  # 转为numpy数组1分

image_array = np.expand_dims(image_array, axis=0)  # 添加batch维度1分

image_array = np.expand_dims(image_array, axis=0)  # 添加通道维度1分

# 使用模型对图片进行识别 2分

ort_inputs = {ort_session.get_inputs()[0].name: image_array}

# 执行预测 2分

ort_outs = ort_session.run(None, ort_inputs)

# 获取预测结果 2分

predicted_class = np.argmax(ort_outs[0])

# 输出预测结果
print(f"Predicted class: {predicted_class}")

3.2.1
人工智能学习

import onnxruntime as ort
import numpy as np
import scipy.special
from PIL import Image
#
预处理图像
def preprocess_image(image, resize_size=256, crop_size=224, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]):
  image = image.resize((resize_size, resize_size), Image.BILINEAR)
  w, h = image.size
  left = (w - crop_size) / 2
  top = (h - crop_size) / 2
  image = image.crop((left, top, left + crop_size, top + crop_size))
  image = np.array(image).astype(np.float32)
  image = image / 255.0
  image = (image - mean) / std
  image = np.transpose(image, (2, 0, 1))
  image = image.reshape((1,) + image.shape)
  return image

  #
模型加载 2分

session = ort.InferenceSession('resnet.onnx')
  #
加载类别标签
labels_path = 'labels.txt'
with open(labels_path) as f:
  labels = [line.strip() for line in f.readlines()]
  #
获取模型输入和输出的名称
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[0].name
  #
加载图片 2分
image = Image.open('img_test.jpg').convert('RGB')
  #
预处理图片 2分
processed_image = preprocess_image(image)
  #
确保输入数据是 float32 类型
processed_image = processed_image.astype(np.float32)
  #
进行图片识别 2分
output = session.run([output_name], {input_name: processed_image})[0]
  #
应用 softmax 函数获取概率 2分
probabilities = scipy.special.softmax(output, axis=-1)
  #
获取最高的5个概率和对应的类别索引 2分
top5_idx = np.argsort(probabilities[0])[-5:][::-1]
top5_prob = probabilities[0][top5_idx]
  #
打印结果
print("Top 5 predicted classes:")
for i in range(5):
  print(f"{i + 1}: {labels[top5_idx[i]]} - Probability: {top5_prob[i]}")

4.2.4
人工智能学习

自动驾驶汽车感知系统数据采集与标注指导方案

1. 数据采集方案

l  多传感器融合:结合摄像头、激光雷达(LiDAR)、毫米波雷达、GPS 和 IMU 等多种传感器,实现全面的环境感知。

l  场景覆盖:覆盖城市道路、高速公路、隧道、雨雪天、夜间等多种典型驾驶场景,确保数据多样性与泛化能力。

l  事件触发采集:在特定事件发生时(如紧急刹车、避让行动),自动触发额外数据采集,以捕获关键时刻。

l  数据质量控制:设置传感器校准流程,过滤模糊、过曝、传感器失效等无效数据,确保采集数据的可用性和一致性。

l  数据加密与传输:采用安全的数据传输协议,确保数据在传输过程中的安全性。

2. 数据标注方案

l  定义标注标准:明确标注类别、边界框精度要求、遮挡处理规则等。

l  选择标注工具:使用专业的数据标注软件,支持2D框、3D框、语义分割等标注类型。

l  标注员培训:对标注员进行专业培训,确保他们理解标注标准,熟悉工具使用。

l  执行标注任务:分配数据给标注团队,设定清晰的任务指标和截止日期。

l  质量控制与复查:实施多级检查,包括自动检查和人工复查,确保标注的准确性和一致性。

数据整合与存储:将标注后的数据整合,形成高质量结构化数据集,存储在安全的数据仓库中,供模型训练使用

4.2.3
人工智能学习

AI智能安防监控系统采集和处理指导方案

1. 数据采集方法

l  高清视频流采集:部署高清摄像头,确保视频画面清晰,便于AI算法识别细节。

l  多角度覆盖:合理布置摄像头,确保监控区域无死角,覆盖所有入口、出口和敏感区域。

l  夜间与低光环境适应:使用带有红外夜视功能的摄像头,保证夜间或低光条件下仍能捕捉到清晰图像。

l  数据传输与存储:采用稳定的数据传输网络,确保视频流的实时传输,同时建立安全的本地或云端视频存储系统,保存原始视频和分析结果。

2. 数据处理方案

l  视频流预处理:包括帧抽取、图像去噪、分辨率调整和目标区域增强,提升后续识别算法效率。

l  行为分析与异常检测:通过人体姿态识别、运动轨迹跟踪等技术,识别跌倒、奔跑、翻越等异常行为。

l  隐私保护算法:在不影响异常行为识别的前提下,对视频中无关个体进行模糊处理,保护个人隐私。

l  数据融合与决策支持:结合多个摄像头的数据,进行空间和时间上的数据融合,构建更全面的场景理解,为安全决策提供依据。

3. 系统优化与安全措施

l  算法优化:持续训练和优化AI模型,提升异常行为识别的准确率与实时响应能力。

l  隐私合规:确保系统设计和运营遵守GDPR、CCPA等数据保护法规,定期进行隐私影响评估。

安全防护:实施数据加密、访问控制和防火墙等安全措施,防止数据泄露和系统被攻击。

4.2.2
人工智能学习

AI辅助的医疗影像诊断系统数据采集和处理指导方案

1. 数据采集方案

l  医学影像获取:确保影像质量,使用高分辨率的医疗设备获取清晰的影像资料,涵盖多种疾病类型和人群。

l  患者信息收集:在符合HIPAA等隐私保护法规的前提下,收集患者的病史、年龄、性别等基本信息,以及相关的实验室检查结果。

l  影像数据标注:邀请经验丰富的医生对影像进行标注,标记病灶位置、类型、大小等关键信息,作为训练AI模型的标注数据集。

l  数据脱敏处理:对收集的患者信息进行脱敏处理,确保患者隐私安全。

2. 数据处理方案

l  数据清洗与预处理:包括图像格式统一、尺寸归一化、伪影去除、对比度增强,以及非结构化信息结构化处理。

l  模型训练与验证:采用交叉验证和训练集/验证集划分方式,评估模型在不同疾病类别和人群上的表现。

l  模型测试与优化:在真实临床场景下使用独立测试集评估模型性能,根据反馈调整参数、改进算法结构以降低误诊漏诊率。

l  系统集成与部署:将训练好的模型集成到医疗影像诊断系统中,部署在医院的服务器上,确保医生可以随时调用AI分析结果。

3. 数据安全与隐私保护

l  所有数据传输和存储过程都需加密,防止数据泄露。

l  遵守HIPAA等隐私法规,确保患者信息不被非法访问或滥用。

l  使用数据脱敏技术,如差分隐私,保护患者身份不被识别。

4. 系统优化与升级

l  定期收集医生和患者的反馈,评估系统性能,根据实际需求调整AI模型。

l  不断更新训练数据集,加入新的疾病类型或变异特征,提高模型的泛化能力与临床适应性。

l  跟踪AI技术的最新进展,适时引入更先进的算法,提升系统性能。

4.2.1
人工智能学习

智能零售分析系统数据采集和处理指导方案

1. 数据源确定

l  销售点(POS)数据:从收银系统获取交易记录,包括商品种类、数量、价格和购买时间。

l  顾客信息:会员卡使用数据,包括消费频次、购买偏好、积分记录、浏览行为等。

l  库存管理系统:实时库存量、入库和出库记录。

l  顾客反馈:在线评价、投诉和建议。

l  外部数据:天气预报、节假日信息、竞争对手价格数据。

2. 数据采集方法

l  API接口:与内部系统(如POS、CRM)和外部数据提供商建立API连接,自动化数据抓取。

l  传感器和物联网设备:在货架上安装RFID标签和重量传感器,监测商品存量。

l  社交媒体监听:通过社交媒体API监听品牌相关的公众讨论和评价。

l  顾客调查:定期发送电子问卷,收集顾客反馈。

3. 数据预处理

l  清洗:去除重复记录、修正异常值、填补缺失数据、格式一致化。

l  标准化:对价格、时间、单位等字段统一标准格式(如统一为人民币、24小时制等)。

l  整合:将来自不同来源的数据合并到单一数据库中,创建关联字段。

4. 数据安全与合规

l  加密传输:确保数据在传输过程中的安全。

l  访问控制:限制对敏感数据的访问权限,只允许授权人员查看。

l  匿名化处理:对个人信息进行去标识化,遵守GDPR等数据保护法规。

5. 数据存储与管理

l  云存储:选择可靠的云服务商,如AWS或Azure,存储海量数据。

l  备份与恢复:定期备份数据,并测试恢复流程,以防数据丢失。

6. 数据分析与应用

l  建模:构建顾客细分模型、销售预测模型、库存优化模型和推荐系统。

l  可视化:开发仪表板展示关键指标,帮助管理层做出决策。

l  报告:定期生成销售、库存和顾客满意度报告,提供业务洞察。

通过上述方案,智能零售分析系统能够有效地采集、处理和分析大量数据,为企业提供决策支持,最终达到提升运营效率、优化库存管理、增强顾客体验和推动销售增长的目标。

4.1.5
人工智能学习

根据学习大纲补充学习目标

数据可视化基础理论

学习目标:掌握数据可视化的基本概念、常见类型及其在数据分析中的作用

内容:

什么是数据可视化?

数据可视化的目的和优势。

常见的数据可视化类型:条形图、折线图、散点图、饼图等。

 

Matplotlib简介与安装

学习目标:了解Matplotlib的基本功能和应用场景,掌握其安装和基本配置方法

内容:

Matplotlib简介及其应用场景。

安装与配置Matplotlib库。

Matplotlib基本构架与常用组件。

 

Matplotlib基本绘图

学习目标:掌握使用Matplotlib创建和自定义基础图表的能力

内容:

创建简单图表:折线图、条形图、饼图。

图表定制:标题、轴标签、图例、颜色等。

实践操作:使用Matplotlib绘制康复数据的基本图表。

 

Plotly简介与安装

学习目标:了解Plotly的特点及应用场景,掌握其安装与在Jupyter Notebook中的使用方法

内容:

Plotly简介及其应用场景。

安装与配置Plotly库。

Plotly与Jupyter Notebook的结合使用。

 

Plotly交互式绘图

学习目标:掌握使用Plotly创建交互式可视化图表的方法,并熟悉其交互功能

内容:

创建交互式图表:折线图、散点图、饼图、地理图表。

图表交互功能:缩放、平移、悬停显示。

实践操作:使用Plotly绘制交互式康复数据图表。

 

数据可视化项目实战

学习目标:综合运用所学知识进行数据可视化项目。

内容:

项目介绍:对康复数据进行可视化分析。

数据采集与预处理:导入并清洗康复数据。

数据可视化:使用Matplotlib、Seaborn、Plotly进行可视化分析。

项目评审:展示可视化成果,讲解实现思路和遇到的问题。

 

总结与答疑

学习目标:巩固所学内容,解决学员疑问。

内容:培训内容总结,关键点回顾,学员提问与解答。

 

评估测试

学习目标:评估学员掌握的数据可视化技能。

内容:

理论测试:关于数据可视化基本概念和工具使用的笔试。

实操测试:要求学员完成指定的数据可视化任务。

4.1.4
人工智能学习

根据学习大纲补充学习目标

数据清洗基础理论

学习目标:掌握数据清洗的基本概念和流程。

内容:

什么是数据清洗?

数据清洗的常见任务:数据去重、缺失值处理、数据格式转换等。

数据清洗在数据分析和模型训练中的重要性。

 

Pandas简介与安装

学习目标:掌握Pandas的基本功能,学会安装和配置Pandas,能够读取和保存不同格式的数据

内容:

读取CSV、Excel、SQL等格式的数据。

保存数据到CSV、Excel等格式。

实践操作:导入和导出康复数据集。

 

数据筛选与过滤

学习目标:掌握数据筛选、去重和缺失值处理的方法,提高数据质量。

内容:

条件筛选:基于单列或多列的条件筛选数据。

数据去重:去除重复记录。

缺失值处理:识别、删除和填充缺失值。

实践操作:筛选和过滤康复数据。

 

数据转换

学习目标:

内容:掌握数据类型转换、时间序列处理及数据分列与合并的方法,提升数据处理能力。

数据类型转换:转换数据类型(如字符串到日期)。

时间序列处理:处理和分析时间序列数据。

数据分列和合并:分割和合并数据列。

实践操作:转换和处理康复数据。

 

数据合并与重塑

学习目标:掌握数据合并与重塑的技术,能够有效组织和转换数据格式

内容:

数据合并:concat和merge方法。

数据重塑:pivot和melt方法。

实践操作:合并和重塑康复数据。

 

数据分组与聚合

学习目标:掌握数据分组与聚合的基本方法,提高数据分析能力

内容:

数据分组:groupby方法。

聚合函数:sum、mean、count等。

实践操作:分组和聚合康复数据。

 

数据可视化

学习目标:综合运用所学知识进行数据清洗项目。

内容:

项目介绍:清洗一个多来源的康复数据集。

数据采集:导入多种格式的数据。

数据清洗:使用Pandas进行数据清洗和转换。

项目评审:展示清洗成果,讲解实现思路和遇到的问题。