视频高层特征分类实际测试

上一篇https://blog.csdn.net/SPESEG/article/details/103875916

用的抖音的视频数据,测试找来的我司视频,看看效果如何。

策略:随机抽帧20~40帧,堆叠所有帧,按照index选帧,然后整体进入inceptionV3模型,再进入分类模型,没啥技术含量。

概率作为相似程度,可以这么理解。但我估计效果并不会很好。

考虑到时间,如果能有什么快速的方法获取视频的帧数,这将是比较好的。

先固定随机选取30帧,用ffmpeg库得到总帧数,然后依据index用cv2获取相应帧,或者其他解码器。

1-先做特征相似度

2-再经过[高层特征]二分类

 

1.1我基本上提取到了avg feature,但这里计算相似度或者叫测度,需要用到树的概念,不错,正是你学数据结构中遇到的树。

但这种树有很多种,目前可试试基本的K-d树,树的结构是将线性复杂度转化成log(n)复杂度.sklearn中已经集成好了现成的API,不必费劲。

但是我找了个github上的是用docker搞得,卧槽,老子对这玩意一窍不通,想从中拿出自己所要的都不方便,虽说也是py写的。

很多项目都是如此,结构化太强了,真是耽误事。想读懂代码必须搞定每个脚本。

老子想测试下MNIST用kd树搞一下就不行,卧槽,这太难了

相似度用的KNN做的,这个博文中有提到结果。我只能说前面50个可能还是正确的,后面可能就不行了,也或许前面30个

1.2我司视频随机30帧inceptionV3特征相似度在这篇文中已有提及,不过并没有实际做query,由t-SNE图也可知道效果不会很好。

下面是query结果:然而看起来还不太差【注:其实012是一个类别,3是一个类别】,当然有差的结果,如下

#bad case
query data id 410, label 1
result:
 {10754, 1540, 7684, 6151, 3080, 5129, 1554, 3093, 1558, 22, 3614, 8737, 8226, 11301, 3625, 6701, 9264, 7223, 573, 62, 3138, 77, 10318, 79, 1106, 595, 2134, 6232, 92, 11360, 1126, 3688, 3189, 5755, 7294, 4740, 3214, 1177, 11941, 1190, 3752, 6648, 7340, 6841, 5313, 196, 3783, 7369, 6865, 9432, 5861, 9966, 11510, 3845, 5415, 8495, 9519, 6963, 3388, 1865, 1867, 332, 3919, 7509, 347, 6493, 8035, 5489, 10610, 3441, 3955, 2933, 381, 7550, 6549, 410, 932, 9128, 3496, 10666, 427, 3500, 429, 1456, 1969, 6579, 7607, 955, 446, 2499, 9172, 7125, 985, 6106, 2019, 8677, 10218, 7661, 7150, 7160}
results' label :
 [3 2 3 3 3 3 2 3 2 0 3 3 3 3 3 3 3 3 1 0 3 0 3 0 2 1 3 3 0 3 2 3 3 3 3 3 3
 2 3 2 3 3 3 3 3 0 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 1 3 3 1 3 3 3 3 3 3 3 1 3
 3 1 1 3 3 3 1 3 1 2 2 3 3 1 1 3 3 3 2 3 2 3 3 3 3 3]

query data id 1989, label 2
result:
 {6658, 7184, 8720, 3091, 1563, 31, 544, 10278, 1575, 1576, 5673, 11307, 2091, 2095, 561, 1589, 5688, 1081, 8762, 5696, 67, 1604, 4166, 3661, 8781, 1617, 594, 8278, 2144, 7778, 10342, 1127, 10857, 118, 10360, 4234, 2188, 11405, 1678, 1691, 1186, 7342, 8879, 7351, 9915, 5822, 7881, 3804, 221, 733, 8926, 1250, 1769, 7404, 11503, 6899, 1278, 1797, 2312, 6409, 6413, 6925, 11030, 1302, 2849, 291, 804, 8486, 7476, 6456, 10563, 327, 340, 9049, 1898, 10630, 4487, 2958, 398, 2449, 1433, 1435, 9627, 926, 1441, 1955, 422, 1453, 941, 1458, 11187, 4026, 1989, 5080, 1497, 2008, 4063, 10217, 8172, 7164}
results' label :
 [3 3 3 3 2 0 1 3 2 2 3 3 2 3 1 2 3 2 3 3 0 2 3 3 3 2 1 3 3 3 3 2 3 0 3 3 3
 3 2 2 2 3 3 3 3 3 3 3 0 1 3 2 2 3 3 3 2 2 3 3 3 3 3 2 3 1 1 3 3 3 3 1 1 3
 2 3 3 3 1 3 2 2 3 1 2 2 1 2 1 2 3 3 2 3 2 2 3 3 3 3]

