【焦点热闻】世界上最简洁的人脸识别库:face_recognition
文章目录
(资料图)
前言一、face_recognition1.1 安装1.2 检测人脸位置1.3 识别人脸 二、PaddleDetection2.1 安装2.2 运行 三、DeepFace3.1 安装3.2 检测人脸位置3.3 人脸属性分析 四、insightface4.1 安装4.2 运行 五、SeetaFaceEngine5.1 编译5.2 人脸检测5.3 face alignment5.4 人脸检测相似率 六、OpenFace6.1 安装6.2 运行 参考
前言
人脸识别是机器学习热门领域之一,在 github 上有很多项目实现了各种人脸识别功能,以下面6个测试软件使用
https://github.com/ageitgey/face_recognitionhttps://github.com/PaddlePaddle/PaddleDetectionhttps://github.com/serengil/deepfacehttps://github.com/deepinsight/insightfacehttps://github.com/seetaface/SeetaFaceEnginehttps://github.com/TadasBaltrusaitis/OpenFace
一、face_recognition
face_recognition 是世界上最简洁的人脸识别库,可以使用 Python 和命令行工具提取、识别、操作人脸。
face_recognition 项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
1.1 安装
pip install face_recognition
1.2 检测人脸位置
可以使用命令行命令 face_detection来识别人脸,下面以胡歌照片为例,来演示具体使用
face_detection faces/huge.jpg# 输出:faces/huge.jpg,101,221,173,149
使用命令行只显示了位置的具体坐标,不能准确的用肉眼查看,可以使用 python 来标记
import face_recognitionfrom PIL import Image, ImageDrawimage = face_recognition.load_image_file("huge.jpg")face_locations = face_recognition.face_locations(image)pil_image = Image.fromarray(image)draw = ImageDraw.Draw(pil_image)for (top, right, bottom, left) in face_locations: draw.rectangle(((left, top), (right, bottom)), outline=(0, 0, 255))del drawpil_image.save("huge_face.jpg")
多张人脸检测
原始照片
标记人脸位置照片
1.3 识别人脸
face_recognition 不仅支持识别人脸所在照片位置,更能识别人脸所代表的人
将 [‘刘诗诗.jpg’, ‘唐嫣.jpg’, ‘杨幂.jpg’, ‘胡歌.jpg’, ‘霍建华.jpg’, ‘黄志玮.jpg’] 照片放在一个文件夹下,例如我的是 known 文件夹下,再将仙剑三海报 all.jpg 放在和脚本同一目录下,开始识别人脸
测试的6张照片都是从网上找的,链接如下
刘诗诗唐嫣杨幂胡歌霍建华黄志玮
import face_recognitionimport osfrom PIL import Image, ImageDraw, ImageFontimport numpy as npfont = ImageFont.truetype("C:\\Windows\\Fonts\\simsun.ttc", 40, encoding="utf-8")known_path = "../known"known_face_names = []known_face_encodings = []images = os.listdir(known_path)print(images)for image in images: if image.endswith("jpg"): known_face_names.append(os.path.basename(image).split(".")[0]) image_data = face_recognition.load_image_file(os.path.join(known_path, image)) known_face_encodings.append(face_recognition.face_encodings(image_data)[0])all_face_path = "all.jpg"all_image = face_recognition.load_image_file(all_face_path)all_face_locations = face_recognition.face_locations(all_image)all_face_encodings = face_recognition.face_encodings(all_image, all_face_locations)pil_image = Image.fromarray(all_image)draw = ImageDraw.Draw(pil_image)for (top, right, bottom, left), face_encoding in zip(all_face_locations, all_face_encodings): matches = face_recognition.compare_faces(known_face_encodings, face_encoding, tolerance=0.5) name = "未知" face_distances = face_recognition.face_distance(known_face_encodings, face_encoding) best_match_index = np.argmin(face_distances) if matches[best_match_index]: name = known_face_names[best_match_index] draw.rectangle(((left, top), (right, bottom)), outline=(0, 0, 255)) text_width, text_height = draw.textsize(name, font=font) draw.text((left + 6, bottom - text_height - 5), name, fill=(255, 255, 255, 255), font=font)del drawpil_image.save("all_faces.jpg")
二、PaddleDetection
PaddleDetection为基于飞桨 PaddlePaddle 的端到端目标检测套件,内置30+模型算法及250+预训练模型,覆盖目标检测、实例分割、跟踪、关键点检测等方向,其中包括服务器端和移动端高精度、轻量级产业级SOTA模型、冠军方案和学术前沿算法,并提供配置化的网络模块组件、十余种数据增强策略和损失函数等高阶优化支持和多种部署方案,在打通数据处理、模型开发、训练、压缩、部署全流程的基础上,提供丰富的案例及教程,加速算法产业落地应用。
2.1 安装
下载源码,根据readme安装,注意下载源码版本需要根 paddlepaddle 版本对应。
安装过程中,安装cython bbox 失败,解决方法:windows下安装cython-bbox失败。下载资源:cython+bbox-0.1.3
2.2 运行
PaddleDetection 内置一个高效、高速的人脸检测解决方案,包括最先进的模型和经典模型
python tools/infer.py -c configs/face_detection/blazeface_1000e.yml -o weights=https://paddledet.bj.bcebos.com/models/blazeface_1000e.pdparams --infer_img=C:\Users\supre\Desktop\faces\all.jpg --output_dir=infer_output/ --draw_threshold=0.6
三、DeepFace
Deepface 是一个轻量级的人脸面部识别和面部属性分析(年龄、性别、情感和种族)框架。它是一个混合的人脸识别框架,包装了最先进的模型:VGG-Face, Google FaceNet, OpenFace, Facebook DeepFace, DeepID, ArcFace, Dliband SFace.
实验表明,人类在面部识别任务上的准确率为97.53%,而这些模型已经达到并通过了这个准确率水平。
3.1 安装
pip install deepface
3.2 检测人脸位置
from deepface import DeepFacefrom deepface.detectors import FaceDetectorimport cv2img_path = "C:\\Users\\supre\\Desktop\\faces\\all.jpg"detector_name = "opencv"img = cv2.imread(img_path)detector = FaceDetector.build_model(detector_name) #set opencv, ssd, dlib, mtcnn or retinafaceobj = FaceDetector.detect_faces(detector, detector_name, img)faces = []regions = []for o in obj: face, region = o faces.append(face) regions.append(region)for (x, y, w, h) in regions: cv2.rectangle(img, (x, y), (x+w, y + h), (0, 0, 255), 2)cv2.imwrite("all_deep_face.jpg", img)cv2.imshow("faces", img)cv2.waitKey(0)print("there are ",len(obj)," faces")
3.3 人脸属性分析
运行下面代码会从 github 下载训练好的模型文件,如果下载太慢可手动下载:https://github.com/serengil/deepface_models/releases/
from deepface import DeepFaceobj = DeepFace.analyze(img_path = "faces/huge.jpg", actions = ["age", "gender", "race", "emotion"])print(obj)
输出:
{"age": 31, "region": {"x": 141, "y": 90, "w": 92, "h": 92}, "gender": "Man", "race": {"asian": 86.62416855240873, "indian": 0.2717677898641103, "black": 0.025535856615095234, "white": 11.001530200334203, "middle eastern": 0.36970814565319693, "latino hispanic": 1.707288910883004}, "dominant_race": "asian", "emotion": {"angry": 4.005255788877951, "disgust": 1.1836746688898558e-05, "fear": 91.75890038960578, "happy": 1.023393651002267, "sad": 0.9277909615809299, "surprise": 2.081933555420253, "neutral": 0.20271948350039026}, "dominant_emotion": "fear"}
四、insightface
insightface 是一个开源的二维和三维深度面部分析工具箱,主要基于 PyTorch 和 MXNet。实现了很多人脸识别、人脸检测和人脸对齐算法,为训练和部署进行了优化。
4.1 安装
pip install insightface
4.2 运行
运行出现报错:TypeError: __init__() got an unexpected keyword argument "provider_options"
查找资料Error “got an unexpected keyword argument ‘provider_options’” when running quick example of insightface得知:是由于onnxruntime 版本过低导致,更新版本
pip install onnxruntime==1.6.0
import cv2import numpy as npimport insightfacefrom insightface.app import FaceAnalysisfrom insightface.data import get_image as ins_get_imageapp = FaceAnalysis(providers=["CUDAExecutionProvider", "CPUExecutionProvider"])app.prepare(ctx_id=0, det_size=(640, 640))img = ins_get_image("C:\\Users\\supre\\Desktop\\faces\\all")faces = app.get(img)rimg = app.draw_on(img, faces)cv2.imwrite("./all_output.jpg", rimg)
五、SeetaFaceEngine
SeetaFaceEngine 是一个开源的C++人脸识别引擎,由中科院计算所山世光研究员带领的人脸识别研究组研发。代码基于C++实现,且不依赖于任何第三方的库函数,开源协议为BSD-2,可供学术界和工业界免费使用它可以运行在CPU上。它包含人脸检测、人脸对准和人脸识别三个关键部分,是构建真实人脸识别应用系统的必要和充分条件
5.1 编译
SeetaFaceEngine 包含三部分,所以需要使用 cmake 编译三次,编译方法见 readme
5.2 人脸检测
#include#include#include#include#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "face_detection.h"using namespace std;int main(int argc, char** argv) { const char* img_path = "C:\\Users\\supre\\Desktop\\faces\\all.jpg"; seeta::FaceDetection detector("E:\\tmp\\SeetaFaceEngine-master\\FaceDetection\\model\\seeta_fd_frontal_v1.0.bin"); detector.SetMinFaceSize(40); detector.SetScoreThresh(2.f); detector.SetImagePyramidScaleFactor(0.8f); detector.SetWindowStep(4, 4); cv::Mat img = cv::imread(img_path, cv::IMREAD_UNCHANGED); cv::Mat img_gray; if (img.channels() != 1) cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY); else img_gray = img; seeta::ImageData img_data; img_data.data = img_gray.data; img_data.width = img_gray.cols; img_data.height = img_gray.rows; img_data.num_channels = 1; long t0 = cv::getTickCount(); std::vectorfaces = detector.Detect(img_data); long t1 = cv::getTickCount(); double secs = (t1 - t0)/cv::getTickFrequency(); cout << "Detections takes " << secs << " seconds " << endl; cout << "Image size (wxh): " << img_data.width << "x" << img_data.height << endl; cv::Rect face_rect; int32_t num_face = static_cast(faces.size()); for (int32_t i = 0; i < num_face; i++) { face_rect.x = faces[i].bbox.x; face_rect.y = faces[i].bbox.y; face_rect.width = faces[i].bbox.width; face_rect.height = faces[i].bbox.height; cv::rectangle(img, face_rect, CV_RGB(0, 0, 255), 4, 8, 0); } cv::namedWindow("Test", cv::WINDOW_AUTOSIZE); cv::imwrite("all_1.jpg", img); cv::imshow("Test", img); cv::waitKey(0); cv::destroyAllWindows();}
5.3 face alignment
face alignment 指 通过一定量的训练集(人脸图像和每个图像上相对应的多个landmarks),来得到一个model,使得该model再输入了一张任意姿态下的人脸照片后,能够对该照片中的关键点进行标记.
#include#include#include#include#include "cv.h"#include "highgui.h"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "face_detection.h"#include "face_alignment.h"int main(int argc, char** argv){// Initialize face detection model std::string MODEL_DIR = "E:\\tmp\\SeetaFaceEngine-master\\FaceAlignment\\model\\"; std::string DATA_DIR = "E:\\tmp\\SeetaFaceEngine-master\\FaceAlignment\\data\\"; std::string IMG_PATH = DATA_DIR + "all.jpg"; int pts_num = 5; seeta::FaceDetection detector("E:\\tmp\\SeetaFaceEngine-master\\FaceDetection\\model\\seeta_fd_frontal_v1.0.bin"); detector.SetMinFaceSize(40); detector.SetScoreThresh(2.f); detector.SetImagePyramidScaleFactor(0.8f); detector.SetWindowStep(4, 4); // Initialize face alignment model seeta::FaceAlignment point_detector((MODEL_DIR + "seeta_fa_v1.1.bin").c_str()); //load image cv::Mat img = cv::imread(IMG_PATH, cv::IMREAD_UNCHANGED); cv::Mat img_gray; if (img.channels() != 1) cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY); else img_gray = img; seeta::ImageData img_data; img_data.data = img_gray.data; img_data.width = img_gray.cols; img_data.height = img_gray.rows; img_data.num_channels = 1; std::vectorfaces = detector.Detect(img_data); int32_t face_num = static_cast(faces.size()); std::cout<<"face_num:"<<FACE_NUM; if="" (face_num="=" 0)="" {return 0; } cv::Rect face_rect; for (int32_t i = 0; i < face_num; i++) {face_rect.x = faces[i].bbox.x; face_rect.y = faces[i].bbox.y; face_rect.width = faces[i].bbox.width; face_rect.height = faces[i].bbox.height; cv::rectangle(img, face_rect, CV_RGB(0, 0, 255), 4, 8, 0); // Detect 5 facial landmarks seeta::FacialLandmark points[5]; point_detector.PointDetectLandmarks(img_data, faces[i], points); for (int i = 0; i< pts_num; i++) {cv::circle(img, cvPoint(points[i].x, points[i].y), 2, CV_RGB(0, 255, 0), CV_FILLED); } } cv::namedWindow("Test", cv::WINDOW_AUTOSIZE); cv::imwrite("test.jpg", img); cv::imshow("Test", img); cv::waitKey(0); cv::destroyAllWindows(); return 0;}
5.4 人脸检测相似率
#include#include#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "face_identification.h"#include "recognizer.h"#include "face_detection.h"#include "face_alignment.h"#include "math_functions.h"#include#include#include#includeusing namespace seeta;using namespace std;std::string DATA_DIR = "E:\\tmp\\SeetaFaceEngine-master\\FaceIdentification\\data\\";std::string MODEL_DIR = "E:\\tmp\\SeetaFaceEngine-master\\FaceIdentification\\model\\";int main(int argc, char* argv[]) {// Initialize face detection model seeta::FaceDetection detector("E:\\tmp\\SeetaFaceEngine-master\\FaceDetection\\model\\seeta_fd_frontal_v1.0.bin"); detector.SetMinFaceSize(40); detector.SetScoreThresh(2.f); detector.SetImagePyramidScaleFactor(0.8f); detector.SetWindowStep(4, 4); // Initialize face alignment model seeta::FaceAlignment point_detector("E:\\tmp\\SeetaFaceEngine-master\\FaceAlignment\\model\\seeta_fa_v1.1.bin"); // Initialize face Identification model FaceIdentification face_recognizer((MODEL_DIR + "seeta_fr_v1.0.bin").c_str()); std::string test_dir = DATA_DIR + "test_face_recognizer/"; //load image cv::Mat gallery_img_color = cv::imread(test_dir + "images/liushishi_1.jpg", 1); cv::Mat gallery_img_gray; cv::cvtColor(gallery_img_color, gallery_img_gray, CV_BGR2GRAY); cv::Mat probe_img_color = cv::imread(test_dir + "images/liushishi_2.jpg", 1); cv::Mat probe_img_gray; cv::cvtColor(probe_img_color, probe_img_gray, CV_BGR2GRAY); ImageData gallery_img_data_color(gallery_img_color.cols, gallery_img_color.rows, gallery_img_color.channels()); gallery_img_data_color.data = gallery_img_color.data; ImageData gallery_img_data_gray(gallery_img_gray.cols, gallery_img_gray.rows, gallery_img_gray.channels()); gallery_img_data_gray.data = gallery_img_gray.data; ImageData probe_img_data_color(probe_img_color.cols, probe_img_color.rows, probe_img_color.channels()); probe_img_data_color.data = probe_img_color.data; ImageData probe_img_data_gray(probe_img_gray.cols, probe_img_gray.rows, probe_img_gray.channels()); probe_img_data_gray.data = probe_img_gray.data; // Detect faces std::vectorgallery_faces = detector.Detect(gallery_img_data_gray); int32_t gallery_face_num = static_cast(gallery_faces.size()); std::vectorprobe_faces = detector.Detect(probe_img_data_gray); int32_t probe_face_num = static_cast(probe_faces.size()); if (gallery_face_num == 0 || probe_face_num==0) {std::cout << "Faces are not detected."; return 0; } // Detect 5 facial landmarks seeta::FacialLandmark gallery_points[5]; point_detector.PointDetectLandmarks(gallery_img_data_gray, gallery_faces[0], gallery_points); seeta::FacialLandmark probe_points[5]; point_detector.PointDetectLandmarks(probe_img_data_gray, probe_faces[0], probe_points); for (int i = 0; i<5; i++) {cv::circle(gallery_img_color, cv::Point(gallery_points[i].x, gallery_points[i].y), 2, CV_RGB(0, 255, 0)); cv::circle(probe_img_color, cv::Point(probe_points[i].x, probe_points[i].y), 2, CV_RGB(0, 255, 0)); } cv::imwrite("gallery_point_result.jpg", gallery_img_color); cv::imwrite("probe_point_result.jpg", probe_img_color); // Extract face identity feature float gallery_fea[2048]; float probe_fea[2048]; face_recognizer.ExtractFeatureWithCrop(gallery_img_data_color, gallery_points, gallery_fea); face_recognizer.ExtractFeatureWithCrop(probe_img_data_color, probe_points, probe_fea); // Caculate similarity of two faces float sim = face_recognizer.CalcSimilarity(gallery_fea, probe_fea); std::cout << "相似率:"<<SIM <<endl;="" return="" 0;}
使用两张刘诗诗照片对比:相似率为 0.679915
六、OpenFace
OpenFace, 一个旨在为计算机视觉和机器学习研究人员、情感计算社区和有兴趣构建基于面部行为分析的交互式应用程序的人使用的工具。OpenFace是第一个能够进行面部地标检测、头部姿态估计、面部动作单元识别和眼睛-注视估计的工具包,它具有可用的源代码,可用于运行和训练模型。代表 OpenFace 核心的计算机视觉算法在上述所有任务中都展示了最先进的结果。此外,我们的工具能够实时性能,并能够运行在非专业的硬件上, 例如一个简单的网络摄像头。
6.1 安装
window 32位:https://github.com/TadasBaltrusaitis/OpenFace/releases/download/OpenFace_2.2.0/OpenFace_2.2.0_win_x86.zip64位:https://github.com/TadasBaltrusaitis/OpenFace/releases/download/OpenFace_2.2.0/OpenFace_2.2.0_win_x64.zip Linux:https://github.com/TadasBaltrusaitis/OpenFace/wiki/Unix-InstallationMac:https://github.com/TadasBaltrusaitis/OpenFace/wiki/Mac-Installation
6.2 运行
OpenFace windows 版安装完成后还需要下载模型数据:https://github.com/TadasBaltrusaitis/OpenFace/wiki/Model-download,放在安装目录\model\patch_experts下面。
OpenFace 还提供了一些工具用于在命令行实现人脸识别
FaceLandmarkImg 从照片中识别人脸,还是以仙剑3海报做例子放在samples下面,再新建输出文件夹out_dir,开始识别人脸
FaceLandmarkImg.exe -f "samples/all.jpg" -out_dir "out_dir"
输出结果为:
FaceLandmarkVid 从视频中识别人脸
FaceLandmarkVidMulti 从多个视频中识别人脸
FeatureExtraction 用于包含单个人脸的分析
参考
windows下安装cython-bbox失败
标签:
相关推荐:
最新新闻:
- 通过Chrome来知道提交加价的请求应该是什么?_今日观点
- 母亲节送什么好_母亲节送妈妈七大类型礼物_每日视点
- “平均数”到底是什么意思?加权平均数又是什么意思?_世界独家
- 【焦点热闻】世界上最简洁的人脸识别库:face_recognition
- 舍入模式有哪些?八种舍入模式的解释 每日视讯
- 如何下载Navicat数据库管理编辑软件?如何打开.db数据库文件? 世界头条
- FB是什么意思?PCB原理图中的FB是什么意思?
- QQ象棋java通用版怎么下载?QQ中国象棋官方免费版下载
- 【全球速看料】启动定时器t0的工作指令是什么?PLC通电延时定时器(TON)应用举例
- dm-verity是如何保证安全的?dm-verity-ramdisk文件系统校验的解决方法:今日关注
- 如何进行正交试验设计?试验设计—正交表的使用方法:每日时讯
- 全球最资讯丨如何在windows上交叉编译ffmpeg?具体操作步骤
- 全球热讯:Spring之AOP|使用场景、原理、配置、使用方式
- 《孤岛惊魂6》将于2月16日在全平台开启免费试玩
- 【环球报资讯】RAM展示概念图 或推出电动皮卡
- 环球观速讯丨RTX4060!机械革命游戏本只要6199
- 基于体温监测 三星手表将推出经期管理功能
- 健康度掉太快 三星升级990Pro固件-最新资讯
- 2022年度智能穿戴设备创新排行榜发布 智能健康穿戴驶入快车道
- 兄弟管道官网发现《超级马里奥兄弟大电影》隐藏海报 全球快消息
- 渠道商预售 AMD游戏神U锐龙7000 144MB缓存版:每日消息
- 南宁一男子商场内刺伤一女子后投江!警方通报
- 死亡空间重制版欧洲前两周销量不及木卫四协议_快看点
- 《大富翁11》现已完全支持Steam Deck-焦点热议
- 超狂身材曲线太过分 印尼电竞女选手火辣至极
- 世界快资讯丨索尼FE 50mm F1.4 GM镜头外观曝光
- 情人节惊喜福利:购影驰RTX 30显卡,送穿越火线大礼包 天天快看点
- 环球观察:潮邦集成灶怎么样?真实用户有话说!
- 优化碰撞监测 苹果iOS16更新再次尝试-今亮点
- 更新iOS 谷歌服务大范围无法访问
- 全球快资讯:2020最新新年对联大全_春节对联集锦大全
- 看视频软件app排行榜_看视频软件
- 2019立秋为什么吃饺子 立秋适合吃饺子吗
- 2023年情人节单日票房破两亿 《满江红》领跑|当前速递
- 每日速看!永安林业违反会计准则 被出具警示函
- 《战神》总监承认同伴破坏解谜体验:做的时候没想到-每日速递
- 世界最资讯丨XGPU和EA Play会员已可试玩《狂野之心》 时长约10小时
- 【世界热闻】上海迪士尼度假区与三星电子达成推广合作, 庆祝三星新品手机发布
- 索尼正在研究如何把PS5塞进桌斗里:抱着送人太沉了|资讯
- 程序员的好帮手?网友开始尝试用ChatGPT开发游戏
- 天天要闻:早期版的《战神5》 奎爷曾被雷神杀死
- “超时空办公”时代已来 联想发布智慧办公白皮书 每日时讯
- 【聚看点】拓界影像稳劲性能 三星Galaxy S23系列旗舰手机国内发布
- 速递!“逆城市”建设类游戏《伊始之地》宣传片公开
- 即时:外国女孩穿汉服COS东方美人 网友感慨:这波中华文化输出赢麻了
- 滤镜景点诈骗又来了!7朵郁金香撑起上海武康路流量
- 伊朗外交部发言人:总统莱希访华将加强伊中关系
- 当前关注:关于国际市场营销案例分析
- 暗影精灵9Plus高能版预售 酷睿i7+RTX 4070 10999元
- 世界观热点:爸爸因姜姓难取名给孩子叫去寒 网友吐槽略随意
- 暗影精灵9Plus高能版预售 酷睿i7+RTX 4070 10999元
- 焦点速递!不止情人节,三星BESPOKE缤色铂格系列家电守护浪漫每一天
- 环球快看点丨CT检查激增,海信智慧阅片室助力三甲医院“阅图”效率提升
- 以爱为名 浪漫相伴 尼康精选挚爱佳作献礼甜蜜情人节
- 情人节送什么礼物? 购铭瑄RTX3060及以上显卡获赠《穿越火线》稀有礼包
- 情人节好礼! 购映众显卡赠《穿越火线》限定豪礼
- 环球资讯:《霍格沃茨之遗》御剑飞行:这才是飞行扫帚正确用法
- 恐怖电影《梅根》定档3月17日:“窒友”AI娃娃来了!|今日观点
- 每日观点:桌面版RTX 4060将使用完整版AD107核心
- 首批生态合作伙伴!太平洋网络宣布接入百度“文心一言”|焦点热门
- 播报:北京门头沟区明天停电!这些地区将受影响
- 中宣部:启动网游正能量引领计划 让中国游戏绽放光彩:天天时快讯
- 每日快讯!《三体》电视剧今晚将迎来大结局!古筝行动来袭
- 《三体》史强名场面大多是于和伟设计的:包括广场舞_最新
- 快看:快来游玩《PGA TOUR 2K23》在Tony Finau的梦幻球场上尽情挥杆
- 每日速看!卡牌潮玩产业生态联盟正式成立
- 【世界报资讯】1月手游出海收入榜 《原神》蝉联第一
- 全球今头条!《狂野之心》游戏太难?连游戏总监自己都打不过去
- 虚拟人雕妹EP单曲MV《斑斓》首发
- 享誉全球的PFU扫描仪将于2023年4月切换至理光品牌上市_每日简讯
- 潮邦集成灶怎么样?三大维度全面解析:世界动态
- 当前简讯:雷蛇灵刃18上架:首发价23999元、可选RTX 4060 RTX 4070显卡
- 苹果iOS 16.3.1正式推送:优化车祸检测功能 减少误判
- 曝魅族20内部代号凤凰 双版本机型 起售价3500元 世界播资讯
- 小岛秀夫晒与《死亡搁浅2》两位女主合影:左拥右抱美得很:全球新要闻
- 23999元起 雷蛇新款灵刃18上架:可选RTX4060/70
- 全球观速讯丨贾跃亭FF91首款准量产车运抵中国 进行测试和验证
- 《流浪地球2》导演郭帆:我们在这方面弯道超车好莱坞|最资讯
- 环球今日讯!《仙剑奇侠传7》DLC上线 N卡光追开启/关闭对比图
- 国家药监局发布15批次化妆品检出禁用原料的通告|聚看点
- XPE有哪些安全特性?XPE的安全特性介绍|全球新要闻
- isp接口IP地址均为公有地址该如何配置?R6teInetR5公有IP地址的使用方法|世界百事通
- 安卓开发Android studio学习笔记 利用SQLiteDatabase操作数据表
- 浮点保留两位小数 R语言初级教程 每日热门
- 小米Connectify无法连接xp怎么办?解决方法步骤|天天快报