|
stable diffusion,fooocus能识别图片,甚至能识别视频,那他们的原理是什么呢?
手势的识别:
python代码:
import cv2
import mediapipe as mp
import time
cap = cv2.VideoCapture(0)
mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils
pTime = 0
cTime = 0
while True:
success, img = cap.read()
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 2 = to
results = hands.process(imgRGB)
# print(results.multi_hand_landmarks)//检查手坐标输出
if results.multi_hand_landmarks:
for handLms in results.multi_hand_landmarks:
for id, lm in enumerate(handLms.landmark):
# print(id, lm)
h, w, c = img.shape
cx, cy = int(lm.x * w), int(lm.y * h)
print(id, cx, cy)
# if id == 4:
cv2.circle(img, (cx, cy), 15, (255, 0, 255), cv2.FILLED)
mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS)
cTime = time.time()
fps = 1 / (cTime - pTime)
pTime = cTime
cv2.putText(img, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,
(255, 255, 255), 2)
cv2.imshow("Image", img)
cv2.waitKey(1)
人脸识别:
import mediapipe as mp
import cv2
import numpy as np
if __name__ == "__main__":
# 构建脸部特征提取对象
mp_face_mesh = mp.solutions.face_mesh
face_mesh = mp_face_mesh.FaceMesh(static_image_mode=False,
max_num_faces=1,
refine_landmarks=True,
min_detection_confidence=0.5,
min_tracking_confidence=0.5)
# 构建绘图对象
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
# 开启摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取一帧图像
success, img = cap.read()
if not success:
continue
# 获取宽度和高低
image_height, image_width, _ = np.shape(img)
# BGR 转 RGB
img_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 进行特征点提取
results = face_mesh.process(img_RGB)
if results.multi_face_landmarks:
for face_landmarks in results.multi_face_landmarks:
# 利用 内置的mp_drawing 进行绘图
# mp_drawing.draw_landmarks(image=img,
# landmark_list=face_landmarks,
# connections=mp_face_mesh.FACEMESH_TESSELATION,
# landmark_drawing_spec=None,
# connection_drawing_spec=mp_drawing_styles
# .get_default_face_mesh_tesselation_style())
# mp_drawing.draw_landmarks(image=img,
# landmark_list=face_landmarks,
# connections=mp_face_mesh.FACEMESH_CONTOURS,
# landmark_drawing_spec=None,
# connection_drawing_spec=mp_drawing_styles
# .get_default_face_mesh_contours_style())
# mp_drawing.draw_landmarks(
# image=img,
# landmark_list=face_landmarks,
# connections=mp_face_mesh.FACEMESH_IRISES,
# landmark_drawing_spec=None,
# connection_drawing_spec=mp_drawing_styles
# .get_default_face_mesh_iris_connections_style())
# 自行计算478个关键点的坐标 并绘制
if face_landmarks:
# 计算关键点坐标
for i in range(478):
pos_x = int(face_landmarks.landmark\[i\]. x* image_width)
pos_y = int(face_landmarks.landmark\[i\]. y* image_height)
cv2.circle(img, (pos_x,pos_y), 3, (0,255,0),-1)
cv2.imshow("face-mesh",img)
key = cv2.waitKey(1) & 0xFF
# 按键 "q" 退出
if key == ord('q'):
break
cap.release()
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,安装的时候是 opencv_python,但在导入的时候采用 import cv2。更多
MediaPipe 是由 Google Research 開發的開源框架,於2019年6月提出的開源框架,用於構建多媒體機器學習應用。更多
附:
百度ai大脑能从视频中分析出:
1.视频内容分析,为视频文件或直播流的内容打标签,可输出视频的场景、公众人物、地点、实体和关键词等结构化标签信息。
2.图片内容分析,为图片内容打标签,可输出图片中公众人物、logo、实体和关键词等结构化标签信息。
3.智能封面,通过对视频、图像等内容理解,从图像清晰度、构图美学和精彩程度等方面分析,生成视频的静态封面、动态封面和视频封面。
4.精彩视频分析,通过场景切分、音频特征分析等技术,提取影视综长视频中的高光时刻。
>>来源<<
腾讯云
1、视频内容理解
传统的视频能力就是将现场的视频收集传送到后台,而AI视频分析可对视频中的对象、场景、动作等内容进行识别,从而对视频进行标记与分类。
2、视频目标检测和跟踪
AI视频分析还支持自动识别算法,例如,大家熟知的TSINGSEE青犀视频智能分析平台,就可以识别视频中人、车、物体、行为而等,并通过智能跟踪算法追踪车辆等运动轨迹。
3、行为分析
AI视频分析中必不可少还有行为分析能力,如人的动作、表情、姿态等,就像如今应用十分广泛的TSINGSEE青犀AI算法中的人员在岗离岗、人员跌倒、人员打电话抽烟等。
目前旭帆科技已经将人工智能融合到平台之中,里面的实用算法更是涵盖到了各个场景之中,包括智慧工厂、智慧工地、智慧社区、智慧校园等。除此之外,AI算法平台/视频智能分析系统还能与安防监控系统EasyCVR视频汇聚平台结合使用,最大限度提高视频数据的利用率和效率,为用户提供更加智能化和个性化的行业可视化视频监管解决方案。
来源:腾讯云社区
google云
精确的视频分析:识别存储的视频和流式视频中的 2 万多种对象、地点和操作。提取视频级、镜头级或帧级的丰富元数据。使用 AutoML Video Intelligence 创建您自己的自定义实体标签。
简化媒体管理:按照搜索文档的方式搜索视频目录。并且可以提取元数据,以将视频内容编入索引并对其进行整理、搜索、控制和过滤,从而提供相关度最高的结果。
轻松构建智能的视频应用:使用流式视频注释服务近乎实时地从视频中提取实用信息,并根据检测到的对象触发事件。使用精选短片集、推荐等功能,打造富有吸引力的客户体验。
来源:google云
技术实现原理:
AI 引擎会自动逐帧详细检查视频流,提供 24/7 稳定、可靠的结果。
知乎:
实时 AI 视频分析如何工作?
在设计 AI 视频分析系统时,开发工程师最初会从多个角度研究和分析问题。这有助于他们了解问题的背景,并评估哪些潜在的技术方法将提供最佳结果。
接下来,他们继续创建和测试 AI 算法,以识别视频帧中所需的对象和事件。这是最具挑战性的阶段,涉及数学、软件知识和反复试验。
一旦找到获胜的算法解决方案,开发工程师就会训练系统通过将其暴露于大量图像来识别和分类对象。例如,为了训练系统识别猫,将包含猫(和非猫)的大型图像数据集输入机器,以便它可以从尽可能多的示例中学习猫的样子。
随着训练阶段的完成,该系统已准备好在现实生活中进行部署。人工智能引擎的一个关键特性是,随着时间的推移,它会继续自我学习,适应从视频流中接收到的数据和变化。 开发工程师还将继续观察系统的性能并在必要时进行优化。
知乎 |
|