最近把存储服务器上的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