我的AI学习之旅年度总结

1.前言

从1956年AI概念的提出至今,人工智能技术已发展了60多年,22年12月底ChatGPT的横空出世使得生成式AI的全球爆火,ChatGPT的火爆出圈,也相继出现了文心一言、Midjourney等创新性的 AI 产品,互联网掀起的 AI 风暴可以说已经席卷了全球。

一系列AI产品的出现当然引起了诸多的关注,年初我也作为一名AI小白进入了AI领域,通过时长近一年的学习和实践,总算对深度学习和计算机视觉方面有一定的了解了,这更加坚定了我继续努力探索AI世界的信心,我觉得努力就会有回报。下面我将通过项目经验进行我的年度总结与心得分享。

2.项目总结与心得

年初准备进行学习AI的时候,恰巧碰到遇到学校也开设了这门选修课程,自然是非常高兴的参加了课程的学习。通过自己和学习小组的共同决定,我们选择了深度学习和计算机视觉方向进行了学习,并且也进行了实践,对于一个AI小白来说效果还是不错的。

深度学习和计算机视觉是AI领域两个比较核心的模块,是相互关联的,也经常一起被用于实际问题中,我们小组课题是研发一款影响识别功能的方案。可能是比较感兴趣的原因,我们课下也经常一起学习探讨,共同进步。下面大致总结项目中的一些知识。

我们的设计思路是,第一步先进行数据收集和与处理工作。

影像识别一般就包括一些医学影像,比如X射线,MRI等等影像数据,这些数据很好获得,我们小组是去学校附近的医院进行沟通,获得了一些废弃的影像数据等,或者从网络拉去也可,方式多样。收集数据后进行数据的标注,比如疾病部位或是异常情况,作为深度学习算法的训练标签。之后就是预处理工作,这里设计的比较复杂,包括去噪,归一化,裁剪等等操作,也是比较耗时的部分,结束后材料用于深度模型的训练。这里也应用到了计算机视觉的一些知识,令人印象深刻的就是系统可以自动提取影像特征。

这里我简单演示如何进行MRI影像数据的标注和预处理。

