novelty日記

データサイエンスやプログラムなど

ざっくばらんメモ_24:kaggle bowl2018, Coursera Robotics Perception

kaggle bowl 2018

次のトライとして去年もあったdata science bowlの2018年版 へチャレンジしてみることにする。
今回のお題はがん検出自動化に向けた画像ベースの細胞核検出問題。
核検出は分析のスタートポイントとなるため重要との事。
評価は検出箇所に関する正解値とのIoUを用いる。
この時、IoUに対する複数の閾値を用意し、それを超えたかどうかで positive/negativeを判定、True Positiveの比率を用いて評価する。
これはさらに各IoU閾値に対して求められ、最後に平均化される。
続いて、データセットをダウンロードする。
データは主に核の画像で成り立っていて、様々なコンディションで撮影されている。
またその画像に対して正解値として核に対するマスク画像が与えられている。
またデータはstage1とstage2に分かれており、stage2のデータは後程公開される。
ちなみにstage2はテストデータのみの公開でstage1のテストデータとともに予測する必要がある。
マスクデータはヒューマンエラーが含まれている事が示唆されていて、自分で修正する事も可能だとの事。
また今回マスクデータはデータ量軽減のために特殊なエンコードがされているのでその形式で予測結果も 出さなければならない。

Coursera: Robotics Perception

引き続き、Coureraのrobotics perceptionのコースを受けている。
今回はWeek3の最終日で、programming assignmentを行う。
このassignmentでは簡単なARアプリケーションを作成する。
この課題では、複数の画像が与えられ、そこに写っている四角形物体の コーナーをトラッキングするコードを実装する。
続いてそれらの結果からcamera -- world coordinate間の写像行列を 推定する。
以上の結果を用いて最後に四角形物体上に立方体をレンダリングした画像を作成 する。

コーナーのトラッキングに関しては画像の勾配からトラッキング方向を予測しながら トラッキングを行うKLT手法を用いる。
続いて写像行列の推定は、Week2で既に実装した、複数点のworld -- camera coordinateの 位置関係情報からSVDを用いて予測する。
しかしその場合予測された行列は、回転行列の部分は正規直交でなく、また向きに関して一位に決まらないなど の問題があるので、SVDをさらに適応してクリーンアップするコードを実装する。
さらにassignmentの推奨でこのように実装したコードのテストを実装する事が推奨されているので、 ランダム行列とそれに対するQR分解を用いた正規直交行列を回転行列として用意、また translation, scaleに関しても正規分布を用いてランダム生成をして、それを用いたテストコードで 動作確認を行った。