raspberrypi 三天能玩人脸识别

1. 硬件正常安装

参考子豪兄教你在树莓派上安装OpenCV

启动后,打开桌面 配置一下用户和密码,首选项-> Configration,配置自动登录。

2. 一劳永逸配置树莓派

参考 配置好pi

  • 给Raspbian的包管理器apt-get换源 几个常用的源

参考sources.list 详解

清华: http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/
浙大:http://mirrors.zju.edu.cn/raspbian/raspbian/
科大:http://mirrors.ustc.edu.cn/raspbian/raspbian/

在树莓派的命令行界面输入

sudo nano /etc/apt/sources.list

使用键盘方向键控制,在第一行开头加一个#,把下面的内容拷贝到最后一行之后,如图中的效果:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

先按键盘上的ctrl+o,再按回车保存,再按ctrl+x退出nano编辑器回到命令行界面。再输入以下命令更新到清华大学镜像源最新的软件列表。

sudo apt-get update

这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在树莓派本地。

  • 给Python的第三方模块安装工具pip换源

  • 方法一:输入命令

清华大学开源软件镜像站官方推荐方法,但该方法在树莓派上可能会失效。
只需树莓派命令行中输入下面这一行命令,即可永久设置pip下载源为国内源

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

注意:是 https 而不是 http,simple 不能少

  • 方法二:配置换源脚本
    该方法在树莓派上亲测有效

在树莓派的命令行中依次输入运行以下三个命令

sudo mkdir ~/.pip
cd .pip
sudo nano pip.conf

在打开的文件中输入以下内容:

[global]
timeout = 10
index-url =  http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=mirrors.aliyun.compypi.douban.com

还可以参考:Python开发快速安装第三方包(pip换源)

  • 升级所有安装的软件
    运行下面这行命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。执行这行命令可能需要很长时间。

    sudo apt-get upgrade

  • 运行了sudo apt-get update命令,现在运行sudo apt-get upgrade命令,有什么不同呢?
    答:update仅仅是从下载源获取并更新可下载软件列表,相当于更新索引地图。而upgrade是更新软件本身。后者要花费多得多的时间。

  • 更新完成后,有几个包无法更新,用命令补充

apt-get update --fix-missing source.list 文件版本说明
wheezy(更老的稳定版)
jessiels(老的稳定版)
stretch(稳定版)
buster(测试版)
  • 下载安装常用软件

1)安装中文字体

sudo apt-get install fonts-wqy-zenhei

2)安装中文输入法fcitx及Google拼音输入法

sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin

安装成功之后,会在下一次重启时生效。可以使用ctrl+空格切换为中文输入法。

3) 安装远程桌面登陆软件teamviewer (没有安装成功)

依次执行下列五条命令。在运行第二条命令的时候会显示很多依赖包没有安装,第三条命令就是用来安装这些依赖包。

wget http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
sudo dpkg -i teamviewer-host_armhf.deb
sudo apt-get -f install
sudo apt-get install gdebi
sudo gdebi teamviewer-host_armhf.deb

teamviewer info可以查看teamviewer当前版本

在跳出的对话框选择Accept License Agreement 在树莓派桌面,右上角可以看到teamviewer的图标了,点击进入。再点击Grant easy access,登录你的teamviewer账户,设置连接密码。通过那一串数字(如图中的1112747434),就可以让全世界任意一台上网的电脑或手机远程桌面操控你的树莓派了。

3. 树莓派配置摄像头并实现实时人脸检测

参考树莓派4B配置摄像头并实现实时人脸检测

3.1 打开配置

打开树莓派命令行界面输入命令,进入树莓派配置界面。打开camera。

sudo raspi-config

将摄像头的USB口连接到树莓派的任意一个USB口后再开机。一定要先接摄像头再开机,不然树莓派可能无法识别。

3.2 USB测试

输入输入lsusb或者ls /dev/video*命令。

3.3 操作摄像头

安装mplayer播放器

sudo apt-get install mplayer -y

3.4安装fswebcam视频软件

sudo apt-get install fswebcam -y

3.5查看USB摄像头画面

sudo mplayer tv://

确认画面之后需要通过ctrl+c退出,才能进行下一步调用摄像头操作.否则会报如摄像头忙碌的错误。

3.6 在/home/pi目录下调用fswebcam生成一张当前摄像头拍摄到的实时照片

