#author("2023-03-17T06:32:45+00:00","default:mizutu","mizutu")
[[AI推進準備室]] > AIrepVol5
* 「私的AI研究会」レポート VOL.5 &color(green){== 編集中 ==}; [#i4324fde]
#ref(interface202304s.jpg,right,around,30%,interface202304s.jpg)
これまで取り上げたテーマを振り返ってみる。以下は CQ 出版刊「インターフェース 2023年4月号」特集3 からの抜粋。~
#contents
#clear
RIGHT:&size(12){※ 最終更新:2023/03/16 };

** ディープ・ラーニングの今 2023 [#r976d4e1]
*** ディープ・ラーニング(深層学習)の位置づけ [#e31e8d02]
- ディープ・ラーニングは AI技術の一分野~
~
#ref(deep2023_01.jpg,left,around,100%,deep2023_01.jpg)
#clear
&size(12){引用 → [[令和元年版 情報通信白書|AIに関する基本的な仕組み - 総務省>+https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/html/nd113210.html]]};~
~
- ディープ・ラーニングは大量のデータを元に自動で特徴量を抽出し、学習していく AI技術~
・画像認識などに用いられる CNN(畳み込みニューラル・ネットワーク)~
・音声認識などに用いられる RNN(再帰型ニューラル・ネットワーク)~
など複数の種類がある~

- 近年次のような理由でディープ・ラーニングの研究が加速した~
・高性能 GPU の登場でコンピュータの処理性能が飛躍的に向上~
・インターネットの発達で、自ら目的の画像/音声/テキストなどの学習に利用可能な大量のデータが収集しやすくなる~

- 公開されている大規模データーセットの例~
|CENTER:種別|CENTER:名称|CENTER:URL|h
|画像|ImageNet|https://image-net.org/|
|~|COCO – Common Object in Context|https://cocodataset.org/#home|
|~|Google Open Image V4|https://storage.googleapis.com/openimages/web/factsfigures.html|
|~|CoPhIR|http://cophir.isti.cnr.it/whatis.html|
|動画|YouTube-8M Dataset|https://research.google.com/youtube8m/|
|~|YouTube-BoundingBoxes Dataset|https://research.google.com/youtube-bb/|
|~|Atomic Visual Actions (AVA)|https://research.google.com/ava/|

*** ディープ・ラーニングの応用例 [#vf6f04bb]
- 製造分野~
 高齢化による専門家不足等に対応するため、目視で行っていた外観検査にディープ・ラーニングを活用した画像認識技術を使う試みが進行している。
画像認識技術によって、外観検査を自動判定することで省人化・検査品質の均一化を図っている。~
・自動車部品メーカーのアイシンは、画像を撮影するカメラ側でディープ・ラーニングを動作させるエッジ・デバイス形式を取ることでコストダウンに成功した。エッジ・デバイスには「Jetson Xavier NX(エヌビディア)」を採用。~

- 医療分野~
 深刻化する医師不足に対応し、診断の質を高めつつ医師の負担を軽減するために、ディープ・ラーニングを活用した画像認識技術が使われている。~
・NECと国立がんセンターは、大腸前がん病変と早期大腸がんを内視鏡検査時にリアルタイムで自動検出できる技術の開発に成功した。~
・富士通と総合南東北病院は、生存率が低い膵臓がんを非造影CT画像から早期発見できる技術を開発している。~
・2022年度の診療報酬改定により、4月から新たに「人工知能技術(AI)を用いた画像診断補助に対する加算(単純・コンピュータ断層撮影)が保険適用されることが決定された。~

- 農業分野~
 担い手の減少、高齢化による労働力不足に対応して、作業の負担を軽減し、食料採算性と収益の向上を実現するためにディープ・ラーニングを活用した画像認識技術が使われている。~
・葉色解析AIサービス「いろは」は、圃場(ほじょう)の様子を上空からドローンで撮影することで、作物の育成状況を一目で把握できるサービス。ドローンで撮影した画像を認識することで、収穫の予測を助けたりピンポイントの除草剤散布でコスト削減などが可能となる。~
・日本農薬は、水稲・トマト・キュウリなどの計15作物の病害虫や雑草を画像診断できるスマートフォン・アプリ「レイミーのAI病害虫雑草診断」を提供している。~

*** ディープ・ラーニングのシステム構成 [#s28ae87f]
> &ref(deep2023_02.jpg,left,around,70%,deep2023_02.jpg);
#clear
 &size(12){引用 → [[スマホでAI!?エヌビディアのアーム買収で何が起こるのか?>+https://www.sbisec.co.jp/ETGate/?OutSide=on&_ControlID=WPLETmgR001Control&_PageID=WPLETmgR001Mdtl20&_DataStoreID=DSWPLETmgR001Control&_ActionID=DefaultAID&getFlg=on&burl=search_market&cat1=market&cat2=report&dir=report&file=market_report_fo_topic_200923_01.html]]};~

- クラウドAI~
 エッジ・デバイスで収集したデータをネットワーク経由でクラウドに送り、データ・センタのマシン・パワーによって学習と推論を行う。高性能なマシン・パワーを使った高性能なディープ・ラーニングが可能であるが、タイムラグの発生やネットワーク障害に弱い弱点もある。~

- エッジAI~
 クラウドで学習したモデルをエッジ・デバイスに配布し、エッジ・デバイスで推論を行う。反応速度が速い、クラウドにデータを送らないためプライバシーを保護できる、ネットワークの有無に影響されない長所があるが、AI解析結果がエッジ・デバイスの性能に依存する。~

*** 代表的なフレームワーク [#n2044d06]
 &size(12){前掲のページ → [[ディープラーニングのフレームワーク>AIrepVol4]]};~
- TensorFlow~
'' 利用者多数、軽量版もある''~
グーグルによって 2015年に公開された。公開時期も早くAPIやドキュメントも充実していることから多くの利用者がいる。~

- PyTorch~
'' 対抗馬、自然言語処理から画像処理まで''~
2016年 Meta(旧フェースブック)から公開。Torchという機械学習ライブラリをベースとしたフレームワーク。自然言語処理に利用されることが多かったが、現在では多くの画像処理にも利用されている。~

- Keras~
'' ニューラル・ネットワークを利用できるAPI''~
ニューラル・ネットワークを効率的に利用できるAPIのように機能する。バックエンドにTensorFlowなどが動作する構造になっており、APIを介して効率的にディープ・ラーニングのプログラムを利用できる。TensorFlow や PyTorch に比べると処理が遅く比較的小規模のデータ・セットを対象とする場合に適している。~

- Chainer~
'' 日本初のフレームワークだが、開発終了''~
2015年に公開された日本製のフレームワーク。現在は開発を終了して PyTorch に移行している。~

- ONNX~
'' 様々なフレームワークで利用できる''~
様々なフレームワークで生成したモデルは、基本的には同じフレームワークでしか動作させることはできないが、ONNX(Open Neural Network eXchange)を用いることで異なるフレームワーク間で学習したモデルを同時に運用できる。~

*** 画像処理向け深層学習のタスク [#ad10aff2]
- &color(white,black){'' その1:物体認識 ''};~
 画像中の何らかの位置を抽出するタスクと、それがどの良いな物体であるかを識別するタスクを、順または同時に実行する。ディープ・ニューラル・ネットワークの学習の際は、画像に対して物体の位置を示す矩形(バウンディング・ボックス)と、それにタグやラベルと呼ばれる、物体に意味づけ(人・ネコ・車など)を行った大量のデータを用いて行われる。~
~
#ref(deep2023_03.jpg,right,around,30%,deep2023_03.jpg)
■ ''R-CNN … 物体認識の先駆け''~
 Resion based Convolutional Neural Networks は、画像の中から物体の候補を含む矩形の領域として抽出して、それぞれの矩形がどの物体を含むかを分類する手法。~
速度の向上のため、Fast R-CNN・Faster R-CNN・Cascade R-CNN などの手法が提案されてきた。~
~
 &size(12){画像引用 → [[Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks>+https://arxiv.org/pdf/1506.01497.pdf]]};~
~
#clear
#ref(deep2023_04.jpg,right,around,30%,deep2023_04.jpg)
■ ''YOLO … ユーザー多数''~
 You Only Look Once あらかじめ入力画像を正方形のグリッドに分割し、対象物の候補ではない背景領域を切り捨て、対象物の候補領域に対して高速に物体認識ができることが特徴。最初に発表された YOLO は2016年、2022年7月には YOLOv7 が発表されている。~
~
 &size(12){画像引用 → [[You Only Look Once: Unified, Real-Time Object Detection>+https://arxiv.org/pdf/1506.02640.pdf]]};~
~
#clear
#ref(deep2023_05.jpg,right,around,30%,deep2023_05.jpg)
■ ''DETR … 話題の Transformer アーキテクチャーを採用''~
 Detection Transformer は Transformer アーキテクチャーを物体認識に採用したもの。自然言語学習における Transformer は,Attention機構のみで構築されたネットワークにより、文章中の広範囲な単語の依存関係を捉えながら、どの単語に注目すれば文章の意味を理解できるかを学習する。これを画像からの物体認識に用いることで、シンプルな構成ながらも高性能な物体認識を実現した。右の画像は DETR の処理中の情報を可視化したもの。各画素に関連する領域が白く示されている。~
~
 &size(12){画像引用 → [[End-to-End Object Detection with Transformers>+https://arxiv.org/pdf/2005.12872.pdf]]};~
 &size(12){Transformer論文 → [[Attention Is All You Need>+https://arxiv.org/pdf/1706.03762.pdf]]};~
 &size(12){          [[TRANSFORMER MODELS: AN INTRODUCTION AND CATALOG>+https://arxiv.org/pdf/2302.07730.pdf]]};~
~
#clear

- &color(white,black){'' その2:セグメンテーション ''};~
 セグメンテーションとは画像を画素単位でいくつかの意味(クラス)に分類するタスク。物体認識のタスクは、バウンディング・ボックスによって物体の位置を示したが、セグメンテーションは画素単位で分類することが大きく異なる。~
~
#ref(deep2023_06.jpg,right,around,30%,deep2023_06.jpg)
■ ''セマンティック・セグメンテーション''~
 セマンティック・セグメンテーションはエンコーダ・デコーダ構造と呼ばれるネットワークを用いる。ニューラル・ネットワークにおいて、入力データを圧縮し次元を小さくして入力したものを低次元で表現する過程をエンコーダと呼び、低次元で表現された特徴から復元する過程をデコーダと呼ぶ。PSPNet は画像の大局的なコンテキストと局所的な情報の両方を扱うことができる。最終的に同じサイズにそろえられた特徴のすべてからデコーダを介して画像の画素ごとにクラス分類した結果を出力する。瀬部手の画素を分類するので背景にもクラスが付与される。~
~
 &size(12){画像引用 → [[Pyramid Scene Parsing Network>+https://hszhao.github.io/projects/pspnet/]]};~
~
#clear
#ref(deep2023_07.jpg,right,around,30%,deep2023_07.jpg)
■ ''インスタンス・セグメンテーション''~
 インスタンス・セグメンテーションの代表例 Mask R-CNN は、2ステップで構成されている。前半は画像中の物体ys領域を矩形で予測する RPN(Regon Proposal Network)、後半は、RPN での出力を調整しながら、それぞれの領域のクラス分類と画素単位でのセグメンテーションを実施する R-CNN である。これらを1つのネットワークでまとめて実施するため、セマンティック・セグメンテーションと異なり、同じクラスの物体でも違う領域として出力できる。一方、物体を見つけてから分類を行うため、背景や検知されなかった画素にはクラスが付与されない。右図のMask R-CNN の出力例は物体認識の結果として矩形が表示されている。同じクラスの「人」であっても異なる色のラベルが設定されている。~
~
 &size(12){画像引用 → [[Mask R-CNN>+https://arxiv.org/pdf/1703.06870.pdf]]};~
~
#clear
#ref(deep2023_08.jpg,right,around,30%,deep2023_08.jpg)
■ ''パノプティック・セグメンテーション''~
 Panoptic FPN は、Mask R-CNN を拡張しインスタンス・セグメンテーションのように物体がありそうなエリアに対してそれぞれセマンティック・セグメンテーションを実施する。これによってインスタンス・セグメンテーションのデメリットであった背景などの画素に対してもクラス分類ができるようになる。右図は Panoptic FPN の出力例。同じ「車」のクラスには、実はそれぞれが識別可能なクラスとして認識されているし、道路や背景にもクラス分類が付与されている。パノプティック・セグメンテーションは2019年ごろ新たなタスクとして認知されるようになった。~
~
 &size(12){画像引用 → [[Panoptic Feature Pyramid Networks>+https://openaccess.thecvf.com/content_CVPR_2019/papers/Kirillov_Panoptic_Feature_Pyramid_Networks_CVPR_2019_paper.pdf]]};~
~
#clear

- &color(white,black){'' その3:物体追跡 ''};~
 映像に映っている複数の物体を追跡する手法として MOT(Multiple Object Tracking) がある。MOT はできる限り同じ対象には同じ ID を付与し続けることを目標としている。が、同じ人物に同じID を付与することは簡単ではない。MOT の代表的な手法では、動画の各フレームで追跡したい対象(人・車・動物など)を物体認識の手法で検出した後、同じ物体であるかを判断して同一の ID を付与する。~
~
#ref(deep2023_09.jpg,right,around,50%,deep2023_09.jpg)
■ ''DeepSORT''~
 MOT の手法の代表的なものの一つに SORT(Simple Online and Realtime Tracking) がある。SORT は物体認識の手法で得られた最新フレームのバウンディング・ボックスと、直前フレームまでのバウンディング・ボックスのひも付け情報から予測された最新フレームのバウンディング・ボックスとの関連性を使って、同じ ID を付与する仕組みになっている。SORT はバウンディング・ボックスの位置のみを使っているため高速だが、物陰に隠れたり、追跡している物体同士が交差したりした際に、正しく追跡できない問題がある。~
 DeepSORT はバウンディング・ボックスの位置情報を使って、視覚的な情報を追加したもの。人物の見た目の類似性をバウンディング・ボックスの矩形内の視覚的な特徴量から評価した位置情報に加えて比較することで、SORT の欠点を解決した。右図は DeepSORT の出力例。左右の図は撮影時刻は異なるが同じ人物には同じ ID が付与されている。~
~
 &size(12){画像引用 → [[SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC>+https://userpages.uni-koblenz.de/~agas/Documents/Wojke2017SOA.pdf]]};~
~
#clear

- &color(white,black){'' その4:姿勢推定(Keypoint detection, Pose estimation) ''};~
 姿勢推定は入力された画像から、複数の特徴となる座標(キー・ポイント)を推定する手法。よく利用されるのは人物の姿勢を推定するもので、肩やひじ・手首・腰・膝といった人体の代表的な関節をキー・ポイントとして定義し、それぞれの関節点を画像の中から見つけ出す。姿勢推定には大きく2つのアプローチがある。~
~
・''Top-Down アプローチ''~
 画像の中から対象となる物体(人など)を検出した後に、その中に存在するキー・ポイントを推定していく。画像の中に複数の人物が映っていても、対象ごとにキー・ポイントを推定するため、人物のサイズによる精度への影響は受けにくい。が、映っている人物の数が多いと処理時間が遅くなったり、人同士が重なっているとキー・ポイントの推定を誤ったりするなどのデメリットもある。Top-Down アプローチの代表的な手法は「CPN」「HRNet」がある。~
~
・''Bottom-Up アプローチ''~
 物体認識を行わずキー・ポイントとなる座標を先に検出し、それらをグルーピングする手法。物体認識を行わないため高速だが、映っている人物が小さい場合などが不得意。Bottom-Up アプローチの代表的な手法には「OpenPose」がある。~
~
#ref(deep2023_10.jpg,right,around,30%,deep2023_10.jpg)
■ ''CPN(Top-Down アプローチ)''~
 CPN は2つのステージで構成されている。前半(GlobalNet)では、解像度の異なる階層それぞれでキー・ポイントに対応する特徴量を抽出する。後半(RefineNet)では、それぞれの階層の特徴量をアップサンプリングし、統合することでキー・ポイントの位置を推定する。この仕組みにより画像の局所情報ではなく周囲のコンテキストを反映することが可能となり、身体の一部が隠れていてもおよそ正しい位置を推定できる。右図は CPN のアプローチを説明したもの。left hip は画像上隠れているが、縮小画像で得られるコンテキストが反映されることでおよその位置を推定している。~
~
#clear
 次の画像は CPN の姿勢推定の結果。人の重なりや別の物体で身体の一部が隠れてもおよその位置を推定している。~
#ref(deep2023_11.jpg,left,around,80%,deep2023_11.jpg)
~
#clear
 &size(12){画像引用 → [[Cascaded Pyramid Network for Multi-Person Pose Estimation>+https://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_Cascaded_Pyramid_Network_CVPR_2018_paper.pdf]]};~
~
■ ''OpenPose(Bottom-Up アプローチ)''~
 OpenPose では、キー・ポイントらしい場所を示す Point Confidence Map と呼ばれるヒート・マップとキー・ポイント同士のつながりを表す Part Affinity Field とのマッチングから結果を出力する。画像中の人物を検出してからキー・ポイントとそのつながりを推定するのではなく、キー・ポイントらしさとそのつながりをまとめて処理するため Botto-Up アプローチと呼ばれ、ほぼリアルタイムで実行できるほどの高速処理を実現する。~
#ref(deep2023_12.jpg,left,around,70%,deep2023_12.jpg)
~
#clear
 &size(12){画像引用 → [[OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields>+https://arxiv.org/pdf/1812.08008.pdf]]};~
~

#ref(deep2023_13.jpg,right,around,50%,deep2023_13.jpg)
- &color(white,black){'' その5:画像生成 ''};~
 2014年に発表された GAN(敵対的生成ネットワーク)を期限にAIによる画像生成の研究が進んでいる。GAN はラベルが付与された大量のデータを必要としない教師なし学習の一つで、画像を生成するディープ・ニューラル・ネットワークと、生成された画像が求めたい画像であるかどうかを判定するディープ・ニューラル・ネットワークが相互に競い合うことで学習を行う。GAN の応用である StyleGAN 主砲で生成した人物写真は高精度で発表当時話題となった(右図)。~
~
 &size(12){画像引用 → [[A Style-Based Generator Architecture for Generative Adversarial Networks>+https://arxiv.org/pdf/1812.04948.pdf]]};~
~
■ ''画像のスタイルを変換する AI''~
 Pix2Pix は、学習する画像の組の関係性を学習することで、例えば線が空イラスト、白黒画像からカラー画像への変換、航空写真の画像から地図画像への返還などを実現できる。高精度の画像を生成できる Pix2PixHD もある。~
#ref(deep2023_14.jpg,left,around,50%,deep2023_14.jpg)
~
#clear
 &size(12){画像引用 → [[Image-to-Image Translation with Conditional Adversarial Nets>+https://phillipi.github.io/pix2pix/]]};~
~
#ref(deep2023_15.jpg,right,around,50%,deep2023_15.jpg)
 Pix2Pix は、画素の位置が一致した2つのスタイルの異なる画像が必要だが、CycleGAN はその必要はなく、変換したい異なる画像のスタイル群を学習する。例えば画素の位置が異なる馬の画像群と、シマウマの画像軍で学習したネットワークを用いれば、それぞれを相互に変換することが可能になる。~
~
 CycleGAN の出力例 ➡~
~
#clear
 &size(12){画像引用 → [[Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>+https://junyanz.github.io/CycleGAN/]]};~
~
#ref(deep2023_16.jpg,right,around,50%,deep2023_16.jpg)
■ ''低画質の画像を高画質に変更する AI''~
 GAN は 64X64 程度の低解像度での画像生成が限界。高解像度を生成しても安定しなかったり学習がうまく収束しなかったりしていた。PGGAN(Progressive Growing GAN)は学習が進むにつれ段階的に解像度の高いネットワークの層を追加することで、安定して高解像度の画像を生成することに成功した。~
~
 PGGAN による 1024X1024画像生成の例 ➡~
~
#clear
 &size(12){画像引用 → [[PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION>+https://research.nvidia.com/sites/default/files/pubs/2017-10_Progressive-Growing-of/karras2018iclr-paper.pdf]]};~
~
#ref(deep2023_17.jpg,right,around,50%,deep2023_17.jpg)
■ ''文章から画像を生成する AI''~
 Transformer を用いた DALL-E は、テキストを与えると、その内容に即した画像を生成するAI。DALL-E2 はさらに Diffusion Model と呼ばれるモデルを用いて、これまでよりも内容に忠実でかつ高品質な画像生成を実現した。同じく Diffusion モデルを用いた Imagen、parti、Midjourney、Stable Diffusion など多数の AIが発表された。このような画像生成モデルは、角国の法律、社会的、文化的側面など多くの課題があるため、開発者が一般向けに公開していないケースも多い。~
~
 Stable Diffusion による画像生成の例 ➡~
~
#clear
 &size(12){画像引用 → [[High-Resolution Image Synthesis with Latent Diffusion Models>+https://arxiv.org/pdf/2112.10752.pdf]]};~
~



** 更新履歴 [#o15a722a]
- 2023/03/16 初版

* 参考資料 [#d7468835]
- データセット~
-- [[【保存版】オープンデータ・データセット100選 -膨大なデータを活用しよう!>+https://ainow.ai/2020/03/02/183280/]]~
-- [[機械学習で使うデータセットの種類、入手方法、作り方や注意点を解説>+https://exawizards.com/column/article/ai/machine-leaning-data-set]]~
-- [[機械学習むけ画像データセット - 日本人・風景画像が豊富>+https://pixta.jp/machinelearning-dataset?gclid=Cj0KCQjw2cWgBhDYARIsALggUho9DFMjja41n5bnftmv5N_ieko0VxMIeUzY_cd574BTdvz2_gtIhOQaAleCEALw_wcB]]~
-- [[オープンデータセット一覧表!AI開発に活用していこう>+https://fastlabel.ai/blog/open-data-set]]~


#br