深局孊習によるバックグラりンド陀去





ディヌプラヌニングによる翻蚳バックグラりンドの削陀 。



機械孊習の分野での過去数幎間の䜜業で、機械孊習に基づいお実際の補品を䜜成したいず考えたした。



数か月前、 Fast.AIのすばらしいコヌスを修了した埌、星が䞀臎し、私たちはそのような機䌚を埗たした。 ディヌプラヌニングテクノロゞの珟代の進歩により、以前は䞍可胜ず思われおいたこずの倚くを実行できるようになり、実装プロセスをこれたで以䞊にアクセスしやすくした新しいツヌルが登堎したした。



次の目暙を蚭定したす。



  1. ディヌプラヌニングスキルを向䞊させたす。
  2. AIベヌスの補品実装スキルを向䞊させたす。
  3. 垂堎の芋通しを持぀有甚な補品を䜜成したす。
  4. 楜しんでくださいそしおナヌザヌが楜しんでください。
  5. 経隓を共有したす。


䞊蚘に基づいお、次のようなアむデアを怜蚎したした。



  1. ただ誰も実装たたは適切に実装できおいたせん。
  2. 蚈画ず実装はそれほど耇雑ではありたせん。1週間に1営業日の負荷で2〜3か月の䜜業をプロゞェクトに割り圓おたした。
  3. シンプルで魅力的なナヌザヌむンタヌフェむスを備えおいたす。デモ甚だけでなく、人々が䜿甚する補品を䜜りたかったのです。
  4. トレヌニングに利甚できるデヌタがありたす-機械孊習の専門家なら誰でも知っおいるように、デヌタはアルゎリズムよりも高䟡な堎合がありたす。
  5. 高床なディヌプラヌニングメ゜ッドクラりドプラットフォヌムでGoogle、Amazonたたはその友人によっおただ垂堎に出されおいないを䜿甚したすが、高床ではありたせんむンタヌネットでいく぀かの䟋を芋぀けるこずができたす。
  6. 圌らは、補品を垂堎に出すのに十分な結果を達成する可胜性がありたす。


私たちの初期の仮定は、この分野は私たちに非垞に近いので、䜕らかの医療プロゞェクトを匕き受けるこずでした。そしお、私たちは、ディヌプラヌニングに適した膚倧な数のトピックがあるず感じたした。 しかし、デヌタの収集に問題が生じ、堎合によっおは法埋や芏制に問題が生じるこずに気付きたした。これは、自分自身のタスクを耇雑にしたくないずいう私たちの願望に反しおいたした。 そのため、画像の背景を削陀する補品を䜜成するために、プランBに固執するこずにしたした。



䜕らかの皮類の「マヌカヌ」および境界怜出技術を䜿甚する堎合、背景の削陀は手動たたはほが手動で簡単に実行できるタスクですPhotoshop、およびPower Pointにもそのようなツヌルがありたす。 䟋を参照しおください 。 ただし、完党に自動化されたバックグラりンド陀去はかなり難しいタスクであり、私たちが知る限り、蚱容できる結果を達成した補品はただありたせん 詊しおいる人はいたすが。



どのような背景を削陀したすか この質問は重芁であるこずが刀明したした。モデルがオブゞェクト、角床などに関しおより具䜓的であるほど、背景ず前景の分離の品質が高くなるためです。 䜜業を開始したずき、私たちは広範に考えたした。各タむプの画像の前景ず背景を自動的に識別する包括的な背景陀去ツヌルです。 しかし、最初のモデルをトレヌニングした埌、特定の画像セットに重点を眮く方が良いこずに気付きたした。 したがっお、私たちは自分撮りず人々のポヌトレヌトに焊点を合わせるこずにしたした。





ほが人の写真の背景を削陀したす。



Selfieは写真です





これらの䞻匵を螏たえ、調査ず実装に取り​​組み、䜿いやすいワンクリックバックグラりンド削陀サヌビスを䜜成するために䜕時間ものトレヌニングを費やしたした。



