天池コンテスト - 神南デジタル製造アリーナアルゴリズムチャレンジ[2]ソリューションシェア

天池コンテスト - 神南デジタル製造アリーナアルゴリズムチャレンジ[2]ソリューションシェア

I.はじめに

コンテストのページ

团队名BugFlow,最终排名35/2157

成績平均点が、ターゲットの検出の分野で初心者のようにチームが、取得するには、最初から唯一の1070カードがあり、この順位付け、また、我々はのためにこのアイデアを思い付いたゲームのいくつかのいくつかを含め、共有に来るかもしれないいくつかの経験を持っていると考えられ、それを開始すること、およびトップランクの大物以上の交流を楽しみにしています。

ソースのダウンロード

第二には、フレームを選択します

この競争は、実際に検出対象一致する、検出密輸必要な出力品質例を分割しながら再戦有効検出対象を表示する画像内の位置のための予備的な要件。

そのような私たちのチーム名としてフレームを、選択BugFlowのように、我々はツールとして、すべてのtensorflowにチームのメンバーであるため、フレームワークは、我々が最初にグーグルのオープンソースを選んだTensorflowオブジェクト検出API、無力トレーニング効果が不十分でした。Facebookは決定的にオープンソーススイッチバックDetectronは、多くの成果の上昇をクリックして、だけでなく、背教がクール感となっている瞬間の背教を冷却するためにリターンを経験します。

そこでここでは本当に私たちのグループの経験から、より効果的である物体検出のための優れたフレームワークについて言わなければならないことは、精度の点でDetectronあり、使用または拡張の容易さ、それは良いフレームワークです。トップヘビー級の5が任意のフレームワークを使用しているかわからない、希望は私を啓発します!私は約学びたいです -

第三に、ソリューションの概要

3.1モデルの選択

私たちの選択は、ベースラインとしてエンドツーエンドマスクR-CNNの再戦で、バックボーンはresnet101-FPNを選びました

FPN構造があるため、この競争の選ばれた、異なるサイズのスケールが密輸を検出し、かつ小さなオブジェクトの多くが含まれていることを、我々は機能ピラミッドネットワークは、この問題を解決しやすくなりますことを信じています。

3.2拡張データ

私は、ネットワークの経験の分類に訓練された豊富なデータモデルの強化が大幅に合理的な範囲内で可能な限りのパフォーマンスを向上させることができます。

明らかに、この技術は、対応する変換を境界ボックスまたはマスクの必要性が、同時に唯一の問題は、画像変換同じターゲット検出に適用することができます。もちろん、これはほんの少しより困難なプログラミング作業、ビート皆です。

なお、Detectronは、データ拡張のレベルのフリップが付属しています。

拡張ファイルに実装我々のデータ/path/to/project/code/second_round_pyfile/data_augmentation_position_bak.py水平、垂直反転、ズーム(等価作物動作)を達成するために、四つの基本的なデータ削減エンハンスメント。

加えて、我々は2つのユニークなデータ拡張を試み、一方は2つのグラフは、一つのランダムテクスチャを向上さ高めランダムスプライスと同様であり、効果は次の通りであります:

図の二種類の例ランダムモザイク効果。
pinjie

たとえば、密輸のためのランダムなマッピングを使用します:
pinjie

残念ながら、両方の方法の表面上が大幅にサンプルセットのサイズを豊かに、非常に良い結果を取得していない、と私たちは、ある程度、この5月には、元のサンプルデータ配信を損なわ信じています。最終的に、我々はこれら2つのメソッドを使用していませんでした。

3.3二分ネットワーク支援

もちろんゲームの、私たちは二つのタイプ、小型電池と大きな青い緑鋼軽いがあることがわかった、特徴は、それが混同することは容易であるが、明確ではありません。

あなたは、単にマスクrcnnを使用する場合は、モデルが比較的ラジカルとなり、オブジェクトが非常に低いスコアが得られ、密輸と間違えのようにたくさん見えます。

したがって、この質問を量るために、我々は2クラスのネットワークの使用を考慮し、区別するために、検出された最初の絵、密​​輸が含まれていると思われる場合は、その後、rcnnモデル予測をマスクします。

私が実現する前に、次にこれを念頭において、直接使用Keras蓄積resnet50デモ検証のために。

閾値を試運転した後、バイナリリコール100%、精度98%までとすることができます。この方法では、密輸の写真を含む可能性が高いのケースをお見逃しなく、誤警報のrcnn確率が大幅に削減されるマスク、パフォーマンスが多くのことを改善しました。

3.4前処理

我々はまた、単純なデータ解析を設定し、我々は次のように、私たちの対象シーンの画素値の画像は、一般的に高いが見つかりました:

pinjie

したがって、我々はできるが、データの前処理と信じて、一般的な考え方は、0〜255の範囲内でより均一に分布させるために、ピクセル値を調整することです。

このため、私は、3つの異なる前処理方法を設計している、最も簡単な1は次のような単純なマッピングは次のようになります。

pinjie

それは次のような結果を達成することです。

pinjiepinjie

三种预处理的效果示例:

原图:
pinjie

预处理1:
pinjie

预处理2:
pinjie

预处理3:
pinjie

其中,通过不断地尝试和提交测试分数,我们发现预处理1对于二分类的accuracy提升有明显帮助,预处理3对mask rcnn的性能有微弱提升(也可能是随机因素导致,还不敢确定)

至此,我已经将我们认为所有可能值得分享的信息介绍了,还望排名靠前的大佬不吝赐教~~~

对于大多数伙伴,读到这里就可以了~

如果你对我们代码的详细信息甚至复现感兴趣,请继续往下看,我简单的介绍一下。

四、安装

我们代码的运行环境及主要依赖为:

Ubuntu/Centos + CUDA9 + CUDNN7 + NCCL + Anaconda2 + Keras2.2.4 + PyTorch

初赛我们使用的显卡是可怜的NVIDIA GTX1070,复赛有了阿里云代金卷使用的是P100

运行如下命令,自动安装依赖环境及深度学习框架

$ cd /path/to/project/code/install
$ ./install_requirements.sh

详见project/code/README.md,若由于各种没有考虑到的情况安装不能顺利进行,还请大家简单分析安装脚本自行安装环境。

五、复现

初赛时还处于摸索阶段,成绩也只有89名,初赛的复现就不做介绍了。大家有兴趣可以看下初赛提交时我们编写的 ROUND1_README,我们对如何复现我们的结果进行了说明。

复赛阶段的代码位于project/code/second_round_pyfile中,相应的运行脚本位于project/code/second_round_shell中,我们对这些脚本进行了编号,简单的阅读确定参数并依次执行即可~

pinjie

六、联系方式

参加比赛也是一个交流的过程,本人现在作业帮的反作弊团队担任算法工程师,期待和各位算法从业者进行技术上的交流~

加好友、技术交流、内推请联系我,本人邮箱[email protected]

此外,我们团队一位靠谱的小伙伴正在打算找博导,希望大家帮忙推荐呀,他的联系方式[email protected]

公開された87元の記事 ウォンの賞賛325 ビュー520 000 +

おすすめ

転載: blog.csdn.net/u011583927/article/details/89532519