#author("2025-04-22T04:18:26+00:00","default:ubi","ubi") #author("2025-04-22T04:18:37+00:00","default:ubi","ubi") [[Insider]] *コマンド [#tbc02daa] -改行:~ -太文字:''@@'' -サイト参照:[[name:URL]] -取り消し線:%%@@%% -コードの表示: @@ -分割線:---- &size(24){Farsi 24pixel}; &color(#cc0000){インライン要素}; *お勉強 [#f5deb3] -[[NeRFとは:https://www.ns.kogakuin.ac.jp/~jt13689/?NeRF]] -[[野球ボールについて:https://www.ns.kogakuin.ac.jp/~jt13689/?%E9%87%8E%E7%90%83%E3%83%9C%E3%83%BC%E3%83%AB%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6]] -[[パラメトリック固有空間について:https://www.ns.kogakuin.ac.jp/~jt13689/?%E3%83%91%E3%83%A9%E3%83%A1%E3%83%88%E3%83%AA%E3%83%83%E3%82%AF%E5%9B%BA%E6%9C%89%E7%A9%BA%E9%96%93%E6%B3%95]] -[[YOLOについて:https://www.ns.kogakuin.ac.jp/~jt13689/?YOLO%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6]] -[[mmpose:https://www.ns.kogakuin.ac.jp/~jt13689/?mmpose]] -[[flask:https://www.ns.kogakuin.ac.jp/~jt13689/?flask]] --[[DTW:https://www.ns.kogakuin.ac.jp/~jt13689/?cmd=edit&page=DTW]] -[[DTW:https://www.ns.kogakuin.ac.jp/~jt13689/?cmd=edit&page=DTW]] *研究テーマ [#xb6a1d9e] 野球ボールの姿勢取得 *研究計画 [#jd8f7cf7] *研究進捗 [#tbc02daa] ***日報 12月1日(金)[#ge809bfe] マッチングを行うデータベースを作成するのにメモリーエラーが発生する。それは主成分分析するところで起こっていた。 ~その解決法の一つとして10度ずつのデータベースでヒットした周辺を5度刻みの固有空間から探すことにする。 ***日報 11月28日(火)[#ge809bfe] blender上でデータベースの画像を集める際にスクリプト上で操作を行うことにし、実際に行うことができた。データベースを作ることができたのでマッチング用のデータを作成しつつ、blender上で動きを確認する作業をするために3dモデルを動かす作業をした。 ***日報 11月1日(水)[#ge809bfe] 昨日見つけたプログラムを実行するために環境構築から行った。 ~仮想環境上でプログラムを実行しマッチング結果画像をそれぞれの点数ファイルに分類することができた。 ***日報 10月31日(火)[#ge809bfe] 画像を分類してくれる機械学習について調べてコードを探した。 ~できそうなものを見つけることができたので明日実行する。 ***日報 10月26日(金)[#ge809bfe] ミーティングで現状報告を行った。今回の手法で50%以上の精度であったことが確認できたためこの手法を用いて行うことに決めた。精度が100%ではないためそこから正しいものをとっていく必要がある。1球ごとのマッチング結果から一つ正しい姿勢を選ぶ。 ~→縫い目が二本表示されているものの精度が高いことが分かっているため二本の画像を見つけるプログラムを作成する。子のプログラムでは3段階の評価を機械学習を用いて行う。 ***日報 10月25日(水)[#ge809bfe] 現状を把握するためにこれまで行ってきたマッチング結果をまとめた。 ***日報 10月21日(土)[#ge809bfe] 新しく作成したデータベースに対してマッチングを行ってみても結果がうまくいかなかった。 ~→縫い目の部分が薄いことが問題かもしれない ***日報 10月19日(木)[#ge809bfe] 昨日作ったデーベースに対してマッチングを行ったが、データベースにする作業で間違えていたのかマッチング結果がすべて同じ画像になってしまった。 ~→もう一度データベースを作成してみる。 ***日報 10月18日(水)[#ge809bfe] ball_newに対するマッチングの結果はうまくいっていなかった。特徴抽出をしない画像に対してうまくいくものは今のところ一つもない。 ~→ball_newの特徴抽出に関してこれまでと同じだと縫い目の部分がよくとれなかったので、少し変更して特徴抽出を行った。これをデータベースにした。 ***日報 10月17日(火)[#ge809bfe] データベースを作成している間、一周分の特徴抽出をした画像を重ね合わせる作業をもう一度行ってみたが改めて差がないことが確認できたため、今回のモデルでうまくいかない場合は新しい手法をやる必要がある。 ***日報 10月16日(月)[#ge809bfe] 新しいモデル(ball_new)の画像を取得できたのでデータベースにした。 ***日報 10月12日(木)[#ge809bfe] ~色を付ける作業を行った。 ***日報 10月11日(水)[#ge809bfe] もう一つボールモデルを見つけることができたのでそれを使ってデータベースを作成したい。 ~→このモデルに色がついていなかったためblender上で色を付ける作業を行う。 ***日報 10月10日(火)[#ge809bfe] データベースが完成したのでマッチングさせてみたが、縫い目の数が少ないことが原因でうまくいかなかった。 ***日報 10月6日(金)[#ge809bfe] データベースに入れるボールのモデルを新しくした。 ***日報 10月4日(水)[#ge809bfe] 縫い目がわかりやすい画像(縫い目が2本見えている状態のもの)に対してマッチングを行った。その画像にたいしてはうまくいったが全体でみると縫い目がわかりにくいものが必ずあるため、その画像がうまくいっていない。 ~→昨日話した実際の画像の特徴抽出をしたもの1周分の画像を足し合わせてみたがあまり差が出ていないように見られた。もう一度試してみる。 ***日報 10月3日(火)[#ge809bfe] 現時点で一番うまくいっていた特徴抽出をしたものでのマッチングに関して、全体的にみるとうまくいっていないところも目立った。その件について先生に相談するために面談を行った。 ~→1.データベースに影をつけたものを特徴抽出をしマッチングする ~ 2.マッチング画像を4枚表示させていたがそれを20枚に変更する。近い5つの姿勢を表示させることができる ~ 3.実際の画像の特徴抽出したもの1周分を足し合わせて平均をとる ~ 4.実際の画像をきれいにする→これに関して、現在の画像は小さく、拡大させると影か縫い目かの判断が難しくなる。これがいけないのではないか。野球ボールに絞った機械学習をするのはどうか。劣化したボールのモデルをたくさん作り、それに対応したきれいなボールを学習させる。 ~→とりあえず手あたり次第いろんな手法をやっていくことを目標にする。 ***日報 10月2日(月)[#ge809bfe] いろんな画像とマッチングを行ってみてすべてがうまくいっているわけではなかった。ものによってはきれいに姿勢をとれてるけど全然違う姿勢をとっているものが出力されていることもあった。 ***日報 9月25日(月)[#ge809bfe] ミーティングを行った ~→参考文献の探し方を教えてもらった。被引用がその論文を引用したものが出てくるため関連した論文を探せそう。査読されているものかどうかを見ながら、信頼性の高い論文を参考文献にすることを目標にする。 ~卒論の最低ラインとして速さで勝負する。 ~→従来手法である自作のモデルに影をつけたもの(スキャンしたモデルに対しても)をデータベースとしてマッチングする。 ~→今週はさまざまな種類のデータベースを作成していこうと考えている。 ***日報 9月22日(金)[#ge809bfe] 現在の進捗や、月曜日のミーティングに向けて資料をまとめた ~昨日の結果をまとめようとしたら特徴抽出をした画像とその作業を行う前の画像のボールの姿勢にずれがあることが発覚した ~特徴抽出をおこなうプログラムを46656枚全部にかけるとうまくいかないらしい(1000枚目あたりからずれが生じていた) ~→修正してたエッジ画像をもう一度データベースに起こして次はそれに対してマッチングを行って結果を確認する ***日報 9月21日(木)[#ge809bfe] 以前に先生からもらっていた実際の野球ボールの画像すべてに対してマッチングを行い結果をまとめようと考えている。 ~→全てに対してプログラムを実行することができた ***日報 9月19日(火)[#ge809bfe] 影を除去したものに対して特徴抽出をしたもの・実際の写真の特徴抽出をしたもの・実際の写真の三パターンでの比較を行った。 ~→影の除去に関して、この処理を行うと余計にノイズが入り、うまくいかなかった。今回忘れていたことで、影除去したものの特徴抽出を行わないものに対してマッチングをすることを明日やりたい。 ~結果は実際の写真の特徴抽出を行ったものが一番良い結果になったように見えた。 ~→もう少し影除去に対する作業をした結果で卒論の方針を決めたいと考えている。(精度もしくは時間短縮) ***日報 9月15日(金)[#ge809bfe] 参考文献となりそうな論文を探す作業を行った。 ~今後やることとしては論文を読み参考文献を探すことと、影の除去についてもう少しうまくいくように調節を行いたい。 ***日報 9月12日(火)[#ge809bfe] 昨日生じたエラーはもう一度ファイルをダウンロードしなおすことで解決した。 ~実際のボールの写真をinput画像にして影除去プログラムを実行した。 ~→縫い目の部分が影として検出されていなさそうことに関してはよかったが、影を消すことで縫い目まで消えてしまっておりきれいに影が除去できたとは言えない結果になった。 ~→影を除去したものに対して特徴抽出をするといい結果が得られるかもしれないと考えた。 -iPhoneで撮影した影の入っている画像に対して実行したがあまりきれいに影が除去できていなかった。どこかで間違ったことをしているかもしれないので明日確認する。 ***日報 9月11日(月)[#ge809bfe] -影を消すアプローチの実行をした。コラボ上で動かし実行完了まで行った。今回の実行ではサンプルを用いて行ったため、ボールの画像に置き換えて再度実行を試みている。 ~もう一度プログラムを動かしたところ「UnpicklingError: invalid load key, '<'.」というエラーが発生してしまった。ファイルを再度入れなおすと治ると書かれていたため行ったが解決ができなかった。 ~明日以降はボールに対して実行するところまで行いたい。 ***日報 9月5日(火)[#ge809bfe] 影について着目したものを先生が送ってくれたのでその資料に目を通した。 ~一度話に上がった二値化して影を消す方法を試してみたが縫い目がきれいに残らなかったり影が全く消えなかったりしたため、別の方法を試す必要があると考える。 ~最近全体に対してマッチングをかけるとメモリーエラーが発生して先に進んでくれないことが多くあるためそのプログラムを見直す作業も並行で行っている。 ***日報 8月29日(火)[#ge809bfe] 昨日実行して帰った結果はメモリエラーだった。パソコンを使う人が多くいたため実行できそうになかったので違う作業を行った。 ~→まずメモリ不足解消のために使用後使わなくなったデータを削除してメモリの開放を行えるようにしてみた。 ~→もし今実行している影情報がついていない画像に対してのマッチングがうまくいかなかったときのことを考えて影情報をつけた画像に対しての特徴抽出をした画像を作成しておいた。 ~→前回のミーティングであったように1試合すべてのボールにおいてプログラムが実行できるようにいま影情報を作成し付与している課程をマトラボで行っているのは扱いにくいためpythonで動かせるようにした。 ~→次はプログラムの実行時間にもよるが、高速化をしていきたい。 ***日報 8月28日(月)[#ge809bfe] データ入力とマッチングを分けたプログラムが完成していたため実行しようとしたが46656枚で実行させるとメモリーエラーが発生してしまった。 ~→パソコンを再起動かけたらいけるかもしれなかったため開始時間と終了時間をメールで送れるように書き換え、実行して家に帰った。もしこれで無理ならスパイダー上ではなくコンソールから実行してみる。 ***日報 8月23日(水)[#ge809bfe] ミーティングを行った。 ~→プログラム実行時間の短縮を行う。 ~→影がどう影響するかを確認するためにいろんな画像で実行してみる。 ~→データを入力するプログラムとマッチングを行うプログラムを分けていなかったことが致命的だったため,そこを分けてどのくらいの時間がかかるか調べる。 ***日報 8月16日(水)[#ge809bfe] きれいなボールの画像とのマッチングは正確に行えたとは言えない結果になった. ~→考えられる原因として多少の汚れとマークと影がある。 ~→一番精度よくできたのは自作のモデルの特徴と実写の特徴とのマッチングとなった。 ***日報 8月15日(火)[#ge809bfe] きれいなボールでスキャンしたものとマッチングを行えていなかったのでプログラムを実行した。 ~→結果は明日確認する。 ***日報 8月14日(月)[#ge809bfe] 実際のボールをスキャンしたモデルの特徴抽出を行ったものとのマッチングを行った. ~→180*180だと一度に処理ができなかったので54*54にサイズを変更させてから行った. ~→結果は自作の3Dモデルの特徴抽出とのマッチングよりかはうまくいかなかった.その原因はマークや汚れが邪魔をしているからではないかと考えられる. ***日報 8月10日(木)[#ge809bfe] 集中講義 ***日報 8月9日(水)[#ge809bfe] 集中講義 ***日報 8月8日(火)[#ge809bfe] 集中講義 ***日報 8月7日(月)[#ge809bfe] 今日はCGのモデルの特徴抽出をしたものと実写の特徴抽出をしたものでマッチングを行った。 ~結果としてはうまくいっているのではないかと感じている。 ~→特徴抽出を行わないと違う姿勢を出力していたので、特徴抽出を行うことはいいアプローチ方法だったと思う。 ~→次は実写ベースのモデルに対してマッチングを行いたいので改めてきれいなボールでモデルを作成することにする。 ***日報 8月2日(水)[#ge809bfe] スキャンして作成した3dモデルをblender上で動かしてアニメーションをつけた。 ~→10度ずつずらした画像を作成することができた。 ~→ボールの汚れが目立って縫い目の邪魔をしそうな気がしてる。影と汚れで見えにくくなってしまっている。 ~1から作成したモデルの特徴抽出を行った。 ***日報 7月31日(月)[#ge809bfe] ミーティングを行った。 ~ミーティングでは、これからやる作業についての話をした。 ~-実際のボールをスキャンしたモデルを作成し、それに対してマッチングを行う方法 ~-1から作成した3dモデルの特徴抽出をした画像に対してマッチングを行う方法 ~-スキャンしたモデルの特徴抽出をした画像に対してマッチングを行う方法 ~これらをそれぞれ実施することにした。とりあえずできることはやってみる。 ~生じた問題(影とかの影響など)によって二値化など対処していく。 ***日報 7月28日(金)[#ge809bfe] 最終課題 ***日報 7月27日(木)[#ge809bfe] 授業と課題 ***日報 7月26日(水)[#ge809bfe] 自分で作った3dモデルに対してエッジ抽出を行ったところ縫い目が細すぎてうまく表示されないという問題が発生した。 ~→iphoneで作った3dモデルに対してまだ何もできていなかったので改めて3dモデルについて見直して、実物に近いものでやる必要があると考えた。 ~→エッジを使ったパラメトリック固有空間法を行ってマッチングをしていくことでいいのかについて先生と確認する。 ~→上の作業についてエッジがきれいに出ているのでできるのではないかと考えている。 -今やるべきことは3dモデルの見直しで、iphoneを使って行うこと ~以前先生が作ってくれたものを一度使って作業をしてみる ***日報 7月25日(火)[#ge809bfe] 今日は授業の最終課題をやる時間にあてた。 ***日報 7月24日(月)[#ge809bfe] 今後の予定について先生と少し話をした。 ~とりあえずパラメトリック固有空間法でのマッチングがひと段落しつつあるので次の手法について触れていくことになった. ~画像の特徴抽出を行う手順は先生が実際に行っているものをpythonで書き直して行った. ~→結果としてうまく縫い目を抽出することができた. ~これを使って作成したモデルに対しても特徴抽出を行ったところうまくいったのでこれを使ってマッチングができるかを確かめてみることにする。 ***日報 7月18日(火)[#ge809bfe] 土曜日に完成させたプログラムを実行した(フィルタをかけた画像に対してマッチングを行う) ~→結果として似ているけど微妙に違うという画像が出力された。これだけで判断できないので別の画像に対してもフィルタをかけてマッチングを行いたい。 ~特徴を抽出する処理をいろいろ試していった。 ~→ラプラシアンフィルタ・sobel処理・canny処理・モルフォロジー処理→結果は別で表示する。 ~→特徴抽出で実際の画像に対してうまく処理がされなかった ~画質をよくして特徴抽出をしたらよくなるのではないかと思ったのでやってみた ~→結果は影が邪魔をしてうまくボールの形を保ってくれなかった。 ~→次は影に対して処理を行ってみようと思う。 ***日報 7月16日(日)[#ge809bfe] オープンキャンパス当日 ***日報 7月15日(土)[#ge809bfe] 家から持ってきたぬいぐるみに対して明日使うプログラムを実行した。 ~研究の作業も進めるため、前回のミーティングで言われた、プリントアウトしたものをinput画像にする際にその画像に対してフィルタをかけて画質を荒くしてみるという作業をした。 ~この作業は円で切り取るプログラムを活用して、円の部分のみにフィルタがかかるようにした。 ~→ボールの境目が分かりにくくならないようにするため。 ~→一連のプログラムが完成したので実行してみる。 ***日報 7月14日(金)[#ge809bfe] 日曜日のオープンキャンパスで使うプログラムの確認と実際のスペースでの動作確認を行った。 ~コーガ君の人形が自立しにくいので別のものに対しても行えるようにしておく。 ***日報 7月12日(水)[#ge809bfe] 今日は明日の全体ミーティングに向けたスライド作成を行った。 ***日報 7月11日(火)[#ge809bfe] 今日はプログラムの修正を行った。 ~→目標となるmatch_dataに近づくと音が高くなるように設定を行った。 ~全体ミーティングの発表スライドを作成した。 ***日報 7月10日(月)[#ge809bfe] 今日はチームミーティングを行った。 ~音を出すプログラムを変更した。wavファイルを使って音を出していたが、プログラム上で波を生成して音を出すようにした。 ~ターンテーブルを動かす角度を指定することができなかったので、一周分動画を撮って10度ずつ切り取るようにした。 ~→カメラは30fps、ターンテーブル一周30s ***日報 7月7日(金)[#ge809bfe] 音を大きくするプログラムに書き換えることができた。 ~→問題が発生した。webカメラで映し出しているものとPC上のカメラアプリで撮影したものの映し出される範囲が違うためうまくマッチングできていない。 ~→解像度を指定することができるので同じにしたが、うまくいかなかった。 ***日報 7月6日(木)[#ge809bfe] オープンキャンパスで使う予定のプログラムを修正した。 ~データベースと近いものをwebカメラで映すことができたら音を鳴らすというプログラムを作成した。 ~→音がぷつぷつ切れてしまうので、近づいたら音を大きくするようなプログラムに書き直す必要がありそう。 ***日報 7月3日(月)[#ge809bfe] チームミーティングを行った。 ~そこでデータベースを一度プリントアウトし、撮影をし、それをinput画像としてマッチングを行う方法が出た。 ~→実際に行ってみたところマッチング結果がうまくいっているように見えた。 ~→実際の画像でうまくいかない原因はデータベースと実際のボールに差があることではないかと考えられる。さらに、影情報がうまく作用していないことも考えられる。 ***日報 7月1日(土)[#ge809bfe] 新しく作成したデータベースに対してマッチングを行った。 ~→その結果はうまくいかなかった。 ~その原因はデータベースのボールと実際のボールに差があるからではないかということになり、iphoneを使って3dデータを作成しそこからデータベースを作成するという案が出た。 ~もう一つ行ったこととして、パラメトリック固有空間における座標を表示させるという作業を行いそのプログラムは完成した。 ~webカメラで入力した画像に対してマッチングを行うプログラムを書きたかったがうまくいかなかった。 ***日報 6月29日(木)[#ge809bfe] 思っていたよりもデータベースを作成するのに時間がかかってしまった。 ~1日をデータベースの作成に充てることになってしまった。 ***日報 6月28日(水)[#ge809bfe] 昨日作成したinputデータに対してマッチングを行った。 ~→結果はうまくいかなかった。 ~原因としてblenderで作成したボールの縫い目が細いことが考えられたのでまた新しくデータベースを作成する。 ***日報 6月27日(火)[#ge809bfe] 今日は昨日行っていたプログラムの途中から作業を行った。円で切り抜いたものにマスクを合成させ、背景が黒のinput画像を作成した。 ~画像が出来上がったので、すべてのデータベースに対してマッチング処理を行った。 ***日報 6月26日(月)[#ge809bfe] 野球班のチームミーティングをおこなった。 ~そこではマッチング結果がうまくいかなかったことについて話した ~→実際の動画をinputにするのではなく、きれいな動画に対して行ってみるといいかもしれないということになったのでそれを実行してみた ~opencvを使って円を切り取ってデータベースの比率と合うようにする作業を行った。 ***日報 6月23日(金)[#ge809bfe] マトラボで影情報をふかした画像を保存する際にフォルダに2万枚ほどしか保存できなかった原因が、usbメモリ上で行っていたからということが分かったので、移動させて一つのファイルでマッチング処理を行うことにした。 ~→ノートパソコンではメモリ不足になってしまったので学校のパソコンで作業を進めた。 ***日報 6月22日(木)[#ge809bfe] YOLOについて少し知ることができ、あまり新しい提案ではないが自分なりに考えた。 -手+ボールで学習モデルを作る。(これだと手の形は毎回同じじゃないしあまりよろしくない気もする)これをすることでよりボール単体を検出した時の信頼度が高くなるのではないかと予想したがどうなるのかはわからない。 ***日報 6月20日(火)[#ge809bfe] 昨日言っていたマッチングとして表示させる画像を1枚ではなく複数枚にする作業を行うことができた。 ~さらに今日はYOLOについての知識を深めるためにpukiwikiを更新させた。 ***日報 6月19日(月)[#ge809bfe] 野球班のチームミーティングを行った ~プログラムに関して先生に聞いて解決することができ、無事に作成できた。 ~→計算した値の最小値を求めることでマッチングさせる方法で、その計算式が間違っていた。絶対値と思っていたところがノルムで、2乗をして足した値がはいった。 ~この後プラスしてやりたいことは、野球ボールには同じ姿勢が4つあるのでそれも同時に表示させるようにする。 ***日報 6月18日(日)[#ge809bfe] 作成した画像ともう一度パラメトリック固有空間法を実行してみた。しかし前と同じくうまくはいかなかった。ここで問題は画像を表示させるところにあるのではないかと思ったが、自分で行き詰ってしまったので明日先生と相談しながらプログラムを書き直していきたい。 ***日報 6月17日(土)[#ge809bfe] 前回うまくいかなかった理由が元のデータベースの背景が薄い色でボールとの色の差がはっきりとしていないことも挙げられると考えた。 ~→新しく背景が真っ黒のデータベースを作成し、その画像に対してもう一度影情報を付加した。(影情報のプログラムに関しては一度の実行で保存ファイルの変更をすることですべての画像を連続して保存できるようにした) ***日報 6月14日(水)[#ge809bfe] 月曜日に引き続きマッチングした画像を表示させる作業を行った。 ここで一つぬかしていた問題点として、入力画像のリサイズは行っていたが、その画像を保存していなかった。そのためリサイズした画像を保存するプログラムをマトラボ上に追加した。 ~結果はうまくいかなかった。論文中にあった式が最小化するときの画像を表示させるというプログラムを書くことはできたが、実際に画像を表示させると画像の姿勢がバラバラでマッチングしていないものまで表示されていた。 というよりかはうまく計算処理ができていないためでたらめな値が得られてそれで画像を表示させていると思う。何がいけないのかがまだわからないので引き続きプログラムを行っていきたい。 ***日報 6月12日(月)[#ge809bfe] チームミーティングを行った。 ~マッチングした画像を表示させる工程ができていなかったのでそのプログラムを行った。 ***日報 6月10日(土)[#ge809bfe] 面接当日 ~思っていたよりもたくさんの質問が来て戸惑いながらも無事に終わらせることができた。 ***日報 6月8日(木)[#ge809bfe] 院試験の面接内容を見直し、練習をした。 ***日報 6月7日(水)[#ge809bfe] パラメトリック固有空間法を行った ~→論文を参考に一連の流れを実行させることはできたが、結果としてどう表示されるのかや、正しくできているかを判断できていないので明日確認したい。 ***日報 6月5日(月)[#ge809bfe] 作成したデータベースをもとにパラメトリック固有空間法を行うことにした ~→作成したデータのまま扱うとデータが重く作業が遅くなってしまうので主成分分析を行い1次元データに変換することで扱いやすくする作業を行った。 ~→pythonを使って行った。image openを用いるとカラー画像を読み込むことしかできず、グレースケールのデータベースを読み込むことができなかったのでopencvを使うことにした ***日報 6月2日(金)[#ge809bfe] 昨日プログラムが完成したのでデータベースを集める作業を行った ~実行中にエラーが生じた。(書き込み権限がない可能性があります) ~→プログラム自体に問題はないが約2万枚の画像を保存するとエラーが発生してしまった。 ~→新しいファイルを作りそこに画像を入れるようにしたらうまく動くようになった ***日報 5月31日(水)[#ge809bfe] 画像の保存を行った。 →saveasやexportgraphicsやexportappやprint関数などを用いて保存を試みたがうまくいかなかった。 ~→print関数に関しては今のバージョンで使うことができなかった ~→ほかの関数では保存した画像に白い枠がついてしまった。解像度を変更することで白い枠を減らすことは可能だったが、すべて消すことはできなかった。背景を透明にするという方法もあったが今のバージョンではできなかった。 ~→結局imwrite関数を使うことで白い背景がつくことなく画像を保存することに成功した。 ***日報 5月30日(火)[#ge809bfe] 取得したボールのデータに影情報をつける作業をおこなった。 ~immultiply(I16,Img16)で二つの画像を掛け合わせることで影情報をつけることができた。 ~→この関数を使うにはimage processing toolboxを入手することで使用可能になった ~影情報を付与した画像は生成できたが、保存がうまくいかなかったので明日挑戦してみる ***日報 5月29日(月)[#ge809bfe] チームミーティングを行った ~unityにアニメーションを移すのではなくblender上で行うことにした ~→blenderのアニメーション機能を使って回転を表現。1フレームごとに10度回転させ、1フレームごとにキャプチャするように設定した。 ~レンダーをすると色が変わってしまったり、うまくキャプチャされなかった。 ~→マテリアルプロパティから色の設定を行うことで表示させたい色でキャプチャすることができた。 ~→親子関係を作成することができていないとアニメーションを動かしたときにフレームだけ回転してしまっていたためうまくキャプチャができていなかった。 ~すべての画像を保存することができた ***日報 5月28日(日)[#ge809bfe] 用事があり作業ができなかった。 ***日報 5月27日(土)[#ge809bfe] blenderで1フレームずつキャプチャを行うことができそうだったのでやってみた。 ~→途中で固まってしまい動かなくなってしまった。 ~unityに移して実行することにしてみた。 ~→アニメーションがうまくunityに反映されなかった。 ***日報 5月26日(金)[#ge809bfe] -一日用事があり、作業ができなかった。 ***日報 5月25日(木)[#ge809bfe] スクリプトでうまく動かなかったので、blender上にあるアニメーション機能を使ってボールの回転を表現してみることにした。 ~→10度ずつ回転させるアニメーションを作ることができた。 ~→unityのほうがカメラ設定の機能が使いやすく感じた。unityにこのアニメーション付きのオブジェクトを動かしてスクリーンショットを秒数で指定できるものとかがあればうまくできるのではないかと考えている。 ~blender上では回転の速さを指定することは可能。 ***日報 5月24日(水)[#ge809bfe] blenderを使って作業をした ~blenderにもスクリプトがあり、回転に関するスクリプトを調べた。 ~角度を指定して回転をさせる方法ができそうだったので実行した。 ~→10度ずつ回転させるプログラムを作成したが、実行途中で固まってしまい、最後まで実行することができなかった。 ***日報 5月23日(火)[#ge809bfe] これまでunityを使って回転をプログラムしていたが、blenderを使ってやってみようと思う ~blenderは回転をオイラー角で指定でき、アニメーションを簡単につけることができそうだった ~blenderからunityにアニメーションを動かしたときにどういう挙動をするのか、カメラ機能がどうなるかがわからないので、調べながら作業をしていく ***日報 5月22日(月)[#ge809bfe] チームミーティングを行った ~narfを実装してみようと思う ***日報 5月21日(日)[#ge809bfe] バイトのため作業ができなかった ***日報 5月20日(土)[#ge809bfe] バイトのため作業ができなかった ***日報 5月19日(金)[#ge809bfe] -今日は新しいアプローチ方法について先生と話した。 -院試験の面接でこたえる内容についてもそろそろ考えて練習していきたいと考えている ***日報 5月18日(木)[#ge809bfe] ~今日はプログラミングを行わず、勉強をすることに絞った ~引き続きNeRFについての内容をまとめたのと、ボールの回転についてのページも作成した ***日報 5月17日(水)[#ge809bfe] ~データ集めに取り組んだが途中でエラーをはいたり、値がずれていく現象が起こった ~位置を指定して回転をさせる方法も試みたがうまくいかなかった ~作業が詰まってしまったので、NeRFについて勉強することにし、その内容をPukiwikiに残した ***日報 5月16日(火)[#ge809bfe] ~勉強会B班の活動としてopenposeを入れた ***日報 5月15日(月)[#ge809bfe] ~チームミーティングを行った ~高島さんの実験に参加した ***日報 5月14日(日)[#ge809bfe] 今日は一日かけてデータを集めた。 コード自体はx,y,zをそれぞれ1度ずつ回転させることができるものがかけたが、実行させていくうちに問題が発生した。 ~→長い間かけていると途中から0.00001ほどのずれが生じる。このずれが起こるタイミングが毎回変わってしまうため対処方法が見当たらなかった。 ~→実行途中でエラーが発生し、キャプチャできませんでしたと出てきた。次に実行した時にはエラーが生じなかったため、何が原因かはわからなかった。 ***日報 5月12日(金)[#ge809bfe] とりあえずコードが完成した。 ~まだ写真を撮れていないので家で地道に収集していくつもり。 ***日報 5月11日(木)[#ge809bfe] 授業と資料の作成を行った。 ***日報 5月10日(水)[#ge809bfe] 全体ミーティングのパワポ資料を作成した。 ***日報 5月9日(火)[#ge809bfe] 全体ミーティングの資料作成するための情報収集をした。 **週間目標 5月8日(水)[#he7bf4be] 今週こそコードを終わらせる。 ***日報 5月8日(月)[#ge809bfe] -チームミーティング 今回行っている研究では新し手法を用いてやらなければならないのではなく、いかに正確にできるかが問われている。 ~そのため、深層学習などの大体をとらえるものではなく細かく作業見極められることが重要になってくる。 -プログラム 相変わらずプログラミング技術がなく、スムーズに進まない。 ~今日でた問題点として、1度ずつ回転してくれているように見えて1.000001度回転しているという点と、どこもいじっていないはずなのにy軸とz軸180度回転してしまう点がある。 ~改めてロドリゲス回転行列などのほかのプログラムを見る必要がある。 --コードのスクリーンショットを添付しておく。 ***日報 5月6日(土)[#ge809bfe] 関連していそうな論文を探した。 ***日報 5月5日(金)[#ge809bfe] 一日アルバイトのため作業できませんでした。 ***日報 5月4日(木)[#ge809bfe] 一日アルバイトのため作業できませんでした。 ***日報 5月3日(水)[#ge809bfe] 変数を文字列に変換できたので、角度をファイル名として出力することができた。 ***日報 5月2日(火)[#ge809bfe] -c# ~文字列に変数を入れたい。 ~→int型しか入らない?取得したrotationを入れるのが難しいのかもしれない。 ~→一度実行をして複数枚の写真を取得することはできた -updata関数に入っているgameObject.transform.Rotate(new Vector3(x, y, z));が良くないため回転が速すぎていた ~→1フレームごとに呼び出されるものでgameObject.transform.Rotate(new Vector3(x, y, z));で毎フレームx,y,z(x++,y++,z++になってる)その値がずつ動かすということになっていた ***日報 5月1日(月)[#ge809bfe] 予定があり作業を進められなかった。 ***日報 4月28日(金)[#ge809bfe] 昨日導入したPCにunityをいれて作業を行った。 -問題点 ~ゲーム画面のキャプチャが一枚しか行われない。角度が1度ずつではない。 -現在調べ中の解決策 ~オイラー角を使って行う方法(自分でわかりやすいから) ~キャプチャが1枚になってしまうことに関しては調べ中 ***日報 4月27日(木)[#ge809bfe] 授業と全体ミーティング ~PCの立ち上げ・アップデート・初期設定を行った ***日報 4月26日(水)[#ge809bfe] -今日やったこと ~unityでボールの回転(スクリプト上でオブジェクトの角度を取得→for文で角度調節) ~unity上で親子関係が成り立っているのに実行すると片方しか動かなかった。 ~解決策→blenderの時点でグループ化する。カメラやライトの無駄の部分を削除する。 -今後の予定 --取得した角度をファイル名にいれる --スクリプト上でスクリーンショット(unity recorderを使わない) --陰影情報は抽出した影分を引いて作成 **週間目標 4月26日(水)[#he7bf4be] --次のチームミーティングまでに関連していそうな論文を10個見つけて、その中から3つ読む。 --unityでのデータ集め(ボールを回転・スクリーンショット・陰影情報) **週間振り返り 4月25日(火)[#he7bf4be] 今週は予定が多く入っていたため、あまり作業を進めることができなかった。 ~データ集めが少し時間がかかりそう。新しい手法について少し進めていきたい。 ***日報 4月25日(火)[#ge809bfe] 予定があり作業を進められなかった。 ***日報 4月24日(月)[#ge809bfe] 予定があり作業を進められなかった。 ***日報 4月23日(日)[#ge809bfe] unityを使ってデータ集めをした。 ***日報 4月21日(金)[#ge809bfe] --unityを使ってスクリーンショットをとることができた。サイズ調節をしてデータの数を増やしていくことを目標とする。 ***日報 4月20日(木)[#ge809bfe] --unityを使うことが初めてで仕様が分からなかったため友達に聞くことにした。 ~カメラの機能やオブジェクトの配置、出力の画像サイズの設定について聞いた。 ***日報 4月19日(水)[#ge809bfe] --チームミーティングを行った ~今の手法を進めるのは、新しく提案する手法と比べるため。とりあえず次のミーティングまでに今の手法を形にすることを目標にする。 ~今日はunityに移してカメラの設定を行うところまで行った。 **週間目標 4月19日(水)[#he7bf4be] --データベースの作成 ~フィルターかけて陰影情報をつける ***日報 4月18日(火)[#ge809bfe] --データベースの作成 ~野球ボールを借りることができたのでカメラで撮ろうとしていたが、影ができてしまったり微調整が難しいと考え、3Dモデルを作成することにした。 ~作成にはBlenderを使った。縫い目以外の作成ができたところで作業が止まってしまったが、先生と話した結果実際に撮った映像では縫い目まで見えることがないため、そこまで細かくなくてもいいのではないかという考えになった。さらに、先生のプログラムではボールのエッジ抽出を行って検出しているため、特徴だけ捉えられればいいということになった。 --今後の予定 ~作成した3Dモデルからデータベースの作成 ***日報 4月17日(月)[#ge809bfe] 予定があったため進められなかった ***日報 4月14日(金)[#ge809bfe] MATLABを使って陰影の付加情報のみを抽出することができた。 --手順 ~ファイルに入っているボールの画像を読み取り、サイズを54*54に合わせる。 ~同じピクセルの場所を串刺しで値をとり、平均を出す。 ~結果の例を表示させようと思ったがうまくいかず、添付ファイルになってしまった。 --今後の予定 ~実際に野球ボールをとってデータベースを取得し、陰影情報を付加する。 ~パラメトリック固有空間法についての理解を深める。 ***日報 4月13日(木)[#ge809bfe] 今日は授業初日であまり作業ができなかった。 明日野球ボールの画像から陰影の付加情報を抽出する。 ***日報 4月12日(水)[#ge809bfe] -野球班のチームミーティング ~それぞれの現状報告を行った。 -進捗状況 --打合せ(内容確認) ~ボールの回転軸が似ているにもかかわらず、ボールの姿勢が違う。 ~ボールの姿勢は動きの変化に影響があるといわれているため、ボールの姿勢を取得できるようにする。 --今後進めること ~調べた論文内容に沿ったやり方でやってみる。 ~現段階では光や影で縫い目が見えにくいことを考慮するために陰影画像を生成する。 ***日報 4月11日(火)[#ge809bfe] -野球ボールに関する研究論文「高速カメラ映像を用いた硬式野球ボールの回転速度推定システム」 ~パラメトリック固有空間法を用いて、毎フレームでボールの姿勢を高速に推定し、回転の時間的連続性を用いることで回転速度を推定。 ~パラメトリック固有空間法を用いて、CGで作成した姿勢に関するデータベースと、入力動画中から追跡したボール領域との間でマッチングを毎フレーム行い、各フレームにおけるボール姿勢の候補を推定する。 -動画中のボール上の陰影について ~入力動画中全フレームにおけるボール領域の平均をとることで陰影画像とみなす。これは、ボール領域の平均画像を作成することで縫い目のテクスチャが平滑化され、陰影の付加情報のみを抽出できる。 ~パラメトリック固有空間法によるマッチングについての理解はまだできていない -基礎勉強としてopencvでボールの検出を行うプログラムを書いてみている最中 ***日報 4月10日(月)[#ge809bfe] -用事があったため作業ができなかった ~明日関連論文を読むことにする