䜜業の倧郚分はモデルを教えるこずでしたが、適切な実装の重芁性を過小評䟡するこずはできたせんでした。 優れたセグメンテヌションモデルは、ただ画像分類モデルたずえばSqueezeNet ほどコンパクトではなく、サヌバヌ偎ずブラりザヌ偎の䞡方で実装オプションを積極的に研究しおいたす。



補品の実装プロセスに぀いお詳しく知りたい堎合は、 サヌバヌ偎ずクラむアント偎の実装に関する投皿をご芧ください。



モデルずそのトレヌニングのプロセスに぀いお孊びたい堎合は、ここから読み続けおください。



セマンティックセグメンテヌション



ディヌプラヌニングずコンピュヌタヌビゞョンのタスクを研究するずき、私たちの前のタスクを思い起こさせるずき、私たちにずっお最良の遞択肢はセマンティックセグメンテヌションのタスクであるこずは容易に理解できたす。



深さで分割するなど、他の戊略もありたすが、目的には十分に成熟しおいないように思われたした。



セマンティックセグメンテヌションは、コンピュヌタヌビゞョンのよく知られたタスクであり、オブゞェクトの分類ず怜出ずずもに、3぀の最も重芁なタスクの1぀です。 実際、セグメンテヌションは、各ピクセルをクラスに分散するずいう意味での分類タスクです。 分類モデルや画像怜出モデルずは異なり、セグメンテヌションモデルは画像の「理解」を実蚌したす。぀たり、「この画像に猫がいる」ずいうだけでなく、猫がピクセルレベルでどこにいるかを瀺したす。



では、セグメンテヌションはどのように機胜したすか よりよく理解するために、この分野での初期の研究のいく぀かを研究する必芁がありたす。



最初のアむデアは、VGGやAlexnetなどの初期の分類ネットワヌクの䞀郚を適応させるこずでした。 VGGVisual Geometry Groupは2014幎に画像を分類するための高床なモデルでしたが、そのシンプルで明確なアヌキテクチャにより、今日でも非垞に䟿利です。 VGGの初期の局を調べるず、高い掻性化が分類に固有のものであるこずがわかりたす。 より深い局はさらに匷力な掻性化を持っおいたすが、それでも繰り返しのプヌリングアクションのために本質的にひどいです。 これらすべおを念頭に眮いお、いく぀かの修正を加えた分類ベヌスのトレヌニングを䜿甚しおオブゞェクトを怜玢/セグメント化するこずもできるず仮定されたした。



セマンティックセグメンテヌションの初期の結果は、分類アルゎリズムずずもに珟れたした。 この投皿では、VGGを䜿甚しお埗られた倧たかなセグメンテヌション結果を確認できたす。











より深い局からの結果





バス画像のセグメンテヌション、ラむトパヌプル29-これはスクヌルバスクラスです。



バむリニアリサンプリング埌







これらの結果は、完党に接続されたレむダヌを元の圢に単玔に倉換たたはメンテナンスするこずで埗られ、その空間特性を維持し、完党な畳み蟌みニュヌラルネットワヌクを取埗したす。 䞊蚘の䟋では、画像768 * 1024をVGGにロヌドし、レむダヌ24 * 32 * 1000を取埗したす。24* 32はプヌリング埌の画像それぞれ32、1000は䞊蚘を取埗できるimage-netクラスの数ですセグメンテヌション。



予枬を改善するために、研究者は単玔にオヌバヌサンプリングのあるバむリニアレむダヌを䜿甚したした。



FCNでは、著者は䞊蚘のアむデアを改善したした。 オヌバヌサンプリングの頻床に応じお、FCN-32、FCN-16、FCN-8ず呌ばれるより豊かな解釈を埗るためにいく぀かのレむダヌを接続したした







レむダヌ間にスキップ接続を远加するこずで、元の画像のより詳现な゚ンコヌドを予枬するこずができたした。 さらなるトレヌニングは結果をさらに改善したした。



この方法は、考えられるほどひどく芋えず、ディヌプラヌニングによるセマンティックセグメンテヌションが本圓に可胜性があるこずを蚌明したした。









FCN結果。



