无聊逛百度 发现人物识别 ,就产生了一个大胆的想法
想到这个红框框 ,在游戏里是不是很熟悉? 做个辅助瞄准???
于是录制了一个视频 尝试识别游戏人物,发现完全可以
这。。。岂不是无敌
B站 高清视频 :https://www.bilibili.com/video/BV1HZ4y1g7tb/
对游戏人物识别
如果截取游戏每帧 识别 转成屏幕对应坐标 画方框 完全可以实现,不过识别速度也要加快一下,有兴趣的大佬们,可以接着这个思路去实现
贴出 dome 代码
video2frame 方法是 拆封每帧、识别、画方框
generate_video 是将 画完的每帧 合成视频
import os
import cv2
import paddlehub as hub
def video2frame():
"""
:param video_path: 视频存放地址
:param frame_save_path: 生成图片存放地址
:param time_interval: 帧数的间隔,也就是说隔几帧去一次
:return:
"""
video_path = "./5.mp4"
time_interval = 5
vidcap = cv2.VideoCapture(video_path)
success, image = vidcap.read() #读取视频
count = 0
while success:
success, image = vidcap.read()
count += 1
if count % time_interval == 0:
pedestrian_detector = hub.Module(name="yolov3_darknet53_pedestrian")
pedestrian_detector.object_detection(images=[image], visualization=True, output_dir="jpg")
img = cv2.imread("./jpg/image_numpy_0.jpg")
cv2.imwrite('./jpg/frame%d.png' % count, img)
print(count)
def generate_video():
fps = 6
size = (544, 960)
videoing = cv2.VideoWriter("./demo5.mp4", cv2.VideoWriter_fourcc(*'XVID'), fps, size, 1)
path = "./jpg/"
for index, i in enumerate(os.listdir(path)):
img = cv2.imread('./jpg/frame%d.png' % (index+5))
if img is not None:
print(img.shape)
videoing.write(img)
videoing.release()
if __name__ == "__main__":
# video2frame()
generate_video()