课设攻略--人脸特征点检测与图像风格迁移fast-style-transfer-master

2023-11-01

1.1必做题要求--人脸特征点检测

1:对实时的视频进行人脸检测功能、定位和标准。著名的深度学习库opencv和dlib均可检测出图像中的人脸。dlib更提供算法,从标注人脸特征点的数据集中训练模型,高效检测出人脸特征点,用于美颜、人脸位置摆正(人脸识别的前期步骤)、面部表情识别。实验室提供face_landmark_detection.py程序和68/194个人脸特征点检测模型,实现静止图像的人脸检测与标注。

2:在此基础上,加入dlib和opencv的目标跟踪算法,于持续视频播放中,每秒中的第1帧图像执行dlib人脸特征点检测,后续图像跟踪这些特征点。而非往届的所有帧图像均执行人脸特征点检测。

3:添加基于光流计算的目标跟踪技术,可以获得英伟达显卡的硬件加速。dlib.correlation_tracker()函数、 cv2.calcOpticalFlowFarneback()函数、 cv2.calcOpticalFlowPyrLK()函数

1.2代码实现

import dlib

import cv2

import numpy as np

import time

# 加载人脸特征点检测器

predictor_path = "shape_predictor_68_face_landmarks.dat"

detector = dlib.get_frontal_face_detector()

predictor = dlib.shape_predictor(predictor_path)

# 打开摄像头

cam = cv2.VideoCapture(0)

cam.set(3, 1280)  # 设置摄像头宽度

cam.set(4, 720)  # 设置摄像头高度

# 设置绘图参数

color_white = (255, 255, 255)  # 绘图颜色

line_width = 3  # 绘图线宽

# 设置光流法参数

lk_params = dict(winSize=(15, 15),

                 maxLevel=2,

                 criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))

# 初始化跟踪器列表和位置列表

tracker_list = []

pos_list = []

# 设置帧率和计数器

frame_rate = 30

counter = 0

# 获取计时器频率

tick_frequency = cv2.getTickFrequency()

# 开始循环