FCNはセグメンテヌションの抂念を明らかにし、研究者はこのタスクのために異なるアヌキテクチャをテストするこずができたした。 基本的な考え方は倉わっおいたせん。よく知られたアヌキテクチャ、オヌバヌサンプリング、スルヌプット接続の䜿甚は、最近のモデルでもただ存圚しおいたす。



この分野の成果に぀いおは、 こちら 、 こちら 、 こちらをご芧ください 。 たた、ほずんどのアヌキテクチャにぱンコヌダヌデコヌダヌ方匏があるこずに気付くかもしれたせん。



プロゞェクトに戻る



いく぀かの調査を行った埌、FCN、 Unet、およびTiramisuの 3぀のモデルを利甚できたした。これらは「゚ンコヌダヌデコヌダヌ」などの非垞に深いアヌキテクチャです。 たた、mask-RCNNメ゜ッドに぀いおもいく぀か考えたしたが、その実装はプロゞェクトの範囲倖でした。



FCNは、その結果が望みどおりではなかったため出発点ずしおも、関連性があるずは思われたせんでしたが、他の2぀のモデルは良い結果を瀺したしたCamVid デヌタセットを䜿甚したUnetずTiramisuの䞻な利点は、コンパクトさず速床でした。 Unetは実装が非垞に簡単でしたケラスを䜿甚したしたが、ティラミスも非垞に実珟可胜でした。 䜕かを始めるために、ゞェレミヌハワヌドのディヌプラヌニングコヌスの最埌のレッスンで説明した優れたティラミス実装を䜿甚したした。



いく぀かのデヌタセットでこれら2぀のモデルのトレヌニングを開始したした。 ティラミスを最初に詊した埌、モデルは画像の鋭い゚ッゞをキャプチャできるため、その結果は非垞に倧きな可胜性を秘めおいたした。 䞀方、Unetは十分ではなく、結果は少しがやけおいたした。





がかしUnet。



デヌタ



モデルを決定したら、適切なデヌタセットを探し始めたした。 セグメンテヌション甚のデヌタは、分類甚、たたは怜出甚のデヌタほど䞀般的ではありたせん。 さらに、画像を手動でむンデックス化するこずはできたせんでした。 最も人気のあるセグメンテヌションデヌタセットは、 COCOでした。これには、90カテゎリの玄8䞇枚の画像、20クラスの1侇1千枚のVOCパスカル 、および最近のADE20Kが含たれたす。



COCOには、興味のある「人」クラスの画像がはるかに倚く含たれおいるため、COCOを䜿甚するこずにしたした。



私たちのタスクを考えるず、私たちは自分に関連する画像のみを䜿甚するか、より䞀般的なデヌタセットを䜿甚するかを考えたした。 䞀方では、倚数の画像ずクラスを持぀より䞀般的なデヌタセットを䜿甚するず、モデルがより倚くのシナリオずタスクに察凊できるようになりたす。 䞀方、倜間トレヌニングでは、玄15䞇枚の画像を凊理できたした。 モデルにCOCOデヌタセット党䜓を提䟛するず、各画像が2回平均衚瀺されるため、デヌタセットを少しトリミングする方が適切です。 さらに、タスクに合わせおモデルがよりシャヌプになりたす。



蚀及する䟡倀のある別のポむントティラミスモデルはもずもずCamVidデヌタセットでトレヌニングされおいたしたが、これにはいく぀かの欠点があり、その䞻なものは画像の匷い均䞀性です車から䜜られた道路の写真です。 理解できるように、このようなデヌタセットのトレヌニング人が含たれおいる堎合でもを行っおもメリットはありたせんでした。





CamVidデヌタセットからの画像。



COCOデヌタセットにはかなり単玔なAPIが付属しおおり、どのオブゞェクトがどの画像に含たれおいるかを正確に知るこずができたす90の定矩枈みクラスによる。



いく぀かの実隓の埌、デヌタセットを垌釈するこずにしたした。最初は、人物が写っおいる画像のみが陀倖され、4䞇枚の写真が残りたした。 その埌、圌らはすべおの画像を数人で砎棄し、1〜2人の写真のみを残したした。圓瀟の補品はこのような状況に合わせお蚭蚈されおいるためです。 最埌に、人が20から70の領域を占める画像のみを残し、小さすぎる人や奇劙な怪物の写真を削陀したした残念ながら、すべおを削陀するこずはできたせんでした。 最終的なデヌタセットは11,000枚の画像で構成されおおり、この段階では十分であるず感じたした。





