struct2depth 记录
把效果图放在前面

03.28
===============================
2019年3月22日13:20:38
论文名:
Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning
from Monocular Videos
代码: https://github.com/tensorflow/models/tree/master/research/struct2depth
看论文效果,说是可以处理运动区域,甚至计算出面前的汽车的移动速度。
对tensorflow不熟,算是一边学tensorflow,一边看这个算法。
另外,jupyter notebook是个好东西,可以自己给自己写教程。。。
最后发现这个库的代码根本不完善!!!
说是可以预测移动的物体,但是:
Similar to the ego-motion model, it takes an RGB image sequence as input,
but this time complemented by pre-computed instance segmentation masks.
也就是先做了实例分割。
https://github.com/tensorflow/models/issues/6173
他们先用mask-rcnn在另一个数据集上训练了实例分割,生成了X-seg.png
用align.py对准后,生成了 X-fseg.png 图片。
这就有点死循环了,我还指望着深度估计能够提升语义分割和动态场景的处理的效果呢,结果这。。。

这个流程图里头,用于训练的也是实例分割图片,暗示这个网络就算处理移动物体,也是训练
过的类别才能处理。
在readme里头也不清清楚楚的写出来。。。
gen_data部分,针对 city 数据集和 kitti 数据集操作不一样。
因为要用align.py比对并产生fseg图片,city数据集有标注好的实例分割图片,
kitti没有,然而我没下city数据集。。。然后我就跳过handle_motion部分的代码了。
不过这个库本身已经包含了DDVO的深度正则化的步骤在里头了。
2019年3月26日19:13:56
不处理移动物体的版本终于用pytorch重写完了,重点重写了建立loss的部分,loss之前的部分
沿用sfmlearner的代码。还得再花几天仔细消化。
因为原始的代码里头是处理移动物体的,所以连 explainability_mask 都省掉了,只有一个
warp mask来帮助计算误差,其实sfmlearner里头也需要一个warp mask。
还感觉到应该专门弄一个 seq_length x scale_num 的矩阵,代码看着太啰嗦了。
2019年3月28日10:43:11
1600张图片跑了94个epoch,效果图就是文章最上面的gif
这样的数据量,这样的训练次数,弄出这个效果我很满意,哈哈哈!
而且没上finetune,后面再把finetune部分改写成pytorch。
碰到一个 tensorflow 挂起的问题,还不报错,tf 真是难以调试,真难用。
2019年3月29日17:31:12
文章里的 finetune 看起来就像在相邻的几帧上做过拟合。。。
2019年3月30日11:07:04
想了想,数据集很小并不能保证可以 过拟合出想要的效果,反而会因为解空间的约束太少,
搞出一个不好的效果。
本来是想预测出一个深度图,给弱监督语义分割用的,再结合三维重建,重建出特定种类
目标物的三维点云出来供后续使用的,看来还是要加强深度估计的效果和泛化能力。
2019年4月2日19:19:49
看了点语义分割的东西,了解了下CRFs,deeplab系列的分割算法。
刚开始还在想用CRFs让预测出来的深度图更sharp一点,然而deeplab V3后都把CRFs去掉了。
不如直接把deeplab V3前面的结构拿过来生成视差图?搞不好还可以很好的和语义分割结合起来。
然后我看到了几篇CRFs做深度估计的文章。。。比如 CRFasRNN 。。。
2019年4月4日09:09:01
找到一个dilated resnet的语义分割库,看到一个多任务学习 multi task learning 的概念。
深度估计 和 语义分割 肯定是耦合在一起的。
2019年4月9日09:56:18
找了一些depth fusion,三维重建的东西。
https://github.com/andyzeng/tsdf-fusion-python
想起了以前做 ptychography 成像的时候,有一个大的图像要恢复,但是算法只能
一次优化一小块区域,这个时候就要利用好overlap部分,但是前提是知道position。
准备先用slam的方式算出pose,舍弃掉sfmlearner中姿态估计的部分,深度估计还是
用这些网络来算。充分利用两张深度图之间的重叠部分,加速收敛。
struct2depth 记录的更多相关文章
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- Kali对wifi的破解记录
好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...
- 2015 西雅图微软总部MVP峰会记录
2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- 前端学HTTP之日志记录
前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...
- ASP.NET Core应用中如何记录和查看日志
日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
随机推荐
- Python 安装第三方库中常见问题总结
1.安装某个库时,例如 pip install tinify 出现Permission denied时,在安装命令的最前面添加sudo 例如: sudo pip install tinify 即可. ...
- React Native 获取组件(Component)在屏幕上的位置
年后主客户端的需求以及老的业务迁移RN,现在疯狂的在学RN.在迁移需求的时候遇到需要获取组件在屏幕上的绝对位置.页面如下: 就需要展开的时候获取sectionHeader(默认排序)在屏幕上的具体位置 ...
- Python heapq模块
注意,默认的heap是一个小顶堆! heapq模块提供了如下几个函数: heapq.heappush(heap, item) 把item添加到heap中(heap是一个列表) heapq.heappo ...
- 用递归方法求n阶勒让德多项式的值
/* Date: 07/03/19 15:40 Description: 用递归法求n阶勒让德多项式的值 { 1 n=0 Pn(x)= { x n=1 { ((2n-1) ...
- 30天代码day4 Class vs. Instance
Class A blueprint defining the charactaristics and behaviors of an object of that class type. Class ...
- FragmentXlistview
package com.example.lenovo.tablayout; /** * Created by lenovo on 2018/7/18. */ import android.os.Asy ...
- jquery学习-document.ready和document.onload区别
$(function(){}) 和$(document).ready(function(){}的作用一样,表示在document树加载完之后执行一个函数. $(document).onload(fun ...
- 2018.5.8 python操纵sqlite数据库
创建: create_Email = "CREATE TABLE if not exists emails (\n\ id INTEGER NOT NULL,\n\ user VARCHAR ...
- Redis事务和实现秒杀功能的实现
今天带着学生学习了Redis的事务功能,Redis的事务与传统的关系型数据库(如MySQL)有所不同,Redis的事务不能回滚. Redis中使用multi.exec.discard.watch.un ...
- 19. Rootkit detectors (隐形工具包检测器 5个)
Sysinternals提供了许多小型Windows实用程序,对于低级别的Windows黑客攻击来说非常有用. 一些是免费的和/或包括源代码,而其他是专有的. 调查受访者最喜欢:ProcessExpl ...