和乙個 tensorflow 的 pb 模型:vrn-tensorflow.pb (drive.google)。
我只下了vrn-unguided-keras.h5(翻牆軟體的免費流量用完)。
start_time = time.time()
model = load_model('vrn-unguided-keras.h5', custom_objects=custom_objects)
end_time = time.time()
print('載入模型用時: %f秒' % (end_time - start_time))
這個h5模型載入是比較慢的(解壓縮慢?),需要100多秒。
按《keras_to_tensorflow-master》轉換成 vrn-unguided-keras.h5.pb。
start_time = time.time()
with open('vrn-unguided-keras.h5.pb', "rb") as f:
output_graph_def = graph_pb2.graphdef()
output_graph_def.parsefromstring(f.read())
_ = tf.import_graph_def(output_graph_def, name="")
end_time = time.time()
print('載入模型用時: %f秒' % (end_time - start_time))
這個快一點了,只要 20 多秒。
然後前傳:
print('執行模型用時: %f秒' % (end_time - start_time))
這裡用時38秒(cpu).
由於 example-usage.ipynb 沒有儲存資料。
這裡先把它的輸出200x192x192轉換成灰度圖:
start_time = time.time()
print(vol.shape)
gray = np.zeros((192, 192))
#------------------------------------------
#3維for i in range(vol.shape[0]):#影象通道數200
v_2d=vol[i, :, :] #取出乙個通道
w=v_2d.shape[0] #影象寬高
h=v_2d.shape[1]
for ii in range(w):
for ji in range(h):
if v_2d[ii,ji] > 1 : #每乙個體素轉為深度值(灰度0:200)
gray[ii,ji] = i
#------------------------------------------
cv2.imwrite('gray.png',gray)
end_time = time.time()
print('轉換成灰度圖用時: %f秒' % (end_time - start_time))
這個轉換用掉了將近100 秒。估計這個遍歷太慢了。
效果圖:
再用artcam 2008 (雕刻軟體)開啟灰度圖:
旋轉一下:
由於是上層覆蓋下層,這個轉換是沒有鼻孔的,當然一般的雕刻機也只能雕成這樣了。(轉換成點雲可能會好點)
這個精度也是比較低的。實際上網路內部只生成了48x48的點圖,還要除掉四周空位,最少1/4吧,可能只有1500個或更小的點用在臉上,最後是雙線性放大到192x192的。
如果有人能用96x96 或者192x192 訓練出模型應該就差不多了。
先這樣吧。
基於Keras的三維人臉重建
這是乙個非常炫酷的成就,能將人臉特徵重建為三維空間的模型。預訓練模型最初是用torch實現的。此 是把torch實現的vrn模型轉換為keras的模型。依賴 keras,custom layers,h5py 位置參見 2.使用樣例 輸入是3x192x192的影象 參見example usage.ip...
opencv三維重建 三維重建 SLAM相關
wayne cvpr2020 oral 立體視覺cost volume構建新方法,效能soa,視訊記憶體和執行時間大幅降低 雙目立體視差圖進行三維點雲重建 opencv3.4.1 pcl1.8 用vs opencv3.1從雙目立體視差圖中重建三維點雲 使用opencv以及pcl將2d影象轉換為3d點...
三維重建方法
三維重建技術就是要在計算機中真實地重建出該物體表面的三維虛擬模型,構建乙個物體完整的三維模型,大致可以分為三步 1.利用攝像機等影象採集裝置對物體的點雲資料從各個角度釆集,單個攝像機只能對物體的乙個角度進行拍攝,要獲得物體表面完整資訊,需要從多個角度對物體拍攝 2.將第一步獲得的各視角點雲資料變換到...