fswebcam -d /dev/video0 --no-banner -r 320x240 -S 10 /home/pi/image.jpg

其中:

  • -d 是配置使用哪个摄像设备
  • –no-banner 拍出来照片没水印,不加的话,可能会报字体问题
  • -r 后的是图片的宽与高
  • -S 跟曝光度设置差不多。从1到10,越来越不刺眼的感觉,如果不设置这个参数或者设置为0的话可能拍出黑照片。
  • 最后的是待保存的图片路径(如果不加路径/home/pi/的话默认保存在当前目录)。

3.7 调用摄像头实现实时人脸检测 未成功

  • 配置展示窗口
export DISPLAY=:0.0
  • 安装python-opencv
sudo apt-get install python-opencv
  • 树莓派摄像头实时人脸检测

下载网络和权重文件 没有用

wget --no-check-certificate https://download.01.org/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
wget --no-check-certificate https://download.01.org/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.xml

新建face-detection-camera.py文件,并写入以下内容:

# coding=utf-8
# face-detection-camera.py
import cv2 as cv
import numpy as npprint('开始人脸摄像头实时检测')
# 载入模型文件和权重文件
net = cv.dnn.readNet('face-detection-adas-0001.xml','face-detection-adas-0001.bin')
# Specify target device
net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)# 从摄像头中读取图像帧
cap=cv.VideoCapture(0)
while(1):# 获取一帧图像ret,frame=cap.read()# Prepare input blob and perform an inferenceframe=cv.resize(frame,(480,320),interpolation=cv.INTER_CUBIC)blob=cv.dnn.blobFromImage(frame,size=(672,384),ddepth=cv.CV_8U)net.setInput(blob)out=net.forward()# 绘制人脸框for detection in out.reshape(-1,7):confidence=float(detection[2])# 获取左上角图片坐标xmin=int(detection[3]*frame.shape[1])ymin=int(detection[4]*frame.shape[0])# 获取右下角图片坐标xmax=int(detection[5]*frame.shape[1])ymax=int(detection[6]*frame.shape[0])if confidence > 0.5:cv.rectangle(frame,(xmin,ymin),(xmax,ymax),color=(0,255,0))# 展示图像cv.imshow('capture',frame)if cv.waitKey(1)&0xFF==ord('q'):# 每1秒监听一次键盘的动作,按q键结束,并保存图片cv.imwrite('out.png',frame)print('save one image done!')break
# 关闭摄像头及显示窗口
cap.release()
cv.destroyAllWindows()
print('人脸摄像头实时检测完成')
  • 将face-detection-camera.py放入face-detection-adas-0001.xml,face-detection-adas-0001.bin同级目录,并执行:
python3 face-detection-camera.py

可以左右移动人脸查看识别情况,界面上会在检测到的人脸画一个绿色的框
按键盘Q键可退出检测,并保存最后一帧图像.

这部分未成功

4. 树莓派安装opencv不成功时补充方法 已成功

4.1 手动安装opencv

树莓派安装opencv调用cv2时提示 ModuleNotFoundError: NO module named 'cv2’的解决方法

sudo pip3 install opencv-pythonsudo apt-get install libjpeg-dev libatlas-base-dev libjpeg-dev libtiff5-dev libpng12-dev libqtgui4 libqt4-test libjasper-dev
-sudo pip3 install numpysudo pip3 install opencv-python

不成功, 要单独下载 , opencv下载地址

然后上传到树莓派,使用以下命令安装:

sudo pip3 install opencv_python-4.4.0.46-cp37-cp37m-linux_armv7l.whl
  • pip换源
pip install pip -U
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 测试opencv是否安装成功
python3import cv2cv2.__version__

4.2 测试opencv

用树莓派自带的IDE运行下列代码。

打开一个图片(将图片yangmi.jpg放到 py 程序同级目录下)并显示 , 01tespopencv.py源码,:

import cv2img = cv2.imread("yangmi.jpg") # load image
cv2.imshow("image", img)    # show image
cv2.waitKey(0)  # wait until key pressed

运行结果

5. 调用摄像头模组测试

5.1 捕捉PiCam生成的用RGB颜色和灰色模式展示的视频流

参考用树莓派3B+和Python+OpenCV实现实时的人脸检测

用树莓派自带的IDE运行下列代码,可捕捉PiCam生成的用RGB颜色和灰色模式展示的视频流。按ESC退出运行测试窗口。

