ロボット2019自動射撃アルゴリズム視覚小記

2407 ワード

ロボット2019自動射撃アルゴリズム視覚小記
  • ZZZZU-WG_SPARK
  • 機能実現
  • コードフロー
  • 画像処理
  • ZZZU-WG_SPARK
    2019シーズンはもう終わりました.残念ながら、ZZZUはまだグループでの出場ができませんでした.この一年間、私たちのチームの先生は一銭もくれませんでした.学生の趣味でこの試合をしました.同時に、私達はまだ技術の蓄積がなくて、視覚の前の回のアルゴリズムはまた濾過片を使う必要があって、アルゴリズムも公式の開源のあのようなで、きわめて低い効果と複雑です.RMはお金がないので、蓄積していません.どうやって遊びますか?私たちは熱い気持ちでしかできません.今年の一年間、私達の電気制御グループは小さいこまを開発しました.機械グループの歩兵はこれまで弾かず、各兵種は機能を実現しました.強いチームは4-5人で一台の車を担当するかもしれませんが、今年は一人で一台の車を担当します.それに後期はみんな情熱がなくなりました.チーム二十何人ですか?8-9人しか技術担当としてこの試合をすることができません.
    機能の実現
    今年私達が使っているプロセッサはやはり妙算1です.カメラはタオバオで買った200個です.
    視覚画像処理の部分です.3メートル以内の全角度の安定した識別を実現しました.3-5メートル以内には脈動がありますが、誤審が発生することはありません.同時に複雑な環境に適応できます.実験室でテストする時に効果は完璧です.同時にパーティションの時には問題がありません.プロセッサが限られているので、640×480フレームレートの処理しかできません.決定ツリーまたはSVMを使ってデジタルを識別したいと思っていましたが、シングルスレッドの場合はフレームレートが低く、マルチスレッドのマルチスレッドの通信がうまくできず、速度にも影響を与えます.いくつかの軽量化神経ネットワークも考えましたが、形態学の効果とフレームレートには及ばないので、諦めました.数字を認識していないので、安定するために、大きな装甲と小さな装甲を別々に識別し、二つのモードを設定しました.視覚追跡と通信は私のもう一人のクラスメートがやっています.同時に彼は審判システムの管理とメンテナンスを担当しました.彼が一人で担当するものは本当に多いです.二次KCFフィルタリングアルゴリズムを用いて追跡し,予測にはフレーム差分予測を採用した.二次カルマンフィルタリングの最大の問題は彼が目標を突然変異させた時に鼓動することです.私達はいくつかの方法を設けて、この問題を簡単に解決しました.効果は大丈夫です.今年のカメラの最高フレームレートは120フレームで、私達の処理のスピードは60フレームです.全部で600元のカメラでこの効果を達成しました.今年は恥をかかないと思います.もちろん認識の効果は、強豪チームとはemmmよりも大きくて、車の上のカメラは3万個で、私のすべてのプロセッサ+カメラよりも3倍も高いです.どうやって遊ぶのですか?TX 2を一つください.330フレームのemmmmを削ってあげます.
    コードフロー
    甲板の自動識別と追跡については、画像処理、追跡予測、通信に分けられると思います.
    画像処理
    今年の画像処理の流れは主にこのようになっています.まず二値化を行います.二値化の方法が多いです.例えば、inrangeなど、多くの関連論文があり、多チャンネルでの二値化を実現しました.これらの方法は基本的なRMデッキにとっては遅すぎます.例えば、irangeのように、一行のコードは10-20 msの速度で処理する必要があります.これはフレームレートを求めるRMに対しては想像できません.だからopencvの経典cvtcolor+threstholdは王道で、私は下記の関数を書いて、vsの上でテストしてただ1 msだけを使いました.
    Mat Armorfind::p_img(Mat& src)
    {
    
        Mat out;
        cvtColor(src, out, COLOR_BGR2GRAY);
        Mat element1, element2;
    
        threshold(out, out,hsv_threshold , 255, THRESH_BINARY);
        element1 = getStructuringElement(MORPH_RECT, Size(1, 5));
        erode(out, out, element1);
        element2 = getStructuringElement(MORPH_RECT, Size(5, 9));
    
        dilate(out, out, element2);
    
        return out;
    }
    
    この方法はrm競技に対して本当に友好的です.参考にしてください.
    二値化が終わったら画像を処理します.ここでは輪郭を探すなどの方法を使っています.これらは大同小異です.もう述べません.その後は輪郭を処理し、一連の欠如値を通して、アルゴリズムによってデッキを識別することができます.また、いくつかのアルゴリズムにより、マウスの中心点とデッキの面積を関数としてフィッティングし、処理することができます.話が多くなくなりました.直接コードを貼ってください.
    ZZZUのRMがますます良くなることを望んで、オープンソースは少しこの試合に対して貢献をします.
    ZZZU U UWHは2019年6月3日5:29号です.