query data id 861, label 1
result:
 {1, 10246, 10256, 7699, 5665, 9771, 3629, 4653, 5681, 54, 11840, 7238, 2649, 9819, 98, 4724, 8823, 8839, 7310, 8336, 2718, 9896, 6824, 1192, 9395, 7860, 8896, 3780, 10960, 4309, 8418, 9443, 2792, 8426, 5869, 753, 2290, 3324, 9209, 3837, 2310, 7946, 267, 6416, 11025, 6937, 8988, 6432, 5414, 6447, 8506, 316, 9533, 6975, 10053, 8519, 6475, 4429, 2894, 10063, 6480, 5464, 861, 10594, 1380, 5996, 9582, 11120, 7027, 2941, 11138, 4996, 7046, 11655, 2450, 10649, 1949, 3998, 9629, 10657, 5031, 10151, 11178, 6066, 8115, 9153, 3010, 7630, 9166, 4565, 8155, 4064, 7654, 7656, 9194, 11248, 7154, 7667, 7161, 4605}
results' label :
 [0 3 3 3 3 3 3 3 3 0 3 3 3 3 0 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 1 3
 3 3 3 3 3 1 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 1 3 2 3 3 3 3 3 3 3 3 3
 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3]

query data id 677, label 1
result:
 {5640, 1033, 3087, 4627, 8224, 10787, 10280, 9258, 3627, 11820, 3630, 10800, 4156, 8765, 4157, 6716, 10812, 8770, 10818, 11335, 1095, 11849, 4168, 6220, 10831, 6738, 95, 96, 8290, 8294, 6248, 2664, 5226, 10861, 9336, 1667, 1670, 8864, 677, 2728, 691, 6845, 11970, 1218, 6862, 3793, 4306, 1749, 1751, 10968, 11487, 5855, 737, 3310, 3314, 3319, 276, 11542, 9495, 6424, 3360, 6436, 8998, 4922, 1343, 2377, 333, 11086, 4438, 1885, 7012, 8565, 7546, 902, 7049, 6548, 3989, 3988, 2979, 1444, 2986, 5554, 435, 1973, 11707, 6590, 10181, 10183, 8137, 8144, 11217, 10704, 2007, 8160, 8161, 9696, 1510, 8167, 11251, 5622}
results' label :
 [3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 0 0 3 3 3 3 3 3 3 2 2
 3 1 3 1 3 3 2 3 3 3 2 2 3 3 3 1 3 3 3 1 3 3 3 3 3 3 3 2 3 1 3 3 2 3 3 3 1
 3 3 3 3 3 2 3 3 1 2 3 3 3 3 3 3 3 3 2 3 3 3 2 3 3 3]

 

2关于再分类,下面用我司数据再测试看看

模型结构很简单,没有用什么复杂的layer,都是基本的,dense三层,这也是推荐中最基本的了。

Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 128)               262272    
_________________________________________________________________
activation_1 (Activation)    (None, 128)               0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 128)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 32)                4128      
_________________________________________________________________
dropout_2 (Dropout)          (None, 32)                0         
_________________________________________________________________
batch_normalization_1 (Batch (None, 32)                128       
_________________________________________________________________
dense_3 (Dense)              (None, 2)                 66        
_________________________________________________________________
activation_2 (Activation)    (None, 2)                 0         
=================================================================
Total params: 266,594
Trainable params: 266,530
Non-trainable params: 64

由于我司数据其中分类并不好,比如说在1视频中有些视频并不是太好,可能就不是1的类别,可能是沾点边的那种,也被分到1了。总体采用二分类的模型结果为acc75%以上,最高为80%,最好的模型为dense5_14_0.9838.hdf5,只有6M,如果压缩估计会更小,所以说推荐的网络真的比图像的简单多了。

Model: "sequential_1" ACC=0.8
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 256)               524544    
_________________________________________________________________
activation_1 (Activation)    (None, 256)               0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 256)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 32)                8224      
_________________________________________________________________
dropout_2 (Dropout)          (None, 32)                0         
_________________________________________________________________
batch_normalization_1 (Batch (None, 32)                128       
_________________________________________________________________
dense_3 (Dense)              (None, 2)                 66        
_________________________________________________________________
activation_2 (Activation)    (None, 2)                 0         
=================================================================
Total params: 532,962
Trainable params: 532,898
Non-trainable params: 64

下一步计划:

将我司的视频挨个查看,删除不必要的,然后提取特征,进行训练。

 

另外有相关问题可以加入QQ群讨论,不设微信群

QQ群:868373192 

语音图像视频深度-学习群

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李飞刀李寻欢

您的欣赏将是我奋斗路上的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值