SSブログ
プログラム開発 ブログトップ

VRヘッドセットプログラム開発 [プログラム開発]

大きな問題を発見。
VR開発用のGoogleが提供しているSDKを使ってヘッドセット側の再生ソフトを作っていたのですが、スカイツリーが蛇のようにニョロニョロ天に向かって表示されたのです。上に向かっている線が垂直に表示できていないのです。
Googleさんこんな低レベルなSDKを出さないでほしいです。ソースはLIBの中で見えなく現在はサポート切れてる。涙。。
これじゃあスカイツリーみたいな高いものは歪んで見えちゃうしカッコ悪いなー。。Googleさん何とかしてよ。
ん。。。表示部分を一から作るかな。。でも、頭がついていくかリハビリですね。(笑い)
nice!(0)  コメント(241) 

3台のカメラから360度のVR映像を作成する自作ソフト [プログラム開発]

3Dカメラを3台つなげて撮影した映像をVR360-3Dで綺麗に見れるようにする自作ステッチングソフトの改造をしていますが、3枚の動画映像から露出値を計算し自動で補正しようとしましたが、画像の内容で差が多く出てしまいダメですね。結局、再生しながら明暗を外からKEY操作で変化できるようにしました。が、結合部の明るさは合わせきれないので我慢するしかないです。同じような構図でも2つのカメラの位置が違えばレンズの上下で色が変化していて簡単にはいかないです。ま、将来の課題です。(笑い)
アプリイメージ.jpg
nice!(0)  コメント(13) 
共通テーマ:パソコン・インターネット

VR360-3D動画を作成する機材とソフト作成 [プログラム開発]

VR360-3D動画を作成する機材とソフトを作ってみましたが、使った経費くらいは取り戻したいなー。でも現実に構想すると360度動画は立体3Dでなければ普通の360度カメラで簡単に撮影できるし。360度立体3D動画も作成会社に頼めば大きなお金がかかるが作成可能ですし。この技術を買ってくれる会社をさがすか、で、実は1社アポを取っているのですが、あまり乗る気ではなさそう。。(笑い)
YouTuber ( ユーチューバー )が使えるようなものにするしかないかな。で、このソフトで作成した投稿動画のアクセス数(売上)の何パーセントか貰うような契約で使ってもらうのが面白いかも。
カメラの個体差を調整する手作業が時間がかかり大変なので、自動でカメラをキャリブレーションできる機能がないと使いこなせないかな。MAC用もつくるかな、、ま、暇にまかせて続けていきます。
DSC_1434.JPG
image_0099.jpg
Youtubeへアップした作成動画。VRヘッドセットで見ると立体に見えます。
https://www.youtube.com/watch?v=1BKLF1C6ulQ&fbclid=IwAR13HWdywcRjqWtHm-olqmIBxaXjSpkQ4I_k6z7l0Sn8ynzYBug6RNDKqL8
nice!(0)  コメント(0) 

Google AIY Vision Kit [プログラム開発]

Google AIY Vision Kitが届きました。Amazonでも売ってましたが秋月電子で買いました。流行りのDeepleaningを構築してクラウドに接続することなくAI認識をできるようです。
最初から
・1000種類のモノを認識するモデル
・人、犬、猫を識別するモデル
・顔を検出し、「悲しみ」や「笑い」など表情の「喜び度」を評価するモデル
などが入っているようです。
さて、何して遊ぼうかな。まずは調査&パイソンの勉強ですね。自分で何か作らないと意味ないですからね。
K-13714.jpg
K-13714 (1).jpg
K-13714 (2).jpg
nice!(0)  コメント(0) 

360度写真の表示プログラム作成 [プログラム開発]

色々カメラを調べたのですが、前後に2眼あるタイプは通常は左右に2つ魚眼画像がある
Dual Fish-eyeが基本のようですね。動画も同じようです。
しかし、カメラによって映像の中の2つの位置や形が違うようで、専用のアプリで共通の正距円筒図法(Equirectangular)で変換しているようです。
Gear_001.jpg
Dual Fish-eye画像
Gear_002.jpg
正距円筒図(Equirectangular)画像

しかし、正距円筒図法で変換するのに大変な時間がかかります。Gear360のPCソフトでは変換に1分の動画で10分かかりました。PCの性能によりますが。

それで、直接にDual Fish-eye画像を正距円筒に変換せず、どのメーカーでも正しく表示できるWindows用ソフトを作成しました。

Ricoh_002.jpg
THETA画像をGear360内容で表示した場合にはこのように合いません。
Ricoh_003.jpg
画面を見ながら中心位置、直径、楕円比率など調整後。※まだきっちり合っていない画面ですが。
Ricoh_004.jpg
普通の画角程度へマウスで拡大した画像。

