前面那篇跑出了STCN,倒是STCN熟悉了很多了
对bitahub,需要注意一个问题
要进ssh请用debug卡!!!!
要进ssh请用debug卡!!!!
要进ssh请用debug卡!!!!
12.13
小杜帮我把lama的docker配好了,于是愉快地跑lama
(这个时候觉得bitahub是真不太好用,大文件传不上去,每次都得进ssh自己往上传,还有三小时的限制)
但是发现这个lama的效果真是糟糕
后来询问了学长,哦哦蒙层要是白色的才能覆盖他rgb三个通道
12.14
改蒙层颜色了,还写了python代码
一开始写的是只要rgb通道有一个大于60,就把这个地方改成白色
也挺成功的
后来学长告诉我其实这个代码已经写好了,还贴心地写了readme,但是我没有看到呜呜
包括dilation(感觉是让边缘不要那么糊)和closing(去mask中的洞洞的)
还有一个把mask蒙在原图片上看效果的
一个注意点:千万要把蒙层完全蒙在图片上,宜大不宜小
否则LAMA会觉得这是一个背景
学长可能最近比较忙,没有回我
import argparse
import numpy as np
import glob
import os
import scipy.ndimage
def main(args):
views, masks, output, mask_output = args.views, args.masks, args.output, args.mask_output
dilation = args.dilation
views = sorted(glob.glob(os.path.join(views, '*.png')))
masks = sorted(glob.glob(os.path.join(masks, '*.png')))
if not os.path.exists(output):
os.makedirs(output)
if not os.path.exists(mask_output):
os.makedirs(mask_output)
assert len(views) == len(masks)
for i in range(len(views)):
view = cv2.imread(views[i])
mask = cv2.imread(masks[i])
mask = mask / 255.
mask_single = np.sum(mask, axis=2, keepdims=True)
mask_single[mask_single > 0] = 1
# dilation
if dilation > 0:
mask_single = scipy.ndimage.binary_dilation(mask_single, iterations=dilation)
# closing
mask_single = cv2.morphologyEx(mask_single.astype(np.uint8), cv2.MORPH_CLOSE, np.ones((21, 21), np.uint8))
mask_single = scipy.ndimage.binary_fill_holes(mask_single)
if len(mask_single.shape) == 2:
mask_single = mask_single[:, :, np.newaxis]
view = view * (1 - mask_single)
out_path = os.path.join(output, '{:05d}.png'.format(i))
out_mask_path = os.path.join(mask_output, '{:05d}.png'.format(i))
cv2.imwrite(out_path, view)
cv2.imwrite(out_mask_path, mask_single * 255.)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--views', type=str)
parser.add_argument('--masks', type=str)
parser.add_argument('--dilation', type=int, default=5)
parser.add_argument('--output', type=str)
parser.add_argument('--mask_output', type=str)
args = parser.parse_args()
main(args)
12.16
同居人羊了,照顾了一天
忙中还是偷闲了一会
先是小杜的服务器羊了,哎!
后来小杜说应该是因为换线路了,更新了一下就好了
下午忙到两点,还出现了梦魇
小杜说我是吓的,瑶瑶说可能是压力太大了
有人陪伴真幸福呀
下午代理阳了
晚上其实有点小不舒服,不知道是不是羊了,反正感觉有点发冷
开始不想看代码了,找小杜debug(实际上应该没有bug,只是我确实没有看懂)
小杜还在上课,害
头晕乎乎不想看手机只想听语音
虽然emmm一直烦小杜不太好
but:
所以就不喜勿喷了。
找小马驹点歌《东西》
唱的真的很不错
听了好几遍哈哈哈
不知道第二天状态怎么样,今天就这样吧
12.17
sample view原来是为了得到采样后的depth,意思是我原来有了depth进行采样,而不是得到depth。。。
那问题来了,depth怎么得到呢。
问了kd学长:
我记得“”只要…就…"不是这么用的:
学长帮我把他的代码下载下来了呜呜感动
这个先不管,我得抽帧。nerf得到的视频本来就120帧的,需要抽成120个图片
这个代码应该有用
文件结构是
- video
- vedio1.mp4
- vedio2.mp4
- …
#coding=utf-8
import cv2
import os
#/content/drive/MyDrive/实验室任务/nerf/logs/fern_example/vedio
path = '/content/drive/MyDrive/实验室任务/nerf/vedio'
video_list = os.listdir(path)
for video in video_list:
video_path = os.path.join(os.getcwd(),path,video)
vc=cv2.VideoCapture(video_path)
if vc.isOpened():
rval,frame=vc.read()
else:
rval=False
c =1
while rval:
rval,frame=vc.read()
if rval==False:
break
cv2.imwrite('/content/drive/MyDrive/实验室任务/nerf/vedio/video2img/'+str(video)+str(c)+'.jpg',frame)
print(c)
c=c+1
cv2.waitKey(1)
vc.release()
但是我明明规定了保存的路径也没见着他保存在哪
反正试过了没有用
上服务器跑
haha
关键我还装不上!!!!!
说来你可能不信,我抽了一下午的帧
不错,bitahub,好用!
学聪明了,知道复制一份新的,这样下载整个文件夹就行啦
接下来研究研究学长说的depth了