while True:

    start_tick = cv2.getTickCount()  # 获取当前计时器的值

    ret_val, img = cam.read()  # 读取一帧图像

    if img is None:  # 判断输入图像是否为空

        continue  # 如果为空,跳过本次循环

    if counter % frame_rate == 0:  # 每隔一定时间检测一次人脸

        rgb_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 转换颜色空间

        dets = detector(rgb_image)  # 检测人脸位置

        tracker_list = []  # 清空跟踪器列表

        for det in dets:  # 对于每个检测到的人脸

            tracker = dlib.correlation_tracker()  # 创建跟踪器

            tracker.start_track(rgb_image, det)  # 开始跟踪

            tracker_list.append(tracker)  # 将跟踪器添加到列表中

            cv2.rectangle(img, (det.left(), det.top()), (det.right(), det.bottom()), color_white, line_width)  # 绘制人脸矩形框

            shape = predictor(rgb_image, det)  # 检测人脸特征点

            for i in range(68):  # 绘制人脸特征点

                cv2.circle(img, (shape.part(i).x, shape.part(i).y), 2, (0, 255, 0), -1)

        if len(pos_list) == 0:  # 如果位置列表为空,则初始化为整个图像大小

            pos_list = [dlib.rectangle(0, 0, img.shape[1], img.shape[0])] * len(tracker_list)

    else:  # 否则执行光流法跟踪

        for i, tracker in enumerate(tracker_list):

            ret_val, img = cam.read()  # 读取一帧图像

            if img is None:  # 判断输入图像是否为空

                continue  # 如果为空,跳过本次循环

            rgb_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 转换颜色空间

            # 检查 prev_image 和 pos 是否为空

            if 'prev_image' not in locals() or prev_image is None:

                prev_image = rgb_image.copy()

            if len(pos_list) == 0 or pos_list[i] is None:

                pos_list[i] = dlib.rectangle(0, 0, img.shape[1], img.shape[0])

            prev_pos = tracker.get_position()  # 获取上一帧跟踪器的位置

            prev_pts = [[prev_pos.left(), prev_pos.top()], [prev_pos.right(), prev_pos.bottom()]]

            prev_pts = np.array(prev_pts, dtype=np.float32).reshape(-1, 1, 2)  # 将位置转换为数组形式

            next_pts, status, err = cv2.calcOpticalFlowPyrLK(prev_image, rgb_image, prev_pts, None, **lk_params)  # 计算光流

            good_next_pts = next_pts[status == 1]  # 选择有效的光流点

            if len(good_next_pts) > 0:  # 如果有有效的光流点

                x_min, y_min = np.min(good_next_pts, axis=0).astype(np.int32)  # 计算新位置的左上角坐标

                x_max, y_max = np.max(good_next_pts, axis=0).astype(np.int32)  # 计算新位置的右下角坐标

                tracker.update(rgb_image, dlib.rectangle(x_min, y_min, x_max, y_max))  # 更新跟踪器

                # 修正 pos 的计算

                pos_list[i] = tracker.get_position()  # 获取跟踪器的新位置

                if pos_list[i] is not None:  # 如果新位置不为空

                    left = int(pos_list[i].left())  # 获取新位置的左上角坐标

                    top = int(pos_list[i].top())

                    right = int(pos_list[i].right())  # 获取新位置的右下角坐标

                    bottom = int(pos_list[i].bottom())

                    # 检查 left、top、right、bottom 是否超出图像边界

                    if left < 0:

                        left = 0

                    if top < 0:

                        top = 0

                    if right > img.shape[1]:

                        right = img.shape[1]

                    if bottom > img.shape[0]:

                        bottom = img.shape[0]

                    try:

                        cv2.rectangle(img, (left, top), (right, bottom), color_white, line_width)  # 绘制人脸矩形框

                    except cv2.error as e:

                        print(f"Error: {e}")

                    roi = dlib.rectangle(left, top, right, bottom)  # 获取新位置的矩形框

                    shape = predictor(rgb_image, roi)  # 检测人脸特征点

                    for j in range(68):  # 绘制人脸特征点

                        cv2.circle(img, (shape.part(j).x, shape.part(j).y), 2, (0, 255, 0),-1)

            else:  # 如果没有有效的光流点,将位置设置为 None

                pos_list[i] = None

            prev_image = rgb_image.copy()  # 将当前图像设置为上一帧图像

    counter += 1  # 计数器加一

    end_tick = cv2.getTickCount()  # 获取当前计时器的值

    tick_diff = end_tick - start_tick  # 计算计时器的差值

    time_diff = tick_diff / tick_frequency  # 计算时间差值

    sleep_ms = int(max(1, int(1000 / frame_rate - time_diff * 1000)))  # 计算休眠时间

    time.sleep(sleep_ms / 1000)  # 休眠一定时间

    cv2.imshow('Face Detection', img)  # 显示图像

    if cv2.waitKey(1) == 27:  # 如果按下 ESC 键,退出程序

        break

cam.release()  # 释放摄像头

cv2.destroyAllWindows()  # 销毁所有窗口

1.3重要流程!

import dlib

import cv2

import numpy as np

其实从代码就可以看出,主要用到的就是dlib,cv2,numpy。其中numpy还算好说,一般python都自带了。Cv2其实是属于opencv的函数,只不过导入的时候是叫做cv2,最麻烦的就是dlib了。而且,我们还得另外找那个68特征点的shape_predictor_68_face_landmarks.dat文件,还好我找到了,已把该代码和dat文件均上传GitHub。

链接:

GitHub - YZYFZ2H/Facial-landmark-detection: Facial landmark detection with shape_predictor_68_face_landmarks.dat !!!

1.下载并安装anaconda或者miniconda,为了后续的创建虚拟环境

2.windows搜索栏搜索anaconda prompt进入命令行

