Open GENZITSU opened 3 years ago
商品の説明文をBERTで、商品画像をResNetで処理するマルチモーダルな分類手法の紹介。
5行まとめると ・MultiModal BiTransformersの略だよ ・画像とテキストを分類するための教師ありマルチモーダル・ディープラーニングモデルだよ ・高精度かつファインチューニングが容易で実装が簡単なのが特徴だよ ・事前学習済のBERTとResNet-152を使ってるけど、BERT単体,ResNet単体のモデルや両方を単純に結合したモデルより高い精度が出るよ ・BERTとResNet-152のベクトルを結合した後にさらにBERTに入力しているのがミソだよ
以下がアーキテクチャー図。
元記事にはgradcamとAttetionMapによる可視化についても触れられていた。
比較表をみたところ、imageのみだと厳しいがBERT単体だと結構が精度がでて、そこからのもうワンプッシュを達成できているように見える。
実サービスにも適用されたらしい。すごい
早速実務のECサイトの商品分類活用したところ、論文の通り従来のBERT単体やResnet単体よりも精度が高く、実サービスに採用することが決まりました。
メモ。マルチモーダルだとなんか重そうだけど、実運用まで漕ぎ着けてるのが驚き。
Gunosyから投稿されたニュース記事の品質が広告効果に与える影響の論文と、wikiを用いたファクトチェックAPIの紹介がされている。
The Effect of News Article Quality on Ad Consumptionという論文で下図のように、ニュース記事の質が高いほどCVRが高いことを確認している。
クオリティの判断は以下のように実施
We judged the quality of news articles by using experts and a rule-based method. News articles to be judged were selected from six popular news categories: social, economic, entertainment, technology, sport, and cooking. First, we developed a list of low-quality words, such as vulgar, violent, or cruel words. Then, we retrieved articles containing one or more low-quality words in their headline or body, and judged them as low-quality. Experts were employed to find high-quality articles because it is difficult to judge the objectivity and accuracy of the content and appropriate length of articles by simply using heuristics [11]. Three experts were involved in identifying a high-quality article. An article is considered high-quality if it is judged by all experts to meet the quality criteria. These experts were members of the content quality team working for the news platform.
WikiCheck: An end-to-end open source Automatic Fact-Checking API based on Wikipedia
以下のようにファクトチェックを行えるAPIが公開されているのだとか
以下のような手法を踏んでいる。
いずれの論文も面白い。
MOT技術の基礎技術であるSORTとDeepSORTのアルゴリズムの紹介
トラッキングアルゴリズムには以下のような系譜があるとのこと
(2016年) 物体検出を deep で置き換え、association はカルマンフィルタを基にした affinity matrix を介して行う (2016年〜2017年) Deep model で抽出した特徴量をベースにして類似度を計算して affinity matrix を利用する (2019年〜現在) 一体型モデルの学習難易度を下げる (2021年〜現在) コサイン類似度に変わる類似度を利用する (2020年〜現在) Transformer の導入
トラッキングとは全てのフレーム間でのtrackletとdetectionを紐づけることであり、以下のような観点で紐付けを行う
- 検出された bbox と tracklet から予測された bbox の位置が近い
- 検出された bbox と tracklet から予測された bbox の形状が似ている
- 検出された bbox の中と以前 tracklet に紐づけられた bbox の中の視覚的な特徴が似ている
これらの観点を統合した紐付け処理はハンガリアンアルゴリズムを使用することができるようで、ほとんとのトラッキングアルゴリズムは、これの入力となるaffinity matrixをいかにして作るかが焦点となっている。
ハンガリアンアルゴリズムを割り当てアルゴリズムとして採用することを決めてしまうと、MOT というタスクはハンガリアンアルゴリズムに供する affinity matrix (tracklet と detection の類似度を並べた行列)6 を作るタスクであると言い換えることができます。実際、近年発展した MOT アルゴリズムのほとんどがこの affinity matrix をいかにうまく作るかにフォーカスして研究が行われています。
SORTは2016年に発表されたSimple Online and Realtime Trackingという論文で提案された手法。
SORTはbbox系列からカルマンフィルタを用いbboxの予測を行い、新規フレームで検出されたbbocのIoUと組み合わせたaffinity matrixをハンガリアンアルゴリズムに入力する。
SORT は物体検出モデルからトラッキングのターゲットとなる bbox の情報を受け取り、それら bbox を直前フレームまでの情報からカルマンフィルタによって予測された bbox と紐付けます。このとき、affinity matrix はカルマンフィルタによって予測された tracklet の bbox と検出された bbox の IoU7 を使います。
メリットはその高速さで、デメリットはオクルージョンやオブジェクトの交差に弱い点があげられる。
欠点はオクルージョンやオブジェクト同士の交錯などに弱いことが知られています。association の際に bbox の位置情報しか見ていないので、物陰に一時的に消えたオブジェクトが再び画面に戻ってきたときなどにオブジェクトがカルマンフィルタで予測できる位置に現れてくれないと tracklet が途切れてしまったり、オブジェクトが交錯したときに ID switch (ふたつのオブジェクトの ID が入れ替わってしまうこと) が起きることを避けることができません。
DeepSORTは2017年に提案されたSimple Online and Realtime Tracking with a Deep Association Metric share iconという論文で提案された手法。
このモデルでは検出されたbboxにperson-ReIDモデルで特徴抽出を行い、新規フレームで検出されたbbocがもつ特徴量とのcos類似度いよりaffinity matrixを作成する。
DeepSORT では物体検出モデルによって検出された bbox 領域に対して person-ReID9 データセットで学習されたモデル10を適用して特徴ベクトルを獲得します。person-ReID モデルによって抽出された特徴量は tracklet の持つ特徴量とのコサイン類似度を affinity matrix として association に利用します。ハンガリアンアルゴリズムによって紐付けが発生した tracklet にはその時紐づいた detection の特徴量が登録されます。Association の際には Matching Cascade と呼ばれるアルゴリズムを採用しており、直近で観測があった tracklet に優先的に association を行うようなアルゴリズムを採用しています。
この論文ではSORTのカルマンフィルターに対して、マイナーチェンジがされており、以降この流派のデファクトとなっている。
カルマンフィルタで推定する bbox の状態が変更されていたり、カルマンフィルタによって予測された bbox と検出された bbox の類似度が IoU からカルマンフィルタの推定の不確実さを利用したものに置き換えられたりなどのマイナーチェンジがいくつか施されています。DeepSORT で提案されたカルマンフィルタはこれ以降のカルマンフィルタを用いたほとんどのアルゴリズムに利用されており
メリットはSORTよりも劣るものの高速で動きオクルージョンにも強いこと、デメリットは特徴抽出の際にサイズ感が分からなくなってしまうこと、オブジェクトの周辺情報を考慮できないこと、などが挙げられている。
勉強になる。DeepSORTの時点で結構完成されている感があるのだが、まだ3段階の進化系を残しているとは...
株式会社エクサウィザーズは、ヤマト運輸株式会社向けにMLOpsを実現する環境を構築し、機械学習モデルの「データ抽出→前処理→学習→予測→評価」などの作成プロセスを自動化しました。これにより、ヤマト運輸は月次の機械学習モデルの運用が高速化し、継続的な改善が可能になりました。MLOpsはECベンチャーなどテクノロジー企業での導入事例はあるものの、大企業での導入としては先進的なケースとなります。エクサウィザーズは今回の成果を基に大企業への運用まで含めた機械学習導入支援を手掛けていきます。
約6,500店ある宅急便センターの数ヶ月先の業務量を予測するため、機械学習モデルを毎月作成し、需要に応じた効率的な経営資源の最適配置とコスト適正化を推進しています。毎月運用する機械学習モデルは複数あり、作業は多岐に渡ります。月次トランザクションデータ/マスタのファイルの準備、設定ファイルの書き換え、プログラムの手動実行などが対象です。スピード感をもってPoCに取り組んだ結果、作業負荷が高い状態が続いていました。また、事業部への予測結果報告までの運用スケジュールが短期的なため、機械学習モデルの再作成や予測の再分析が難しい課題も抱えていました。
エクサウィザーズはGit flow(※2)を参考にソースコードのバージョン管理方法を見直し、属人化していたバージョン管理の運用方法を標準化しました。また、同社はバージョン管理ツールをGitHubに一本化することにより、複数のベンダーが同じソースコードに対して同時に開発できる、開発・運用環境を整えました。 この取り組みの結果、ソースコードの役割をマスタ(main)、本番運用(release)、開発及び単体テスト(feature)、結合テスト(develop)に整理でき、ソースコードの運用プロセスを刷新できました。新しい運用プロセスは本番環境の月次運用プロセス①、検証環境の機能開発+テストのプロセス②、翌月の運用に向けて本番環境のソースコードを最新化するプロセス③の3つで構成されます。このプロセス見直しにより、ソースコードの運用が安定しました。
MLOps環境の構築が売り物になるというのが驚き。導入先企業にある程度の開発体制がある場合はそこに対する支援という形でビジネスを進めていくことができるのか...
[元記事]()
PyCaretに時系列分析用のモジュールが追加されたとのこと。
現状はpip install pycaret-ts-alpha
でインストールして試用することができるらしい。
You can use pip to install this library. If you have PyCaret installed in the same environment, you must create a separate environment for pycaret-ts-alpha due to dependency conflicts. pycaret-ts-alpha will be merged with the main pycaret package in the next major release
各種統計量のチェック
プロット系
予測モデル系
などなど至れり尽せりな感じ
とんでもなく便利な時系列分析用ライブラリがでてきたものだ...
Smooth Smith WatermanというアルゴリズムをJAX, Pytorchで実装して速度を比較した記事。 現状JAXのほうが2.2枚倍度早いという結果になっているがpyrochを高速化した手段が面白かった。
CUDAの高速化のつもりで考えると、 Batchの軸を行列の一番内側にもってくるほうがCUDA的には速くなりそうな気がします。また、JAXはJITを使っているのでPyTorchもJIT使うほうがいいだろうということでJITを使いました。
これをすることで556倍差が4.6倍差になる
プロファイル結果を見るとかなり実行時間の短いCUDA Kernelが大量に実行されているという状態でした。このため、CUDA Kernelの実行のオーバーヘッドがかなり入っているのでは?と考えて、これを削減するCUDA Graphsを使ってみます。
これをすることで2.2倍差まで縮まる。
CUDA関係ででbatchの軸を一番内側にすることで早くなるということはしなかった。最近リリースされたCUDA graphsで2枚程度早くなるという結果も有益情報。
[元記事]()
テキストの読みやすさをデバイスのスクロール速度などから判別する手法の提案。
Predicting Text Readability from Scrolling Interactionsという論文で提案されたもの。
言語特徴量から予測するのだと限界があるので、文章を読む際の挙動も特徴として使用してみたという話。
There are multiple aspects of a text that impact how difficult it is to read, including the vocabulary level, the syntactic structure, and overall coherence. Traditional machine learning approaches to measure readability have exclusively relied on such linguistic features. However, using these features alone does not work well for online content, because such content often contains abbreviations, emojis, broken text, and short passages, which detrimentally impact the performance of readability models.
To address this, we investigated whether aggregate data about the reading interactions of a group can be used to predict how difficult a text is, as well as how reading interactions may differ based on a readers’ understanding. When reading on a device, readers typically interact with text by scrolling in a vertical fashion, which we hypothesize can be used as a coarse proxy for reading comprehension.
518人の参加者を募り、1文書あたり平均17人、計60の文書に対して実験をおこなった結果、読むのにかかった時間と最大速度などで予測ができることを示した。
we recruited 518 paid participants and asked them to read English-language texts of different difficulty levels.
the model was trained contains 60 articles, each of which were read by an average of 17 participants.
We found the most significant features to be the total read time and the maximum reading speeds.
それはそうって感じだけど、ブラウザからのデータを収集できるgoogleならではの手法だな..
キーエンスがなぜ日本一の給与を写真に支払えるかを分析した記事(第二弾)
読んでてなるほどと思った点は、 外出自の報告書が死ぬほど細かいのと、mtgの目的をちゃんと明確にしているところ。
事業部ごとに決まったフォーマットを用いてヒアリング事項や訪問の目的などを事前に明確化することによって、商談の質を担保しています。 「目的が曖昧な面談は一切しない仕組み」ができていることが、キーエンスの外出前面談の特徴です。
キーエンスからの学びポイント③とことん考える(企画力、情報流) 組織にとって価値ある情報をインプットして、独自性ある企画をした人が評価される仕組みをつくる。
実現可能性はよくわからないが、参考になる。
同一セッション内に参照されたアイテムは類似度が高く、別セッションで参照されたものは類似度が低いという仮定のもとitem2vecを学習させることで、クリック率が10%も向上した事例の紹介。
The effect of Item2Vec integration was estimated at 10–20% uplift in our target metrics — clicks and contacts from the affected recommendations section — as in how well we guess and satisfy user interests. The uplift strongly depends on the market and category of items as those differ in catalog size, user base, and amount of available data to build a model on.
アイテムベクトルの獲得方法はかなり自由度が高いのが利点
ペアの抽出は同一セッション内からであればランダムにピックアップ
Similarity assumption is the core idea of the skip-gram model (Word2Vec). It states that items viewed by a user consequently in a single session are more similar than a random pair of items.
こういうシンプルな方法でもちゃんと性能が出ているのは面白い。
表題の通り。
本記事ではpipelineの一部を変更し、出力にtokenized textとattention weightを加えました。 具体的には使用したいpipeline(本記事ではTextClassificationPipeline)を継承し、クラスメソッドのforwordとpostprocessに数行のコードを加えます。これにより、自作のコードを最小限にしつつ欲しい出力を得られます。
forwardの変更だけではなく、posprocessの変更もしないといけないことがみそ。
# from https://qiita.com/shoe/items/5185887d1bb9261c3f90
class TextClassificationPipelineAddOutputs(TextClassificationPipeline):
def forward(self, model_inputs, **forward_params):
# 既存の処理を行います
model_outputs = super().forward(model_inputs, **forward_params)
# code2と同様です
tokenized_text = self.tokenizer.convert_ids_to_tokens(model_inputs["input_ids"][0])
# model_outputs(辞書型)にtokenized textを加えます
model_outputs["tokenized_text"] = tokenized_text
return model_outputs
def postprocess(self, model_outputs, function_to_apply=None, return_all_scores=False):
# 既存の処理を行います
processed = super().postprocess(model_outputs, function_to_apply, return_all_scores)
# 見やすさのために変数を用意しています
tokenized_text = model_outputs["tokenized_text"]
attentions = model_outputs["attentions"][0]
# outputsにtokenized textとattention weightを追加
if return_all_scores:
return [{**proc, **{"tokenized_text":tokenized_text, "attentions":attentions}} for proc in processed]
else:
return {**processed, **{"tokenized_text":tokenized_text, "attentions":attentions}}
あると便利なスニペットだ。
日本語文章を自然に改行するためのライブラリ Budou の進化版ライブラリ。 以下のような特徴を持つ サードパーティライブラリの依存関係が少なく、15kbの MLモデルを使用しており、様々な言語に対応可能、そしてHTMLの入力を受けつける。
It is standalone. It works with no dependency on third-party word segmenters such as Google cloud natural language API. It is small. It takes only around 15 KB including its machine learning model. It's reasonable to use it even on the client-side. It is language-neutral. You can train a model for any language by feeding a dataset to BudouX’s training script. Last but not least, BudouX supports HTML inputs.
使用しているadaboostを利用し、周辺の文字コードや、ユニコードブッロクの組み合わせを素性として分割を行う。
BudouX uses the AdaBoost algorithm to segment a sentence into phrases by considering the task as a binary classification problem to predict whether to break or not between all characters. It uses features such as the characters around the break point, their Unicode blocks, and combinations of them to make a prediction.
このライブラリを用いると以下のツイートのように動的にいい感じの改行をすることができるようになる。
https://twitter.com/clockmaker/status/1461503892693213193?s=20
最初聞いたとき改行のためのライブラリってなんぞ?と思ったが、ツイートの例を見てその有用性に気づいた...
フロント開発の時に取り入れる感じのやつかな?
ヤフーは、「Yahoo! JAPAN」のニュース配信サービス「Yahoo!ニュース」で、ニュースを提供する媒体各社への配信料の支払いに、ユーザーの評価を加味する仕組みを導入した、と11月17日発表した。ユーザーが記事の内容にフィードバックできる「記事リアクションボタン」のクリック率データを利用する。ユーザーの課題解決につながる記事の支援促進が目的となる。
こういう取り組みが広がるとPV稼ぎのための質の悪い記事が淘汰されていくことになるので、どんどん進めてほしい。
ABEJAのDSチームがどのように業務を進めているかが紹介されている。
アセスメントフェーズの進め方
まずはアセスメントのフェーズからスタートし、PMと一緒にお客様とゴールの詳細の決定や開発・分析の方針を議論します。 このフェーズでサンプルのデータを受領し、DSのメンバーが初期検証を行います。初期検証では、どういったバリエーションがあるか・見つけたい対象がどう写っているか、などを確認します。 その上で、データの収集の計画を練ったり、アノテーションの方針を決めます。データと方針がある程度見え次第、なるべく早くデータの収集やアノテーションを開始します。
POCフェーズでの進め方
プロジェクトのゴールを達成できるかを検証します。最も多いのは、EDAをした上で目的としているモデルを構築・チューニングし、「モデルが実用上耐えうる精度が出るか?」を検証することです。
また、モデルを構築するだけでなく、モデルが誤認識した場合にそれがどういうケースなのか?運用上カバーする方法があるのか?今後改善できる余地はあるのか?といった分析であったり、簡単にデモするための開発等もPoCフェーズで行うこともあります。
インテグレーションフェーズでの進め方
DSメンバーとエンジニアメンバーが協力して、PoCで開発したモデルをABEJA Platform(後述)に実装するなどして、お客様が利用できるような仕組みを構築します。機械学習以外の部分、例えばフロントエンドやバックエンドの仕組みなどは、主にエンジニアのメンバーが開発を進めます。
① 運用を意識した開発
ABEJA Platformを意識した開発
② 要件定義フェーズの早い段階からの連携
ABEJAではDSチームが営業や要件定義などのフェーズから積極的に参加し、方針を検討します。会話の中で課題を整理して本当に解くべき問題を再定義したり、データの収集の方法の提案などもします。
データを実際に確認しながらゴールを上手く設計することにより、高速・高精度になるケースはいくらでもあります。与えられた問題に対する分析・モデル開発だけではなく、様々な業種において、課題の把握やゴールの設計に関わるのは一つの面白みではないかと思います。
③ 情報共有の仕組み
勉強会 / 社内カンファレンス / notion の利用
DSチームではこういった最新技術に対する日々の勉強や、その他各自案件で開発した技術に関する技術情報の共有会の場を毎週設けています。
また、ABEJAではDSチーム内での情報共有の仕組みだけではなく、社内の小規模なカンファレンス「ABECON」を始めとして、ハッカソン・アイデアソンなど様々なイベントを開いています。いつも開いてくれる皆さん、ありがとうございます。
最近は全社的に情報をNotionに集約している流れに乗って、Notionへと移行しました。朝会や進捗確認の場などで、それぞれのタスクを確認します。
① 提案内容レビュー
お客様からの相談に対して、その案件を受けられるかどうかや、受けるとしても方針が問題ないかなどをチェックします。例えば、機械学習に関する案件の場合であれば、学習データの有無やアノテーションの難易度、タスクの難易度、どの程度の精度であればどういった価値が出せそうかどうか、そもそも別の方法で解けないかなどを精査します。
② 実装方針レビュー
PoCにおいてデータの理解をした後に「どういったアプローチで進めるか?」「どういう方針で実装していくか?」を決めていく段階で、その方向でよいのか?他に考えられるアプローチはあるのか?といったところをDSメンバーでレビュー・ディスカッションする場です。
③ PRJの振り返り
④ 勉強会
⑤ 汎用コード集
DSチームの仕事の進め方としてとても参考になる。
codebookでまとめるコード範囲はPRJのコード丸々らしいが、本当にそれは汎用性があるのだろうか...?
後から探せるだけでも有用なのかもしれないが。。
トランスジェンダーの人は声と見た目にギャップがあることに苦しむことが多いが、deepfake技術によって声を自動変更することでそれを乗り越えることができるとのこと。
technology from startup Modulate that could add new fun, protections, and complications to online socializing.
he software is the latest example of the tricky potential of artificial intelligence technology that can synthesize real-seeming video or audio, sometimes termed deepfakes.
多くのゲーマーは見た目と声のギャップによる嫌がらせのリスクからオンラインコミュニティに参加するのを躊躇うという
“We realized many people don’t feel they can participate in online communities because their voice puts them at greater risk,” Pappas, Modulate’s CEO, says.
The Anti-Defamation League found last year that almost half of gamers had experienced harassment via voice chat while playing, more than via text.
deepfake? というか声質変換が社会にもたらす好影響の良い事例である。
Tokyo BISH Bash #04 (2021/03/30)で発表された、
多様な話者・スタイルに対応した音声合成の方法のサーベイ資料
メモ
コンテナ技術の概要やそれを用いたシステムのデプロイ方法に触れた後に、その脆弱性と対応方法がまとめられている資料。 85Pのその1枚1枚の内容がかなり濃い良資料。
ざっと見たけどセキュリティ系になった途端なんもわからなくなった。。 むずい。が、いつか読み返せるようになりたい。
Netflixのtech A/Bテスト ブログの第5シリーズ目。 A/Bテストの結果から以下に意思決定を行うかが書かれている。
いまはA/Bテストあんましない感じなので、メモだけ。 業務で必要になった時に第1シリーズから見返していきたい。
streamlitで作ったwebアプリをaws fargateを通じてデプロイするための方法が書かれたレポジトリ。
画像から特定の物体を消すデモアプリをデプロイできるようになる。
メモ
動画中の空を用意したテンプレートに自然に置き換える技術の紹介。 何はともあれデモ動画を見てほしい。
動画中から空の領域をsegmentationで抽出し、フレーム間のオプティカルフローからカメラの動きを推定し、最適な合成画像を生成するというもの。
その他細かいテクがたくさん載っているとのこと。
面白い研究で、AR系のアプリに応用することができそう。
人間のアノテーションノイズに対応するための学習手法として、物体検知モデルの学習中に確信度が高いbboxを正解として扱って学習を行う手法を提案。
MixTrainingでは二つの強度のaugmentationと二つの学習対象が存在する↑。
MixTraining, integrates the mixed augmentation and mixed training targets as illustrated in Figure 1. In the bottom two branches, normally augmented and strongly augmented images are passed to the detector for training.
exponential moving average で学習されるモデルはpseudo boxの生成と学習対象の選択のために使用される。
In the top branch, an exponential moving average (EMA) model of the online detector is used to generate pseudo boxes and to predict the foreground scores of the training targets.
確信度が高いサンプルについては強度が高いaugmentationの対象
Only for training targets with a high score will their strong augmentations be included for training.
As the detector progresses through training, the mixed augmentation and mixed training targets become increasingly better via bootstrapping.
モデルにもよるが2 ~ 3%程度のmAPの向上に成功
Our experiments show that MixTraining can appreciably improve the performance of leading object detectors such as Faster R-CNN [24] with a ResNet-50 [13] backbone (from 41.7 mAP to 44.0 mAP) and Cascade R-CNN [1] with the Swin-Transformer [22] backbone (from 50.9 mAP to 52.8 mAP).
ノイジーなデータに対しては有効な手法かもしれない。
モデルの推論速度向上のための手順が紹介されている。
ベースとなるモデルよりも精度が高いモデルを用意し、そのモデルから知識蒸留を行うことで、少し精度を引き上げる。
精度が少し上がったモデルの精度を犠牲に、スパース化を行うことで特定の重みを0にする。
重みが0になった層を物理的に削除して推論速度を向上させる。
Batchnormalization層をCNN層に取り込むことでさらにparameterの数を減らす。
以上の手順で、vgg16の推論速度を2枚程度に向上させることに成功している。 以下は具体的な数値比較。
before
after
実務では到底許容できない推論速度だが精度が高いモデルが存在するので、そいつをteacherにしてベースラインモデルの性能を上げにいくというのは択としてありそう。
pruningしたモデルをさらに、tensorRTとかに入れるともっと早くなったりするのだろうか...?
東芝は、ズームレンズによるズームアップや、オートフォーカスで撮影した数枚の単眼カメラの画像データから、実スケールの3次元計測ができる世界初のAI技術を開発した。
今回開発したAI技術を活用することで、単眼カメラの多視点画像から求めた相対的な奥行き情報に加えて、撮影画像に含まれるボケ情報を組み合わせることで、絶対値を計測することができるようになる。
同社の実験では、市販の一眼レフカメラと焦点距離24~70mmのズームレンズとの組み合わせで、4~5枚の写真を、10度~20度程度のずらしながら撮影。AIを活用することで物体やひび割れのサイズを高精度に計測できた。
技術のポイント
単眼SfM (structure from motion)を利用したものでは、視点位置の異なる撮影画像の見えの違いをもとに、3次元形状を復元。そこに、ジャイロセンサーを組み合わせることでサイズ計測が可能だが、デバイスのサイズ的な制約もあり、どうしても近距離での計測が中心となる。
レンズ収差を利用したAIでは、1枚の撮影画像から奥行きを取得できるが、レンズを固定して、一定の距離をもとに事前学習する必要がある。3mの距離で学習していた場合に、もっと近くのものを撮影したいといってもすぐに利用ができない。レンズを動かした時は、再学習が必要になる」
従来技術は、撮影距離が大きく変化しない場合や、近距離での屋内利用などにはいいが、今回の技術は、そうした用途に加えて、撮影するたびに、撮影距離が大きく変化する屋外のインフラ点検も視野に入れた活用が可能になるという。
また、同じカメラではなく、異なるカメラで撮影した画像データも組み合わせて利用できることから、複数のドローンで撮影した画像を利用したサイズ計測も可能だという。
実験結果など
同社では、この技術を用いて、ひび割れ計測に適用した結果、7 m先のひび割れのサイズを高精度に計測できたという。
今回の技術では、7mの遠距離でも10%の誤差範囲であり、インフラ点検などのケースでも実用に耐えられる水準
屋外において、11カ所で5~7m先の対象物を撮影。それらのサイズを計測したところ、レンズを固定した理想条件においてはサイズ誤差が2.5%であり、ズームレンズを使った難しい条件でも、サイズ誤差は3.8%に抑えることができた
なお、同技術は、11月22日にオンラインで開催されるコンピュータビジョンに関する国際会議「The British Machine Vision Conference 2021 (BMVC 2021)」で発表される。
とんでもない技術が出てきたような気がする。論文を待ちたい。
Robust High-Resolution Video Matting with Temporal Guidanceという論文の実装紹介ブログ。
メモ
PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering
教師なしでセマンティックセグメンテーションを行う手法の提案@CVPR 2021.
以下の図のように、特徴抽出器からピクセルレベルの特徴量を抽出して、それらのクラスタリングを行うことでセグメンテーションを実施する。分類器を使うよりもクラスタリングの方がノイズに強いのでそちらを選択しているとのこと。
教師なし学習を可能にするために、photometric変換をかけてもラベルは不変だが、geometric変換をかけるとラベルも同様に変化するという制約をつけて学習を行う。
コメント
自己教師あり学習チックな手法で成功しているのは面白い。
出典
元論文
解説記事