🤩

本物が買えないので真似たが(Stereo Depth)其之2

2023/11/22に公開

前回までの復習

  • 微妙にヒートマップ表示できた。
  • カメラの配置でもどうにもならない暗部がのこってしまった。

今回は

失敗作のオンパレード(結果のみ)

おまけ(学習モデルのログ)
# こんな感じで距離別のデータを撮影
/notebook/stereo/data$ tree
.
├── 0.5m
│   ├── camera_0_distance_0.5m_0.png
│   ├── camera_0_distance_0.5m_1.png
│   ├── camera_2_distance_0.5m_0.png
│   └── camera_2_distance_0.5m_1.png
├── 1.5m
│   ├── camera_0_distance_1.5m_0.png
│   ├── camera_0_distance_1.5m_1.png
│   ├── camera_2_distance_1.5m_0.png
│   └── camera_2_distance_1.5m_1.png
├── 1m
│   ├── camera_0_distance_1m_0.png
│   ├── camera_0_distance_1m_1.png
│   ├── camera_2_distance_1m_0.png
│   └── camera_2_distance_1m_1.png
├── 2.5m
│   ├── camera_0_distance_2.5m_0.png
│   ├── camera_0_distance_2.5m_1.png
│   ├── camera_2_distance_2.5m_0.png
│   └── camera_2_distance_2.5m_1.png
└── 2m
    ├── camera_0_distance_2m_0.png
    ├── camera_0_distance_2m_1.png
    ├── camera_2_distance_2m_0.png
    └── camera_2_distance_2m_1.png
    
    
# 学習結果
~/notebook/stereo$ python train_torch.py 
Epoch 1/10, Train Loss: 274.01750349998474, Val Loss: 7.5990283489227295
Epoch 2/10, Train Loss: 3.931648188829422, Val Loss: 2.7191025018692017
Epoch 3/10, Train Loss: 0.8331921368837356, Val Loss: 0.45910339057445526
Epoch 4/10, Train Loss: 0.38559081852436067, Val Loss: 0.4020087271928787
Epoch 5/10, Train Loss: 0.2134269282221794, Val Loss: 0.7039762735366821
Epoch 6/10, Train Loss: 0.24842741191387177, Val Loss: 0.5583236515522003
Epoch 7/10, Train Loss: 0.26502911150455477, Val Loss: 0.23995352536439896
Epoch 8/10, Train Loss: 0.20047790557146072, Val Loss: 0.3392268419265747
Epoch 9/10, Train Loss: 0.17473311424255372, Val Loss: 0.4970148801803589
Epoch 10/10, Train Loss: 0.1384527564048767, Val Loss: 0.288657084107399

現在の着地点

  • こちらのパラメータの透過度をあげると普通の合成撮影
  • 適度にパラメータをいじるとヒートマップ
  • ただし、人間のような動体はカメラの位置ずれをリアルで拾っている(ここ修正要)

今の所OpenCVで作るのが一番安定

  • ここのパラメータ変更でそれらしくもなりますし、上記のちょっと・・・な表示にもなります。

    # Increase the heatmap intensity for closer objects by reducing their corresponding alpha values
    alpha_mask = 1 - (depth_data / 255.0) ** 2  # Squaring to reduce transparency for closer objects more
    alpha_mask = cv2.merge([alpha_mask, alpha_mask, alpha_mask])


  • depth_data / 255.0 : 255.0を減らすと透過度が下がります
  • ** 2 増やしてカオス画像にできます

updated advanced version in github

-ちょこっとだけ表現がマシになり、中央部の色潰れが改善しました。

今後

  • ちょっと、本業(プロではないのに!)調達やら通訳、つなぎの開発?でちょっとお休み
  • 大失敗に終わったモデル版で距離まで正確に表示したいです。

https://github.com/mi-kaneyon/man-yard/tree/main/dualCAM

  • new files are updated version

update

  • 人だけならそれっぽくはできる模様
  • カメラの像の重ね合わせがやっぱり重要ですね。

https://github.com/mi-kaneyon/man-yard/tree/main/3Dstyle

Update2 (8th Jun 2024)

  • 見た目はだいぶ良くなりました。 2台のカメラを並べて位置合わせして使ってみてください。

https://github.com/mi-kaneyon/2d23dstyle

En/Cn

English Summary

  • This article is challange of stereo cam style by 2 affordable camera.

2cams movie combine(2台のカメラ画像合成)---NEW 15/Aug 24

  • 前後に配置すると反対側の人が首を絞めている(って良くないですね)のような変な撮影が可能
  • 人間をメインで抜き取りするところがあるので、片方のカメラだけ人間のみ映すなどで応用可能かも

左の人が右の人を背後から襲撃っぽい図

  • rear cam person looks strike right side person
  • Exactly, 2 person is taken each cam. That's why it is no problem.

Discussion