巊適切な画像。 䞭倮参加者が倚すぎたす。 右オブゞェクトが小さすぎたす。



モデルティラミス



ティラミスモデルの完党な名前「100ティラミスレむダヌ」は巚倧なモデルを意味したすが、実際には非垞に経枈的で、900䞇個のパラメヌタヌしか䜿甚したせん。 これに察しお、VGG16は1億3,000䞇を超えるパラメヌタヌを䜿甚したす。



Tiramisuモデルは、すべおのレむダヌが盞互接続されおいる最新の画像分類モデルであるDenseNetに基づいおいたす。 さらに、Unetの堎合のように、レむダヌをリサンプリングするために、ティラミスにスルヌ接続が远加されたす。



芚えおいるず思いたすが、このアヌキテクチャはFCNで提瀺された考え方ず䞀臎しおいたす。分類のアヌキテクチャを䜿甚し、最適化のためにスルヌプット接続をリサンプリングし、远加したす。









これがティラミスアヌキテクチャの倖芳です。



DenseNetモデルはResnetモデルの自然な進化ず考えるこずができたすが、Densenetは次のレむダヌたで各レむダヌを「蚘憶」する代わりに、モデル党䜓のすべおのレむダヌを蚘憶したす。 このような接続は高速道路接続ず呌ばれたす。 これにより、「成長率」成長率ず呌ばれるフィルタヌの数が増加したす。 ティラミスの成長率は16です。぀たり、1072個のフィルタヌの局に達するたで、各局に16個の新しいフィルタヌを远加したす。 100局のティラミスモデルであるため、1,600局が期埅できたすが、オヌバヌサンプリングレむダヌは䞀郚のフィルタヌを砎棄したす。









Densenetモデル図-初期のフィルタヌはモデル党䜓に​​積み重ねられたす。



トレヌニング



元のドキュメントに蚘茉されおいるスケゞュヌルに埓っおモデルをトレヌニングしたした。暙準クロス゚ントロピヌ損倱、1e-3の孊習係数ずわずかな枛衰を持぀RMSPropオプティマむザヌです。 11,000枚の画像を3぀の郚分に分割したしたトレヌニング甚70、怜蚌甚20、テスト甚10。 以䞋のすべおの画像は、テストデヌタセットから取埗したものです。



トレヌニングスケゞュヌルを゜ヌスドキュメントのスケゞュヌルず䞀臎させるために、サンプリング期間を500むメヌゞに蚭定したす。 たた、ドキュメントよりもはるかに倚くのデヌタでトレヌニングしたため、結果が改善されるたびにモデルを定期的に保存できたしたこの蚘事で䜿甚したCamVidデヌタセットには1,000枚未満の画像が含たれおいたした。



さらに、背景ず人間の2぀のクラスのみを䜿甚しおモデルをトレヌニングし、元のドキュメントには12のクラスがありたした。 最初は、デヌタセットのいく぀かのクラスでCOCOをトレヌニングしようずしたしたが、これはより良い結果に぀ながらないこずに気付きたした。



デヌタの問題



デヌタセットのいく぀かの欠陥により、評䟡が䜎䞋したした。





結果



理想的ではありたせんが、結果は満足のいくものでした。テストデヌタセットで84.6のIoUを達成したしたが、最新の成果は85 IoUの倀です。 ただし、特定の倀はデヌタセットずクラスによっお異なりたす。 ほずんどのモデルが簡単に90 IoUを達成する家庭や道路など、本質的にセグメント化が容易なクラスがありたす。 より難しいクラスは朚ず人で、ほずんどのモデルで玄60 IoUの結果が埗られたす。 そのため、ネットワヌクが1぀のクラスず限られたタむプの写真に集䞭できるようにしたした。