02testcv2camera.py源码 :

import numpy as np
import cv2cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Heightwhile(True):ret, frame = cap.read()frame = cv2.flip(frame, -1) # Flip camera verticallygray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)cv2.imshow('frame', frame)cv2.imshow('gray', gray)k = cv2.waitKey(30) & 0xffif k == 27: # press 'ESC' to quitbreakcap.release()
cv2.destroyAllWindows()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DheTg7J-1605571109371)(figs/5.1摄像头模组opencv_test.png)]

  • OpenCV中的Haar-cascade检测 成功

如果通过特征的方式,那就绕不开Haar特征分类器。

Haar-like特征最早是由Papageorgiou等人用于物体检测的数字图像特征,而Viola和Jones在此基础上,使用3种类型4种形式的特征。

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。
这类矩形特征模板由两个或多个全等的黑白矩形相邻组合而成,而矩形特征值是白色矩形的灰度值的和减去黑色矩形的灰度值的和,矩形特征对一些简单的图形结构,如线段、边缘比较敏感。如果把这样的矩形放在一个非人脸区域,那么计算出的特征值应该和人脸特征值不一样,所以这些矩形就是为了把人脸特征量化,以区分人脸和非人脸。

如果自己找人脸训练特征的话,需要花费时间和大量的素材,那今天就采用OpenCV官方给出的训练结果!

参考十行Python代码实现人脸识别

5.2十行代码完成人脸识别(附源代码)Haar-cascade检测分类器路径:

/usr/local/lib/python3.7/dist-packages/cv2/data
  • 人脸识别

人脸图片(将图片yangmi.jpg放到 py 程序同级目录下)识别 ,人脸识别 03face-detection-pic.py 源码:

# 十行代码完成人脸识别
# bilibili:同济子豪兄
# 20190516
import cv2img = cv2.imread('yangmi.jpg',1)face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')faces = face_engine.detectMultiScale(img,scaleFactor=1.3,minNeighbors=5)for (x,y,w,h) in faces:img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)cv2.imshow('yangmi.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 十行代码完成人脸识别-注释版
# bilibili:同济子豪兄
# 20190516# 导入opencv-python
import cv2# 读入一张图片,引号里为图片的路径,需要你自己手动设置
img = cv2.imread('yangmi.jpg',1)# 导入人脸级联分类器引擎,'.xml'文件里包含训练出来的人脸特征
face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
# 用人脸级联分类器引擎进行人脸识别,返回的faces为人脸坐标列表,1.3是放大比例,5是重复识别次数
faces = face_engine.detectMultiScale(img,scaleFactor=1.3,minNeighbors=5)# 对每一张脸,进行如下操作
for (x,y,w,h) in faces:# 画出人脸框,蓝色(BGR色彩体系),画笔宽度为2img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 在"img2"窗口中展示效果图
cv2.imshow('img2',img)
# 监听键盘上任何按键,如有按键即退出并关闭窗口,并将图片保存为output.jpg
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('output.jpg',img)

5.3人脸识别和人眼检测

人脸图片(将图片yangmi.jpg放到 py 程序同级目录下)识别 ,对单个图片进行人脸识别和人眼检测 04faceeye-detection-pic.py 源码:

# 单张图片人脸+眼睛识别
# bilibili视频教程:同济子豪兄
# 2019-5-16#导入opencv
import cv2# 导入人脸级联分类器引擎,'.xml'文件里包含训练出来的人脸特征,cv2.data.haarcascades即为存放所有级联分类器模型文件的目录
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
# 导入人眼级联分类器引擎吗,'.xml'文件里包含训练出来的人眼特征
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')# 读入一张图片,引号里为图片的路径,需要你自己手动设置
img = cv2.imread('image3.png')# 用人脸级联分类器引擎进行人脸识别,返回的faces为人脸坐标列表,1.3是放大比例,5是重复识别次数
faces = face_cascade.detectMultiScale(img, 1.3, 5)# 对每一张脸,进行如下操作
for (x,y,w,h) in faces:# 画出人脸框,蓝色(BGR色彩体系),画笔宽度为2img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源face_area = img[y:y+h, x:x+w]eyes = eye_cascade.detectMultiScale(face_area)# 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表for (ex,ey,ew,eh) in eyes:#画出人眼框,绿色,画笔宽度为1cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)# 在"img2"窗口中展示效果图
cv2.imshow('img2',img)
# 监听键盘上任何按键,如有案件即退出并关闭窗口,并将图片保存为output.jpg
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('output.jpg',img)