画面を見ながら左右の中心の位置、直径の大きさ、楕円調整、回転などをKEYボードで調整できます。
微妙な調整となります。カメラ製造過程で個体差での誤差は出てしまうと思われます。それを調整します。
その結果をiniファイルとして書き出せるようにしました。
下記INIファイル内容
=================================
// My 360 Camera Settings.
Left_center=(0.250000,0.445000)
Left_diamet=(0.865000)
Left_ellipse_ratio=(1.101000)
Left_rotation_angle=(0.000000)
Right_center=(0.757400,0.445000)
Right_diamet=(0.865000)
Right_ellipse_ratio=(1.101000)
Right_rotation_angle=(0.025000)
=================================
読み込めばその設定になります。

その他の機能として、マウスで表示位置移動、マウスホイールで拡大縮小、、などができ、
画面イメージを写真ファイルとして出力できます。
動画もそのままの画面で再生できます。

簡易マニュアルができたら投稿します。

課題として、連結部分は「それなり」に合うと思われますが、前後の露出の差が出る場合もあるので、ぼかし処理などする処理を検討します。
「それなり」といったのは、前後のレンズのゆがみがあればどうしようもないので、個体差で当たりハズレがあるかと思われます。

配布予定なので、よろしくお願いします。

目玉おやじ(Gear 360[2017])購入 [プログラム開発]

お借りしていたTHETAを返したので、目玉おやじを衝動買いしてしまいました。
b.jpg
まさに「目玉おやじ」ですね。しかし、難題がいくつか。
良く調べないで衝動買いした私のミスですが。<笑い。

問題1.カメラのコントロールが出来るのがAndroidスマフォのgalaxyの新しいものと、iPhoneの新しいの(しかしキャプチャーは動かないらしい)だけである。
Xperiaでどうにかならないか試行錯誤したが、ブルートゥースはコネクトできるのだか、ソフトでわざとWiFiネゴができないようにしている感じである。さすがサxxン、日本製では考えられないですね。
前モデルの目玉[2016]はMODプログラムが有ったのでたぶん動いた?のかな。
ですので、今のところカメラシャッターは手で押すしかない。

問題2.出力された写真イメージは丸い魚眼写真を2つ横に並べたようなjpeg出力。
このファイルもgalaxyが無いと変換できない。
PC(Windows,MAC)のソフトが出ているが、動画変換はできるが、写真の変換ができない。
サポートに電話したら、そのソフトはCyberLink製なのでサポート外と言われました。
サムスンのGear 360[2017]のHPからダウンロードするのに、なんだかなー。

今のところの私の問題は、こんな感じです。

ですので、2つの円形図(Dual Fish-eye)をTHETAのようにメルカトル図法的(正距円筒図法(Equirectangular))に広げるソフトを作り始めました。※THETAも設定で変えれますね。

乞うご期待。

galaxy買うのはもったいないし、何とかリモートでシャッター切る方法ないかなー。


************************************************ 7月11日
自分で試行錯誤しながら広げたのですが綺麗にいかず、シェーダーで書いてあるのを見つけました。
が、フラグメントシェーダーで1点ずつ変換しているので、きっと遅いので、Equirectangular変換せず一気に表示する方法にしました。その方が画質もきっと良いですよね。

しかし、問題が!!
カメラによってDual Fish-eye画像の位置や大きさが違い、単純には出来なそうなので、位置情報などは解っているものは内部に持ち、不明なものは外から入れられるようにしようかな。
それにTHETAは楕円でしたね。楕円形計算も頭絞っていれなければ。

完成度が上がって使えそうだったら、一から作っているし、無職なのでワンコイン程度でカンパ販売されてもらおうかな。
MAC版も作らないとね、、、検討してみます。

※時間をかけたモノ作りですので、手作りソフトの価値を上げたいですね。
ソフト屋は一人では食っていけないですもんね。 ( ;∀;)


360度カメラ用のVRアプリと回転台 [プログラム開発]

360度カメラ画像をVRヘッドセットで3D表示するスマフォアプリを開発しました。
IMG_0244.JPG
1枚読み込み(通常のVR表示)
2枚読み込み(360度カメラ画像を180度回転させて撮影した2枚の写真を読み込む)
※正面と真裏は3D(立体感)になるが、斜め方向は3D表現が少なくなる。
4枚読み込み(360度カメラ画像を90度回転させて撮影した4枚の写真を読み込む)
※360度3D(立体感)になる。
IMG_0245.JPG
試作で自動回転台も知り合いに作ってもらいました。
IMG_0242.JPG
無線リモコン操作で90度回転します。
IMG_0243.JPG

