1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chang-zhili-face-detection

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
face-tracking-Version1.py 2.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
常志立 Отправлено 17.04.2022 04:29 5710a94
# 判别相关滤波器 (discriminative correlation filter, DCF) 的视觉跟踪器
# face tracking, does not support changing the tracking object
import cv2
import dlib
# basic information
def draw_text_info():
# 绘制文本的位置
menu_pos_1 = (10, 20)
menu_pos_2 = (10, 40)
# 绘制菜单信息
cv2.putText(frame, "using '1' to re-initialize tracking", menu_pos_1, cv2.FONT_HERSHEY_SIMPLEX, 0.5,
(255, 255, 255), 1)
if tracking_face:
cv2.putText(frame, "tracking the face", menu_pos_2, cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1)
else:
cv2.putText(frame, "detecting a face to initialize tracking...", menu_pos_2, cv2.FONT_HERSHEY_SIMPLEX, 0.5,
(0, 0, 255), 1)
# 创建视频捕获对象
# 连接本地我的手机,同一个局域网
# video="http://admin:224114@192.168.1.9:8081/video"
# capture = cv2.VideoCapture(video)
# 打开本地摄像头
capture = cv2.VideoCapture(0)
# load face detector
detector = dlib.get_frontal_face_detector()
# initialize the tracker
tracker = dlib.correlation_tracker()
# 当前是否在追踪人脸 whether the face is currently being tracked
tracking_face = False
while True:
# capture the frames
ret, frame = capture.read()
# drawing basic information
draw_text_info()
if tracking_face is False:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 尝试检测人脸以初始化跟踪器
rects = detector(gray, 1)
# 通过判断是否检测到人脸来决定是否启动追踪
if len(rects) > 0:
# start tracking
print("face number:", len(rects))
tracker.start_track(frame, rects[0])
tracking_face = True
if tracking_face is True:
# 更新跟踪器并打印测量跟踪器的置信度
print(tracker.update(frame))
# 获取被跟踪对象的位置
pos = tracker.get_position()
# 绘制被跟踪对象的位置
cv2.rectangle(frame, (int(pos.left()), int(pos.top())), (int(pos.right()), int(pos.bottom())), (0, 255, 0), 3)
# 捕获键盘事件
key = 0xFF & cv2.waitKey(1)
# 按 1 初始化追踪器
if key == ord('1'):
tracking_face = False
# 按 q 退出
if key == ord('q'):
break
# 显示结果
cv2.imshow("face tracking using dlib frontal face detector and correlation filter for tracking",
cv2.resize(frame, (1000, 600)))
# 释放所有资源
capture.release()
cv2.destroyAllWindows()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/chang-zhili-face-detection.git
git@api.gitlife.ru:oschina-mirror/chang-zhili-face-detection.git
oschina-mirror
chang-zhili-face-detection
chang-zhili-face-detection
master