5.4 调用电脑摄像头进行实时人脸识别和人眼识别

开启摄像头 进行人脸识别和人眼检测 05faceeye-detection-camera.py 源码:

# 调用电脑摄像头进行实时人脸+眼睛识别,可直接复制粘贴运行
# bilibili视频教程:同济子豪兄
# 2019-5-16
import cv2face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')
# 调用摄像头摄像头
cap = cv2.VideoCapture(0)while(True):# 获取摄像头拍摄到的画面ret, frame = cap.read()faces = face_cascade.detectMultiScale(frame, 1.3, 5)img = framefor (x,y,w,h) in faces:# 画出人脸框,蓝色,画笔宽度微img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源face_area = img[y:y+h, x:x+w]eyes = eye_cascade.detectMultiScale(face_area)# 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表for (ex,ey,ew,eh) in eyes:#画出人眼框,绿色,画笔宽度为1cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)# 实时展示效果画面cv2.imshow('frame2',img)# 每5毫秒监听一次键盘动作if cv2.waitKey(5) & 0xFF == ord('q'):break# 最后,关闭所有窗口
cap.release()
cv2.destroyAllWindows()

5.5 调用电脑摄像头进行实时人脸识别 人眼 笑脸识别

开启摄像头 进行人脸识别 人眼 笑脸 06faceeyesmele-detection-camera.py 源码:

# 调用电脑摄像头进行实时人脸+眼睛+微笑识别,可直接复制粘贴运行
# bilibili视频教程:同济子豪兄
# 2019-5-16
import cv2face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')smile_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_smile.xml')
# 调用摄像头摄像头
cap = cv2.VideoCapture(0)while(True):# 获取摄像头拍摄到的画面ret, frame = cap.read()faces = face_cascade.detectMultiScale(frame, 1.3, 2)img = framefor (x,y,w,h) in faces:# 画出人脸框,蓝色,画笔宽度微img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源face_area = img[y:y+h, x:x+w]## 人眼检测# 用人眼级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表eyes = eye_cascade.detectMultiScale(face_area,1.3,10)for (ex,ey,ew,eh) in eyes:#画出人眼框,绿色,画笔宽度为1cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)## 微笑检测# 用微笑级联分类器引擎在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表smiles = smile_cascade.detectMultiScale(face_area,scaleFactor= 1.16,minNeighbors=65,minSize=(25, 25),flags=cv2.CASCADE_SCALE_IMAGE)for (ex,ey,ew,eh) in smiles:#画出微笑框,红色(BGR色彩体系),画笔宽度为1cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,0,255),1)cv2.putText(img,'Smile',(x,y-7), 3, 1.2, (0, 0, 255), 2, cv2.LINE_AA)# 实时展示效果画面cv2.imshow('frame2',img)# 每5毫秒监听一次键盘动作if cv2.waitKey(5) & 0xFF == ord('q'):break# 最后,关闭所有窗口
cap.release()
cv2.destroyAllWindows()
  • 注意检测过程使用的重要函数

不管是检测人脸还是检测笑脸,都会用到 detectMultiScale() 函数进行标记

此函数的作用是,在输入图像中检测不同尺寸的对象,返回包含对象的矩形框。

image——输入图像
scaleFactor——表示每轮检测图像齿轮减少的比例
minNeighbors——指明对象要至少被检测到几次才能判定对象确实存在
minSize——检测对象的最小尺寸
maxSize——检测对象的最大尺寸
  • 局限性:

    • 仅为人脸检测,非人脸“辩识”,即只能框出人脸的位置,看不出人脸是谁。
    • 仅能标出静态图片和视频帧上的人脸、人眼和微笑,不能进行“活体识别”,即不能看出这张脸是真人还是手机上的照片,如果用于人脸打卡签到、人脸支付的话会带来潜在的安全风险。
    • 仅为普通的机器学习方法,没有用到深度学习和深层神经网络。

参考文献:

Face Detection using Haar Cascades

使用Haar Cascade 进行人脸识别

Github开源人脸识别项目face_recognition

树莓派4B开机配置指南_利用官方模型实现人脸识别

基于OpenCV的人脸及笑脸检测

Python实现人脸识别图片+视频

