前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行代码快速图像识别~一排代码搞定视频识别

一行代码快速图像识别~一排代码搞定视频识别

作者头像
一个有趣的灵魂W
发布2020-09-15 16:31:32
7040
发布2020-09-15 16:31:32
举报

一个有趣的灵魂W

一行代码能干嘛?这种噱头式的开头现在估计已经不香了。。。我只能在别人挖好的土堆上再刨一铲子。

没错,咱们用的是Python,一行代码它就是能干很多事。用别人封装好的第三方库,我们可以用一行代码傻瓜式调用,干许多大事。

今天我们将使用一行代码实现深度学习里的图像识别,再将图像识别拓展到视频~进行视频流的物体识别。

我们将用到pixellib库和mask_rcnn_coco.h5这个训练好的模型。其中pixellib这个库可以非常简单的实现图像分割。我们可以利用pip install进行安装。github的开源地址为:

代码语言:javascript
复制
https://github.com/ayoolaolafenwa/PixelLib

然后你还需要下载mask_rcnn_coco.h5这个训练好的模型~

下载地址在文末~

关于模型,我就不做过多介绍啦,有兴趣可以自行搜索。

好了,当你跟我一样把所有准备工作都完善了之后,我们就开始后续的步骤吧。。。

哦对了,请自行准备一个小视频。

啊----不,是小小的视频

让我们开始吧:

代码语言:javascript
复制
import cv2
vc = cv2.VideoCapture("D:/b/2.mp4") # 设置视频位置
c = 1
if vc.isOpened():
rval, frame = vc.read()
else:
rval = False
timeF = 1 # 设置帧数
while rval:
rval, frame =vc.read()
if(c%timeF==0):
cv2.imwrite('D:/b/mp4/'+ str(c)+'.jpg',frame)  # 设置图片存储的位置
c=c+1
cv2.waitKey(1)
vc.release()
import pixellib
import os
from pixellib.instance import instance_segmentation
segment_image = instance_segmentation()
segment_image.load_model('D:/b/mask_rcnn_coco.h5')###运行过才知道h5是训练好的模型,需要单独下载
path='D:/b/mp4'
inf=os.listdir('D:/b/mp4')
inf.sort(key=lambda x:int(x[:-4]))
for i in range(len(inf)):
segment_image.segmentImage('D:/b/mp4/'+inf[i], output_image_name = 'D:/b/newmp4/'+inf[i], show_bboxes = True)
#原视频图片和新视频图片合并
path='D:/b/mp4'
path2='D:/b/newmp4'
inf=os.listdir(path)
inf2=os.listdir(path2)
inf.sort(key=lambda x:int(x[:-4]))
inf2.sort(key=lambda x:int(x[:-4]))
for i in range(len(inf)):
a=cv2.imread(path+'/'+inf[i])
b=cv2.imread(path2+'/'+inf2[i])
c=np.column_stack((a,b))
cv2.imwrite('D:/b/new2/'+inf[i],c)
# 图片合成视频
filelist = os.listdir('D:/b/new2') #获取该目录下的所有文件名
filelist.sort(key=lambda x:int(x[:-4]))
fps = 24
size=(640,240)
file_path ='D:/b/5.mp4'#导出路径
fourcc = cv2.VideoWriter_fourcc('D', 'I', 'V', 'X')#不同视频编码对应不同视频格式(例:'I','4','2','0' 对应avi格式)
video = cv2.VideoWriter( file_path, fourcc, fps, size )
for item in filelist:
item = 'D:/b/new2/' + item
img = cv2.imread(item)  #使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。
video.write(img)        #把图片写进视频
video.release() #释放

哦霍霍~下面是结果的视频。。。http://mpvideo.qpic.cn/0bf2taaacaaa7qaht6gucrpfbggdagmaaaia.f10004.mp4?dis_k=9677c98b10a9491f840d21bb18772cb5&dis_t=1600158599

关注公众号,回复关键词 rcnn

就可以下载模型了。

另外,模型下载如果速度较慢~可以参考这个工具:

用这个工具下百度网盘文件,简直飞起 F君的小尾巴,公众号:一个有趣的灵魂W百度网盘下载很慢吧,Pandownload之后的新工具-亿寻

打完收工!往期

最新版中国范围路网数据来啦(OpenStreet Map,OSM)

python调用cmd运行GDAL报错解决:ERROR 1: PROJ

利用python把shp文件写入PostgresSQL数据库

ArcGIS入门之-建模工具-迭代掩膜提取

Python-gdal离线文档下载

微信号:一个有趣的灵魂W

关注我们,了解更多

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个有趣的灵魂W 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档