毕业设计——基于多种哈希算法和孪生神经网络的短视频相似度检测系统

基于多种哈希算法和孪生神经网络的短视频相似度检测系统

文本相似度检测算法使用Jaccrad,余弦相似度及Dice,最终结果为三者取平均值

视频相似度检测即为遍历关键帧对比,使用均值哈希,差值哈希,感知哈希,三直方图及SSIM指标,若这五个指标中有四个及以上大于阈值0.55,则调用神经网络进行进一步对比,最终分数为0.1*(前五个算法之和) + 神经网络/100

开发框架

  • Vue3

  • Flask

项目功能

登录、注册

在这里插入图片描述
在这里插入图片描述

视频管理与上传

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

视频总览

在这里插入图片描述
在这里插入图片描述

项目搭建与运行

前端

node.js版本v14.17.1

frontend目录下npm i && npm run serve

生产环境搭建命令为npm run build,文件在dist目录下

后端

Python版本(Anaconda)3.7

backend目录下pip install -r requirements

数据库建议清空,测试用户名ivy,密码ivy

后端app.py代码:

import json
import os
import time
from argparse import ArgumentParser
import hashlib
from flask_cors import CORS
import shutil
from JwtVerify.create_token import create_token
from JwtVerify.verify_token import verify_token
from flask import Flask, request, current_app, g, \
    render_template, jsonify, make_response
import threading

from Utils.utils import get_db, target_compare, verify_iden, upload_compare

# 配置
JWT_LIST = []
HASH_LIST = []

# 设置允许的视频文件格式
UPLOAD_PATH = 'C:/Users/Administrator/Desktop/DeepSeek/DeepSeek-frontend/public/'

# 实例化我们的节点;加载 Flask 框架
app = Flask(__name__)
app.config.from_object(__name__)

# 处理跨域请求
CORS(app, resources=r'/*')


@app.teardown_appcontext
def close_db(error):
    """请求结束时关闭数据库连接"""
    if hasattr(g, 'sqlite_db'):
        g.sqlite_db.close()


@app.route('/')
def index():
    """首页"""
    return render_template('index.html')


@app.route('/register', methods=['GET', 'POST'])
def register():
    """注册"""
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        usertype = int(request.form['type'])
        if not username:
            return make_response(), 402
        elif not password:
            return make_response(), 402
        else:
            db = get_db()
            error = None
            if db.execute(
                'SELECT id FROM user WHERE username = ?', (username,)
            ).fetchone() is not None:
                return make_response(), 1001
            if error is None:
                db.execute(
                    'INSERT INTO user (username, password, type) VALUES (?, ?, ?)',
                    (username, password, usertype)
                )
                db.commit()
                # 视频的最终保存路径
                os.mkdir(UPLOAD_PATH + 'videos/' + username)
                return make_response(), 200
    return make_response(), 403


@app.route('/login', methods=['GET', 'POST'])
def login():
    """登录"""
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None
        user = db.execute(
            'SELECT * FROM user WHERE username = ?', (username,)
        ).fetchone()
        if user is None:
            return make_response(), 402
        elif not password == user['password']:
            return make_response(), 402
        if error is None:
            token = create_token(payload=json.dumps({
   'username': username, 'password': password}))
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业小助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值