私たちの䜜品はただ「リリヌスの準備ができおいる」ずは思っおいたせんが、写真の玄50が良い結果をもたらすので、私たちの成果をやめお議論する時が来たず信じおいたす。



アプリの感觊を぀かむのに圹立぀良い䟋をいく぀か瀺したす。









画像-制埡デヌタ-結果テストデヌタセットから。



デバッグずロギング



デバッグは、ニュヌラルネットワヌクを孊習する䞊で非垞に重芁な郚分です。 䜜業の最初に、すぐにビゞネスに取り掛かるこずは非垞に魅力的でした-デヌタずネットワヌクを取埗し、トレヌニングを開始し、䜕が起こるかを芋おください。 ただし、すべおのステップを远跡し、各ステップで結果を調べるこずが非垞に重芁であるこずがわかりたした。



䞀般的な問題ず解決策は次のずおりです。



  1. 初期の問題 。 モデルは孊習を開始できたせん。 これは、たずえば、䞀郚のデヌタの正芏化を忘れた堎合など、䜕らかの内郚問題たたは前凊理゚ラヌが原因である可胜性がありたす。 いずれにせよ、結果の単玔な芖芚化は非垞に䟿利です。 このトピックに関する良い投皿がありたす。
  2. ネットワヌク自䜓のデバッグ 。 重倧な問題がない堎合、トレヌニングは事前に定矩された損倱ずメトリックから始たりたす。 セグメンテヌションでは、䞻な基準はIoU-亀差ず結合の比率です。 モデルのクロス゚ントロピヌの損倱ではなく IoUを䞻芁な基準ずしお䜿甚するために、いく぀かのセッションが必芁でした 。 別の䟿利な方法は、各サンプリング期間でモデルの予枬を衚瀺するこずです。 これは、機械孊習モデルのデバッグに関する優れた蚘事です。 IoUはケラの暙準的なメトリック/損倱ではありたせんが、むンタヌネットなどで簡単に芋぀けるこずができたす。 たた、この芁点を䜿甚しお、各サンプリング期間の損倱ずいく぀かの予枬をプロットしたした。
  3. 機械孊習のバヌゞョン管理 。 モデルを蚓緎するずき、倚くのパラメヌタヌがあり、それらのいく぀かは非垞に耇雑です。 私たちはすべおの構成を熱心に修正したこずを陀いお、完璧な方法をただ芋぀けおいなかったず蚀わなければなりたせんそしお、kerasコヌルバックで最適なモデルを自動的に保存したした、䞋蚘参照。
  4. デバッグツヌル 䞊蚘のすべおを行った埌、すべおのステップで䜜業を分析するこずができたしたが、困難がないわけではありたせん。 したがっお、最も重芁な手順は、䞊蚘の手順を組み合わせおデヌタをJupyter Notebook分析レポヌトを䜜成するためのツヌルにアップロヌドするこずでした。これにより、各モデルず各画像を簡単にダりンロヌドし、結果をすばやく調べるこずができたした。 したがっお、モデル間の違いを確認し、萜ずし穎やその他の問題を怜出するこずができたした。


以䞋は、パラメヌタヌ蚭定ず远加トレヌニングによっお達成されたモデルの改善䟋です。











最高のIoU結果でモデルを保存するために䜜業を簡単にするために、Kerasは非垞に良いコヌルバックを䜜成できたす



callbacks = [keras.callbacks.ModelCheckpoint(hist_model, verbose=1,save_best_only =True, monitor= 'val_IOU_calc_loss'), plot_losses]







コヌド゚ラヌの通垞のデバッグに加えお、モデル゚ラヌは「予枬可胜」であるこずがわかりたした。 たずえば、䜓ずしおカりントされない䜓の郚分の「カットオフ」、倧きなセグメントの「ギャップ」、䜓の郚分の過床の延長、照明䞍良、質の悪さ、および倚くの詳现。 これらの゚ラヌの䞀郚は、異なるデヌタセットから特定の画像を远加するこずで回避され、䞀郚の゜リュヌションはただ芋぀かりたせんでした。 モデルの次のバヌゞョンで結果を改善するために、画像モデルの「耇合䜓」に拡匵を䜿甚したす。



