1.python2.7的代码在python3上运行
2.跑siamfc-tf的代码的心得体会:
本来想用conda create一个python 2.7的虚拟环境,直接pip install -r requirements.txt .结果才意识到windows系统不支持python2安装tensorflow和pytorch.所以只能把python2的源代码按照1去更改。一定要注意在python3中print括号前不能有空格。
在run.json中可以决定是否可视化,在不可视化时,帧率可以达到40-50fps,而选择可视化后,帧率只有10几,gpu的利用率也会变低。我的猜测是,显示视频影响了速度,是否可以用GPU来优化?
当一个目标没有相似物的干扰时,跟踪效果很好(bag甚至可以达到100%),当有很多类似物体且发生遮挡后,很容易会发生飘窗,比如basketball,birds2这两个序列,另外,ball2的效果也不好,但是它并没有相似物。
3.运行代码时看GPU的使用情况
打开任务管理器-性能,就可以看到了
4.
python3:
print(' -- Precision ' + "(%d px)" % evaluation.dist_threshold + ': ' + "%.2f" % mean_precision +\
' -- Precisions AUC: ' + "%.2f" % mean_precision_auc +\
' -- IOU: ' + "%.2f" % mean_iou +\
' -- Speed: ' + "%.2f" % mean_speed + ' --\n')
python2 :
print ' -- Precision ' + "(%d px)" % evaluation.dist_threshold + ': ' + "%.2f" % mean_precision +\
' -- Precisions AUC: ' + "%.2f" % mean_precision_auc +\
' -- IOU: ' + "%.2f" % mean_iou +\
' -- Speed: ' + "%.2f" % mean_speed + ' --\n'
5.tensorflow日志的等级设置
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error
6.josn模块读取(parse_arguments)
with open("文件名") as f:
result=json.load(f)(json.loads是只读一行)
此时,result是一个字典类型的变量,可以将其转换成namedtuple类型,如下所示:
hp = namedtuple('hp', hp.keys())(**hp) ,其中(**hp) 是将字典hp的值传入namedtuple的hp
7.有两种方法判断一个变量的数据类型
type(a)
isinstance(变量名,类型)
8.路径读取
如果路径全是\,是不行的:
可以在路径前加个r,r'path'
改成/或者\\,都是可以的
PS,一个路径既有/也有\\是可以的
9.AttributeError: module 'cv2.cv2' has no attribute 'Tracker_create'
pip3 install opencv-contrib-python
10. 安装dlib失败
它是基于C++的,所以一定要先安装cmake,否则会编译失败