ini 复制代码
import numpy as npimport cv2
#标注
def annotate_image(image, annotations):
    annotated_image = image.copy()
    for annotation in annotations:
        #在影像上绘制矩形边界框
        x, y, w, h = annotation
        cv2.rectangle(annotated_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
    return annotated_image
#预处理
def preprocess_image(image):
    #使用高斯滤波去噪
    denoised_image = cv2.GaussianBlur(image, (3, 3), 0)
    #将像素值映射到[0, 1]范围
    normalized_image=cv2.normalize(denoised_image,None,0,1,cv2.NORM_MINMAX, dtype=cv2.CV_32F)
    #根据需要进行裁剪操作
    cropped_image = normalized_image[100:300, 100:300]
    return cropped_image

#加载原始影像数据
image = cv2.imread('mri_image.jpg', 0)
#标注数据
annotations = [(50, 50, 100, 100), (200, 200, 150, 150)]
annotated_image = annotate_image(image, annotations)
#预处理数据
preprocessed_image = preprocess_image(image)
#显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Annotated Image', annotated_image)
cv2.imshow('Preprocessed Image', preprocessed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

实践远远比我们设计时困难,这也是很正常的。毕竟从实践过程中我也通过排除困难学习到了新的东西。然后是是我们学习的主题,深度学习了。我们选择了最常用的卷积神经网络(CNN),它是一个非常经典的深度学习模型,在处理图像数据方面表现也十分优异。通过使用数据对深度模型进行训练后,通过迭代模型参数,就能更准确的学习图像特征并进行一些诊断预测了。说起来几笔带过的过程,其实也花了不少精力,但是快有成果的时候,总能激励我们更加努力。

在模型部署和优化方面,我们选择了 Distribution of OpenVINO™工具套件来进行模型的部署,并且利用Intel® VTune™ Profiler对深度学习模型进行了性能优化,提高了计算效率。

大致步骤:

1.安装Intel® Distribution for Python和Intel® oneAPI Base Toolkit,确保安装适合的CPU的优化库和驱动程序。

2.使用Intel® VTune™ Profiler对深度学习模型进行性能分析,以识别瓶颈并调整参数。

ini 复制代码
import tensorflow as tffrom tensorflow.keras import layers, modelsfrom keras.applications.vgg16 import VGG16import numpy as npfrom PIL import Imageimport time
#加载
vgg_model = VGG16(weights='imagenet')
#输入数据
img_path = 'test.jpg'
img = Image.open(img_path)
img = img.resize((224, 224))
x = np.asarray(img)
x = np.expand_dims(x, axis=0)
#进行性能分析with tf.device('/CPU:0'):
    start_time = time.time()
    preds = vgg_model.predict(x)
    end_time = time.time()

这里我们的项目使用预训练的VGG16模型,并对测试图片进行了推理,同时还使用了Intel® VTune™ Profiler进行了简单的性能分析。VTune Profiler挺强大的,可以使用VTune Profiler的各种分析工具来分析CPU使用情况、内存使用情况、I/O使用情况等,并识别瓶颈以便调整参数,推荐大家调优使用。

最后,我们进行了一些其他的工作,包括将学习模型集成到一些诊断系统中,设计了一些交互界面的交互逻辑等等,并进行了功能方面的验证。

我觉得有些东西是要通过实践经历才能有所体会,比如说我们收集影像数据等进行一些资源密集型的任务时,也要进行相关专业的学习,这也能提升我们的知识和经验,进行专业的交叉和融合;还有在模型训练和优化时,也不光会遇到我们预想的结果,往往要根据实际的情况进行训练和优化,这是纸上谈兵所不能比拟的;系统集成的时候,又要考虑系统稳定性与用户的体验等问题。总之,想要透彻的学习好一项知识,掌握理论仅仅只是开始~唯有实践能帮助我们熟练运用!

3.结语

上周我们小组提交了方案文档和训练模型,效果还不错,听老师说结课后还可以带我们搞搞其他的项目,非常期待又能学到新东西了。通过这个项目的实操,确实带给人不小的进步,我也深刻体会到了通过深度学习和计算机视觉的相互结合,能使得计算机能更加精确地理解和处理图像信息,也能应用到更多的领域。由于篇幅有限,没有给出一些核心代码等详细设计,有兴趣的小伙伴也可留言,我们共同学习,一起进步。

最后,我在思考AI如此强大的同时,也明白了虽然是站在"巨人"的肩膀上,也要更努力才能有更好的成果!2023转瞬即逝,期待2024AI会再有改变世界的创举,你我将一起见证!

相关推荐
营赢盈英7 小时前
Give azure openai an encyclopedia of information
ai·openai·azure
Snowbowღ11 小时前
OpenAI / GPT-4o:Python 返回结构化 / JSON 输出
python·json·openai·api·gpt-4o·pydantic·结构化输出
营赢盈英1 天前
Allow anonymous access to my Azure OpenAI chat bot
ai·openai·azure·webapps
网络研究院3 天前
解码 OpenAI 的 o1 系列大型语言模型
人工智能·语言模型·自然语言处理·openai·技术·推理·能力
营赢盈英3 天前
OpenAI GPT-3 API error: “You must provide a model parameter“
chatgpt·gpt-3·openai·swift
营赢盈英3 天前
OpenAI API key not working in my React App
javascript·ai·openai·reactjs·chatbot
营赢盈英3 天前
Using OpenAI API from Firebase Cloud Functions in flutter app
ai·node.js·openai·googlecloud·firebase
营赢盈英5 天前
404 error when doing workload anlysis using locust on OpenAI API (GPT.35)
人工智能·python·openai·locust
CaiYongji6 天前
深度!程序员生涯的垃圾时间(上)
人工智能·gpt·chatgpt·openai
营赢盈英7 天前
How to see if openAI (node js) createModeration response “flagged“ is true
javascript·ai·node.js·openai·api