サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
blog.negativemind.com
viserは、Pythonでインタラクティブな3D視覚化を行うためのライブラリです。 このライブラリの特徴は以下の通りです。 3Dのプリミティブを可視化するためのAPI GUI 構成要素:ボタン、チェックボックス、テキスト入力、スライダーなど シーンインタラクションツール (クリック、選択、トランスフォームギズモ) プログラムによるカメラ制御とレンダリング SSH経由で簡単に使用できる完全Webベースのクライアント 使用方法とAPIリファレンスについてはドキュメントをご覧ください。
KorniaはバックエンドにPyTorchを使用したコンピュータービジョンライブラリで、古典的なコンピュータービジョンの処理を微分可能にして昨今のディープラーニングモデルに統合するためのPython向けライブラリ。 Korniaは、PyTorch用の微分可能なコンピュータービジョンライブラリです。 Korniaは、コンピュータービジョンの一般的な問題を解決するための一連のルーチンと、微分可能なモジュールで構成されています。このパッケージのコアではメインのバックエンドとしてPyTorchを使用して効率性を高め、複雑な関数の勾配の定義・計算にReverse-Modeの自動微分を利用しています。 概要 このライブラリは既存のパッケージからインスピレーションを得ており、モデルの訓練時にニューラルネットワーク内に挿入できるオペレーター(画像変換、エピポーラ幾何学、深度推定、テンソル上で直接動作するフ
今や機械学習と言えばほぼディープラーニング、つまり多層のニューラルネットワークを指すようになった。ニューラルネットワークによる識別手法や生成手法で溢れる昨今だが、それらとは別の用途にニューラルネットワークを活用する例も増えてきている。 Ne... ブログにディープラーニング関連の手法まとめ記事を投稿するのは3年ぶりか。 自分の疑問に答えるように、自分の理解の穴を埋めるように改めて関連分野も調べて図に起こしていたらだいぶ手間がかかってしまった。 3Dコンピュータビジョンは概念を3次元的に図示できるので直感的に理解しやすいはずだが、作図に手間がかかるのか論文にはちゃんとした概念図があまり載っておらず、過去のCG分野の論文の引用で説明が済まされている範囲が多く感じた。 精読することで、参考図書に載っていた概要説明に一部誤りがあることにも気づけた。 自分の理解度の確認には、やはり自分なりに記事にま
そのYouTubeチャンネルの動画作りに使われているアニメーションエンジンがPythonのライブラリとして公開されている↓ Manim: Mathematical Animation Engine Manimは、正確なプログラマティックアニメーションのためのエンジンであり、数学の解説ビデオを作成するために設計されています。 Manimには2つのバージョンがあることに注意してください。 このリポジトリは、3Blue1Brownの作者がアニメーション動画作成のために始めた個人プロジェクトで、動画固有のコードはこちらから入手できます。 このリポジトリを2020年に開発者グループがフォークし、現在のコミュニティエディションとなりました。こちらはより安定し、より適切にテストされ、コミュニティの貢献に迅速に対応し、より親しみやすく始められることを目標としています。詳細はこちらのページを参照してください
以前、BLAMという、静止画から撮影カメラの位置やパースを割り出す(つまりカメラキャリブレーションする)Blenderアドオンがあった。 fSpyはその後継となるスタンドアローンアプリで、Windows, Mac, Linuxで使用できる。(読み方はエフスパイで良いのか?) カメラ情報をBlenderにインポートするためのアドオンfSpy-Blenderも別途用意されている。 fSpyは、静止画像のカメラマッチングを行うオープンソースのクロスプラットフォームアプリです。 背景 以前、BLAMという静止画像カメラキャリブレーション用Blenderアドオンを開発しました。BLAMは、UIが稚拙だったにもかかわらず、Blenderのコミュニティで人気を得ました。fSpyは、BLAMの機能をスタンドアローンアプリの形でより多くのユーザーに提供するものです。 計算したカメラパラメーターを他のアプリケ
GAN, DCGANに引き続きGAN手法のお勉強。 次はCGAN (Conditional GAN)を勉強しよう。 日本語で言うと「条件付き敵対的生成ネットワーク」といったところでしょうか。 CGAN (Conditional GAN) C...
オイラはCG上がりの人間なので、ディープラーニングへの興味は画像認識のような識別系よりもっぱら生成系なのである。 最近はCG系の学会でもお馴染みになりつつあるGAN(敵対的生成ネットワーク)についてちゃんと知りたくて、その前知識としてニュー...
クリエイターのための機械学習ツール。 あなたの創作活動に人工知能の力を、直感的でシンプルなビジュアルインターフェースで提供します。 さあ、今日から新しい創作方法を始めましょう。 Runwayは、あらゆるジャンルのクリエイターが機械学習を直感的に利用できるプラットフォームです。 要するに、非プログラマーでも機械学習の恩恵を受けられるツール。 まだベータ版ですが、Runway MLはMac, Windows, Linux環境で使える機械学習アプリケーション。 現在は完全なクラウドアプリになりました。 NIPS 2018のセッションでも紹介されていたようですね。 GUI操作だけでModels Directoryから様々な機械学習手法の学習済みモデルを検索でき、アセットとして利用できる。 アプリケーション自体は無料だけど、有料でクラウドのGPU演算リソースを利用することもできる。 現在のBeta
オイラはCG上がりの人間なので、ディープラーニングへの興味は画像認識のような識別系よりもっぱら生成系なのである。 最近はCG系の学会でもお馴染みになりつつあるGAN(敵対的生成ネットワーク)についてちゃんと知りたくて、その前知識としてニューラルネットワークの勉強をしていたのです。とりあえずPix2Pixまではちゃんと勉強したいところ。 機械学習の識別モデルと生成モデル 機械学習は大まかに識別モデル(Discriminative Model)と生成モデル(Generative Model)に大別できる。 今までブログ記事にまとめてきた手法は全て識別モデルだった。
Mask R-CNNで行うSegmentationはSemantic Segmentationではなく、より難しいInstance Segmentationと呼ばれるタスクらしい。 まずはこれらのSegmentationタスクの違いについて整理しておく。 Segmentationタスクの種類 Segmentationとは画像の領域分割を行うこと。つまり、画像をpixel単位で分類するタスクと言える。 Semantic Segmentation Semantic Segmentationは、画像のpixelを「どの物体クラス(カテゴリー)に属するか」で分類するタスク。(そのため、Category-level segmentationとも呼ばれる) それに対して、Instance Segmentation (Instance-level segmentation)は、画像のpixelを「どの物
TensorFlowがWindowsに対応してから1年ほど経つ。 つい最近TensorFlowのバージョン1.4.0がリリースされ、良い機会(?)なので今までの開発環境を洗い替えることにした。今までPythonは単体でインストールしてたんだ... 最近はだいぶ状況が変わってきた。 Anacondaでnumpyが動かなくなったり、使いたいパッケージ(のバージョン)がcondaで入らなかったりで、そもそもAnacondaのメリットよりもデメリットで時間を取られることが増えた。(それはMinicondaでも同じ) なので、Pythonは普通に公式のインストーラーでWindowsにインストールすることにした。 コーディング環境についても、VSCode(Visual Studio Code)が優秀だと気づいた。 VSCodeはIDEじゃなくてエディタなんだけど、Extensionをインストールして機
※このネットワーク図では具体例として入力画像と特徴マップのサイズも記載されているが、U-Netは全結合層を持たないため、入力画像サイズを固定する必要はない。 この論文では細胞と背景のセグメンテーションが目的なので出力は2チャンネル(2クラス分類)。 Encoder-Decoder構造 U-NetもFCNやSegNetと同様に全結合層を持たず、畳み込み層で構成されている。U-NetもSegNetのようにほぼ左右対称のEncoder–Decoder構造で、Encoderのpoolingを経てダウンサンプリングされた特徴マップをDecoderでアップサンプリングしていく。 U-NetとSegNetの大きな違いは、Encoderの各層で出力される特徴マップをDecoderの対応する各層の特徴マップに連結(concatenation)するアプローチを導入した点。このアプローチはスキップ接続と呼ばれて
画像の領域を分割するタスクをSegmentation(領域分割)と呼び、Semantic Segmentationは「何が写っているか」で画像領域を分割するタスクのことを指す。 画像を物体領域単位で分類する物体認識や物体検出に対して、Semantic Segmentationは画像をpixel単位でどのクラスに属するか分類する。そのためPixel-labelingとも呼ばれる。 もちろんディープラーニング以前から様々な手法が提案されている。 https://news.mynavi.jp/article/cv_future-35/ https://news.mynavi.jp/article/cv_future-36/
SSD (Single Shot Multibox Detector)はECCV 2016で発表されたSSD: Single Shot MultiBox Detectorで提案された手法。 SSDはYOLOと同じように、領域スキャンのアプローチを使わずに入力画像からCNNで直接物体の位置を検出するOne-Stage(Shot)と呼ばれるアプローチの手法。 YOLOとの大きな違いは、YOLOがBounding Boxの出力を出力層だけで行っていたのに対し、SSDではCNNの複数の層から物体のBounding Boxを出力する点。 畳み込みニューラルネットワークの性質 畳み込みニューラルネットワークでは、入力画像から特徴を抽出する過程(畳み込みやプーリングなど)で特徴マップが徐々に小さくなっていく。そのため、出力層近くの特徴マップ上で1 pixelの要素であっても、もとの入力画像上では大きな領
ディープラーニング以前の物体検出手法でよく使われていたDeformable Part Modelも含め、YOLO以前の物体検出手法は領域(region)ベースのアプローチだったが、 YOLOの最大の特長は、スライディングwindowやregion proposalといった領域スキャンのアプローチを使わずに、畳み込みニューラルネットワークで画像全体から直接物体らしさと位置を算出する点。 YOLOでは、まず入力画像を正方形(論文の例では448×448)にリサイズし、それを畳み込みニューラルネットワークの入力とする。 grid cell YOLOは候補領域検出を行わない代わりに、正方形の画像全体をS × Sのgrid cell(グリッド領域)に分割する。 Bounding Boxの推定 分割した各grid cellに対して、B個のBounding Boxを推定する。 1つのBounding Bo
R-CNNと同じ著者(Ross Girshick氏)がICCV2015で発表したFast R-CNNは、画像全体からCNN(ここではVGGを利用)で特徴マップを抽出するまではSPPnetと同様。違うのはこちらのスライドで言うと3~5のプロセス↓ ここからはRegion Proposal(候補領域)という言葉に代わってRegion of Interest(関心領域)という言葉が使われるけど、分類(Classification)対象となる領域を指しているので同じ意味です。 RoI (Region of Interest) Pooling Fast R-CNNでは、SPP(Spatial Pyramid Pooling)のピラミッドレベルを1つに簡略化したRoI(Region of Interest)Poolingによって検出領域を固定サイズのベクトルに収める。 RoI Poolingは、アスペ
今まで一般物体認識や一般物体検出にはあんまり興味が無かったんだけど、YOLOとかSSD、Mask R-CNNといった手法をベースにして特定のタスクを解く研究も結構登場しているので、その体系を知りたくなってきた。 幸い、ディープラーニングによる一般物体検出の研究はもう5, 6年経っていてネット上に教材が豊富なので、色々と漁りながら勉強してみる。スクラップブックみたいな感じで色んな人による解説資料を引用して並べるとディティールを補完しやすい。 一般物体検出(Generic Object Detection) そもそも一般物体検出(Generic Object Detection)とは、画像に何が写っているかを識別する一般物体認識(Generic Object Recognition)に対して、さらに物体が画像のどの位置に写っているかも特定すること。 人の顔など、画像の中から特定の物体を検出して
3D人-3dnchu-さんでオープンソースのPhotogrammetryアプリケーション「meshroom」とその基盤となっているフレームワーク「Alice Vision」が紹介されていたのでちょっと調べてみた。 http://3dnchu.com/archives/alicevision-meshroom/ AliceVision – Photogrammetric Computer Vision Framework AliceVisionは3D復元とカメラトラッキングのアルゴリズムを提供するPhotogrammetricコンピュータービジョンフレームワークです。AliceVisionは、state-of-the-artのコンピュータビジョンアルゴリズムを、テスト・分析・再利用可能な強力なソフトウェアのベースとして提供することを目指しています。このプロジェクトはアカデミアと産業のコラボレ
気づいたら、OpenCVにFace Alignment(顔のランドマーク検出)のためのFacemarkというAPIが実装されている。(Learn OpenCV情報↓) https://www.learnopencv.com/facemark-facial-landmark-detection-using-opencv/ 実装はGSOC 2017の成果らしいですね。
.NETアプリケーション(特にUnity)からROSを利用するためのC#でできたライブラリ・ツール ROS#が公開された。→ROS-INDUSTRIALのアナウンス ライセンスは Apache 2.0で、freeで商用利用も可能。
Structure from MotionからMulti-View StereoまでできるCOLMAPというツールを見つけた。そこからさらにSurface ReconstructionまでやらないとPhotogrammetryとは言わないのかね。 COLMAPは、GUIとCLIを備えた汎用的なStructure from Motion(SfM)とMulti-View Stereo(MVS)のパイプラインです。COLMAPは、順序のある画像、順序不同の画像群から再構築を行うための幅広い機能を提供します。 このソフトウェアはGNU General Publicライセンスです。 COLMAPはBSDライセンスに基づいてライセンスされています。このプロジェクトを研究で利用する場合は以下論文を引用してください。
ここ最近、ディープラーニングというか、ニューラルネットワークのお勉強をしてみて、その処理コストが高いため、実装では行列演算として扱われていることを知った。
追記:公式ブログ記事を日本語訳した方がいらっしゃいます↓ https://qiita.com/Ao_i/items/18dec197434c7f853a92 Unity ML-Agents一式はGitHubにある。↓ https://github.com/Unity-Technologies/ml-agents ゲーム開発者が強化学習でエージェントを作成したり、AIの研究者が強化学習用のシミュレーション環境としてUnityを利用できるようにするためのフレームワークというか、SDKとTensorFlowラッパーってところか?
社会人になって以降、CGレンダリングのテクニカルな話から遠ざかって久しい。 最近のレンダリング技術のトレンドをまるで知らない。最新のMaya2018ではもうmentalrayがバンドルされなくなったと聞く。(でもお値段据え置き) 今のオフラインレンダリングでデファクトスタンダードなレンダラって何なんだろうか。 一方、ここ数年でUnrealEngineやUnityなど、無料で利用できるゲームエンジンのレンダラ品質がリアルタイムとは思えないほど向上している。映画「ローグ・ワン/スター・ウォーズ・ストーリー」では一部のCGカットにUnrealEngine4が使われているらしい。 無料で使えて品質も良いなら、活用しない手は無いな。と思ってUnityへこのモデルをインポートしてみた。↓ 一応、いったん完成ということにする。 大学生の頃、世界史(だったと思う)の授業中に描いた怪人の顔のラクガキを基にイ
だいぶ時間が空きましたが、引き続きOpenCVの3次元復元系の関数を見ていく。 今回はcalib3dモジュールにあるtriangulatePoints関数。つまり三角測量を行う関数ですね。 void cv::triangulatePoint... デバッグ目的の可視化はUnityEditorぐらい手軽に済ませたいところ。だったら最初からUnityを使ってしまおうと思って調べ始めた。 3つの有料Asset UnityのAssetStoreで調べてみると、Unity上でOpenCVの機能を使えるようにする有料Assetが3つある。 OpenCV plus Unity:価格74.99ドル OpenCV for Unity:価格95ドル Emgu CV v3.x:価格399ドル UnityでOpenCVの機能を使うには、もちろん自分でC++ネイティブプラグインを作るという手もある。 だけど、オイラ
Visual Odometry, Visual SLAM, Structure from Motion, Multi-View Stereoなど、複数の2D画像から3Dの情報を復元する技術の良いリンクまとめページを見つけた。 Awesome 3D reconstruction list 複数画像から三次元復元を行う研究論文やリソースへのリンクをリスト化したものです。 以下をご了承ください: このリストは決して網羅的なものではありません このリストでは、公平のためにアルファベット順で記載しています 全ての情報を網羅したリストではないと注意書きがあるけど、初学者には十分過ぎるまとめだと思う。 GitHubのopenMVGリポジトリにあったのに今まで気づかなかったとは。。。 チュートリアルドキュメントやオープンソースで利用できるプロジェクトも一覧になってて有難い。 2016年のICRA(IEEE
ここのところ、やたらと2D→3D関連のライブラリやツールについて調べています。 このMVE(Multi-View Environment)というライブラリは、Structure-from-Motion、Multi-View Stereo、Surface Reconstruction(表面の再構築)までのパイプラインを実装したライブラリ。UMVE(Ultimate MVE)というGUIアプリケーションもある。 3条項BSDライセンス(BSD 3-Clause License)なのでライセンスと著作権を表示すれば商用利用も可能。 Multi-View Environment(MVE)は、画像から形状を再構築するための完全なエンドツーエンドのパイプラインを実装しています。 これはStructure-from-Motion、Multi-View Stereo、Surface Reconstruct
GoogleがSLAM(Simultaneous Localization and Mapping)のオープンソースライブラリCartographerを発表した。 Apache(v2)ライセンスなので、ライセンスと著作権、変更点を表示すれば商用利用もできる。 Cartographerは、リアルタイムの自己位置推定と、複数プラットフォーム・センサー間での2Dと3Dマッピング(SLAM)を提供するシステムです。 http://shiropen.com/2016/10/06/20203 SLAM(Simultaneous Localization and Mapping)ってのは、日本語で言うと「自己位置推定と環境地図作成」ですかね。
さっきTLに流れてきたSVO論文読了。前フレームとの視差で初期位置推定、キーフレームとの視差で更に高精度位置推定、最後に局所的にBAするスレッドと、3D点をベイズ推定する的なスレッドから構成される感じかな。てか、割と良くやるアプローチのような気もする。 — kf (@peisuke) 2014, 6月 18 SVOが使っているのはSophus(Eigenベースの回転群実装)ですが,PTAMはTooNを使っています.回転群以外にも色々あります. http://t.co/871zhcqyl4 — Toru Tamaki (@ttttamaki) 2014, 6月 20 世の中スゲェ人だらけだなぁ。
次のページ
このページを最初にブックマークしてみませんか?
『NegativeMindException』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く