3.换源:其实就是不用外国的下载网址,我们换到清华源,快一点

在命令行里面输入:(直接CTRL CV就行)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

4.搭建虚拟环境

命令行输入:

conda create -n cv python==3.7.5 (遇到Proceed([y]/n)就输入y就行,只是在问询你是否确定下载并安装库而已)

activate cv  (激活刚刚创建好的环境cv)

pip install opencv-python   (安装opencv)

安装完毕后,可在命令行验证安装是否成功

python

import cv2

cv2.__version__

安装正常一般会显示

至此,opencv就安装好了,以后就可以调用了

然后,输入exit(),退出python,重新回到我们的cv虚拟环境。

 

命令行输入:

conda config --add channels conda-forge

conda install cmake   (听说是dlib的前置包,不妨也安装上吧)

conda install dlib

通过这两行,就可以自动找到最适合python3.7.5版本的dlib包,从而,python文件就可以运行啦。虽然只是这两行代码,但是,当时可是找了3h才最终找到并确定可以成功的方法。

1.4运行结果----反正就是能够识别出人脸,用68个点标注出来了边框轮廓和主要特征点--需要一点算力

2.1实验要求----风格迁移

任务核心——深度学习,Python编程,深度学习框架(pytorch 或tensorflow)

图像风格迁移是将一张图像的风格转移到另一张图像上,使得完成风格转移后生成的图像在保持原有内容的基础上具有被转移图像的艺术风格。

基本要求:使用卷积神经网络编程进行图像风格迁移。

进阶要求:使用生成对抗网络进行动漫图像生成。

在设计报告中写出要求、相关技术原理(包括卷积神经网络和生成对抗网络的概括介绍)、方案设计、方框图表达代码流程、调试过程、运行情况(截图)、结论。

2.2代码实现

参考了GitHub上的代码,但原文件包缺少风格模型,故另外找到了6个模型进行调试。

已把完整代码和ckpt(模型)上传GitHub:

GitHub - YZYFZ2H/fast-style-transfer-master-with-ckpt: fast-style-transfer-master with ckpt!!!

用到的工具与包:

1.anaconda或miniconda----用来创建虚拟环境----miniconda其实就是anaconda的简化版,省却了1000+个可能用不着的包,仅保留了创建环境的功能

2.pycharm(其实用不着)----可以打开看看evaluate的内部函数、文件调用情况

3.tensorflow--python框架

4.pillow--python库

5.numpy--python库

6.moviepy--python库--虽然用不着

7.scipy--python库

8.个ckpt风格模型----已经训练好了,在ckpt文件夹里面

2.3重要流程!(以下操作前,不要挂梯子!)

下载并解压GitHub上的文件夹fast-style-transfer-master

1.下载并安装anaconda或者miniconda,为了后续的创建虚拟环境

2.windows搜索栏搜索anaconda prompt进入命令行

3.换源:其实就是不用外国的下载网址,我们换到清华源,快一点

在命令行里面输入:(直接CTRL CV就行)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

4.搭建虚拟环境

命令行输入:

conda create -n s-t python=3.8    (这里的s-t其实就是自己命名的环境名字,然后规定了python版本为3.8,因为我在3.7尝试的时候总会出现某库与python版本不匹配,所以一气之下就选择了直接用3.8版本)(遇到Proceed([y]/n)就输入y就行,只是在问询你是否确定下载并安装库而已)

activate s-t  (激活刚刚创建好的环境s-t)

pip install tensorflow moviepy   (安装tensorflow和moviepy,他会自动安装当前python合适的最高版本的tensorflow和moviepy)

conda install scipy pillow(同理,安装scipy和pillow,自动安装最适合版本)

5.运行evaluate.py文件

这里提供两种做法

5.1一就是继续刚刚的步骤后,

5.1.1 在命令行输入:

cd 。。。。。(这里的。。。。。就是你把这个fast-style-transfer-master文件夹放在了哪里的路径,

比如我的fast-style-transfer-master文件夹路径为

C:\Users\vvvv\Desktop\fast-style-transfer-master

那么我就输入:cd C:\Users\vvvv\Desktop\fast-style-transfer-master ,意思是转到这个文件夹,再进行下一步操作

5.1.2接下来就可以输入:

python evaluate.py --checkpoint ckpt/xxxx.ckpt --in-path examples/content/yyyy.jpg --out-path output/zzzz.jpg

示例:python evaluate.py --checkpoint ckpt/la_muse.ckpt --in-path examples/content/stata.jpg --out-path output/sta.jpg

意思是:

通过python运行evaluate文件,

输入了参数checkpoint为ckpt文件夹下的la_muse.ckpt风格模型路径,

输入了--in-path参数为examples文件夹下的content文件夹下的state.jpg相片路径,

输入了--out-path参数为output文件夹下的zzzz.jpg路径(就是最终完成风格迁移后的文件保存路径)

正常的话就能在output文件夹看到结果啦

5.2法二,如果5.1的方法行不通,就可以尝试

在4的步骤完成后,在命令行输入:

jupyter notebook

这之后就会自动打开默认浏览器,到达jupyter notebook,

在该网站的偏右上的位置有New按钮,点击并选择Terminal,即命令行,他会自动创建新的页面进入命令行

在notebook的命令行里面,进行5.1.1的操作进入文件夹,然后再进行5.1.2的操作,

然后就应该能够正常进行风格迁移了。

2023.7.6检测5.1方法命令行可以正常运行输出(即展示里面的stata与st风格迁移)

2023.7.6检测5.2方法notebook命令行可以正常输出。(即结果展示里面的胡桃的风格迁移)

环境python版本3.8.16,tensorflow版本2.12.0,pillow版本10.0.0,scipy版本1.10.1

2.4运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

课设攻略--人脸特征点检测与图像风格迁移fast-style-transfer-master 的相关文章

  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • NOIP2020南开之役——退役之战

    文章目录 一 关于过程 1 考前准备 2 考时过程 2 考后搞心态 二 我的感想 谢谢 一 关于过程 1 考前准备 我认为 在这一方面 我已经尽力了 考前一周我是天天中午去机房刷题 总结 没有半点划水 并且每天晚自习我拼了命地做作业 总是第
  • pacemaker命令小记

    pacemaker一些命令及解释 crm help crm configure show 查看配置 crm mon version 查看版本 crm configure primitive ClusterIP ocf heartbeat I
  • client-go基础用法之增删改查deployment

    文章目录 1 创建clientSet 2 获取pod信息 3 获取deployment信息 4 更新deployment副本数量 5 更新deployment镜像 6 删除deployment 7 创建deployment和service
  • wget: unable to resolve host address解决方法

    利用wget下载东西时 比如输入指令wget www baidu com 提示报错 wget unable to resolve host address wget 无法解析主机地址 这就能看出是DNS解析的问题 解决办法 修改 etc r
  • springcloud gateway整合 sentinel nacos

    前言 Sentinel 分布式系统的流量防卫兵 是阿里中间件团队2018年7月开源的 面向分布式服务架构的轻量级流量控制产品 主要以流量为切入点 从流量控制 熔断降级 系统负载保护等多个维度来保护系统服务的稳定性 Sentinel 具有以下
  • unity通过ARFoundation开发苹果AR项目(三)

    unity通过ARFoundation开发苹果AR项目 三 接着上篇继续讲 上一讲中我们说到了将AR Session Original下的AR Camera设置为main camera 然后我们进行正式的项目开发 实现功能 实现对空间的寻找
  • window 如何查看是否安装mvn_如何在windows配置maven环境变量 看完你就知道了

    最近看到好多人maven环境变量配置不成功 如何正确的进行maven安装 如何正确进行maven环境变量配置 今天我详细的介绍如何配置maven环境变量 工具 材料 windows7 apache maven 3 2 2 bin zip 操
  • 计算机联锁怎么排进路,计算机联锁进路选排设计

    课程名称 计算机联锁 设计题目 计算机联锁进路选排设计 院系 计算机与通信工程系 学号 姓名 指导教师 西南交通大学峨眉校区 2012 年5 月 20 日 课 程 设 计 任 务书 专业姓名学号 开题日期 2012 年 03 月 26 日完
  • 基于卷积神经网络的mnist手写体识别

    基于卷积神经网络的mnist手写体识别 1 卷积神经网络 1 1 什么是卷积神经网络 首先 卷积神经网络的概念 百度是这么给出解释的 卷积神经网络 Convolutional Neural Networks CNN 是一类包含卷积计算且具有
  • mysql中的视图知识点总结

    mysql中的视图指什么 答 视图 view 是一种有结构 有行有列 但是没结果 结构中不真实存放数据 的虚拟表 虚拟表的结构来源不是自己定义 而是从对应的基表中产生 视图的数据来源 视图的关键字是什么 答 view 视图的意义 答 1 视
  • Android google play 提交Apk审核被拒提示HostnameVerifier不安全

    提交到google play的应用被拒绝 提示如下 由于应用内使用了一些被发现漏洞的公开接口 一般是三方SDK 此次是由于友盟的SDK漏洞 升级修复版本重新提交审核即可
  • error: expected ‘{‘ before ‘;‘ token

    要求在分号 前加上前括号 原因1 在哪里确实漏了 原因2 要求把 等格式改为
  • 读取没表头的excel为dataframe,并添加虚拟列名

    model bankcode data pd DataFrame pd read excel model bankcodestr header None names 统一行别名称 统一行号 如图 实现了没有表头非让数据表 读取为datafr
  • 小程序扫二维码功能及测试实现过程

    进入微信开发者后台 进入开发管理中开发设置 添加小程序规则 下载校验文件 将校验文件放在域名更目录 放在更目录之后每个子文件夹都可以访问到 保存后 微信开发者工具调试就可以了
  • 如何删除gitee仓库的文件

    删除仓库文件跟上传是一样的 先把仓库clone下来 1 clone仓库 2 输入命令 git clone https gitee com Nick620 git test git 3 cd进入clone下来的仓库 并将gitee仓库上的文件
  • 攻防世界unserialize3

    又来了我的攻防世界 原题 攻防世界 怎么说呢 先看一下题目吧 看到题目的时候我第一反应是无从下手 之前说过博主是个刚起步的新手而且对php不是特别了解 这真的是难度一的题嘛 不过 在查找了很多资料后我逐渐理解了一切 也给大家分享一下并且记录
  • C# 使用OpenCV基本图像操作功能

    C 使用OpenCV OpenCV是一个开源的跨平台计算机视觉和机器学习软件库 可以运行在Linux Windows Android和Mac OS操作系统上 C 在上位机开发中比较常用 有些项目需要在上位机上加入一些机器视觉相关的功能 在下
  • 五笔字形字根及难字拆分

    http blog sina com cn s blog 5cf6d51f0100b17o html 一 字根助记词 11王旁青头戋 兼 五一 12土士二干十寸雨 13大犬三 羊 古石厂 14木丁西 15工戈草头右框七 21目具上止卜虎皮
  • C-数据的储存(上)

    文章目录 前言 一 数据类型详细介绍 1 内置类型 1 整形家族 2 浮点数家族 2 构造类型 也称自定义类型 3 指针类型 4 空类型 二 整形在内存中的存储 1 空类型计算机中的整数有三种2进制表示方法 2 大小端 1 什么是大小端 2
  • 课设攻略--人脸特征点检测与图像风格迁移fast-style-transfer-master

    1 1必做题要求 人脸特征点检测 1 对实时的视频进行人脸检测功能 定位和标准 著名的深度学习库opencv和dlib均可检测出图像中的人脸 dlib更提供算法 从标注人脸特征点的数据集中训练模型 高效检测出人脸特征点 用于美颜 人脸位置摆