コンパクト化や電池起動やいろいろ考えています。
スマフォからの無線でコントロールするソフトも作ろうと思っています。
3DVRスマフォソフトと抱き合わせで商品化できないかな。<笑い。

360度写真の表示プログラム作成 [プログラム開発]

ある所から360度写真の表示プログラムの作成を依頼され作成してみました。
私はカメラは持っていないので、色々なサンプル画像をお借りして作りました。
360度写真をググると色々でてきますが何やら変な構造してます。
166552710_624.jpg
普通には見れないですね。フォト蔵さんの画像です。
今回作成したプログラムで見ると下記のような普通の写真となりマウスドラック移動で自由に移動できるようにしました。でも、すでにそのようなソフトは色々あるようです。
littleplanet_1.jpg
また、リトルプラネットという惑星のような表示もできるようにしました。算数でちと頭をひねりました。<笑い。
litleplanet_3.jpg
天空画像(360度画像)も表示できます。
litleplanet_2.jpg

mp4の動画もOpenCVで読み込みリアルタイムでアイポイントを移動できるようにしました。
360度写真のよい勉強になりました。

360度カメラ2台で動画を撮影し2K+2Kのサイドバイサイド動画にすれば、VRヘッドセットで3D動画を360度見渡せることができるプログラムを簡単に作成できますね。
観光動画映像やスポーツ観戦動画など面白そう。
そうだ新しくスマフォ買ったので作ってみるかな。
誰か360度カメラ買ってください<笑い。

撮影動画から交通量を計測する(その1) [プログラム開発]

撮影動画から交通量を計測するソフト開発を再開した。
開発環境としてOpenCV(動画読み込み用)とOpenGLを使い認識はDeep learningを使って車種まで認識したい。さて、勉強しながらの試作です。

ステップ1.「動体を判断する方法の考察」
〇.動体(車など)が無い背景画を作り、現在の動画(静止画)と比べ違いがある部分が動きがある部分と判断する。
作法①.動画から1フレームずつ静止画として取り出せます。なので、普通は1フレームの全ピクセルを毎回重ね合わせ平均色を求めていくと時間的に多く存在する色が背景の色に近づくはずです。
(前までの平均の色 × 前までの加算回数 + 現在色 ) / ((現在の加算回数) = 新しい平均色を保存
しかし、OpenGLのフレームバッファではRGB各8ビットなので新しい平均色を保存できる領域が8ビットでは加算数が256を超えたら全く反映されなくなります。※これが分かるまで時間を使ってしまった。(涙)
OpenCVのサンプルは8ビットを32ビットに拡張してやっているようです。大量にメモリー消費するし、OpenGLのシェーダーでは無理なので、このやり方は断念しました。
作法②.OpenGLのシェーダーで実現するために頭を絞りました。(笑い)
フレームバッファを2個別に用意しピクセル単位で近い色(距離で閾値内)の集合を2種類作成するようにして、閾値内の色が出てきたらAビット部分をカウンターとして使いアップさせます。閾値外の3色目が出てきたらカウントの少ない方を破壊して新しい色とします。作法②は私が独自に考えた方法なので宜しく。
 ※近い色の判断は3次元の距離で判断します。
  色1(r1, g1, b1), 色2(r2, g2, b2)
  距離d = √( r1 – r2 )^2 + √( g1 – g2 )^2 + √( b1 – b2 )^2

【結果状況】
元動画


作り出した背景と比較し動きのある部分だけにした動画。

まだ道や残像が残っています。チューニングが必要ですね。

ソーベルフィルターで輪郭だけにした動画

まだまだ試行錯誤が必要です。
パソコンの性能にもよりますが、ハイビジョンの画質(1920x1080)ですが、OpenGLのシェーダーだけで計算しているので、1フレーム読み込み含めソーベルフィルター表示まで17ms以内で終わっています。
車の個体をどのように切り出すかな、Deep learningに食わせるまで先は長いです。

携帯のUSBコネクター修理 [プログラム開発]

3Dアプリ開発用に買った携帯が充電ができなくなったのでUSBコネクターを調べる為に工具を買いました。小さな星形のボルトを使っていて開けるために必要でした。
DSC_0622.JPG
分解してマイクロUSBコネクターを取り出しましたが、買ったものと形状が少し違うようでピッタリつかないので、秋葉原で探さないと。
===================================================================
aitendoでそれらしいのを30円で買ってきて半田付けしました。aitendoにはマイクロUSBコネクターだけでも20種類ていどの品ぞろえはすごいです。
DSC_0668.JPG
USBコネクターは間違いなく接続されていると思えますが、症状に変化はなかったです。
残念。違うところが故障しているようです。

プログラム開発 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。