最近把存储服务器上的OpenMediaVault从2.1版本升级到最新的3.0.87版本之后,无法正常登录。
OpenMediaVault系统升级,参考OpenMediaVault系统升级。
 继续阅读OpenMediaVault从2.x(最新版本)升级到3.0.87后无法登录
最近把存储服务器上的OpenMediaVault从2.1版本升级到最新的3.0.87版本之后,无法正常登录。
OpenMediaVault系统升级,参考OpenMediaVault系统升级。
 继续阅读OpenMediaVault从2.x(最新版本)升级到3.0.87后无法登录
目前在研究视觉跟踪人的事情,找到的比较好的参考项目就是OpenPTrack了,截至目前(2017.8.14)OpenPTrack的V2版本还没有释放出代码,因此我们只能依旧在V1版本上进行测试,这个版本目前只能在Ubuntu 14.04.5系统上运行,其他系统上(比如Ubuntu 16.04)问题比较多,还是建议在Ubuntu 14.04.5系统上进行安装。
| 1 2 3 | $ sudo apt-get install git -y $ cd ~ $ git clone https://github.com/OpenPTrack/open_ptrack.git | 
| 1 2 3 4 5 6 | $ cd open_ptrack/scripts $ chmod +x *.sh $ ./ros_install.sh $ source /opt/ros/indigo/setup.bash $ ./ros_configure.sh | 
OpenPTrack| 1 | $ ./openptrack_install.sh | 
OpenPTrack目录| 1 | $ ln -s  ~/workspace/ros/catkin/src/open_ptrack ~/open_ptrack | 
Kinect V2驱动程序安装| 1 2 3 4 5 6 7 8 | $ sudo apt-get install nvidia-375-dev $ sudo apt-get install ocl-icd-opencl-dev $ cd ~/workspace/ros/catkin/src $ source ~/.profile  $ roscd open_ptrack/../scripts $ chmod +x kinect2_install.sh $ ./kinect2_install.sh | 
重启系统,然后执行如下命令:
| 1 2 | $ cd ~/workspace/ros/catkin/devel/lib/kinect2_bridge $ sudo ./kinect2_bridge | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import subprocess def execBashShellCommand(cmd):     print cmd     p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,executable="/bin/bash")     while True:           buff = p.stdout.readline()           if buff == '' and p.poll() != None:               break         print buff     p.wait() def main():     execBashShellCommand("rm -rf ~/workspace")     execBashShellCommand("rm -rf ~/.ros")     execBashShellCommand("rm -rf ~/.rviz")     execBashShellCommand("rm -rf ~/open_ptrack")     execBashShellCommand("sudo apt-get install git -y")     execBashShellCommand("cd ~ && git clone https://github.com/OpenPTrack/open_ptrack.git")     execBashShellCommand("sed -i '/source ~\/workspace\/ros\/rosbuild\/setup.bash/d' ~/.bashrc")     execBashShellCommand("sed -i '/export KINECT_DRIVER=openni/d' ~/.bashrc")     execBashShellCommand("sed -i '/export LC_ALL=C/d' ~/.bashrc")     execBashShellCommand("cd ~/open_ptrack/scripts && chmod +x *.sh && ./ros_install.sh")     execBashShellCommand("cd ~/open_ptrack/scripts && source /opt/ros/indigo/setup.bash ; ./ros_configure.sh")     execBashShellCommand("cd ~/open_ptrack/scripts && ./openptrack_install.sh")     execBashShellCommand("ln -s  ~/workspace/ros/catkin/src/open_ptrack ~/open_ptrack")     execBashShellCommand("source ~/workspace/ros/rosbuild/setup.bash ; source ~/.profile ; export KINECT_DRIVER=openni && export LC_ALL=C && cd ~/workspace/ros/catkin && catkin_make --pkg calibration_msgs && catkin_make --pkg opt_msgs && catkin_make --force-cmake")     execBashShellCommand("sudo apt-get -y install nvidia-375-dev")     execBashShellCommand("sudo apt-get -y install ocl-icd-opencl-dev")     execBashShellCommand("source ~/workspace/ros/rosbuild/setup.bash ; source ~/.profile ; export KINECT_DRIVER=openni && export LC_ALL=C && cd ~/workspace/ros/catkin/src && roscd open_ptrack/../scripts && chmod +x kinect2_install.sh && ./kinect2_install.sh")     execBashShellCommand("cd ~/workspace/ros/catkin/devel/lib/kinect2_bridge && sudo ./kinect2_bridge") if __name__ == "__main__":     main() | 
可能需要重新插拔一下Kinect的USB数据线,然后执行如下命令
| 1 | $ roslaunch kinect2_bridge kinect2_bridge.launch | 
执行之后,等待十几秒,然后Ctrl+C中断执行。
执行完成后,执行
| 1 | $ roslaunch tracking detection_and_tracking_kinect2.launch | 
之后,会弹出三个界面出来。
最近在使用OpenPTrack来进行人的跟踪测试,可是运行程序的时候总是崩溃。
OpenPTrack是通过roslaunch命令来运行程序的。
网上搜索了一下,可以找到对应的launch文件,在其中的node节点中增加如下语句即可
| 1 | launch-prefix="xterm -e gdb -ex run --args " | 
我们以
| 1 | $ roslaunch tracking detection_and_tracking_kinect2.launch | 
这条命令为例,detection_and_tracking_kinect2.launch文件的原始内容如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <launch>   <arg name="camera_name"             default="kinect2_head" />   <!-- Start the Kinect -->   <include file="$(find kinect2_bridge)/launch/kinect2_bridge_ir.launch"/>     <!-- Launch ground based people detection node -->    <node pkg="detection" type="ground_based_people_detector" name="ground_based_people_detector" output="screen" required="true">     <rosparam command="load" file="$(find detection)/conf/ground_based_people_detector_kinect2.yaml" />      <param name="classifier_file" value="$(find detection)/data/HogSvmPCL.yaml"/>     <!--param name="camera_info_topic" value="/$(arg camera_name)/depth_lowres/camera_info"/-->     <param name="camera_info_topic" value="/$(arg camera_name)/ir_rect/camera_info"/>     <param name="output_topic" value="/detector/detections"/>     <!--param name="pointcloud_topic" value="/$(arg camera_name)/depth_lowres/points"/-->     <param name="pointcloud_topic" value="/$(arg camera_name)/depth_ir/points"/>     <param name="rate" value="60.0"/>     </node> </launch> | 
增加调试命令之后的样子如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <launch>   <arg name="camera_name"             default="kinect2_head" />   <!-- Start the Kinect -->   <include file="$(find kinect2_bridge)/launch/kinect2_bridge_ir.launch"/>     <!-- Launch ground based people detection node -->    <node pkg="detection" type="ground_based_people_detector" name="ground_based_people_detector" output="screen" required="true" launch-prefix="xterm -e gdb -ex run --args ">     <rosparam command="load" file="$(find detection)/conf/ground_based_people_detector_kinect2.yaml" />      <param name="classifier_file" value="$(find detection)/data/HogSvmPCL.yaml"/>     <!--param name="camera_info_topic" value="/$(arg camera_name)/depth_lowres/camera_info"/-->     <param name="camera_info_topic" value="/$(arg camera_name)/ir_rect/camera_info"/>     <param name="output_topic" value="/detector/detections"/>     <!--param name="pointcloud_topic" value="/$(arg camera_name)/depth_lowres/points"/-->     <param name="pointcloud_topic" value="/$(arg camera_name)/depth_ir/points"/>     <param name="rate" value="60.0"/>     </node> </launch> | 
(注意代码添加位置)这样在执行原来例子的时候,就会先打开一个新的Shell界面,被调试的程序就在这个Shell中被执行了。
如果被调式的是Python脚本,则需要修改调试器为pdb,如下:
| 1 | launch-prefix="xterm -e python -m pdb " | 
Microsoft Common Objects in Context(简写COCO)数据集是微软团队提供的一个可以用来进行图像识别,分割,注解等开发工作的数据集。
其官方说明网址:http://mscoco.org/。
继续阅读Ubuntu 16.04系统Microsoft Common Objects in Context(COCO)数据集在Python环境中的使用
最近淘宝了一个PSV版本的神秘海域,卖家说是繁体跟英文双语言的,结果插卡后一直是英文,始终找不到中文语言的选项。
网上搜索了以下,才发现是跟机器语言绑定的,如果要使用繁体中文版本,必须把机器的语言从简体中文调整到繁体中文才行。
也就是,在PSV设置里将系统语言设置为繁体中文,再进入游戏里就可以了。
val是validation的简称。training dataset和validation dataset都是在训练的时候起作用。validation的数据集和training没有交集,所以这部分数据对最终训练出的模型没有贡献。validation的主要作用是来验证是否过拟合、以及用来调节训练参数等。
比如训练0-10000次迭代过程中,train和validation的loss都是不断降低,
但是从10000-20000过程中train loss不断降低,validation的loss不降反升。
那么就证明继续训练下去,模型只是对training dataset这部分拟合的特别好,但是泛化能力很差。
所以与其选取20000次的结果,不如选择10000次的结果。
这个过程的名字叫做Early Stop,validation数据在此过程中必不可少。
如果跑caffe自带的训练demo,你会用到train_val.prototxt,这里面的val其实就是validation。
而网络输入的TEST层,其实就是validation,而不是test。你可以通过观察validation的loss和train的loss定下你需要的模型。
但是为什么现在很多人都不用validation了呢?
我的理解是现在模型中防止过拟合的机制已经比较完善了,Dropout\BN等做的很好了。
而且很多时候大家都用原来的模型进行fine tune,也比从头开始更难过拟合。
所以大家一般都定一个训练迭代次数,直接取最后的模型来测试。
ImageNet
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.image-net.org/
我们想实现一个跟知呼功能类似的悬浮按钮,点击后会展开相应的菜单。
卡尔曼滤波原论文 A New Approach to Linear Filtering and Prediction Problems
继续阅读卡尔曼滤波原论文 A New Approach to Linear Filtering and Prediction Problems
继续阅读“GrabCut” — Interactive Foreground Extraction using Iterated Gr aph Cuts