多源异构数据采集与融合应用综合实践
这个项目属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2023DataCollectionandFusiontechnology |
---|---|
组名、项目简介 | 组名:泥头车 |
项目需求:设计一个包含视频、文本、图片、音频的多源异构数据采集与融合的、能够判断相关性、客观性的应用网站 | |
项目目标:(1)对大众点评上的评论真实性进行分析 (2)根据抖音等短视频平台上的短视频内容进行抽取和分类判别 | |
项目开展技术路线:python、华为云平台、前端:ES6、vue3、 element-plus、后端:python-flask框架、百度千帆大模型ERNIE-Bot服务、whisper、yolov8模型、基于预训练的vgg网络再训练 | |
团队成员学号 | 102102136、102102137、102102138、102102139、102102109 |
这个项目的目标 | 采用技术手段和方法,对“水军”和虚假评论进行判别,对视频进行合理的分类以确保网络环境的公正、真实和安全。 |
其他参考文献 | [1]吴娇,汪可馨,许锟.融合多模态的虚假新闻检测[J].哈尔滨商业大学学报(自然科学版),2023,39(01):47-52.DOI:10.19492/j.cnki.1672-0946.2023.01.011.https://kns.cnki.net/kcms2/article/abstract?v=GARc9QQj0GVrRulgkOiVKs9OD8ERvmQdGrXIV2ms209gRfu49Augq0X_2vnaL53NgHQ6KwEzzTwCIukhEcuJkgpr_m5eu9meF3LV8Ea-whxcFP_M4FPBC0nIemlyQWBNdhvtE6B2ZY0mEKOTVCeAgw==&uniplatform=NZKPT&language=CHS |
实践内容:FZU判官 网站制作
项目背景:
随着互联网的快速发展,网络评论和短视频成为人们表达意见、分享观点的重要渠道。然而,这些评论和短视频中有时存在大量的“水军”和虚假评论,给用户和平台带来了很多困扰。因此,对“水军”和虚假评论进行判别显得尤为重要。
“水军”是指在网络上故意发布虚假评论、制造舆论热点的一群人。他们通常是为了获取某种利益或达到某种目的而进行恶意行为。“水军”的存在不仅扰乱了网络秩序,还可能误导用户,导致不良后果。因此,对“水军”进行判别是维护网络健康的重要任务。
虚假评论是指那些故意发布不真实、不客观的评论,以达到某种目的的行为。这些评论往往与事实不符,甚至可能误导用户。虚假评论的存在不仅破坏了网络评论的公正性和真实性,还可 能对用户造成经济损失或其他不良影响。因此,对虚假评论进行判别也是非常重要的。
随着短视频的兴起,短视频中的评论和互动也变得越来越重要。然而,与文本评论相比,短视频中的评论更加难以判别。因为短视频视频内容,很难通过文本分析来判断其真实性。因此,对短视频中的评论进行判别也是非常重要的。
因此,我们希望采用先进的技术手段和方法,对“水军”和虚假评论进行判别,以确保网络环境的公正、真实和安全。
功能阐述:
一、对大众点评上的评论真实性进行分析
- 数据获取:使用爬虫技术从大众点评上获取评论数据,包括评论的图片、文字、评分等信息。
- 数据清洗:对获取的数据进行清洗和处理,去除无关信息和噪声数据。
- 评论分析:使用自然语言处理(NLP)技术对评论的文字进行分析,提取关键词和情感倾向,判断评论的相关性和客观性。
- 综合评分计算:根据评论的相关性、客观性和其他因素,计算每条评论的综合评分。
- 结果展示:在网站上展示分析结果,包括评论的图片、文字、相关性、客观性和综合评分。
二、根据抖音等短视频平台上的短视频内容进行抽取和分类判别
- 数据获取:使用爬虫技术从抖音等短视频平台上获取视频数据。
- 视频处理:对获取的视频数据进行处理,包括视频转码、视频摘要生成等操作。
- 视频内容抽取:使用计算机视觉(CV)和自然语言处理(NLP)技术对视频内容进行抽取,提取视频的关键帧和音频信息,生成视频的文字描述。
- 视频分类:根据视频的文字描述和其他特征,使用机器学习算法对视频进行分类,判断视频属于哪一类。
- 结果展示:在网站上展示分类结果和视频的梗概。
个人分工
数据采集阶段
根据设计方案进行图片、视频的爬虫设计规范,包括规范使用的爬虫策略、数据结构、存储方式等选择合适的方式完成视频的爬虫设计,并做好预处理工作;
数据库搭建及数据预处理阶段
参与数据库搭建的讨论和制定和数据质量的检查和控制,包括数据库表结构设计、数据清洗、数据转换等,确保数据的准确性和完整性。
数据建模阶段
负责主导图片、视频处理模型运用阶段的工作,根据项目的具体需求和目标,考虑模型的特性、适用场景以及项目的数据特点等因素选取适合的算法。
对于图像处理,使用Yolov8模型进行目标检测,并从图像中提取信息,对图像进行目标检测,将函数返回值作为类别标签数组,从而实现图片的信息提取。
其中yolov8是基于预训练的vgg网络再训练,进行参数调整和优化通过反复试验和评估模型性能,以找到最佳的模型参数配置。
在模型选择中,对比了ssd和yolov8模型,由于yolov8模型的训练和使用较ssd简单,选择使用yolov8。
在对模型进行训练时,由于网上已有的训练集不满足对实验目标的使用,通过手动制作一些粗糙的数据集
对于视频处理,先视频进行抽帧处理和目标检测,再运用Yolov8模型,从视频中检测出目标物体后按照图像处理方法进行进一步处理。
主要检测函数
def img_predict_fun(img_path):
model = YOLO('yolov8x.pt')
results = model(img_path) # results list
for r in results:
boxes = r.boxes # Boxes object for bbox outputs
class_dict = r.names # 类别字典
# boxes.cls : 预测类别的key值的tensor数组
class_pre = [class_dict[i] for i in boxes.cls.tolist()]
#
# im_array = r.plot() # plot a BGR numpy array of predictions
# im = Image.fromarray(im_array[..., ::-1]) # RGB PIL image
# im.show() # show image
# im.save('results.jpg') # save image
return ",".join(list(set(class_pre)))
def video_predict_fun(video_path):
# Load the YOLOv8 model
model = YOLO('yolov8x.pt')
# Open the video file
cap = cv2.VideoCapture(video_path)
sum = 0
timef = 25 # 隔25帧保存一张图片
class_ls = []
# Loop through the video frames
while cap.isOpened():
# Read a frame from the video
frameState, frame = cap.read()
sum += 1
if frameState == True and (sum % timef == 0):
# Run YOLOv8 inference on the frame
results = model(frame)
boxes = results[0].boxes # Boxes object for bbox outputs
class_dict = results[0].names # 类别字典
# boxes.cls : 预测类别的key值的tensor数组
class_pre = [class_dict[i] for i in boxes.cls.tolist()]
class_ls.extend(class_pre)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the annotated frame
cv2.imshow("YOLOv8 Inference", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) & 0xFF == ord("q"):
break
elif frameState == False:
# Break the loop if the end of the video is reached
break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()
return ",".join(list(set(class_ls)))
码云链接
https://gitee.com/chen-pai/box/tree/master/实践课多模态实践
标签:异构,视频,数据,results,评论,video,多源,class,综合 From: https://www.cnblogs.com/CokeChen/p/17902499.html