raspberrypi三天玩能人脸识别相关推荐

  1. unityar自动识别人脸_三款Unity插件带您玩转人脸识别与模拟

    原标题:三款Unity插件带您玩转人脸识别与模拟 若想让游戏或电影中的虚拟角色表现得更加真实,面部表情是至关重要的.人脸识别技术则借助真人表演来为虚拟角色赋予丰富的表情与面部动作,小至皱眉带动眼部肌肉 ...

  2. 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 作者个人博客: 点击前往 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获. ...

  3. 机器视觉(三)树莓派自制人脸识别考勤机

    一.硬件准备 1,树莓派3B 2,pi camera 3,工具:键盘.鼠标.显示器.SD卡读写器 二.SD卡烧录操作系统 1,U盘格式化软件 SDFormatterv4 2,系统烧写工具 Win32D ...

  4. python学习--第三天 粗略介绍人脸识别

    首先安装opencv 在安装opencv过程中遇到一些错误(百度解决) 直接贴代码吧,讲师略讲了一下,体会不深,以后有机会深入学习,再详细介绍解释吧 人脸识别训练集应该可以网上下载吧,都是开源的 im ...

  5. 识别物体是否存在_【科学实践Vol.1】带你玩转“人脸识别”

    随着时代的发展,人脸识别在我们的生活中变得随处可见:商场里的人脸识别储物柜,校园里的人脸识别刷卡机,手机里的面部解锁--这些应用极大的便利了我们的日常生活.今天,就让我们一起走进人脸识别的原理世界. ...

  6. 2021人脸识别模型最全教程!十分钟让你玩转人脸识别

    人脸识别已经成为生活中越来越常见的技术,其中最关键的问题就是安全,而活体检测技术又是保证人脸识别安全性的一个重要手段,本文将向大家简单介绍活体检测,并动手完成一个活体检测模型的训练,最终实现对摄像头或 ...

  7. 【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门

    文章目录 前 言 安 装 OpenCV 导入模块 1.读取图片 (imread,imshow) 2.灰度转换 (cvtColor) 3.尺寸修改 (resize) 4.矩形.圆形的绘制 (rectan ...

  8. 利用opencv带你玩转人脸识别-上篇(读取图片,灰度转换,尺寸修改,绘制矩形快速入门)

  9. 利用opencv带你玩转人脸识别-下篇(人脸录入,数据训练,人脸识别小案例快速入门)

最新文章

  1. 蒙特卡洛积分与重要性采样详解
  2. 计算机自适应测试的应用 托福,计算机自适应测试系统的研究和应用.pdf
  3. ios底部栏设计规范_超全面的UI设计规范整理,你值得收藏!
  4. 计算机专业英语职高 试卷,职高对口高考英语模拟考试题.doc
  5. 在Eclipse中使用JUnit4进行单元测试(上)
  6. 2020年数模美赛参赛心得总结
  7. 维控触摸屏编程手册_维控触摸屏AB PLC地址编辑说明
  8. OSChina 周四乱弹 ——程序员真正的爱情
  9. 生成小程序二维码(草料)
  10. 三星手机投屏电脑教程 手机和电脑同屏
  11. 使用BeautifulSoup,解释器报错‘lxml‘
  12. 毫米波雷达传感器,无人机避障安全应用,雷达感应技术发展
  13. amcharts学习
  14. Kaldi中 声纹识别的流程图
  15. 2019电商生意经(三):内容化,跨界与反击
  16. ipad极品飞车无限狂飙无法连接服务器,极品飞车:无极限赛车总是显示无法连接网络...
  17. jq trigger
  18. django--生鲜商城项目
  19. QQ(腾讯)-群空间-数据库设计
  20. Text-detector 一个用来检测文本内容行数和字数的Mini工具

热门文章

  1. C语言经典编程(浙大版C语言第三版)详解
  2. 母亲产前压力、胎儿大脑连接和分娩时的胎龄之间的交互关系
  3. 一个存储过程帮你了解 事务(TRAN)、异常处理(TRY/CATCH)、@@ERROR
  4. 拼音转换成汉字html,汉字转成拼音-用HTML实现
  5. 【Android】快速实现仿美团选择城市界面,微信通讯录界面
  6. 微信小程序 画布 组件
  7. 大数据分析如何跟踪迁移模式
  8. EXCEL排名一样大的不重复
  9. python中秋月饼
  10. android 大图分块加载,超大图加载