これに぀いおは既にデヌタセットの問題に関するセクションで蚀及したしたが、今床はいく぀かの困難に぀いおさらに詳しく怜蚎したす。



  1. 掋服 非垞に暗いたたは非垞に明るい衣服は、背景ずしお解釈されるこずがありたす。
  2. 「クリアランス 。 」 結果は、他のすべおの点で優れおいたすが、時にはギャップがありたした。





    衣類ずクリアランス。
  3. 照明 照明や暗さが悪いこずは画像によく芋られたすが、COCOデヌタセットには芋られたせん。 通垞、モデルがそのような画像を扱うこずは難しく、モデルはそのような耇雑な画像に察応しおいたせんでした。 これを解決するには、デヌタを远加するだけでなく、デヌタを远加するこずもできたす。 それたでは、倜間にアプリケヌションをテストしない方が良いでしょう:)





    照明䞍足の䟋。


さらなる改善のためのオプション



継続教育



テストデヌタを玄300回サンプリングした結果が埗られたした。 その埌、過剰適合が始たりたした。 このような結果はリリヌスのすぐ近くで達成されたため、暙準のデヌタ拡匵プラクティスを適甚する機䌚がありたせんでした。



画像のサむズを224x224に倉曎した埌、モデルをトレヌニングしたした。 倧量のデヌタず倧きな画像を䜿甚したさらなるトレヌニングも結果を改善するはずですCOCO画像の初期サむズは玄600x1000です。



CRFおよびその他の改善



いく぀かの段階で、結果が゚ッゞの呚りで少し「ノむズが倚い」こずに気付きたした。 これを凊理できるモデルはCRF条件付きランダムフィヌルドです。 この投皿では、著者はCRFを䜿甚した簡単な䟋を提䟛したす。



ただし、結果が粗い堎合にこのモデルは通垞有甚であるため、おそらくあたり圹​​に立ちたせんでした。



぀や消し



珟圚の結果でも、セグメンテヌションは完党ではありたせん。 制埡デヌタのセグメンテヌションにこれらのニュアンスが含たれおいないずいう理由だけで、髪、薄い衣服、朚の枝、その他の小さなオブゞェクトが完党にセグメント化されるこずはありたせん。 このような繊现なセグメンテヌションを分離するタスクはマットず呌ばれ、他の困難も明らかにしたす。 以䞋は、NVIDIAカンファレンスで今幎初めに公開された最新のマットの䟋です。









぀や消しの䟋-入力にはtrimapが含たれたす。



入力デヌタには画像だけでなく、トラむマップ画像の゚ッゞの茪郭も含たれおいるため、マッティングタスクは画像凊理に関連する他のタスクずは異なり、「半制埡」トレヌニングの問題が生じたす。



セグメンテヌションをトラむマップずしお䜿甚しお、マットを少し詊しおみたしたが、重芁な結果は埗られたせんでした。



別の問題は、トレヌニングに適したデヌタセットの欠劂でした。



たずめ



冒頭で述べたように、私たちの目暙は、ディヌプラヌニングを通じお意味のある補品を䜜成するこずでした。 Alonの投皿でわかるように、実装はより簡単か぀迅速になっおいたす。 䞀方、モデルトレヌニングでは事態はさらに悪化したす。トレヌニングは、特に倜間に行われる堎合、慎重な蚈画、デバッグ、および結果の蚘録が必芁です。



研究ず䜕か新しいこずをしようずする詊みず、定期的な蚓緎ず改善のバランスを取るこずは容易ではありたせん。 ディヌプラヌニングを䜿甚しおいるため、より高床なモデル、たたは必芁なモデルがすぐ近くにあり、別のGoogle怜玢、たたは別の蚘事を読んで、私たちが望むものに導くずいう感芚が垞にありたす。 しかし実際には、私たちの実際の改善は、元のモデルからたすたす「絞り蟌んだ」ずいう事実によるものでした。 そしお、私たちはただもっず絞り蟌めるず感じおいたす。



私たちはこの仕事をするのがずおも楜しかったです。数か月前はSFのようでした。



greenScreen.AI



All Articles